@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700;800&display=swap";
:root{--bg-app:#f8fafc;--surface:#fff;--surface-hover:#fcfdfe;--surface-subtle:#f1f5f9;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-light:#eff6ff;--primary-border:#dbeafe;--primary-glow:#2563eb26;--text-primary:#0f172a;--text-secondary:#64748b;--text-muted:#94a3b8;--text-inverse:#fff;--border-color:#e2e8f0;--border-light:#edf2f7;--border-subtle:#f1f5f9;--success:#10b981;--success-bg:#ecfdf5;--warning:#f59e0b;--warning-bg:#fffbeb;--danger:#ef4444;--danger-bg:#fef2f2;--shadow-sm:0 1px 2px 0 #0f172a0a;--shadow-card:0 1px 3px 0 #0f172a0d, 0 1px 2px -1px #0f172a08;--shadow-card-hover:0 6px 16px -2px #0f172a0f, 0 2px 6px -2px #0f172a08;--shadow-dropdown:0 10px 25px -5px #0f172a14, 0 8px 10px -6px #0f172a0a;--radius-sm:8px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-full:9999px;--sidebar-width:256px;--topbar-height:60px;--transition-fast:.15s ease;--transition-normal:.22s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-moz-text-size-adjust:100%;text-size-adjust:100%;width:100%;font-size:15px;overflow-x:hidden}body{background-color:var(--bg-app);min-height:100dvh;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;font-family:Plus Jakarta Sans,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;position:relative;overflow-x:hidden}img,svg{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;touch-action:manipulation;background:0 0;border:none;outline:none;font-family:inherit}input,select,textarea{outline:none;max-width:100%;font-family:inherit;font-size:16px}@media (min-width:768px){input,select,textarea{font-size:.925rem}}.main-content{flex:1;width:100%;min-width:0;max-width:1400px;margin:0 auto;padding:2rem 2.25rem 3rem}@media (max-width:1200px){.main-content{padding:1.75rem 1.75rem 2.5rem}}@media (max-width:1024px){.main-content{padding:1.5rem 1.25rem 2.25rem}}@media (max-width:640px){.main-content{padding:1rem .85rem 2rem}}.card{background-color:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:box-shadow var(--transition-normal), border-color var(--transition-normal);width:100%;max-width:100%;padding:1.5rem}.card:hover{box-shadow:var(--shadow-card-hover);border-color:#cbd5e1}@media (max-width:640px){.card{border-radius:var(--radius-md);padding:1.15rem 1rem}}.card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.card-title{color:var(--text-primary);letter-spacing:-.01em;font-size:1.05rem;font-weight:700;line-height:1.3}.card-subtitle{color:var(--text-secondary);margin-top:.2rem;font-size:.85rem;line-height:1.4}.btn{border-radius:var(--radius-md);min-height:42px;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;touch-action:manipulation;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.15rem;font-size:.885rem;font-weight:600;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--primary);color:var(--text-inverse);box-shadow:0 1px 2px #2563eb33}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background-color:var(--surface);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background-color:var(--surface-subtle);border-color:#cbd5e1}.btn-ghost{color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background-color:var(--surface-subtle);color:var(--text-primary)}@media (max-width:640px){.btn{min-height:44px}}.badge{border-radius:var(--radius-full);align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.775rem;font-weight:600;line-height:1.2;display:inline-flex}.badge-blue{background-color:var(--primary-light);color:var(--primary);border:1px solid var(--primary-border)}.badge-green{background-color:var(--success-bg);color:var(--success);border:1px solid #bbf7d0}.badge-gray{background-color:var(--surface-subtle);color:var(--text-secondary);border:1px solid var(--border-color)}.form-group{flex-direction:column;gap:.45rem;width:100%;margin-bottom:1.15rem;display:flex}.form-label{color:var(--text-primary);font-size:.85rem;font-weight:600}.form-input{border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--surface);width:100%;min-height:42px;color:var(--text-primary);transition:all var(--transition-fast);padding:.65rem .95rem}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.form-error{color:var(--danger);margin-top:.25rem;font-size:.8rem}.smartscan-modal-overlay{-webkit-backdrop-filter:blur(5px);z-index:99999;box-sizing:border-box;background-color:#0f172a8c;width:100vw;height:100dvh;padding:1.25rem;animation:.18s ease-out smartscanFadeIn;position:fixed;inset:0;justify-content:center!important;align-items:center!important;display:flex!important}.smartscan-modal-dialog{border:1px solid var(--border-color);border-radius:var(--radius-xl);box-sizing:border-box;background-color:#fff;width:100%;max-width:530px;max-height:calc(100dvh - 3rem);animation:.2s cubic-bezier(.16,1,.3,1) smartscanScaleIn;position:relative;overflow:hidden;box-shadow:0 20px 25px -5px #0f172a26,0 10px 10px -5px #0f172a14;flex-direction:column!important;margin:auto!important;display:flex!important}@keyframes smartscanFadeIn{0%{opacity:0}to{opacity:1}}@keyframes smartscanScaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (max-width:480px){.smartscan-modal-overlay{padding:.85rem .65rem}.smartscan-modal-dialog{border-radius:var(--radius-xl);max-height:84dvh}}.dashboard-shell{background-color:var(--bg-app);width:100%;max-width:100vw;min-height:100dvh;display:flex;overflow-x:hidden}.desktop-sidebar-container{width:var(--sidebar-width);flex-shrink:0;display:block}.dashboard-main-area{flex-direction:column;flex:1;width:100%;min-width:0;display:flex;overflow-x:hidden}@media (max-width:1024px){.desktop-sidebar-container{display:none!important}}.sidebar{width:var(--sidebar-width);background-color:var(--surface);border-right:1px solid var(--border-color);z-index:40;-webkit-user-select:none;user-select:none;box-sizing:border-box;flex-direction:column;height:100dvh;display:flex;position:sticky;top:0;left:0}.sidebar-brand-wrapper{border-bottom:1px solid var(--border-light);box-sizing:border-box;align-items:center;padding:1.25rem 1rem;display:flex}.sidebar-brand{border-radius:var(--radius-md);width:100%;transition:opacity var(--transition-fast);box-sizing:border-box;padding:.25rem .35rem;text-decoration:none;flex-direction:row!important;align-items:center!important;gap:.75rem!important;display:flex!important}.sidebar-brand:hover{opacity:.9}.brand-icon-box{border:1px solid var(--border-color,#e2e8f0);background:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;padding:3px;display:flex;overflow:hidden;box-shadow:0 1px 3px #0f172a14}.brand-icon-box img{object-fit:contain;width:100%;height:100%;display:block}.brand-text-block{flex-direction:column;justify-content:center;display:flex}.brand-name{color:var(--text-primary);letter-spacing:-.02em;font-size:1.125rem;font-weight:700;line-height:1.2}.brand-badge{color:var(--primary);text-transform:uppercase;letter-spacing:.06em;margin-top:1px;font-size:.685rem;font-weight:600;line-height:1.2}.sidebar-nav{box-sizing:border-box;flex:1;padding:1.25rem .85rem;overflow-y:auto}.nav-header-label{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;padding:0 .85rem .65rem;font-size:.675rem;font-weight:700}.nav-list{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.nav-item{width:100%}.nav-link{border-radius:var(--radius-md);width:100%;height:44px;color:var(--text-secondary);letter-spacing:-.01em;transition:all var(--transition-fast);box-sizing:border-box;border:1px solid #0000;padding:0 .85rem;font-size:.9rem;font-weight:500;text-decoration:none;position:relative;flex-direction:row!important;align-items:center!important;gap:.75rem!important;display:flex!important}.nav-link:hover{background-color:var(--surface-subtle);color:var(--text-primary)}.nav-link-active{background-color:var(--primary-light)!important;color:var(--primary)!important;border-color:var(--primary-border)!important;font-weight:600!important}.nav-link-active:hover{background-color:var(--primary-light)!important;color:var(--primary)!important}.icon-wrapper{width:22px;height:22px;flex-shrink:0!important;justify-content:center!important;align-items:center!important;display:flex!important}.icon-idle{color:var(--text-secondary);transition:color var(--transition-fast)}.icon-active{color:var(--primary)}.nav-text{white-space:nowrap;text-overflow:ellipsis;flex:1;line-height:1;overflow:hidden}.active-dot{background-color:var(--primary);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-left:auto}.sidebar-footer{border-top:1px solid var(--border-light);box-sizing:border-box;background-color:#fafbfc;flex-direction:column;gap:.75rem;padding:1rem .85rem 1.25rem;display:flex}.user-profile-badge{border-radius:var(--radius-md);background-color:var(--surface);border:1px solid var(--border-color);box-sizing:border-box;gap:.7rem;padding:.45rem .65rem;flex-direction:row!important;align-items:center!important;display:flex!important}.user-avatar-circle{color:#3730a3;background:#e0e7ff;border:1px solid #c7d2fe;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.9rem;font-weight:700;display:flex}.user-profile-meta{flex:1;min-width:0}.user-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.835rem;font-weight:600;line-height:1.3;overflow:hidden}.user-email{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.735rem;line-height:1.3;overflow:hidden}.sidebar-logout-btn{border-radius:var(--radius-md);width:100%;height:38px;color:var(--text-secondary);border:1px solid var(--border-color);background-color:var(--surface);transition:all var(--transition-fast);cursor:pointer;gap:.55rem;padding:0 .85rem;font-size:.835rem;font-weight:600;flex-direction:row!important;justify-content:center!important;align-items:center!important;display:flex!important}.sidebar-logout-btn:hover{background-color:var(--danger-bg);color:var(--danger);border-color:#fecaca}.mobile-header{min-height:var(--topbar-height);height:calc(var(--topbar-height) + env(safe-area-inset-top,0px));background-color:var(--surface);border-bottom:1px solid var(--border-color);padding:env(safe-area-inset-top,0px) 1rem 0 1rem;z-index:50;justify-content:space-between;align-items:center;width:100%;display:none;position:sticky;top:0;box-shadow:0 1px 3px #0f172a08}@media (max-width:1024px){.mobile-header{display:flex}}.mobile-brand-link{gap:.65rem;min-height:44px;text-decoration:none;flex-direction:row!important;align-items:center!important;display:flex!important}.mobile-brand-icon{border:1px solid var(--border-color,#e2e8f0);background:#fff;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;padding:2.5px;display:flex;overflow:hidden;box-shadow:0 1px 3px #0f172a14}.mobile-brand-icon img{object-fit:contain;width:100%;height:100%;display:block}.mobile-brand-meta{flex-direction:column;display:flex}.mobile-brand-title{color:var(--text-primary);letter-spacing:-.02em;font-size:1.05rem;font-weight:700;line-height:1.2}.mobile-brand-badge{color:var(--primary);text-transform:uppercase;letter-spacing:.05em;font-size:.65rem;font-weight:600;line-height:1.2}.mobile-toggle-btn{border-radius:var(--radius-md);width:44px;height:44px;color:var(--text-primary);background-color:var(--surface-subtle);border:1px solid var(--border-color);transition:background-color var(--transition-fast);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:flex}.mobile-toggle-btn:active{background-color:var(--border-color)}.drawer-backdrop{-webkit-backdrop-filter:blur(3px);z-index:60;background-color:#0f172a73;animation:.2s ease-out smartscanFadeIn;position:fixed;inset:0}.drawer-panel{background-color:var(--surface);z-index:70;-webkit-user-select:none;user-select:none;flex-direction:column;width:285px;max-width:84vw;height:100dvh;transition:transform .24s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:0 20px 25px -5px #0f172a26}.drawer-panel.drawer-open{transform:translate(0)}.drawer-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:1rem 1.15rem;display:flex}.drawer-brand{align-items:center;gap:.65rem;display:flex}.drawer-close-btn{border-radius:var(--radius-md);width:38px;height:38px;color:var(--text-secondary);background-color:var(--surface-subtle);border:1px solid var(--border-color);cursor:pointer;justify-content:center;align-items:center;display:flex}.drawer-close-btn:active{background-color:var(--border-color)}.drawer-nav{flex:1;padding:1.15rem .85rem;overflow-y:auto}.drawer-section-title{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;padding:0 .85rem .65rem;font-size:.675rem;font-weight:700}.drawer-nav-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.drawer-nav-item{width:100%}.drawer-link{border-radius:var(--radius-md);width:100%;min-height:44px;color:var(--text-secondary);transition:all var(--transition-fast);box-sizing:border-box;border:1px solid #0000;padding:0 .85rem;font-size:.9rem;font-weight:500;text-decoration:none;position:relative;flex-direction:row!important;align-items:center!important;gap:.75rem!important;display:flex!important}.drawer-link:hover{background-color:var(--surface-subtle);color:var(--text-primary)}.drawer-link-active{background-color:var(--primary-light)!important;color:var(--primary)!important;border-color:var(--primary-border)!important;font-weight:600!important}.drawer-link-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.drawer-footer{border-top:1px solid var(--border-light);background-color:#fafbfc;flex-direction:column;gap:.75rem;padding:1rem .85rem 1.25rem;display:flex}.drawer-logout-btn{border-radius:var(--radius-md);width:100%;min-height:44px;color:var(--text-secondary);border:1px solid var(--border-color);background-color:var(--surface);transition:all var(--transition-fast);cursor:pointer;gap:.55rem;font-size:.85rem;font-weight:600;flex-direction:row!important;justify-content:center!important;align-items:center!important;display:flex!important}.drawer-logout-btn:active{background-color:var(--danger-bg);color:var(--danger);border-color:#fecaca}.text-ellipsis-safe{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.text-break-safe{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}
