:root{--bg-app:#090e1a;--bg-surface:#111827;--bg-surface-2:#172033;--bg-elevated:#1e293b;--bg-hover:#94a3b814;--border:#243044;--border-strong:#334155;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--text-dim:#64748b;--brand:#3b82f6;--brand-hover:#2563eb;--brand-soft:#3b82f624;--ai:#8b5cf6;--ai-hover:#7c3aed;--ai-soft:#8b5cf624;--success:#10b981;--success-soft:#10b98124;--warning:#f59e0b;--warning-soft:#f59e0b24;--danger:#ef4444;--danger-soft:#ef444424;--info:#06b6d4;--info-soft:#06b6d424;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 24px #00000059;--shadow-lg:0 20px 48px #00000080;--sidebar-width:256px;--navbar-height:64px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}*,:before,:after{box-sizing:border-box}html,body{background-color:var(--bg-app);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}code,.mono{font-family:var(--font-mono)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-app)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}.app-shell{background:var(--bg-app);min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);z-index:40;flex-direction:column;transition:transform .2s;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{height:var(--navbar-height);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:0 20px;display:flex}.brand-logo{letter-spacing:-.02em;color:var(--text-primary);align-items:center;gap:10px;font-size:16px;font-weight:700;display:flex}.brand-mark{background:linear-gradient(135deg, var(--brand), var(--ai));color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:16px 12px;display:flex;overflow-y:auto}.sidebar-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);padding:12px 12px 6px;font-size:11px;font-weight:600}.nav-item{border-radius:var(--radius-md);color:var(--text-muted);align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--brand-soft);color:#93c5fd;border:1px solid #3b82f640}.sidebar-footer{border-top:1px solid var(--border);color:var(--text-dim);padding:14px 16px;font-size:12px}.app-main{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex}.top-navbar{height:var(--navbar-height);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);z-index:30;background:#111827d9;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.navbar-left{align-items:center;gap:12px;display:flex}.mobile-menu-btn{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:6px;display:none}.navbar-right{align-items:center;gap:12px;display:flex}.page-content{flex:1;width:100%;max-width:1360px;margin:0 auto;padding:24px}.sidebar-overlay{display:none}@media (width<=960px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay.open{z-index:35;background:#0009;display:block;position:fixed;inset:0}.app-main{margin-left:0}.mobile-menu-btn{justify-content:center;align-items:center;display:inline-flex}.page-content{padding:16px}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-title{letter-spacing:-.02em;color:var(--text-primary);margin:0;font-size:24px;font-weight:700}.page-subtitle{color:var(--text-muted);margin:4px 0 0;font-size:14px}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px}.card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.card-title{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.card-subtitle{color:var(--text-muted);margin:2px 0 0;font-size:13px}.grid{gap:16px;display:grid}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=1100px){.grid-cols-4,.grid-cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.grid-cols-4,.grid-cols-3,.grid-cols-2{grid-template-columns:1fr}}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px;display:flex}.stat-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:12px;font-weight:600}.stat-value{letter-spacing:-.02em;color:var(--text-primary);margin-top:6px;font-size:26px;font-weight:700}.stat-helper{color:var(--text-dim);margin-top:4px;font-size:12px}.stat-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-sm{padding:6px 11px;font-size:12px}.btn-lg{padding:12px 20px;font-size:14px}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-hover)}.btn-ai{background:linear-gradient(135deg, #6366f1, var(--ai));color:#fff}.btn-ai:hover:not(:disabled){background:linear-gradient(135deg, #4f46e5, var(--ai-hover))}.btn-success{background:var(--success);color:#052e16}.btn-success:hover:not(:disabled){filter:brightness(1.08)}.btn-warning{background:var(--warning-soft);color:#fcd34d;border-color:#f59e0b59}.btn-warning:hover:not(:disabled){background:#f59e0b38}.btn-danger{background:var(--danger-soft);color:#fca5a5;border-color:#ef444459}.btn-danger:hover:not(:disabled){background:#ef44443d}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:#273449}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.badge{border-radius:var(--radius-full);letter-spacing:.03em;white-space:nowrap;border:1px solid #0000;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-neutral{color:var(--text-secondary);background:#94a3b824;border-color:#94a3b840}.badge-info{background:var(--brand-soft);color:#93c5fd;border-color:#3b82f64d}.badge-ai{background:var(--ai-soft);color:#c4b5fd;border-color:#8b5cf652}.badge-success{background:var(--success-soft);color:#6ee7b7;border-color:#10b9814d}.badge-warning{background:var(--warning-soft);color:#fcd34d;border-color:#f59e0b4d}.badge-danger{background:var(--danger-soft);color:#fca5a5;border-color:#ef44444d}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-label{color:var(--text-secondary);font-size:13px;font-weight:500}.form-input,.form-select,.form-textarea{background:var(--bg-app);border:1px solid var(--border-strong);border-radius:var(--radius-md);width:100%;color:var(--text-primary);padding:10px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #3b82f62e}.form-textarea{resize:vertical;min-height:90px}.form-error{color:#fca5a5;font-size:12px}.form-hint{color:var(--text-dim);font-size:12px}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.data-table th{background:var(--bg-surface-2);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 14px;font-size:12px;font-weight:600}.data-table td{border-bottom:1px solid var(--border);color:var(--text-secondary);vertical-align:middle;padding:12px 14px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--bg-hover)}.alert{border-radius:var(--radius-md);border:1px solid #0000;align-items:flex-start;gap:10px;padding:12px 16px;font-size:13px;display:flex}.alert-info{color:#bfdbfe;background:#3b82f61f;border-color:#3b82f64d}.alert-success{background:var(--success-soft);color:#a7f3d0;border-color:#10b9814d}.alert-warning{background:var(--warning-soft);color:#fde68a;border-color:#f59e0b4d}.alert-danger{background:var(--danger-soft);color:#fecaca;border-color:#ef44444d}.alert-ai{background:var(--ai-soft);color:#ddd6fe;border-color:#8b5cf652}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:60;background:#020617c7;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-panel{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:620px;max-height:90vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.modal-panel.modal-lg{max-width:820px}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;display:flex}.modal-title{margin:0;font-size:17px;font-weight:600}.modal-body{padding:20px 22px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:10px;padding:14px 22px;display:flex}.tabs{border-bottom:1px solid var(--border);align-items:center;gap:6px;margin-bottom:20px;display:flex;overflow-x:auto}.tab-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:600;display:inline-flex}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:#93c5fd;border-bottom-color:var(--brand)}.progress-track{background:var(--bg-app);border-radius:var(--radius-full);border:1px solid var(--border);width:100%;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--brand), var(--success));border-radius:var(--radius-full);height:100%;transition:width .25s}.auth-page{background:radial-gradient(circle at top left, #3b82f624, transparent 36%), radial-gradient(circle at bottom right, #8b5cf624, transparent 36%), var(--bg-app);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:440px;box-shadow:var(--shadow-lg);padding:32px}.spinner{border:2px solid #94a3b840;border-top-color:currentColor;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.toast-stack{z-index:80;flex-direction:column;gap:10px;width:calc(100% - 40px);max-width:380px;display:flex;position:fixed;bottom:20px;right:20px}.toast-item{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;font-size:13px;display:flex}.popover-wrap{position:relative}.popover-panel{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:340px;max-width:calc(100vw - 24px);box-shadow:var(--shadow-lg);z-index:50;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.flex-wrap{flex-wrap:wrap}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.text-muted{color:var(--text-muted)}.text-dim{color:var(--text-dim)}.text-sm{font-size:12px}.font-semibold{font-weight:600}
