/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--radius-xl:.75rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.fixed{position:fixed}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.table{display:table}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.shrink-0{flex-shrink:0}.resize{resize:both}.auto-rows-min{grid-auto-rows:min-content}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-6{gap:calc(var(--spacing) * 6)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-background{background-color:var(--background)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-6{padding-block:calc(var(--spacing) * 6)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-card-foreground{color:var(--card-foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.underline-offset-4{text-underline-offset:4px}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.running{animation-play-state:running}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing) * 6)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--radius:.625rem}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--panel:#0a0a0c;--panel2:#050506;--border:#23262e;--txt:#c9d4e8;--muted:#6b7a99;--dim:#445069;--cyan:#38e1d6;--blue:#4cc2ff;--amber:#ffb454;--red:#ff6b6b;--green:#5ee6a8;--violet:#9b8cff;--txt-hi:#fff;--txt-2:#aab6cc;--txt-gcmd:#dde5f2;--txt-note:#b9c5d8;--on-acc:#06121a;--acc2:#2bb5ab;--hdr-bg:linear-gradient(180deg,#111726f2,#0d1320d9);--guide-top:#07090d;--tip-bg:#05080f;--grid:#38e1d606;--line:#ffffff0a;--line2:#ffffff12;--hover:#ffffff08;--tile:#ffffff09;--tile-bd:#ffffff0d;--user-bg:linear-gradient(135deg,#16324a,#143a52);--user-bd:#1f4a66;--user-txt:#dff3ff;--scrim:#04070e99;--shadow:#0006;--p-col:#4cc2ff;--p-raf:#5ee6a8;--p-pur:#9b8cff;--p-girt:#ffb454;--p-strut:#ff6b6b;--p-post:#4cc2ff;--p-brace:#ff6bd5;--p-typ:#4cc2ff;--p-pod:#ffb454;--p-roof:#5ee6a8;--p-trans:#ff6b6b;--p-base:#9b8cff;--p-node:#445069;--p-sup:#ff6b6b;--p-sup-bd:#f99;--p-floor:#44506959;--p-axis:#445069;--p-grid:#1a2538;--p-scene:#0a0e1a66;--p-legend:#000000d9;--p-legend-bd:#1f2a3d80;--p-txt:#c9d4e8}:root[data-theme=navy]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#08090b;--panel:#0f1115;--panel2:#0b0c0f;--border:#262a32;--txt:#d5d9e1;--muted:#8b919d;--dim:#5d636f;--cyan:#6b86f0;--blue:#8aa0f5;--amber:#e0a456;--red:#e06b6b;--green:#62c08f;--violet:#a094f0;--txt-hi:#fff;--txt-2:#b5bbc6;--txt-gcmd:#e4e7ed;--txt-note:#b9bfca;--on-acc:#fff;--acc2:#3f5bcc;--hdr-bg:linear-gradient(180deg,#101217,#0c0d11);--guide-top:#0d0e12;--tip-bg:#0e1016;--grid:transparent;--line:#ffffff0d;--line2:#ffffff14;--hover:#ffffff0a;--tile:#ffffff0a;--tile-bd:#ffffff0f;--user-bg:linear-gradient(135deg,#1c2c66,#213578);--user-bd:#2e4596;--user-txt:#eef1ff;--scrim:#0009;--shadow:#00000080;--p-col:#e6e9f0;--p-raf:#7f9cff;--p-pur:#a094f0;--p-girt:#e0a456;--p-strut:#62c08f;--p-post:#b5bbc6;--p-brace:#e07bc8;--p-typ:#e6e9f0;--p-pod:#e0a456;--p-roof:#7f9cff;--p-trans:#e06b6b;--p-base:#a094f0;--p-node:#5d636f;--p-sup:#e06b6b;--p-sup-bd:#f0a0a0;--p-floor:#8b919d4d;--p-axis:#6b717d;--p-grid:#1f232b;--p-scene:#14161c80;--p-legend:#0b0c0fe6;--p-legend-bd:#262a32;--p-txt:#d5d9e1}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--panel:#f5f6f8;--panel2:#fafbfc;--border:#dcdfe5;--txt:#1f2430;--muted:#5d6472;--dim:#8a909b;--cyan:#1f3a8a;--blue:#2f55c9;--amber:#b56d00;--red:#c43030;--green:#1d8653;--violet:#5a45c6;--txt-hi:#0b0d12;--txt-2:#3a404c;--txt-gcmd:#1f2430;--txt-note:#3a404c;--on-acc:#fff;--acc2:#15296b;--hdr-bg:linear-gradient(180deg,#fff,#f6f7f9);--guide-top:#f1f3f6;--tip-bg:#f0f3f9;--grid:transparent;--line:#0000000f;--line2:#00000017;--hover:#00000009;--tile:#00000009;--tile-bd:#00000012;--user-bg:linear-gradient(135deg,#1f3a8a,#26449c);--user-bd:#1f3a8a;--user-txt:#fff;--scrim:#1418204d;--shadow:#00000024;--p-col:#1f3a8a;--p-raf:#1d8653;--p-pur:#5a45c6;--p-girt:#c27a16;--p-strut:#c43030;--p-post:#3a404c;--p-brace:#b0328f;--p-typ:#1f3a8a;--p-pod:#c27a16;--p-roof:#1d8653;--p-trans:#c43030;--p-base:#5a45c6;--p-node:#9097a3;--p-sup:#c43030;--p-sup-bd:#e08080;--p-floor:#1f3a8a38;--p-axis:#5d6472;--p-grid:#e1e4ea;--p-scene:#f4f6f9b3;--p-legend:#ffffffeb;--p-legend-bd:#dcdfe5;--p-txt:#1f2430}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:"IBM Plex Sans",var(--cjk),sans-serif;background:var(--bg);color:var(--txt);background-image:linear-gradient(var(--grid) 1px,transparent 1px), linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:32px 32px;flex-direction:column;height:100vh;display:flex;overflow:hidden}#root{flex-direction:column;flex:1;min-height:0;display:flex}.mono{font-family:"IBM Plex Mono",var(--cjk),monospace}header{background:var(--hdr-bg);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;flex-shrink:0;align-items:center;gap:14px;padding:12px 20px;display:flex}header .mark{clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,9px 100%,0 calc(100% - 9px));width:36px;height:36px;font-family:"IBM Plex Sans",var(--cjk);color:#fff;letter-spacing:.3px;background:linear-gradient(135deg,#ec1c2e 0%,#c80f25 100%);justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:flex;box-shadow:0 2px 9px #c80f2566}header h1{letter-spacing:.3px;font-size:.98rem;font-weight:600}header h1 small{color:var(--muted);letter-spacing:1.5px;text-transform:uppercase;margin-top:2px;font-size:.64rem;font-weight:400;display:block}header .spacer{flex:1}.pill{font-family:"IBM Plex Mono",var(--cjk);border:1px solid var(--border);color:var(--txt-2);cursor:pointer;white-space:nowrap;border-radius:20px;align-items:center;gap:7px;padding:5px 11px;font-size:.7rem;transition:all .2s;display:flex}.pill:hover{border-color:var(--dim);color:var(--txt-hi)}.dot{background:var(--dim);border-radius:50%;width:7px;height:7px;transition:all .3s}.pill.on .dot{background:var(--green);box-shadow:0 0 8px var(--green)}.pill.err .dot{background:var(--red);box-shadow:0 0 8px var(--red)}.gear{cursor:pointer;color:var(--txt-2);border-radius:6px;padding:4px 8px;font-size:1.2rem;transition:all .2s}.gear:hover{color:var(--cyan);background:color-mix(in srgb,var(--cyan) 8%,transparent)}.gear.active{color:var(--cyan)}.langsel{align-items:center;margin-right:4px;display:flex}.langsel select{font-family:"IBM Plex Mono",var(--cjk);border:1px solid var(--border);background:var(--bg);color:var(--txt-2);cursor:pointer;border-radius:6px;outline:none;padding:4px 8px;font-size:.72rem;transition:all .15s}.langsel select:hover{border-color:var(--dim);color:var(--txt-hi)}main{grid-template-columns:minmax(0,var(--split,49%)) 6px minmax(0,1fr);background:var(--border);flex:1;display:grid;overflow:hidden}.splitter{cursor:col-resize;background:var(--border);touch-action:none;transition:background .15s;position:relative}.splitter:after{content:"";background:var(--dim);opacity:.6;border-radius:1px;width:2px;height:36px;margin-top:-18px;position:absolute;top:50%;left:2px}.splitter:hover,main.splitting .splitter{background:var(--cyan)}main.splitting{cursor:col-resize;-webkit-user-select:none;user-select:none}main.splitting .right,main.splitting .chat{pointer-events:none}@media (width<=880px){main{grid-template-rows:1fr 1fr;grid-template-columns:1fr;gap:1px}.splitter{display:none}}.chat{background:var(--bg);flex-direction:row;display:flex;overflow:hidden}.chat-inner{flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.msgs{flex-direction:column;flex:1;gap:16px;padding:18px 20px 22px;display:flex;overflow-y:auto}.msg{width:100%;font-size:.95rem;line-height:1.65;animation:.2s rise}@keyframes rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.msg .who{color:var(--muted);align-items:baseline;gap:8px;margin-bottom:5px;font-size:.74rem;display:flex}.msg .who-n{color:var(--txt-2);font-weight:600}.msg .who-t{color:var(--dim);font-family:IBM Plex Mono,monospace;font-size:.95em}.bubble{border-radius:4px;padding:12px 16px}.msg.bot .bubble{background:var(--panel);border:1px solid var(--border)}.msg.user .bubble{background:var(--tile);border:1px solid var(--border);border-left:3px solid var(--cyan);color:var(--txt-hi);font-family:"IBM Plex Mono",var(--cjk);padding:8px 14px 8px 30px;font-size:.9rem;position:relative}.msg.user .bubble:before{content:"›";color:var(--cyan);font-weight:700;position:absolute;top:7px;left:13px}.bubble b{color:var(--txt-hi);font-weight:600}.bubble code{font-family:"IBM Plex Mono",var(--cjk);background:var(--panel2);color:var(--cyan);border:1px solid var(--border);white-space:nowrap;border-radius:3px;padding:1px 6px;font-size:.86em}.help{grid-template-columns:max-content 1fr;column-gap:16px;margin:2px 0;display:grid}.help .hr{display:contents}.help .hk,.help .hv{border-top:1px solid var(--line2);padding:7px 0}.help .hr:first-child .hk,.help .hr:first-child .hv{border-top:0;padding-top:2px}.help .hk{color:var(--txt-hi);white-space:nowrap;font-size:.92em;font-weight:600}.help .hc{flex-wrap:wrap;gap:5px;margin-bottom:2px;display:flex}.help .hn{color:var(--muted);margin-top:2px;font-size:.86em;line-height:1.5}.help .hc+.hn{margin-top:5px}@media (width<=640px){.help{grid-template-columns:1fr}.help .hk{border-top:1px solid var(--line2);padding-bottom:0}.help .hv{border-top:0;padding-top:4px}}.ver-btn{font:inherit;color:var(--cyan);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0 2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.ver-btn:hover{text-decoration-style:solid}.rn{z-index:41;background:var(--panel);border:1px solid var(--border);width:min(760px,100vw - 32px);height:min(80vh,820px);box-shadow:0 18px 50px var(--shadow);border-radius:8px;flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.rn-hd{border-bottom:1px solid var(--border);align-items:baseline;gap:10px;padding:14px 18px;display:flex}.rn-hd b{color:var(--txt-hi);font-size:1rem}.rn-sub{color:var(--muted);flex:1;font-size:.78rem}.rn-x{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;align-self:center;width:28px;height:28px}.rn-x:hover{color:var(--cyan);border-color:var(--cyan)}.rn-body{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;padding:6px 18px 18px;overflow-y:auto}.rn-item{border-bottom:1px solid var(--line2)}.rn-item summary{cursor:pointer;align-items:baseline;gap:10px;padding:11px 0;list-style:none;display:flex}.rn-item summary::-webkit-details-marker{display:none}.rn-item summary:before{content:"▸";color:var(--muted);font-size:.8em;transition:transform .15s}.rn-item[open] summary:before{transform:rotate(90deg)}.rn-ver{color:var(--cyan);white-space:nowrap;font:600 .9rem IBM Plex Mono,monospace}.rn-cur{color:var(--on-acc);background:var(--cyan);white-space:nowrap;border-radius:3px;padding:1px 6px;font-size:.68rem}.rn-date{color:var(--dim);white-space:nowrap;font:.78rem IBM Plex Mono,monospace}.rn-title{color:var(--txt);min-width:0;font-size:.88rem}.rn-text{color:var(--txt-2);padding:0 0 12px 20px;font-size:.86rem;line-height:1.6}.rn-text h4{color:var(--txt-hi);margin:10px 0 4px;font-size:.84rem}.rn-text ul{margin:2px 0;padding-left:18px}.rn-text li{margin:2px 0}.rn-text p{margin:4px 0}.rn-text code{font-family:"IBM Plex Mono",var(--cjk);color:var(--cyan);background:var(--panel2);border:1px solid var(--border);border-radius:3px;padding:0 4px;font-size:.9em}.rn-text b{color:var(--txt-hi)}.rn-err{color:var(--red)}@media (width<=640px){.rn-item summary{flex-wrap:wrap;gap:4px 8px}.rn-title{flex-basis:100%}}.sb{vertical-align:.08em;border:1px solid;border-radius:3px;justify-content:center;align-items:center;width:1.15em;height:1.15em;margin-right:4px;font:700 .78em/1 IBM Plex Mono,monospace;display:inline-flex}.sb.ok{color:var(--green)}.sb.ng{color:var(--red)}.sb.warn{color:var(--amber)}.sb.info{color:var(--muted)}.bubble .plan{border:1px solid var(--border);background:var(--panel2);font-family:"IBM Plex Sans",var(--cjk);color:var(--txt);font-variant-numeric:tabular-nums;border-radius:4px;margin-top:10px;padding:10px 14px;font-size:.88rem;line-height:1.95}.bubble .plan .k{color:var(--muted);margin-right:.3em;font-size:.92em}.bubble .plan .plan-type{color:var(--txt-hi);font-weight:600}.bubble .plan .plan-desc{color:var(--muted);margin-left:8px;font-size:.85em}.bubble .plan .plan-sub{border-top:1px dashed var(--line2);margin-top:6px;padding-top:6px;font-size:.82em;line-height:1.6}.bubble .plan .plan-tip{color:var(--dim);margin-top:6px;font-size:.78em}.plan-editor{border-left:2px solid var(--cyan);margin-top:10px;padding:11px 0 6px 13px}.plan-editor .pe-head{border-bottom:1px dashed var(--line2);align-items:center;gap:8px;margin-bottom:11px;padding-bottom:9px;display:flex}.pe-grid{grid-template-columns:1fr 1fr;gap:8px 14px;display:grid}.pe-f{flex-direction:column;gap:3px;min-width:0;display:flex}.pe-f label{font-family:"IBM Plex Mono",var(--cjk);color:var(--amber);letter-spacing:.5px;font-size:.66rem}.pe-in{align-items:center;gap:5px;display:flex}.pe-in input,.pe-in select{background:var(--bg);border:1px solid var(--border);width:100%;min-width:0;color:var(--txt);font-family:"IBM Plex Mono",var(--cjk);border-radius:6px;padding:6px 8px;font-size:.82rem;transition:all .15s}.pe-in input:focus,.pe-in select:focus{border-color:var(--cyan);box-shadow:0 0 0 2px color-mix(in srgb,var(--cyan) 12%,transparent);outline:none}.pe-in input:hover,.pe-in select:hover{border-color:var(--dim)}.pe-u{font-family:"IBM Plex Mono",var(--cjk);color:var(--dim);flex-shrink:0;font-size:.62rem}.pe-tip{color:var(--txt-hi);background:var(--tip-bg);border-left:2px solid var(--cyan);font-size:.72rem;font-family:"IBM Plex Mono",var(--cjk);border-radius:6px;align-items:center;gap:5px;margin-top:10px;padding:7px 10px;line-height:1.55;display:flex}.pe-tip:before{content:"✎";color:var(--cyan)}.pe-full{grid-column:1/-1}.confirm-row{gap:8px;margin-top:12px;display:flex}.typing{gap:4px;padding:4px 0;display:inline-flex}.typing span{background:var(--cyan);border-radius:50%;width:6px;height:6px;animation:1.2s infinite blink}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,60%,to{opacity:.25}30%{opacity:1}}.composer{border-top:1px solid var(--border);padding:14px 16px calc(20px + env(safe-area-inset-bottom));background:var(--panel2)}.composer .row{align-items:flex-end;gap:10px;display:flex}.composer textarea{resize:none;background:var(--bg);border:1px solid var(--border);color:var(--txt);font-family:"IBM Plex Sans",var(--cjk);border-radius:10px;flex:1;max-height:120px;padding:11px 13px;font-size:1.05rem;line-height:1.4}.composer textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px color-mix(in srgb,var(--cyan) 10%,transparent);outline:none}.send{background:linear-gradient(135deg,var(--cyan),var(--acc2));color:var(--on-acc);cursor:pointer;border:none;border-radius:10px;flex-shrink:0;width:44px;height:44px;font-size:1.1rem;font-weight:700;transition:all .2s}.send:hover{box-shadow:0 4px 16px color-mix(in srgb,var(--cyan) 35%,transparent);transform:translateY(-1px)}.send:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.chips{flex-wrap:wrap;gap:7px;margin-bottom:11px;display:flex}.chip{font-family:"IBM Plex Mono",var(--cjk);border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:18px;padding:6px 13px;font-size:.82rem;transition:all .2s}.chip:hover{border-color:var(--cyan);color:var(--cyan)}.modebar{color:var(--muted);font-size:.82rem;font-family:"IBM Plex Mono",var(--cjk);align-items:center;gap:8px;margin-bottom:11px;display:flex}.modebar .tag{border:1px solid var(--border);border-radius:6px;padding:3px 9px}.modebar .tag.llm{color:var(--violet);border-color:color-mix(in srgb,var(--violet) 35%,transparent)}.modebar .tag.local{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 35%,transparent)}.clearchat{font-family:"IBM Plex Mono",var(--cjk);color:var(--muted);border:1px solid var(--border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;flex-shrink:0;padding:3px 9px;font-size:.72rem;transition:all .15s}.clearchat:hover{border-color:var(--red);color:var(--red);background:color-mix(in srgb,var(--red) 6%,transparent)}.guide{border-right:1px solid var(--border);background:linear-gradient(180deg,var(--guide-top) 0%,var(--panel2) 40%);flex-direction:column;flex-shrink:0;width:216px;transition:width .22s cubic-bezier(.2,.8,.2,1);display:flex;overflow:hidden}.guide.collapsed{border-right:none;width:0}@media (width<=960px){.guide{display:none}}.guide-hd{border-bottom:1px solid var(--border);font-family:"IBM Plex Mono",var(--cjk);letter-spacing:1.5px;color:var(--cyan);text-transform:uppercase;white-space:nowrap;flex-shrink:0;align-items:center;gap:7px;padding:11px 12px;font-size:.68rem;display:flex}.guide-hd span{flex:1}.guide-tog{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:23px;height:23px;font-size:.8rem;line-height:1;transition:all .15s;display:flex}.guide-tog:hover{border-color:var(--cyan);color:var(--cyan)}.guide-body{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;padding:8px 8px 16px;overflow-y:auto}.gsec{--acc:var(--cyan);margin-bottom:6px}.gsec[data-acc=blue]{--acc:var(--blue)}.gsec[data-acc=amber]{--acc:var(--amber)}.gsec[data-acc=green]{--acc:var(--green)}.gsec[data-acc=violet]{--acc:var(--violet)}.gsec-hd{font-family:"IBM Plex Sans",var(--cjk);letter-spacing:.2px;color:var(--txt-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:8px;padding:7px 6px 6px;font-size:.78rem;font-weight:600;transition:all .15s;display:flex}.gsec-hd:hover{color:var(--txt-hi);background:var(--hover)}.gsec-hd .gsec-ic{width:22px;height:22px;color:var(--acc);background:color-mix(in srgb,var(--acc) 12%,transparent);border:1px solid color-mix(in srgb,var(--acc) 28%,transparent);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;display:flex}.gsec-hd .garrow{opacity:.7;border-bottom:1.6px solid;border-right:1.6px solid;flex-shrink:0;width:8px;height:8px;margin:0 4px 3px 0;transition:transform .18s;transform:rotate(45deg)}.gsec:not(.closed) .garrow{margin:3px 4px 0 0;transform:rotate(-135deg)}.gsec-items{flex-direction:column;gap:2px;padding-left:2px;transition:max-height .2s;display:flex;overflow:hidden}.gsec.closed .gsec-items{max-height:0!important}.gsec-items>*{flex-shrink:0}.gcmd{text-align:left;width:100%;font-family:"IBM Plex Sans",var(--cjk);color:var(--txt-gcmd);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:8px;padding:4px 8px 4px 6px;font-size:.78rem;line-height:1.3;transition:background .14s,border-color .14s,color .14s,transform 80ms;display:flex;position:relative;overflow:hidden}.gcmd:before{content:"";background:var(--acc);opacity:0;border-radius:2px;width:2px;transition:all .16s;position:absolute;top:7px;bottom:7px;left:0;transform:scaleY(.4)}.gcmd:hover{color:var(--txt-hi);background:color-mix(in srgb,var(--acc) 7%,transparent);border-color:color-mix(in srgb,var(--acc) 22%,transparent)}.gcmd:hover:before{opacity:1;transform:scaleY(1)}.gcmd:active{transform:scale(.985)}.gcmd:focus-visible{border-color:var(--acc);box-shadow:0 0 0 2px color-mix(in srgb,var(--acc) 25%,transparent);outline:none}.gcmd .gicon{width:22px;height:22px;color:var(--acc);background:var(--tile);border:1px solid var(--tile-bd);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-style:normal;transition:all .14s;display:flex}.gcmd:hover .gicon{background:color-mix(in srgb,var(--acc) 14%,transparent);border-color:color-mix(in srgb,var(--acc) 30%,transparent)}.gcmd .glabel{text-overflow:ellipsis;flex:1;overflow:hidden}.gcmd .gsend{color:var(--acc);border:1px solid color-mix(in srgb,var(--acc) 40%,transparent);opacity:0;border-radius:4px;flex-shrink:0;padding:1px 5px;font-family:IBM Plex Mono,monospace;font-size:.6rem;transition:all .14s;transform:translate(4px)}.gcmd:hover .gsend,.gcmd:focus-visible .gsend{opacity:1;transform:none}.gcmd.running{color:var(--txt-hi);background:color-mix(in srgb,var(--acc) 10%,transparent);border-color:color-mix(in srgb,var(--acc) 40%,transparent)}.gcmd.running:before{opacity:1;transform:scaleY(1)}.gcmd.running .gsend{opacity:1;animation:1s ease-in-out infinite gpulse;transform:none}@keyframes gpulse{50%{opacity:.35}}.guide.busy .gcmd:not(.running){opacity:.55;cursor:progress}.gsec-div{background:var(--border);opacity:.6;height:1px;margin:5px 8px}.gsec-note{background:color-mix(in srgb,var(--acc) 5%,var(--tip-bg));color:var(--txt-note);border:1px solid color-mix(in srgb,var(--acc) 16%,transparent);font-family:"IBM Plex Sans",var(--cjk);white-space:normal;border-radius:7px;gap:7px;margin:5px 2px 4px;padding:7px 9px;font-size:.66rem;line-height:1.55;display:flex}.gsec-note:before{content:"i";width:14px;height:14px;color:var(--acc);border:1px solid color-mix(in srgb,var(--acc) 50%,transparent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font:600 .55rem IBM Plex Mono,monospace;display:flex}.guide-open{background:var(--panel);border:1px solid var(--border);color:var(--muted);cursor:pointer;writing-mode:vertical-rl;font-size:.66rem;font-family:"IBM Plex Mono",var(--cjk);letter-spacing:1.5px;z-index:5;border-left:none;border-radius:0 6px 6px 0;padding:7px 4px;transition:all .15s;display:none;position:absolute;top:50%;left:0;transform:translateY(-50%)}.guide-open:hover{color:var(--cyan);border-color:var(--cyan)}.chat-inner.g-closed .msgs{padding-left:40px}@media (width<=960px){.chat-inner.g-closed .msgs{padding-left:20px}}.right{background:var(--panel2);flex-direction:column;display:flex;overflow:hidden}.tabbar{border-bottom:1px solid var(--border);background:var(--panel);flex-shrink:0;display:flex}.tab{text-align:center;font-family:"IBM Plex Mono",var(--cjk);letter-spacing:.5px;color:var(--muted);cursor:pointer;text-transform:uppercase;border-bottom:2px solid #0000;flex:1;padding:11px;font-size:.74rem;transition:all .2s}.tab:hover{color:var(--txt)}.tab.on{color:var(--cyan);border-color:var(--cyan);background:color-mix(in srgb,var(--cyan) 4%,transparent)}.panel{flex:1;padding:16px;display:none;overflow:auto}.panel.on{display:block}#log{font-family:"IBM Plex Mono",var(--cjk);font-size:.78rem;line-height:1.75}#log .ln{gap:9px;padding:2px 0;animation:.2s rise;display:flex}#log .ts{color:var(--dim);flex-shrink:0}#log .ln.ok .m{color:var(--green)}#log .ln.err .m{color:var(--red)}#log .ln.info .m{color:var(--blue)}#log .ln.api .m{color:var(--muted)}#log .ln.warn .m{color:var(--amber)}#log .ln .m b{color:var(--cyan)}#log .empty{color:var(--dim);font-style:italic}.scard{background:var(--panel);border:1px solid var(--border);border-radius:10px;margin-bottom:12px;padding:14px 16px}.scard h3{font-family:"IBM Plex Mono",var(--cjk);letter-spacing:1.5px;color:var(--cyan);text-transform:uppercase;align-items:center;gap:7px;margin-bottom:10px;font-size:.7rem;display:flex}.kv{border-bottom:1px dashed var(--line);justify-content:space-between;padding:4px 0;font-size:.84rem;display:flex}.kv:last-child{border:none}.kv .k{color:var(--muted)}.kv .v{font-family:"IBM Plex Mono",var(--cjk);color:var(--txt)}.kv .v.hi{color:var(--cyan)}.statgrid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px;display:grid}.stat{background:var(--panel);border:1px solid var(--border);text-align:center;border-radius:10px;padding:14px}.stat .n{font-family:"IBM Plex Mono",var(--cjk);color:var(--cyan);font-size:1.5rem;font-weight:700}.stat .l{color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-top:3px;font-size:.66rem}table{border-collapse:collapse;width:100%;font-size:.78rem;font-family:"IBM Plex Mono",var(--cjk)}th{background:var(--panel);color:var(--cyan);text-align:left;border-bottom:1px solid var(--border);padding:7px 9px;font-weight:600;position:sticky;top:0}td{border-bottom:1px solid var(--line);color:var(--txt);padding:6px 9px}td.pos{color:var(--green)}td.neg{color:var(--red)}.res-empty{color:var(--dim);text-align:center;padding:30px;font-style:italic}.res-stat{border:1px solid var(--border);border-left:2px solid var(--cyan);background:var(--hover);border-radius:7px;margin:0 0 12px;padding:9px 12px;font-size:.78rem;line-height:1.65}.res-sel{align-items:center;gap:9px;margin-bottom:12px;display:flex}.res-sel select{background:var(--bg);border:1px solid var(--border);color:var(--txt);font-family:"IBM Plex Mono",var(--cjk);border-radius:7px;padding:6px 10px;font-size:.8rem}.scrim{background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;z-index:40;transition:all .25s;position:fixed;inset:0}.scrim.on{opacity:1;pointer-events:auto}.drawer{background:var(--panel);border-left:1px solid var(--border);z-index:50;flex-direction:column;width:380px;max-width:90vw;height:100%;transition:all .3s cubic-bezier(.2,.8,.2,1);display:flex;position:fixed;top:0;right:0;transform:translate(100%)}.drawer.on{box-shadow:-20px 0 40px var(--shadow);transform:none}.drawer header{border-bottom:1px solid var(--border);background:0 0}.drawer .body{flex:1;padding:20px;overflow-y:auto}.field{margin-bottom:18px}.field label{color:var(--muted);font-size:.74rem;font-family:"IBM Plex Mono",var(--cjk);letter-spacing:.5px;margin-bottom:6px;display:block}.field input,.field select{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--txt);font-family:"IBM Plex Mono",var(--cjk);border-radius:8px;padding:9px 11px;font-size:.82rem}.field input:focus,.field select:focus{border-color:var(--cyan);outline:none}.field .hint{color:var(--dim);margin-top:5px;font-size:.7rem;line-height:1.5}.toggle-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.switch{cursor:pointer;width:42px;height:23px;position:relative}.switch input{display:none}.switch .track{background:var(--border);border-radius:20px;transition:all .2s;position:absolute;inset:0}.switch .knob{background:var(--muted);border-radius:50%;width:17px;height:17px;transition:all .2s;position:absolute;top:3px;left:3px}.switch input:checked+.track{background:color-mix(in srgb,var(--violet) 30%,transparent)}.switch input:checked+.track+.knob,.switch input:checked~.knob{background:var(--violet);transform:translate(19px)}.sec-divider{font-family:"IBM Plex Mono",var(--cjk);letter-spacing:2px;color:var(--dim);text-transform:uppercase;align-items:center;gap:10px;margin:8px 0 16px;font-size:.68rem;display:flex}.sec-divider:after{content:"";background:var(--border);flex:1;height:1px}.btn{font-family:"IBM Plex Mono",var(--cjk);cursor:pointer;border:none;border-radius:8px;padding:9px 16px;font-size:.8rem;font-weight:600;transition:all .2s}.btn-c{background:var(--cyan);color:var(--on-acc)}.btn-c:hover{filter:brightness(1.1)}.btn-ghost{color:var(--muted);border:1px solid var(--border);background:0 0}.btn-ghost:hover{border-color:var(--dim);color:var(--txt)}.test-out{font-family:"IBM Plex Mono",var(--cjk);white-space:pre-line;border-radius:7px;margin-top:10px;padding:9px 11px;font-size:.76rem;line-height:1.5;display:none}.prov-seg{gap:6px;display:flex}.prov-seg button{border:1px solid var(--border);background:var(--bg);color:var(--muted);font-family:"IBM Plex Mono",var(--cjk);cursor:pointer;border-radius:8px;flex:1;padding:8px 0;font-size:.78rem;transition:all .2s}.prov-seg button:hover{border-color:var(--dim);color:var(--txt)}.drawer .field-row{grid-template-columns:1fr 1.4fr;gap:10px;display:grid}.prov-seg button.on{border-color:var(--violet);color:var(--violet);background:color-mix(in srgb,var(--violet) 8%,transparent);box-shadow:0 0 0 1px var(--violet) inset}.test-out.ok{background:color-mix(in srgb,var(--green) 8%,transparent);color:var(--green);border:1px solid color-mix(in srgb,var(--green) 20%,transparent);display:block}.test-out.err{background:color-mix(in srgb,var(--red) 8%,transparent);color:var(--red);border:1px solid color-mix(in srgb,var(--red) 20%,transparent);display:block}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--dim)}#viewP{padding:0}#viewP.on{flex-direction:column;display:flex}.view-tb{border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:7px 10px;display:flex}.view-tb .vlbl{font-family:"IBM Plex Mono",var(--cjk);color:var(--dim);letter-spacing:1.2px;text-transform:uppercase;flex-shrink:0;margin-right:1px;font-size:.63rem}.view-tb .vsep{background:var(--border);flex-shrink:0;width:1px;height:16px;margin:0 5px}.vcam{font-family:"IBM Plex Mono",var(--cjk);border:1px solid var(--border);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:5px;padding:4px 9px;font-size:.68rem;transition:all .15s}.vcam:hover{border-color:var(--cyan);color:var(--cyan)}.vcam.on{border-color:var(--cyan);color:var(--cyan);background:color-mix(in srgb,var(--cyan) 8%,transparent);box-shadow:0 0 6px color-mix(in srgb,var(--cyan) 15%,transparent)}.vtog{font-family:"IBM Plex Mono",var(--cjk);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:5px;padding:4px 9px;font-size:.68rem;transition:all .15s}.vtog.on{color:var(--txt);border-color:var(--border)}.vtog.off{color:var(--dim);opacity:.45;text-decoration:line-through}.vtog.on:hover{border-color:var(--dim)}.vtog .swatch{vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-top:-1px;margin-right:4px;display:inline-block}.view-stats{font-family:"IBM Plex Mono",var(--cjk);color:var(--muted);background:var(--panel);padding:10px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--border);letter-spacing:.3px;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px 18px;font-size:.78rem;display:flex}.view-stats .vs-item{align-items:center;gap:6px;display:flex}.view-stats .vs-val{color:var(--txt);font-weight:600}.view-stats .vs-hi{color:var(--cyan)}#plot{flex:1;width:100%;min-height:280px}:root{--cjk:"Noto Sans KR","Noto Sans TC","Noto Sans SC"}:root:lang(zh-Hant){--cjk:"Noto Sans TC","Noto Sans KR","Noto Sans SC"}:root:lang(zh-Hans){--cjk:"Noto Sans SC","Noto Sans KR","Noto Sans TC"}.appfoot{padding:5px 14px calc(5px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--panel);font-family:"IBM Plex Mono",var(--cjk);color:var(--dim);flex-shrink:0;align-items:center;gap:10px;font-size:.68rem;display:flex}.appfoot .byline{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.appfoot .byline b{color:var(--muted);font-weight:600}.appfoot .foot-lbl{white-space:nowrap}.theme-seg{border:1px solid var(--border);border-radius:5px;display:flex;overflow:hidden}.theme-seg button{border:none;border-left:1px solid var(--border);color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:6px;padding:3px 10px;transition:all .12s;display:flex}.theme-seg button:first-child{border-left:none}.theme-seg button:hover{color:var(--txt-hi);background:var(--hover)}.theme-seg button.on{color:var(--txt-hi);background:color-mix(in srgb,var(--cyan) 14%,transparent)}.theme-seg .sw{border:1px solid var(--border);border-radius:3px;flex-shrink:0;width:11px;height:11px}@media (width<=640px){.appfoot .by-x,.appfoot .foot-lbl{display:none}}
