:root{--bg:#15171c;--panel:#1e2128;--panel-2:#252932;--line:#313642;--text:#dfe3ea;--muted:#8b93a3;--accent:#5a8dee;--accent-2:#3f6fd0;--add:#6cc070;--cut:#ff6b6b;--intersect:#ffc857;--error:#ff6b6b;--radius:6px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;font:13px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Inter,sans-serif}body{grid-template-rows:44px 1fr 26px;display:grid;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:4px 10px}button:hover:not(:disabled){background:#2c313b;border-color:#4a5263}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent-2);border-color:var(--accent)}button.primary:hover{background:var(--accent)}button.danger:hover{border-color:var(--cut);color:var(--cut)}.topbar{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:0 10px;display:flex}.brand{letter-spacing:.5px;margin-right:8px;font-size:15px;font-weight:700}.brand span{color:var(--accent)}.doc-name{border-radius:var(--radius);background:0 0;border:1px solid #0000;width:260px;padding:4px 8px}.doc-name:hover,.doc-name:focus{border-color:var(--line);background:var(--bg);outline:none}.spacer{flex:1}.sep{background:var(--line);width:1px;height:20px;margin:0 4px}.layout{grid-template-columns:320px 1fr 310px;min-height:0;display:grid}.sidebar{background:var(--panel);min-height:0;overflow-y:auto}.sidebar.left{border-right:1px solid var(--line)}.sidebar.right{border-left:1px solid var(--line)}.panel{border-bottom:1px solid var(--line);padding:12px}.panel-title{text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-bottom:10px;font-size:11px;font-weight:600}.section-title{border-top:1px solid var(--line);margin:16px 0 8px;padding-top:12px;font-weight:600}.hint{color:var(--muted);margin:0 0 10px}.hint p{margin:0 0 10px}code{background:var(--panel-2);border-radius:3px;padding:1px 4px;font-size:12px}.viewport-wrap{min-width:0;min-height:0;position:relative}#viewport{position:absolute;inset:0}#viewport canvas{display:block}.view-tools{gap:4px;display:flex;position:absolute;top:10px;right:10px}.view-tools button{background:#1e2128d9;padding:3px 9px;font-size:12px}#loading{color:var(--muted);pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}input.text,input.expr,textarea.expr,select,.param-name{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);outline:none;width:100%;padding:5px 7px}input:focus,textarea:focus,select:focus{border-color:var(--accent)}input.expr,textarea.expr{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}textarea.expr{resize:vertical;line-height:1.5}.expr.err{border-color:var(--error)}.expr-wrap{flex:1;min-width:0;position:relative}.expr-wrap:not(.multi) input{padding-right:52px}.expr-out{color:var(--muted);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;max-width:50px;font-size:11px;position:absolute;top:50%;right:7px;overflow:hidden;transform:translateY(-50%)}.expr-out.err{color:var(--error);pointer-events:auto;font-weight:700}.expr-wrap.outside{align-items:center;gap:6px;display:flex}.expr-wrap.outside input{padding-right:7px}.expr-wrap.outside .expr-out{text-align:right;flex:none;width:34px;position:static;transform:none}.expr-wrap.multi .expr-out{white-space:normal;max-width:none;margin-top:3px;display:block;position:static;transform:none}.field{margin-bottom:10px}.field .label{color:var(--muted);-webkit-user-select:none;user-select:none;margin-bottom:4px;font-size:12px}.scrub{cursor:ew-resize}.two{grid-template-columns:1fr 1fr;gap:8px;display:grid}.vec{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.vec-item{align-items:center;gap:4px;display:flex}.vec-item .expr-wrap input{padding-right:7px}.vec-item .expr-out{display:none}.axis{-webkit-user-select:none;user-select:none;width:10px;font-size:11px;font-weight:700}.axis-x{color:#e05d5d}.axis-y{color:#6cc070}.axis-z{color:#5a8dee}.check{cursor:pointer;align-items:center;gap:8px;margin-bottom:8px;display:flex}.segmented{gap:4px;display:flex}.segmented button{flex:1;padding:5px 4px}.segmented .active.op-union{border-color:var(--add);color:var(--add)}.segmented .active.op-subtract{border-color:var(--cut);color:var(--cut)}.segmented .active.op-intersect{border-color:var(--intersect);color:var(--intersect)}.error-banner{color:#ffb3b3;border-radius:var(--radius);background:#ff6b6b1f;border:1px solid #ff6b6b80;margin-bottom:12px;padding:7px 9px}.prop-actions{gap:8px;margin-top:18px;display:flex}.prop-actions button{flex:1}.params{flex-direction:column;gap:5px;margin-bottom:10px;display:flex}.param{align-items:center;gap:5px;display:flex}.param-name{flex:none;width:88px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.param .eq{color:var(--muted)}.icon-btn{color:var(--muted);background:0 0;border:none;padding:2px 5px;line-height:1}.icon-btn:hover:not(:disabled){color:var(--text);background:var(--panel-2)}.add-btn{width:100%;color:var(--muted);border-style:dashed}.add-btn:hover{color:var(--text)}.features{flex-direction:column;gap:2px;margin-bottom:12px;display:flex}.feature{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;align-items:center;gap:7px;padding:5px 6px;display:flex}.feature:hover{background:var(--panel-2)}.feature.selected{background:#263147;border-color:#35507f}.feature.suppressed .fname,.feature.suppressed .ficon{opacity:.4;text-decoration:line-through}.fname{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ficon{color:var(--muted);text-align:center;width:14px}.op{text-align:center;width:16px;font-weight:700}.op-union{color:var(--add)}.op-subtract{color:var(--cut)}.op-intersect{color:var(--intersect)}.ferr{color:var(--error);display:none}.feature.has-error .ferr{display:inline}.row-actions{opacity:0;transition:opacity .1s;display:flex}.feature:hover .row-actions,.feature.selected .row-actions{opacity:1}.shape-grid{grid-template-columns:1fr 1fr;gap:5px;display:grid}.shape-btn{text-align:left;align-items:center;gap:6px;display:flex}.status{background:var(--panel);border-top:1px solid var(--line);color:var(--muted);align-items:center;gap:14px;padding:0 12px;font-size:12px;display:flex}.status-errors{color:var(--error)}.pt-bar{flex-wrap:wrap;align-items:center;gap:6px;margin:-4px 0 10px;font-size:12px;display:flex}.pt-bar[hidden]{display:none}.pt-kind{color:var(--muted);margin-right:2px}.pt-val{border:1px solid var(--line);border-radius:var(--radius);align-items:stretch;display:inline-flex;overflow:hidden}.pt-val .pt-axis{color:var(--muted);background:var(--bg);padding:2px 6px}.pt-val button{border:0;border-radius:0;padding:2px 8px}.pt-val .v{text-align:center;font-variant-numeric:tabular-nums;cursor:text;min-width:24px;padding:2px 6px}
