:root{--wine:#4a1f2e;--bone:#e2d9ca;--sky:#8bb3d0;--mauve:#a86b80;--void:#160f0f;--color-bg:var(--wine);--color-light:var(--bone);--color-accent:var(--sky);--color-accent-2:var(--mauve);--color-ink:var(--wine);--color-text:#e2d9cae6;--color-text-muted:#e2d9ca73;--color-border:#e2d9ca24;--color-border-strong:#e2d9ca47;--canvas-bg:var(--void);--canvas-text:#e2d9cae6;--canvas-text-muted:#e2d9ca99;--curve-l:70%;--curve-c:.1;--status-error:oklch(var(--curve-l) var(--curve-c) 24);--status-warning:oklch(var(--curve-l) var(--curve-c) 60);--status-complete:oklch(var(--curve-l) var(--curve-c) 144);--status-info:oklch(var(--curve-l) var(--curve-c) 264);--status-pending:oklch(var(--curve-l) var(--curve-c) 312);--status-running:oklch(var(--curve-l) var(--curve-c) 96);--status-stale:var(--color-text-muted)}[data-theme=light]{--color-bg:var(--bone);--color-light:var(--wine);--color-ink:var(--bone);--color-text:#4a1f2eeb;--color-text-muted:#4a1f2e8c;--color-accent:var(--sky);--color-accent-2:var(--mauve);--color-border:#4a1f2e24;--color-border-strong:#4a1f2e47;--canvas-bg:var(--bone);--canvas-text:#160f0fe6;--curve-l:45%;--curve-c:.14}:root{--resource-wind:oklch(var(--curve-l) var(--curve-c) 145);--resource-solar:oklch(var(--curve-l) var(--curve-c) 94);--resource-hydro:oklch(var(--curve-l) var(--curve-c) 240);--resource-battery:oklch(var(--curve-l) var(--curve-c) 296);--resource-nuclear:oklch(var(--curve-l) var(--curve-c) 340);--resource-coal:oklch(45% .02 240);--resource-gas:oklch(var(--curve-l) var(--curve-c) 49);--resource-geothermal:oklch(var(--curve-l) var(--curve-c) 181);--resource-biomass:var(--resource-geothermal);--resource-diesel:oklch(var(--curve-l) var(--curve-c) 24);--text-xs:11px;--text-sm:13px;--text-base:16px;--text-lg:18px;--text-xl:26px;--text-2xl:34px;--text-3xl:46px;--text-4xl:64px;--type-display-font:"IBM Plex Sans", sans-serif;--type-display-size:var(--text-4xl);--type-display-weight:500;--type-display-color:var(--color-text);--type-display-tracking:0em;--type-display-lh:1.1;--type-h1-font:"IBM Plex Sans", sans-serif;--type-h1-size:var(--text-2xl);--type-h1-weight:400;--type-h1-color:var(--color-text);--type-h1-tracking:0em;--type-h1-lh:1.3;--type-h2-font:"IBM Plex Sans", sans-serif;--type-h2-size:var(--text-xl);--type-h2-weight:400;--type-h2-color:var(--color-text);--type-h2-tracking:0em;--type-h2-lh:1.3;--type-body-font:"Inter", sans-serif;--type-body-size:var(--text-base);--type-body-weight:400;--type-body-color:var(--color-text);--type-body-tracking:0em;--type-body-lh:1.65;--type-body-sm-font:"Inter", sans-serif;--type-body-sm-size:var(--text-sm);--type-body-sm-weight:400;--type-body-sm-color:var(--color-text);--type-body-sm-tracking:0em;--type-body-sm-lh:1.3;--type-caption-font:"Inter", sans-serif;--type-caption-size:var(--text-sm);--type-caption-weight:500;--type-caption-color:var(--color-text-muted);--type-caption-tracking:0em;--type-caption-lh:1.1;--type-label-font:"IBM Plex Mono", monospace;--type-label-size:var(--text-xs);--type-label-weight:500;--type-label-color:var(--color-text-muted);--type-label-tracking:.12em;--type-label-lh:1.1;--type-data-font:"IBM Plex Mono", monospace;--type-data-size:var(--text-sm);--type-data-weight:500;--type-data-color:var(--color-accent);--type-data-tracking:0em;--type-data-lh:1.5;--type-button-font:"IBM Plex Mono", monospace;--type-button-size:var(--text-sm);--type-button-weight:400;--type-button-color:var(--color-text);--type-button-tracking:0em;--type-button-lh:1.1;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--frost-blur:12px;--frost-opacity:30%;--focus-ring-color:var(--color-text);--focus-ring-width:1px;--focus-ring-offset:2px;--focus-ring-style:solid;--disabled-opacity:.5;--disabled-saturate:0;--motion-duration:.2s;--motion-easing:ease-out;--selected-bar-width:4px;--selected-tint:10%;--btn-radius:8px;--btn-padding-x:18px;--btn-padding-y:12px;--btn-border-width:1px;--btn-hover-lift:-1px;--btn-hover-scale:1;--btn-solid-shift:10%;--btn-outlined-fill:32%;--btn-tracking:0em;--btn-weight:400}.btn{font-family:var(--type-button-font);font-size:var(--type-button-size);font-weight:var(--btn-weight);letter-spacing:var(--btn-tracking);line-height:var(--type-button-lh);padding:var(--btn-padding-y) var(--btn-padding-x);border:var(--btn-border-width) solid transparent;border-radius:var(--btn-radius);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:all var(--motion-duration) var(--motion-easing);justify-content:center;align-items:center;display:inline-flex}.btn:hover{transform:translateY(var(--btn-hover-lift)) scale(var(--btn-hover-scale))}.btn:focus-visible{outline:var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.btn:disabled,.btn[aria-disabled=true]{opacity:var(--disabled-opacity);filter:saturate(var(--disabled-saturate));cursor:not-allowed;pointer-events:none}.btn-solid{--mix-toward:white;background:var(--bg);color:var(--text);border-color:var(--bg)}.btn-solid:hover{background:color-mix(in srgb, var(--bg), var(--mix-toward) var(--btn-solid-shift));border-color:color-mix(in srgb, var(--bg), var(--mix-toward) var(--btn-solid-shift))}.btn-solid.is-bg-accent{--bg:var(--color-accent);--text:var(--color-light)}.btn-solid.is-bg-accent-on-bg{--bg:var(--color-accent);--text:var(--color-ink);--mix-toward:white}.btn-solid.is-bg{--bg:var(--color-bg);--text:var(--color-light)}.btn-solid.is-bg-accent-2{--bg:var(--color-accent-2);--text:var(--color-light)}.btn-solid.is-light-accent{--bg:var(--color-light);--text:var(--color-accent);--mix-toward:black}.btn-solid.is-light-bg{--bg:var(--color-light);--text:var(--color-ink);--mix-toward:black}.btn-solid.is-light-accent-2{--bg:var(--color-light);--text:var(--color-accent-2);--mix-toward:black}.btn-outlined{color:var(--color);border-color:var(--color);background:0 0}.btn-outlined:hover{background:color-mix(in srgb, var(--color) var(--btn-outlined-fill), transparent)}.btn-outlined.is-light{--color:var(--color-light)}.btn-outlined.is-accent{--color:var(--color-accent)}.btn-outlined.is-accent-2{--color:var(--color-accent-2)}:root{--drawer-width:480px;--drawer-padding:var(--space-6);--drawer-frost-opacity:72%;--drawer-frost-blur:18px;--drawer-scrim-op:.4;--drawer-anim-ms:var(--motion-duration);--drawer-easing:var(--motion-easing)}.drawer-scrim{background:rgba(0, 0, 0, var(--drawer-scrim-op));opacity:0;pointer-events:none;transition:opacity var(--drawer-anim-ms) var(--drawer-easing);position:fixed;inset:0}.is-open .drawer-scrim{opacity:1;pointer-events:auto}.drawer{width:var(--drawer-width);background:color-mix(in srgb, var(--color-bg) var(--drawer-frost-opacity), transparent);-webkit-backdrop-filter:blur(var(--drawer-frost-blur)) saturate(1.08);backdrop-filter:blur(var(--drawer-frost-blur)) saturate(1.08);border-left:1px solid var(--color-border-strong);transition:transform var(--drawer-anim-ms) var(--drawer-easing);position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.is-open .drawer{transform:translate(0)}.drawer-header{padding:var(--drawer-padding);border-bottom:1px solid var(--color-border)}.drawer-body{padding:var(--drawer-padding);overflow-y:auto}:root{--list-row-py:var(--space-3);--list-row-px:var(--space-3);--list-radius:var(--radius-lg);--list-item-radius:var(--radius-sm);--list-divider:20%;--list-hover-color:var(--color-text);--list-hover-fill:8%;--list-selected-tint:var(--selected-tint)}.list-wrap{border-radius:var(--list-radius);background:color-mix(in srgb, var(--color-bg) 55%, transparent);-webkit-backdrop-filter:blur(12px)saturate(1.08);backdrop-filter:blur(12px)saturate(1.08);border:1px solid var(--color-border)}.list-row{align-items:center;gap:var(--space-3);padding:var(--list-row-py) var(--list-row-px);border-radius:var(--list-item-radius);transition:background var(--motion-duration) var(--motion-easing);grid-template-columns:20px 1fr auto;display:grid;position:relative}.list-row:not(:last-child):after{content:"";left:var(--list-row-px);right:var(--list-row-px);background:color-mix(in srgb, var(--color-text) var(--list-divider), transparent);height:1px;position:absolute;bottom:0}.list-row:hover{background:color-mix(in srgb, var(--list-hover-color) var(--list-hover-fill), transparent)}.list-row:focus-visible{outline:var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.list-row.selected{background:color-mix(in srgb, var(--color-accent) var(--list-selected-tint), transparent);box-shadow:inset var(--selected-bar-width) 0 0 0 var(--color-accent)}.list-row .value{font-family:var(--type-data-font);color:var(--color-accent);font-weight:500}:root{--dd-frost-opacity:88%;--dd-frost-blur:8px;--dd-border-fill:18%;--dd-radius:var(--radius-md);--dd-padding-y:4px;--dd-padding-x:8px;--dd-item-padding-y:8px;--dd-item-padding-x:12px;--dd-item-radius:var(--radius-sm);--dd-item-font:"Inter", sans-serif;--dd-hover-color:var(--color-text);--dd-hover-fill:18%;--dd-selected-tint:14%;--dd-anim-ms:var(--motion-duration);--dd-easing:var(--motion-easing)}.dd-menu{padding:var(--dd-padding-y) var(--dd-padding-x);border-radius:var(--dd-radius);background:color-mix(in srgb, var(--canvas-bg) var(--dd-frost-opacity), transparent);-webkit-backdrop-filter:blur(var(--dd-frost-blur)) saturate(1.08);border:1px solid color-mix(in srgb, var(--color-text) var(--dd-border-fill), transparent);transition:opacity var(--dd-anim-ms) var(--dd-easing), transform var(--dd-anim-ms) var(--dd-easing)}.dd-item{font-family:var(--dd-item-font);padding:var(--dd-item-padding-y) var(--dd-item-padding-x);border-radius:var(--dd-item-radius);transition:background var(--motion-duration) var(--motion-easing)}.dd-item:hover{background:color-mix(in srgb, var(--dd-hover-color) var(--dd-hover-fill), transparent)}.dd-item:focus-visible{outline:var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.dd-item.selected{background:color-mix(in srgb, var(--color-accent) var(--dd-selected-tint), transparent);box-shadow:inset var(--selected-bar-width) 0 0 0 var(--color-accent)}:root{--loading-color:var(--color-accent);--loading-easing:ease-in-out;--loading-spinner-stroke:3;--loading-spinner-cycle:2.8s;--loading-bar-height:2px;--loading-bar-track:var(--color-border);--loading-bar-cycle:3.2s}.spinner svg{width:100%;height:100%;display:block;transform:rotate(-90deg)}.spinner circle{fill:none;stroke:var(--loading-color);stroke-width:var(--loading-spinner-stroke);stroke-linecap:round;animation:spinner-cycle var(--loading-spinner-cycle) var(--loading-easing) infinite}@keyframes spinner-cycle{0%{stroke-dasharray:0 125;stroke-dashoffset:0}50%{stroke-dasharray:125 125;stroke-dashoffset:0}to{stroke-dasharray:0 125;stroke-dashoffset:-125px}}.loading-bar{width:100%;height:var(--loading-bar-height);background:var(--loading-bar-track);border-radius:1px;position:relative;overflow:hidden}.loading-bar__fill{background:var(--loading-color);height:100%;transition:width var(--motion-duration) var(--motion-easing);border-radius:1px}.loading-bar--indeterminate .loading-bar__fill{width:30%;animation:loading-shuttle var(--loading-bar-cycle) var(--loading-easing) infinite}@keyframes loading-shuttle{0%{transform:translate(-100%)}45%{transform:translate(333%)}50%{transform:translate(333%)}95%{transform:translate(-100%)}to{transform:translate(-100%)}}@media (prefers-reduced-motion:reduce){.spinner circle,.loading-bar--indeterminate .loading-bar__fill{animation-duration:5s}}:root{--form-label-size:13px;--form-label-weight:500;--form-label-color:var(--color-text);--form-label-gap:6px;--form-label-width:140px;--form-required-color:var(--color-accent);--form-field-height:40px;--form-field-padding-x:14px;--form-field-radius:8px;--form-field-border-width:1px;--form-field-border-color:var(--color-border-strong);--form-field-bg:transparent;--form-field-gap:20px;--form-helper-size:11px;--form-helper-gap:6px;--form-helper-color:var(--color-text-muted)}.field{gap:var(--form-label-gap);margin-bottom:var(--form-field-gap);flex-direction:column;display:flex}.field:last-child{margin-bottom:0}.field--inline,.form--inline-labels .field{grid-template-columns:var(--form-label-width) 1fr;align-items:start;column-gap:var(--space-4);row-gap:var(--form-label-gap);display:grid}.field--inline .field-label,.form--inline-labels .field-label{padding-top:calc((var(--form-field-height) - var(--form-label-size) * 1.5) / 2)}.field--inline .field-control,.field--inline .field-helper,.form--inline-labels .field-control,.form--inline-labels .field-helper{grid-column:2}.field-label{font-family:var(--type-body-sm-font);font-size:var(--form-label-size);font-weight:var(--form-label-weight);color:var(--form-label-color);align-items:baseline;gap:var(--space-1);display:inline-flex}.field-label .required{color:var(--form-required-color);font-weight:400}.field-label .required:before{content:"*"}.field-helper{font-family:var(--type-caption-font);font-size:var(--form-helper-size);color:var(--form-helper-color);margin-top:var(--form-helper-gap);line-height:1.4}.field-helper.is-error{color:var(--status-error)}.input-text,.input-select{font-family:var(--type-body-sm-font);font-size:var(--text-sm);color:var(--color-text);height:var(--form-field-height);padding:0 var(--form-field-padding-x);background:var(--form-field-bg);border:var(--form-field-border-width) solid var(--form-field-border-color);border-radius:var(--form-field-radius);width:100%;transition:border-color var(--motion-duration) var(--motion-easing);outline:none;display:block}.input-text::placeholder{color:var(--color-text-muted)}.input-text:hover,.input-select:hover{border-color:color-mix(in srgb, var(--form-field-border-color), white 15%)}.input-text:focus-visible,.input-select:focus-visible{outline:var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.input-text:disabled,.input-select:disabled,.field.is-disabled .input-text,.field.is-disabled .input-select{opacity:var(--disabled-opacity);cursor:not-allowed}.field.has-error .input-text,.field.has-error .input-select{border-color:var(--status-error)}.select-wrap{position:relative}.input-select{appearance:none;padding-right:calc(var(--form-field-padding-x) + 24px);cursor:pointer}.select-chevron{right:var(--form-field-padding-x);width:14px;height:14px;color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.radio-group{gap:var(--space-4);flex-wrap:wrap;display:flex}.radio{align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-sm);color:var(--color-text);-webkit-user-select:none;user-select:none;display:inline-flex}.radio input[type=radio]{appearance:none;border:1px solid var(--color-border-strong);cursor:pointer;width:16px;height:16px;transition:border-color var(--motion-duration) var(--motion-easing);background:0 0;border-radius:50%;flex-shrink:0;margin:0;position:relative}.radio input[type=radio]:hover{border-color:color-mix(in srgb, var(--color-border-strong), white 25%)}.radio input[type=radio]:checked{border-color:var(--color-accent)}.radio input[type=radio]:checked:after{content:"";background:var(--color-accent);border-radius:50%;position:absolute;inset:3px}.radio input[type=radio]:focus-visible{outline:var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.radio-segmented{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--type-label-font);display:inline-flex;overflow:hidden}.radio-segmented label{cursor:pointer;color:var(--color-text-muted);border-right:1px solid var(--color-border-strong);-webkit-user-select:none;user-select:none;transition:background var(--motion-duration) var(--motion-easing), color var(--motion-duration) var(--motion-easing);padding:9px 16px;font-size:12px;position:relative}.radio-segmented label:last-child{border-right:none}.radio-segmented input[type=radio]{opacity:0;pointer-events:none;position:absolute}.radio-segmented label:has(input:checked){background:color-mix(in srgb, var(--color-accent) 18%, transparent);color:var(--color-text);box-shadow:inset 0 -2px 0 0 var(--color-accent)}.radio-segmented label:has(input:focus-visible){outline:var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.toggle{cursor:pointer;flex-shrink:0;width:36px;height:20px;display:inline-block;position:relative}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle-track{background:var(--color-border-strong);transition:background var(--motion-duration) var(--motion-easing);border-radius:999px;position:absolute;inset:0}.toggle-thumb{background:var(--color-light);width:16px;height:16px;transition:transform var(--motion-duration) var(--motion-easing);pointer-events:none;border-radius:50%;position:absolute;top:2px;left:2px}.toggle input:checked~.toggle-track{background:var(--color-accent)}.toggle input:checked~.toggle-thumb{transform:translate(16px)}.toggle input:focus-visible~.toggle-track{outline:var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}[data-theme=light] .toggle-thumb{background:var(--wine)}.slider-wrap{align-items:center;gap:var(--space-4);width:100%;display:flex}.slider{appearance:none;cursor:pointer;background:0 0;outline:none;flex:1;height:2px}.slider::-webkit-slider-runnable-track{background:var(--color-border-strong);border-radius:1px;height:2px}.slider::-moz-range-track{background:var(--color-border-strong);border-radius:1px;height:2px}.slider::-webkit-slider-thumb{appearance:none;background:var(--color-accent);cursor:pointer;width:16px;height:16px;transition:transform var(--motion-duration) var(--motion-easing);border:none;border-radius:50%;margin-top:-7px}.slider::-moz-range-thumb{background:var(--color-accent);cursor:pointer;border:none;border-radius:50%;width:16px;height:16px}.slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.slider:focus-visible::-webkit-slider-thumb{outline:var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);outline-offset:3px}.slider-value{font-family:var(--type-data-font);color:var(--color-accent);text-align:right;min-width:44px;font-size:12px;font-weight:500}:root{--modal-max-width:600px;--modal-radius:12px;--modal-frost-opacity:80%;--modal-frost-blur:18px;--modal-scrim-opacity:.4;--modal-padding:var(--space-6);--modal-header-padding-y:18px;--modal-anim-duration:.22s}.modal-scrim{z-index:1000;background:rgba(0, 0, 0, var(--modal-scrim-opacity));transition:opacity var(--modal-anim-duration) var(--motion-easing);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:color-mix(in srgb, var(--color-bg) var(--modal-frost-opacity), transparent);-webkit-backdrop-filter:blur(var(--modal-frost-blur)) saturate(1.08);backdrop-filter:blur(var(--modal-frost-blur)) saturate(1.08);border:1px solid var(--color-border-strong);border-radius:var(--modal-radius);width:min(var(--modal-max-width), calc(100% - 48px));flex-direction:column;max-height:calc(100% - 48px);display:flex;overflow:hidden}.modal-header{padding:var(--modal-header-padding-y) var(--modal-padding);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-body{padding:var(--modal-padding);flex:1;overflow-y:auto}.modal-footer{padding:var(--space-4) var(--modal-padding);border-top:1px solid var(--color-border);justify-content:flex-end;gap:var(--space-3);display:flex}.modal{transition:opacity var(--modal-anim-duration) var(--motion-easing)}.modal-scrim.entering,.modal-scrim.entering .modal{opacity:0}:root{--banner-radius:8px;--banner-padding:14px;--banner-bg-fill:14%;--banner-bar-width:4px}.banner{padding:var(--banner-padding);border-radius:var(--banner-radius);font-size:var(--text-sm);color:var(--color-text);background:color-mix(in srgb, var(--banner-status) var(--banner-bg-fill), transparent);border-left:var(--banner-bar-width) solid var(--banner-status);padding-left:calc(var(--banner-padding) + 2px);align-items:flex-start;gap:10px;display:flex}.banner+.banner{margin-top:var(--space-3)}.banner .banner-icon{width:18px;height:18px;color:var(--banner-status);flex-shrink:0;margin-top:1px}.banner .banner-content{flex:1;min-width:0}.banner .banner-title{color:var(--color-text);margin-bottom:2px;font-weight:500}.banner .banner-body{color:var(--color-text-muted);font-size:12px;line-height:1.4}.banner .banner-dismiss{width:20px;height:20px;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--motion-duration) var(--motion-easing);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.banner .banner-dismiss:hover{background:color-mix(in srgb, var(--color-text) 8%, transparent);color:var(--color-text)}.banner[data-status=info]{--banner-status:var(--status-info)}.banner[data-status=complete]{--banner-status:var(--status-complete)}.banner[data-status=warning]{--banner-status:var(--status-warning)}.banner[data-status=error]{--banner-status:var(--status-error)}:root{--toast-width:340px;--toast-radius:12px;--toast-padding:14px;--toast-frost-opacity:80%;--toast-frost-blur:16px;--toast-stack-gap:16px;--toast-edge-gap:20px;--toast-duration:5s}.toast-anchor{z-index:1100;gap:var(--toast-stack-gap);pointer-events:none;flex-direction:column;display:flex;position:fixed}[data-toast-pos=top-right] .toast-anchor{top:var(--toast-edge-gap);right:var(--toast-edge-gap);align-items:flex-end}[data-toast-pos=bottom-right] .toast-anchor{bottom:var(--toast-edge-gap);right:var(--toast-edge-gap);align-items:flex-end}[data-toast-pos=top-center] .toast-anchor{top:var(--toast-edge-gap);align-items:center;left:50%;transform:translate(-50%)}[data-toast-pos=bottom-center].toast-anchor{bottom:var(--toast-edge-gap);align-items:center;left:50%;transform:translate(-50%)}[data-toast-stack=newest-top] .toast-anchor{flex-direction:column-reverse}.toast{width:var(--toast-width);background:color-mix(in srgb, var(--color-bg) var(--toast-frost-opacity), transparent);-webkit-backdrop-filter:blur(var(--toast-frost-blur)) saturate(1.08);backdrop-filter:blur(var(--toast-frost-blur)) saturate(1.08);border:1px solid var(--color-border-strong);border-radius:var(--toast-radius);padding:var(--toast-padding);pointer-events:auto;animation:toast-in .24s var(--motion-easing) backwards;align-items:flex-start;gap:10px;display:flex;position:relative;overflow:hidden}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.toast .toast-icon{width:18px;height:18px;color:var(--toast-status,var(--color-accent));flex-shrink:0;margin-top:1px}.toast .toast-content{flex:1;min-width:0}.toast .toast-title{font-weight:500;font-size:var(--text-sm);color:var(--color-text);margin-bottom:2px}.toast .toast-body{color:var(--color-text-muted);font-size:12px;line-height:1.4}.toast .toast-dismiss{width:20px;height:20px;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--motion-duration) var(--motion-easing);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.toast .toast-dismiss:hover{background:color-mix(in srgb, var(--color-text) 8%, transparent);color:var(--color-text)}.toast[data-status=info]{--toast-status:var(--status-info)}.toast[data-status=complete]{--toast-status:var(--status-complete)}.toast[data-status=warning]{--toast-status:var(--status-warning)}.toast[data-status=error]{--toast-status:var(--status-error)}.toast-progress{background:var(--toast-status,var(--color-accent));transform-origin:0;height:2px;animation:toast-progress var(--toast-duration) linear forwards;position:absolute;bottom:0;left:0;right:0}@keyframes toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}:root{--tooltip-padding-y:6px;--tooltip-padding-x:10px;--tooltip-radius:6px;--tooltip-max-width:240px;--tooltip-arrow-size:5px;--tooltip-frost-opacity:96%;--tooltip-frost-blur:2px}.tooltip-anchor{display:inline-flex;position:relative}.tooltip{padding:var(--tooltip-padding-y) var(--tooltip-padding-x);font-family:var(--type-body-sm-font);max-width:var(--tooltip-max-width);border-radius:var(--tooltip-radius);pointer-events:none;z-index:10;opacity:0;transition:opacity var(--motion-duration) var(--motion-easing), transform var(--motion-duration) var(--motion-easing);background:color-mix(in srgb, var(--canvas-bg) var(--tooltip-frost-opacity), transparent);-webkit-backdrop-filter:blur(var(--tooltip-frost-blur)) saturate(1.06);border:1px solid var(--color-border-strong);color:var(--canvas-text);font-size:12px;line-height:1.4;position:absolute}.tooltip.pos-top{margin-bottom:var(--tooltip-arrow-size);bottom:100%;left:50%;transform:translate(-50%)translateY(-6px)}.tooltip.pos-bottom{margin-top:var(--tooltip-arrow-size);top:100%;left:50%;transform:translate(-50%)translateY(6px)}.tooltip.pos-left{margin-right:var(--tooltip-arrow-size);top:50%;right:100%;transform:translateY(-50%)translate(-6px)}.tooltip.pos-right{margin-left:var(--tooltip-arrow-size);top:50%;left:100%;transform:translateY(-50%)translate(6px)}.tooltip-anchor:hover .tooltip,.tooltip-anchor:focus-within .tooltip{opacity:1;transform:translate(-50%)translateY(0)}.tooltip-anchor:hover .tooltip.pos-left,.tooltip-anchor:hover .tooltip.pos-right{transform:translateY(-50%)translate(0)}:root{--scrollbar-width:8px;--scrollbar-track:var(--color-bg);--scrollbar-thumb:color-mix(in srgb, var(--color-text) 18%, transparent);--scrollbar-thumb-hover:color-mix(in srgb, var(--color-text) 32%, transparent);--scrollbar-radius:var(--radius-sm)}*{scrollbar-width:thin}@supports not selector(::-webkit-scrollbar){*{scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}}::-webkit-scrollbar{width:var(--scrollbar-width);height:var(--scrollbar-width)}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--scrollbar-radius);border:2px solid var(--scrollbar-track)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:var(--scrollbar-track)}:root{--app-min:720px;--app-narrow:1024px;--container-prose:680px;--container-default:1200px;--container-wide:1600px;--page-gutter:var(--space-8);--section-gap:var(--space-16);--subsection-gap:var(--space-8);--grid-gap:var(--space-6);--grid-min:240px;--topbar-height:56px;--sidebar-width:240px}.app-shell{grid-template-rows:var(--topbar-height) 1fr;min-height:100vh;min-width:var(--app-min);display:grid}.app-shell .topbar{padding:0 var(--page-gutter);border-bottom:1px solid var(--color-border);align-items:center;gap:var(--space-6);display:flex}.app-shell .app-body{grid-template-columns:var(--sidebar-width) 1fr;min-height:0;display:grid}.app-shell .sidebar{border-right:1px solid var(--color-border);overflow-y:auto}.app-shell .main{padding-top:var(--space-6);padding-bottom:var(--section-gap);min-width:0}@media (width<=1024px){.app-shell .app-body{grid-template-columns:1fr}.app-shell .sidebar{display:none}}.distill-container{padding-left:var(--page-gutter);padding-right:var(--page-gutter);max-width:var(--container-default);margin:0 auto}.distill-container.prose{max-width:var(--container-prose)}.distill-container.wide{max-width:var(--container-wide)}.distill-container.full{max-width:none}.section{margin-bottom:var(--section-gap)}.section:last-child{margin-bottom:0}.subsection{margin-bottom:var(--subsection-gap)}.subsection:last-child{margin-bottom:0}.distill-grid{gap:var(--grid-gap);grid-template-columns:repeat(auto-fit, minmax(var(--grid-min), 1fr));display:grid}.distill-prose{max-width:none;color:var(--color-text)}.distill-prose h1{font-family:var(--type-h1-font);font-size:var(--type-h1-size);font-weight:var(--type-h1-weight);color:var(--type-h1-color);letter-spacing:var(--type-h1-tracking);line-height:var(--type-h1-lh);margin:var(--space-8) 0 0}.distill-prose h1:first-child{margin-top:0}.distill-prose h2{font-family:var(--type-h2-font);font-size:var(--type-h2-size);font-weight:var(--type-h2-weight);color:var(--type-h2-color);letter-spacing:var(--type-h2-tracking);line-height:var(--type-h2-lh);margin-top:var(--space-6);margin-bottom:var(--space-6)}.distill-prose h2:first-child{margin-top:0}.distill-prose h3{font-family:var(--type-h2-font);font-size:var(--text-xl);color:var(--color-text);letter-spacing:var(--type-h2-tracking);font-weight:600;line-height:var(--type-h2-lh);margin-top:var(--space-6);margin-bottom:var(--space-6)}.distill-prose h3:first-child{margin-top:0}.distill-prose h4{font-family:var(--type-h2-font);font-size:var(--text-lg);color:var(--color-text);margin-top:var(--space-6);margin-bottom:var(--space-6);font-weight:600}.distill-prose h4:first-child,.distill-prose :is(h2,h3,h4)+:is(p,ul,ol,pre,blockquote,figure){margin-top:0}.distill-prose :is(h2,h3,h4)+ol[data-footnotes-list]{margin-top:var(--space-4)}.distill-prose p{font-family:var(--type-body-font);font-size:var(--type-body-size);font-weight:var(--type-body-weight);color:var(--type-body-color);line-height:var(--type-body-lh);margin:var(--space-6) 0 0}.distill-prose p:first-child{margin-top:0}.distill-prose hr{margin:var(--space-6) 0;border:0;border-top:1px solid var(--color-border);width:100%}.distill-prose ul{margin:var(--space-2) 0 0;padding-left:var(--space-6);color:var(--color-text);list-style:outside}.distill-prose ul :is(li)::marker{color:var(--color-text)}.distill-prose ol{margin:var(--space-2) 0 0;padding-left:var(--space-6);color:var(--color-text);list-style:decimal}.distill-prose ol :is(li)::marker{color:var(--color-text)}.distill-prose li{line-height:var(--type-body-lh)}.distill-prose li p{margin-top:0}.distill-prose li p~p{margin-top:var(--space-2)}.distill-prose blockquote{margin:var(--space-4) 0;padding-left:var(--space-4);border-left:4px solid var(--color-accent);font-style:italic;font-size:var(--text-sm);color:var(--color-text)}@media (width>=768px){.distill-prose blockquote{font-size:var(--type-body-size)}}.distill-prose blockquote>p{margin-top:0}.distill-prose a{color:var(--color-accent);text-underline-offset:4px;text-decoration:none}.distill-prose a:hover{text-decoration:underline}.distill-prose strong{color:var(--color-text);font-weight:600}.distill-prose em{font-style:italic}.distill-prose sup{vertical-align:super;font-size:.75em;line-height:0}.distill-prose code:not(pre code){font-family:var(--type-data-font);color:var(--color-text);background:color-mix(in srgb, var(--color-text) 12%, transparent);border-radius:var(--radius-sm);padding:.125rem var(--space-2);font-size:.875em}.distill-prose pre{margin:var(--space-6) 0 0;border-radius:var(--radius-md);border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg) 92%, var(--color-text));padding:var(--space-4);font-size:var(--text-sm);line-height:var(--type-body-lh);overflow-x:auto}.distill-prose pre code{font-family:var(--type-data-font);background:0 0;border-radius:0;padding:0}.distill-prose figure{margin:var(--space-6) 0 0}.distill-prose figure:first-child{margin-top:0}.distill-prose img{border-radius:var(--radius-md);max-width:100%;height:auto}.distill-prose figcaption{margin-top:var(--space-2);text-align:left;font-size:var(--text-xs);line-height:var(--type-body-lh);color:var(--color-text-muted)}.distill-prose figcaption p{color:inherit;font-size:inherit;line-height:inherit;margin:0}.distill-prose figcaption strong{color:inherit;font-weight:600}.distill-prose figcaption em{color:inherit}.distill-prose figcaption code{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-text) 12%, transparent);padding:.125rem var(--space-1);font-family:var(--type-data-font);color:inherit;font-size:.85em}.distill-prose figcaption p:not(:last-child){margin-bottom:var(--space-2)}.distill-prose [id^=nb-fnref-],.distill-prose li[id^=nb-fn-]{scroll-margin-top:6rem}.distill-prose ol[data-footnotes-list]{margin-top:var(--space-2);font-family:var(--type-caption-font);font-size:var(--type-caption-size);font-weight:var(--type-caption-weight);color:var(--type-caption-color);line-height:var(--type-body-sm-lh);margin-bottom:0;padding-left:0;list-style:none}.distill-prose ol[data-footnotes-list]>li{margin-top:var(--space-3)}.distill-prose ol[data-footnotes-list]>li:first-child{margin-top:0}.distill-prose ol[data-footnotes-list] strong{font-variant-numeric:tabular-nums;color:inherit;font-weight:600}.distill-prose ol[data-footnotes-list] a{color:var(--color-accent)}.distill-frosted{background:var(--color-bg);pointer-events:none;position:absolute;inset:0;overflow:hidden}.distill-frosted-blob-a,.distill-frosted-blob-b,.distill-frosted-blob-c{filter:blur(72px);opacity:.72;will-change:transform;border-radius:50%;position:absolute}.distill-frosted-blob-a{background:color-mix(in srgb, var(--color-accent) 88%, var(--color-accent-2));width:min(58vw,520px);height:min(58vw,520px);animation:22s ease-in-out infinite alternate distill-frosted-drift-a;top:8%;left:-12%}.distill-frosted-blob-b{background:color-mix(in srgb, var(--color-accent-2) 75%, var(--color-light) 25%);width:min(48vw,440px);height:min(48vw,440px);animation:26s ease-in-out infinite alternate distill-frosted-drift-b;bottom:12%;right:-8%}.distill-frosted-blob-c{background:color-mix(in srgb, var(--color-accent) 55%, transparent);opacity:.55;width:min(36vw,320px);height:min(36vw,320px);animation:18s ease-in-out infinite alternate distill-frosted-drift-c;bottom:-6%;left:28%}.distill-frosted-grain{z-index:1;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.distill-frosted-frost{z-index:2;background:color-mix(in srgb, var(--color-bg) var(--frost-opacity), transparent);-webkit-backdrop-filter:blur(var(--frost-blur)) saturate(1.08);backdrop-filter:blur(var(--frost-blur)) saturate(1.08);position:absolute;inset:0}@keyframes distill-frosted-drift-a{0%{transform:translate(0)scale(1)}to{transform:translate(6%,10%)scale(1.08)}}@keyframes distill-frosted-drift-b{0%{transform:translate(0)scale(1)}to{transform:translate(-8%,-6%)scale(1.05)}}@keyframes distill-frosted-drift-c{0%{transform:translate(0)}to{transform:translate(4%,-12%)}}@media (prefers-reduced-motion:reduce){.distill-frosted-blob-a,.distill-frosted-blob-b,.distill-frosted-blob-c{animation:none}}.distill-frosted--landing .distill-frosted-blob-a{opacity:.58;background:color-mix(in srgb, var(--color-accent) 70%, var(--color-accent-2))}.distill-frosted--landing .distill-frosted-blob-b{opacity:.58;background:color-mix(in srgb, var(--color-accent-2) 60%, var(--color-light) 25%)}.distill-frosted--landing .distill-frosted-blob-c{opacity:.44;background:color-mix(in srgb, var(--color-accent) 44%, transparent)}.distill-frosted--landing .distill-frosted-grain{opacity:.05}.distill-frosted--landing .distill-frosted-frost{background:color-mix(in srgb, var(--color-bg) 36%, transparent);-webkit-backdrop-filter:blur(var(--frost-blur)) saturate(.86)}.distill-frosted--hero{background:color-mix(in srgb, var(--color-bg) 42%, transparent)}.distill-frosted--hero .distill-frosted-blob-a{opacity:.42;background:color-mix(in srgb, var(--color-accent) 42%, var(--color-bg))}.distill-frosted--hero .distill-frosted-blob-b{opacity:.36;background:color-mix(in srgb, var(--color-accent-2) 34%, var(--color-bg))}.distill-frosted--hero .distill-frosted-blob-c{opacity:.32;background:color-mix(in srgb, var(--color-accent) 28%, var(--color-accent-2) 12%)}.distill-frosted--hero .distill-frosted-grain{opacity:.045}.distill-frosted--hero .distill-frosted-frost{background:color-mix(in srgb, var(--color-bg) 4%, transparent);-webkit-backdrop-filter:blur(6px)saturate(.98)}.distill-frosted--accent{background:color-mix(in srgb, var(--color-accent) 88%, var(--color-bg) 12%)}.distill-frosted--accent .distill-frosted-blob-a{opacity:.62;background:color-mix(in srgb, var(--color-light) 72%, var(--color-accent))}.distill-frosted--accent .distill-frosted-blob-b{opacity:.5;background:color-mix(in srgb, var(--color-bg) 48%, var(--color-accent))}.distill-frosted--accent .distill-frosted-blob-c{opacity:.44;background:color-mix(in srgb, var(--color-light) 38%, var(--color-bg) 18%)}.distill-frosted--accent .distill-frosted-grain{opacity:.05}.distill-frosted--accent .distill-frosted-frost{background:color-mix(in srgb, var(--color-accent) 28%, transparent);-webkit-backdrop-filter:blur(10px)saturate(1.05)}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay.hidden{display:none}.btn-close{border:1px solid var(--color-border);color:var(--color-text-dim);cursor:pointer;transition:color var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing);background:0 0;border-radius:3px;padding:0 6px;font-size:16px;line-height:1.2}.btn-close:hover{color:var(--color-accent);border-color:var(--color-accent)}.modal--canvas,.detail-modal--canvas{background:var(--canvas-bg);color:var(--canvas-text);-webkit-backdrop-filter:none;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);flex-direction:column;width:min(560px,90vw);max-height:80vh;display:flex;box-shadow:0 20px 60px #00000080}.modal--canvas .modal-header,.detail-modal--canvas .detail-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.modal--canvas .modal-header h2,.detail-modal--canvas .detail-title{color:var(--color-accent);margin:0;font-size:16px;font-weight:600}.modal--canvas .modal-body,.detail-modal--canvas .detail-body{color:var(--color-text-muted);flex:1;min-height:0;padding:16px 20px 20px;overflow-y:auto}.detail-modal--canvas .detail-body.distill-prose{gap:0}.modal--canvas h3,.detail-modal--canvas h3{color:var(--canvas-text)}.modal--canvas .modal-body.distill-prose,.detail-modal--canvas .detail-body.distill-prose{font-family:var(--type-body-sm-font);font-size:var(--type-body-sm-size);font-weight:var(--type-body-sm-weight);color:var(--color-text-muted);line-height:1.5}.modal--canvas .modal-body.distill-prose :is(p,li,dt,dd,em,ul,ol,strong),.detail-modal--canvas .detail-body.distill-prose :is(p,li,dt,dd,em,ul,ol,strong){font-family:inherit;font-size:inherit;font-weight:inherit;color:var(--canvas-text-muted);line-height:inherit}.modal--canvas .modal-body.distill-prose strong,.detail-modal--canvas .detail-body.distill-prose strong{color:var(--color-light);font-weight:600}.modal--canvas .modal-body.distill-prose p,.detail-modal--canvas .detail-body.distill-prose p{margin:var(--space-2) 0 var(--space-3)}.modal--canvas .modal-body.distill-prose p:first-child,.detail-modal--canvas .detail-body.distill-prose p:first-child{margin-top:0}.modal--canvas .modal-body.distill-prose p:last-child,.detail-modal--canvas .detail-body.distill-prose p:last-child{margin-bottom:0}.modal--canvas .modal-body.distill-prose :is(ul,ol),.detail-modal--canvas .detail-body.distill-prose :is(ul,ol){margin:var(--space-2) 0 0;padding-left:var(--space-6)}.modal--canvas .modal-body.distill-prose li,.detail-modal--canvas .detail-body.distill-prose li{margin-bottom:var(--space-1)}.modal--canvas .modal-body.distill-prose dl,.detail-modal--canvas .detail-body.distill-prose dl{margin:var(--space-2) 0 0}.modal--canvas .modal-body.distill-prose dt,.detail-modal--canvas .detail-body.distill-prose dt{color:var(--color-accent);margin:var(--space-2) 0 0;font-weight:600}.modal--canvas .modal-body.distill-prose dt:first-child,.detail-modal--canvas .detail-body.distill-prose dt:first-child{margin-top:0}.modal--canvas .modal-body.distill-prose dd,.detail-modal--canvas .detail-body.distill-prose dd{color:var(--canvas-text-muted);margin:0;padding-left:0}.modal--canvas .modal-body.distill-prose :is(ul,ol) :is(li)::marker{color:var(--canvas-text-muted)}.detail-modal--canvas .detail-body.distill-prose :is(ul,ol) :is(li)::marker{color:var(--canvas-text-muted)}.modal--canvas .modal-body.distill-prose h3,.detail-modal--canvas .detail-body.distill-prose h3{font-family:var(--type-label-font);font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-tracking);line-height:var(--type-label-lh);text-transform:uppercase;color:var(--canvas-text);margin:0 0 var(--space-2);border-top:none;padding-top:0}.modal--canvas .modal-body.distill-prose h3:not(:first-of-type),.detail-modal--canvas .detail-body.distill-prose h3:not(:first-of-type){border-top:1px solid var(--color-accent-2);padding-top:var(--space-4);margin-top:var(--space-4)}.modal--canvas .modal-body.distill-prose .disclaimer-text,.detail-modal--canvas .detail-body.distill-prose .disclaimer-text{font-size:var(--text-xs);color:var(--canvas-text-muted);font-style:italic;line-height:1.6}.modal--canvas.info-modal--wide{width:min(720px,92vw)}.info-modal-footer{padding-top:var(--space-4);margin-top:var(--space-2);justify-content:flex-end;display:flex}.modal--canvas .info-examples{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.modal--canvas .info-inline-btn{vertical-align:-6px;border:1px solid var(--color-border);width:22px;height:22px;color:var(--color-text-dim);cursor:pointer;transition:color var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing), background var(--motion-duration) var(--motion-easing);background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;display:inline-flex}.modal--canvas .info-inline-btn:hover{color:var(--color-text);border-color:var(--color-text-dim);background:var(--surface-input)}.modal--canvas .info-illustrations{gap:var(--space-3);margin-top:var(--space-2);flex-direction:column;display:flex}.modal--canvas .info-illustration-item{gap:var(--space-3);align-items:flex-start;display:flex}.modal--canvas .info-illustration-item svg{flex-shrink:0;margin-top:2px}:root{--lab-header-padding-x:var(--space-6);--lab-header-padding-y:var(--space-4);--lab-header-min-height:88px;--lab-header-title-size:calc(var(--lab-header-min-height) - 2 * var(--lab-header-padding-y));--lab-header-title-size-wrap:calc(var(--lab-header-title-size) * .62);--lab-header-title-wrap-line-height:1.08;--lab-header-title-wrap-max-width:14em;--lab-header-z:50;--lab-nav-frost-opacity:var(--dd-frost-opacity);--lab-nav-frost-blur:var(--dd-frost-blur)}.lab-header{z-index:var(--lab-header-z);justify-content:space-between;align-items:center;gap:var(--space-6);min-height:var(--lab-header-min-height);padding:var(--lab-header-padding-y) var(--lab-header-padding-x);border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex;position:relative}.lab-header>.distill-frosted{z-index:0;overflow:hidden}.lab-header-main{z-index:1;align-items:center;gap:var(--space-6);flex:1;min-width:0;display:flex;position:relative}.lab-header-title{font-family:var(--type-label-font);font-size:var(--lab-header-title-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-tracking);text-transform:uppercase;color:var(--color-accent);flex-shrink:0;margin:0;line-height:1}.lab-header-title--wrap{font-size:var(--lab-header-title-size-wrap);line-height:var(--lab-header-title-wrap-line-height);max-width:var(--lab-header-title-wrap-max-width);flex-shrink:1;min-width:0}.lab-header-desc{min-width:0;max-width:42rem;font-family:var(--type-body-sm-font);font-size:var(--text-sm);font-weight:var(--type-body-sm-weight);color:var(--color-light);flex:1;margin:0;line-height:1.5}.lab-header-actions{z-index:2;align-items:flex-end;gap:var(--space-2);flex-direction:column;flex-shrink:0;display:flex;position:relative}.lab-header-actions .header-right{align-items:flex-end;gap:var(--space-2);flex-direction:column;flex-shrink:0;display:flex;position:relative}@media (width<=900px){.lab-header-desc{display:none}}.powered-label{font-size:var(--text-sm);color:var(--color-text-dim)}.distill-name{color:var(--color-accent);letter-spacing:.05em;font-weight:600}.header-buttons{align-items:center;gap:var(--space-2);display:flex}.btn-icon{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-text) 8%, transparent);width:28px;height:28px;color:var(--color-accent);cursor:pointer;transition:background var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing);border-radius:50%;justify-content:center;align-items:center;font-size:14px;line-height:1;text-decoration:none;display:flex}.btn-icon:hover{background:color-mix(in srgb, var(--color-accent) 15%, transparent);border-color:var(--color-accent)}.btn-icon-img{border-radius:50%;width:18px;height:18px}.auth-badge{cursor:pointer;transition:background var(--motion-duration) var(--motion-easing), color var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing);border:none;justify-content:center;align-items:center;font-family:inherit;display:inline-flex}.auth-badge-signin{height:28px;padding:0 var(--space-3);background:color-mix(in srgb, var(--color-text) 8%, transparent);color:var(--color-accent);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:14px;font-weight:600}.auth-badge-signin:hover{background:color-mix(in srgb, var(--color-accent) 15%, transparent);border-color:var(--color-accent)}.auth-badge-avatar{background:color-mix(in srgb, var(--color-text) 8%, transparent);width:28px;height:28px;color:var(--color-accent);text-transform:uppercase;border:1px solid var(--color-border);border-radius:50%;font-size:12px;font-weight:700}.auth-badge-avatar:hover{background:color-mix(in srgb, var(--color-accent) 15%, transparent);border-color:var(--color-accent)}.auth-badge-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.auth-badge-customer{background:var(--color-accent);color:var(--color-bg);border-color:#0000}.auth-badge-customer:hover{background:color-mix(in srgb, var(--color-accent) 85%, var(--color-light))}.auth-badge-verified{background:color-mix(in srgb, var(--color-accent) 22%, transparent);color:var(--color-accent);border-color:#0000}.auth-badge-verified:hover{background:color-mix(in srgb, var(--color-accent) 32%, transparent)}.nav-menu{margin-top:var(--space-2);background:color-mix(in srgb, var(--canvas-bg) var(--lab-nav-frost-opacity), transparent);min-width:180px;-webkit-backdrop-filter:blur(var(--lab-nav-frost-blur)) saturate(1.08);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);z-index:1;padding:var(--space-1) 0;position:absolute;top:100%;right:0;box-shadow:0 8px 24px #0006}.nav-menu.hidden{display:none}.nav-menu-item{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--color-text-dim);transition:background var(--motion-duration) var(--motion-easing), color var(--motion-duration) var(--motion-easing);font-weight:500;text-decoration:none;display:block}.nav-menu-item:hover{background:color-mix(in srgb, var(--color-text) 14%, transparent);color:var(--color-text)}.nav-menu-item.active{color:var(--color-accent);font-weight:600}.lab-header--embed{min-height:36px;padding:0 var(--space-3);gap:var(--space-3)}.lab-header--embed .distill-frosted{display:none}.lab-header--embed .lab-header-main{gap:var(--space-3)}.lab-header--embed .lab-header-title{font-size:var(--text-sm);letter-spacing:.06em;font-weight:600}.lab-header--embed .lab-header-desc{display:none}.lab-header--embed .lab-header-actions{flex-direction:row;align-items:center}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--type-body-sm-font);font-size:var(--type-body-sm-size);line-height:var(--type-body-sm-lh);background:var(--color-bg);color:var(--color-text)}:root{--surface-base:var(--color-bg);--surface-panel:color-mix(in srgb, var(--color-bg) 82%, transparent);--surface-input:color-mix(in srgb, var(--color-text) 8%, transparent);--surface-hover:color-mix(in srgb, var(--color-text) 14%, transparent);--surface-subtle:color-mix(in srgb, var(--color-text) 5%, transparent);--surface-canvas:var(--canvas-bg);--surface-canvas-hover:color-mix(in srgb, var(--canvas-text) 8%, transparent);--surface-canvas-raised:color-mix(in srgb, var(--canvas-text) 6%, var(--canvas-bg));--color-text-dim:#e2d9caa6;--color-accent-dim:color-mix(in srgb, var(--color-accent) 60%, transparent);--color-accent-subtle:color-mix(in srgb, var(--color-accent) 15%, transparent);--transition:var(--motion-duration) var(--motion-easing);--radius:var(--radius-md);--radius-sm:4px;--moe-dropdown-frost-opacity:88%;--moe-dropdown-frost-blur:8px;--moe-modal-frost-opacity:88%;--moe-modal-frost-blur:12px;--lab-nav-frost-opacity:var(--moe-dropdown-frost-opacity);--lab-nav-frost-blur:var(--moe-dropdown-frost-blur);--bg-primary:var(--color-bg);--bg-secondary:var(--canvas-bg);--bg-surface:var(--surface-canvas-raised);--bg-surface-hover:var(--surface-canvas-hover);--accent:var(--color-accent);--accent-dim:var(--color-accent-dim);--accent-subtle:var(--color-accent-subtle);--text-primary:var(--color-text);--text-secondary:var(--color-text-dim);--text-muted:var(--color-text-muted);--border:var(--color-border);--border-strong:var(--color-border-strong);--danger:var(--status-error);--success:var(--status-complete);--slider-track:color-mix(in srgb, var(--color-light) 30%, transparent)}html,body{height:100%;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--surface-hover) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--surface-hover);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-dim)}::-webkit-scrollbar-corner{background:0 0}.lab-header{grid-column:1/-1}#app{grid-template-rows:auto 1fr;grid-template-columns:360px 1fr;gap:0;height:100vh;display:grid}.sidebar-toggle{z-index:20;border:1px solid var(--border);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--bg-surface);width:20px;height:40px;color:var(--text-muted);cursor:pointer;transition:all var(--transition);justify-content:center;align-items:center;padding:0;font-size:10px;display:flex;position:absolute;top:50%;left:360px;transform:translate(-50%,-50%)}.sidebar-toggle:hover{background:var(--bg-surface-hover);border-color:var(--accent-dim);color:var(--accent)}.sidebar-hidden .left-panel{display:none}.sidebar-hidden{grid-template-columns:1fr!important}.sidebar-hidden .sidebar-toggle{border-radius:0 var(--radius-sm) var(--radius-sm) 0;left:0;transform:translateY(-50%)}.sidebar-hidden .right-panel{grid-column:1;padding-left:10px}.left-panel{background:var(--canvas-bg);border-right:1px solid var(--color-border);flex-direction:column;grid-area:2/1;display:flex;overflow-y:auto}.panel-section{border-bottom:1px solid var(--border);padding:12px 16px}.left-panel h2{font-family:var(--type-caption-font);text-transform:uppercase;letter-spacing:.06em;color:var(--type-caption-color);margin:0;font-size:10px;font-weight:600;line-height:1.2}.panel-section h2{margin-bottom:6px}.unit-search-wrap{position:relative}.unit-search{background:var(--bg-surface);border:1px solid var(--border);width:100%;color:var(--text-primary);border-radius:var(--radius-sm);outline:none;padding:6px 10px;font-family:inherit;font-size:12px}.unit-search:focus{border-color:var(--accent-dim)}.unit-search::placeholder{color:var(--text-muted)}.unit-search-menu{z-index:40;background:color-mix(in srgb, var(--color-bg) var(--moe-dropdown-frost-opacity), transparent);max-height:200px;-webkit-backdrop-filter:blur(var(--moe-dropdown-frost-blur)) saturate(1.06);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);margin:0;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0006}.unit-search-menu.hidden{display:none}.unit-search-item{width:100%;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:6px 10px;font-family:inherit;font-size:11px;display:flex}.unit-search-item:hover,.unit-search-item.active{background:color-mix(in srgb, var(--color-text) var(--dd-hover-fill), transparent)}.unit-search-item.active{background:color-mix(in srgb, var(--color-accent) var(--dd-selected-tint), transparent);box-shadow:inset var(--selected-bar-width) 0 0 0 var(--color-accent)}.unit-search-item .fuel-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.unit-search-item .unit-search-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.unit-search-item .unit-price{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:10px}.panel-hint{color:var(--text-muted);margin-bottom:6px;font-size:9px;line-height:1.4}.moe-select{width:100%;position:relative}.moe-select-trigger{background:var(--bg-surface);border:1px solid var(--border);width:100%;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--transition), background var(--transition);outline:none;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-family:inherit;font-size:12px;display:flex}.moe-select-trigger:hover{background:var(--bg-surface-hover);border-color:var(--accent-dim)}.moe-select-trigger:focus-visible{border-color:var(--color-accent)}.moe-select-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.moe-select-caret{color:var(--text-muted);flex-shrink:0;font-size:10px}.moe-select-menu{z-index:30;background:color-mix(in srgb, var(--color-bg) var(--moe-dropdown-frost-opacity), transparent);max-height:240px;-webkit-backdrop-filter:blur(var(--moe-dropdown-frost-blur)) saturate(1.06);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0006}.moe-select-menu.hidden{display:none}.moe-select-option{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:12px}.demand-control{align-items:center;gap:8px;display:flex}.demand-control input[type=range]{appearance:none;background:0 0;border:none;border-radius:2px;outline:none;flex:1;height:4px}.demand-control input[type=range]::-webkit-slider-runnable-track{background:var(--slider-track);border:none;border-radius:2px;height:4px}.demand-control input[type=range]::-moz-range-track{background:var(--slider-track);border:none;border-radius:2px;height:4px}.demand-control input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--color-accent);cursor:pointer;border:none;border-radius:50%;width:14px;height:14px}.demand-control input[type=range]::-moz-range-thumb{background:var(--color-accent);cursor:pointer;border:none;border-radius:50%;width:14px;height:14px}.demand-hint{color:var(--text-muted);margin-top:4px;font-size:10px;font-style:italic}.demand-input{background:var(--bg-surface);border:1px solid var(--border);width:82px;color:var(--text-primary);text-align:right;font-variant-numeric:tabular-nums;border-radius:3px;outline:none;padding:4px 22px 4px 8px;font-family:inherit;font-size:12px;font-weight:600}.demand-input:focus{border-color:var(--accent-dim)}.demand-price{color:var(--color-accent);font-variant-numeric:tabular-nums;margin-top:6px;font-size:12px;font-weight:600}.demand-price strong{color:var(--color-accent)}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button{opacity:.85;margin-left:6px}input[type=number]::-webkit-outer-spin-button{opacity:.85;margin-left:6px}.btn-advanced{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);width:100%;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);text-align:left;padding:6px 12px;font-family:inherit;font-size:11px;font-weight:500}.btn-advanced:hover{background:var(--bg-surface-hover);border-color:var(--border-strong);color:var(--text-primary)}.advanced-hidden{display:none}.btn-reset{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);width:100%;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);padding:6px 12px;font-family:inherit;font-size:11px;font-weight:500}.btn-reset:hover{background:var(--bg-surface-hover);border-color:var(--border-strong);color:var(--accent)}.fuel-toggles{flex-wrap:wrap;gap:4px;display:flex}.fuel-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;transition:all var(--transition);white-space:nowrap;align-items:center;gap:5px;padding:3px 8px;font-family:inherit;font-size:10px;font-weight:500;display:inline-flex}.fuel-toggle:hover{background:var(--bg-surface-hover);border-color:var(--border-strong)}.fuel-toggle.active{border-color:var(--border-strong)}.fuel-toggle.inactive{opacity:.35}.fuel-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.toggle-label{cursor:pointer;color:var(--text-primary);align-items:center;gap:6px;font-size:12px;display:inline-flex}.toggle-label input[type=checkbox]{appearance:none;background:var(--bg-surface);border:1px solid var(--border);cursor:pointer;border-radius:3px;flex-shrink:0;width:14px;height:14px;position:relative}.toggle-label input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.toggle-label input[type=checkbox]:checked:after{content:"";border:solid var(--bg-primary);border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:0;left:3px;transform:rotate(45deg)}.toggle-text{white-space:nowrap;font-size:11px;font-weight:500}.cap-group{align-items:center;gap:8px;margin-bottom:6px;display:flex}.cap-group:last-child{margin-bottom:0}.cap-group label{color:var(--text-secondary);white-space:nowrap;min-width:52px;font-size:11px;font-weight:500}.cap-group input[type=range]{appearance:none;background:0 0;border:none;border-radius:2px;outline:none;flex:1;height:4px}.cap-group input[type=range]::-webkit-slider-runnable-track{background:var(--slider-track);border:none;border-radius:2px;height:4px}.cap-group input[type=range]::-moz-range-track{background:var(--slider-track);border:none;border-radius:2px;height:4px}.cap-group input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--color-accent);cursor:pointer;border:none;border-radius:50%;width:14px;height:14px}.cap-group input[type=range]::-moz-range-thumb{background:var(--color-accent);cursor:pointer;border:none;border-radius:50%;width:14px;height:14px}.cap-value{font-family:var(--type-data-font);color:var(--accent);font-variant-numeric:tabular-nums;text-align:right;min-width:32px;font-size:11px;font-weight:500}.bid-adjust-table{flex-direction:column;gap:2px;font-size:10px;display:flex}.bid-adjust-row{border-radius:var(--radius-sm);grid-template-columns:minmax(92px,1.15fr) minmax(64px,.7fr) minmax(100px,1fr);align-items:center;gap:8px;padding:4px 6px;display:grid}.bid-adjust-row:not(.bid-adjust-head){background:var(--bg-surface);border:1px solid var(--border)}.bid-adjust-head{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:0 6px 2px;font-size:9px;font-weight:600;line-height:1.2}.bid-adjust-head>span{font-family:var(--type-caption-font);font-size:inherit;font-weight:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bid-col-resource{align-items:center;gap:6px;min-width:0;display:flex}.bid-col-price{text-align:right;white-space:nowrap}.bid-col-adj{justify-content:flex-end;display:flex}.bid-card-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.bid-card-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:10px;font-weight:500;overflow:hidden}.bid-card-avg{color:var(--text-muted);font-family:var(--type-data-font);font-variant-numeric:tabular-nums;font-size:10px}.bid-card-controls{justify-content:center;align-items:center;gap:4px;display:flex}.bid-card-btn{border:1px solid var(--border);background:var(--bg-primary);width:18px;height:18px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.bid-card-btn:hover{background:var(--bg-surface-hover);border-color:var(--accent-dim);color:var(--accent)}.bid-card-input{background:var(--bg-primary);border:1px solid var(--border);width:44px;height:18px;color:var(--color-text);font-family:var(--type-data-font);text-align:right;font-variant-numeric:tabular-nums;box-sizing:border-box;border-radius:3px;outline:none;padding:0 16px 0 4px;font-size:10px;font-weight:500}.bid-card-input:focus{border-color:var(--color-accent);color:var(--color-light)}.stats-section{margin-top:auto}.stats{font-family:var(--type-data-font);font-size:var(--type-label-size);color:var(--text-secondary);font-variant-numeric:tabular-nums;line-height:1.6}.stats strong{color:var(--accent);font-weight:600}.right-panel{background:var(--canvas-bg);flex-direction:column;grid-area:2/2;min-width:0;display:flex;overflow:hidden}.chart-container{background:var(--canvas-bg);flex:1;min-height:0;padding:0}.chart-container .js-plotly-plot{width:100%!important;height:100%!important}.unit-panel{border-top:1px solid var(--color-border);background:var(--canvas-bg);flex-shrink:0;padding:12px 16px 0;transition:max-height .3s;overflow:hidden}.unit-panel.hidden{display:none}.unit-panel-header{justify-content:space-between;align-items:center;gap:8px;padding:0 0 8px;display:flex}.unit-panel-header h3{color:var(--accent);letter-spacing:-.2px;font-size:12px;font-weight:600}.unit-tabs{gap:2px;display:flex}.unit-tab{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);padding:3px 10px;font-family:inherit;font-size:10px;font-weight:500}.unit-tab:hover{border-color:var(--border-strong);color:var(--text-primary)}.unit-tab.active{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent)}.unit-tab-content.hidden{display:none}.config-select{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;outline:none;padding:2px 6px;font-family:inherit;font-size:10px}.config-select:focus{border-color:var(--accent-dim)}.config-select.hidden{display:none}.unit-panel .btn-close{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:0 0;border-radius:3px;padding:0 6px;font-size:16px;line-height:1.2}.unit-panel .btn-close:hover{color:var(--accent);border-color:var(--accent-dim)}.unit-chart{height:200px;padding:0 0 12px}.unit-chart .js-plotly-plot{width:100%!important;height:100%!important}.legend-bar{border-top:1px solid var(--color-border);background:var(--surface-canvas-raised);flex-wrap:wrap;flex-shrink:0;justify-content:center;gap:14px;padding:8px 16px;display:flex}.right-panel:has(.unit-panel:not(.hidden)) .legend-bar{border-bottom:1px solid var(--color-border)}.legend-item{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition);-webkit-user-select:none;user-select:none;align-items:center;gap:5px;padding:3px 8px;font-size:10px;display:flex}.legend-item:hover{background:var(--bg-surface-hover)}.legend-item.active{color:var(--text-primary)}.legend-item.inactive{opacity:.3}.legend-swatch{border-radius:2px;width:12px;height:8px}@media (width<=768px){#app{grid-template-rows:auto 260px 1fr;grid-template-columns:1fr}.left-panel{border-right:none;border-bottom:1px solid var(--border);grid-area:2/1}.right-panel{grid-area:3/1}}
