:root{--bg:#f3f4f6;--panel:#fff;--panel-2:#f8fafc;--line:#e2e8f0;--line-strong:#cbd5e1;--text:#0f172a;--muted:#64748b;--accent:#2563eb;--accent-text:#fff;--accent-soft:#dbeafe;--warn:#b45309;--warn-soft:#fef3c7;--danger:#dc2626;--danger-soft:#fee2e2;--ok:#15803d;--ok-soft:#dcfce7;--sel:#fde68a;--rel:#e0e7ff;--cur:#bbf7d0;--op:#fff7e6;--code-bg:#fbfcfd;--t-code:#1d4ed8;--t-ax:#0f766e;--t-par:#7c3aed;--t-tool:#c2410c;--t-n:#94a3b8;--t-com:#64748b;--sim-bg:#e5e9f0;--radius:10px;--mono:ui-monospace, "Cascadia Code", "JetBrains Mono", Consolas, monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0b1120;--panel:#111827;--panel-2:#0f172a;--line:#1f2937;--line-strong:#334155;--text:#e5e7eb;--muted:#94a3b8;--accent:#3b82f6;--accent-soft:#1e3a8a;--warn:#fbbf24;--warn-soft:#422006;--danger:#f87171;--danger-soft:#450a0a;--ok:#4ade80;--ok-soft:#052e16;--sel:#713f12;--rel:#1e1b4b;--cur:#14532d;--op:#2a1f0a;--code-bg:#0d1424;--t-code:#60a5fa;--t-ax:#5eead4;--t-par:#c4b5fd;--t-tool:#fdba74;--t-n:#475569;--t-com:#7c8aa0;--sim-bg:#0a0f1c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.45 var(--sans)}#app{flex-direction:column;height:100%;display:flex}main{flex-direction:column;flex:1;min-height:0;display:flex}main>[hidden],[hidden]{display:none!important}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid var(--line-strong);background:var(--panel);cursor:pointer;white-space:nowrap;border-radius:7px;padding:6px 12px}button:hover{border-color:var(--accent)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.code-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.primary:hover{filter:brightness(1.08)}button.danger{color:var(--danger)}button.link{color:var(--accent);text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}button.icon{padding:2px 8px}input[type=text],input[type=number],select,textarea{border:1px solid var(--line-strong);background:var(--panel-2);border-radius:7px;min-width:0;padding:5px 8px}input[type=number]{width:90px}textarea{font-family:var(--mono);resize:vertical;width:100%;font-size:13px}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.spacer{flex:1}label.inline{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}label.check{cursor:pointer}.app-head{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:24px;padding:10px 20px;display:flex}.brand{align-items:center;gap:12px;display:flex}.logo{color:#fff;width:36px;height:36px;font:700 18px var(--mono);background:linear-gradient(135deg,#2563eb,#0f766e);border-radius:9px;place-items:center;display:grid}.brand h1{margin:0;font-size:16px}.brand p{color:var(--muted);margin:0;font-size:12px}.tabs{gap:4px;display:flex}.tab{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:8px 14px;font-weight:600}.tab[aria-selected=true]{background:var(--accent-soft);color:var(--text)}.tab-convert{flex-direction:column;flex:1;gap:12px;min-height:0;padding:12px 16px 16px;display:flex}.toolbar,.batch-bar,.settings-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.file-label{font-family:var(--mono);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:280px;overflow:hidden}.dropzone{border:2px dashed var(--line-strong);border-radius:var(--radius);background:var(--panel);text-align:center;cursor:pointer;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.dropzone strong{color:var(--text);font-size:16px}.dropzone.big{flex:1;min-height:260px}.dropzone.small{flex-direction:row;gap:8px;padding:18px}.dropzone.over,body.dragging .dropzone{border-color:var(--accent);background:var(--accent-soft)}.drop-icon{color:var(--accent);font-size:40px}.workspace{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.5fr);gap:12px;min-height:0;display:grid}.code-pane,.preview-pane{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.pane-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.pane-head h2{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0;font-size:13px}.out-name{font-family:var(--mono);color:var(--accent);margin-left:auto;font-size:12px}.code-scroll{background:var(--code-bg);flex:1;position:relative;overflow:auto}.code-spacer{min-width:max-content;position:relative}.code-body{padding-top:4px;position:absolute;top:0;left:0;right:0}.code-row{height:20px;line-height:20px;font:12.5px/20px var(--mono);white-space:pre;cursor:pointer;padding-right:12px;display:flex}.code-row:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.code-row .ln{text-align:right;color:var(--t-n);-webkit-user-select:none;user-select:none;border-right:1px solid var(--line);box-sizing:content-box;flex:none;margin-right:8px;padding:0 10px 0 8px}.code-row.m-warn{background:var(--warn-soft)}.code-row.m-warn .ln{color:var(--warn);font-weight:700}.code-row.m-op{background:var(--op);box-shadow:inset 3px 0 #f59e0b}.code-row.m-related{background:var(--rel)}.code-row.m-selected{background:var(--sel)}.code-row.m-current{background:var(--cur)}.t-code{color:var(--t-code);font-weight:600}.t-ax{color:var(--t-ax)}.t-par{color:var(--t-par)}.t-tool{color:var(--t-tool);font-weight:600}.t-n{color:var(--t-n)}.t-com{color:var(--t-com);font-style:italic}.chips{flex-wrap:wrap;align-items:center;gap:4px;margin-left:auto;display:flex}.chip{border-radius:999px;padding:2px 9px;font-size:12px}label.chip{border:1px solid var(--line-strong);align-items:center;gap:4px;display:inline-flex}select.chip{padding:2px 6px}.canvas-wrap{background:var(--sim-bg);flex:1;min-height:200px;position:relative}.preview-canvas{position:absolute;inset:0}.preview-canvas canvas{display:block}.preview-canvas .empty{color:var(--muted);padding:20px}.sim-readout{font:12px/1.6 var(--mono);background:color-mix(in srgb, var(--panel) 85%, transparent);border:1px solid var(--line);pointer-events:none;border-radius:8px;padding:4px 10px;position:absolute;top:10px;left:10px}.sim-readout:empty{display:none}.sim-readout b{color:var(--muted);margin-right:2px;font-weight:600}.op-info{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--line);border-left:4px solid #f59e0b;border-radius:8px;gap:4px;max-width:calc(100% - 20px);padding:6px 10px;font-size:12.5px;display:grid;position:absolute;bottom:10px;left:10px}.op-title{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.op-num{color:#d97706;font-family:var(--mono);margin-right:8px}.op-meta{color:var(--muted);font-family:var(--mono);font-size:12px}.op-actions{flex-wrap:wrap;gap:4px;display:flex}select.op-select{max-width:220px}.sim-banner{background:var(--danger);color:#fff;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600;position:absolute;top:10px;right:10px}.player{border-top:1px solid var(--line);align-items:center;gap:6px;padding:8px 10px;display:flex}.pbtn{padding:3px 9px;font-size:13px}.play{background:var(--accent);border-color:var(--accent);width:40px;color:var(--accent-text);padding:4px 0;font-size:14px}.scrub{min-width:60px;accent-color:var(--accent);flex:1}.clock{font:12px var(--mono);color:var(--muted);white-space:nowrap}.preview-stats{color:var(--muted);padding:0 12px 8px;font-size:12px}details.tools{border-top:1px solid var(--line);padding:6px 12px 8px;font-size:12.5px}details.tools summary{cursor:pointer;color:var(--muted);font-weight:600}.tool-table{gap:8px;max-height:220px;padding-top:8px;display:grid;overflow:auto}.tool-table table{border-collapse:collapse;width:100%}.tool-table th,.tool-table td{text-align:left;border-bottom:1px solid var(--line);padding:3px 6px}.tool-table td.muted{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.tool-table input[type=number]{width:72px;padding:2px 6px}.tool-table select{padding:2px 6px}.stock-opts{flex-wrap:wrap;gap:16px;display:flex}.swatch{border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.tool-chips{flex-wrap:wrap;gap:2px;display:inline-flex}.chip.tool-chip{font:600 11.5px var(--mono);align-items:center;display:inline-flex}.chip.tool-chip[aria-pressed=true]{border-color:var(--line-strong);background:0 0}.chip.tool-chip.off{opacity:.45;text-decoration:line-through}.chip.tool-chip.off .swatch{outline:1px solid var(--muted);background:0 0!important}.tool-table tr.off td:not(:first-child){opacity:.5}body.sim-expanded .workspace{grid-template-columns:minmax(0,1fr) minmax(0,3fr)}body.sim-expanded .workspace>.code-pane:first-child{display:none}.warn-panel{background:var(--warn-soft);border:1px solid color-mix(in srgb, var(--warn) 40%, transparent);border-radius:var(--radius);flex:none;max-height:28vh;overflow:auto}.warn-panel.ok{background:var(--ok-soft);border-color:color-mix(in srgb, var(--ok) 40%, transparent)}.warn-head{text-align:left;width:100%;color:var(--warn);background:0 0;border:0;padding:8px 14px;font-weight:700}.warn-panel.ok .warn-head{color:var(--ok);cursor:default}.warn-list{gap:4px;margin:0;padding:0 14px 10px;list-style:none;display:grid}.warn-list li{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.warn-list li.danger .msg{color:var(--danger);font-weight:700}.warn-list .msg{font-weight:600}.warn-list .lines{flex-wrap:wrap;gap:8px;font-size:12.5px;display:flex}.batch,.settings{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow:auto}.batch-table{border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:100%;overflow:hidden}.batch-table th,.batch-table td{border-bottom:1px solid var(--line);text-align:left;padding:8px 12px}.batch-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--panel-2);font-size:12px}.batch-table .num{text-align:right;font-variant-numeric:tabular-nums}.batch-table td.empty{text-align:center;color:var(--muted);padding:24px}.batch-table input.prog{width:76px}.o{font-family:var(--mono);color:var(--muted);margin-right:2px}.badge{border-radius:999px;margin-left:6px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.badge.ok{background:var(--ok-soft);color:var(--ok);margin-left:0}.badge.warn{background:var(--warn-soft);color:var(--warn)}td>.badge.warn:first-child{margin-left:0}.batch-table td select{margin:0 4px}.setups-summary{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.setups-summary>p{margin:0;padding:0 14px 12px}.save-state{color:var(--warn);font-size:13px;font-weight:600}.settings-note{color:var(--muted);max-width:900px;margin:0}.settings-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));align-items:start;gap:12px;display:grid}fieldset.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);gap:10px;margin:0;padding:12px 14px 14px;display:grid}fieldset.card legend{padding:0 6px;font-weight:700}.field{gap:4px;display:grid}.field label{font-size:13px;font-weight:600}.field small{color:var(--muted);font-size:12px}.field.bool{grid-template-columns:auto 1fr;align-items:center;column-gap:8px}.field.bool small{grid-column:2}.field input[type=number]{width:120px}.reference{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow:auto}.ref-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ref-search{flex:320px;max-width:520px;padding:8px 12px}.chips.left{margin-left:0}.chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);font-weight:600}.ref-section h2{margin:8px 0;font-size:15px}.ref-scroll{overflow-x:auto}.ref-table{border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:100%;overflow:hidden}.ref-table th,.ref-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:7px 12px}.ref-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--panel-2);font-size:12px;position:sticky;top:0}.ref-table tbody tr:hover{background:color-mix(in srgb, var(--accent) 5%, transparent)}.ref-table td.code{font:600 13px var(--mono);color:var(--t-code);white-space:nowrap}.ref-table td.group{font-family:var(--mono);color:var(--muted)}.ref-table td.pages{white-space:nowrap}.ref-table td.pages .link+.link{margin-left:8px}.ref-table small.note{color:var(--muted);margin-top:2px;font-size:12px;display:block}.power{color:#d97706;margin-left:4px;font-size:11px}.badge[data-level=ok]{background:var(--ok-soft);color:var(--ok);margin-left:0}.badge[data-level=info]{background:var(--accent-soft);color:var(--text);margin-left:0}.badge[data-level=warn]{background:var(--warn-soft);color:var(--warn);margin-left:0}.badge[data-level=danger]{background:var(--danger-soft);color:var(--danger);margin-left:0}.ref-table .badge{white-space:normal}.manuals{flex:1;grid-template-columns:300px minmax(0,1fr);gap:12px;min-height:0;padding:12px 16px 16px;display:grid}.manual-list{flex-direction:column;gap:8px;display:flex;overflow:auto}.manual-card{text-align:left;border-radius:var(--radius);white-space:normal;align-items:flex-start;gap:12px;padding:12px;display:flex}.manual-card[aria-current=true]{border-color:var(--accent);background:var(--accent-soft)}.manual-icon{color:#fff;width:38px;height:46px;font:700 11px var(--mono);background:#dc2626;border-radius:6px;flex:none;place-items:center;display:grid}.manual-text{gap:2px;display:grid}.manual-text span{color:var(--muted);font-size:13px}.manual-text small{color:var(--muted);font-size:12px}.manual-pane{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;min-height:0;display:flex;overflow:hidden}.manual-actions{gap:6px;margin-left:auto;display:flex}a.button{border:1px solid var(--line-strong);background:var(--panel);color:inherit;white-space:nowrap;border-radius:7px;padding:4px 10px;font-size:13px;text-decoration:none}a.button:hover{border-color:var(--accent)}.manual-viewer{background:var(--sim-bg);flex:1;min-height:400px}.manual-viewer iframe{border:0;width:100%;height:100%;display:block}.manual-viewer .empty{color:var(--muted);padding:20px}.toasts{z-index:50;gap:8px;display:grid;position:fixed;bottom:16px;right:16px}.toast{background:var(--panel);border:1px solid var(--line-strong);border-left:4px solid var(--ok);border-radius:8px;padding:10px 14px;transition:opacity .3s,transform .3s;box-shadow:0 6px 24px #00000026}.toast[data-kind=warn]{border-left-color:var(--warn)}.toast[data-kind=error]{border-left-color:var(--danger)}.toast.out{opacity:0;transform:translateY(8px)}@media (width<=1200px){.workspace{grid-template-rows:minmax(260px,1fr) minmax(360px,1.2fr);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.preview-pane{grid-column:1/-1}body.sim-expanded .workspace{grid-template-rows:minmax(200px,.6fr) minmax(400px,1.5fr);grid-template-columns:1fr}}@media (width<=720px){.manuals{grid-template-rows:auto minmax(480px,1fr);grid-template-columns:1fr;overflow:auto}.app-head{padding:10px 16px}.tab-convert,.batch,.settings{padding:12px 16px}.workspace{grid-template-rows:300px 300px 460px;grid-template-columns:1fr;overflow:auto}.tab-convert{overflow:auto}.settings-grid{grid-template-columns:1fr}.batch-table{display:block;overflow-x:auto}}.workspace.learning .code-row [data-w]{cursor:help;border-radius:3px}.workspace.learning .code-row [data-w]:hover{background:var(--accent-soft);outline:1px solid var(--accent)}.learn-card{z-index:40;background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius);gap:8px;width:360px;max-width:calc(100vw - 16px);padding:12px 14px;font-size:13.5px;display:grid;position:fixed;box-shadow:0 10px 32px #0000002e}.learn-card header{align-items:center;gap:10px;display:flex}.learn-card header strong{flex:1}.learn-card p{margin:0}.learn-word{font:700 15px var(--mono);color:var(--t-code);background:var(--accent-soft);white-space:nowrap;border-radius:6px;padding:2px 8px}.learn-tags{flex-wrap:wrap;gap:6px;display:flex}.learn-tags .badge{margin-left:0}.learn-note{color:var(--warn);background:var(--warn-soft);border-radius:6px;padding:6px 8px}.learn-status,.learn-pages{color:var(--muted)}.learn-pages .link{margin-right:6px}select.examples{max-width:150px}.examples-list{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:6px 14px;margin-top:6px;display:flex}.workspace.view-only{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}@media (width<=1200px){.workspace.view-only{grid-template-columns:1fr}}.machine-state{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);gap:8px;padding:8px 12px 10px;display:grid}.machine-state.empty{color:var(--muted);margin:0;font-size:13px}.machine-state header{flex-wrap:wrap;align-items:baseline;gap:12px;font-size:13px;display:flex}.ms-line{font:12.5px var(--mono);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:50%;overflow:hidden}.ms-legend{color:var(--muted);align-items:center;gap:6px;margin-left:auto;font-size:12px;display:flex}.ms-key{border:1px solid var(--line-strong);border-radius:3px;width:10px;height:10px;display:inline-block}.ms-key.changed{background:var(--sel);border-color:#f59e0b}.ms-key.power{background:var(--panel-2);border-style:dashed}.ms-chips{flex-wrap:wrap;gap:6px;display:flex}.ms-chip{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;gap:1px;min-width:110px;padding:4px 9px;font-size:12.5px;display:grid}.ms-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:10.5px}.ms-value{white-space:nowrap}.ms-code{font:700 12.5px var(--mono);color:var(--t-code);cursor:help;background:0 0;border:0;margin-right:3px;padding:0}.ms-code:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.ms-chip.power{color:var(--muted);border-style:dashed}.ms-chip.on{border-color:var(--ok);background:var(--ok-soft)}.ms-chip.changed{background:var(--sel);border-color:#f59e0b;box-shadow:inset 0 0 0 1px #f59e0b}.ms-chip.alert{border-color:var(--danger);background:var(--danger-soft)}.batch-mill-bar{background:var(--accent-soft);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px 16px;padding:8px 12px;font-size:13px;display:flex}.batch-mill-bar input[type=number]{width:72px}.prog-chips{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.prog-chips .chip{font:600 11.5px var(--mono);padding:1px 7px}.limits-legend{flex-wrap:wrap;gap:14px;padding-top:0;display:flex}.limits-legend i{vertical-align:-1px;border-radius:2px;width:14px;height:10px;margin-right:5px;display:inline-block}.lim-plane{background:#f59e0b40;border:1px solid #f59e0b}.lim-plane.crossed{background:#ef444440;border-color:#ef4444}.lim-box{border:1px dashed #94a3b8}.edit-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}.editor{background:var(--code-bg);flex:1;min-height:0;position:relative;overflow:hidden}.editor-back{pointer-events:none;position:absolute;inset:0;overflow:hidden}.editor-back .code-body{min-width:max-content;padding-top:0}.editor-back .code-row{cursor:text}.editor-input{resize:none;width:100%;height:100%;font:12.5px/20px var(--mono);white-space:pre;tab-size:2;color:#0000;caret-color:var(--text,currentColor);background:0 0;border:0;border-radius:0;outline:none;margin:0;padding:4px 12px 4px 0;position:absolute;inset:0;overflow:auto}.editor-input::selection{background:color-mix(in srgb, var(--accent) 30%, transparent);color:#0000}.editor-input:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);outline:none}.modified{color:var(--warn)}
