:root{--well:#071016;--plate:#12302c;--pipe:#2f6b62;--fluid:#5cffc8;--amber:#f0c35a;--lock:#ff6b4a;--paper:#e4fff4;--mute:#7aa396;--sa-t:env(safe-area-inset-top,0px);--sa-b:env(safe-area-inset-bottom,0px);--sa-l:env(safe-area-inset-left,0px);--sa-r:env(safe-area-inset-right,0px)}*{box-sizing:border-box;margin:0;padding:0}html{height:100dvh}html,body{background:var(--well);touch-action:manipulation;-webkit-user-select:none;user-select:none;min-height:100dvh;font-family:Avenir Next Condensed,PingFang SC,Hiragino Sans GB,system-ui,sans-serif;overflow:hidden}#c,#hits{display:none}#hud{left:calc(8px + var(--sa-l));bottom:calc(8px + var(--sa-b));pointer-events:none;z-index:2;position:fixed}#hint{display:none}#cta{text-align:center;color:var(--fluid);pointer-events:none;font-size:22px;position:fixed;inset:auto 0 24px}#cta[hidden]{display:none}#app{position:fixed;inset:0}#stage{background:radial-gradient(1200px 240px at 20% -10%, #5cffc814, transparent 50%), var(--well);width:100%;height:100dvh;max-height:100dvh;padding-left:var(--sa-l);padding-right:var(--sa-r);color:var(--paper);flex-direction:column;display:flex}#mast{background:var(--well);z-index:3;border-bottom:1px solid #1e3a36;flex:none;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:2px 8px;padding:6px 8px 4px;display:grid}#brief{grid-column:1;min-width:0;margin-bottom:0}#switches{flex-direction:column;grid-column:2;justify-self:end;align-items:flex-end;gap:4px;display:flex}#case-switch,#skin-switch{align-items:center;gap:4px;display:flex}#case-switch .skin-label,#skin-switch .skin-label{color:var(--mute);letter-spacing:.08em;font-size:11px}#case-switch button,#skin-switch button{padding:6px 10px}#progress{grid-column:1/-1;gap:0;margin-top:2px;display:flex}#product{color:var(--mute);letter-spacing:.12em;font-size:11px;line-height:1.2}#title{color:var(--paper);letter-spacing:.02em;font-size:15px;font-weight:650;line-height:1.3}#task{color:var(--amber);margin-top:2px;font-size:12px;line-height:1.35}#progress .step{min-width:44px;min-height:44px;color:var(--mute);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex:none;padding:8px 12px;font-size:13px}#progress .step.did{color:var(--paper);border-color:#0000}#progress .step.now{border-bottom-color:var(--amber);color:var(--amber);background:0 0}#progress .step.viewing{border-bottom-color:var(--fluid);color:var(--fluid);background:0 0}#work{flex-direction:column;flex:1;gap:8px;min-height:0;padding:8px;scroll-padding-top:8px;scroll-padding-bottom:8px;display:flex;overflow:auto}#work>#relation{flex:none;order:2}#workspace{flex-direction:column;min-height:0;display:flex;position:relative}#workspace>section{background:#0d1c1a;border:1px solid #1e3a36;padding:8px;display:none}#workspace>section.open{display:block}#work>#plant-col{background:0 0;border:0;padding:0}#work h2{letter-spacing:.08em;color:var(--fluid);margin-bottom:4px;font-size:14px}.lede,#claim-links,#claim-eval,.cmp-note,.cmp-row{color:var(--mute);margin-bottom:8px;font-size:13px;line-height:1.35}#plant-col{background:0 0;border:0;flex-direction:column;gap:6px;min-height:0;padding:0;display:flex;overflow:hidden}#plant{flex:auto;max-width:420px;min-height:96px;display:flex;overflow:hidden}#schematic{width:100%;height:100%;min-height:140px;display:block}#relation{min-height:44px;color:var(--paper);background:#0d1c1a;border:1px solid #1e3a36;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:4px 8px;font-size:12px;line-height:1.35;display:flex}#relation .rel-note{color:var(--paper);flex:220px;margin:0}#relation .rel-marks{color:var(--fluid);flex-wrap:wrap;gap:6px;margin:0;display:flex}#relation .rel-focus{flex:100%;margin:0}#relation .rel-marks span{border:1px solid #2f6b62;align-items:center;min-height:24px;padding:2px 6px;display:inline-flex}#relation .rel-focus{color:var(--amber)}#plan,#layers{background:#102422;border:1px solid #2a4a46;margin:8px 0;padding:8px;font-size:13px;line-height:1.35}#layers .layer{margin-bottom:4px}#layers .actual{color:var(--fluid)}.chip.evid{text-align:left;flex-direction:column;justify-content:center;align-items:flex-start;gap:1px;display:flex}.chip .meta{color:var(--amber);pointer-events:none;font-size:11px}#coach{flex:1;justify-content:flex-start;align-items:center;gap:8px;min-height:44px;padding:0;display:flex}#coach[hidden]{display:none}#coach-text{color:var(--paper);flex:1;font-size:13px;line-height:1.35}.coach-actions{flex:none;gap:6px;display:flex}.band{flex:none}#schematic .open rect{stroke:var(--fluid)}#schematic .stop circle{stroke:var(--mute)}#schematic .stop path{fill:var(--mute)}#schematic .open line{stroke:var(--fluid)}#schematic g.hl circle,#schematic g.hl rect{stroke:var(--amber);stroke-width:3px}#stage.hl-sync .band{border-color:var(--amber)}.band{background:#0d1c1a;border:1px solid #1e3a36;align-items:stretch;gap:6px;min-height:44px;padding:2px 4px;display:flex}.band-label{width:72px;color:var(--mute);flex:none;align-items:center;font-size:12px;line-height:1.1;display:flex}.ticks{flex:1;gap:2px;display:flex}.tick{min-width:44px;min-height:44px;color:var(--paper);background:#102422;border:1px solid #1e3a36;flex:1;padding:2px;font-size:12px;overflow:hidden}.tick b{color:var(--fluid);font-size:12px;display:block}.tick.hot{color:#ffd0c6;background:#3a1814}.tick.sel{border-color:var(--amber)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{min-width:88px;min-height:44px;color:var(--paper);letter-spacing:.02em;background:#102422;border:1px solid #2f6b62;font-size:13px}.chip .zh{pointer-events:none}.chip.got{border-color:var(--fluid);color:var(--fluid);background:#1a4a3c}.chip.sel{border-color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber)}#detail{background:#102422;border:1px solid #2a4a46;margin-top:8px;padding:8px;font-size:13px;line-height:1.35}#detail .code{color:var(--amber);font-variant:tabular-nums}.row{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}[data-case-only][hidden]{display:none!important}button{color:var(--paper);background:#152824;border:1px solid #2a4a46;min-width:44px;min-height:44px;padding:8px 10px;font-family:inherit;font-size:13px;line-height:1.2}button.on{border-color:var(--fluid);color:var(--fluid);background:#1d4a3c}button[data-act=clock_only].on{border-color:var(--amber);color:var(--amber)}button:focus{outline:none}button:focus-visible,.chip:focus-visible,.tick:focus-visible,.step:focus-visible{outline:2px solid var(--fluid);outline-offset:2px}#replay,#align,#file-case{letter-spacing:.06em;background:#1a3a28;width:100%}#file-case[hidden],#view-source[hidden]{display:none}#view-source{color:var(--amber);border:1px solid var(--amber);margin:0 0 6px;padding:4px 8px;font-size:12px;line-height:1.3}#stage[data-look="1"] #layers,#stage[data-look="1"] #compare,#stage[data-look="1"] #replay-diff,#stage[data-look="1"] #claim-eval{display:none}#verdicts{grid-template-columns:1fr;gap:6px;margin-bottom:8px;display:grid}.verdict{background:#102422;border:1px solid #1e3a36;padding:6px 8px}.verdict h3{color:var(--amber);margin-right:8px;font-size:12px;display:inline}.verdict p{color:var(--paper);font-size:13px;line-height:1.35;display:inline}#causal{background:#0d1c1a;border:1px solid #1e3a36;flex:none;padding:6px 8px;font-size:12px;line-height:1.35}#causal[hidden]{display:none}#plant-clock-readout{color:var(--fluid);margin-bottom:4px}#causal-chain{color:var(--paper);margin-bottom:6px}#archive-table .pending{color:var(--mute);border:1px dashed #2f6b62}#pipe-main.flow path:last-child,#pipe-bypass.flow path{stroke:#5cffc8;opacity:1}#pipe-main.idle path,#pipe-bypass.idle path{stroke:#2f6b62;opacity:.45}#pipe-main.spill path{stroke:#ff6b4a}#primary{letter-spacing:.06em;background:#1a3a28}#dock{padding:4px 8px calc(4px + var(--sa-b));z-index:3;background:#0a1614;border-top:1px solid #1e3a36;flex-direction:row;flex:none;align-items:center;gap:8px;min-height:48px;display:flex}.dock-actions{flex:none;gap:6px;margin-left:auto;display:flex}#primary.idle,#primary[hidden]{display:none}#result{color:var(--mute);flex:1;min-height:0;margin:0;font-size:13px;line-height:1.3}#result[hidden]{display:none}#result.fail{color:var(--lock)}#result.ok{color:var(--fluid)}#result.err{color:var(--amber)}.cmp-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.cmp-grid>div{border:1px solid #1e3a36;min-height:44px;padding:8px}.cmp-grid h3{color:var(--amber);margin-bottom:4px;font-size:13px}.mute{color:var(--mute)}@media (width>=800px){#work{grid-template:"plant work"minmax(0,1fr)"rel work"/minmax(300px,1.2fr) minmax(280px,1fr);align-content:stretch;display:grid;overflow:hidden}#work>#relation{order:0;grid-area:rel}#plant-col{grid-area:plant;min-height:0;overflow:hidden}#workspace{grid-area:work;min-height:0;padding-bottom:8px;overflow:auto}#workspace>section.open{min-height:100%}#replay,#align,#file-case,#primary{width:auto;min-width:160px}#schematic{height:100%;min-height:160px;max-height:none}#stage[data-skin=scene_v1] #plant-col{min-height:0;overflow:hidden}#stage[data-skin=scene_v1] #schematic{height:100%;min-height:0;max-height:none}}@media (height<=420px){#title{font-size:14px}#relation .rel-note{font-size:12px}#schematic{max-height:200px}#stage[data-skin=scene_v1] #schematic{min-height:0;max-height:none}#panel-review .lede,#stage[data-viewing=review] #relation,#stage[data-filed="1"] #layers,#stage[data-filed="1"] #compare,#stage[data-filed="1"] #replay-diff,#stage[data-filed="1"] #claim-eval{display:none}#causal-controls{margin-bottom:0}#causal-chain{max-height:2.7em;overflow:hidden}#stage[data-skin=scene_v1]:has(#causal:not([hidden])):not([data-viewing=review]) #relation{min-height:44px;max-height:44px;overflow:auto}#stage[data-skin=scene_v1]:has(#causal:not([hidden])):not([data-viewing=review]) #plant-clock-readout{display:none}#stage[data-skin=scene_v1]:has(#causal:not([hidden])):not([data-viewing=review]) #causal{padding:2px 6px}#stage[data-skin=scene_v1]:has(#causal:not([hidden])):not([data-viewing=review]) #causal-chain{max-height:1.35em;margin-bottom:2px;overflow:auto}#stage[data-skin=scene_v1]:has(#causal:not([hidden])):not([data-viewing=review]) #plant{min-height:96px}}#stage[data-skin=scene_v1]{--well:#0b141b;--plate:#1a2832;--pipe:#3d5360;--fluid:#e8ddd0;--amber:#e08a45;--lock:#c45c32;--paper:#f3ece0;--mute:#8aa0ad;background:linear-gradient(180deg, #c36b3214, transparent 28%), var(--well)}#stage[data-skin=scene_v1] #mast,#stage[data-skin=scene_v1] #dock{background:#0b141b;border-color:#2a3d48}#stage[data-skin=scene_v1] #workspace>section,#stage[data-skin=scene_v1] #relation,#stage[data-skin=scene_v1] .band,#stage[data-skin=scene_v1] #causal,#stage[data-skin=scene_v1] #plan,#stage[data-skin=scene_v1] #layers,#stage[data-skin=scene_v1] #detail,#stage[data-skin=scene_v1] .verdict,#stage[data-skin=scene_v1] .cmp-grid>div,#stage[data-skin=scene_v1] .tick{background:#121c24;border-color:#2a3d48}#stage[data-skin=scene_v1] button{background:#1a2832;border-color:#3d5360}#stage[data-skin=scene_v1] button.on,#stage[data-skin=scene_v1] .chip.got{border-color:var(--amber);color:var(--amber);background:#2a241c}#stage[data-skin=scene_v1] #pipe-main.flow .flow-line,#stage[data-skin=scene_v1] #pipe-bypass.flow .flow-line{opacity:.95;stroke-dasharray:7 11;animation:1.15s linear infinite scene-flow}#stage[data-skin=scene_v1] #pipe-main.idle .flow-line,#stage[data-skin=scene_v1] #pipe-bypass.idle .flow-line{opacity:0}#stage[data-skin=scene_v1] #pipe-main.spill path{stroke:#c45c32}#stage[data-skin=scene_v1] #pipe-main.flow path:not(.flow-line),#stage[data-skin=scene_v1] #pipe-bypass.flow path:not(.flow-line){stroke:#d4783a}#stage[data-skin=scene_v1] #plant-col{grid-template-rows:minmax(0,1fr) auto;min-height:0;display:grid;overflow:hidden}#stage[data-skin=scene_v1] #plant{width:100%;max-width:none;height:auto;min-height:0;overflow:hidden}#stage[data-skin=scene_v1] #schematic{width:100%;height:100%;min-height:0;max-height:100%;display:block}#stage[data-skin=scene_v1] #causal{flex:none;padding:4px 6px}#stage[data-skin=scene_v1] #causal-chain{max-height:3.2em;margin-bottom:4px;overflow:auto}#stage[data-skin=scene_v1] #causal-controls button{min-width:44px;min-height:44px}#stage[data-skin=scene_v1] #pump.run .impeller{transform-origin:132px 152px;animation:1.35s linear infinite scene-spin}#stage[data-skin=scene_v1] #bypass.open .wheel{transform-origin:215px 132px;transform:rotate(90deg)}@keyframes scene-flow{to{stroke-dashoffset:-36px}}@keyframes scene-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}#field-devices,#field-timeline,#field-scene-source{display:none}#stage[data-skin=scene_v1] #field-scene-source{padding:0 8px;display:block}.field-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}#close-evidence{display:none}#stage[data-skin=scene_v1] #field-devices{flex-wrap:wrap;gap:4px;display:flex}#stage[data-skin=scene_v1] #field-devices button{flex:auto;min-height:48px;font-size:12px}#stage[data-skin=scene_v1] #field-timeline{background:#0b141b;border:1px solid #3d5360;padding:8px;display:block}#stage[data-skin=scene_v1] #plant-col{flex-direction:column;flex:none;display:flex;overflow:visible}#stage[data-skin=scene_v1] #plant{flex:none;height:clamp(180px,30dvh,320px)}#stage[data-skin=scene_v1] #plant g:is(#pump,#bypass,#sensor,#relay,#tank){cursor:pointer}#stage[data-skin=scene_v1] #plant #overflow-mark{pointer-events:none}#stage[data-skin=scene_v1] #panel-align .band{display:none}.field-note{color:var(--mute);margin:5px 0;font-size:12px;line-height:1.45}.field-track{min-width:0;margin:5px 0}.field-track>b{color:var(--amber);margin-bottom:4px;font-size:12px;display:block}.field-events{gap:4px;padding:2px 0 5px;display:flex;overflow-x:auto}.field-events button{flex:0 0 96px;min-height:48px;padding:5px;font-size:12px;line-height:1.3}.field-events small{color:var(--amber);font-size:13px;display:block}.field-events button.sel{border-color:var(--fluid);outline:1px solid var(--fluid)}#field-timeline label{font-size:12px;line-height:1.5;display:block}#event-cursor{width:100%;min-height:48px;accent-color:var(--amber);touch-action:pan-x}#stage[data-skin=scene_v1][data-evidence-open="1"] #panel-collect{display:block}#evidence [hidden]{display:none!important}@media (width<=799px){#stage[data-skin=scene_v1][data-evidence-open="1"] #panel-collect{z-index:6;border:1px solid var(--amber);max-height:55dvh;padding:12px 12px calc(12px + var(--sa-b));border-radius:14px 14px 0 0;position:fixed;bottom:0;left:0;right:0;overflow:auto;box-shadow:0 -12px 36px #0009}#stage[data-skin=scene_v1] #close-evidence{min-height:48px;display:block}}@media (width>=800px){#stage[data-skin=scene_v1] #plant-col{overflow:auto}#stage[data-skin=scene_v1] #plant{height:clamp(170px,30dvh,320px)}}@media (width>=800px) and (height<=540px){#stage[data-skin=scene_v1] #switches{flex-direction:row;align-items:center}#stage[data-skin=scene_v1] #switches .skin-label{display:none}#stage[data-skin=scene_v1] #mast{gap:2px 8px;padding:4px 8px}#stage[data-skin=scene_v1] #title{font-size:14px}#stage[data-skin=scene_v1] #task{font-size:11px}#stage[data-skin=scene_v1] #progress{margin-top:0}#stage[data-skin=scene_v1] #progress button{padding:4px 10px}#stage[data-skin=scene_v1] #relation{max-height:38px;padding:3px 8px;overflow:auto}#stage[data-skin=scene_v1] #relation .rel-note{display:none}#stage[data-skin=scene_v1] #plant{height:180px}}#stage[data-skin=scene_v1] #field-timeline{flex:none}#field-clock-help{font-size:12px}#field-clock-help summary{cursor:pointer;border:1px solid #3d5360;align-items:center;min-height:44px;padding:4px 8px;display:flex}#field-clock-help summary:before{content:"▸ ";margin-right:4px}#field-clock-help[open] summary:before{content:"▾ "}#field-clock-help-content{padding:6px 0}#stage #field-clock-help[open] #relation{max-height:none}#stage #field-clock-help[open] #relation .rel-note{display:block}#field-timeline .field-heading{flex-wrap:wrap}#field-clock-help[open]{flex:100%;order:3}.field-track>b{justify-content:space-between;align-items:center;gap:6px;display:flex}.field-track>b>span{min-width:0}.field-scroll-hint{color:var(--mute);white-space:nowrap;flex:none;font-size:11px;font-weight:400}.field-events{scrollbar-width:thin;scrollbar-color:#e08a45 #23343e}.field-events::-webkit-scrollbar{height:8px}.field-events::-webkit-scrollbar-track{background:#23343e}.field-events::-webkit-scrollbar-thumb{background:#e08a45;border-radius:4px}@media (width>=800px){#stage[data-skin=scene_v1] #work{grid-template-rows:minmax(180px,1fr) auto;grid-template-areas:"plant work""clocks work";overflow:auto}#stage[data-skin=scene_v1] #field-timeline{grid-area:clocks}}@media (width>=800px) and (height<=540px){#stage[data-skin=scene_v1] #mast{grid-template-columns:minmax(0,1fr) auto auto;align-items:center}#stage[data-skin=scene_v1] #brief{grid-area:1/1}#stage[data-skin=scene_v1] #progress{grid-area:1/2;gap:0}#stage[data-skin=scene_v1] #progress button{padding:4px 7px}#stage[data-skin=scene_v1] #switches{grid-area:1/3;gap:3px}#stage[data-skin=scene_v1] #work{grid-template:"plant clocks work"minmax(0,1fr)/minmax(210px,1fr) minmax(285px,1.35fr) minmax(190px,.9fr);gap:6px;padding:6px;overflow:hidden}#stage[data-skin=scene_v1] #plant-col{overflow:auto}#stage[data-skin=scene_v1] #plant{height:138px}#stage[data-skin=scene_v1] #field-devices{gap:3px}#stage[data-skin=scene_v1] #field-devices button{flex:60px;padding:3px}#stage[data-skin=scene_v1] #field-scene-source{margin:3px 0;padding:0}#stage[data-skin=scene_v1] #field-timeline{grid-template-rows:20px minmax(78px,1fr) minmax(78px,1fr) auto 44px;gap:2px;min-width:0;min-height:0;padding:4px;display:grid;overflow:auto}#stage[data-skin=scene_v1] #field-timeline .field-heading{gap:4px}#stage[data-skin=scene_v1] #field-timeline h2{letter-spacing:0;font-size:13px}#stage[data-skin=scene_v1] #field-timeline .field-track{flex-direction:column;min-height:0;margin:0;display:flex}#stage[data-skin=scene_v1] #field-timeline .field-track>b{margin-bottom:2px;font-size:11px;line-height:16px}#stage[data-skin=scene_v1] #field-timeline .field-events{flex:1;min-height:60px;padding:0 0 4px}#stage[data-skin=scene_v1] #field-timeline .field-events button{flex-basis:96px;min-height:48px}#stage[data-skin=scene_v1] #field-timeline label{font-size:11px;line-height:16px}#stage[data-skin=scene_v1] #event-cursor{min-height:44px}#stage[data-skin=scene_v1] #workspace{padding:0}#stage[data-skin=scene_v1] #workspace>section{padding:6px}}.field-cursor-controls{flex-wrap:wrap;align-items:start;gap:4px;display:flex}.field-cursor-controls #event-cursor{flex:1;width:auto;min-width:100px}.field-cursor-controls #field-clock-help[open]{flex-basis:100%}@media (width>=800px) and (height<=540px){#stage[data-skin=scene_v1] #open-evidence,#stage[data-skin=scene_v1] #panel-align>.lede{display:none}#stage[data-skin=scene_v1] #workspace{scrollbar-width:thin;scrollbar-color:#e08a45 #23343e}}
