:root{color-scheme:light;--bg:#f4f6f8;--surface:#fff;--surface-2:#eaeef3;--border:#c4cdd6;--border-strong:#94a2b0;--text:#14181d;--text-2:#465059;--muted:#5c6874;--accent:#1750b8;--valid:#1e7a46;--valid-bg:#e4f3ea;--warn:#8a5200;--warn-bg:#fcefd6;--err:#b22026;--err-bg:#fbe6e6;--info:#23617f;--info-bg:#e4f0f5;--phys:#0e7c86;--tcu:#5b3ea6;--pha:#b5701a;--sheet-face-a:var(--phys);--sheet-face-b:var(--pha);--roll-surface:var(--valid);--ghost:#7b8996;--radius:5px;--hatch:rgba(92,104,116,.12);--focus:#1d5fd6;--shadow:0 8px 28px rgba(23,35,48,.08);font-family:"Segoe UI","Malgun Gothic","맑은 고딕",system-ui,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}:root[data-theme=dark]{color-scheme:dark;--bg:#0e1216;--surface:#161c22;--surface-2:#1e262d;--border:#2b3641;--border-strong:#3c4a56;--text:#e9eef3;--text-2:#aebbc7;--muted:#8695a2;--accent:#5e9cff;--valid:#52c480;--valid-bg:#12301f;--warn:#f0b857;--warn-bg:#3a2a0e;--err:#ff7074;--err-bg:#3a1416;--info:#6fb8da;--info-bg:#0f2a38;--phys:#2fc3ce;--tcu:#b79bff;--pha:#e0a24e;--ghost:#b6c4d0;--hatch:rgba(233,238,243,.52);--focus:#5e9cff;--shadow:0 12px 32px rgba(0,0,0,.35)}:root[data-theme=dark] .primary-btn{background:#1750b8;border-color:#1750b8}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg)}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,summary,[tabindex]{outline:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.num,.value,.roll-temp,.readout-value{font-family:"Cascadia Mono",Consolas,"D2Coding",monospace;font-variant-numeric:tabular-nums}.app{width:100%;min-width:0;height:100dvh;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:56px minmax(0,1fr) 44px;background:var(--bg)}.app-header{display:flex;align-items:center;gap:16px;padding:0 16px;border-bottom:1px solid var(--border);background:var(--surface);z-index:20}.brand{min-width:260px}.brand strong{display:block;font-size:16px;line-height:20px}.brand span{color:var(--muted);font-size:11px}.header-presets{display:flex;align-items:center;gap:8px;flex:1}.header-actions{display:flex;gap:6px}.header-badge{padding:5px 9px;border:1px solid var(--border);border-radius:999px;color:var(--muted);white-space:nowrap}.shell{width:100%;min-width:0;min-height:0;display:grid;grid-template-columns:380px minmax(0,1fr) 340px;gap:10px;padding:10px}.input-rail,.workspace,.summary-panel{min-width:0;min-height:0;border:1px solid var(--border);background:var(--surface);border-radius:7px;box-shadow:var(--shadow)}.input-rail{overflow:auto;padding:10px}.workspace{overflow:hidden;display:grid;grid-template-rows:minmax(320px,1fr) minmax(180px,30dvh)}.summary-panel{overflow:auto;padding:12px}.toolbar-btn,.primary-btn,.secondary-btn,.icon-btn{min-height:44px;border:1px solid var(--border-strong);border-radius:5px;padding:0 12px;background:var(--surface);cursor:pointer}.toolbar-btn:hover,.secondary-btn:hover,.icon-btn:hover{background:var(--surface-2)}.primary-btn{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700}.primary-btn:active,.toolbar-btn:active{transform:translateY(1px)}.icon-btn{width:44px;padding:0}.compact-select{height:44px;border:1px solid var(--border);border-radius:5px;background:var(--surface);padding:0 30px 0 9px}.rail-intro{display:flex;justify-content:space-between;align-items:start;padding:4px 2px 10px}.rail-intro h2{font-size:16px;margin:0}.rail-intro p{margin:3px 0 0;color:var(--muted);font-size:11px}.dirty-count{color:var(--accent);font-size:11px}.form-group{border-top:1px solid var(--border)}.form-group summary{min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:700;list-style:none}.form-group summary::-webkit-details-marker{display:none}.form-group summary:before{content:"›";font-size:18px;transform:rotate(0);transition:transform .12s}.form-group[open] summary:before{transform:rotate(90deg)}.group-body{padding:0 0 12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.field{min-width:0;position:relative}.field.wide{grid-column:1/-1}.field label,.field .label{display:flex;align-items:center;gap:4px;min-height:20px;color:var(--text-2);font-size:11px}.field input,.field select{width:100%;height:44px;border:1px solid var(--border);border-radius:4px;background:var(--surface);padding:0 40px 0 9px}.field input:focus,.field select:focus{border-color:var(--focus)}.field .unit{position:absolute;right:9px;bottom:14px;color:var(--muted);font-size:11px;pointer-events:none}.field.modified{border-left:3px solid var(--accent);padding-left:5px}.field.modified label:after{content:"✎ 수정됨";color:var(--accent);font-size:10px}.help{grid-column:1/-1;padding:8px 9px;border-radius:4px;background:var(--info-bg);color:var(--info);font-size:11px;line-height:1.45}.form-actions{position:sticky;bottom:-10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 0;background:linear-gradient(transparent,var(--surface) 20%)}.form-actions .primary-btn{height:48px}.stale{grid-column:1/-1;color:var(--warn);font-size:11px;align-self:center}.auto-calc{display:flex;align-items:center;min-height:44px;padding-right:8px;border:1px solid var(--border);border-radius:5px;cursor:pointer}.auto-calc input{width:44px;height:44px;margin:0;accent-color:var(--accent)}.calc-trigger{display:flex;align-items:center;justify-content:center;gap:7px}.calc-trigger:disabled{cursor:wait;opacity:.82}.calc-spinner{display:none;width:15px;height:15px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:calc-spin .7s linear infinite}.calc-trigger.is-calculating .calc-spinner{display:inline-block}.calc-elapsed:empty{display:none}@keyframes calc-spin{to{transform:rotate(360deg)}}.summary-panel{position:relative}.summary-panel.is-stale:after{content:"입력 변경 · 재계산 중";position:absolute;inset:0;z-index:6;display:grid;place-items:center;padding:18px;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--surface) 88%,transparent),color-mix(in srgb,var(--surface) 88%,transparent) 9px,color-mix(in srgb,var(--warn-bg) 90%,transparent) 9px,color-mix(in srgb,var(--warn-bg) 90%,transparent) 18px);color:var(--warn);font-weight:800;pointer-events:none}.stage-root{min-height:0;position:relative;background:linear-gradient(180deg,var(--surface),var(--surface-2))}.stage-toolbar{height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;border-bottom:1px solid var(--border)}.stage-toolbar strong{display:block}.stage-toolbar span{display:block;color:var(--muted);font-size:10px}.stage-toolbar-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.stage-surface-key{display:flex;align-items:center;justify-content:flex-end;gap:5px 9px;min-width:0;color:var(--muted);font-size:9px}.stage-surface-key span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.stage-surface-key i{display:inline-block;width:16px;height:3px;border-radius:2px}.stage-surface-key .stage-key-a i{background:var(--sheet-face-a)}.stage-surface-key .stage-key-b i{height:2px;background:repeating-linear-gradient(90deg,var(--sheet-face-b) 0 6px,transparent 6px 9px)}.stage-surface-key .stage-key-roll i{background:var(--roll-surface)}.stage-surface-rule{display:none;white-space:nowrap;color:var(--text-2);font-style:normal;font-weight:700}.stage-flag{display:inline-block!important;margin-left:4px;padding:3px 7px;border-radius:999px;background:var(--warn-bg);color:var(--warn)!important}.machine-svg{display:block;width:100%;height:calc(100% - 58px);min-height:270px}.svg-grid{fill:url(#dots)}#dots circle{fill:var(--border-strong)}#hatch line{stroke:var(--ghost);stroke-width:2}.extruder rect,.die path{fill:var(--surface-2);stroke:var(--border-strong);stroke-width:1.5}.extruder text,.die text{fill:var(--text);font-size:11px;text-anchor:middle}.roll circle{fill:var(--surface);stroke:var(--phys);stroke-width:2}.roll--downstream circle{stroke:var(--ghost);stroke-dasharray:5 4;fill:url(#hatch)}.roll text{text-anchor:middle;fill:var(--text)}.roll-id{font-weight:800;font-size:13px}.roll-temp{font-size:10px;fill:var(--phys)!important}.roll-role{font-size:9px;fill:var(--muted)!important}.roll-role.side{text-anchor:start;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.sheet-face{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}.sheet-face-a{stroke:var(--sheet-face-a)}.sheet-face-b{stroke:var(--sheet-face-b);stroke-dasharray:7 3}.sheet-face-contact{stroke-width:3.6;filter:url(#soft-glow)}.sheet-face-air{stroke-width:2.2;opacity:.9}.sheet-base{fill:none;stroke:var(--phys);stroke-width:4}.sheet-flow{fill:none;stroke:var(--surface);stroke-width:1.5;stroke-dasharray:12 9;animation:sheet-flow 1.2s linear infinite}.water-loop{fill:none;stroke:var(--tcu);stroke-width:2;marker-end:url(#arrow)}.water-label,.water-caption{fill:var(--tcu);font-size:9px}.causal-line{stroke:var(--border-strong);stroke-width:2;stroke-dasharray:6 5}.causal-label{fill:var(--text-2);font-size:10px;font-weight:700}.ir-probe circle{fill:none;stroke:var(--info);stroke-width:2}.ir-probe text{fill:var(--info);font-size:10px}.dimension line{stroke:var(--border-strong);stroke-width:1;marker-start:url(#arrow);marker-end:url(#arrow)}.dimension text{fill:var(--muted);font-size:10px;text-anchor:middle}.readout rect,.tcu-readout rect{fill:var(--surface);stroke:var(--border)}.readout text,.tcu-readout text{fill:var(--text-2);font-size:10px}.readout .readout-value{fill:var(--phys);font-size:13px;font-weight:700}.tcu-readout .readout-value{fill:var(--tcu);font-size:13px;font-weight:700}@keyframes sheet-flow{to{stroke-dashoffset:-21}}.chart-slot{border-top:1px solid var(--border);min-height:0;overflow:hidden;padding:10px}.chart-placeholder{height:100%;display:grid;place-items:center;color:var(--muted);border:1px dashed var(--border);border-radius:5px}.summary-header{display:flex;justify-content:space-between;gap:8px;align-items:start}.summary-header h2{margin:0;font-size:15px}.status-badge{padding:5px 8px;border-radius:999px;font-weight:700}.status-badge.valid{background:var(--valid-bg);color:var(--valid)}.status-badge.error{background:var(--err-bg);color:var(--err)}.uncalibrated{margin-top:10px;padding:9px;border:1px solid var(--border);background:repeating-linear-gradient(135deg,transparent,transparent 7px,rgba(92,104,116,.08) 7px,rgba(92,104,116,.08) 11px);color:var(--muted);border-radius:5px}.headline{padding:14px 0;border-bottom:1px solid var(--border)}.headline-label{color:var(--text-2);font-size:11px}.headline-value{margin-top:5px;color:var(--phys);font-size:24px;font-weight:800}.headline-note{margin-top:5px;color:var(--muted);font-size:11px}.execution-band{margin:12px 0;padding:10px;background:var(--surface-2);border-radius:5px}.band-track{height:8px;background:linear-gradient(90deg,var(--info),var(--pha));border-radius:999px;margin:9px 0}.tcu-line{padding:10px 0;color:var(--tcu);border-bottom:1px solid var(--border)}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.mini-tile{min-height:70px;padding:8px;border:1px solid var(--border);border-radius:5px;background:var(--surface)}.mini-tile .k{display:block;color:var(--muted);font-size:10px}.mini-tile .v{display:block;margin-top:5px;font-weight:700}.raw-readout{white-space:pre-wrap;font-size:10px;color:var(--muted);max-height:180px;overflow:auto}.alert-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;border-top:1px solid var(--border);background:var(--surface);z-index:15}.alert-summary{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.alert-counts{display:flex;gap:6px}.alert-chip{padding:4px 8px;border-radius:999px}.alert-chip.error{background:var(--err-bg);color:var(--err)}.alert-chip.warn{background:var(--warn-bg);color:var(--warn)}.alert-chip.info{background:var(--info-bg);color:var(--info)}.mobile-tabs,.mobile-band,.mobile-calc{display:none}@media(min-width:1200px){body{position:fixed;inset:0}}@media(max-width:1199px){html,body{overflow:auto}.app{height:auto;min-height:100dvh;overflow:visible;display:block;padding-top:96px;padding-bottom:64px}.app-header{display:none}.mobile-band{position:fixed;inset:0 0 auto;display:block;height:96px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);z-index:50}.mobile-band strong{font-size:18px;color:var(--phys)}.mobile-band-row{display:flex;justify-content:space-between;align-items:center;margin-top:7px}.mobile-tabs{position:sticky;top:96px;display:grid;grid-template-columns:repeat(3,1fr);height:48px;background:var(--surface);z-index:40;border-bottom:1px solid var(--border)}.mobile-tabs button{border:0;border-right:1px solid var(--border);background:var(--surface);min-height:48px}.mobile-tabs button.active{color:var(--accent);border-bottom:3px solid var(--accent)}.shell{display:block;padding:0}.input-rail,.workspace,.summary-panel{border:0;border-radius:0;box-shadow:none;min-height:calc(100dvh - 208px)}.workspace{display:block}.stage-root{height:600px}.chart-slot{height:360px}.summary-panel{padding:16px}.shell>[data-mobile-panel]{display:none}.shell>[data-mobile-panel].active{display:block}.alert-bar{position:static;min-height:48px}.mobile-calc{position:fixed;display:block;bottom:0;left:0;right:0;height:64px;padding:8px 16px;background:var(--surface);border-top:1px solid var(--border);z-index:50}.mobile-calc button{width:100%;height:48px}.group-body{grid-template-columns:1fr}.field.wide,.help{grid-column:1}.form-actions{display:none}}@media(max-width:420px){.input-rail,.summary-panel{width:100%;padding-left:16px;padding-right:16px}.machine-svg{height:535px}.stage-toolbar{height:64px}.stage-toolbar>div:last-child{max-width:130px}.mini-grid{grid-template-columns:1fr 1fr}.headline-value{font-size:21px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{html,body{overflow:visible;background:#fff}body{position:static}.app{display:block;height:auto}.app-header,.mobile-tabs,.mobile-band,.mobile-calc,.form-actions,.header-actions{display:none!important}.shell{display:block;padding:0}.input-rail,.workspace,.summary-panel{box-shadow:none;border:1px solid #999;margin:0 0 8mm;overflow:visible}.input-rail{display:none}.stage-root{height:140mm}.chart-slot{height:90mm}.alert-bar{min-height:auto;padding:8px;border:1px solid #999}.uncalibrated:after{content:"상대 경향 · 미보정";font-size:24px;color:#777}@page{size:A4 landscape;margin:12mm}}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.result-tile{min-width:0;min-height:77px;padding:8px;border:1px solid var(--border);border-radius:5px;background:var(--surface)}.result-tile.primary{grid-column:1/-1;border-left:4px solid var(--phys)}.result-tile.tcu{grid-column:1/-1;border-left:4px solid var(--tcu)}.result-k,.result-note{display:block;color:var(--muted);font-size:10px;line-height:1.35}.result-v{display:block;margin:5px 0;font-size:14px;line-height:1.2;overflow-wrap:anywhere}.result-tile.primary .result-v{font-size:21px;color:var(--phys)}.result-tile.tcu .result-v{color:var(--tcu)}.inline-badge{display:inline-block;padding:3px 5px;border-radius:4px;font-family:"Segoe UI","Malgun Gothic",sans-serif;font-size:10px}.inline-badge.info{background:var(--info-bg);color:var(--info)}.band-track{position:relative}.band-track i{position:absolute;top:-4px;width:2px;height:16px;background:var(--text);transform:translateX(-1px)}.property-note{margin:8px 0;padding:8px;border-left:3px solid var(--warn);background:var(--warn-bg);color:var(--warn);font-size:11px;line-height:1.4}.sweep-table{width:100%;margin-top:8px;border-collapse:collapse;font-size:10px}.sweep-table caption{text-align:left;padding:6px 0;font-weight:700;color:var(--text-2)}.sweep-table th,.sweep-table td{padding:6px 4px;border-top:1px solid var(--border);text-align:left}.sweep-table th{white-space:nowrap}.result-detail summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700}.lever-panel,.whatif{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.lever-panel h3,.whatif h3{margin:0;font-size:13px}.lever-panel p,.whatif p{margin:4px 0 8px;color:var(--muted);font-size:10px;line-height:1.4}.lever-panel ol{margin:0;padding:0;list-style:none}.lever-panel li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-top:1px solid var(--border)}.lever-panel li span,.lever-panel li small{display:block}.lever-panel li small{color:var(--muted);margin-top:2px}.whatif-mode{display:grid;grid-template-columns:1fr 1fr;gap:5px}.whatif-mode label{display:flex;align-items:center;min-height:44px;padding:0;border:1px solid var(--border);border-radius:4px}.whatif-mode input{flex:0 0 44px;width:44px;height:44px;margin:0 3px 0 0}.whatif>input[type=range]{width:100%;height:44px;margin:4px 0;accent-color:var(--accent)}.whatif-readout{display:flex;justify-content:space-between;gap:5px;font-size:10px}.whatif-boundary{display:flex;align-items:center;gap:5px;margin:8px 0;color:var(--muted);font-size:9px}.whatif-boundary i{height:8px;flex:1;border-radius:999px;background:linear-gradient(90deg,var(--warn-bg) 0 35%,var(--valid-bg) 65% 100%)}.whatif-boundary.is-infeasible i{background:linear-gradient(90deg,var(--err) 0 58%,var(--warn-bg) 58% 70%,var(--valid-bg) 70%)}.whatif .secondary-btn{width:100%}.chart-slot{padding:6px 8px}.chart-head{height:25px;display:flex;align-items:start;justify-content:space-between;gap:8px}.chart-head span{color:var(--muted);font-size:9px}.profile-chart{display:block;width:100%;height:calc(100% - 25px);min-height:150px}.chart-grid{stroke:var(--border);stroke-width:1}.chart-axis,.aux-label{fill:var(--muted);font-size:9px}.profile-line{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}.surface-a{stroke:var(--phys)}.surface-b{stroke:var(--pha);stroke-dasharray:7 3}.core-line{stroke:var(--accent);stroke-dasharray:2 3}.mass-line{stroke:var(--text);stroke-width:2.6}.ghost{stroke:var(--ghost);stroke-width:1;stroke-dasharray:8 5;opacity:.58}.aux-line{stroke:var(--border-strong);stroke-width:1;stroke-dasharray:3 3}.aux-목표{stroke:var(--accent);stroke-width:1.5}.curl-caption{fill:var(--warn);font-size:9px;font-weight:700}.unreachable-label{fill:var(--err);font-size:18px;font-weight:800}.duty-title,.duty-label,.duty-number{fill:var(--text-2);font-size:8px}.duty-title{font-size:9px;font-weight:700}.duty-track{fill:var(--surface-2)}.duty-value{fill:var(--phys)}.chart-crosshair{stroke:var(--text);stroke-width:1;pointer-events:none}.chart-tooltip{pointer-events:none}.chart-tooltip rect{fill:var(--surface);stroke:var(--border-strong)}.chart-tooltip text{fill:var(--text);font-size:9px}.chart-hit{cursor:crosshair}.motion-paused .sheet-flow{animation-play-state:paused}.alert-counts{align-items:center}.warning-open{min-height:44px;height:44px;padding:0 9px}.warning-dialog{width:min(720px,calc(100vw - 28px));max-height:min(720px,calc(100dvh - 28px));padding:0;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);box-shadow:0 18px 80px rgba(0,0,0,.34)}.warning-dialog::backdrop{background:rgba(3,9,15,.62)}.warning-dialog form{padding:14px}.warning-dialog header{display:flex;align-items:center;justify-content:space-between;position:sticky;top:-14px;padding:8px 0;background:var(--surface);z-index:2}.warning-dialog h2{margin:0;font-size:17px}.warning-list{display:grid;gap:7px}.warning-item{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px;border:1px solid var(--border);border-left:4px solid var(--info);border-radius:5px}.warning-item.E{border-left-color:var(--err);background:var(--err-bg)}.warning-item.W{border-left-color:var(--warn);background:var(--warn-bg)}.warning-item p{margin:3px 0 0;color:var(--text-2);font-size:11px}.warning-focus{min-width:58px}@media(max-width:1199px){.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-tile.primary,.result-tile.tcu{grid-column:auto}.chart-head{height:34px}.profile-chart{height:calc(100% - 34px)}.alert-bar{padding:8px 16px;flex-wrap:wrap}.alert-summary{width:100%;white-space:normal}.alert-counts{width:100%;flex-wrap:wrap}.warning-open{margin-left:auto}}@media(max-width:420px){.result-grid{grid-template-columns:1fr}.result-tile.primary,.result-tile.tcu{grid-column:1}.whatif-readout{display:grid}.warning-item{grid-template-columns:36px 1fr}.warning-item .warning-focus{grid-column:2;width:100%}.profile-chart{min-width:720px}.chart-slot{overflow:auto}.chart-head{position:sticky;left:0;width:calc(100vw - 16px)}}.hidden{display:none!important}.composition-body{display:block}.composition-body>.field{margin-bottom:8px}.direct-density{display:grid;gap:7px;padding:8px;background:var(--surface-2);border-radius:5px}.direct-density label{display:grid;grid-template-columns:1fr 110px auto;gap:5px;align-items:center}.direct-density input,.composition-row input,.composition-row select,.composition-body textarea{min-width:0;height:44px;border:1px solid var(--border);border-radius:4px;background:var(--surface);padding:0 8px}.composition-body textarea{width:100%;height:92px;padding:8px;resize:vertical}.composition-columns,.composition-row{display:grid;grid-template-columns:minmax(100px,2fr) 68px 64px 62px 44px;gap:4px;align-items:center}.composition-columns{padding:4px;color:var(--muted);font-size:9px}.composition-row{margin-bottom:5px}.composition-actions{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:5px;margin:8px 0}.composition-result{display:grid;gap:3px;margin-top:8px;padding:9px;border-left:3px solid var(--phys);background:var(--info-bg);color:var(--info)}.composition-result span{font-size:10px}.composition-issues p{margin:5px 0;padding:7px;border-radius:4px}.composition-issues .E{background:var(--err-bg);color:var(--err)}.composition-issues .W{background:var(--warn-bg);color:var(--warn)}.composition-issues .I{background:var(--info-bg);color:var(--info)}.io-dialog{width:min(580px,calc(100vw - 28px));padding:0;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);box-shadow:0 18px 80px rgba(0,0,0,.34)}.io-dialog::backdrop{background:rgba(3,9,15,.62)}.io-dialog form{padding:14px}.io-dialog header{display:flex;align-items:center;justify-content:space-between}.io-dialog h2{margin:0;font-size:17px}.io-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.io-grid .primary-btn{grid-column:1/-1}.file-label{display:flex;align-items:center;justify-content:center;cursor:pointer}.file-label input{display:none}.storage-badge{padding:8px;background:var(--warn-bg);color:var(--warn);border-radius:4px}.calc-evidence{margin-top:10px;border-top:1px solid var(--border)}.calc-evidence summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-weight:700}.evidence-content{font-size:10px;line-height:1.45}.evidence-content h3{margin:10px 0 3px;font-size:11px}.evidence-content p,.evidence-content ul,.evidence-content ol{margin:3px 0;padding-left:18px}.evidence-content table{width:100%;border-collapse:collapse}.evidence-content th,.evidence-content td{padding:3px;border:1px solid var(--border);text-align:left;overflow-wrap:anywhere}.evidence-content th{width:44%}@media(max-width:1199px){#alert-bar:not(.active){display:none}.composition-panel{margin-bottom:72px}}@media(max-width:420px){.composition-columns,.composition-row{grid-template-columns:minmax(95px,1fr) 58px 60px 56px 44px}.composition-editor{overflow-x:auto}.composition-actions,.io-grid{grid-template-columns:1fr}.io-grid .primary-btn{grid-column:1}.direct-density label{grid-template-columns:1fr}.direct-density input{width:100%;height:44px}}@media print{.calc-evidence{display:block!important;break-before:page}.calc-evidence .evidence-content{display:block!important}.calc-evidence table{font-size:8pt}.whatif,.result-detail,.warning-open,.io-dialog,.warning-dialog{display:none!important}.summary-panel{break-inside:avoid}.workspace{break-inside:avoid}.chart-slot{height:75mm}.stage-root{height:110mm}.result-grid{grid-template-columns:repeat(4,1fr)}.result-tile.primary,.result-tile.tcu{grid-column:auto}}.input-rail,.workspace,.summary-panel,.toolbar-btn,.primary-btn,.secondary-btn,.icon-btn,.compact-select,.field input,.field select,.help,.auto-calc,.chart-placeholder,.uncalibrated,.execution-band,.mini-tile,.result-tile,.inline-badge,.whatif-mode label,.warning-dialog,.warning-item,.direct-density,.direct-density input,.composition-row input,.composition-row select,.composition-body textarea,.composition-issues p,.io-dialog,.storage-badge{border-radius:var(--radius)}.uncalibrated{background:repeating-linear-gradient(135deg,transparent,transparent 7px,var(--hatch) 7px,var(--hatch) 11px)}.ghost{opacity:.88}.stage-toolbar span,.roll-temp,.roll-role,.water-label,.water-caption,.causal-label,.ir-probe text,.dimension text,.readout text,.tcu-readout text,.mini-tile .k,.raw-readout,.result-k,.result-note,.inline-badge,.sweep-table,.lever-panel p,.whatif p,.whatif-readout,.whatif-boundary,.chart-head span,.chart-axis,.aux-label,.curl-caption,.duty-title,.duty-label,.duty-number,.chart-tooltip text,.composition-columns,.composition-result span,.evidence-content{font-size:11px}.result-v{font-size:16px}.result-grid>.execution-band{grid-column:1/-1;margin:0}.diagnostic-detail{margin-top:8px;border-top:1px solid var(--border)}.diagnostic-detail summary{display:flex;align-items:center;min-height:44px;color:var(--text-2);font-weight:700;cursor:pointer}.diagnostic-detail dl{display:grid;gap:6px;margin:0 0 8px}.diagnostic-detail dl>div{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;background:var(--surface-2);border-radius:var(--radius)}.diagnostic-detail dt,.diagnostic-detail dd{margin:0}@media(max-width:1199px){.mobile-band{height:auto;min-height:96px}.mobile-band>div:first-child,.mobile-band-row strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-band-row{gap:8px}.mobile-band-row strong{flex:1}.stage-root{height:min(600px,calc(100dvh - 260px));min-height:360px}.roll-temp,.roll-role,.water-label,.water-caption,.causal-label,.ir-probe text,.dimension text,.readout text,.tcu-readout text,.chart-axis,.aux-label,.curl-caption,.duty-title,.duty-label,.duty-number,.chart-tooltip text{font-size:12px}}@media(max-width:420px){.chart-slot{background-color:var(--surface);background-image:linear-gradient(to right,var(--surface),transparent),linear-gradient(to left,var(--surface),transparent),linear-gradient(to right,rgba(0,0,0,.16),transparent),linear-gradient(to left,rgba(0,0,0,.16),transparent);background-position:left center,right center,left center,right center;background-repeat:no-repeat;background-size:32px 100%,32px 100%,10px 100%,10px 100%;background-attachment:local,local,scroll,scroll}}:root{--stage-bg-a:#f8fafc;--stage-bg-b:#e7edf3;--steel-hi:#f7fbfd;--steel-mid:#a8b8c4;--steel-lo:#536675;--machine-dark:#253442;--machine-side:#5f7280;--stage-glow:rgba(14,124,134,.22)}:root[data-theme=dark]{--stage-bg-a:#101820;--stage-bg-b:#0b1015;--steel-hi:#d8e5ed;--steel-mid:#718897;--steel-lo:#263945;--machine-dark:#1d2b35;--machine-side:#455b69;--stage-glow:rgba(47,195,206,.28)}.stage-root{background:var(--stage-bg-b)}.stage-toolbar{background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px)}.machine-svg{padding:3px}.stage-surface{fill:url(#stage-bg)}.svg-grid{fill:url(#dots);opacity:.42}#dots circle{fill:color-mix(in srgb,var(--border-strong) 65%,transparent)}.extruder .machine-shadow{fill:rgba(0,0,0,.15);transform:translate(7px,8px)}.extruder .machine-body{fill:var(--machine-dark);stroke:var(--steel-lo);stroke-width:1.4}.extruder .machine-top{fill:var(--machine-side);stroke:var(--steel-hi);stroke-width:.8}.extruder .machine-panel{fill:color-mix(in srgb,var(--surface) 84%,var(--steel-mid));stroke:var(--steel-mid);stroke-width:1.2}.extruder .machine-neck{fill:var(--steel-lo);stroke:var(--steel-mid);stroke-width:1}.extruder text,.die text{fill:var(--text);font-weight:650}.die path{fill:url(#steel-face);stroke:var(--steel-lo);stroke-width:1.3}.roll .roll-hit{fill:transparent;stroke:none}.roll .roll-shadow{fill:rgba(0,0,0,.19);stroke:none}.roll .roll-back{fill:var(--steel-lo);stroke:var(--steel-mid);stroke-width:1.2}.roll .roll-shell{fill:var(--steel-mid);stroke:var(--steel-lo);stroke-width:1}.roll .roll-face{fill:url(#steel-face);stroke:var(--steel-lo);stroke-width:1.5}.roll--downstream .roll-face{fill:url(#steel-face);stroke:var(--ghost);stroke-dasharray:4 3}.roll .roll-thermal{fill:none;stroke:var(--roll-surface);stroke-width:3;filter:url(#soft-glow);animation:thermal-pulse 2.8s ease-in-out infinite}.roll .roll-spokes{animation:roll-spin var(--spin-s) linear infinite;animation-direction:var(--spin-dir)}.roll .roll-spokes path{fill:none;stroke:rgba(25,39,49,.48);stroke-width:1.4}.roll .roll-spokes circle{fill:var(--machine-dark);stroke:var(--steel-hi);stroke-width:1}.roll-id{paint-order:stroke;stroke:var(--surface);stroke-width:3px}.roll-temp{paint-order:stroke;stroke:var(--surface);stroke-width:2.5px;fill:var(--phys)!important}.roll-role{font-weight:650}.sheet-heat-glow{fill:none;stroke:url(#sheet-thermal-gradient);stroke-width:13;opacity:.2;filter:url(#soft-glow)}.sheet-base{stroke:url(#sheet-thermal-gradient);stroke-width:6;filter:url(#soft-glow)}.sheet-flow{stroke:rgba(255,255,255,.92);stroke-width:1.7;stroke-dasharray:14 8;animation:sheet-flow var(--flow-s) linear infinite}.flow-particle{fill:#fff;stroke:var(--phys);stroke-width:1;filter:url(#soft-glow)}.water-loop{stroke-width:2.4;stroke-dasharray:5 4;animation:coolant-flow 1.6s linear infinite}.water-pulse{fill:var(--tcu);filter:url(#soft-glow);animation:water-pulse 1.6s ease-in-out infinite}.water-caption{font-weight:650}.causal-boundary line{stroke:var(--border-strong);stroke-width:2;stroke-dasharray:4 5}.causal-boundary text{fill:var(--text-2);font-size:11px;font-weight:750}.ir-probe rect,.dimension rect{fill:transparent;stroke:none}.ir-probe circle{fill:var(--surface);stroke:var(--info)}.ir-probe circle+circle{fill:var(--info)}.dimension line{stroke:var(--border-strong);stroke-dasharray:3 3}.readout rect,.tcu-readout rect{fill:color-mix(in srgb,var(--surface) 94%,transparent);stroke:var(--border-strong)}.readout>path,.tcu-readout>path{fill:none;stroke:var(--border);stroke-width:1}.readout .readout-value,.tcu-readout .readout-value{font-size:15px}.readout-meta{fill:var(--muted)!important;font-size:10px}.process-rail>line{stroke:var(--border-strong);stroke-width:1}.process-rail circle{fill:var(--surface);stroke:var(--phys);stroke-width:2}.process-rail text{fill:var(--muted);font-size:9px;text-anchor:middle;font-weight:650}[data-segment]{transition:filter .16s,opacity .16s}[data-segment].is-linked{filter:drop-shadow(0 0 5px var(--phys)) brightness(1.08)}.motion-paused .roll-spokes,.motion-paused .water-loop,.motion-paused .water-pulse,.motion-paused .roll-thermal{animation-play-state:paused}.motion-paused .flow-particle{display:none}@keyframes roll-spin{to{transform:rotate(360deg)}}@keyframes coolant-flow{to{stroke-dashoffset:-18}}@keyframes water-pulse{50%{r:5;opacity:.45}}@keyframes thermal-pulse{50%{stroke-width:5;opacity:.62}}@media(max-width:1199px){.machine-svg{padding:0}.process-rail text{font-size:12px}.readout .readout-value,.tcu-readout .readout-value{font-size:15px}}@media(prefers-reduced-motion:reduce){.roll-spokes,.water-loop,.water-pulse,.roll-thermal{animation:none!important}.flow-particle{display:none}}@media print{.roll-spokes,.water-loop,.water-pulse,.roll-thermal{animation:none}.flow-particle{display:none}.stage-surface{fill:#fff}.svg-grid{opacity:.2}}.workspace{grid-template-rows:minmax(300px,1fr) minmax(220px,34dvh)}.chart-slot{padding:7px 9px;background:var(--surface)}.chart-head{height:58px;display:grid;grid-template-columns:minmax(190px,.8fr) minmax(260px,1.2fr);align-items:start;gap:8px}.chart-head>div:first-child strong,.chart-head>div:first-child span{display:block}.chart-head>div:first-child span{margin-top:2px;color:var(--muted);font-size:10px;line-height:1.25}.chart-legend{display:flex;justify-content:flex-end;align-content:flex-start;flex-wrap:wrap;gap:3px 9px;color:var(--muted);font-size:9px;line-height:13px}.chart-legend span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.chart-legend span:before{content:"";display:inline-block;width:16px;height:3px;border-radius:2px;background:var(--text)}.chart-legend .legend-a:before{background:var(--sheet-face-a)}.chart-legend .legend-b:before{height:2px;background:repeating-linear-gradient(90deg,var(--sheet-face-b) 0 6px,transparent 6px 9px)}.chart-legend .legend-mass:before{height:4px;background:var(--text)}.chart-legend .legend-roll:before{background:var(--roll-surface)}.chart-legend .legend-tcu:before{height:2px;background:repeating-linear-gradient(90deg,var(--tcu) 0 3px,transparent 3px 6px)}.chart-legend .legend-sweep:before{height:7px;background:color-mix(in srgb,var(--phys) 18%,transparent);border:1px solid color-mix(in srgb,var(--phys) 40%,transparent)}.profile-chart{height:calc(100% - 58px);min-height:155px}.profile-chart .chart-axis,.profile-chart .aux-label{font-size:14px}.profile-chart .chart-axis-title{font-size:15px;font-weight:700}.zone-band{cursor:pointer}.zone-band rect{fill:color-mix(in srgb,var(--surface-2) 80%,transparent);stroke:var(--border);stroke-width:.6}.zone-band.zone-airgap rect{fill:color-mix(in srgb,var(--info-bg) 82%,transparent)}.zone-band.zone-nip rect{fill:color-mix(in srgb,var(--pha) 14%,var(--surface))}.zone-band.zone-primary rect{fill:color-mix(in srgb,var(--phys) 16%,var(--surface))}.zone-band.zone-downstream rect{fill:color-mix(in srgb,var(--ghost) 12%,var(--surface))}.zone-band text{fill:var(--text-2);font-size:12px;font-weight:750}.zone-band.is-linked rect{stroke:var(--phys);stroke-width:2}.mass-area{fill:url(#mass-fill)}.uncertainty-area{fill:color-mix(in srgb,var(--phys) 15%,transparent);stroke:none}.sheet-gradient-area{fill:color-mix(in srgb,var(--sheet-face-b) 7%,transparent);stroke:none}.profile-line{stroke-linejoin:round;stroke-linecap:round}.surface-a{stroke:var(--sheet-face-a);stroke-width:2.6}.surface-b{stroke:var(--sheet-face-b);stroke-width:2.4;stroke-dasharray:8 4}.core-line{stroke:var(--accent);stroke-width:2;stroke-dasharray:2 4}.mass-line{stroke:var(--text);stroke-width:3.6}.roll-temperature-line{stroke:var(--roll-surface);stroke-width:4;stroke-linecap:round}.tcu-temperature-line{stroke:var(--tcu);stroke-width:2.5;stroke-dasharray:3 4}.roll-temperature-label,.tcu-temperature-label{font-size:12px;font-weight:750;paint-order:stroke;stroke:var(--surface);stroke-width:3px}.roll-temperature-label{fill:var(--roll-surface)}.tcu-temperature-label{fill:var(--tcu)}.causal-marker{stroke:var(--accent);stroke-width:2;stroke-dasharray:4 3}.causal-marker-label{fill:var(--accent);font-size:12px;font-weight:800;paint-order:stroke;stroke:var(--surface);stroke-width:3px}.curl-caption{font-size:12px;paint-order:stroke;stroke:var(--surface);stroke-width:3px}.profile-chart .duty-title{font-size:14px;font-weight:800}.profile-chart .duty-label,.profile-chart .duty-number{font-size:12px}.duty-track{fill:var(--surface-2);stroke:var(--border);stroke-width:.6}.duty-value{fill:var(--phys)}.chart-crosshair{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:3 2}.chart-tooltip{filter:drop-shadow(0 5px 9px rgba(0,0,0,.18))}.chart-tooltip rect{fill:color-mix(in srgb,var(--surface) 96%,transparent);stroke:var(--border-strong)}.chart-tooltip text{fill:var(--text);font-size:12px}.chart-hit:focus-visible{outline:none;stroke:var(--focus);stroke-width:2}@media(max-width:1199px){.chart-head{height:76px;grid-template-columns:1fr}.chart-legend{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px}.profile-chart{height:calc(100% - 76px)}.profile-chart .chart-axis,.profile-chart .aux-label{font-size:15px}.zone-band text{font-size:14px}.roll-temperature-label,.tcu-temperature-label,.causal-marker-label,.curl-caption{font-size:14px}}@media(max-width:420px){.stage-toolbar{height:94px;display:grid;grid-template-columns:92px minmax(0,1fr);align-items:start;padding-top:8px}.stage-toolbar>div:first-child span{display:none}.stage-toolbar-meta{max-width:none}.stage-surface-key{display:grid;grid-template-columns:1fr;gap:1px}.stage-surface-rule{display:block}.machine-svg{height:calc(100% - 94px)}.chart-head{position:sticky;left:0;width:calc(100vw - 18px);height:82px;background:var(--surface);z-index:3}.profile-chart{height:calc(100% - 82px)}}@media print{.chart-head{height:38px}.chart-head>div:first-child span{display:none}.chart-legend{font-size:8pt}.profile-chart{height:calc(100% - 38px)}}.language-toggle{font-weight:800;color:var(--accent);letter-spacing:.02em}.mobile-language-toggle{position:absolute;top:10px;right:12px;width:44px;height:44px;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--accent);font-weight:800;cursor:pointer}@media(max-width:1199px){.mobile-band{padding-right:68px}.mobile-band>div:first-child{padding-right:4px}}@media(max-width:420px){.stage-root{height:auto;min-height:0}.machine-svg{height:77.78vw;min-height:0}}@media print{.language-toggle,.mobile-language-toggle{display:none!important}}.stage-root{display:flex;flex-direction:column}.stage-toolbar{height:auto;min-height:58px;flex:0 0 auto;flex-wrap:wrap;align-content:center;padding-block:8px}.stage-toolbar-meta,.stage-surface-key{flex-wrap:wrap}.stage-surface-key span{white-space:normal}.machine-svg{height:auto;flex:1 1 0}.layout-obstacle-layer,.stage-annotation{pointer-events:none}.layout-obstacle-proxy{fill:none;stroke:transparent;stroke-width:1}.annotation-label{font-size:10px;fill:var(--text-2);font-weight:700;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.annotation-leader{fill:none;stroke:var(--border-strong);stroke-width:1;vector-effect:non-scaling-stroke}:is(.annotation-water-zone,.annotation-water-caption) .annotation-label{fill:var(--tcu)}.annotation-causal .annotation-label{fill:var(--accent);font-weight:800}.annotation-ir .annotation-label{fill:var(--info)}:is(.annotation-process-rail,.annotation-dimension) .annotation-label{fill:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.chart-slot{display:flex;flex-direction:column}.chart-head{height:auto;min-height:58px;flex:0 0 auto}.profile-chart{height:auto;flex:1 1 0}.roll1-temperature-line{stroke-width:3;stroke-dasharray:7 4}.roll2-temperature-line{stroke-width:4}.die-setpoint-line{stroke:var(--tcu);stroke-width:1.5;stroke-dasharray:3 4}.melt-exit-marker{fill:var(--phys);stroke:var(--surface);stroke-width:2}.latent-sensitivity-line{stroke:var(--pha);stroke-width:2;stroke-dasharray:8 4}.die-setpoint-label,.melt-exit-label,.latent-sensitivity-label{font-size:11px;font-weight:750;paint-order:stroke;stroke:var(--surface);stroke-width:3px}.die-setpoint-label{fill:var(--tcu);font-weight:700}.melt-exit-label{fill:var(--phys)}.latent-sensitivity-label{fill:var(--pha)}.chart-legend .legend-setpoint:before{height:2px;background:repeating-linear-gradient(90deg,var(--tcu) 0 3px,transparent 3px 7px)}.chart-legend .legend-latent:before{height:2px;background:repeating-linear-gradient(90deg,var(--pha) 0 8px,transparent 8px 12px)}@media(max-width:1199px){.stage-toolbar{align-items:center}.annotation-label{font-size:11px}.chart-head{min-height:76px}.chart-legend{flex-wrap:wrap;overflow:visible}.die-setpoint-label,.melt-exit-label,.latent-sensitivity-label{font-size:12px}}@media(max-width:420px){.stage-toolbar{height:auto;min-height:94px;display:grid;grid-template-columns:92px minmax(0,1fr);align-items:start;padding-block:8px}.machine-svg{height:77.78vw;min-height:0;flex:none}.annotation-label{font-size:13px;stroke-width:3.5px}.chart-head{height:auto;min-height:82px}.profile-chart{height:auto;min-height:155px}.chart-legend{gap:2px 7px}}@media print{.stage-toolbar{min-height:38px}.machine-svg{flex:none;height:calc(100% - 38px)}.annotation-label{font-size:10px}.chart-head{height:auto;min-height:38px}.profile-chart{height:auto;flex:1 1 0}}.target-group{border-top:3px solid var(--accent)}.inverse-status{grid-column:1/-1;display:grid;gap:2px;padding:9px;border-left:3px solid var(--accent);background:var(--surface-2);font-size:11px}.inverse-status span{color:var(--muted)}.field input:disabled,.field select:disabled{opacity:.72;cursor:not-allowed;background:var(--surface-2)}.roll-stack-editor,.nip-stack-editor,.circuit-map{grid-column:1/-1}.roll-stack-editor,.nip-stack-editor{display:grid;gap:8px}.roll-config,.nip-config{border:1px solid var(--border);border-radius:var(--radius);padding:8px;background:var(--surface-2)}.roll-config>header,.nip-config>header,.roll-result-card>header{display:flex;align-items:center;justify-content:space-between;min-height:28px}.roll-config>header span,.nip-config>header span,.roll-result-card>header span{color:var(--muted);font-size:10px}.roll-config-grid,.nip-config-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.roll-solved{display:grid;align-content:center;min-height:64px;padding:5px 8px;border:1px dashed var(--accent);border-radius:var(--radius);background:var(--surface)}.roll-solved span{font-size:11px;color:var(--muted)}.roll-solved strong{color:var(--accent)}.circuit-map{display:flex;flex-wrap:wrap;gap:6px}.circuit-map span{min-height:32px;display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface)}.circuit-map b,.roll-circuit{color:var(--tcu)}.roll-circuit{font-size:8px;font-weight:800;paint-order:stroke;stroke:var(--surface);stroke-width:2px}.checkpoint{pointer-events:none}.checkpoint circle:first-child{fill:var(--surface);stroke:var(--accent);stroke-width:2}.checkpoint circle+circle{fill:var(--accent)}.checkpoint.is-target circle:first-child{stroke:var(--warn);stroke-width:4;filter:url(#soft-glow)}.nip-marker circle{fill:var(--surface);stroke:var(--pha);stroke-width:2}.checkpoint-marker.is-target,.stack-exit-marker.is-target{stroke:var(--warn);stroke-width:4}.stack-exit-marker{stroke:var(--phys)}.stack-exit-label{fill:var(--phys)}.zone-band.zone-nip-12 rect,.zone-band.zone-nip-23 rect{fill:color-mix(in srgb,var(--pha) 14%,var(--surface))}.zone-band.zone-wrap-r2 rect{fill:color-mix(in srgb,var(--phys) 16%,var(--surface))}.zone-band[class*="zone-wrap-r"] rect{stroke-color:var(--roll-surface)}.downstream-roll-temperature-line{stroke-width:3;stroke-dasharray:7 3}.result-subheading{margin:12px 0 6px;font-size:12px;color:var(--text-2)}.checkpoint-results,.roll-results,.circuit-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.checkpoint-card,.roll-result-card,.circuit-result-card{padding:9px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.checkpoint-card h4{display:flex;justify-content:space-between;gap:6px;margin:0 0 7px;color:var(--accent)}.checkpoint-card h4 span{font-size:9px;color:var(--err)}.checkpoint-card.is-diagnostic{border-color:var(--err);background:var(--err-bg)}.checkpoint-card dl,.roll-result-card dl,.circuit-result-card dl{display:grid;gap:4px;margin:0}.checkpoint-card dl>div,.roll-result-card dl>div,.circuit-result-card dl>div{display:flex;justify-content:space-between;gap:8px}.checkpoint-card dt,.checkpoint-card dd,.roll-result-card dt,.roll-result-card dd,.circuit-result-card dt,.circuit-result-card dd{margin:0;font-size:11px}.checkpoint-card dt,.roll-result-card dt,.circuit-result-card dt{color:var(--muted)}.circuit-result-card{border-left:3px solid var(--tcu)}.circuit-result-card header{display:flex;justify-content:space-between;gap:8px}.circuit-result-card header span,.circuit-result-card p{color:var(--muted);font-size:10px}.circuit-result-card p{margin:7px 0 0}@media(max-width:1199px){.roll-stack-editor{grid-template-columns:repeat(2,minmax(0,1fr))}.checkpoint-results,.roll-results{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.roll-stack-editor,.checkpoint-results,.roll-results,.circuit-results{grid-template-columns:1fr}.roll-config-grid,.nip-config-grid{grid-template-columns:1fr}.roll-config .field,.nip-config .field{min-height:64px}.circuit-map span{min-height:44px}}@media print{.roll-stack-group{display:none}.checkpoint-card,.roll-result-card{break-inside:avoid}}@media(max-width:420px){.stage-toolbar{grid-template-columns:1fr;min-height:112px}.stage-toolbar>div:last-child{max-width:none}.stage-toolbar-meta{justify-content:flex-start}.stage-surface-key{display:flex;justify-content:flex-start;flex-wrap:wrap}.stage-surface-rule{flex-basis:100%}.machine-svg{height:77.78vw}}.view-tabs{display:flex;padding:3px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2)}.view-tabs button{min-height:32px;padding:0 12px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-weight:750}.view-tabs button.active{background:var(--surface);color:var(--accent);box-shadow:0 1px 3px rgba(0,0,0,.12)}.equation-panel{display:none;min-width:0;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:7px;background:var(--surface);box-shadow:var(--shadow)}.formula-view .shell{grid-template-columns:minmax(0,1.15fr) minmax(410px,.85fr)}.formula-view .input-rail,.formula-view .summary-panel,.formula-view .chart-slot{display:none}.formula-view .workspace{display:block}.formula-view .stage-root{height:100%}.formula-view .equation-panel{display:block}[data-segment].is-equation-selected{filter:drop-shadow(0 0 7px var(--phys)) brightness(1.12)}.equation-header{padding:14px 16px 11px;border-bottom:1px solid var(--border)}.equation-header h2{margin:0;font-size:17px}.equation-contexts{display:flex;gap:5px;padding:9px 12px;overflow-x:auto;border-bottom:1px solid var(--border)}.equation-contexts button{flex:0 0 auto;min-height:34px;padding:0 10px;border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--text-2);font-size:11px}.equation-contexts button.active{border-color:var(--phys);background:var(--info-bg);color:var(--phys);font-weight:800}.equation-legend{display:flex;gap:5px 10px;flex-wrap:wrap;padding:8px 14px;color:var(--muted);font-size:9px}.equation-legend span:before{content:"";display:inline-block;width:9px;height:2px;margin-right:4px;vertical-align:middle;background:var(--border-strong)}.equation-legend .input:before{background:var(--accent)}.equation-legend .derived:before{background:var(--info)}.equation-legend .calculated:before{background:var(--phys)}.equation-legend .assumption:before{background:var(--pha)}.equation-legend .range:before{background:var(--tcu)}.equation-list{padding:0 14px 8px}.equation-card{padding:13px 0;border-top:1px solid var(--border)}.equation-card:first-child{border-top:0}.equation-math{margin:9px 0;padding:10px 11px;border-left:3px solid var(--phys);background:var(--surface-2);font:600 14px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-x:auto}.overline{text-decoration:overline}.equation-values{display:grid;grid-template-columns:1fr 1fr;gap:1px 14px}.equation-value{display:grid;grid-template-columns:minmax(50px,.55fr) minmax(92px,1fr);align-items:baseline;padding:6px 0;border-bottom:1px dotted var(--border)}.equation-value>code{grid-row:1/3;color:var(--text-2);font-weight:800}.equation-value>strong{text-align:right;color:var(--text);font-size:12px}.equation-value>strong small{font-weight:500;color:var(--muted)}.equation-value>span{grid-column:2;text-align:right;color:var(--muted);font-size:9px}.value-kind{font-style:normal;font-weight:750}.value-kind.input{color:var(--accent)}.value-kind.derived{color:var(--info)}.value-kind.calculated{color:var(--phys)}.value-kind.assumption{color:var(--pha)}.value-kind.range{color:var(--tcu)}@media(max-width:1199px){.mobile-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.equation-panel{border:0;border-radius:0;box-shadow:none;overflow:visible}.formula-view .workspace{min-height:0}.formula-view .stage-root{height:min(520px,62dvh);min-height:360px}.formula-view .equation-panel{min-height:auto}.formula-view .mobile-calc,.formula-view .alert-bar{display:none}.formula-view .shell>[data-mobile-panel].active{display:block}.equation-header{position:sticky;top:144px;z-index:8;background:var(--surface)}}@media(max-width:520px){.equation-values{grid-template-columns:1fr}.equation-header{padding-inline:12px}.equation-header>span{display:none}.equation-list{padding-inline:12px}.formula-view .stage-root{height:auto;min-height:0}.formula-view .machine-svg{height:77.78vw;min-height:0}.equation-math{font-size:12px}}@media(prefers-reduced-motion:reduce){[data-segment],.equation-contexts button{transition:none!important}}@media(max-width:1450px) and (min-width:1200px){.brand{min-width:180px}.brand span,.header-badge{display:none}#header-material{width:200px}#header-product{width:210px}.header-presets{min-width:0}}.roll-temperature-range-band{fill:color-mix(in srgb,var(--roll-surface) 13%,transparent)}.roll-temperature-range-edge{stroke:var(--roll-surface);stroke-width:1.5;stroke-dasharray:5 3}:root{--target-r2:#008a9a;--target-r3:#c46a00;--target-r4:#7357c7;--target-r5:#2b8a62;--target-r6:#bd4255}.roll-target-editor{grid-column:1/-1;display:grid;gap:7px}.roll-target-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:8px;border:1px solid var(--border);border-left:4px solid var(--target-color);border-radius:var(--radius);background:var(--surface-2)}.roll-target-enable{grid-column:1/-1;display:flex;align-items:center;min-height:44px;gap:7px;cursor:pointer}.roll-target-enable input{width:44px;height:44px;margin:0;accent-color:var(--target-color)}.roll-target-enable b{font-size:13px}.roll-target-metric{grid-column:1/-1;margin-top:-5px;color:var(--muted);font-size:10px}.roll-target-row .field:last-child{grid-column:1/-1}.recipe-checkpoint,.recipe-roll{border-left:4px solid var(--target-color)}.recipe-checkpoint h4{color:var(--target-color)}.recipe-table-wrap{overflow-x:auto}.recipe-stage-table{min-width:580px}.recipe-summary .result-tile.error{border-color:var(--err);background:var(--err-bg)}.roll-target-marker circle:first-of-type{fill:var(--surface);stroke:var(--target-color);stroke-width:3;filter:url(#soft-glow)}.roll-target-marker circle:nth-of-type(2){fill:var(--target-color)}.roll-target-marker text{fill:var(--target-color);font-size:9px;font-weight:850;paint-order:stroke;stroke:var(--surface);stroke-width:3px}.roll-target-marker.is-failed circle:first-of-type{stroke:var(--err)}.roll-target-marker.is-failed text{fill:var(--err)}.chart-legend .legend-target:before{height:7px;border:2px solid var(--target-r2);background:transparent}.roll-exit-target-line{stroke:var(--target-color);stroke-width:1.5;stroke-dasharray:3 3}.roll-exit-target-tick{stroke:var(--target-color);stroke-width:4;stroke-linecap:round}.roll-exit-achieved-dot{fill:var(--surface);stroke:var(--target-color);stroke-width:3}.roll-exit-achieved-dot.is-failed{stroke:var(--err)}.roll-exit-target-label{fill:var(--target-color);font-size:11px;font-weight:850;paint-order:stroke;stroke:var(--surface);stroke-width:3px}@media(max-width:640px){.roll-target-row{grid-template-columns:1fr}.roll-target-row .field,.roll-target-row .field:last-child,.roll-target-enable,.roll-target-metric{grid-column:1}.recipe-stage-table{min-width:540px}.roll-target-marker text{font-size:11px}}@media print{.roll-target-enable input{appearance:none;width:12px;height:12px;border:1px solid #555}.roll-target-row{break-inside:avoid}.roll-target-marker text,.roll-exit-target-label{stroke:#fff}}.formula-view .ir-probe{pointer-events:none}
