*{box-sizing:border-box}:root{font-family:Inter,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.4;font-weight:400;color:var(--text, #e9eeff);background:var(--bg, #070b18);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg, #070b18);overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}#root{min-height:100vh;min-height:100dvh;overflow-x:hidden}html,body,#root{width:100%}:root{--bg: #000000;--bg-grad-a: #0b1638;--bg-grad-b: #16235a;--bg-grid: rgba(255, 225, 0, .09);--panel: #070b1a;--panel-soft: #101a3e;--border: #2b3f7d;--text: #ffffff;--muted: #b7c1d9;--accent: #ffe100;--danger-bg: #412142;--danger-border: #853b8a;--sidebar: rgba(7, 17, 45, .9);--color-success: #5ff5b0;--color-danger: #ff7f96;--color-warning: #ffcf6a;--color-info: var(--accent);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--space-9: 48px;--radius-panel: 16px;--radius-control: 10px;--content-padding: 24px;--panel-padding: 20px;--panel-blur: 0px;--stack-gap: var(--space-5);--font-family-ui: "Inter", "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", Consolas, monospace;--font-scale: 1;--line-height-ui: 1.45;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-base: 15px;--font-size-lg: 18px;--font-size-xl: 24px;--font-size-2xl: 32px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 700;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .25);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .35);--shadow-xl: 0 16px 50px rgba(0, 0, 0, .45);--motion-duration: .18s;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px color-mix(in srgb, var(--accent) 60%, transparent);--hover-lift: translateY(-2px)}:root[data-theme=emerald]{--bg: #061612;--bg-grad-a: #0f7b62;--bg-grad-b: #38dba9;--bg-grid: rgba(62, 201, 159, .12);--panel: #0f2d24;--panel-soft: #1a4f42;--border: #3ea186;--text: #e9fff8;--muted: #99e8d4;--accent: #5ce3b8;--danger-bg: #472734;--danger-border: #af4f7a;--sidebar: rgba(8, 33, 26, .9)}:root[data-theme=sunset]{--bg: #160710;--bg-grad-a: #7a2e59;--bg-grad-b: #ff8e4b;--bg-grid: rgba(255, 132, 86, .13);--panel: #2b1530;--panel-soft: #5f2d4f;--border: #b05f8a;--text: #fff2fa;--muted: #f0b4d8;--accent: #ffb26b;--danger-bg: #5c2540;--danger-border: #d16a9e;--sidebar: rgba(45, 15, 35, .9)}:root[data-density=compact]{--content-padding: 16px;--panel-padding: 12px;--radius-panel: 12px;--radius-control: 8px}:root[data-glass=true]{--panel-blur: 8px}.app-shell{display:grid;grid-template-columns:290px 1fr;min-height:100vh;min-height:100dvh;color:var(--text);position:relative;overflow:clip;isolation:isolate;font-family:var(--font-family-ui);font-size:calc(16px * var(--font-scale));line-height:var(--line-height-ui)}.app-shell:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 15%,color-mix(in srgb,var(--bg-grad-a) 45%,transparent),transparent 52%),radial-gradient(circle at 78% 28%,color-mix(in srgb,var(--bg-grad-b) 42%,transparent),transparent 49%),radial-gradient(circle at 62% 85%,color-mix(in srgb,var(--accent) 32%,transparent),transparent 54%);z-index:0;opacity:.9;transform:translateZ(0);pointer-events:none}.app-shell:after{content:"";position:absolute;inset:0;background:transparent;z-index:0;pointer-events:none}:root[data-noise=true] .app-shell:after{content:"";background-image:repeating-radial-gradient(circle at 0 0,rgba(255,255,255,.03) 0 1px,transparent 2px 4px),repeating-linear-gradient(0deg,rgba(255,255,255,.015) 0 1px,transparent 1px 3px);mix-blend-mode:soft-light;opacity:.35}:root[data-texture=none] .app-shell:after{background:transparent}:root[data-texture=grain] .app-shell:after{background-image:repeating-radial-gradient(circle at 0 0,rgba(255,255,255,.03) 0 1px,transparent 2px 4px),repeating-linear-gradient(0deg,rgba(255,255,255,.015) 0 1px,transparent 1px 3px);mix-blend-mode:soft-light;opacity:.35}:root[data-texture=scanlines] .app-shell:after{background-image:linear-gradient(to bottom,rgba(255,255,255,.02),rgba(255,255,255,.02) 1px,transparent 1px,transparent 3px);background-size:100% 3px;mix-blend-mode:screen;opacity:.45}:root[data-texture=carbon] .app-shell:after{background-image:linear-gradient(27deg,rgba(255,255,255,.035) 5px,transparent 5px),linear-gradient(207deg,rgba(255,255,255,.03) 5px,transparent 5px),linear-gradient(27deg,transparent 5px,rgba(0,0,0,.2) 5px),linear-gradient(207deg,transparent 5px,rgba(0,0,0,.2) 5px);background-size:12px 12px;background-position:0 0,6px 6px,0 6px,6px 0;opacity:.28}:root[data-texture=dots] .app-shell:after{background-image:radial-gradient(rgba(255,255,255,.08) .8px,transparent .8px);background-size:10px 10px;opacity:.22}:root[data-motion=true] .app-shell:before{animation:slow-drift 14s ease-in-out infinite alternate}:root[data-motion=true] .app-shell:after{animation:pulse-fade 18s ease-in-out infinite alternate}:root[data-background=aurora] .app-shell:after{background:radial-gradient(60% 40% at 10% 60%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 72%),radial-gradient(45% 35% at 90% 18%,color-mix(in srgb,var(--bg-grad-b) 28%,transparent),transparent 70%)}:root[data-background=mesh] .app-shell:after{background:linear-gradient(110deg,transparent 0%,color-mix(in srgb,var(--bg-grid) 75%,transparent) 50%,transparent 100%),linear-gradient(0deg,transparent 49%,color-mix(in srgb,var(--bg-grid) 72%,transparent) 50%,transparent 51%),linear-gradient(90deg,transparent 49%,color-mix(in srgb,var(--bg-grid) 72%,transparent) 50%,transparent 51%);background-size:100% 100%,54px 54px,54px 54px;opacity:.55}:root[data-background=orbital] .app-shell:after{background:radial-gradient(circle at 35% 55%,transparent 0 72px,color-mix(in srgb,var(--accent) 40%,transparent) 73px 76px,transparent 77px),radial-gradient(circle at 72% 30%,transparent 0 110px,color-mix(in srgb,var(--bg-grad-b) 30%,transparent) 111px 114px,transparent 115px),radial-gradient(circle at 72% 30%,color-mix(in srgb,var(--bg-grad-a) 30%,transparent),transparent 50%);opacity:.8}:root[data-background=topography] .app-shell:after{background:repeating-radial-gradient(circle at 10% 20%,transparent 0 18px,color-mix(in srgb,var(--bg-grid) 70%,transparent) 19px 20px),repeating-radial-gradient(circle at 85% 78%,transparent 0 24px,color-mix(in srgb,var(--bg-grid) 55%,transparent) 25px 26px);opacity:.55}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);padding:var(--space-6) var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);-webkit-backdrop-filter:blur(var(--panel-blur));backdrop-filter:blur(var(--panel-blur));position:relative;z-index:2}.sidebar-mobile-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-bottom:var(--space-4);margin-bottom:var(--space-2);border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent)}.sidebar-brand{display:flex;align-items:center;gap:var(--space-3);color:var(--accent)}.sidebar h1{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);letter-spacing:-.01em}.sidebar-auth{margin:0 0 var(--space-2);color:var(--muted);font-size:var(--font-size-xs);word-break:break-word;opacity:.7}.sidebar-close-btn,.mobile-topbar,.mobile-menu-btn,.sidebar-overlay{display:none}.nav-section{margin-bottom:var(--space-2)}.nav-section-label{display:block;font-size:10px;font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);opacity:.6;padding:var(--space-2) var(--space-3) var(--space-1)}.nav-section-bottom{margin-top:auto;padding-top:var(--space-3);border-top:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.nav-item{width:100%;display:flex;align-items:center;gap:var(--space-3);border:1px solid transparent;color:var(--text);background:transparent;padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);margin-bottom:2px;text-align:left;font-size:var(--font-size-sm);position:relative;transition:all var(--motion-duration) ease}.nav-item:hover{border-color:color-mix(in srgb,var(--accent) 30%,transparent);background:color-mix(in srgb,var(--accent) 12%,var(--panel-soft));transform:translate(2px)}.nav-item.active{border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 18%,var(--panel-soft))}.nav-item.active:before{content:"";position:absolute;left:-1px;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.sidebar-footer{margin-top:auto;padding-top:var(--space-3);border-top:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.sidebar-actions-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);color:var(--muted);background:transparent;border:none;cursor:pointer;border-radius:var(--radius-control);transition:color var(--motion-duration) ease}.sidebar-actions-toggle:hover{color:var(--text)}.sidebar-actions{display:flex;flex-direction:column;gap:2px;padding-top:var(--space-1)}.sidebar-action-btn{width:100%;text-align:left;padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);color:var(--muted);background:transparent;border:none;border-radius:var(--radius-control);cursor:pointer;transition:all var(--motion-duration) ease}.sidebar-action-btn:hover{color:var(--text);background:color-mix(in srgb,var(--panel-soft) 60%,transparent)}.export-btn{margin-top:auto;background:var(--accent);border:none;color:color-mix(in srgb,var(--bg) 70%,black);font-weight:var(--font-weight-bold)}.content{padding:var(--content-padding);position:relative;z-index:2}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:18px}.auth-card{width:min(460px,100%);display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:var(--radius-panel);border:1px solid var(--border);background:color-mix(in srgb,var(--panel) 90%,transparent);-webkit-backdrop-filter:blur(var(--panel-blur));backdrop-filter:blur(var(--panel-blur))}.auth-card h1{margin:0}.auth-error{margin:2px 0 0;color:#ff8fa7}.stack-lg{display:flex;flex-direction:column;gap:var(--stack-gap)}.muted{color:var(--muted)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.kpi-card{background:color-mix(in srgb,var(--panel) 86%,transparent);border:1px solid var(--border);border-radius:var(--radius-panel);padding:var(--space-4) var(--space-5);-webkit-backdrop-filter:blur(var(--panel-blur));backdrop-filter:blur(var(--panel-blur));border-top:3px solid color-mix(in srgb,var(--accent) 40%,var(--border));transition:transform .2s var(--ease-out-expo),box-shadow .2s var(--ease-out-expo)}.kpi-card:hover{transform:var(--hover-lift);box-shadow:var(--shadow-md)}.kpi-card:has(.value-positive){border-top-color:var(--color-success)}.kpi-card:has(.value-negative){border-top-color:var(--color-danger)}.kpi-card:has(.value-warning){border-top-color:var(--color-warning)}.kpi-card h3{margin:0 0 var(--space-2);color:var(--muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--font-weight-medium)}.kpi-card strong{font-size:20px;font-family:var(--font-mono);letter-spacing:-.02em}.panel{background:color-mix(in srgb,var(--panel) 86%,transparent);border:1px solid var(--border);border-radius:var(--radius-panel);padding:var(--panel-padding);-webkit-backdrop-filter:blur(var(--panel-blur));backdrop-filter:blur(var(--panel-blur));box-shadow:var(--shadow-md);border-image:linear-gradient(120deg,color-mix(in srgb,var(--accent) 55%,var(--border)),var(--border),color-mix(in srgb,var(--accent) 35%,var(--border))) 1;content-visibility:visible;contain-intrinsic-size:none;display:flex;flex-direction:column;gap:var(--space-4)}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.chart-panel h3{margin-top:0}.chart-box{border:1px solid color-mix(in srgb,var(--border) 75%,transparent);border-radius:12px;padding:10px 12px 8px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel-soft) 52%,transparent),color-mix(in srgb,var(--panel) 32%,transparent));box-shadow:inset 0 1px #ffffff0a,0 1px 14px color-mix(in srgb,var(--bg) 26%,transparent),0 0 0 1px color-mix(in srgb,var(--border) 12%,transparent);min-height:220px}.chart-toolbar{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.preset-chip{display:inline-flex;align-items:center;gap:6px}.mouse-trailer-layer{position:fixed;width:160px;height:160px;border-radius:999px;pointer-events:none;z-index:1;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 35%,transparent),transparent 70%);filter:blur(16px);opacity:.9;will-change:transform}:root[data-mouse-trail=false] .mouse-trailer-layer{display:none}:root[data-scroll-reveal=true] .reveal-target{opacity:.35;transform:translate3d(0,18px,0) skewY(1.8deg);transition:transform .42s cubic-bezier(.21,1,.2,1),opacity .42s ease}:root[data-scroll-reveal=true] .reveal-in{opacity:1;transform:translateZ(0) skewY(0)}.glitch-title{position:relative}:root[data-glitch=true] .glitch-title:hover:before,:root[data-glitch=true] .glitch-title:hover:after{content:attr(data-text);position:absolute;left:0;top:0;width:100%;overflow:hidden}:root[data-glitch=true] .glitch-title:hover:before{color:#00d4ff;transform:translate3d(-1px,-1px,0);clip-path:inset(0 0 45% 0)}:root[data-glitch=true] .glitch-title:hover:after{color:#ff2ea6;transform:translate3d(1px,1px,0);clip-path:inset(55% 0 0 0)}:root[data-glitch=true] h2:hover,:root[data-glitch=true] h3:hover{text-shadow:-1px 0 #00d4ff,1px 0 #ff2ea6}.chart-empty{min-height:220px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);border:1px dashed color-mix(in srgb,var(--border) 70%,transparent);border-radius:12px;background:linear-gradient(90deg,color-mix(in srgb,var(--panel-soft) 18%,transparent),color-mix(in srgb,var(--panel-soft) 36%,transparent),color-mix(in srgb,var(--panel-soft) 18%,transparent));background-size:200% 100%;animation:shimmer 3s ease-in-out infinite;padding:16px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-9) var(--space-6);min-height:220px;border:1px dashed color-mix(in srgb,var(--border) 50%,transparent);border-radius:var(--radius-panel);background:linear-gradient(180deg,color-mix(in srgb,var(--panel-soft) 12%,transparent),color-mix(in srgb,var(--panel-soft) 24%,transparent));gap:var(--space-3)}.empty-state-icon{color:var(--accent);opacity:.4;margin-bottom:var(--space-2)}.empty-state-title{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--text)}.empty-state-desc{margin:0;font-size:var(--font-size-sm);color:var(--muted);max-width:360px;line-height:1.5}.empty-state-action{margin-top:var(--space-2)}.chart-box .recharts-cartesian-grid-horizontal line,.chart-box .recharts-cartesian-grid-vertical line{stroke:color-mix(in srgb,var(--border) 48%,transparent);stroke-dasharray:2 4;shape-rendering:geometricPrecision}.chart-box .recharts-cartesian-axis-tick-value{fill:color-mix(in srgb,var(--muted) 88%,var(--text));font-size:11px}.chart-box .recharts-curve.recharts-line-curve{filter:drop-shadow(0 0 5px color-mix(in srgb,var(--accent) 24%,transparent));stroke-linecap:round;stroke-linejoin:round}.chart-box .recharts-area-area{filter:saturate(1.08)}.chart-box .recharts-tooltip-cursor{stroke:var(--accent);stroke-dasharray:4 4;stroke-width:1;opacity:.5}@keyframes dotPulse{0%{r:14;opacity:.15}50%{r:18;opacity:.06}to{r:14;opacity:.15}}.dot-pulse-ring{animation:dotPulse 2s ease-in-out infinite}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.kpi-card{animation:fadeInUp .4s var(--ease-out-expo) backwards}.kpi-card:nth-child(1){animation-delay:0ms}.kpi-card:nth-child(2){animation-delay:60ms}.kpi-card:nth-child(3){animation-delay:.12s}.kpi-card:nth-child(4){animation-delay:.18s}.kpi-card:nth-child(5){animation-delay:.24s}.kpi-card:nth-child(6){animation-delay:.3s}.panel:has(form):focus-within{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));box-shadow:var(--shadow-md),0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent)}h2{margin:0 0 var(--space-2);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);letter-spacing:-.02em}h3{font-weight:var(--font-weight-bold)}.muted{font-size:var(--font-size-sm)}@media(prefers-reduced-motion:reduce){.dot-pulse-ring,.chart-empty,.kpi-card{animation:none}}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4)}label{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-weight-medium)}input,select,button{font:inherit}input,select{border:1px solid var(--border);border-radius:var(--radius-control);background:color-mix(in srgb,var(--panel-soft) 74%,var(--bg));color:var(--text);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);transition:box-shadow .2s ease,border-color .2s ease;text-transform:none;letter-spacing:normal;font-weight:var(--font-weight-normal)}input:focus,select:focus,textarea:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--accent)}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23b7c1d9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-8)}textarea{border:1px solid var(--border);border-radius:var(--radius-control);background:color-mix(in srgb,var(--panel-soft) 74%,var(--bg));color:var(--text);padding:var(--space-3) var(--space-4);resize:vertical;min-height:80px;transition:box-shadow .2s ease,border-color .2s ease}button{border-radius:var(--radius-control);border:1px solid var(--border);background:var(--panel-soft);color:var(--text);padding:var(--space-2) var(--space-4);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--motion-duration) ease}button:hover{border-color:var(--accent)}button:active{transform:scale(.97)}.primary-btn{background:var(--accent);color:var(--bg);font-weight:var(--font-weight-bold);border:none;box-shadow:var(--shadow-sm)}.primary-btn:hover{box-shadow:var(--shadow-md);transform:var(--hover-lift)}.primary-btn:active{transform:scale(.97)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:12px}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base)}:root[data-glow=true] .panel:hover,:root[data-glow=true] .kpi-card:hover,:root[data-glow=true] .chip-btn:hover,:root[data-glow=true] .nav-item:hover{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent),0 0 24px color-mix(in srgb,var(--accent) 22%,transparent),0 12px 30px color-mix(in srgb,var(--accent) 12%,transparent)}:root[data-style=soft] .panel,:root[data-style=soft] .kpi-card{background:color-mix(in srgb,var(--panel) 72%,transparent);border-color:color-mix(in srgb,var(--border) 78%,transparent);box-shadow:0 14px 32px color-mix(in srgb,var(--accent) 10%,transparent)}:root[data-style=soft] .kpi-card{border-top-width:2px}:root[data-style=soft] .primary-btn{border-radius:100px}:root[data-style=minimal] .panel,:root[data-style=minimal] .kpi-card{box-shadow:none;border-image:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:color-mix(in srgb,var(--panel) 94%,transparent)}:root[data-style=minimal] .kpi-card{border-top:1px solid var(--border)}:root[data-style=minimal] .kpi-card:hover{transform:none;box-shadow:none}:root[data-style=minimal] .nav-item:hover{transform:none}:root[data-style=minimal] .primary-btn{box-shadow:none}:root[data-style=minimal] .primary-btn:hover{transform:none;box-shadow:none}:root[data-style=terminal]{--font-family-ui: "JetBrains Mono", "Fira Code", Consolas, monospace;--color-success: #45ff9a}:root[data-style=terminal] .panel,:root[data-style=terminal] .kpi-card,:root[data-style=terminal] .chart-box{border-color:color-mix(in srgb,#45ff9a 50%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,#45ff9a 35%,transparent),inset 0 0 24px color-mix(in srgb,#45ff9a 8%,transparent)}:root[data-style=terminal] .kpi-card{border-top-color:#45ff9a}:root[data-style=terminal] .muted{color:color-mix(in srgb,#7cfbc5 72%,var(--muted))}:root[data-style=terminal] .nav-section-label{color:#45ff9a;opacity:.5}:root[data-style=terminal] .empty-state-icon{color:#45ff9a}:root[data-style=terminal] tbody tr:hover{background:color-mix(in srgb,#45ff9a 8%,transparent)}.secondary-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-control);border:1px solid var(--border);background:color-mix(in srgb,var(--panel-soft) 74%,var(--bg));color:var(--text);padding:var(--space-2) var(--space-4);cursor:pointer}.danger-btn{background:var(--danger-bg);border-color:var(--danger-border);transition:all var(--motion-duration) ease,box-shadow .2s ease}.danger-btn:hover{box-shadow:0 0 16px color-mix(in srgb,var(--danger-border) 25%,transparent)}.row-actions{display:flex;gap:8px;align-items:end}.checkbox-row{flex-direction:row;align-items:center;gap:8px;margin-top:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding-bottom:var(--space-3);margin-bottom:0;border-bottom:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.panel-head h3{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-bold)}.panel-head input{width:min(360px,100%)}.panel-collapse-btn{min-width:30px;width:30px;height:30px;padding:0;font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:transform .2s var(--ease-out-expo)}.panel[data-collapsed=true] .panel-collapse-btn{transform:rotate(180deg)}.panel-collapse-target{display:grid;grid-template-rows:1fr;transition:grid-template-rows .3s var(--ease-out-expo)}.panel-collapse-target>*{overflow:hidden}.panel[data-collapsed=true] .panel-collapse-target{grid-template-rows:0fr}.table-wrap{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse}thead{position:sticky;top:0;z-index:1;background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}th,td{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent);font-size:var(--font-size-sm)}th{color:var(--muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--font-weight-medium)}tbody tr:nth-child(2n){background:color-mix(in srgb,var(--panel-soft) 25%,transparent)}tbody tr{transition:background var(--motion-duration) ease}tbody tr:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.list{list-style:none;margin:0;padding:0}.list li{display:grid;grid-template-columns:1fr auto auto;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.projection-text{margin:6px 0;font-size:18px}.value-positive{color:var(--color-success)}.value-negative{color:var(--color-danger)}.value-neutral{color:var(--text)}.value-warning{color:var(--color-warning)}.kpi-card .value-positive,.kpi-card .value-negative,.kpi-card .value-neutral,.kpi-card .value-warning{font-weight:var(--font-weight-bold)}tr.row-income td,tr.row-credit td{border-left:3px solid color-mix(in srgb,var(--color-success) 70%,transparent)}tr.row-expense td,tr.row-debit td{border-left:3px solid color-mix(in srgb,var(--color-danger) 70%,transparent)}.toggle-group{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip-btn{text-transform:capitalize;min-width:72px;padding:var(--space-2) var(--space-3);font-size:12px;line-height:1.1;border-radius:100px}.active-chip{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 24%,var(--panel-soft));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 50%,transparent)}.chart-toolbar .chip-btn{min-width:52px;padding:5px 8px;font-size:11px}.toggle-grid{display:grid;gap:10px}.ai-command-panel{margin-bottom:0;padding:8px 10px}.ai-command-panel .panel-head{margin-bottom:4px}.ai-command-panel .panel-head h3{font-size:13px;margin:0}.ai-command-panel p.muted{font-size:11px;margin:0 0 4px;line-height:1.3}.ai-command-panel label{gap:3px;font-size:11px}.ai-command-panel textarea{min-height:36px;max-height:80px;overflow-y:auto;resize:none;padding:6px 8px;font-size:12px;line-height:1.3}.ai-command-panel .row-actions{margin-top:4px}.ai-command-panel .row-actions button{padding:5px 10px;font-size:12px}.ai-command-panel .chip-btn{padding:3px 8px;font-size:10px;min-width:auto}.switch-row{display:flex;align-items:center;flex-direction:row}.switch-row input{width:18px;height:18px}@keyframes slow-drift{0%{transform:translate3d(-12px,-8px,0) scale(1)}to{transform:translate3d(12px,8px,0) scale(1.03)}}@keyframes pulse-fade{0%{opacity:.5;transform:scale(1) translate3d(-8px,-6px,0)}to{opacity:.85;transform:scale(1.04) translate3d(8px,6px,0)}}@media(max-width:1080px){.app-shell{display:block}.sidebar{position:fixed;inset:0 auto 0 0;width:min(84vw,320px);transform:translate(-102%);transition:transform .22s ease;z-index:10;padding:14px 12px 18px;gap:10px;overflow-y:auto;border-right:1px solid var(--border);border-bottom:0;background:color-mix(in srgb,var(--sidebar) 90%,black)}.app-shell.sidebar-open .sidebar{transform:translate(0)}.sidebar-mobile-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.sidebar-close-btn{display:inline-flex;padding:var(--space-2) var(--space-3);font-size:12px}.sidebar h1{font-size:var(--font-size-lg)}.sidebar-auth{margin:0}.sidebar nav{display:block}.nav-section-label{font-size:9px}.nav-item{width:100%;margin-bottom:4px;white-space:normal;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);border-radius:var(--radius-control)}.export-btn,.secondary-btn{margin-top:0;width:100%}.sidebar-footer{margin-top:var(--space-3)}thead{position:static}.kpi-card{animation-duration:.25s}.stack-lg{gap:var(--space-4)}.sidebar-overlay{display:block;position:fixed;inset:0;border:0;background:#0000008c;opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:9}.sidebar-overlay.visible{opacity:1;pointer-events:auto}.content{padding:12px;overflow-x:clip;overflow-y:visible;padding-bottom:calc(20px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.mobile-topbar{display:flex;position:static;z-index:8;align-items:center;gap:10px;margin:-2px -2px 10px;padding:8px 2px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 94%,transparent),transparent)}.mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center;min-width:74px;padding:8px 10px;font-size:13px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-grid{grid-template-columns:1fr}.panel-head{flex-direction:column;align-items:flex-start}.panel-head input{width:100%}.row-actions{width:100%;flex-wrap:wrap}.row-actions button{flex:1 1 120px}.chart-grid{grid-template-columns:1fr}.chart-toolbar{justify-content:flex-start}.chart-box{min-height:200px;padding:9px 10px 8px}th,td{white-space:nowrap;font-size:13px;padding:8px}.table-wrap{margin:0 -4px;padding:0 4px}:root[data-scroll-reveal=true] .reveal-target,:root[data-scroll-reveal=true] .reveal-in{opacity:1;transform:none;transition:none}}@media(max-width:640px){.sidebar{width:min(92vw,340px);padding:var(--space-3) var(--space-3) var(--space-4)}.sidebar-auth{display:none}.sidebar h1{font-size:17px}.content{padding:var(--space-3)}.mobile-topbar{margin-bottom:var(--space-2)}.mobile-topbar strong{font-size:14px}.panel{padding:var(--space-3);gap:var(--space-3)}.kpi-grid{grid-template-columns:1fr;gap:var(--space-3)}.kpi-card strong{font-size:var(--font-size-lg)}.kpi-card h3{font-size:12px}.kpi-card{animation:none}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}.stack-lg{gap:var(--space-3)}.chip-btn{min-width:62px;padding:var(--space-2) var(--space-2)}.chart-toolbar .chip-btn{min-width:48px;padding:var(--space-1) var(--space-2);font-size:10px}.empty-state{padding:var(--space-7) var(--space-4);min-height:180px}.empty-state-icon{width:36px;height:36px}th,td{padding:var(--space-2) var(--space-3)}}.image-upload-preview{display:inline-flex;align-items:center;gap:10px}.image-upload-preview img{width:52px;height:52px;border-radius:10px;object-fit:cover;border:1px solid var(--border)}.entity-with-image{display:inline-flex;align-items:center;gap:8px}.entity-thumb{width:28px;height:28px;border-radius:8px;object-fit:cover;border:1px solid rgba(255,255,255,.16)}.entity-thumb-fallback{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;background:linear-gradient(135deg,#5ebaff73,#8a68ff73)}:root[data-style=executive]{--font-family-ui: "Inter", "SF Pro", "Segoe UI", system-ui, sans-serif;--color-success: #3FB950;--color-danger: #F85149;--color-warning: #D29922}:root[data-style=executive] .panel,:root[data-style=executive] .kpi-card{box-shadow:none;border-image:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:color-mix(in srgb,var(--panel) 94%,transparent);border-left:2px solid var(--accent)}:root[data-style=executive] .kpi-card{border-top:none}:root[data-style=executive] .chart-box{box-shadow:none;border-color:color-mix(in srgb,var(--border) 60%,transparent)}:root[data-style=executive] .kpi-card strong{font-family:var(--font-mono)}:root[data-style=executive] .kpi-card:hover{transform:none;box-shadow:none}:root[data-style=executive] .nav-item:hover{transform:none}:root[data-style=executive] .primary-btn{border-radius:6px;box-shadow:none}:root[data-style=executive] .primary-btn:hover{transform:none}:root[data-style=executive] .value-positive{color:#3fb950}:root[data-style=executive] .value-negative{color:#f85149}:root[data-style=executive] .value-warning{color:#d29922}:root[data-style=futurist]{--font-family-ui: "Inter", "Segoe UI", system-ui, sans-serif;--color-success: #06D6A0;--color-danger: #EF4444;--color-warning: #F59E0B}:root[data-style=futurist] .panel,:root[data-style=futurist] .kpi-card{background:color-mix(in srgb,var(--panel) 72%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent),0 8px 24px color-mix(in srgb,var(--accent) 8%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}:root[data-style=futurist] .panel:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.5}:root[data-style=futurist] .panel{position:relative;overflow:hidden}:root[data-style=futurist] .kpi-card strong{font-family:var(--font-mono)}:root[data-style=futurist] .kpi-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 50%,transparent),0 0 32px color-mix(in srgb,var(--accent) 18%,transparent)}:root[data-style=futurist] h2,:root[data-style=futurist] h3{text-transform:uppercase;letter-spacing:.04em}:root[data-style=futurist] .nav-section-label{letter-spacing:.12em}:root[data-style=futurist] .empty-state-icon{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--accent) 40%,transparent))}:root[data-style=futurist] tbody tr:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}:root[data-style=futurist] .primary-btn:hover{box-shadow:var(--shadow-md),0 0 20px color-mix(in srgb,var(--accent) 30%,transparent)}:root[data-style=futurist] .value-positive{color:#06d6a0}:root[data-style=futurist] .value-negative{color:#ef4444}:root[data-style=futurist] .value-warning{color:#f59e0b}:root[data-style=journalist]{--font-family-ui: "Source Serif 4", "IBM Plex Serif", Georgia, Cambria, "Times New Roman", serif;--color-success: #0EA5E9;--color-danger: #DC2626;--color-warning: #F97316}:root[data-style=journalist] .panel,:root[data-style=journalist] .kpi-card{box-shadow:none;border-image:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:color-mix(in srgb,var(--panel) 96%,transparent);padding:var(--space-6)}:root[data-style=journalist] .kpi-card{border-top:2px solid var(--border)}:root[data-style=journalist] .kpi-card:hover{transform:none;box-shadow:none}:root[data-style=journalist] .chart-box{box-shadow:none}:root[data-style=journalist] h2,:root[data-style=journalist] h3{font-family:Inter,Segoe UI,system-ui,sans-serif;border-bottom:2px solid var(--accent);padding-bottom:6px;margin-bottom:12px}:root[data-style=journalist] .kpi-card strong{font-family:var(--font-mono);font-size:24px}:root[data-style=journalist] .kpi-card h3{border-bottom:none;padding-bottom:0}:root[data-style=journalist] .nav-item:hover{transform:none}:root[data-style=journalist] .nav-item.active:before{display:none}:root[data-style=journalist] .content{max-width:1200px;margin:0 auto}:root[data-style=journalist] .primary-btn{border-radius:4px;box-shadow:none}:root[data-style=journalist] .primary-btn:hover{transform:none}:root[data-style=journalist] .panel-head{border-bottom:2px solid var(--accent)}:root[data-style=journalist] .value-positive{color:#0ea5e9}:root[data-style=journalist] .value-negative{color:#dc2626}:root[data-style=journalist] .value-warning{color:#f97316}.health-gauge{overflow:visible}.spending-pulse .chart-box{min-height:auto}.net-worth-panel .kpi-grid{grid-template-columns:repeat(3,1fr)}@media(max-width:640px){.net-worth-panel .kpi-grid{grid-template-columns:1fr}}.custom-tooltip{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}:root[data-style=futurist] .chart-box .recharts-curve.recharts-line-curve,:root[data-style=futurist] .chart-box .recharts-area-curve{filter:url(#chart-glow)}:root[data-style=futurist] .chart-box{box-shadow:inset 0 1px color-mix(in srgb,var(--accent) 12%,transparent),0 2px 20px color-mix(in srgb,var(--accent) 10%,transparent)}@keyframes anomaly-pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.4}}.anomaly-bar{animation:anomaly-pulse 1.5s ease-in-out infinite}.chart-box .recharts-label-list text{pointer-events:none}.chart-box .recharts-pie-label-text{fill:var(--muted);font-size:11px;font-weight:600}:root[data-layout=sidebar-right] .app-shell{grid-template-columns:1fr 290px}:root[data-layout=sidebar-right] .sidebar{order:2;border-right:none;border-left:1px solid var(--border)}:root[data-layout=sidebar-right] .content{order:1}:root[data-layout=topnav] .app-shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}:root[data-layout=topnav] .topnav-bar{flex-direction:row;align-items:center;padding:10px 18px;gap:12px;border-right:none;border-bottom:1px solid var(--border);overflow-x:auto;overflow-y:hidden}:root[data-layout=topnav] .topnav-title{font-size:16px;white-space:nowrap;margin-right:8px}:root[data-layout=topnav] .sidebar nav{display:flex;flex-direction:row;gap:4px;flex:1;min-width:0}:root[data-layout=topnav] .sidebar .nav-item{margin-bottom:0;padding:6px 10px;white-space:nowrap;font-size:13px}:root[data-layout=topnav] .sidebar .sidebar-subtitle,:root[data-layout=topnav] .sidebar .sidebar-auth,:root[data-layout=topnav] .sidebar .sidebar-mobile-head,:root[data-layout=topnav] .sidebar .sidebar-close-btn,:root[data-layout=topnav] .sidebar .export-btn,:root[data-layout=topnav] .sidebar .secondary-btn{display:none}:root[data-layout=compact-rail] .app-shell{grid-template-columns:60px 1fr}:root[data-layout=compact-rail] .sidebar{width:60px;padding:12px 6px;align-items:center;gap:8px}:root[data-layout=compact-rail] .sidebar h1,:root[data-layout=compact-rail] .sidebar .sidebar-subtitle,:root[data-layout=compact-rail] .sidebar .sidebar-auth,:root[data-layout=compact-rail] .sidebar .sidebar-mobile-head,:root[data-layout=compact-rail] .sidebar .sidebar-close-btn,:root[data-layout=compact-rail] .sidebar .export-btn,:root[data-layout=compact-rail] .sidebar .secondary-btn{display:none}:root[data-layout=compact-rail] .nav-item{justify-content:center;padding:10px 0;min-height:40px;border-radius:10px;margin-bottom:4px}:root[data-layout=compact-rail] .nav-item span{display:none}:root[data-layout=focus] .app-shell{grid-template-columns:1fr}:root[data-layout=focus] .sidebar{position:fixed;inset:0 auto 0 0;width:min(84vw,320px);transform:translate(-102%);transition:transform .22s ease;z-index:10}:root[data-layout=focus] .sidebar-open .sidebar,:root[data-layout=focus] .app-shell.sidebar-open .sidebar{transform:translate(0)}.sidebar.focus-hidden{transform:translate(-102%)}.focus-toggle-btn{position:fixed;bottom:18px;left:18px;z-index:8;width:44px;height:44px;border-radius:50%;display:none;align-items:center;justify-content:center;background:var(--panel-soft);border:1px solid var(--border);color:var(--text);cursor:pointer;box-shadow:0 4px 16px #0006}:root[data-layout=focus] .focus-toggle-btn{display:inline-flex}@media(max-width:1080px){:root[data-layout=sidebar-right] .app-shell,:root[data-layout=topnav] .app-shell,:root[data-layout=compact-rail] .app-shell,:root[data-layout=focus] .app-shell{display:block;grid-template-columns:unset;grid-template-rows:unset}:root[data-layout=sidebar-right] .sidebar,:root[data-layout=topnav] .sidebar,:root[data-layout=compact-rail] .sidebar{position:fixed;inset:0 auto 0 0;width:min(84vw,320px);transform:translate(-102%);transition:transform .22s ease;z-index:10;flex-direction:column;border-right:1px solid var(--border);border-left:none;border-bottom:none;order:unset;overflow-y:auto;padding:14px 12px 18px;gap:10px}:root[data-layout=sidebar-right] .sidebar-open .sidebar,:root[data-layout=topnav] .sidebar-open .sidebar,:root[data-layout=compact-rail] .sidebar-open .sidebar{transform:translate(0)}:root[data-layout=topnav] .sidebar nav,:root[data-layout=compact-rail] .sidebar nav{display:block;flex-direction:column}:root[data-layout=compact-rail] .sidebar{width:min(84vw,320px);align-items:stretch}:root[data-layout=compact-rail] .nav-item{justify-content:flex-start;padding:8px 10px}:root[data-layout=compact-rail] .nav-item span,:root[data-layout=compact-rail] .sidebar h1,:root[data-layout=compact-rail] .sidebar .sidebar-subtitle,:root[data-layout=compact-rail] .sidebar .sidebar-auth,:root[data-layout=compact-rail] .sidebar .sidebar-mobile-head,:root[data-layout=compact-rail] .sidebar .sidebar-close-btn,:root[data-layout=compact-rail] .sidebar .export-btn,:root[data-layout=compact-rail] .sidebar .secondary-btn,:root[data-layout=topnav] .sidebar .sidebar-subtitle,:root[data-layout=topnav] .sidebar .sidebar-auth,:root[data-layout=topnav] .sidebar .sidebar-mobile-head,:root[data-layout=topnav] .sidebar .export-btn,:root[data-layout=topnav] .sidebar .secondary-btn{display:revert}:root[data-layout=topnav] .sidebar .nav-item{white-space:normal;font-size:inherit}:root[data-layout=focus] .focus-toggle-btn{display:none}:root[data-layout=sidebar-right] .content,:root[data-layout=topnav] .content,:root[data-layout=compact-rail] .content{order:unset}}
