:root{--primary:#1a56db;--primary-dark:#1240a8;--sidebar:#0f1e3c;--sidebar-hover:#162a54;--bg:#f0f4fb}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:#1e293b;font-family:Inter,ui-sans-serif,system-ui,sans-serif}#view-login{z-index:9999;background:linear-gradient(135deg,#0f1e3c 0%,#1a3a6e 100%);justify-content:center;align-items:center;display:none;position:fixed;inset:0}#view-login.active{display:flex!important}body.hub-guest #sidebar,body.hub-guest #main{display:none!important}#sidebar{background:var(--sidebar);color:#fff;z-index:30;flex-direction:column;width:240px;min-height:100vh;display:flex;position:fixed;top:0;left:0}#sidebar .brand{border-bottom:1px solid #1e3561;align-items:center;gap:10px;height:64px;padding:0 20px;font-size:1.1rem;font-weight:800;display:flex}#sidebar .brand i{color:#60a5fa}.nav-item{color:#94a3b8;cursor:pointer;border-left:3px solid #0000;align-items:center;gap:12px;padding:13px 20px;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item:hover,.nav-item.active{background:var(--sidebar-hover);color:#fff;border-left-color:#3b82f6}.nav-item i{text-align:center;width:18px}#sidebar-footer{border-top:1px solid #1e3561;margin-top:auto;padding:16px 20px}#sidebar-footer .user-name{font-size:.85rem;font-weight:700}#sidebar-footer .user-role{color:#64748b;font-size:.75rem}#sidebar-footer .logout-btn{color:#94a3b8;cursor:pointer;align-items:center;gap:8px;margin-top:10px;font-size:.8rem;display:flex}#sidebar-footer .logout-btn:hover{color:#f87171}#topbar{z-index:20;background:#fff;border-bottom:1px solid #e2e8f0;align-items:center;gap:16px;height:64px;padding:0 24px;display:flex;position:sticky;top:0;box-shadow:0 1px 6px #0000000f}#topbar h1{color:#1a56db;font-size:1.35rem;font-weight:800}#main{flex-direction:column;min-height:100vh;margin-left:240px;display:flex}#content{flex:1;padding:28px}.stat-card{background:#fff;border:1px solid #e8edf4;border-radius:14px;align-items:flex-start;gap:14px;padding:20px 24px;display:flex;box-shadow:0 2px 8px #0000000a}.stat-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.1rem;display:flex}.stat-label{text-transform:uppercase;color:#64748b;margin-bottom:4px;font-size:.72rem;font-weight:600}.stat-value{color:#0f172a;font-size:1.5rem;font-weight:800}.stat-sub{color:#94a3b8;margin-top:2px;font-size:.75rem}.section-header{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border-radius:14px 14px 0 0;padding:18px 24px}.section-header h2{font-size:1rem;font-weight:700}.section-header p{opacity:.8;margin-top:2px;font-size:.8rem}.panel{background:#fff;border:1px solid #e2e8f0;border-radius:14px;margin-bottom:24px;overflow:hidden;box-shadow:0 2px 12px #0000000d}.panel-body{padding:24px}table{border-collapse:collapse;width:100%}thead th{text-transform:uppercase;color:#64748b;text-align:left;background:#f8fafc;border-bottom:2px solid #e2e8f0;padding:10px 14px;font-size:.72rem;font-weight:700}tbody tr{border-bottom:1px solid #f1f5f9;transition:all .12s}tbody tr:hover{background:#f8fbff}tbody td{color:#334155;padding:13px 14px;font-size:.875rem}.badge{border-radius:999px;align-items:center;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.badge-green{color:#166534;background:#dcfce7}.badge-red{color:#991b1b;background:#fee2e2}.badge-blue{color:#1e40af;background:#dbeafe}.badge-orange{color:#9a3412;background:#ffedd5}.badge-gray{color:#475569;background:#f1f5f9}.btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:.82rem;font-weight:700;transition:all .15s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-success{color:#fff;background:#059669}.btn-success:hover{background:#047857}.btn-danger{color:#fff;background:#dc2626}.btn-danger:hover{background:#b91c1c}.btn-light{color:#1a56db;background:#eff6ff;border:1px solid #bfdbfe}.btn-light:hover{background:#dbeafe}.btn-outline{color:#64748b;background:#fff;border:1px solid #cbd5e1}.btn-outline:hover{background:#f1f5f9}.form-input{background:#fff;border:1px solid #d1d5db;border-radius:8px;outline:none;width:100%;padding:9px 12px;font-size:.875rem}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1a56db1f}.form-label{color:#475569;margin-bottom:5px;font-size:.78rem;font-weight:600;display:block}select.form-input{cursor:pointer}.top-tabs{background:#eef2ff;border-radius:10px;gap:4px;padding:4px;display:flex}.top-tab{cursor:pointer;color:#64748b;border-radius:8px;padding:8px 18px;font-size:.82rem;font-weight:700}.top-tab.active{background:var(--primary);color:#fff;box-shadow:0 2px 8px #1a56db4d}.modal-overlay{z-index:1000;background:#0f172a80;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.modal-overlay.open{display:flex}.modal-box{background:#fff;border-radius:16px;width:100%;max-width:560px;overflow:hidden;box-shadow:0 20px 60px #0003}.modal-header{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-body{max-height:75vh;padding:24px;overflow-y:auto}.modal-footer{background:#f8fafc;border-top:1px solid #f1f5f9;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.modal-box-lg{max-width:760px}#toast-container{z-index:99999;flex-direction:column;gap:8px;display:flex;position:fixed;top:20px;right:20px}.toast-item{color:#fff;background:#0f172a;border-radius:10px;align-items:center;gap:10px;padding:12px 20px;font-size:.85rem;font-weight:600;animation:.25s slideIn;display:flex}.toast-ok:before{content:"✓";color:#4ade80}.toast-err:before{content:"✕";color:#f87171}@keyframes slideIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.view{display:none}.view.active{display:block}.progress-bar-track{background:#e2e8f0;border-radius:99px;height:8px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg,#1a56db,#00c896);border-radius:99px;height:100%;transition:width .3s}.product-images-grid{grid-template-columns:repeat(5,1fr);gap:10px;margin-top:10px;display:grid}.product-image-thumb{background:#f8fafc;border:1px solid #dbe4f0;border-radius:10px;justify-content:center;align-items:center;height:82px;display:flex;position:relative;overflow:hidden}.product-image-thumb img{object-fit:cover;width:100%;height:100%}.product-image-remove{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;font-size:.7rem;display:flex;position:absolute;top:5px;right:5px;box-shadow:0 2px 8px #0003}.product-image-empty{color:#94a3b8;text-align:center;border:1px dashed #cbd5e1;padding:8px;font-size:.7rem}.store-sync-list{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:8px;display:grid}.store-sync-item{color:#334155;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:.82rem;font-weight:700;display:flex}.store-sync-item input{accent-color:#1a56db;width:auto}.store-sync-item small{color:#94a3b8;margin-top:1px;font-size:.7rem;font-weight:500;display:block}.catalog-table{border-collapse:collapse;width:100%}.catalog-table td,.catalog-table th{vertical-align:middle;padding:12px 14px}.catalog-thumb-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;width:52px;min-width:52px;height:52px;padding:4px;display:flex;overflow:hidden}.catalog-thumb-wrap img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;display:block}.catalog-thumb-empty{color:#94a3b8;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;justify-content:center;align-items:center;width:52px;min-width:52px;height:52px;font-size:.85rem;display:flex}.catalog-product-cell{align-items:center;gap:12px;min-width:0;display:flex}.catalog-product-meta{flex:1;min-width:0}.catalog-product-name{color:#0f172a;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:700;line-height:1.35;display:-webkit-box;overflow:hidden}.catalog-product-sku{color:#64748b;margin-top:3px;font-size:.72rem}.catalog-actions{flex-wrap:nowrap;align-items:center;gap:6px;display:inline-flex}.catalog-actions .btn{justify-content:center;align-items:center;min-width:36px;height:36px;padding:0 10px;display:inline-flex}@media (width<=900px){#sidebar{transform:translate(-100%)}#main{margin-left:0}.product-images-grid{grid-template-columns:repeat(2,1fr)}.store-sync-list{grid-template-columns:1fr}}
