:root{--bg: #0d1014;--surface: #14181e;--surface-2: #1b2128;--surface-3: #222a33;--line: #262e38;--line-soft: #1e242c;--text: #e9ecf1;--text-2: #b9c2cf;--muted: #8590a0;--faint: #5c6675;--accent: #4c9aff;--accent-ink: #04121f;--accent-soft: #16304d;--ok: #48c78e;--warn: #f0b445;--bad: #f2645a;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s6: 24px;--s8: 32px;--control-h: 30px;--radius: 6px;--radius-sm: 5px;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:13px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}input[type=number],.tabular,.derived-row dd,.artifact-size,.version{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.app{display:grid;grid-template-columns:336px minmax(0,1fr) 316px;grid-template-rows:auto 1fr;grid-template-areas:"header header header" "params stage info";height:100vh}header{grid-area:header;display:flex;align-items:center;gap:var(--s3);height:54px;padding:0 var(--s4);background:var(--surface);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:baseline;gap:var(--s2);min-width:0}header h1{font-size:15px;margin:0;font-weight:600;letter-spacing:-.01em;white-space:nowrap}.brand .kicker{color:var(--faint);font-size:11px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.header-rule{width:1px;height:20px;background:var(--line);flex:none}.spacer{flex:1}header .preset{display:flex;align-items:center;gap:var(--s2);min-width:0}header .preset .label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}header select{width:auto;min-width:168px}header .experimental{margin:0;color:var(--text-2);font-size:12px;white-space:nowrap}.params,.info{overflow-y:auto;scrollbar-gutter:stable;background:var(--surface);padding:var(--s4) var(--s3) var(--s8) var(--s4)}.params{grid-area:params;border-right:1px solid var(--line)}.info{grid-area:info;border-left:1px solid var(--line)}.stage{grid-area:stage;position:relative;min-width:0;display:grid}.group+.group{margin-top:var(--s6);padding-top:var(--s4);border-top:1px solid var(--line-soft)}.group h2{margin:0}.group h2 button{display:flex;align-items:center;gap:var(--s2);width:100%;text-align:left;background:none;border:0;color:var(--text);padding:0;font:inherit;font-weight:600;cursor:pointer;text-transform:uppercase;letter-spacing:.07em;font-size:11px;min-height:20px}.group h2 button:hover .chevron{color:var(--text-2)}.chevron{color:var(--faint);font-size:9px;width:9px;flex:none}.group-body{padding-top:var(--s2)}.group-body>.hint:first-child{margin:0 0 var(--s3);color:var(--muted)}.field{display:block;margin:0 0 var(--s4)}.field:last-child{margin-bottom:0}.field-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);min-height:var(--control-h)}.field .label{color:var(--text-2);font-size:12.5px;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field .unit{color:var(--faint);font-style:normal;font-size:11px}.value-box{display:flex;align-items:center;gap:var(--s1);flex:none;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding-right:var(--s2);height:var(--control-h)}.value-box:not(:has(.unit)){padding-right:0}.value-box:focus-within{border-color:var(--accent)}.value-box input[type=number]{width:62px;background:none;border:0;padding:0 var(--s2);height:100%;text-align:right;color:var(--text);font:inherit;font-size:13px}.value-box input:focus{outline:none}.value-box .unit{flex:none}.field.disabled .value-box,.value-box:has(input:disabled){opacity:.5}.field input[type=text],.field select,select{background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);padding:0 var(--s2);height:var(--control-h);font:inherit;font-size:13px;width:100%;min-width:0}select:hover:not(:disabled),.field input[type=text]:hover:not(:disabled){border-color:var(--surface-3)}select:disabled,input:disabled{opacity:.5;cursor:not-allowed}.slider{width:100%;margin:var(--s1) 0 0;accent-color:var(--accent);height:18px;cursor:pointer}.slider:disabled{cursor:not-allowed}.field.checkbox,label.checkbox{display:flex;align-items:center;gap:var(--s2);margin:0 0 var(--s2);min-height:22px;color:var(--text-2)}.field.checkbox input,label.checkbox input{width:auto;accent-color:var(--accent);flex:none}.field.checkbox .label{font-size:12.5px}fieldset.object{border:0;border-left:1px solid var(--line-soft);border-radius:0;margin:var(--s3) 0;padding:0 0 0 var(--s3);min-width:0}fieldset.object legend{color:var(--muted);font-size:11px;padding:0;margin-bottom:var(--s1);letter-spacing:.03em}.gated{opacity:.55}.hint{color:var(--muted);font-size:11px;line-height:1.45;margin:var(--s1) 0 0}.hint.warn{color:var(--warn)}.diag{font-size:11px;margin:var(--s1) 0 0;line-height:1.45}.diag .code{font-family:ui-monospace,monospace;opacity:.75;margin-right:var(--s1)}.diag.error{color:var(--bad)}.diag.warning{color:var(--warn)}.diag.info{color:var(--muted)}.diagnostics{border:1px solid var(--line);border-left:2px solid var(--bad);border-radius:var(--radius);padding:var(--s2) var(--s3);margin-bottom:var(--s4);background:var(--surface-2)}.viewport{position:relative;min-height:0;background:radial-gradient(120% 90% at 50% 0%,#191f27,#0e1116 70%)}.viewport canvas{display:block;width:100%!important;height:100%!important}.viewport.stale canvas{opacity:.55;transition:opacity .16s ease}.preview-status,.viewer-controls{position:absolute;z-index:2;display:flex;align-items:center;gap:var(--s2);background:#11151ae6;border:1px solid var(--line);border-radius:var(--radius)}.preview-status{border-color:var(--line-soft);top:var(--s3);left:var(--s3);right:var(--s3);padding:var(--s2) var(--s2) var(--s2) var(--s3);min-height:42px;flex-direction:column;align-items:stretch}.status-row{display:flex;align-items:center;gap:var(--s2);min-height:26px}.status-row>.status-label{flex:none}.status-row>.detail{min-width:0;flex:0 1 auto}.status-row>button{flex:none}.status-problem{flex:none;display:flex;align-items:baseline;gap:var(--s2);margin:0;padding-top:var(--s2);border-top:1px solid var(--line-soft);color:var(--bad);font-size:12px;line-height:1.4}.status-problem .what{flex:1;min-width:0;max-height:5.6em;overflow-y:auto;overscroll-behavior:contain}.status-problem strong{color:var(--bad);font-weight:600}.status-problem button,.status-problem .detail{flex:none}.viewer-controls{bottom:var(--s3);left:50%;transform:translate(-50%);padding:var(--s2) var(--s3);gap:var(--s6);width:max-content;max-width:calc(100% - var(--s6));flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.viewer-controls::-webkit-scrollbar{display:none}.viewer-controls>*{flex:none}.status-dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--faint)}.status-dot.ok{background:var(--ok)}.status-dot.busy{background:var(--accent);animation:pulse 1.2s ease-in-out infinite}.status-dot.warn{background:var(--warn)}.status-dot.bad{background:var(--bad)}@keyframes pulse{50%{opacity:.35}}.status-label{font-size:12px;color:var(--text-2);white-space:nowrap}.detail{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.control-group{display:flex;align-items:center;gap:var(--s2)}.control-divider{width:1px;align-self:stretch;background:var(--line);flex:none;margin:0 calc(var(--s3) * -1)}.control-group>.caption{color:var(--faint);font-size:10px;text-transform:uppercase;letter-spacing:.07em}.placeholder{height:100%;display:grid;place-items:center;align-content:center;gap:var(--s2);color:var(--muted);padding:var(--s6);text-align:center}.placeholder .headline{color:var(--text-2);font-size:14px}.placeholder .sub{font-size:12px;max-width:34ch}.stale-badge{position:absolute;bottom:64px;left:50%;transform:translate(-50%);z-index:1;background:#11151ae6;border:1px solid #4a3c1c;color:var(--warn);padding:var(--s1) var(--s3);border-radius:999px;font-size:11px;font-weight:500}button{background:var(--surface-2);color:var(--text-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:0 var(--s3);height:var(--control-h);font:inherit;font-size:12.5px;cursor:pointer;white-space:nowrap}button:hover:not(:disabled){background:var(--surface-3);color:var(--text)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button.primary:hover:not(:disabled){background:#62a8ff;border-color:#62a8ff;color:var(--accent-ink)}button.primary:disabled{background:var(--surface-2);border-color:var(--line);color:var(--muted);opacity:.65}button.block{width:100%}button.lg{height:36px;font-size:13px}.segmented{display:flex}.segmented button{border-radius:0;text-transform:capitalize;padding:0 var(--s3);color:var(--muted)}.segmented button+button{border-left:0}.segmented button:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.segmented button:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.segmented button.active{background:var(--accent-soft);border-color:var(--accent);color:#cfe2ff;font-weight:600}.segmented button.active+button{border-left:0}.info h2{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 var(--s3);font-weight:600}.export{margin-bottom:var(--s6)}.export .row{display:grid;gap:var(--s3);margin-bottom:var(--s3)}.export .row .label,.export fieldset.formats legend{display:block;color:var(--muted);font-size:11px;margin-bottom:var(--s1);padding:0}.export fieldset.formats{border:0;padding:0;margin:0}.export .format-options{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4)}.export .format-options .checkbox{margin:0}.artifacts{list-style:none;padding:0;margin:var(--s4) 0 0;display:grid;gap:var(--s1)}.artifacts li{display:block}.artifacts a{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:var(--s2) var(--s3);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text-2);text-decoration:none;font-size:12.5px}.artifacts a:hover{border-color:var(--accent);color:var(--text);background:var(--surface-3)}.artifact-size{color:var(--faint);font-size:11px;flex:none}.details-block{border-top:1px solid var(--line-soft);padding-top:var(--s4)}.details-block>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:var(--s2);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:600}.details-block>summary::-webkit-details-marker{display:none}.details-block>summary:hover{color:var(--text-2)}.details-block>summary .chevron{font-size:9px}.details-block[open]>summary{margin-bottom:var(--s3)}.derived dl{margin:0}.derived-row{display:flex;justify-content:space-between;gap:var(--s2);padding:var(--s1) 0}.derived-row+.derived-row{border-top:1px solid var(--line-soft)}.derived-row dt{color:var(--muted);font-size:11.5px}.derived-row dd{margin:0;color:var(--text-2);font-size:11.5px;flex:none}.version{color:var(--faint);font-size:10px;margin:var(--s6) 0 0;font-family:ui-monospace,monospace;opacity:.8}.share-note{grid-column:1 / -1;margin:0;padding:var(--s2) var(--s4);background:var(--accent-soft);color:#cfe2ff;font-family:ui-monospace,monospace;font-size:11px;word-break:break-all;border-bottom:1px solid var(--line)}.booting,.boot-error{display:grid;place-items:center;height:100vh;text-align:center;padding:var(--s6)}.boot-error h1{font-size:18px}.boot-error code{background:var(--surface-2);padding:1px 5px;border-radius:4px}@media (max-width: 1400px){.app{grid-template-columns:308px minmax(0,1fr) 288px}}@media (max-width: 1200px){.app{grid-template-columns:1fr;grid-template-areas:"header" "stage" "params" "info";grid-template-rows:auto 58vh auto auto;height:auto}.params,.info{border:0;border-top:1px solid var(--line);overflow:visible}header{flex-wrap:wrap;height:auto;padding:var(--s2) var(--s3);gap:var(--s2)}header .preset{flex:1 1 auto}.header-rule{display:none}}.usage-counter{color:var(--muted);font-size:11.5px;white-space:nowrap;font-variant-numeric:tabular-nums}.usage-counter strong{color:var(--text-2);font-weight:600}.model-link{color:var(--muted);font-size:12px;text-decoration:none;white-space:nowrap;padding:0 var(--s1)}.model-link:hover{color:var(--text-2);text-decoration:underline}@media (max-width: 1200px){.usage-counter{order:10}}.progress-track{position:absolute;left:0;right:0;bottom:0;height:2px;overflow:hidden;border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);background:var(--line-soft)}.progress-fill{height:100%;background:var(--accent);transform-origin:left center;transition:transform .2s ease-out}.progress-percent{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion: reduce){.progress-fill{transition:none}}.listbox{position:relative}.listbox-button{display:flex;align-items:center;gap:var(--s2);width:100%;height:var(--control-h);padding:0 var(--s2);text-align:left;font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer}.listbox-button:hover{border-color:var(--surface-3)}.listbox-button[aria-expanded=true]{border-color:var(--accent)}.listbox-value{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.listbox-caret{width:10px;height:6px;flex:none;color:var(--muted)}.listbox-icon{flex:none;display:inline-flex;color:var(--text-2)}.profile-icon{width:30px;height:20px;display:block}.profile-icon path{fill:currentColor;fill-opacity:.16}.listbox-option[data-active=true] .listbox-icon,.listbox-button .listbox-icon{color:var(--accent)}.listbox-list{position:fixed;z-index:40;margin:0;padding:var(--s1) 0;list-style:none;overflow-y:auto;overscroll-behavior:contain;background:var(--surface-3, var(--surface-2));border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 32px #00000073}.listbox-item{display:block}.listbox-group{display:block;padding:var(--s2) var(--s3) var(--s1);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.listbox-item:first-child .listbox-group{padding-top:var(--s1)}.listbox-option{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);cursor:pointer}.listbox-option[data-active=true]{background:var(--surface-2)}.listbox-option[aria-disabled=true]{opacity:.45;cursor:not-allowed}.listbox-text{flex:1 1 auto;min-width:0}.listbox-label{display:block;font-size:12.5px;color:var(--text)}.listbox-detail{display:block;margin-top:1px;font-size:11px;line-height:1.35;color:var(--muted)}.listbox-tick{width:12px;height:12px;flex:none;color:var(--accent)}@media (pointer: coarse){.listbox-button{height:40px}.listbox-option{min-height:44px;padding:var(--s2) var(--s3)}.listbox-button,.listbox-option{touch-action:manipulation}}.ledger{margin-top:var(--s4);border-top:1px solid var(--line-soft);padding-top:var(--s4)}.ledger table{width:100%;border-collapse:collapse;font-size:12px}.ledger th,.ledger td{padding:var(--s1) 0;text-align:right;font-weight:400}.ledger thead th{color:var(--faint);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line-soft);padding-bottom:var(--s2)}.ledger th[scope=row],.ledger thead th:first-child{text-align:left;color:var(--muted)}.ledger td{color:var(--text-2);font-variant-numeric:tabular-nums}.ledger tr.selected th[scope=row],.ledger tr.selected td{color:var(--text);font-weight:600}.ledger tr.reference th[scope=row],.ledger tr.reference td{color:var(--faint)}.ledger tr.note td{text-align:left;color:var(--muted);font-size:11px;line-height:1.45;padding:0 0 var(--s2)}.badge.warn{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}.export .format-options .badge{margin-left:var(--s2);padding:1px var(--s2);border-radius:var(--radius-sm);font-size:9px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}.ledger .badge{margin-left:var(--s2);padding:1px var(--s2);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:500;letter-spacing:.03em}.ledger-globals{margin-top:var(--s3)}.ledger-globals ul{list-style:none;padding:0;margin:var(--s2) 0 0;display:grid;gap:2px}.ledger-globals li{display:flex;justify-content:space-between;gap:var(--s2);font-size:12px;color:var(--muted)}.ledger-globals strong{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.ledger details{margin-top:var(--s3)}.ledger summary{color:var(--muted);font-size:11.5px;cursor:pointer}.ledger details ul{list-style:none;padding:0;margin:var(--s2) 0 0;display:grid;gap:var(--s2)}.ledger details li{color:var(--muted);font-size:11px;line-height:1.45}.ledger details strong{color:var(--text-2);font-weight:500}
