:root{--bg: #15171a;--panel: #1c1f24;--panel-2: #23272d;--view-bg: #1a1d21;--grid-a: #3a4048;--grid-b: #2a2f35;--border: #343a42;--border-strong: #4a525c;--text: #e4e7eb;--text-dim: #9aa3ad;--accent: #ff8a1f;--accent-text: #1a1204;--accent-soft: rgba(255, 138, 31, .16);--danger: #ff5a52;--danger-soft: rgba(255, 90, 82, .14);--radius: 6px;--h: 30px;--cube: 120px;--cube-face: #2b3038;--cube-edge: #6b7480;--cube-text: #e4e7eb;--cube-corner: #4a525c;color-scheme:dark}@media(prefers-color-scheme:light){:root{--bg: #eceef1;--panel: #f7f8fa;--panel-2: #ffffff;--view-bg: #e3e6ea;--grid-a: #aeb5be;--grid-b: #c9ced5;--border: #cfd4da;--border-strong: #aab1ba;--text: #1d2126;--text-dim: #5d6670;--accent: #e8730a;--accent-text: #ffffff;--accent-soft: rgba(232, 115, 10, .14);--danger: #d12f27;--danger-soft: rgba(209, 47, 39, .1);--cube-face: #ffffff;--cube-edge: #8a939d;--cube-text: #1d2126;--cube-corner: #c3c9d0;color-scheme:light}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{display:flex;flex-direction:column;background:var(--bg);color:var(--text);font:13px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}.topbar{display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--panel);border-bottom:1px solid var(--border);flex:none}.topbar h1{font-size:15px;font-weight:650;margin:0;letter-spacing:.02em}.spacer{flex:1}.filename{color:var(--text-dim);max-width:30ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout{flex:1;min-height:0;display:flex}.view{position:relative;flex:1;min-width:0;background:var(--view-bg);overflow:hidden}.view canvas{display:block;width:100%;height:100%;touch-action:none}.panel{flex:none;width:320px;overflow-y:auto;background:var(--panel);border-left:1px solid var(--border);padding:4px 14px 16px}@media(max-width:800px){body{overflow:auto}.layout{flex-direction:column}.view{flex:none;height:55vh;min-height:280px}:root{--cube: 96px}.panel{width:auto;border-left:0;border-top:1px solid var(--border);overflow:visible}}.hint,.busy,.msg,.drop-overlay{position:absolute;pointer-events:none;text-align:center}.hint{top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:16px;border:2px dashed var(--border-strong);margin:24px;border-radius:12px}.busy{top:12px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--border-strong);padding:5px 14px;border-radius:999px;color:var(--text)}.msg{bottom:14px;left:14px;right:14px;pointer-events:auto;background:var(--panel);border:1px solid var(--danger);color:var(--danger);padding:8px 12px;border-radius:var(--radius);text-align:left}.drop-overlay{top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);border:2px solid var(--accent);color:var(--accent);font-size:16px}[hidden]{display:none!important}.section{border:0;border-bottom:1px solid var(--border);margin:0;padding:12px 0;min-width:0}.section:last-child{border-bottom:0}.section h2,.section legend{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:0 0 10px;padding:0;float:none;width:100%}fieldset.section>legend{display:block}.note{color:var(--text-dim);font-size:12px;margin:6px 0 0}.row{display:flex;align-items:center;gap:8px;margin:0 0 8px}.row .lbl{flex:none;width:96px;color:var(--text)}.row input[type=range],.row select{flex:1;min-width:0}.btnrow{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.refine{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border)}button,select,input[type=number]{font:inherit;color:var(--text);height:var(--h);background:var(--panel-2);border:1px solid var(--border-strong);border-radius:var(--radius);outline:none}button{padding:0 12px;cursor:pointer;white-space:nowrap}button:hover:not(:disabled){border-color:var(--text-dim)}button:active:not(:disabled){background:var(--bg)}button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.08);border-color:var(--accent)}button.block{width:100%}button.block+button.block{margin-top:6px}select{padding:0 26px 0 8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--text-dim) 50%),linear-gradient(135deg,var(--text-dim) 50%,transparent 50%);background-position:calc(100% - 14px) 12px,calc(100% - 9px) 12px;background-size:5px 5px;background-repeat:no-repeat}select option{background:var(--panel-2);color:var(--text)}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:1px}:disabled{opacity:.45;cursor:not-allowed}fieldset{border:0}.field{display:inline-flex;align-items:center;flex:none;width:82px;height:var(--h);background:var(--panel-2);border:1px solid var(--border-strong);border-radius:var(--radius);padding-right:7px}.field.wide{width:110px}.field:focus-within{border-color:var(--accent)}.field input[type=number]{flex:1;min-width:0;width:100%;height:calc(var(--h) - 2px);border:0;background:transparent;text-align:right;padding:0 4px 0 6px;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.field input[type=number]::-webkit-inner-spin-button,.field input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.field input:focus-visible{outline:none}.unit{color:var(--text-dim);font-size:12px;min-width:2ch}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:var(--h);background:transparent;margin:0;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--border-strong)}input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--border-strong)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;margin-top:-5px;border-radius:50%;background:var(--accent);border:2px solid var(--panel)}input[type=range]::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--panel)}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;margin:0;width:16px;height:16px;border-radius:4px;cursor:pointer;background:var(--panel-2);border:1px solid var(--border-strong);display:inline-grid;place-content:center}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:after{content:"";width:8px;height:4px;border-left:2px solid var(--accent-text);border-bottom:2px solid var(--accent-text);transform:translateY(-1px) rotate(-45deg)}.check,.toggle{display:flex;align-items:center;gap:8px;margin:0 0 6px;cursor:pointer}.toggle{margin-top:10px;color:var(--text-dim)}.toggle:has(input:checked){color:var(--accent)}.toggle svg{flex:none}.segmented{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden}.segmented button{border:0;border-radius:0;background:var(--panel-2);height:calc(var(--h) - 2px)}.segmented button+button{border-left:1px solid var(--border-strong)}.tools{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}.tools button{padding:0 2px;font-size:12px}.scalegrid{display:grid;grid-template-columns:22px 1fr 1fr;gap:6px 8px;align-items:center}.scalegrid .field{width:100%}.colh{color:var(--text-dim);font-size:11px;text-align:right;padding-right:8px}.axis{font-weight:650;color:var(--text-dim)}.checks dl{display:grid;grid-template-columns:1fr auto;gap:3px 10px;margin:0 0 10px}.checks dt{color:var(--text-dim)}.checks dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.checks h3{font-size:12px;margin:10px 0 4px;font-weight:650}.warn{background:var(--danger-soft);border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius);padding:6px 9px;margin:0 0 8px;font-size:12px}.help summary{cursor:pointer;font-weight:600;color:var(--text)}.help ol{margin:8px 0 0;padding-left:20px;color:var(--text-dim)}.help li{margin-bottom:4px}.growgrid{display:grid;grid-template-columns:22px 1fr;gap:6px 8px;align-items:center;margin-top:10px}.growgrid .segmented{display:flex}.growgrid .segmented button{flex:1;min-width:0;padding:0 4px;font-size:12px}.cuthint{margin:-4px 0 10px}.cutstate{display:inline-block;font-size:12px;font-weight:600;color:var(--accent)}.sw-face{color:#4ea1ff}.symbox{margin:0 0 10px}#symOpts,#cutOpts{padding:8px 0 0 10px;border-left:2px solid #4ea1ff;margin-left:6px}#symOpts .row .lbl,#cutOpts .row .lbl{width:86px}#cutOpts .note{margin-bottom:0}.sw-del{color:#ff5a5a}.cutline{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.cutline line{stroke:var(--accent);stroke-width:2;stroke-dasharray:6 4;stroke-linecap:round}.viewcube{position:absolute;top:10px;right:10px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:4px}.view .viewcube canvas{width:var(--cube);height:var(--cube);touch-action:none}.viewcube button{height:24px;padding:0 10px;font-size:12px;background:var(--panel)}.viewcube button.active{background:var(--accent-soft)}.framerow{margin-bottom:8px}.framerow .segmented{display:flex;flex:1}.framerow .segmented button{flex:1;min-width:0}#scaleFrameNote{margin-top:-2px}
