*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-app: #f8f9fa;--bg-default: #ffffff;--bg-surface: #f1f5f9;--bg-overlay: #e8edf3;--bg-inverse: #0f172a;--bg-subtle: #f8fafc;--bg-muted: #f1f5f9;--border-default: #e2e8f0;--border-strong: #c8d3e0;--border-muted: #eef2f7;--fg-default: #1a2332;--fg-muted: #4a5568;--fg-subtle: #718096;--fg-faint: #6b7280;--fg-on-accent: #ffffff;--brand: #16a34a;--brand-hover: #15803d;--brand-active: #166534;--brand-subtle: #f0fdf4;--brand-muted: #dcfce7;--brand-border: #86efac;--brand-fg: #15803d;--success: #16a34a;--success-subtle: #f0fdf4;--success-border: #bbf7d0;--danger: #dc2626;--danger-subtle: #fef2f2;--danger-border: #fecaca;--warning: #d97706;--warning-subtle: #fffbeb;--warning-border: #fde68a;--info: #2563eb;--info-subtle: #eff6ff;--info-border: #bfdbfe;--nav-bg: #ffffff;--nav-border: #e2e8f0;--nav-item: #64748b;--nav-item-hover-bg: #f0fdf4;--nav-item-hover-fg: #16a34a;--nav-item-active-bg: #f0fdf4;--nav-item-active-fg: #15803d;--nav-item-active-bar: #16a34a;--input-bg: #ffffff;--input-border: #d0d9e4;--input-focus: #16a34a;--shadow-xs: 0 1px 2px rgba(0,0,0,.04);--shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);--shadow-lg: 0 12px 40px rgba(0,0,0,.12), 0 4px 8px rgba(0,0,0,.06);--shadow-focus-brand: 0 0 0 3px rgba(22,163,74,.16);--shadow-focus-danger:0 0 0 3px rgba(220,38,38,.14);--sidebar-w: 220px;--sidebar-w-mini: 52px;--topbar-h: 48px;--r-xs: 3px;--r-sm: 5px;--r-md: 7px;--r-lg: 10px;--r-xl: 14px;--r-2xl: 18px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--font: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-base: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 26px;--accent: var(--brand);--accent-lt: var(--brand-subtle);--accent-hover: var(--brand-hover);--text-1: var(--fg-default);--text-2: var(--fg-muted);--text-3: var(--fg-subtle);--text-4: var(--fg-faint);--border: var(--border-default);--surface: var(--bg-surface);--surface-2: var(--bg-overlay);--white: var(--bg-default);--ink: var(--bg-inverse);--red: var(--danger);--green: var(--success);--green-lt: var(--success-subtle);--tour-bg: #ffffff;--tour-text: #1a2332;--tour-border: #e2e8f0}[data-theme=dark]{--bg-app: #101010;--bg-default: #1a1a1a;--bg-surface: #222222;--bg-overlay: #2a2a2a;--bg-inverse: #f0f0f0;--bg-subtle: #1e1e1e;--bg-muted: #222222;--border-default: #2e2e2e;--border-strong: #3d3d3d;--border-muted: #252525;--fg-default: #f0f0f0;--fg-muted: #a0a0a0;--fg-subtle: #6e6e6e;--fg-faint: #888888;--fg-on-accent: #ffffff;--brand: #22c55e;--brand-hover: #16a34a;--brand-active: #15803d;--brand-subtle: #052e16;--brand-muted: #14532d;--brand-border: #166534;--brand-fg: #bbf7d0;--success: #22c55e;--success-subtle: #052e16;--success-border: #166534;--danger: #f87171;--danger-subtle: #2d1515;--danger-border: #991b1b;--warning: #fbbf24;--warning-subtle: #1f1a08;--warning-border: #92400e;--info: #60a5fa;--info-subtle: #0f1f3d;--info-border: #1e40af;--nav-bg: #141414;--nav-border: #2a2a2a;--nav-item: #6e6e6e;--nav-item-hover-bg: #1a2a1a;--nav-item-hover-fg: #4ade80;--nav-item-active-bg: #052e16;--nav-item-active-fg: #bbf7d0;--nav-item-active-bar: #22c55e;--input-bg: #1e1e1e;--input-border: #333333;--input-focus: #22c55e;--shadow-xs: 0 1px 2px rgba(0,0,0,.3);--shadow-sm: 0 1px 3px rgba(0,0,0,.4), 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 12px 40px rgba(0,0,0,.6);--shadow-focus-brand: 0 0 0 3px rgba(34,197,94,.18);--shadow-focus-danger:0 0 0 3px rgba(248,113,113,.18);--tour-bg: #1a1a1a;--tour-text: #f0f0f0;--tour-border: #2e2e2e;--accent: var(--brand);--accent-lt: var(--brand-subtle);--text-1: var(--fg-default);--text-2: var(--fg-muted);--text-3: var(--fg-subtle);--text-4: var(--fg-faint);--border: var(--border-default);--surface: var(--bg-surface);--surface-2: var(--bg-overlay);--white: var(--bg-default);--ink: var(--bg-inverse);--red: var(--danger);--green: var(--success);--green-lt: var(--success-subtle)}html{height:100%;font-size:14px}body{height:100%;min-height:100vh;font-family:var(--font);font-size:var(--fs-md);line-height:1.5;color:var(--fg-default);background:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%}a{color:inherit;text-decoration:none}button,input,textarea,select{font-family:var(--font)}code,pre,kbd{font-family:var(--mono)}img{display:block;max-width:100%}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--fg-faint)}@media (prefers-reduced-motion: no-preference){*,*:before,*:after{transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.96) translateY(5px)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}@keyframes msgIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulseRing{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes slideInRight{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}.anim-fade-up{animation:fadeUp .2s ease both}.anim-fade-in{animation:fadeIn .15s ease both}.anim-pop{animation:popIn .18s cubic-bezier(.34,1.3,.64,1) both}.anim-slide-l{animation:slideInLeft .18s ease both}.anim-slide-r{animation:slideInRight .18s ease both}.stagger-list>*:nth-child(1){animation-delay:0ms}.stagger-list>*:nth-child(2){animation-delay:30ms}.stagger-list>*:nth-child(3){animation-delay:60ms}.stagger-list>*:nth-child(4){animation-delay:90ms}.stagger-list>*:nth-child(5){animation-delay:.12s}.stagger-list>*:nth-child(6){animation-delay:.15s}.stagger-list>*:nth-child(7){animation-delay:.18s}.stagger-list>*:nth-child(8){animation-delay:.21s}.stagger-list>*:nth-child(9){animation-delay:.24s}.stagger-list>*:nth-child(10){animation-delay:.27s}.skeleton{background:linear-gradient(90deg,var(--bg-surface) 25%,var(--bg-overlay) 50%,var(--bg-surface) 75%);background-size:600px 100%;animation:shimmer 1.4s infinite;border-radius:var(--r-sm)}.skeleton-text{height:14px;border-radius:var(--r-xs);margin-bottom:6px}.skeleton-circle{border-radius:50%}@keyframes typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.typing-dot{animation:typingBounce 1.2s infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}.interactive{transition:background .1s}.interactive:hover{background:var(--bg-surface)}.interactive-brand:hover{background:var(--brand-subtle);color:var(--brand)}.interactive-danger:hover{background:var(--danger-subtle);color:var(--danger)}.nav-item-link:hover:not([aria-current=page]){background:var(--nav-item-hover-bg)!important;color:var(--nav-item-hover-fg)!important}.global-search-overlay{position:fixed;inset:0;z-index:2000;background:#00000080;display:flex;align-items:flex-start;justify-content:center;padding-top:80px;animation:fadeIn .1s ease}.global-search-box{width:100%;max-width:560px;background:var(--bg-default);border:1px solid var(--border-strong);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);overflow:hidden;animation:popIn .15s cubic-bezier(.34,1.3,.64,1)}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.skip-link{position:absolute;top:-100px;left:8px;background:var(--brand);color:#fff;padding:8px 16px;border-radius:var(--r-md);font-size:13px;font-weight:600;z-index:99999;text-decoration:none;transition:top .15s}.skip-link:focus{top:8px}.sidebar-collapsed{width:var(--sidebar-w-mini)!important}.sidebar-collapsed .nav-label,.sidebar-collapsed .nav-section-title,.sidebar-collapsed .user-name,.sidebar-collapsed .user-role,.sidebar-collapsed .brand-label{display:none!important}.sidebar-collapsed .nav-badge{position:absolute;top:2px;right:2px;min-width:14px;height:14px;font-size:9px}.sidebar-collapsed .nav-item-link{justify-content:center;padding:7px!important}.sidebar-transition{transition:width .2s ease!important}.main-content-transition{transition:margin-left .2s ease}.toolbar-secondary{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}.visitor-panel{width:260px;min-width:260px;border-left:1px solid var(--border-default);background:var(--bg-default);overflow-y:auto;flex-shrink:0;transition:width .2s ease,min-width .2s ease,opacity .15s ease}.visitor-panel.collapsed{width:0;min-width:0;opacity:0;overflow:hidden}.note-mode-banner{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#fef9c3;border:1px solid #fde047;border-radius:var(--r-sm);font-size:11px;font-weight:700;color:#92400e;letter-spacing:.02em;text-transform:uppercase}.delta-up{color:var(--success)}.delta-down{color:var(--danger)}.delta-flat{color:var(--fg-faint)}.toast-action-btn{margin-left:8px;font-size:11px;font-weight:700;color:var(--brand);background:none;border:none;cursor:pointer;padding:0;text-decoration:underline}.introjs-tooltip{background:var(--tour-bg)!important;color:var(--tour-text)!important;border:1px solid var(--tour-border)!important;border-radius:var(--r-xl)!important;box-shadow:var(--shadow-lg)!important;font-family:var(--font)!important;min-width:280px!important;max-width:340px!important}.introjs-tooltip-title{color:var(--fg-default)!important;font-size:14px!important;font-weight:700!important;font-family:var(--font)!important}.introjs-tooltiptext{color:var(--fg-muted)!important;font-size:13px!important;line-height:1.6!important;font-family:var(--font)!important}.introjs-button{font-family:var(--font)!important;font-size:12px!important;font-weight:600!important;border-radius:var(--r-sm)!important;padding:6px 14px!important;text-shadow:none!important;border:none!important;cursor:pointer!important}.introjs-nextbutton,.introjs-donebutton{background:var(--brand)!important;color:#fff!important}.introjs-nextbutton:hover,.introjs-donebutton:hover{background:var(--brand-hover)!important}.introjs-prevbutton{background:var(--bg-surface)!important;color:var(--fg-muted)!important;border:1px solid var(--border-default)!important}.introjs-skipbutton{color:var(--fg-faint)!important;font-size:11px!important}.introjs-skipbutton:hover{color:var(--danger)!important}.introjs-bullets ul li a{background:var(--border-strong)!important}.introjs-bullets ul li a.active,.introjs-bullets ul li a:hover{background:var(--brand)!important;width:20px!important}.introjs-helperLayer{border-radius:var(--r-md)!important;box-shadow:#21212199 0 0 1px 2px,#21212180 0 0 0 5000px!important}.introjs-overlay{opacity:.7!important}.introjs-arrow.top:after,.introjs-arrow.top-right:after,.introjs-arrow.top-middle:after{border-bottom-color:var(--tour-bg)!important}.introjs-arrow.bottom:after,.introjs-arrow.bottom-right:after,.introjs-arrow.bottom-middle:after{border-top-color:var(--tour-bg)!important}.introjs-progress{background:var(--border-default)!important;border-radius:4px!important}.introjs-progressbar{background:var(--brand)!important;border-radius:4px!important}@media (max-width: 1280px){.grid-4-cols{grid-template-columns:repeat(2,1fr)!important}.grid-dashboard{grid-template-columns:1fr!important}}@media (max-width: 1100px){:root{--sidebar-w: 200px}}@media (max-width: 900px){.grid-4-cols,.grid-3-cols{grid-template-columns:repeat(2,1fr)!important}}
