@import "https://fonts.googleapis.com/css2?family=Outfit:wght@500;600;700;800&family=Inter:wght@400;450;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-base:#f7f8fa;--bg-surface:#fff;--bg-subtle:#f1f3f5;--bg-overlay:#0f172a73;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--text-disabled:#94a3b8;--text-inverse:#fff;--border:#e5e7eb;--border-strong:#d1d5db;--border-focus:#4f46e5;--accent:#4f46e5;--accent-hover:#4338ca;--accent-active:#3730a3;--accent-soft:#eef2ff;--accent-text:#4338ca;--success:#16a34a;--success-bg:#f0fdf4;--success-border:#bbf7d0;--warning:#d97706;--warning-bg:#fffbeb;--warning-border:#fde68a;--danger:#dc2626;--danger-bg:#fef2f2;--danger-border:#fecaca;--info:#2563eb;--info-bg:#eff6ff;--info-border:#bfdbfe;--sidebar-bg:#0f172a;--sidebar-border:#ffffff14;--sidebar-text:#94a3b8;--sidebar-text-strong:#f1f5f9;--sidebar-active-bg:#ffffff14;--violet-400:#a78bfa;--violet-500:#8b5cf6;--violet-600:#7c3aed;--violet-700:#6d28d9;--indigo-400:#818cf8;--indigo-500:#6366f1;--indigo-600:#4f46e5;--indigo-700:#4338ca;--blue-400:#60a5fa;--blue-500:#3b82f6;--blue-600:#2563eb;--blue-700:#1d4ed8;--cyan-500:#0891b2;--cyan-600:#0e7490;--emerald-500:#10b981;--emerald-600:#059669;--emerald-700:#047857;--teal-500:#14b8a6;--teal-600:#0d9488;--amber-500:#f59e0b;--amber-600:#d97706;--amber-700:#b45309;--orange-600:#ea580c;--red-500:#ef4444;--red-600:#dc2626;--pink-500:#ec4899;--pink-600:#db2777;--purple-600:#9333ea;--shadow-xs:0 1px 2px #1018280a;--shadow-sm:0 1px 3px #1018280f, 0 1px 2px #1018280a;--shadow-md:0 4px 12px #1018280f, 0 2px 4px #1018280a;--shadow-lg:0 12px 24px #10182814, 0 4px 8px #1018280a;--shadow-xl:0 20px 32px #1018281a;--shadow-2xl:0 24px 48px #10182824;--shadow-card:var(--shadow-sm);--shadow-focus:0 0 0 3px #4f46e52e;--r-sm:4px;--r-md:6px;--r-lg:8px;--r-xl:10px;--r-2xl:12px;--r-3xl:16px;--r-full:9999px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--sidebar-w:244px;--nav-h:56px;--transition:all .15s cubic-bezier(.4,0,.2,1);--spring:all .24s cubic-bezier(.34,1.3,.64,1);--font-body:"Inter", system-ui, sans-serif;--font-display:"Outfit", "Inter", sans-serif;--font-mono:"JetBrains Mono", monospace;--radius-sm:var(--r-sm);--radius-md:var(--r-md);--radius-lg:var(--r-lg);--radius-xl:var(--r-xl);--space-1:var(--s1);--space-2:var(--s2);--space-3:var(--s3);--space-4:var(--s4);--space-6:var(--s6);--space-8:var(--s8);--primary-50:var(--accent-soft);--primary-500:var(--accent);--primary-600:var(--accent-hover);--grad-ai:var(--accent)}[data-theme=midnight]{--bg-base:#0b1120;--bg-surface:#131c2e;--bg-subtle:#1c2740;--bg-overlay:#0009;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--text-disabled:#64748b;--text-inverse:#0b1120;--border:#253247;--border-strong:#334155;--border-focus:#818cf8;--accent:#6366f1;--accent-hover:#818cf8;--accent-active:#a5b4fc;--accent-soft:#6366f126;--accent-text:#a5b4fc;--success-bg:#16a34a26;--warning-bg:#d9770626;--danger-bg:#dc262626;--info-bg:#2563eb26;--sidebar-bg:#0a0f1c;--shadow-card:0 1px 3px #0006;--shadow-focus:0 0 0 3px #6366f14d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:14px}body{font-family:var(--font-body);background:var(--bg-base);color:var(--text-primary);min-height:100vh;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:content-box;border:3px solid #0000;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--text-disabled);background-clip:content-box}h1,h2,h3,h4,h5{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.01em;font-weight:700;line-height:1.25}h1{letter-spacing:-.02em;font-size:1.5rem;font-weight:700}h2{font-size:1.25rem}h3{font-size:1.05rem}h4{font-size:.95rem}p{color:var(--text-secondary);line-height:1.6}.app-layout{height:100vh;display:flex;overflow:hidden}.main-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.page-body{padding:var(--s6);flex:1;overflow-y:auto}.fade-in{animation:.25s both pageFade}.sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);z-index:100;border-right:1px solid var(--sidebar-border);flex-direction:column;flex-shrink:0;height:100vh;transition:width .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.sidebar.collapsed{width:64px}.sidebar-logo{height:var(--nav-h);border-bottom:1px solid var(--sidebar-border);flex-shrink:0;align-items:center;gap:10px;padding:0 16px;display:flex}.sidebar-logo-mark{background:var(--accent);border-radius:var(--r-md);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-weight:800;display:flex}.sidebar-wordmark{font-family:var(--font-display);color:#fff;white-space:nowrap;letter-spacing:-.01em;font-size:1.125rem;font-weight:700}.sidebar-wordmark span{color:var(--accent-active)}.sidebar-nav{padding:var(--s3) var(--s2);flex-direction:column;flex:1;gap:1px;display:flex;overflow-y:auto}.sidebar-section-label{text-transform:uppercase;letter-spacing:.09em;color:#4b5563;padding:var(--s4) var(--s3) var(--s2);white-space:nowrap;font-size:.65rem;font-weight:700;overflow:hidden}.nav-item{align-items:center;gap:var(--s3);border-radius:var(--r-md);color:var(--sidebar-text);cursor:pointer;transition:var(--transition);white-space:nowrap;-webkit-user-select:none;user-select:none;width:100%;padding:8px 12px;font-size:.875rem;font-weight:500;display:flex;position:relative;overflow:hidden}.nav-item:hover{color:var(--sidebar-text-strong);background:#ffffff0d}.nav-item.active{background:var(--sidebar-active-bg);color:#fff;font-weight:600}.nav-item.active:before{content:"";background:var(--accent-active);border-radius:0 3px 3px 0;width:3px;position:absolute;top:18%;bottom:18%;left:0}.nav-icon{flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.nav-badge{color:#fff;border-radius:var(--r-full);background:#ffffff1f;flex-shrink:0;margin-left:auto;padding:1px 7px;font-size:.65rem;font-weight:700}.sidebar-bottom{padding:var(--s2);border-top:1px solid var(--sidebar-border);flex-direction:column;flex-shrink:0;gap:1px;display:flex}.sidebar-user-card{border-radius:var(--r-md);background:#ffffff0a;align-items:center;gap:10px;margin-top:6px;padding:8px;display:flex}.sidebar-user-avatar{border-radius:var(--r-full);background:var(--accent);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.75rem;font-weight:700;display:flex}.sidebar-user-name{color:var(--sidebar-text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:600;overflow:hidden}.sidebar-user-email{color:var(--sidebar-text);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.sidebar-user-role{color:var(--accent-active);text-transform:uppercase;letter-spacing:.06em;margin-top:1px;font-size:.62rem;font-weight:700}.sidebar-signout-btn{border-radius:var(--r-md);width:28px;height:28px;color:var(--sidebar-text);transition:var(--transition);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-signout-btn:hover{color:#fff;background:#ffffff14}.sidebar-toggle{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-full);cursor:pointer;width:22px;height:22px;box-shadow:var(--shadow-sm);transition:var(--transition);z-index:10;color:var(--text-secondary);justify-content:center;align-items:center;display:flex;position:absolute;top:68px;right:-11px}.sidebar-toggle:hover{color:var(--accent);border-color:var(--accent)}.topnav{height:var(--nav-h);background:var(--bg-surface);border-bottom:1px solid var(--border);padding:0 var(--s6);align-items:center;gap:var(--s3);z-index:90;flex-shrink:0;display:flex;position:relative}.topnav-search{flex:1;max-width:360px;position:relative}.topnav-search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.topnav-actions{align-items:center;gap:var(--s2);margin-left:auto;display:flex}.topnav-icon-btn{border-radius:var(--r-md);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;transition:var(--transition);justify-content:center;align-items:center;display:flex;position:relative}.topnav-icon-btn:hover{background:var(--bg-subtle);color:var(--text-primary)}.topnav-notif-dot{background:var(--danger);border:2px solid var(--bg-surface);border-radius:99px;min-width:8px;height:8px;position:absolute;top:6px;right:6px}.btn{justify-content:center;align-items:center;gap:var(--s2);border-radius:var(--r-md);font-family:var(--font-body);transition:var(--transition);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;padding:8px 14px;font-size:.875rem;font-weight:600;line-height:1.2;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-active)}.btn-secondary{background:var(--bg-surface);color:var(--text-secondary);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border-strong);color:var(--text-primary)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--bg-subtle);color:var(--text-primary)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-success{background:var(--success);color:#fff}.btn-ai{background:var(--accent);color:#fff}.btn-ai:hover:not(:disabled){background:var(--accent-hover)}.btn-white{background:var(--accent);color:#fff}.btn-white:hover:not(:disabled){background:var(--accent-hover)}.btn-outline{background:var(--bg-surface);color:var(--text-secondary);border-color:var(--border)}.btn-outline:hover:not(:disabled){background:var(--bg-subtle);color:var(--text-primary)}.btn-sm{padding:5px 10px;font-size:.8125rem}.btn-lg{padding:10px 20px;font-size:.9375rem}.btn-icon{padding:8px}.btn-sm.btn-icon{padding:6px}.tinput,.input{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);width:100%;height:36px;color:var(--text-primary);transition:var(--transition);padding:0 12px;font-size:.875rem}.tinput:focus,.input:focus{border-color:var(--accent);box-shadow:var(--shadow-focus);outline:none}.tinput::placeholder,.input::placeholder{color:var(--text-disabled)}.tinput-lg,.input-lg{height:44px;padding:0 16px;font-size:.9375rem}.input-label{color:var(--text-secondary);margin-bottom:6px;font-size:.8125rem;font-weight:600;display:block}.input-wrap{flex-direction:column;gap:2px;display:flex}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:34px}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-card)}.card-body{padding:var(--s5)}.card-header{padding:var(--s4) var(--s5);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:var(--s3);display:flex}.card-title{font-family:var(--font-display);color:var(--text-primary);font-size:.95rem;font-weight:700}.card-hover{transition:var(--transition)}.card-hover:hover{box-shadow:var(--shadow-md)}.kpi-card{--kpi-accent:var(--accent);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--s5);box-shadow:var(--shadow-card);transition:var(--transition);flex-direction:column;gap:6px;display:flex;position:relative}.kpi-card:hover{box-shadow:var(--shadow-md)}.kpi-card .kpi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.kpi-card .kpi-value{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.02em;font-size:1.75rem;font-weight:700;line-height:1.1}.kpi-card .kpi-change{color:var(--text-muted);align-items:center;gap:4px;font-size:.8125rem;font-weight:500;display:flex}.kpi-card .kpi-icon{right:var(--s5);top:var(--s5);border-radius:var(--r-md);background:color-mix(in srgb, var(--kpi-accent) 12%, transparent);width:36px;height:36px;color:var(--kpi-accent);justify-content:center;align-items:center;font-size:1rem;display:flex;position:absolute}.kpi-violet{--kpi-accent:#6d28d9}.kpi-emerald{--kpi-accent:#059669}.kpi-amber{--kpi-accent:#b45309}.kpi-blue{--kpi-accent:#2563eb}.kpi-pink{--kpi-accent:#be185d}.kpi-teal{--kpi-accent:#0d9488}.kpi-orange{--kpi-accent:#c2410c}.kpi-rose{--kpi-accent:#e11d48}.kpi-cyan{--kpi-accent:#0891b2}.kpi-purple{--kpi-accent:#9333ea}.kpi-aurora{--kpi-accent:#4f46e5}.kpi-sunset{--kpi-accent:#dc2626}.page-hero{justify-content:space-between;align-items:flex-start;gap:var(--s4);padding-bottom:var(--s5);margin-bottom:var(--s6);border-bottom:1px solid var(--border);display:flex}.page-hero-title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.02em;margin-bottom:3px;font-size:1.5rem;font-weight:700}.page-hero-sub{color:var(--text-muted);font-size:.9rem;font-weight:400}.page-hero-actions{gap:var(--s2);flex-shrink:0;display:flex}.badge{border-radius:var(--r-full);border:1px solid #0000;align-items:center;gap:4px;padding:2px 9px;font-size:.75rem;font-weight:600;line-height:1.5;display:inline-flex}.badge-primary{background:var(--accent-soft);color:var(--accent-text)}.badge-success{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}.badge-warning{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.badge-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.badge-info{background:var(--info-bg);color:var(--info);border-color:var(--info-border)}.badge-neutral{background:var(--bg-subtle);color:var(--text-secondary);border-color:var(--border)}.badge-ai{background:var(--accent-soft);color:var(--accent-text)}.badge-pink{color:#be185d;background:#fce7f3}.badge-teal{color:#0f766e;background:#ccfbf1}.badge-purple{color:#7e22ce;background:#f3e8ff}.badge-orange{color:#c2410c;background:#ffedd5}.badge-soft-primary{background:var(--accent-soft);color:var(--accent-text)}.badge-soft-success{background:var(--success-bg);color:var(--success)}.badge-soft-warning{background:var(--warning-bg);color:var(--warning)}.badge-soft-danger{background:var(--danger-bg);color:var(--danger)}.avatar{border-radius:var(--r-full);font-family:var(--font-display);background:var(--bg-subtle);color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:inline-flex;overflow:hidden}.avatar-sm{width:26px;height:26px;font-size:.6rem}.avatar-md{width:34px;height:34px;font-size:.8rem}.avatar-lg{width:44px;height:44px;font-size:1rem}.avatar-xl{width:60px;height:60px;font-size:1.3rem}.avatar img{object-fit:cover;width:100%;height:100%}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.875rem}.table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;background:var(--bg-subtle);border-bottom:1px solid var(--border);padding:10px 16px;font-size:.7rem;font-weight:700}.table td{color:var(--text-primary);border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 16px}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:var(--transition)}.table tbody tr:hover td{background:var(--bg-subtle)}.text-primary-color{color:var(--accent-text)}.progress{background:var(--bg-subtle);border-radius:var(--r-full);height:6px;overflow:hidden}.progress-bar{border-radius:var(--r-full);background:var(--accent);height:100%;transition:width .5s cubic-bezier(.4,0,.2,1)}.progress-sm{height:4px}.progress-lg{height:8px}.divider{background:var(--border);height:1px;margin:var(--s4) 0}.modal-backdrop{background:var(--bg-overlay);z-index:1000;justify-content:center;align-items:center;padding:16px;animation:.12s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-surface);border-radius:var(--r-2xl);box-shadow:var(--shadow-2xl);border:1px solid var(--border);width:100%;max-height:90vh;animation:.16s modalPop;overflow-y:auto}.modal-sm{max-width:440px}.modal-md{max-width:640px}.modal-lg{max-width:900px}.modal-header{padding:var(--s5) var(--s6);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.modal-header h3,.modal-header h2{color:var(--text-primary)}.modal-body{padding:var(--s6)}.modal-footer{padding:var(--s4) var(--s6);border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:var(--s3);display:flex}.toast-container{gap:var(--s2);z-index:2000;flex-direction:column;display:flex;position:fixed;bottom:24px;right:24px}.toast{align-items:center;gap:var(--s3);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);background:var(--bg-surface);min-width:280px;max-width:400px;color:var(--text-primary);border:1px solid var(--border);border-left:3px solid var(--text-muted);padding:12px 16px;font-size:.875rem;font-weight:500;animation:.2s slideInRight;display:flex}.toast-icon{flex-shrink:0;display:flex}.toast-success{border-left-color:var(--success)}.toast-success .toast-icon{color:var(--success)}.toast-danger{border-left-color:var(--danger)}.toast-danger .toast-icon{color:var(--danger)}.toast-warning{border-left-color:var(--warning)}.toast-warning .toast-icon{color:var(--warning)}.toast-info{border-left-color:var(--info)}.toast-info .toast-icon{color:var(--info)}.tabs{border-bottom:1px solid var(--border);gap:2px;display:flex}.tab{color:var(--text-muted);cursor:pointer;transition:var(--transition);border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:10px 16px;font-size:.875rem;font-weight:600;display:flex}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.kanban-board{gap:var(--s3);padding-bottom:var(--s3);align-items:flex-start;height:100%;display:flex;overflow-x:auto}.kanban-column{background:var(--bg-base);border-radius:var(--r-xl);width:280px;padding:var(--s3);border:1px solid var(--border);flex-shrink:0}.kanban-col-header{margin-bottom:var(--s3);justify-content:space-between;align-items:center;padding:0 4px;display:flex}.kanban-col-title{font-size:.85rem;font-weight:700}.kanban-col-count{background:var(--bg-subtle);border-radius:var(--r-full);min-width:22px;height:22px;color:var(--text-muted);justify-content:center;align-items:center;padding:0 6px;font-size:.72rem;font-weight:700;display:flex}.kanban-cards{gap:var(--s2);flex-direction:column;min-height:40px;display:flex}.kanban-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s3) var(--s4);box-shadow:var(--shadow-xs);transition:var(--transition)}.kanban-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong)}.app-switcher-overlay{background:var(--bg-overlay);z-index:800;justify-content:center;align-items:flex-start;padding-top:80px;animation:.12s fadeIn;display:flex;position:fixed;inset:0}.app-switcher{background:var(--bg-surface);border-radius:var(--r-2xl);box-shadow:var(--shadow-2xl);border:1px solid var(--border);padding:var(--s6);width:560px;max-width:96vw;animation:.16s modalPop}.app-grid{gap:var(--s2);grid-template-columns:repeat(4,1fr);display:grid}.app-item{align-items:center;gap:var(--s2);padding:var(--s4) var(--s2);border-radius:var(--r-lg);cursor:pointer;transition:var(--transition);text-align:center;background:0 0;border:1px solid #0000;flex-direction:column;display:flex}.app-item:hover{background:var(--bg-subtle)}.app-item.active-app{border-color:var(--accent);background:var(--accent-soft)}.app-item-icon{border-radius:var(--r-lg);background:var(--bg-subtle);width:44px;height:44px;color:var(--text-secondary);justify-content:center;align-items:center;display:flex}.app-item.active-app .app-item-icon{background:var(--accent);color:#fff}.app-item-name{color:var(--text-secondary);font-size:.75rem;font-weight:600}.notif-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-xl);width:360px;box-shadow:var(--shadow-xl);z-index:600;animation:.12s slideDown;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notif-item{align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s4);cursor:pointer;transition:var(--transition);border-bottom:1px solid var(--border);display:flex}.notif-item:hover{background:var(--bg-subtle)}.notif-item.unread{background:var(--accent-soft)}.notif-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-top:6px}.login-page{background:var(--bg-base);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.login-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-2xl);width:420px;max-width:96vw;padding:var(--s8);box-shadow:var(--shadow-lg);z-index:1;position:relative}.login-field-label{color:var(--text-secondary);margin-bottom:6px;font-size:.8125rem;font-weight:600;display:block}.login-input{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);width:100%;height:42px;color:var(--text-primary);transition:var(--transition);font-size:.9rem;font-family:var(--font-body);padding:0 14px}.login-input:focus{border-color:var(--accent);box-shadow:var(--shadow-focus);outline:none}.login-input::placeholder{color:var(--text-disabled)}.login-divider{background:var(--border);height:1px}.ai-panel{background:var(--bg-surface);border-left:1px solid var(--border);width:440px;box-shadow:var(--shadow-2xl);z-index:950;flex-direction:column;max-width:100vw;display:flex;position:fixed;top:0;bottom:0;right:0}.ai-panel-header{background:var(--bg-surface);border-bottom:1px solid var(--border);padding:var(--s4) var(--s5);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.ai-panel-logo{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:var(--r-lg);justify-content:center;align-items:center;display:flex}.ai-quick-section{padding:var(--s3) var(--s4);border-bottom:1px solid var(--border);background:var(--bg-base);flex-shrink:0}.ai-cat-btn{border-radius:var(--r-full);cursor:pointer;transition:var(--transition);background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted);font-size:.75rem;font-weight:600;font-family:var(--font-body);padding:4px 10px}.ai-cat-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.ai-cat-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.ai-quick-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.ai-quick-btn{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;color:var(--text-secondary);transition:var(--transition);text-align:left;font-size:.8rem;font-weight:500;font-family:var(--font-body);align-items:center;gap:7px;padding:8px 10px;display:flex}.ai-quick-btn:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border-strong);color:var(--text-primary)}.ai-quick-btn:disabled{opacity:.5;cursor:not-allowed}.ai-quick-icon{color:var(--text-muted);flex-shrink:0;display:flex}.ai-messages{padding:var(--s4);gap:var(--s4);flex-direction:column;flex:1;display:flex;overflow-y:auto}.ai-msg{gap:var(--s2);align-items:flex-start;display:flex}.ai-msg.user{flex-direction:row-reverse}.ai-avatar-bubble{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:var(--r-full);flex-shrink:0;justify-content:center;align-items:center;display:flex}.ai-bubble{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--r-lg);max-width:85%;padding:var(--s3) var(--s4)}.ai-msg.user .ai-bubble{background:var(--accent);border-color:var(--accent)}.ai-bubble-text{color:var(--text-primary);margin:0;font-size:.875rem;line-height:1.55}.ai-msg.user .ai-bubble-text{color:#fff}.ai-ts{color:var(--text-disabled);margin-top:5px;font-size:.7rem;display:block}.ai-msg.user .ai-ts{color:#ffffffb3;text-align:right}.ai-thinking{gap:4px;padding:4px 0;display:flex}.ai-thinking span{background:var(--text-disabled);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite bounce}.ai-thinking span:nth-child(2){animation-delay:.15s}.ai-thinking span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,80%,to{opacity:.5;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.ai-bubble-data{margin-top:var(--s3)}.ai-data-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.ai-stat-row{border-bottom:1px solid var(--border);display:flex}.ai-stat{text-align:center;border-right:1px solid var(--border);flex:1;padding:10px 12px}.ai-stat:last-child{border-right:none}.ai-stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:4px;font-size:.68rem;font-weight:700;display:block}.ai-stat-value{font-family:var(--font-display);color:var(--text-primary);font-size:1.05rem;font-weight:700;display:block}.ai-bar-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:7px 12px;display:flex}.ai-bar-row:last-child{border-bottom:none}.ai-bar-label{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;width:70px;font-size:.75rem;overflow:hidden}.ai-bar-track{background:var(--bg-subtle);border-radius:var(--r-full);flex:1;height:6px;overflow:hidden}.ai-bar-fill{background:var(--accent);border-radius:var(--r-full);height:100%;transition:width .5s}.ai-bar-value{text-align:right;width:48px;color:var(--text-primary);flex-shrink:0;font-size:.8rem;font-weight:600}.ai-table-mini{overflow:hidden}.ai-table-header{background:var(--bg-subtle);border-bottom:1px solid var(--border);gap:8px;padding:6px 12px;display:flex}.ai-table-header span{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);flex:1;font-size:.68rem;font-weight:700}.ai-table-row{border-bottom:1px solid var(--border);transition:var(--transition);align-items:center;gap:8px;padding:8px 12px;display:flex}.ai-table-row:hover{background:var(--bg-subtle)}.ai-table-row:last-child{border-bottom:none}.ai-table-row span{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.8125rem;overflow:hidden}.ai-alert-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 12px;display:flex}.ai-alert-row:last-child{border-bottom:none}.ai-alert-name{flex:1;font-size:.8125rem;font-weight:500}.ai-alert-qty{color:var(--text-muted);font-size:.8rem;font-weight:600}.ai-badge{border-radius:var(--r-full);padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-flex}.ai-badge.success{background:var(--success-bg);color:var(--success)}.ai-badge.warning{background:var(--warning-bg);color:var(--warning)}.ai-badge.danger{background:var(--danger-bg);color:var(--danger)}.ai-badge.info{background:var(--info-bg);color:var(--info)}.ai-insight{background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-secondary);margin:10px 12px;padding:10px 12px;font-size:.8rem;line-height:1.5}.ai-recommendation{border-bottom:1px solid var(--border);gap:12px;padding:12px;display:flex}.ai-recommendation:last-child{border-bottom:none}.ai-rec-num{background:var(--accent-soft);width:26px;height:26px;color:var(--accent);border-radius:var(--r-full);flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:.8rem;font-weight:700;display:flex}.ai-rec-title{color:var(--text-primary);margin-bottom:4px;font-size:.875rem;font-weight:600}.ai-rec-body{color:var(--text-secondary);font-size:.8125rem;line-height:1.5}.ai-input-area{padding:var(--s4);border-top:1px solid var(--border);background:var(--bg-surface);flex-shrink:0}.ai-input-wrap{gap:var(--s2);align-items:center;display:flex}.ai-input{border:1px solid var(--border);border-radius:var(--r-full);background:var(--bg-base);font-size:.875rem;font-family:var(--font-body);color:var(--text-primary);transition:var(--transition);flex:1;padding:9px 14px}.ai-input:focus{border-color:var(--accent);background:var(--bg-surface);box-shadow:var(--shadow-focus);outline:none}.ai-input::placeholder{color:var(--text-disabled)}.ai-send-btn{background:var(--accent);border-radius:var(--r-full);cursor:pointer;color:#fff;width:38px;height:38px;transition:var(--transition);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ai-send-btn:hover:not(:disabled){background:var(--accent-hover)}.ai-send-btn:disabled{opacity:.4;cursor:not-allowed}.grid-2{gap:var(--s4);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--s4);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--s4);grid-template-columns:repeat(4,1fr);display:grid}.grid-auto{gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-2{gap:var(--s2)}.gap-3{gap:var(--s3)}.gap-4{gap:var(--s4)}.mb-1{margin-bottom:var(--s1)}.mb-3{margin-bottom:var(--s3)}.mb-4{margin-bottom:var(--s4)}.mb-5{margin-bottom:var(--s5)}.mb-6{margin-bottom:var(--s6)}.mt-2{margin-top:var(--s2)}.mt-3{margin-top:var(--s3)}.mt-4{margin-top:var(--s4)}.ml-auto{margin-left:auto}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-display{font-family:var(--font-display)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded-full{border-radius:var(--r-full)}.relative{position:relative}.w-full{width:100%}.empty-state{text-align:center;justify-content:center;align-items:center;gap:var(--s3);flex-direction:column;padding:56px 32px;display:flex}.empty-state-icon{width:48px;height:48px;color:var(--text-disabled);background:var(--bg-subtle);border-radius:var(--r-full);justify-content:center;align-items:center;display:flex}.empty-state-title{font-family:var(--font-display);color:var(--text-primary);font-size:1.05rem;font-weight:700}.skeleton{background:linear-gradient(90deg,var(--bg-subtle) 25%,var(--bg-base) 50%,var(--bg-subtle) 75%);border-radius:var(--r-md);background-size:200% 100%;animation:1.4s infinite shimmer}.onboarding-page{background:var(--bg-base);min-height:100vh;padding:var(--s6);justify-content:center;align-items:center;display:flex}.onboarding-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-2xl);width:100%;max-width:640px;box-shadow:var(--shadow-lg);animation:.24s modalPop}.onboarding-header{padding:24px 28px 0}.onboarding-body{flex-direction:column;gap:16px;max-height:60vh;padding:22px 28px;display:flex;overflow-y:auto}.onboarding-footer{border-top:1px solid var(--border);justify-content:space-between;gap:12px;padding:18px 28px 24px;display:flex}.onboarding-progress{gap:6px;margin-top:16px;display:flex}.onboarding-progress span{background:var(--bg-subtle);border-radius:99px;flex:1;height:4px;transition:background .3s}.onboarding-progress span.done{background:var(--accent)}.type-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.type-item{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-surface);cursor:pointer;transition:var(--transition);font-family:var(--font-body);color:var(--text-secondary);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;font-size:.78rem;font-weight:500;display:flex}.type-item:hover{border-color:var(--border-strong);background:var(--bg-subtle)}.type-item.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.type-item .type-icon{color:var(--text-muted);display:flex}.type-item.selected .type-icon{color:var(--accent)}.module-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.module-toggle{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-surface);cursor:pointer;transition:var(--transition);color:var(--text-secondary);align-items:center;gap:10px;padding:12px 14px;font-size:.85rem;font-weight:500;display:flex}.module-toggle.enabled{border-color:var(--accent);background:var(--accent-soft);color:var(--text-primary)}.module-toggle input{accent-color:var(--accent);width:16px;height:16px}.module-toggle .module-icon{color:var(--text-muted);display:flex}.module-toggle.enabled .module-icon{color:var(--accent)}@media (width<=640px){.type-grid{grid-template-columns:repeat(2,1fr)}.module-grid{grid-template-columns:1fr}.onboarding-body{max-height:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pageFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes modalPop{0%{opacity:0;transform:scale(.98)translateY(4px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spin{animation:1s linear infinite spin}.pulse{animation:2s ease-in-out infinite pulse}.stagger-1,.stagger-2,.stagger-3,.stagger-4{animation:.3s both fadeInUp}.stagger-1{animation-delay:30ms}.stagger-2{animation-delay:60ms}.stagger-3{animation-delay:90ms}.stagger-4{animation-delay:.12s}.mobile-only{display:none}.sidebar-scrim{z-index:190;background:#0f172a80;animation:.2s fadeIn;position:fixed;inset:0}@media (width<=1024px){.sidebar{z-index:200;transition:left .2s;position:fixed;left:-260px}.sidebar.open{left:0}.mobile-only{display:flex}.grid-4{grid-template-columns:repeat(2,1fr)}.app-grid{grid-template-columns:repeat(3,1fr)}.ai-panel{width:100%}}@media (width<=640px){.page-body{padding:var(--s4)}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.app-grid{grid-template-columns:repeat(2,1fr)}.page-hero{flex-direction:column}}
