.schematic-host{position:relative}.schematic-host .schematic{width:100%;height:auto;display:block;font-family:var(--sans)}.schematic-host.paused svg *{animation-play-state:paused!important}.schematic-host .paused-badge{position:absolute;top:.4rem;right:.4rem;font-size:.7rem;padding:.1rem .45rem;border-radius:999px;background:#0f1419cc;color:#8b98a5;border:1px solid #2a3542;pointer-events:none}.smooth{transition:x .5s ease,y .5s ease,width .5s ease,height .5s ease,cx .5s ease,cy .5s ease,r .5s ease,rx .5s ease,ry .5s ease,fill .6s ease,stroke .6s ease,opacity .4s ease,transform .5s ease}.sch-flow{animation:sch-dash linear infinite}@keyframes sch-dash{to{stroke-dashoffset:-40}}.sch-rise{animation:sch-rise linear infinite}@keyframes sch-rise{0%{transform:translateY(0);opacity:.9}to{transform:translateY(-60px);opacity:0}}.sch-fall{animation:sch-fall linear infinite}@keyframes sch-fall{0%{transform:translateY(-8px);opacity:0}25%{opacity:1}to{transform:translateY(26px);opacity:0}}.sch-spin{animation:sch-spin linear infinite}@keyframes sch-spin{to{transform:rotate(360deg)}}.sch-stir{animation:sch-stir ease-in-out infinite}@keyframes sch-stir{0%,to{transform:scaleX(1)}50%{transform:scaleX(-1)}}.sch-wave{animation:sch-wave 2.4s ease-in-out infinite}@keyframes sch-wave{0%,to{transform:translate(0)}50%{transform:translate(-14px)}}.sch-shimmer{animation:sch-shimmer ease-in-out infinite alternate}@keyframes sch-shimmer{0%{opacity:.25;transform:translateY(0)}to{opacity:.85;transform:translateY(-6px)}}.sch-blink{animation:sch-blink .9s ease-in-out infinite}@keyframes sch-blink{0%,to{opacity:1}50%{opacity:.25}}.sch-pulse{animation:sch-pulse 1.8s ease-in-out infinite}@keyframes sch-pulse{0%,to{opacity:.35}50%{opacity:.9}}.sch-belt{animation:sch-belt linear infinite}@keyframes sch-belt{0%{transform:translate(0)}to{transform:translate(28px)}}.sch-flame{animation:sch-flame .5s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 100%}@keyframes sch-flame{0%{transform:scaleY(.85) scaleX(1.05);opacity:.8}to{transform:scaleY(1.1) scaleX(.95);opacity:1}}@media(prefers-reduced-motion:reduce){.schematic-host svg *{animation:none!important}}:root{--bg: #0f1419;--panel: #171e26;--panel-2: #1e2731;--border: #2a3542;--text: #e6edf3;--muted: #8b98a5;--accent: #3fb6ff;--hot: #ff6b4a;--cold: #4aa3ff;--ok: #3ecf8e;--warn: #ffb020;--danger: #ff5d5d;--radius: 10px;--mono: "JetBrains Mono", "Consolas", ui-monospace, monospace;--sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#app{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.45}a{color:var(--accent);text-decoration:none}h1,h2,h3{margin:0 0 .5rem;font-weight:600}h1{font-size:1.4rem}h2{font-size:1.1rem}h3{font-size:.95rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}small,.muted{color:var(--muted)}.topbar{display:flex;align-items:center;gap:1.5rem;padding:.5rem 1rem;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:baseline;gap:.5rem;color:var(--text);font-weight:700;font-size:1.1rem}.brand .logo{font-size:1.3rem}.brand small{font-weight:400;font-size:.75rem}.nav{display:flex;gap:1rem}.nav a{color:var(--muted);padding:.25rem 0}.nav a.router-link-active{color:var(--text);border-bottom:2px solid var(--accent)}.topbar .right{margin-left:auto;display:flex;align-items:center;gap:.75rem}.topbar .user{color:var(--muted);font-size:.85rem}.page{padding:1rem;max-width:1500px;margin:0 auto}.btn{background:var(--accent);color:#06111a;border:none;border-radius:8px;padding:.45rem .9rem;font-weight:600;cursor:pointer;font-size:.9rem}.btn:hover{filter:brightness(1.1)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.btn.danger{background:var(--danger);color:#fff}.btn.ok{background:var(--ok)}.btn.sm{padding:.25rem .6rem;font-size:.8rem}input,select,textarea{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.4rem .6rem;font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}select.locale{padding:.25rem .4rem;font-size:.85rem}input[type=range]{padding:0;accent-color:var(--accent)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.grid{display:grid;gap:1rem}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}table.tbl{width:100%;border-collapse:collapse;font-size:.85rem}.tbl th,.tbl td{padding:.4rem .5rem;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}.tbl th:first-child,.tbl td:first-child{text-align:left}.tbl th{color:var(--muted);font-weight:500}.tbl td.num{font-family:var(--mono)}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600}.badge.ok{background:#3ecf8e26;color:var(--ok)}.badge.warn{background:#ffb02026;color:var(--warn)}.badge.danger{background:#ff5d5d26;color:var(--danger)}.badge.info{background:#3fb6ff26;color:var(--accent)}.alert{padding:.6rem .9rem;border-radius:8px;border:1px solid}.alert.warn{border-color:var(--warn);background:#ffb02014}.alert.danger{border-color:var(--danger);background:#ff5d5d14}.alert.info{border-color:var(--accent);background:#3fb6ff14}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-template-rows:auto auto;gap:1rem}.workspace .schematic-card{grid-column:1}.workspace .controls-card{grid-column:2;grid-row:1 / span 2}.workspace .bottom{grid-column:1}@media(max-width:1000px){.workspace{grid-template-columns:1fr}.workspace .controls-card{grid-column:1;grid-row:auto}}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:.75rem}.tabs button{background:none;border:none;color:var(--muted);padding:.5rem .9rem;cursor:pointer;font:inherit;border-bottom:2px solid transparent}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.readout{font-family:var(--mono);font-size:1.15rem;font-weight:600}.readout small{font-size:.7rem;font-weight:400;margin-left:.2rem}.control{padding:.6rem 0;border-bottom:1px solid var(--border)}.control .label{display:flex;justify-content:space-between;margin-bottom:.25rem}.control input[type=range]{width:100%}.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:.4rem;background:var(--warn)}.status-dot.on{background:var(--ok);box-shadow:0 0 8px var(--ok)}.theory :is(p,li){color:var(--text)}.theory .math{font-family:"Cambria Math",Times New Roman,serif;font-style:italic;color:#ffd580;background:#ffffff0a;padding:.05rem .3rem;border-radius:4px}.theory .math.block{display:block;text-align:center;padding:.5rem;margin:.5rem 0;font-size:1.05rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}@media(max-width:800px){.form-grid{grid-template-columns:1fr}}.field label{display:block;color:var(--muted);font-size:.8rem;margin-bottom:.2rem}.field input,.field select,.field textarea{width:100%}
