:root{--page: #eef1f5;--card: #ffffff;--well: #f7f9fb;--field: #eef1f5;--field-hover: #e0e4eb;--hover: #f2f4f7;--ink: #14181f;--ink-deep: #101318;--text: #2d3443;--text-soft: #525f7a;--text-meta: #8592ad;--text-faint: #a3adc2;--text-ghost: #c2c9d6;--text-icon: #7585a3;--mint: #3df599;--mint-soft: #6ef7b3;--green: #12a163;--green-deep: #0d7d4c;--red: #f5636b;--yellow: #ffd966;--font-core: "Torus", "Nunito", sans-serif;--font-icon: "Material Symbols Rounded";--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;--radius-card: 16px;--radius: 8px;--shadow-card: 0 2px 4px rgba(16, 19, 24, .08);--shadow-pop: 0 8px 24px rgba(16, 19, 24, .16);--ease: all .1s ease-in-out}@font-face{font-family:Torus;font-weight:400;src:url(/fonts/torus-400.otf) format("opentype");font-display:swap}@font-face{font-family:Torus;font-weight:600;src:url(/fonts/torus-600.otf) format("opentype");font-display:swap}@font-face{font-family:Torus;font-weight:700;src:url(/fonts/torus-700.otf) format("opentype");font-display:swap}@font-face{font-family:Torus;font-weight:800;src:url(/fonts/torus-800.otf) format("opentype");font-display:swap}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;background:var(--page);height:100%}body{font-family:var(--font-core);color:var(--text);-webkit-font-smoothing:antialiased;font-size:15px;overflow:hidden}a{color:var(--green);text-decoration:none}a:hover{color:var(--green-deep)}select,textarea,button,input{font-family:var(--font-core)}textarea,input{outline:none}button{border:none;background:none;padding:0;cursor:pointer;color:inherit;font-size:inherit}.icon{font-family:var(--font-icon);font-weight:300;font-variation-settings:"FILL" 0;line-height:1;user-select:none;-webkit-font-smoothing:antialiased;display:inline-block}.app{height:100dvh;overflow:hidden}.main{height:100%;padding:8px;display:flex;flex-direction:column;gap:8px;min-width:0}.topbar{flex:none;height:52px;background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);display:flex;align-items:center;gap:16px;padding:0 12px 0 16px;min-width:0}.topbar .spacer{flex:1}.wordmark{font-size:22px;font-weight:600;line-height:1;letter-spacing:-.5px;white-space:nowrap;flex:none}.wordmark .pan{color:var(--ink)}.wordmark .doc{color:var(--green)}.topnav{display:flex;gap:4px;flex:none}.topnav-item{height:36px;padding:0 14px;border-radius:var(--radius);display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--text-meta);transition:var(--ease);position:relative}.topnav-item:hover{background:var(--hover)}.topnav-item.active{background:var(--hover);color:var(--green)}.topnav-item .icon{font-size:20px}.topnav-item .badge{min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--mint);color:var(--ink);font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}.command-chip{display:flex;align-items:center;gap:8px;background:var(--ink);border-radius:16px;padding:7px 14px;max-width:640px;min-width:0;overflow:hidden}.command-chip .icon{font-size:18px;color:var(--mint);flex:none}.command-chip code{font-family:var(--font-mono);font-size:13px;color:#e0e4eb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-button{width:32px;height:32px;border-radius:var(--radius);background:var(--hover);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--ease);flex:none}.icon-button:hover{background:var(--field-hover)}.icon-button .icon{font-size:20px;color:var(--text-soft)}@media(max-width:1000px){.command-chip,.topbar .copy-command{display:none}}.workspace{flex:1;min-height:0;background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:8px;display:flex;flex-direction:column;gap:8px}.controls{flex:none;background:var(--well);border-radius:var(--radius);padding:12px 16px;display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.controls .group{display:flex;align-items:flex-end;gap:8px}.controls .spacer{flex:1}.labeled{display:flex;flex-direction:column;gap:4px;min-width:0}.labeled .lab{font-size:14px;font-weight:600;color:var(--text-soft)}.picker-button{position:relative;height:36px;padding:0 34px 0 12px;border:none;border-radius:var(--radius);background:var(--field);font-size:15px;font-weight:600;color:var(--ink);cursor:pointer;min-width:170px;display:flex;align-items:center;transition:var(--ease);white-space:nowrap}.picker-button:hover{background:var(--field-hover)}.picker-button .value{overflow:hidden;text-overflow:ellipsis}.picker-button>.icon{font-size:20px;color:var(--text-icon);position:absolute;right:8px;top:8px;pointer-events:none}.picker-button.quiet{font-weight:400;color:var(--text);min-width:190px}.picker-button .kbd-hint{margin-left:8px;font-size:10px;font-weight:700;color:var(--text-faint);background:var(--card);border-radius:4px;padding:2px 5px;letter-spacing:.4px}.dropdown{position:relative;min-width:0}.dropdown-backdrop{position:fixed;inset:0;z-index:20}.dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;z-index:21;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:4px;max-height:280px;overflow:auto}.dropdown-menu.up{top:auto;bottom:calc(100% + 4px)}.dropdown-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;font-size:14px;color:var(--text);cursor:pointer;white-space:nowrap;transition:var(--ease)}.dropdown-item:hover{background:var(--hover)}.dropdown-item.active{color:var(--green);font-weight:700}.dropdown-item .check{margin-left:auto;font-size:16px;color:var(--green)}.square-button{width:36px;height:36px;border-radius:var(--radius);background:var(--field);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--ease);flex:none}.square-button:hover{background:var(--field-hover)}.square-button .icon{font-size:20px;color:var(--text-soft)}.chip-button{height:36px;padding:0 14px;border-radius:var(--radius);background:var(--field);display:flex;align-items:center;gap:6px;cursor:pointer;transition:var(--ease)}.chip-button:hover{background:var(--field-hover)}.chip-button .icon{font-size:20px;color:var(--text-soft)}.chip-button span:not(.icon){font-size:14px;font-weight:600;color:var(--text-soft)}.convert-button{height:36px;padding:0 18px;border-radius:var(--radius);background:var(--mint);display:flex;align-items:center;gap:6px;cursor:pointer;transition:var(--ease);box-shadow:0 2px 4px #3df59959}.convert-button:hover{background:var(--mint-soft)}.convert-button:disabled{opacity:.55;cursor:default}.convert-button .icon{font-size:20px;color:var(--ink)}.convert-button span:not(.icon){font-size:15px;font-weight:700;color:var(--ink);white-space:nowrap}.grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 296px;gap:8px;align-items:stretch}.panel{background:var(--well);border-radius:var(--radius);padding:12px 16px 16px;display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0}.panel-head{flex:none;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.panel-title{display:flex;flex-direction:column;gap:4px}.panel-title .txt{font-size:16px;font-weight:600;color:var(--ink);white-space:nowrap}.panel-title .underline{height:2px;background:var(--mint);border-radius:2px}.panel-head .spacer{flex:1}.panel-head .meta{font-size:13px;color:var(--text-meta);white-space:nowrap}.mini-chip{height:26px;padding:0 10px;border-radius:var(--radius);background:var(--field);display:flex;align-items:center;gap:4px;cursor:pointer;transition:var(--ease)}.mini-chip:hover{background:var(--field-hover)}.mini-chip .icon{font-size:18px;color:var(--text-soft)}.mini-chip span:not(.icon){font-size:13px;font-weight:600;color:var(--text-soft)}.mini-icon-button{width:26px;height:26px;border-radius:var(--radius);background:var(--field);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--ease)}.mini-icon-button:hover{background:var(--field-hover)}.mini-icon-button .icon{font-size:18px;color:var(--text-soft)}.editor{flex:1;min-height:0;width:100%;resize:none;border:none;border-radius:var(--radius);background:var(--card);box-shadow:inset 0 0 0 2px var(--field);padding:14px;font-family:var(--font-mono);font-size:13.5px;line-height:1.6;color:var(--ink)}.editor.dragover{box-shadow:inset 0 0 0 2px var(--mint)}.file-slab{flex:1;min-height:0;border-radius:var(--radius);background:var(--card);box-shadow:inset 0 0 0 2px var(--field);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.file-slab .icon{font-size:40px;color:var(--green)}.file-slab .name{font-size:15px;font-weight:700;color:var(--ink)}.file-slab .meta{font-size:13px;color:var(--text-meta)}.tabs{display:flex;background:var(--field);border-radius:16px;padding:2px;gap:2px}.tab{height:26px;padding:0 12px;border-radius:14px;display:flex;align-items:center;font-size:13px;font-weight:600;cursor:pointer;transition:var(--ease);white-space:nowrap;background:transparent;color:var(--text-icon)}.tab.active{background:var(--mint);color:var(--ink)}.output-body{flex:1;min-height:0;overflow:auto;border-radius:var(--radius);background:var(--card);box-shadow:inset 0 0 0 2px var(--field);padding:18px 20px}.output-body.framed{padding:0;overflow:hidden}.output-body iframe{width:100%;height:100%;border:none;display:block;background:var(--card)}.output-raw{margin:0;font-family:var(--font-mono);font-size:13px;line-height:1.6;color:var(--text);white-space:pre-wrap;word-break:break-word}.empty-state{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:12px}.empty-state .icon{font-size:36px;color:var(--text-ghost)}.empty-state .primary{font-size:15px;color:var(--text-meta)}.empty-state .secondary{font-size:13px;color:var(--text-faint)}.empty-state .danger{color:var(--red)}.empty-state .chip-button.suggestion{margin-top:8px;background:var(--mint)}.empty-state .chip-button.suggestion:hover{background:var(--mint-soft)}.empty-state .chip-button.suggestion .icon,.empty-state .chip-button.suggestion span:not(.icon){color:var(--ink)}.warnings{flex:none;max-height:120px;overflow:auto;border-radius:var(--radius);background:#fff8e6;padding:10px 12px;font-size:13px;color:#8a6d1a;display:flex;flex-direction:column;gap:4px}.rail{display:flex;flex-direction:column;gap:8px;min-height:0;overflow-y:auto}.rail .panel{flex:none}.toggle-row{display:flex;align-items:center;gap:12px;height:32px;cursor:pointer}.toggle-track{width:34px;height:20px;border-radius:16px;flex:none;display:flex;align-items:center;padding:2px;transition:var(--ease);background:#dfe4ec}.toggle-track.on{background:var(--mint)}.toggle-knob{width:16px;height:16px;border-radius:8px;background:var(--card);box-shadow:0 1px 2px #0003;transition:var(--ease);margin-left:0}.toggle-track.on .toggle-knob{margin-left:14px}.toggle-row .lab{font-size:14px;font-weight:600;color:var(--text-icon)}.toggle-row.on .lab{color:var(--ink)}.rail .picker-button{width:100%;min-width:0;font-weight:400;font-size:14px}.dropzone{border-radius:var(--radius);background:var(--field);padding:14px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:var(--ease);text-align:center}.dropzone:hover,.dropzone.dragover{background:var(--field-hover)}.dropzone .icon{font-size:24px;color:var(--text-icon)}.dropzone .primary{font-size:14px;font-weight:600;color:var(--text-soft)}.dropzone .secondary{font-size:13px;color:var(--text-meta)}.support-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius);background:var(--field)}.support-row .icon.ok{font-size:18px;color:var(--green)}.support-row .name{font-size:13px;font-weight:600;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.support-row .size{font-size:13px;color:var(--text-meta)}.support-row .remove{display:flex;align-items:center;color:var(--text-faint)}.support-row .remove:hover{color:var(--red)}.support-row .remove .icon{font-size:16px}.footer{flex:none;display:flex;align-items:center;gap:8px;padding:0 16px 2px;font-size:13px;line-height:1.5;color:var(--text-meta);flex-wrap:wrap;min-height:22px}.footer .spacer{flex:1}.footer button{color:var(--green);font-size:13px}.footer button:hover{color:var(--green-deep)}.engine-strip.error{flex:none;display:flex;align-items:center;gap:10px;background:var(--ink);border-radius:var(--radius);padding:10px 14px;font-size:13px;color:#f5a6ab}.engine-strip.error .icon{font-size:18px;color:var(--red)}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1.1s linear infinite}.recent-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.history-row{flex:none;display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:var(--radius);background:var(--card);box-shadow:inset 0 0 0 2px var(--field);cursor:pointer;transition:var(--ease)}.history-row:hover{box-shadow:inset 0 0 0 2px var(--mint)}.history-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.history-head .route{font-size:14px;font-weight:700;color:var(--ink);white-space:nowrap}.history-head .route .arrow{color:var(--green);font-weight:400}.history-head .when{margin-left:auto;font-size:12.5px;color:var(--text-faint);white-space:nowrap}.history-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.history-col{min-width:0;background:var(--well);border-radius:var(--radius);padding:8px 10px;display:flex;flex-direction:column;gap:4px}.history-col .col-label{font-size:11px;font-weight:700;color:var(--text-meta);text-transform:lowercase;letter-spacing:.3px}.history-col pre{margin:0;font-family:var(--font-mono);font-size:12px;line-height:1.5;color:var(--text-soft);white-space:pre-wrap;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}@media(max-width:860px){.history-cols{grid-template-columns:minmax(0,1fr)}}.palette-overlay{position:fixed;inset:0;z-index:50;background:#1013188c;display:flex;align-items:flex-start;justify-content:center;padding:max(8vh,24px) 16px 24px;backdrop-filter:blur(2px)}.palette{width:100%;max-width:620px;max-height:min(72vh,640px);background:var(--card);border-radius:var(--radius-card);box-shadow:0 24px 64px #10131866;display:flex;flex-direction:column;overflow:hidden}.palette-head{flex:none;display:flex;align-items:center;gap:8px;padding:12px 14px 10px;border-bottom:2px solid var(--field)}.palette-head .icon.lead{font-size:20px;color:var(--green)}.palette-input{flex:1;border:none;background:transparent;font-size:16px;font-weight:600;color:var(--ink);min-width:0}.palette-input::placeholder{color:var(--text-faint);font-weight:400}.scope-chip{flex:none;display:flex;align-items:center;gap:4px;height:26px;padding:0 8px 0 12px;border-radius:14px;background:var(--mint);color:var(--ink);font-size:13px;font-weight:700;white-space:nowrap}.scope-chip .icon{font-size:15px}.palette-list{flex:1;min-height:0;overflow-y:auto;padding:6px}.palette-item{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:var(--radius);cursor:pointer}.palette-item .icon.lead{font-size:18px;color:var(--text-icon);flex:none}.palette-item .group{font-size:14px;font-weight:600;color:var(--text-soft);white-space:nowrap}.palette-item .icon.chevron{font-size:16px;color:var(--text-ghost);flex:none}.palette-item .icon.check{font-size:16px;color:var(--green);flex:none}.palette-item .val{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap}.palette-item .val.on{color:var(--green)}.palette-item .desc{flex:1;text-align:right;font-size:13px;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-item.highlighted{background:var(--hover)}.palette-item.highlighted .val{color:var(--green)}.palette-empty{padding:28px 0;text-align:center;color:var(--text-faint);font-size:14px}.palette-foot{flex:none;display:flex;align-items:center;gap:14px;padding:8px 14px;border-top:2px solid var(--field);font-size:12px;color:var(--text-faint);flex-wrap:wrap}.palette-foot .key{display:inline-block;background:var(--field);border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700;color:var(--text-soft);margin-right:4px}.import-modal{width:100%;max-width:520px;background:var(--card);border-radius:var(--radius-card);box-shadow:0 24px 64px #10131866;display:flex;flex-direction:column;gap:12px;padding:14px}.import-head{display:flex;align-items:center;gap:8px}.import-head .icon{font-size:20px;color:var(--green)}.import-head .title{font-size:16px;font-weight:600;color:var(--ink)}.import-head .spacer{flex:1}.import-drop{border-radius:var(--radius);background:var(--field);padding:44px 20px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;transition:var(--ease);text-align:center}.import-drop:hover,.import-drop.dragover{background:var(--field-hover);box-shadow:inset 0 0 0 2px var(--mint)}.import-drop .icon{font-size:40px;color:var(--text-icon)}.import-drop.dragover .icon{color:var(--green)}.import-drop .primary{font-size:16px;font-weight:700;color:var(--ink)}.import-drop .secondary{font-size:13px;color:var(--text-meta)}.import-foot{display:flex;flex-direction:column;gap:4px;font-size:12.5px;line-height:1.5;color:var(--text-meta)}.import-foot b{color:var(--text-soft)}.file-slab.list{justify-content:flex-start;padding:14px;gap:10px;overflow-y:auto}.file-list{width:100%;display:flex;flex-direction:column;gap:6px}.file-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius);background:var(--well);width:100%}.file-row .icon{font-size:18px;color:var(--green)}.file-row .name{flex:1;font-size:13.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row .meta{font-size:12.5px;color:var(--text-meta)}.file-row .remove{display:flex;align-items:center;color:var(--text-faint)}.file-row .remove:hover{color:var(--red)}.file-row .remove .icon{font-size:16px;color:inherit}.slab-actions{display:flex;gap:8px}@media(max-width:1180px)and (min-width:861px){.workspace{overflow-y:auto}.grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-rows:auto}.grid>.panel{height:clamp(340px,calc(100dvh - 320px),640px)}.grid .rail{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;overflow:visible}}@media(max-width:860px){body{overflow:auto}.app{height:auto;overflow:visible}.main{height:auto}.workspace{flex:none}.grid{display:flex;flex-direction:column}.grid>.panel{min-height:0}.editor,.file-slab,.output-body{height:min(52vh,420px);flex:none}.rail{overflow:visible}.topbar{height:auto;min-height:52px;flex-wrap:wrap;padding:8px 12px;gap:8px}.topnav-item{padding:0 10px}.controls{align-items:stretch;flex-direction:column}.controls .group{flex-wrap:wrap}.picker-button{min-width:0;flex:1}.palette-overlay{padding:12px}}
