:root{--paper:#f3ecdf;--paper-2:#ebe2d0;--card:#fbf8f2;--ink:#1d2b3a;--ink-2:#4f5d6d;--ink-3:#8592a0;--line:#1d2b3a24;--line-2:#1d2b3a42;--water:#2a7fb8;--water-soft:#d7e9f4;--sun:#c99700;--violet:#6b4fd8;--violet-soft:#ebe6fb;--copper:#c4692c;--copper-soft:#f6e4d6;--leaf:#3f8f5a;--alarm:#c8352b;--alarm-soft:#f8dfdc;--ok:#2f7d4f;--radius:12px;--radius-s:8px;--shadow:0 1px 0 #1d2b3a0f, 0 8px 24px -12px #1d2b3a40;--font:"Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--top-h:64px;--strip-h:58px;--rail-w:78px;--panel-w:400px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--paper);height:100%;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--water)}:focus-visible{outline:2px solid var(--copper);outline-offset:2px}#app{grid-template-columns:var(--rail-w) minmax(0, 1fr) min(var(--panel-w), calc(100vw - var(--rail-w) - 320px));grid-template-rows:var(--top-h) minmax(0, 1fr) var(--strip-h);background:linear-gradient(var(--line) 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0 / 24px 24px, var(--paper);grid-template-areas:"top top top""rail view panel""strip strip strip";display:grid;position:fixed;inset:0}.topbar{border-bottom:1px solid var(--line-2);background:color-mix(in srgb, var(--paper) 92%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:5;grid-area:top;align-items:center;gap:18px;padding:0 16px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand h1{letter-spacing:.18em;margin:0;font-size:22px;font-weight:700;line-height:1}.brand p{letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap;margin:4px 0 0;font-size:11px}.topbar__right{align-items:center;gap:12px;margin-left:auto;display:flex}.segmented{border:1px solid var(--line-2);background:var(--card);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:500}.segmented button.is-active{background:var(--ink);color:var(--paper)}.segmented--tiny button{font-family:var(--mono);padding:3px 8px;font-size:11px}.scene-switch{margin-left:12px}.progress{border:1px solid var(--line-2);background:var(--card);border-radius:10px;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:inline-flex;position:relative;overflow:hidden}.progress b{font-family:var(--mono)}.progress i{height:3px;width:var(--p);background:var(--leaf);position:absolute;bottom:0;left:0}.rail{border-right:1px solid var(--line-2);background:color-mix(in srgb, var(--paper-2) 80%, transparent);z-index:4;flex-direction:column;grid-area:rail;gap:4px;padding:10px 8px;display:flex;overflow-y:auto}.rail__btn{color:var(--ink-2);letter-spacing:.02em;text-align:center;background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:9px 2px 7px;font-size:10.5px;line-height:1.15;display:flex}.rail__btn:hover{background:var(--card);color:var(--ink)}.rail__btn.is-active{background:var(--ink);color:var(--paper)}#viewport{grid-area:view;min-width:0;position:relative;overflow:hidden}#viewport canvas{touch-action:none;width:100%;height:100%;display:block}.label-layer{pointer-events:none;z-index:1;position:absolute;inset:0}.hotspot{pointer-events:auto;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex;transform:translate(-7px)}.hotspot__dot{background:var(--water);border-radius:50%;flex:none;width:14px;height:14px;animation:2.6s ease-in-out infinite pulse;box-shadow:0 0 0 3px #fbf8f2e6,0 0 0 6px #2a7fb82e}.hotspot__text{border:1px solid var(--line-2);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);white-space:nowrap;background:#fbf8f2f0;border-radius:6px;padding:3px 8px;font-size:10.5px;font-weight:600;box-shadow:0 4px 12px -6px #1d2b3a59}.hotspot:hover .hotspot__text,.hotspot.is-selected .hotspot__text{background:var(--ink);color:var(--paper)}.hotspot.is-selected .hotspot__dot,.hotspot--goto .hotspot__dot{background:var(--copper)}.hotspot--goto .hotspot__text:after{content:" →"}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #fbf8f2e6,0 0 0 6px #2a7fb82e}50%{box-shadow:0 0 0 3px #fbf8f2e6,0 0 0 10px #2a7fb80d}}.toolbar{border:1px solid var(--line-2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow);z-index:3;scrollbar-width:none;background:#fbf8f2eb;border-radius:14px;align-items:center;gap:6px;max-width:calc(100% - 24px);padding:6px;display:flex;position:absolute;bottom:14px;left:50%;overflow-x:auto;transform:translate(-50%)}.tool{white-space:nowrap;color:var(--ink-2);background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:6px;padding:7px 11px;font-size:12.5px;font-weight:500;display:inline-flex}.tool:hover{background:var(--paper);color:var(--ink)}.tool.is-on{background:var(--ink);color:var(--paper)}.tool--range{border:1px solid var(--line);color:var(--ink);gap:6px;padding:3px 8px}.tool--range input{width:110px;accent-color:var(--copper)}.tool__mini{color:var(--ink-3);background:0 0;border:0;padding:2px 4px;font-size:10px}.peek{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--card);width:min(320px,100% - 28px);box-shadow:var(--shadow);z-index:3;opacity:0;pointer-events:none;padding:12px 14px;transition:opacity .2s,transform .2s;position:absolute;top:14px;left:14px;transform:translateY(-8px)}.peek.is-visible{opacity:1;pointer-events:auto;transform:none}.peek p{color:var(--ink-2);margin:4px 0 8px;font-size:13px}.panel{border-left:1px solid var(--line-2);background:color-mix(in srgb, var(--card) 94%, transparent);z-index:4;flex-direction:column;grid-area:panel;min-height:0;display:flex;position:relative}.panel__grip{display:none}.panel__body{scrollbar-width:thin;flex:1;padding:18px 20px 28px;overflow-y:auto}.panel-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.panel-title{letter-spacing:-.01em;margin:6px 0;font-size:24px;line-height:1.15}.lead{color:var(--ink-2);margin:0 0 14px}.eyebrow{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:18px 0 8px;font-size:10.5px;font-weight:600}.eyebrow--accent{color:var(--copper);margin-top:0}.section-title{letter-spacing:.02em;align-items:center;gap:8px;margin:20px 0 8px;font-size:14px;display:flex}.section-title .count{font-family:var(--mono);background:var(--paper-2);border-radius:999px;padding:1px 7px;font-size:11px}.hint{color:var(--ink-3);font-size:12.5px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-2);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);background:var(--card);border-radius:999px;padding:2px 9px;font-size:10.5px;font-weight:600}.chip--hydraulic{color:var(--water);border-color:color-mix(in srgb, var(--water) 40%, transparent)}.chip--mechanical{color:var(--ink)}.chip--electrical{color:var(--copper);border-color:color-mix(in srgb, var(--copper) 40%, transparent)}.chip--site{color:var(--leaf);border-color:color-mix(in srgb, var(--leaf) 40%, transparent)}.tabs{border-bottom:1px solid var(--line-2);z-index:2;background:var(--card);flex-wrap:wrap;gap:0 2px;margin:4px 0 12px;display:flex;position:sticky;top:-18px}.tab{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 10px;font-size:11px;font-weight:600}.tab.is-active{color:var(--ink);border-bottom-color:var(--copper)}.tab-body p{margin:0 0 12px}.specs{border-top:1px solid var(--line);grid-template-columns:minmax(110px,40%) 1fr;margin:0;display:grid}.specs dt,.specs dd{border-bottom:1px solid var(--line);margin:0;padding:7px 0;font-size:13.5px}.specs dt{color:var(--ink-3);padding-right:10px}.specs dd{font-family:var(--mono);font-size:12.5px}.callout{border-radius:var(--radius-s);border:1px solid var(--line);background:var(--paper);align-items:flex-start;gap:8px;margin:10px 0;padding:10px 12px;font-size:13.5px;display:flex}.callout b{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;flex:none;padding-top:2px;font-size:10.5px}.callout--tip{background:var(--water-soft);border-color:color-mix(in srgb, var(--water) 25%, transparent)}.callout--warn{background:var(--alarm-soft);border-color:color-mix(in srgb, var(--alarm) 25%, transparent);color:#6d1e18}.callout--warn svg{flex:none;margin-top:2px}.callout--design{background:var(--violet-soft);border-color:color-mix(in srgb, var(--violet) 30%, transparent);flex-direction:column;gap:4px}.actions{flex-wrap:wrap;gap:8px;margin:14px 0 4px;display:flex}.btn{border:1px solid var(--line-2);background:var(--card);color:var(--ink);border-radius:10px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink)}.btn.is-on,.btn--primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn--ghost{background:0 0}.btn--small{padding:4px 9px;font-size:12px}.btn--danger{color:var(--alarm);border-color:color-mix(in srgb, var(--alarm) 45%, transparent)}.icon-btn{border:1px solid var(--line-2);background:var(--card);border-radius:10px;place-items:center;width:34px;height:34px;display:inline-grid}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn--accent{background:var(--copper);border-color:var(--copper);color:#fff}.part-chips{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.part-chip{border:1px solid var(--line-2);background:var(--card);border-radius:8px;padding:5px 10px;font-size:12.5px}.part-chip:hover{border-color:var(--ink)}.part-chip--hydraulic{box-shadow:inset 3px 0 0 var(--water)}.part-chip--electrical{box-shadow:inset 3px 0 0 var(--copper)}.part-chip--mechanical{box-shadow:inset 3px 0 0 var(--ink-2)}.part-chip--structure{box-shadow:inset 3px 0 0 var(--ink-3)}.part-chip--site{box-shadow:inset 3px 0 0 var(--leaf)}.counters{grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 12px;display:grid}.counter{border:1px solid var(--line-2);border-radius:var(--radius-s);background:var(--paper);padding:8px 12px}.counter span{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:10px;display:block}.counter b{font-family:var(--mono);color:var(--copper);font-size:22px}.counter small{font-family:var(--mono);color:var(--ink-3)}.step-card{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);padding:12px 14px}.step-card .eyebrow{color:var(--copper);margin-top:0}.step-card p{margin:0 0 10px}.meta-row{flex-wrap:wrap;gap:8px 16px;margin:8px 0;display:flex}.meta span{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:10px;display:block}.meta b{font-size:13px;font-weight:500}.transport{flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 6px;display:flex}.toggle{color:var(--ink-2);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.toggle input{accent-color:var(--copper);width:16px;height:16px}.timeline input[type=range]{width:100%;accent-color:var(--copper)}.ticks{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.tick{border:1px solid var(--line-2);background:var(--card);min-width:26px;font-family:var(--mono);color:var(--ink-3);border-radius:6px;padding:2px 0;font-size:10.5px}.tick.is-done{background:var(--paper-2);color:var(--ink-2)}.tick.is-active{background:var(--copper);border-color:var(--copper);color:#fff}.sim-top{gap:8px;display:flex}.sim-top select,.field select{border:1px solid var(--line-2);background:var(--card);border-radius:10px;flex:1;min-width:0;padding:7px 10px}.readouts{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:12px;display:grid}.readout{border:1px solid var(--line);background:var(--paper);border-radius:8px;min-width:0;padding:6px 8px}.readout span{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;display:block;overflow:hidden}.readout b{font-family:var(--mono);font-size:15px}.readout small{color:var(--ink-3);font-size:10px;font-weight:400}.losses .loss-bar{border-radius:5px;gap:2px;height:16px;display:flex;overflow:hidden}.losses .loss-bar span:first-child{border-radius:4px 0 0 4px}.loss-legend{color:var(--ink-2);grid-template-columns:1fr 1fr;gap:3px 10px;margin-top:8px;font-size:12px;display:grid}.loss-legend i{border-radius:2px;width:9px;height:9px;margin-right:5px;display:inline-block}.loss-legend b{font-family:var(--mono);color:var(--ink);font-weight:600}.sim-section{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--card);margin-top:14px}.sim-section summary{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;padding:9px 12px;font-size:11px;font-weight:600}.sim-grid{gap:10px;padding:2px 12px 12px;display:grid}.field{gap:3px;font-size:13px;display:grid}.field--row{align-items:flex-end;gap:10px;display:flex}.field--row>.field{flex:1}.field__label{color:var(--ink-2);justify-content:space-between;display:flex}.field output{font-family:var(--mono);color:var(--ink);font-size:12px}.field input[type=range]{width:100%;accent-color:var(--water)}.chart{margin-bottom:6px;position:relative}.chart__canvas{width:100%;display:block}.chart__legend{color:var(--ink-2);flex-wrap:wrap;gap:4px 12px;margin-bottom:4px;font-size:12px;display:flex}.chart__key i{vertical-align:middle;border-radius:2px;width:14px;height:2px;margin-right:5px;display:inline-block}.chart__tip{border:1px solid var(--line-2);background:var(--card);min-width:120px;box-shadow:var(--shadow);pointer-events:none;z-index:2;border-radius:8px;padding:6px 8px;font-size:11.5px;display:none;position:absolute;top:4px}.chart__tip-x{font-family:var(--mono);color:var(--ink-3);margin-bottom:2px}.chart__tip-row{align-items:center;gap:6px;display:flex}.chart__tip-row i{border-radius:2px;width:10px;height:2px}.chart__tip-row b{font-family:var(--mono)}.chart__tip-row span{color:var(--ink-3)}.lesson-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.lesson-card{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--card);text-align:left;align-items:center;gap:12px;width:100%;padding:10px 12px;display:flex}.lesson-card:hover{border-color:var(--ink)}.lesson-card.is-done{background:var(--paper)}.lesson-card.is-done svg{color:var(--leaf)}.lesson-card__num{font-family:var(--mono);color:var(--copper);font-size:18px;font-weight:600}.lesson-card__body{flex:1;display:grid}.lesson-card__body small{color:var(--ink-3);font-size:12.5px}.figures{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;margin:10px 0;display:grid}.figure{border:1px solid var(--line-2);border-radius:var(--radius-s);background:var(--paper);padding:8px 10px}.figure b{font-family:var(--mono);color:var(--water);font-size:17px;display:block}.figure span{color:var(--ink-2);font-size:11.5px}.formula{border-radius:var(--radius-s);background:var(--ink);color:#e9f1f7;font-family:var(--mono);white-space:pre-wrap;margin:12px 0;padding:12px 14px;font-size:13px}.quiz__item{margin-bottom:14px}.quiz__q{margin:0 0 6px;font-weight:500}.quiz__choices{gap:5px;display:grid}.quiz__choice{text-align:left;border:1px solid var(--line-2);background:var(--card);border-radius:8px;padding:7px 10px;font-size:13.5px}.quiz__choice.is-right{border-color:var(--ok);background:#e2f1e7}.quiz__choice.is-wrong{border-color:var(--alarm);background:var(--alarm-soft)}.quiz__feedback{color:var(--ink-2);margin:6px 0 0;font-size:13px}.search{border:1px solid var(--line-2);background:var(--card);border-radius:10px;width:100%;margin-bottom:8px;padding:8px 12px}.filters{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.filter{border:1px solid var(--line-2);color:var(--ink-2);background:0 0;border-radius:999px;padding:3px 9px;font-size:12px}.filter.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.catalogue{gap:4px;margin-top:8px;display:grid}.cat-row{border:1px solid var(--line);background:var(--card);text-align:left;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.cat-row:hover{border-color:var(--ink)}.cat-row>i{background:var(--ink-3);border-radius:2px;flex:none;align-self:stretch;width:4px}.cat-row--hydraulic>i{background:var(--water)}.cat-row--electrical>i{background:var(--copper)}.cat-row--mechanical>i{background:var(--ink-2)}.cat-row--site>i{background:var(--leaf)}.cat-row>span{flex:1;display:grid}.cat-row small{color:var(--ink-3);font-size:12px}.chapters,.links{padding-left:18px;font-size:13.5px}.chapters a{font-family:var(--mono)}.strip{border-top:1px solid var(--line-2);background:color-mix(in srgb, var(--paper) 94%, transparent);z-index:5;grid-area:strip;align-items:center;gap:14px;padding:0 14px;display:flex;overflow:hidden}.strip__clock{flex:none;align-items:center;gap:10px;display:flex}.clock b{font-family:var(--mono);font-size:16px;line-height:1.1;display:block}.clock small{color:var(--ink-3);font-size:11px}.strip__values{flex:none;gap:4px;display:flex}.live{border-left:1px solid var(--line);min-width:84px;padding:3px 10px}.live span{color:var(--ink-3);white-space:nowrap;font-size:10.5px;display:block}.live b{font-family:var(--mono);font-size:15px}.live small{color:var(--ink-3);font-size:10px;font-weight:400}.live--water b{color:var(--water)}.live--hydro span:before,.live--pv span:before,.live--load span:before,.live--dump span:before{content:"";vertical-align:middle;border-radius:2px;width:10px;height:2px;margin-right:5px;display:inline-block}.live--hydro span:before{background:var(--water)}.live--pv span:before{background:var(--sun)}.live--load span:before{background:var(--violet)}.live--dump span:before{background:var(--copper)}.strip__alarms{flex:0 auto;gap:6px;min-width:0;margin-left:auto;display:flex;overflow:hidden}.alarm{border:1px solid color-mix(in srgb, var(--sun) 60%, transparent);white-space:nowrap;color:#6a4f00;background:#fbf1cf;border-radius:999px;align-items:center;gap:5px;padding:4px 9px;font-size:12px;display:inline-flex}.alarm--severe{border-color:var(--alarm);background:var(--alarm-soft);color:#7a1d16;animation:1.2s steps(2,start) infinite blink}.alarm--ok{border-color:color-mix(in srgb, var(--ok) 45%, transparent);color:var(--ok);background:#e2f1e7}@keyframes blink{50%{opacity:.55}}@media (width<=1280px){:root{--panel-w:360px}.strip__values .live:nth-child(n+7){display:none}}@media (width<=1020px){.brand p,.progress span,.strip__values .live:nth-child(n+5){display:none}}@media (width<=760px){:root{--top-h:104px;--strip-h:52px}#app{grid-template-columns:minmax(0,1fr);grid-template-rows:var(--top-h) 56px minmax(0, 1fr) var(--strip-h);grid-template-areas:"top""rail""view""strip"}.topbar{flex-wrap:wrap;gap:8px;padding:8px 16px}.brand h1{font-size:18px}.scene-switch{order:3;justify-content:space-between;width:100%;margin:0}.scene-switch button{flex:1;padding:5px 6px}.topbar__right{gap:6px}.progress{display:none}.rail{border-right:0;border-bottom:1px solid var(--line-2);scrollbar-width:none;flex-direction:row;padding:4px 8px;overflow-x:auto}.rail__btn{flex-direction:row;flex:none;gap:6px;padding:6px 10px;font-size:12px}.rail__btn svg{width:17px;height:17px}.panel{left:0;right:0;bottom:var(--strip-h);border-left:0;border-top:1px solid var(--line-2);border-radius:16px 16px 0 0;height:46vh;transition:transform .25s;position:fixed;transform:translateY(calc(100% - 34px));box-shadow:0 -10px 30px -18px #1d2b3a80}body.sheet-open .panel{transform:none}.panel__grip{background:0 0;border:0;flex:none;height:34px;display:block;position:relative}.panel__grip:before{content:"";background:var(--line-2);border-radius:3px;width:44px;height:5px;margin-left:-22px;position:absolute;top:14px;left:50%}.panel__body{padding:0 16px 24px}.toolbar{flex-wrap:nowrap;justify-content:flex-start;width:auto;max-width:none;bottom:44px;left:16px;right:16px;overflow-x:auto;transform:none}.tool--range input{width:70px}.peek{top:10px}.strip{gap:8px;padding:0 10px}.strip__values .live:nth-child(n+3),.segmented--tiny,.strip__alarms .alarm:nth-child(n+2){display:none}.readouts{grid-template-columns:repeat(2,minmax(0,1fr))}}.sizing{overflow-x:auto}.sizing table{border-collapse:collapse;width:100%;font-size:12px}.sizing th{text-align:right;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line-2);white-space:nowrap;padding:4px 6px;font-size:9.5px;font-weight:600}.sizing td{text-align:right;font-family:var(--mono);border-bottom:1px solid var(--line);white-space:nowrap;padding:4px 6px}.sizing th:first-child,.sizing td:first-child,.sizing th:last-child,.sizing td:last-child{text-align:left}.sizing tbody tr{cursor:pointer}.sizing tbody tr:hover{background:var(--paper)}.sizing tr.is-off td{color:var(--ink-3)}.sizing tr.is-current{background:var(--water-soft);box-shadow:inset 3px 0 0 var(--water)}.sizing tr.is-best td b{color:var(--ok)}.sizing .star{color:var(--sun)}.part-chip.is-on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.toolbar{flex-wrap:wrap;justify-content:center;width:max-content;overflow:visible}.tool svg{flex:none}.brand h1{white-space:nowrap}@media (width<=1100px){.brand>div{display:none}}@media (width<=760px){.toolbar{flex-wrap:nowrap;justify-content:flex-start;width:auto;overflow-x:auto}}.panel-toggle{z-index:3;border:1px solid var(--line-2);width:34px;height:34px;box-shadow:var(--shadow);background:#fbf8f2eb;border-radius:10px;place-items:center;display:grid;position:absolute;top:12px;right:12px}body.panel-closed #app{grid-template-columns:var(--rail-w) minmax(0, 1fr) 0}body.panel-closed .panel{display:none}@media (width<=1100px){:root{--panel-w:310px}.tool{padding:6px 8px;font-size:12px}.tool--range input{width:80px}}@media (width<=760px){.panel-toggle{display:none}body.panel-closed .panel{display:flex}}.sizing td b{font-weight:700}.sizing .star{margin-left:3px}@media (width<=760px){.strip{background:var(--paper)}}@media (width<=900px){.progress{display:none}.scene-switch button{padding:6px 10px}}.dv{z-index:6;background:linear-gradient(var(--line) 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0 / 24px 24px, #e7decb;display:none;position:absolute;inset:0}body.mode-plans .dv{display:block}body.mode-plans .toolbar,body.mode-plans .peek,body.mode-plans .label-layer{display:none}.dv__stage{cursor:grab;touch-action:none;position:absolute;inset:0;overflow:hidden}.dv__stage:active{cursor:grabbing}.dv__svg{-webkit-user-select:none;user-select:none;position:absolute;box-shadow:0 10px 40px -18px #1d2b3a99}.dv__bar{border:1px solid var(--line-2);box-shadow:var(--shadow);background:#fbf8f2f2;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;max-width:calc(100% - 24px);padding:6px 8px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.dv__no{font-family:var(--mono);text-align:center;min-width:92px;font-size:12px}.dv__sep{background:var(--line-2);width:1px;height:22px}.dv__print{visibility:hidden;border:0;width:0;height:0;position:fixed}.sheet-group{margin-bottom:6px}.sheet-row{border:1px solid var(--line);background:var(--card);text-align:left;border-radius:8px;align-items:baseline;gap:10px;width:100%;margin-bottom:3px;padding:6px 10px;font-size:13px;display:flex}.sheet-row:hover{border-color:var(--ink)}.sheet-row.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.sheet-row__no{font-family:var(--mono);opacity:.75;white-space:nowrap;font-size:11px}.line-legend{color:var(--ink-2);gap:4px;margin:0;padding:0;font-size:12.5px;list-style:none;display:grid}.line-legend li{align-items:center;gap:8px;display:flex}.panel-toggle{z-index:7}.dv__bar{flex-wrap:nowrap;gap:4px}.dv__bar .icon-btn{width:30px;height:30px}.dv__no{white-space:nowrap}.panel__edge{z-index:5;cursor:col-resize;touch-action:none;width:10px;position:absolute;top:0;bottom:0;left:-5px}.panel__edge:before{content:"";background:0 0;width:2px;transition:background .15s;position:absolute;top:0;bottom:0;left:4px}.panel__edge:hover:before,body.panel-resizing .panel__edge:before{background:var(--copper)}.panel__wide{border:1px solid var(--line-2);background:var(--card);width:22px;height:46px;color:var(--ink-2);box-shadow:var(--shadow);cursor:pointer;border-radius:11px;place-items:center;margin-top:-23px;padding:0;display:grid;position:absolute;top:50%;left:-7px}.panel__wide:hover{color:var(--ink);border-color:var(--copper)}body.panel-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}@media (width>=761px){body.panel-wide:not(.panel-closed) #app{grid-template-columns:var(--rail-w) 0 minmax(0, 1fr)}body.panel-wide:not(.panel-closed) #viewport{visibility:hidden}body.panel-wide .panel__body{padding-inline:max(20px,50% - 430px)}body.panel-wide .panel__edge{cursor:default}}@media (width<=760px){.panel__edge{display:none}.tabs{top:0}}
