:root{color-scheme:dark;--font-display: "Bricolage Grotesque", "Inter", ui-sans-serif, system-ui, sans-serif;--font-heading: "Bricolage Grotesque", "Inter", ui-sans-serif, system-ui, sans-serif;--font-accent: "Instrument Serif", Georgia, "Times New Roman", serif;--font-body: "Inter", ui-sans-serif, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--weight-normal: 400;--weight-medium: 500;--weight-bold: 700;--weight-black: 900;--color-space-980: #01040b;--color-space-950: #040914;--color-space-900: #07111f;--color-space-850: #0a1727;--color-space-800: #0d2032;--color-space-700: #123653;--color-text-primary: #edfaff;--color-text-secondary: #a9c6d8;--color-text-muted: #6f91a7;--color-accent-cyan: #4fabf6;--color-accent-blue: #1e72e8;--color-accent-bright: #5fd8ff;--color-accent-gold: #ffd45c;--color-accent-purple: #b07cff;--color-play-green: #3ef08a;--color-danger: #ff466d;--rgb-space-980: 1 4 11;--rgb-space-950: 4 9 20;--rgb-space-900: 7 17 31;--rgb-space-850: 10 23 39;--rgb-space-800: 13 32 50;--rgb-cyan: 79 171 246;--rgb-blue: 30 114 232;--rgb-bright: 95 216 255;--rgb-gold: 255 212 92;--rgb-purple: 176 124 255;--rgb-green: 62 240 138;--rgb-danger: 255 70 109;--rgb-white: 255 255 255;--rgb-black: 0 0 0;--text: var(--color-text-primary);--text-muted: var(--color-text-secondary);--text-subtle: var(--color-text-muted);--primary: var(--color-accent-cyan);--secondary: var(--color-accent-blue);--positive: var(--color-play-green);--warning: var(--color-accent-gold);--negative: var(--color-danger);--page-background: var(--color-space-980);--panel-background: rgb(var(--rgb-space-850) / .74);--panel-background-strong: rgb(var(--rgb-space-800) / .92);--panel-background-translucent: rgb(var(--rgb-space-850) / .5);--field-background: rgb(var(--rgb-space-980) / .55);--border: rgb(var(--rgb-cyan) / .28);--border-soft: rgb(var(--rgb-cyan) / .16);--border-strong: rgb(var(--rgb-cyan) / .58);--border-green: rgb(var(--rgb-green) / .5);--wash-cyan-faint: rgb(var(--rgb-cyan) / .06);--wash-cyan-subtle: rgb(var(--rgb-cyan) / .1);--wash-cyan-soft: rgb(var(--rgb-cyan) / .16);--wash-cyan-medium: rgb(var(--rgb-cyan) / .24);--wash-cyan-glow: rgb(var(--rgb-cyan) / .42);--wash-green-soft: rgb(var(--rgb-green) / .14);--wash-gold-soft: rgb(var(--rgb-gold) / .16);--wash-danger-soft: rgb(var(--rgb-danger) / .16);--panel-shadow-dark: rgb(var(--rgb-black) / .46);--panel-shadow-glow: rgb(var(--rgb-cyan) / .16);--gradient-page: radial-gradient(circle at 50% -20%, rgb(var(--rgb-blue) / .18), transparent 34rem), linear-gradient(180deg, var(--color-space-950), var(--color-space-980) 54%);--gradient-panel: linear-gradient(145deg, rgb(var(--rgb-space-800) / .94), rgb(var(--rgb-space-980) / .82));--gradient-action: linear-gradient(120deg, var(--color-accent-blue), var(--color-accent-cyan));--gradient-play: linear-gradient(135deg, #3ef08a 0%, #16c5a6 100%);--gradient-rainbow: linear-gradient( 90deg, #4fabf6, #5fe9ff, #6dff9e, #ffd166, #ff6f91, #b07cff, #4fabf6 );--gradient-blueprint: linear-gradient(90deg, transparent, var(--wash-cyan-medium), transparent);--sp-2xs: .25rem;--sp-xs: .5rem;--sp-sm: .75rem;--sp-md: 1rem;--sp-lg: 1.5rem;--sp-xl: 2rem;--sp-2xl: 3rem;--page-gutter: clamp(1rem, 3vw, 2.5rem);--wide-max-width: 1560px;--nav-height: 72px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 8px;--angle-clip: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 16px 100%, 0 calc(100% - 16px) );--angle-clip-sm: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px) );--duration-fast: .14s;--duration-normal: .24s;--ease-out: cubic-bezier(.16, 1, .3, 1);--transition-fast: var(--duration-fast) var(--ease-out);--transition-normal: var(--duration-normal) var(--ease-out);--z-sticky: 200;--z-modal: 1000;--z-tooltip: 1100;--series-1: #4fabf6;--series-2: #5fd8ff;--series-3: #3ef08a;--series-4: #ffd45c;--series-5: #b07cff;--series-6: #ff6f91;--series-7: #1e72e8;--series-8: #6dff9e}.panel{position:relative;background:var(--panel-background);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 18px 40px -24px var(--panel-shadow-dark),inset 0 1px rgb(var(--rgb-white) / .03)}.panel--clip{clip-path:var(--angle-clip);border:none;background:linear-gradient(var(--panel-background),var(--panel-background)) padding-box,var(--wash-cyan-medium) border-box}.panel--clip:before{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;clip-path:var(--angle-clip);background:var(--panel-background-strong);z-index:0;pointer-events:none}.panel--clip>*{position:relative;z-index:1}.panel--hero{background:var(--gradient-panel);border-color:var(--border-strong);box-shadow:0 24px 60px -28px var(--panel-shadow-dark),0 0 40px -12px var(--panel-shadow-glow)}.panel--rainbow{border:none;background:linear-gradient(var(--panel-background-strong),var(--panel-background-strong)) padding-box,var(--gradient-rainbow) border-box;border:1.5px solid transparent;background-size:100% 100%,300% 100%;animation:rainbow-flow 8s linear infinite}@keyframes rainbow-flow{to{background-position:0 0,-300% 0}}.panel__title{display:flex;align-items:center;gap:var(--sp-xs);font-family:var(--font-heading);font-size:.82rem;font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sp-md)}.panel__title:before{content:"";width:6px;height:14px;background:var(--gradient-action);box-shadow:0 0 10px var(--wash-cyan-glow);clip-path:polygon(0 0,100% 0,100% 70%,60% 100%,0 100%)}.field{width:100%;background:var(--field-background);border:1px solid var(--border-soft);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-mono);font-size:.9rem;padding:.4rem .55rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.field:focus,.field:focus-visible{outline:none;border-color:var(--border-strong);box-shadow:0 0 0 3px var(--wash-cyan-subtle)}.field--sm{padding:.25rem .4rem;font-size:.82rem}.label{display:block;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:.3rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-xs);font-family:var(--font-heading);font-weight:var(--weight-medium);font-size:.82rem;letter-spacing:.03em;color:var(--text);background:linear-gradient(120deg,rgb(var(--rgb-blue) / .16),rgb(var(--rgb-cyan) / .12));border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .9rem;transition:all var(--transition-fast)}.btn:hover{border-color:var(--border-strong);background:linear-gradient(120deg,rgb(var(--rgb-blue) / .28),rgb(var(--rgb-cyan) / .22));box-shadow:0 0 20px -6px var(--wash-cyan-glow)}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--gradient-action);border-color:transparent;color:#01131f;font-weight:var(--weight-bold)}.btn--ghost{background:transparent}.btn--danger{border-color:var(--wash-danger-soft);color:var(--negative)}.btn--danger:hover{background:var(--wash-danger-soft);box-shadow:none}.btn--sm{padding:.3rem .55rem;font-size:.75rem}.btn--icon{padding:.3rem;width:1.9rem;height:1.9rem}.btn:disabled{opacity:.4;cursor:not-allowed}.chip{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.72rem;padding:.15rem .5rem;border-radius:999px;border:1px solid var(--border-soft);color:var(--text-muted);background:var(--wash-cyan-faint)}.chip--positive{color:var(--positive);border-color:var(--border-green);background:var(--wash-green-soft)}.chip--warning{color:var(--warning);border-color:var(--wash-gold-soft);background:var(--wash-gold-soft)}.chip--danger{color:var(--negative);border-color:var(--wash-danger-soft);background:var(--wash-danger-soft)}.glow-card{position:relative;overflow:hidden}.glow-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:radial-gradient(18rem 18rem at var(--mx, 50%) var(--my, 0%),var(--wash-cyan-subtle),transparent 60%);opacity:0;transition:opacity var(--transition-normal);pointer-events:none}.glow-card:hover:after{opacity:1}.slider-root{position:relative;display:flex;align-items:center;-webkit-user-select:none;user-select:none;touch-action:none;width:100%;height:20px}.slider-track{position:relative;flex-grow:1;height:4px;background:rgb(var(--rgb-space-980) / .85);border:1px solid var(--border-soft);border-radius:999px}.slider-range{position:absolute;height:100%;background:var(--gradient-action);border-radius:999px;box-shadow:0 0 10px -2px var(--wash-cyan-glow)}.slider-thumb{display:block;width:15px;height:15px;background:var(--color-space-980);border:2px solid var(--color-accent-cyan);border-radius:50%;box-shadow:0 0 12px -2px var(--wash-cyan-glow);transition:box-shadow var(--transition-fast)}.slider-thumb:hover,.slider-thumb:focus-visible{outline:none;box-shadow:0 0 0 5px var(--wash-cyan-subtle),0 0 14px -2px var(--wash-cyan-glow)}.switch-root{width:38px;height:21px;background:rgb(var(--rgb-space-980) / .9);border:1px solid var(--border-soft);border-radius:999px;position:relative;transition:all var(--transition-fast)}.switch-root[data-state=checked]{background:var(--wash-cyan-medium);border-color:var(--border-strong)}.switch-thumb{display:block;width:15px;height:15px;background:var(--text-muted);border-radius:50%;transition:transform var(--transition-fast),background var(--transition-fast);transform:translate(2px)}.switch-root[data-state=checked] .switch-thumb{transform:translate(19px);background:var(--color-accent-cyan);box-shadow:0 0 8px var(--wash-cyan-glow)}.tabs-list{display:flex;flex-wrap:wrap;gap:.25rem;border-bottom:1px solid var(--border-soft);margin-bottom:var(--sp-lg)}.tabs-trigger{font-family:var(--font-heading);font-size:.82rem;font-weight:var(--weight-medium);letter-spacing:.04em;color:var(--text-subtle);background:transparent;border:none;border-bottom:2px solid transparent;padding:.6rem .9rem;transition:color var(--transition-fast),border-color var(--transition-fast)}.tabs-trigger:hover{color:var(--text-muted)}.tabs-trigger[data-state=active]{color:var(--text);border-bottom-color:var(--color-accent-cyan);text-shadow:0 0 12px var(--wash-cyan-glow)}.data-table{width:100%;border-collapse:collapse;font-size:.85rem}.data-table th{text-align:left;font-family:var(--font-heading);font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:var(--text-subtle);padding:.4rem .5rem;border-bottom:1px solid var(--border-soft)}.data-table td{padding:.35rem .5rem;border-bottom:1px solid rgb(var(--rgb-cyan) / .07);vertical-align:middle}.data-table tr:hover td{background:var(--wash-cyan-faint)}.row{display:flex;align-items:center;gap:var(--sp-sm)}.row--between{justify-content:space-between}.row--wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:var(--sp-sm)}.grid-auto{display:grid;gap:var(--sp-lg);grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle)}.tnum{font-variant-numeric:tabular-nums;font-family:var(--font-mono)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--text);background:var(--page-background);-webkit-font-smoothing:antialiased;line-height:1.5}#root{display:flex;flex-direction:column;gap:var(--sp-lg, 1.25rem);max-width:84rem;margin:0 auto;padding:1.75rem 1.5rem 3rem}.app-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:var(--gradient-page, var(--page-background));pointer-events:none;overflow:hidden}.app-backdrop:before{content:"";position:absolute;top:-40%;right:-10%;bottom:0;left:-10%;background-image:linear-gradient(rgb(var(--rgb-cyan) / .05) 1px,transparent 1px),linear-gradient(90deg,rgb(var(--rgb-cyan) / .05) 1px,transparent 1px);background-size:46px 46px;transform:perspective(620px) rotateX(62deg);transform-origin:top center;-webkit-mask-image:linear-gradient(180deg,rgb(var(--rgb-black) / .55),transparent 70%);mask-image:linear-gradient(180deg,rgb(var(--rgb-black) / .55),transparent 70%);opacity:.5}.app-backdrop:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(40rem 24rem at 12% 8%,rgb(var(--rgb-blue) / .16),transparent 70%),radial-gradient(30rem 30rem at 70% 100%,rgb(var(--rgb-cyan) / .09),transparent 70%);animation:aurora-drift 28s ease-in-out infinite alternate}@keyframes aurora-drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(-2%,1.5%,0) scale(1.06)}}.app-header{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;justify-content:space-between}.app-title{margin:0;font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.1rem);font-weight:var(--weight-black);letter-spacing:-.02em}.app-subtitle{margin:.15rem 0 0;color:var(--text-subtle);font-size:.85rem}.app-header__controls{display:flex;gap:.6rem;align-items:center}.app-main{display:flex;flex-direction:column;gap:1.25rem}.app-footer{color:var(--text-subtle);font-size:.78rem;text-align:right}.button,.range__button{font:inherit;font-size:.82rem;color:var(--text-muted);background:var(--field-background);border:1px solid var(--border-soft);border-radius:var(--radius-sm, 6px);padding:.42rem .85rem;cursor:pointer;transition:color .14s ease,border-color .14s ease,background .14s ease}.button:hover:not(:disabled),.range__button:hover{color:var(--text);border-color:var(--border-strong)}.button:disabled{opacity:.55;cursor:default}.button:focus-visible,.range__button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.range{display:inline-flex;gap:.25rem;padding:.2rem;background:var(--field-background);border:1px solid var(--border-soft);border-radius:var(--radius-sm, 6px)}.range__button{border:1px solid transparent;background:transparent;padding:.3rem .7rem}.range__button.is-active{color:var(--color-space-980);background:var(--primary);border-color:var(--primary);font-weight:var(--weight-medium)}.panel__header{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between;margin-bottom:1rem}.panel__title{margin:0;font-family:var(--font-heading);font-size:1.02rem;font-weight:var(--weight-bold);letter-spacing:-.01em}.panel__subtitle{margin:.15rem 0 0;color:var(--text-subtle);font-size:.78rem}.panel-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,26rem),1fr))}.metric-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr))}.metric-row{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,8.5rem),1fr));margin-bottom:1rem}.metric{display:flex;flex-direction:column;gap:.15rem;padding:.9rem 1rem;background:var(--panel-background);border:1px solid var(--border-soft);border-radius:var(--radius-md, 10px)}.metric__label{color:var(--text-subtle);font-size:.72rem;text-transform:uppercase;letter-spacing:.07em}.metric__value{font-family:var(--font-heading);font-size:clamp(1.25rem,2.4vw,1.6rem);font-weight:var(--weight-bold);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.metric__delta{font-size:.76rem;font-variant-numeric:tabular-nums;color:var(--text-subtle)}.metric__delta.is-positive{color:var(--positive)}.metric__delta.is-negative{color:var(--negative)}.metric__hint{color:var(--text-subtle);font-size:.74rem}.state{margin:0;padding:.9rem 1rem;border-radius:var(--radius-md, 10px);font-size:.84rem}.state--muted{color:var(--text-subtle);background:var(--field-background);border:1px dashed var(--border-soft)}.state--error{color:var(--negative);background:rgb(var(--rgb-danger) / .08);border:1px solid rgb(var(--rgb-danger) / .35)}.state--banner{margin-bottom:.5rem}.chart{margin:0 -.35rem}.breakdown{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none}.breakdown__row{display:grid;grid-template-columns:minmax(6rem,11rem) 1fr auto;gap:.75rem;align-items:center;font-size:.83rem}.breakdown__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}.breakdown__bar{height:7px;background:var(--field-background);border-radius:999px;overflow:hidden}.breakdown__fill{display:block;height:100%;background:linear-gradient(90deg,var(--secondary),var(--primary));border-radius:999px}.breakdown__value{color:var(--text);font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){.app-backdrop:after{animation:none}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
