:root{--r-control:4px;--r-pop:6px;--r-panel:8px}:root,[data-theme=dark]{--bg:#1b1d21;--panel:#24272c;--panel-2:#2c3036;--border:#383c43;--text:#dfe3ea;--muted:#8d95a3;--accent:#3b8bff;--accent-soft:#3b8bff2e;--warn:#f5b841;--error:#ff6b6b;--ok:#4cc38a;--input:#1b1d21;--c-bg:#1d1f23;--c-grid:#26292e;--c-grid-major:#30343a;--c-axis-x:#b4535b;--c-axis-y:#4f9a64;--c-geom:#8cc4ff;--c-geom-done:#f0f3f7;--c-construction:#7d8592;--c-select:#ffb020;--c-hover:#ffd77a;--c-fill:#3b8bff21;--c-dim:#d7dbe2;--c-dim-bg:#1d1f23eb;--c-glyph-bg:#343841;--c-glyph:#c9ced8;--c-ref:#5d6470;--c-link:#c58cff;--c-ruler:#2a2d33;--c-ruler-text:#8d95a3;--c-3d-bg:#202328;--c-3d-body:#7ea7e8;--c-3d-edge:#0f1114;--c-3d-ghost:#ff5cc8;color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}[data-theme=light]{--bg:#e9ecf1;--panel:#fff;--panel-2:#f3f5f8;--border:#d3d8e0;--text:#1d2735;--muted:#64748b;--accent:#2563eb;--accent-soft:#2563eb1f;--warn:#b45309;--error:#dc2626;--ok:#15803d;--input:#fff;--c-bg:#fbfcfe;--c-grid:#eef1f6;--c-grid-major:#dde3ec;--c-axis-x:#e8a3a3;--c-axis-y:#9fd0a5;--c-geom:#1f6fd6;--c-geom-done:#111827;--c-construction:#94a3b8;--c-select:#e07b00;--c-hover:#f59e0b;--c-fill:#3b82f61f;--c-dim:#1d2735;--c-dim-bg:#ffffffeb;--c-glyph-bg:#e5e9f0;--c-glyph:#334155;--c-ref:#b8c0cc;--c-link:#7c3aed;--c-ruler:#f1f3f7;--c-ruler-text:#64748b;--c-3d-bg:#eef1f5;--c-3d-body:#8fb3ff;--c-3d-edge:#1d2735;--c-3d-ghost:#d4179c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;margin:0;overflow:hidden}body{color:var(--text);flex-direction:column;font:13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;display:flex}button,select,input{font:inherit;color:inherit}button{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-control);cursor:pointer;padding:4px 10px}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}input,select{background:var(--input);border:1px solid var(--border);border-radius:var(--r-control);padding:3px 6px}input:focus,select:focus{border-color:var(--accent);outline:none}.menubar,.ctxbar,.statusbar{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:6px;min-width:0;padding:5px 10px;display:flex}.ctxbar{background:var(--panel-2);flex-wrap:wrap;min-height:40px}.ctxbar label{color:var(--muted);align-items:center;gap:4px;display:inline-flex}.ctxbar input[type=number],.ctxbar input.num{width:64px}.ctxbar .group{align-items:center;gap:3px;display:inline-flex}.ctxbar .icon-btn{padding:3px 5px;display:inline-flex}.statusbar{border-top:1px solid var(--border);color:var(--muted);white-space:nowrap;border-bottom:0;gap:16px;padding:3px 10px;overflow:hidden}.brand{color:var(--accent);letter-spacing:.02em;margin-right:8px;font-weight:700}.sep{background:var(--border);flex:none;width:1px;height:20px;margin:0 4px}.grow{flex:1}#status-dof.ok{color:var(--ok)}#status-view:empty{display:none}#status-view.over{color:var(--warn)}#status-measure{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;padding:0}#status-measure:hover{color:var(--accent);text-decoration:underline}#status-kernel.link{cursor:pointer;color:#ff6b5e}#status-kernel.link:hover{text-decoration:underline}#status-hint{text-overflow:ellipsis;overflow:hidden}.menu{position:relative}.menu-items{z-index:20;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-pop);min-width:260px;margin-top:4px;padding:4px;display:none;position:absolute;top:100%;left:0;box-shadow:0 8px 24px #00000059}.menu.open .menu-items{display:block}@media (max-width:600px){.menu-items{top:var(--menu-top,48px);min-width:0;max-height:70vh;position:fixed;left:8px;right:8px;overflow-y:auto}}.menu-items button{text-align:left;background:0 0;border:0;justify-content:space-between;width:100%;display:flex}.menu-items button:hover{background:var(--accent-soft)}.menu-items small{color:var(--muted)}.menu-items .menu-tick{border-top:1px solid var(--border);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;margin-top:4px;padding:6px 10px 2px;display:flex}.menu-items .menu-tick small{margin-left:auto;padding-left:12px}.menu-items .menu-tick[hidden]{display:none}.menu-items .menu-detail{white-space:nowrap;align-items:center;gap:4px;padding:2px 10px 6px;display:flex}.menu-items .menu-detail[hidden]{display:none}.menu-items .menu-detail>span{color:var(--muted);margin-right:6px;font-size:12px}.menu-items .menu-detail button{border:1px solid var(--border);border-radius:var(--r-control);flex-direction:column;flex:1;align-items:flex-start;gap:0;width:auto;padding:2px 8px;line-height:1.3}.menu-items .menu-detail button.active{border-color:var(--accent);background:var(--accent-soft)}.workspace{grid-template-columns:58px 1fr 300px;gap:0;min-height:0;display:grid}.tools{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;gap:3px;padding:6px 5px;display:flex;overflow-y:auto}.tools button{color:var(--muted);background:0 0;border-color:#0000;flex-direction:column;align-items:center;padding:5px 0 3px;font-size:10px;display:flex}.tools button:hover:not(:disabled){color:var(--text);border-color:var(--border)}.tools button.active{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}.tools .tool-sep{background:var(--border);height:1px;margin:4px 2px}svg.icon{stroke:currentColor;stroke-width:1.6px;fill:none;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.ctxbar svg.icon{width:18px;height:18px}.stage{background:var(--c-bg);min-width:0;min-height:0;position:relative;overflow:hidden}#sketch,#view3d{touch-action:none;width:100%;height:100%;position:absolute;inset:0}#view3d canvas{display:block}[data-stage="3d"] #sketch,[data-stage="2d"] #view3d{visibility:hidden}.stage-tabs{z-index:5;gap:2px;display:none;position:absolute;bottom:10px;right:10px}[data-mode=sketch] .stage-tabs{display:flex}.stage-tabs button{padding:2px 10px}.banner{z-index:6;background:var(--panel);border:1px solid var(--accent);border-radius:var(--r-pop);white-space:nowrap;align-items:center;gap:10px;max-width:calc(100% - 40px);padding:6px 12px;display:flex;position:absolute;top:8px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0000004d}.banner[hidden]{display:none}.banner-lines{flex-direction:column;gap:1px;display:flex}.banner-lines small{font-size:12px}.dim-input{text-align:center;border:2px solid var(--accent);border-radius:var(--r-control);background:var(--input);z-index:10;width:90px;padding:3px 4px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 12px #0006}.dock{background:var(--panel);border-left:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.dock-panel{border-bottom:1px solid var(--border);min-height:0;padding:6px 10px 8px;overflow:auto}.steps-panel{flex:0 auto;max-height:30%}.legend-panel{flex:0 auto;max-height:32%}.layers-panel{flex:0 auto;max-height:25%}.legend-panel[hidden],.layers-panel[hidden]{display:none}.legend-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.legend-colors{align-items:center;gap:8px;margin:0 0 6px;font-size:12px;display:flex}.legend-colors .seg{gap:2px;display:flex}.legend-colors .seg button{padding:1px 8px;font-size:12px}.legend-filter{width:100%;margin-bottom:4px}.legend-list{margin:0;padding:0;list-style:none}.legend-row{border-radius:var(--r-control);align-items:center;gap:7px;padding:2px 4px;display:flex}button.eye{color:var(--text);background:0 0;border-color:#0000;flex:none;padding:1px;display:inline-flex}button.eye svg.icon{width:15px;height:15px}button.eye.off{color:var(--muted)}button.eye.mixed{opacity:.5}button.eye:hover:not(:disabled){color:var(--accent);border-color:#0000}button.eye:focus-visible{outline:2px solid var(--accent);outline-offset:0}.legend-row:hover{background:var(--panel-2)}.legend-row.selected{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.legend-row.selected .name{color:var(--accent);font-weight:600}.legend-row .name{cursor:pointer}.legend-row.sub{color:var(--muted);padding-left:26px}.legend-row .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.swatch{border-radius:var(--r-control);border:1px solid #0000004d;flex:none;width:14px;height:14px}button.tiny{padding:0 6px;font-size:11px}.tools .tool-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:center;opacity:.8;margin:6px 0 1px;font-size:9px}.props-sub{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:10px 0 2px;font-size:11px}#props .small{margin-top:8px;font-size:12px}.ctxbar .next-steps button{align-items:center;gap:4px;display:inline-flex}.props-panel{flex:1 1 0;min-height:35%}@media (max-width:600px){.props-panel{flex:auto;min-height:0}}.history-panel{flex:0 auto;max-height:24%}.dock h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:2px 0 6px;font-size:11px}.dock ol{margin:0;padding:0;list-style:none}#steps li{border-radius:var(--r-control);cursor:pointer;align-items:center;gap:6px;padding:3px 6px;display:flex}#steps li svg.icon{flex:none;width:16px;height:16px}#steps li .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}#steps li:hover{background:var(--panel-2)}#steps li.selected{background:var(--accent-soft);color:var(--accent)}#steps li.suppressed>*{opacity:.45}#steps li.suppressed>.badge.off{opacity:.8}#steps li .badge.off{display:flex}#steps li .badge.off svg.icon{width:14px;height:14px}#steps li .badge{font-size:11px}#steps li.broken{color:var(--error);background:color-mix(in srgb, var(--error) 11%, transparent);box-shadow:inset 3px 0 0 var(--error)}#steps li.broken:hover{background:color-mix(in srgb, var(--error) 17%, transparent)}#steps li.broken.selected{color:var(--error);background:color-mix(in srgb, var(--error) 22%, transparent);box-shadow:inset 3px 0 0 var(--error), inset 0 0 0 1px color-mix(in srgb, var(--error) 45%, transparent)}#steps li.pending .why{color:var(--muted);font-size:11px;line-height:1.3;display:block}#steps li.building,#steps li.waiting{position:relative}#steps li.building:after,#steps li.waiting:after{content:"";border-radius:inherit;background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent);pointer-events:none;animation:1.4s ease-in-out infinite step-breathe;position:absolute;inset:0}@keyframes step-breathe{0%,to{opacity:.15}50%{opacity:1}}.build-line{pointer-events:none;opacity:0;z-index:6;height:2px;transition:opacity .15s;position:absolute;top:0;left:0;right:0;overflow:hidden}body.building .build-line{opacity:1}.build-line:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);width:35%;animation:1.1s ease-in-out infinite build-sweep;position:absolute;top:0;bottom:0;left:-35%}@keyframes build-sweep{to{left:100%}}@media (prefers-reduced-motion:reduce){.build-line:before{background:var(--accent);opacity:.7;width:100%;animation:none;left:0}#steps li.building:after,#steps li.waiting:after{opacity:.8;animation:none}}#steps li .badge.error{color:var(--error)}#steps li .badge.warning{color:var(--warn)}#steps .empty,#props .empty{color:var(--muted);padding:4px 0}#history li{border-radius:var(--r-control);cursor:pointer;padding:2px 6px}#history li:hover{background:var(--panel-2)}#history li.current{background:var(--accent-soft);color:var(--accent);font-weight:600}#history li.redo{color:var(--muted);opacity:.6}#props .field{grid-template-columns:72px 1fr;align-items:center;gap:6px;margin:6px 0;display:grid}#props .field>span{color:var(--muted)}#props input,#props select{width:100%}#props .checklist input{flex:none;width:auto}#props .seg{flex-wrap:wrap;gap:2px;display:flex}#props .seg button{padding:2px 7px;font-size:12px}#props .row{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}#props .msg{border-radius:var(--r-control);margin:4px 0 8px;padding:6px 8px}#props .msg.error{color:var(--error);background:#ff6b6b1f}#props .msg.warning{color:var(--warn);background:#f5b8411f}#props .msg.info{background:var(--accent-soft)}#props .muted{color:var(--muted)}#toast{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:var(--r-pop);opacity:0;pointer-events:none;z-index:30;max-width:90vw;padding:8px 14px;transition:opacity .2s,transform .2s;position:fixed;bottom:40px;left:50%;transform:translate(-50%,20px)}#toast.show{opacity:1;transform:translate(-50%)}#toast[data-kind=warn]{border-left:3px solid var(--warn)}#toast[data-kind=error]{border-left:3px solid var(--error)}#toast.show.has-action{pointer-events:auto}#toast button{margin-left:8px}@media (max-width:900px){.workspace{grid-template-rows:1fr auto;grid-template-columns:50px 1fr}.dock{border-left:0;border-top:1px solid var(--border);grid-column:1/3;max-height:34vh}.menubar{flex-wrap:wrap}.tools button span{display:none}}.tool-buttons{flex-direction:column;gap:3px;display:flex}@media (min-width:901px){body[data-toolbar=side] .workspace{grid-template-columns:112px 1fr 300px}body[data-toolbar=side] .tool-buttons{grid-template-columns:1fr 1fr;display:grid}}.dim-input.text{text-align:left;width:220px;transform:translateY(-50%)}.ctxbar input.text-edit{width:160px}.popover{z-index:20;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-pop);min-width:300px;padding:10px 12px;position:absolute;top:8px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000059}.popover-title{margin-bottom:6px;font-weight:600}.popover .field{grid-template-columns:96px 1fr;align-items:center;gap:6px;margin:6px 0;display:grid}.popover .field[hidden]{display:none}.popover .field small{grid-column:2;margin-top:-4px}.popover .row{gap:6px;margin-top:8px;display:flex}.checklist{flex-direction:column;gap:3px;max-height:140px;display:flex;overflow-y:auto}.checklist label{align-items:center;gap:6px;font-size:12px;display:flex}.measure-panel{z-index:15;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-panel);width:280px;padding:10px 12px;position:absolute;top:10px;right:10px;box-shadow:0 8px 28px #0000004d}.measure-title{margin-bottom:6px;font-weight:600}.measure-rows{grid-template-columns:auto 1fr;gap:4px 10px;margin:6px 0;font-size:13px;display:grid}.measure-rows .val{font-variant-numeric:tabular-nums;-webkit-user-select:text;user-select:text}.measure-panel .row{justify-content:flex-end;gap:6px;margin-top:8px;display:flex}.welcome{z-index:12;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-panel);width:min(560px,100% - 32px);padding:16px 18px;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 28px #0000004d}.welcome-title{margin-bottom:10px;font-size:15px;font-weight:600}.welcome-actions{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.welcome-actions button{text-align:left;white-space:normal;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 12px;display:flex}.welcome-actions small{opacity:.75;font-size:11.5px;line-height:1.3}.welcome-recent{flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:12px;font-size:12.5px;display:flex}.welcome-sketch{margin-top:12px;font-size:12.5px}@media (max-width:600px){.welcome-sketch{display:none}}.welcome-sketch button.link,.welcome-recent button.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0}.checks-panel{width:340px;max-height:calc(100% - 68px);top:58px;overflow-y:auto}.check-head{align-items:baseline;gap:8px;display:flex}.check-head .grow{flex:1}.check-limits-link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.check-limits{flex-wrap:wrap;gap:6px 14px;margin-bottom:8px;font-size:12px;display:flex}.check-limits label{align-items:center;gap:5px;display:flex}.check-limits input{width:54px}.check-list{flex-direction:column;gap:4px;margin-bottom:6px;display:flex}.check-list button{text-align:left;white-space:normal;align-items:flex-start;gap:8px;padding:6px 8px;font-size:12.5px;line-height:1.35;display:flex}.check-list button.active{border-color:var(--accent)}.check-list button.check-fix{align-self:flex-end;margin-top:-2px}.review-row{border-radius:var(--r-control);border:1px solid #0000;align-items:center;gap:6px;padding:4px 6px;font-size:12.5px;display:flex}.review-row:hover,.review-row.active{border-color:var(--border);background:var(--input)}.review-label{flex:1;min-width:0}.review-list button.review-pick{flex:none;padding:3px 8px;font-size:12px}.review-list button.review-pick.on{border-color:var(--accent);color:var(--accent)}.review-list button.review-fold{color:var(--muted);background:0 0;border:0;align-self:flex-start;padding:2px 0;font-size:12px}.link-pop button.review-open{border-color:var(--accent)}.check-icon{text-align:center;width:16px;color:var(--warn,#e0a030);flex:none}.check-ok{color:var(--ok,#4caf7a);margin:4px 0 8px;font-size:13px}.section-ctl input[type=range]{width:160px}.param-row{grid-template-columns:1fr auto 1.4fr auto auto auto;align-items:center;gap:4px;margin:3px 0;display:grid}.param-row input{min-width:0;padding:2px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.param-row.bad .pexpr{border-color:var(--error)}.param-row .pval{min-width:2ch;font-size:11px}.param-row .ptext{font-family:inherit}.param-row select.pchoice{min-width:0;padding:1px 4px;font-size:12px}.param-row .pbool{gap:2px;display:flex}.param-row .pbool button,.customize-seg button{padding:1px 8px;font-size:12px}.params-add{gap:2px;display:inline-flex}#props input.has-expr{color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}#props .field:has(>.num-tune){row-gap:0}#props .num-tune{grid-row:span 2;grid-template-rows:subgrid;display:grid;position:relative}#props .tune-pop{padding:2px 0 3px;display:none;position:relative}#props .num-tune:focus-within .tune-pop,#props .num-tune.held .tune-pop{display:block}#props .tune-pop:has(input.tune.dragging){display:block}#props input.tune{width:100%;height:14px;accent-color:var(--accent);background:0 0;border:none;margin:0;padding:0;display:block}#props .tune-pop:before{content:"";background:var(--muted);opacity:.6;pointer-events:none;width:1px;height:4px;position:absolute;bottom:2px;left:50%}body.tune-behind #props .num-tune:has(input.tune:focus):after{content:"catching up…";color:var(--muted);pointer-events:none;font-size:11px;position:absolute;top:4px;right:4px}#props .waiting input:not(.tune){color:var(--muted)}#props .wait-ring{border:1.5px solid color-mix(in srgb, var(--muted) 35%, transparent);border-top-color:var(--accent);pointer-events:none;border-radius:50%;width:10px;height:10px;animation:.8s linear infinite wait-spin;display:none;position:absolute;top:6px;right:7px}#props .waiting .wait-ring{display:block}body.tune-behind #props .num-tune.waiting:has(input.tune:focus):after{right:22px}@keyframes wait-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){#props .wait-ring{border-color:var(--accent);border-style:dotted;animation:none}}#props .tune-stop{left:calc(8px + (100% - 16px) * var(--stop));border-left:1px solid var(--error);background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--error) 65%, transparent) 0 2px, transparent 2px 4px);pointer-events:none;height:3px;position:absolute;bottom:0;right:0}#props .over input:not(.tune){color:var(--error);border-color:var(--error)}#props .limit-line{margin:2px 0 6px}#props .limit-line.muted{color:var(--muted)}#props .limit-line.error{color:var(--error)}#props .limit-line.working{color:var(--muted);font-style:italic}#props .type-hint{color:var(--muted);margin:2px 0 6px}#props .tryout-changed button{margin-left:4px}#props .picks button.link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}#props .picks button.link:hover{text-decoration:underline}#props .tryout-changed{align-items:center;gap:6px;margin:2px 0 6px;display:flex}#props .tryout-changed span{flex:1}@media (max-width:600px){#props .tune-pop{display:none!important}}.params-panel{flex:0 auto;max-height:26%}.dock h3{cursor:pointer;-webkit-user-select:none;user-select:none}.dock h3:before{content:"▾ ";opacity:.6}.dock-panel.collapsed>:not(h3){display:none}.dock-panel.collapsed h3{margin-bottom:0}.dock-panel.collapsed h3:before{content:"▸ "}.dock-panel.collapsed{flex:none;min-height:0}.props-panel.idle>:not(h3){display:none}.props-panel.idle{flex:none;min-height:0}.props-panel.idle h3{cursor:default;margin-bottom:0}.props-panel.idle h3:before{content:"▸ "}.dock h3:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:var(--r-control)}.dock-panel.dragging{opacity:.5}.dock-panel.drop-before{box-shadow:inset 0 2px 0 var(--accent)}.dock-panel.drop-after{box-shadow:inset 0 -2px 0 var(--accent)}.props-panel h3{align-items:center;gap:6px;display:flex}#props-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.props-done{text-transform:none;letter-spacing:0;flex:none;align-items:center;gap:6px;display:flex}.props-done:empty{display:none}.props-done .done{padding:2px 14px;font-size:12px;font-weight:600}.props-done .done:disabled{opacity:1;background:var(--panel-2);border-color:var(--border);color:var(--muted);cursor:not-allowed}#steps li.after-marker{opacity:.45}#steps li.drop-target{box-shadow:inset 0 2px 0 var(--accent)}#steps .roll-btn{visibility:hidden;margin-left:auto}#steps li:hover .roll-btn{visibility:visible}#steps li.roll-marker{color:var(--accent);border-top:2px solid var(--accent);cursor:grab;justify-content:space-between;align-items:center;margin:3px 0;padding:2px 6px;font-size:11px;display:flex}kbd{border:1px solid var(--border);border-radius:var(--r-control);color:var(--muted);background:var(--input);padding:0 4px;font:11px ui-monospace,SFMono-Regular,Menlo,monospace}.ctx-menu{z-index:100;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-pop);min-width:200px;max-height:calc(100vh - 8px);padding:4px;position:fixed;overflow-y:auto;box-shadow:0 10px 30px #00000059}.ctx-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;max-width:260px;padding:4px 8px 6px;font-size:11px;overflow:hidden}.ctx-title.sentence{color:var(--text);text-transform:none;letter-spacing:0;white-space:normal;max-width:360px;font-size:12px}.ctx-menu button{text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:5px 8px;display:flex}.ctx-menu button:hover:not(:disabled),.ctx-menu button:focus-visible{background:var(--accent-soft);outline:none}.ctx-menu button.danger{color:var(--error)}.ctx-menu button small{color:var(--muted);white-space:nowrap;font-size:11px}.ctx-menu button.off{opacity:.55;cursor:default}.ctx-menu button.off:hover{background:0 0}.ctx-menu button.off .why{font-style:italic}.ctx-menu button.ctx-fold{justify-content:flex-start;gap:6px;font-weight:600}.ctx-fold-mark{width:10px;color:var(--muted)}.ctx-menu .ctx-in{padding-left:24px}.ctx-empty{color:var(--muted);padding:4px 8px;font-size:11px}.ctx-menu [hidden]{display:none}.ctx-heading{border-top:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;padding:6px 8px 2px;font-size:10px}.ctx-heading.first,.ctx-sep+.ctx-heading{border-top:0;margin-top:0}.ctx-row{align-items:center;gap:2px;padding:0 8px;display:flex}.ctx-row .ctx-verb{white-space:nowrap;margin-right:2px}.ctx-menu .ctx-row button{border-radius:var(--r-control);width:auto;padding:5px;font-weight:600}.ctx-row .ctx-dot{color:var(--muted)}.ctx-row kbd{flex:none;margin-left:auto}.ctx-row button:last-of-type{margin-right:12px}.ctx-menu .ctx-arrow{color:var(--muted)}.ctx-menu button.ctx-has-sub[aria-expanded]{background:var(--accent-soft)}.ctx-sep{background:var(--border);height:1px;margin:4px 2px}.tooltip{z-index:110;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-pop);pointer-events:none;max-width:280px;padding:7px 9px;font-size:12px;line-height:1.4;position:fixed;box-shadow:0 6px 20px #0000004d}.tooltip.wide{max-width:420px}.tooltip .tip-head{justify-content:space-between;gap:10px;margin-bottom:3px;display:flex}.palette-back{z-index:120;background:#00000040;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.palette-spot{z-index:121;outline:2px solid var(--accent);outline-offset:1px;position:relative;background:color-mix(in srgb, var(--accent) 18%, var(--panel))!important}.palette{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-pop);width:min(520px,92vw);overflow:hidden;box-shadow:0 20px 50px #0006}.palette input{border:0;border-bottom:1px solid var(--border);background:0 0;border-radius:0;width:100%;padding:12px 14px;font-size:15px}.palette-list{max-height:50vh;padding:4px;overflow-y:auto}.palette-list button{text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:7px 10px;display:flex}.palette-list button span{flex:1}.palette-list button small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:60%;overflow:hidden}.palette-list button.active,.palette-list button:hover{background:var(--accent-soft)}.palette-list .muted{padding:10px}#palette kbd{margin-left:4px}.menubar button.icon-only{align-items:center;padding:4px 6px;display:inline-flex}.menubar svg.icon{width:18px;height:18px;display:block}#palette .pal-icon svg.icon{vertical-align:-4px;display:inline-block}.help-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-panel);width:min(760px,94vw);max-height:76vh;padding:12px 16px;overflow:auto;box-shadow:0 20px 50px #0006}.help-head{background:var(--panel);align-items:center;margin:-12px -16px 0;padding:12px 16px 8px;display:flex;position:sticky;top:-12px}.help-head b{font-size:14px}.help-card:focus{outline:none}.help-groups{columns:2;column-gap:28px}.help-group{break-inside:avoid}.help-group h4{color:var(--muted);margin:10px 0 4px;font-size:12px;font-weight:600}table.help{border-collapse:collapse;width:100%}table.help td{vertical-align:top;padding:3px 4px}table.help td.keys{white-space:nowrap;width:1%;padding-right:12px}table.help kbd+kbd{margin-left:3px}@media (max-width:600px){.help-groups{columns:1}}.viewnav{z-index:5;width:124px;height:124px;position:absolute;bottom:46px;right:14px}.viewnav-btn{width:24px;height:24px;color:var(--muted);background:color-mix(in srgb, var(--panel) 80%, transparent);border:1px solid #0000;border-radius:50%;padding:0;font-size:12px;line-height:1;position:absolute}@media (hover:hover){.viewnav-btn:hover{color:var(--accent);border-color:var(--accent)}}@media (hover:none){.viewnav-btn:hover:not(:disabled){border-color:var(--border)}}.viewnav-btn.n{top:0;left:50px}.viewnav-btn.s{bottom:0;left:50px}.viewnav-btn.w{top:50px;left:0}.viewnav-btn.e{top:50px;right:0}.viewnav-btn.nw{font-size:15px;top:4px;left:4px}.viewnav-btn.ne{font-size:15px;top:4px;right:4px}.viewnav-btn.sw{font-size:14px;bottom:26px;left:4px}.viewnav-btn.fit{width:auto;padding:0 6px;font-size:10px;bottom:0;left:-2px}.viewcube{width:56px;height:56px;position:absolute;top:34px;left:34px}.viewcube-inner{width:0;height:0;transform-style:preserve-3d;position:absolute;top:50%;left:50%}.viewcube-face{width:56px;height:56px;color:var(--text);background:color-mix(in srgb, var(--panel) 88%, transparent);border:1px solid var(--border);border-radius:var(--r-control);backface-visibility:hidden;padding:0;font-size:10px;font-weight:600;position:absolute;top:-28px;left:-28px}.viewcube-face:hover{background:var(--accent-soft);color:var(--accent)}.handle-label{z-index:6;font-variant-numeric:tabular-nums;background:var(--panel);border:1px solid var(--accent);border-radius:var(--r-control);pointer-events:none;white-space:nowrap;padding:2px 6px;font-size:12px;position:absolute;transform:translate(-50%,-50%)}.plane-label{z-index:6;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-control);pointer-events:none;white-space:nowrap;padding:2px 6px;font-size:12px;position:absolute}@media (max-width:600px){.workspace{grid-template-columns:1fr}.tools{display:none}.dock{grid-column:1;max-height:42vh}#palette .pal-label,.menubar .sep,#palette kbd,.history-panel,.params-panel{display:none}.menubar{flex-wrap:wrap;row-gap:4px}body:not(.customizer) .menubar>*{order:2}body:not(.customizer) .menubar>:is(.brand,#doc-name,#part-menu,#palette,#settings){order:0}body:not(.customizer) .menubar>.grow{flex-basis:100%;order:1}.ctxbar{flex-wrap:nowrap;overflow-x:auto}.viewnav{transform-origin:100% 100%;bottom:40px;right:6px;transform:scale(.8)}.steps-panel{max-height:22%}.legend-panel{max-height:45%}.layers-panel{max-height:25%}}#palette .pal-icon{display:none}@media (max-width:600px){#palette .pal-icon{display:inline}.menubar button{white-space:nowrap}body.customizer .menubar .brand{display:none}}.dock-panel h3{z-index:1;background:var(--panel);padding:2px 0;position:sticky;top:-6px}#doc-name{background:0 0;border-color:#0000;width:160px;font-weight:500}@supports (field-sizing:content){#doc-name{field-sizing:content;width:auto;min-width:48px;max-width:240px}}#doc-name:hover,#doc-name:focus{border-color:var(--border);background:var(--input)}#part-menu{margin-left:-6px}@media (max-width:600px){#doc-name{flex:1;width:auto;min-width:0}}.workspace{flex:auto}.ctxbar:empty{display:none}.tools button:disabled{opacity:.35}body[data-toolbar=top] .tools{border-right:0;border-bottom:1px solid var(--border);flex-flow:wrap;flex:none;align-items:flex-start;gap:4px;padding:3px 8px 4px}body[data-toolbar=top] .tool-group{border-right:1px solid var(--border);padding:0 6px}body[data-toolbar=top] .tool-group:last-child{border-right:0}body[data-toolbar=top] .tool-buttons{flex-direction:row;gap:2px}body[data-toolbar=top] .tools button{min-width:50px;padding:4px 4px 2px}body[data-toolbar=top] .tools .tool-label{text-align:left;margin:0 0 1px}body[data-toolbar=top] .workspace{grid-template-columns:1fr 300px}@media (max-width:900px){body[data-toolbar=top] .workspace{grid-template-rows:1fr auto;grid-template-columns:1fr}body[data-toolbar=top] .dock{grid-column:1}body[data-toolbar=top] .tools button span{display:inline}}.dock-panel h3{margin-bottom:0;padding-bottom:6px}.pickfilter{z-index:5;background:color-mix(in srgb, var(--panel) 90%, transparent);border:1px solid var(--border);border-radius:var(--r-pop);align-items:center;gap:6px;padding:4px 6px;font-size:12px;display:flex;position:absolute;bottom:10px;left:10px}.pickfilter[hidden]{display:none}.frame-readout{z-index:5;color:var(--muted);pointer-events:none;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;position:absolute;bottom:10px;left:10px}.frame-readout[hidden]{display:none}.frame-readout .worst.slow{color:var(--warn)}.pickfilter:not([hidden])~.frame-readout{bottom:46px}.select-box{z-index:6;border:1px dashed var(--c-select);background:color-mix(in srgb, var(--c-select) 12%, transparent);pointer-events:none;position:absolute}@media (max-width:600px){.pickfilter:not([hidden]){display:none}}.edge-sizes{grid-template-columns:1fr 1fr;gap:3px 8px;max-height:130px;display:grid;overflow-y:auto}.edge-sizes label{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:flex}.edge-sizes input{width:100%;min-width:0;padding:2px 5px}button.swatch{cursor:pointer;padding:0}button.swatch:hover{outline:2px solid var(--accent)}.ctxbar .color-strip{gap:2px}.ctxbar .color-strip label{margin-right:5px}.ctxbar .color-chip,.color-pop .color-chip{font-variant-numeric:tabular-nums;border-radius:var(--r-control);cursor:pointer;border:1px solid #00000059;min-width:22px;height:20px;padding:0 3px;font-size:10px;line-height:18px}.color-chip.active{outline:2px solid var(--accent);outline-offset:1px}.ctxbar .color-more{height:20px;padding:0 4px;font-size:10px}.color-pop{z-index:60;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-pop);grid-template-columns:repeat(10,24px);gap:4px;padding:8px;display:grid;position:fixed;box-shadow:0 8px 28px #00000059}.color-pop .color-chip{min-width:24px}.look-pop{z-index:60;box-sizing:border-box;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-pop);width:260px;padding:10px 12px;position:fixed;box-shadow:0 8px 28px #00000059}.look-pop label{white-space:nowrap;grid-template-columns:84px minmax(0,1fr) 34px;align-items:center;gap:6px;margin:6px 0;display:grid}.look-pop input[type=range]{width:100%;min-width:0}.look-pop input[type=color]{border:1px solid var(--border);background:0 0;width:44px;height:24px;padding:0}.look-pop .row{justify-content:flex-end;gap:6px;margin-top:8px;display:flex}#versions{margin-bottom:4px}.history-actions{gap:6px}.version-row .note{text-overflow:ellipsis;white-space:nowrap;flex:2;min-width:0;font-size:11px;overflow:hidden}.timeline-pop{width:min(680px,100% - 16px)}.timeline-list{border-top:1px solid var(--border);max-height:min(52vh,460px);margin-top:6px;overflow-y:auto}.timeline-row{border-bottom:1px solid var(--border);align-items:flex-start;gap:8px;padding:4px 2px;font-size:12px;display:flex}.timeline-row.move .timeline-label>span:first-child{color:var(--muted)}.timeline-row input{margin-top:2px}.timeline-time{white-space:nowrap;flex:none;min-width:96px}.timeline-label{flex:1;min-width:0}.timeline-label .badge.version{border-radius:var(--r-control);background:var(--accent-soft);color:var(--accent);margin-left:6px;padding:0 6px;font-weight:600}.timeline-note{white-space:pre-wrap;margin-top:2px}.timeline-change{padding:1px 0;font-size:12px}#sync-status{margin-top:4px;padding:0 6px}#sync-status[data-state=waiting]{color:var(--warn)}#sync-status[data-state=error]{color:var(--error)}#sync-status[data-state=behind]{color:var(--warn);cursor:pointer}.version-row{border-radius:var(--r-control);cursor:pointer;align-items:center;gap:8px;margin-top:2px;padding:2px 6px;font-size:12px;display:flex}.version-row:hover{background:var(--accent-soft)}.version-row .name{flex:1;font-weight:600}.share-pop{width:min(460px,90%)}.share-pop input[readonly]{width:100%;margin:4px 0 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.share-pop .row{align-items:center}.ai-pop{width:min(540px,100% - 16px);min-width:0;max-height:calc(100% - 16px);overflow-y:auto}.ai-pop textarea{resize:vertical;width:100%;font:inherit;color:inherit;background:var(--input);border:1px solid var(--border);border-radius:var(--r-control);padding:6px 8px;display:block}.ai-pop textarea:focus{border-color:var(--accent);outline:none}.ai-pop .row{flex-wrap:wrap;align-items:center}.ai-pop .grow{flex:1}.ai-hint,.ai-note{color:var(--muted);margin-top:6px;font-size:12px}.ai-note:empty{display:none}.ai-note.error{color:var(--error);-webkit-user-select:text;user-select:text}.link-field{align-items:center;gap:8px;margin-top:6px;display:flex}.link-field>span{color:var(--muted);flex:0 0 56px;font-size:12px}.link-field>input,.link-field>select{min-width:0;font:inherit;color:inherit;background:var(--input);border:1px solid var(--border);border-radius:var(--r-control);flex:1;padding:4px 8px}.link-field>input:focus,.link-field>select:focus{border-color:var(--accent);outline:none}.link-pop{width:min(620px,100% - 16px)}.link-pop .row{margin-top:10px}.link-pop a.link-open{color:var(--accent);white-space:nowrap;align-self:center;text-decoration:none}.link-pop a.link-open:hover{text-decoration:underline}.link-pop a.link-open[hidden]{display:none}.link-status{margin-top:6px;font-size:12px}.link-boards{max-height:45vh;margin-top:10px;overflow-y:auto}.link-boards>.muted{padding:8px 0}.link-row{border-top:1px solid var(--border);padding:10px 0}.link-row-title>span{color:var(--muted)}.link-row.lost .link-status>div:first-child{color:var(--warn)}.link-pop .link-row .row{margin-top:8px}.link-new{border-top:1px solid var(--border);padding-top:10px}.link-status:empty{display:none}.ai-sub{border-top:1px solid var(--border);margin:14px 0 4px;padding-top:10px;font-size:12px;font-weight:600}.ai-ops{background:var(--panel-2);border-radius:var(--r-control);overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;max-height:min(40vh,320px);margin:4px 0 0;padding:6px 8px 6px 30px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;overflow-y:auto}.ai-ops li.done{color:var(--muted)}.ai-ops li.failed{color:var(--error);font-weight:600}.menubar,.tools,.ctxbar,.statusbar{flex:none}.view-pop{width:min(440px,100% - 16px);min-width:0}.view-pop .choices{grid-template-columns:1fr 1fr;gap:2px 12px;max-height:min(50vh,360px);margin:8px 0 6px;display:grid;overflow-y:auto}.view-pop .choices label{cursor:pointer;white-space:nowrap;align-items:baseline;gap:6px;display:flex}.view-pop .fields{flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:6px;display:flex}.view-pop .fields label{align-items:center;gap:5px;display:flex}.view-pop .fields label[hidden],.menu-items button[hidden]{display:none}.view-pop .fields input[type=number]{width:64px}.view-label{z-index:5;color:var(--accent);background:var(--c-dim-bg);border-radius:var(--r-control);pointer-events:none;white-space:nowrap;padding:1px 6px;font-size:11px;position:absolute;transform:translate(-50%,4px)}.packs-pop{width:min(460px,100% - 16px);min-width:0;max-height:calc(100% - 16px);overflow-y:auto}.your-tools{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:12px;padding-top:10px;display:flex}.your-tool{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.tool-problems{color:var(--error);font-size:12px}.packs{flex-direction:column;gap:8px;margin:10px 0 2px;display:flex}.packs .pack{cursor:pointer;align-items:flex-start;gap:8px;display:flex}.packs .pack input{margin-top:3px}.packs .pack-tools{color:var(--text);margin-top:2px;display:block}#update-bar,#kernel-failed{z-index:90;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-pop);width:max-content;max-width:calc(100% - 24px);color:var(--text);align-items:center;gap:10px;padding:8px 10px 8px 14px;font-size:13px;display:flex;position:absolute;bottom:56px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000059}.ai-panel{flex-direction:column;flex:1 1 0;min-height:50%;padding-left:0;padding-right:0;display:flex;overflow:hidden}.dock .ai-panel>h3{align-items:center;gap:6px;margin-left:10px;margin-right:10px;display:flex}@media (min-width:601px){.dock.ai-open{overflow-y:auto}.dock.ai-open>.dock-panel{flex:none;max-height:none;overflow:visible}.dock.ai-open>.ai-panel{height:60%;min-height:0;overflow:hidden}.dock.ai-open>.props-panel{flex:1 0 auto}}.ai-panel .ai-title{flex:1}.ai-panel .ai-new{text-transform:none;letter-spacing:normal}.ai-panel.collapsed .ai-new{display:none}.ai-chat{flex-direction:column;flex:auto;min-height:0;display:flex}.ai-chat .grow{flex:1}.ai-chat [hidden]{display:none!important}.ai-meter{border-bottom:1px solid var(--border);color:var(--muted);font-variant-numeric:tabular-nums;padding:2px 10px 8px;font-size:12px}.ai-meter-bar{background:var(--panel-2);border-radius:var(--r-control);height:4px;margin-top:4px;overflow:hidden}.ai-meter-bar>span{background:var(--accent);border-radius:var(--r-control);height:100%;transition:width .3s;display:block}.ai-meter[data-state=low] .ai-meter-text{color:var(--warn)}.ai-meter[data-state=low] .ai-meter-bar>span{background:var(--warn)}.ai-meter[data-state=out] .ai-meter-bar>span{display:none}.ai-meter[data-state=out] .ai-meter-text{color:var(--error);font-weight:600}.ai-meter[data-state=none] .ai-meter-bar{display:none}.ai-chat-list{flex-direction:column;flex:1;gap:8px;min-height:0;padding:10px;display:flex;overflow-y:auto}.ai-msg{border-radius:var(--r-panel);overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;max-width:100%;padding:6px 9px}.ai-msg p{margin:0 0 4px}.ai-msg.you{background:var(--accent-soft);white-space:pre-wrap;align-self:flex-end;max-width:88%}.ai-msg.ai{background:var(--panel-2);align-self:stretch}.ai-msg.ai.busy{color:var(--muted)}.ai-msg.ai.busy:after{content:"";vertical-align:-1px;border:2px solid var(--accent);border-right-color:#0000;border-radius:50%;width:10px;height:10px;margin-left:6px;animation:.8s linear infinite ai-spin;display:inline-block}@keyframes ai-spin{to{transform:rotate(360deg)}}.ai-msg.error{border-left:3px solid var(--error)}.ai-msg-error{color:var(--error)}.ai-msg .row{gap:6px;margin-top:6px;display:flex}.ai-run{margin:4px 0;font-size:12px}.ai-tool{border-left:3px solid var(--accent);margin:4px 0;padding:4px 6px;font-size:12px}.ai-link{color:var(--ok);margin:4px 0;font-size:12px}.ai-link.failed{color:var(--muted)}.ai-link a{color:var(--accent)}.ai-retried{border-top:1px solid var(--border);color:var(--muted);margin:6px 0 4px;padding-top:4px;font-size:12px}.ai-run summary{cursor:pointer;color:var(--ok)}.ai-run.failed summary{color:var(--muted)}.ai-run-ops{counter-reset:op;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-control);max-height:180px;margin:4px 0 0;padding:4px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;list-style:none;overflow-y:auto}.ai-run-ops li:before{counter-increment:op;content:counter(op) ". ";color:var(--muted)}.ai-run-ops li{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ai-run-ops li b{font-weight:600}.ai-run-ops li.skipped{color:var(--muted)}.ai-run-ops li.failed{color:var(--error);white-space:normal}.ai-run-error{font-family:system-ui,-apple-system,Segoe UI,sans-serif}.ai-msg-foot{color:var(--muted);align-items:center;gap:6px;margin-top:6px;font-size:11px;display:flex}.ai-cost{font-variant-numeric:tabular-nums}.ai-empty{color:var(--muted)}.ai-empty p{margin:0 0 8px}.ai-examples{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.ai-example{text-align:left;border-radius:var(--r-pop)}.ai-chat-foot{border-top:1px solid var(--border);padding:8px 10px 10px}.ai-about{background:var(--accent-soft);border:1px solid var(--accent);border-radius:999px;align-items:center;gap:4px;max-width:100%;margin-bottom:6px;padding:2px 2px 2px 10px;font-size:12px;display:inline-flex}.ai-about-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ai-about-clear{width:20px;height:20px;color:var(--muted);background:0 0;border:0;border-radius:999px;flex:none;padding:0;line-height:1}.ai-about-clear:hover{color:var(--text);background:var(--panel-2)}.ai-msg-about{color:var(--muted);margin-bottom:2px;font-size:11px}.ai-chat-foot textarea{resize:none;width:100%;font:inherit;color:inherit;background:var(--input);border:1px solid var(--border);border-radius:var(--r-control);padding:6px 8px;display:block}.ai-chat-foot textarea:focus{border-color:var(--accent);outline:none}.ai-chat-foot textarea:disabled{opacity:.6}.ai-chat-foot .row{align-items:center;gap:6px;margin-top:6px;display:flex}.ai-chat-foot button.link{color:var(--accent);background:0 0;border:0;padding:0;font-size:12px}.ai-chat.hand-off .ai-chat-foot button.link{border:1px solid var(--accent);border-radius:var(--r-control);padding:4px 10px}.ai-chat-phone{color:var(--muted);font-size:12px;display:none}@media (max-width:600px){.ai-chat-foot textarea,.ai-chat-foot .ai-about,.ai-chat-foot .ai-send,.ai-examples{display:none}.ai-chat-phone{margin-top:4px;display:block}}.customize{z-index:14;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-panel);flex-direction:column;width:max-content;min-width:220px;max-width:min(320px,100% - 20px);max-height:calc(100% - 20px);display:flex;position:absolute;top:10px;right:10px;box-shadow:0 4px 18px #00000040}.customize[hidden]{display:none}body.customize-open :is(.measure-panel,.stage-tabs){right:calc(var(--customize-w,240px) + 20px)}.customize-head{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:6px 8px 6px 10px;display:flex}.customize-head button{padding:2px 8px}.customize-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.customize .grow{flex:1}.customize-list{flex:0 auto;min-height:0;padding:2px 10px 4px;overflow-y:auto}.customize-row{padding:5px 0 3px}.customize-row+.customize-row{border-top:1px solid var(--border)}.customize-label{align-items:center;gap:6px;display:flex}.customize-name{flex:1;min-width:0}.customize-num{text-align:right;font-variant-numeric:tabular-nums;width:64px;padding:1px 6px}.customize-unit{min-width:2ch;font-size:12px}.customize-ends{font-variant-numeric:tabular-nums;align-items:center;gap:6px;display:flex}.customize-text,.customize-choice{width:100%;margin:3px 0 1px;padding:2px 6px;display:block}.customize-seg{flex-wrap:wrap;gap:2px;display:flex}.customize-row>.customize-seg{margin:3px 0 1px}.customize-row input[type=range]{min-width:140px;accent-color:var(--accent);flex:1;margin:2px 0}.customize-status{border-radius:var(--r-control);background:color-mix(in srgb, var(--error) 15%, transparent);color:var(--error);margin:0 10px 6px;padding:6px 8px;font-size:12px}.customize-status[hidden],.customize-note:empty{display:none}.customize-status button{margin-top:6px}.customize-note{border-top:1px solid var(--border);padding:4px 10px 8px}.customize-note,.customize-status{contain:inline-size}.params-foot{justify-content:space-between;margin-top:4px}.share-pop label.check{align-items:center;gap:6px;margin:0 0 6px;display:flex}body.customizer .workspace{grid-template-rows:1fr;grid-template-columns:1fr}body.customizer :is(.tools,.dock,.ctxbar,.stage-tabs,#banner,#pickfilter,#welcome,#measure,#checks),body.customizer .menubar>:is(#part-menu,#new,#open,#save,.sep,#share,#palette,#settings),body.customizer #export-menu>:is(button:not([data-export=stl],[data-export="3mf"],[data-export=step],[data-cut]),#export-history){display:none!important}body.customizer #doc-name{pointer-events:none}#edit-in-parts{margin-left:4px}@media (max-width:600px){body.customize-open .customize{border:0;border-top:1px solid var(--border);width:auto;min-width:0;max-width:none;max-height:45%;box-shadow:none;border-radius:0;inset:auto 0 0}body.customize-open .customize-list{flex:0 auto;min-height:0;overflow-y:auto}body.customize-open .customize-note{flex:none}body.customize-open #view3d{height:calc(100% - var(--customize-h,45%))}body.customize-open .dock{display:none}body.customize-open :is(#update-bar,#kernel-failed){bottom:calc(var(--customize-h,45%) + 10px)}body.customize-open :is(.measure-panel,.stage-tabs){right:10px}body.customize-open .stage-tabs{bottom:calc(var(--customize-h,45%) + 10px)}body.customizer .menubar #doc-name{display:none}}.trace-pop{width:auto;max-width:calc(100% - 16px)}.trace-view{border:1px solid var(--border);border-radius:var(--r-control);margin:6px auto 4px;display:block}.trace-pop .link-field>input[type=range]{accent-color:var(--accent);flex:1}.trace-pop .link-field>input[type=number]{flex:0 0 90px}.trace-pop .link-field>input[type=checkbox]{flex:none;margin:0}.trace-size{color:var(--muted);font-size:12px}.trace-pop .link-field>span:first-child{flex:0 0 72px}.trace-pop .link-field>.trace-unit{flex:none}.trace-pop .link-field>.trace-size,.trace-pop .link-field>.trace-check{flex:auto}.trace-pop .link-field>.trace-bridge-width{flex:0 0 64px}.trace-pop .link-field>.trace-bridge-width:disabled{opacity:.45}.popover.examples-pop{width:min(900px,100% - 24px);max-height:calc(100% - 24px);padding:12px 14px 14px;overflow-y:auto}.examples-head{justify-content:space-between;align-items:center;display:flex}.examples-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:10px;display:grid}.example-card{border:1px solid var(--border);border-radius:var(--r-panel);cursor:pointer;flex-direction:column;gap:3px;padding:8px;line-height:1.35;display:flex}.example-card:hover,.example-card:focus-visible{border-color:var(--accent);outline:none}.example-card img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-control);background:var(--bg);width:100%;height:auto;margin-bottom:4px}.example-card a,.credit a{color:var(--accent)}.credit{margin:-2px 0 6px;font-size:12px;line-height:1.35}@media (max-width:600px){.examples-grid{grid-template-columns:1fr 1fr;gap:8px}}.help-q{vertical-align:baseline;border-radius:50%;min-width:0;padding:0 6px;font-weight:600}.help-q.active{background:var(--accent-soft)}.help-more{margin-top:4px}.menu-empty{padding:6px 10px;font-size:12px}.palette-list button.off{opacity:.55;cursor:default}.palette-list button.off .why{font-style:italic}.checklist label.hot,.checklist label:hover{background:var(--accent-soft)}.color-seg .swatch{vertical-align:-1px;width:10px;height:10px;display:inline-block}@media (pointer:coarse){button,select,summary,input:not([type=checkbox],[type=radio],[type=range],[type=color]),.dock-panel>h3,#steps li,.legend-row,#history li,label.menu-tick,label.check{min-height:40px}button{min-width:40px}input[type=range]{height:40px}input[type=checkbox],input[type=radio]{width:20px;height:20px}button.swatch{outline-offset:-14px;border:none;outline:1px solid #0000004d;width:40px;height:40px;padding:13px;background-clip:content-box!important}.dock-panel{padding-top:0;padding-bottom:4px}.dock h3{align-items:center;gap:4px;margin:0;display:flex}#steps li,.legend-row{padding-top:0;padding-bottom:0}button.eye{justify-content:center;align-items:center}.ctxbar .color-chip,.color-pop .color-chip,.ctxbar .color-more{min-width:40px;height:40px;line-height:38px}.color-pop{grid-template-columns:repeat(6,40px)}.viewnav{width:148px;height:148px;transform:none}.viewnav-btn{width:40px;height:40px;color:var(--text);background:var(--panel-2);border-color:var(--border);font-size:15px}.viewnav-btn.n{top:0;left:54px}.viewnav-btn.s{bottom:0;left:54px}.viewnav-btn.w{top:54px;left:0}.viewnav-btn.e{top:54px;right:0}.viewnav-btn.nw{top:0;left:0}.viewnav-btn.ne{top:0;right:0}.viewnav-btn.sw{bottom:0;left:0}.viewnav-btn.fit{padding:0;font-size:12px;bottom:0;left:auto;right:0}.viewcube{top:46px;left:46px}.dock{overflow-y:auto}.dock>.dock-panel{flex:none;max-height:none;overflow:visible}.dock>.props-panel{flex:1 0 auto}}@media (pointer:coarse) and (min-width:601px) and (max-width:900px){.dock{max-height:40vh}}@media (pointer:coarse) and (max-width:600px){.viewnav{--view-inset:88px;width:80px;height:170px;bottom:8px;right:8px}.viewnav-btn:is(.n,.s,.w,.e,.nw,.ne){display:none}.viewnav-btn.sw{top:84px;bottom:auto;left:20px}.viewnav-btn.fit{inset:auto auto 0 20px}.viewcube{top:12px;left:12px;transform:none}body.customize-open .viewnav{--view-inset:0px;display:none}body:not(.customize-open) .banner.one-row{max-width:calc(100% - 104px);left:calc(50% - 44px)}}@media (hover:none){:is(.ctx-menu,.palette-list) kbd{display:none}}@media (max-width:600px){.banner{white-space:normal;flex-wrap:wrap;justify-content:center;row-gap:6px;width:max-content}.banner.one-row{white-space:nowrap;flex-wrap:nowrap;gap:6px;padding:6px 8px}.banner.one-row>span{text-overflow:ellipsis;min-width:0;overflow:hidden}}@media (pointer:coarse){input,select,textarea{font-size:16px}}@media (pointer:coarse) and (max-height:500px){.tools{display:none}.viewnav{--view-inset:88px;width:80px;height:130px;bottom:8px;right:8px}.viewnav-btn:not(.fit){display:none}.viewnav-btn.fit{inset:auto auto 0 20px}.viewcube{top:12px;left:12px;transform:none}.menubar{flex-wrap:nowrap;gap:4px}.menubar :is(.brand,.sep,#palette .pal-label,#palette kbd){display:none}#palette .pal-icon{display:inline}.menu-items{max-height:calc(100vh - 60px);overflow-y:auto}.menubar #doc-name{flex:60px;min-width:0}.menubar>button{flex:none;padding-left:8px;padding-right:8px}.menubar>.grow{display:none}.workspace,body[data-toolbar] .workspace{grid-template-rows:1fr;grid-template-columns:1fr 260px}.dock,body[data-toolbar] .dock{border-top:0;border-left:1px solid var(--border);grid-column:2;max-height:none}body.customize-open .dock{display:none}body.customize-open .workspace{grid-template-columns:1fr}body.customize-open .customize{border:0;border-left:1px solid var(--border);width:260px;max-width:none;max-height:none;box-shadow:none;border-radius:0;top:0;bottom:0;right:0}body.customize-open #view3d{width:calc(100% - 260px)}body.customize-open :is(.measure-panel,.stage-tabs){right:270px}body.customize-open .banner{white-space:normal;flex-wrap:wrap;max-width:calc(100% - 300px);left:calc(50% - 130px)}}body.join-page{overflow:auto}.join-card,.access-card{flex-direction:column;gap:10px;width:min(480px,92vw);display:flex}.join-card p,.access-card p{margin:0}.join-card>b,.access-card .help-head b{font-size:14px}.join-error:empty{display:none}.join-error{color:var(--warn)}.join-actions{justify-content:flex-end;gap:8px;display:flex}.access-link{gap:8px;display:flex}.access-link input{flex:1;min-width:0}.access-list{border:1px solid var(--border);border-radius:var(--r-pop);flex-direction:column;display:flex}.access-row{align-items:center;gap:8px;min-height:28px;padding:6px 10px;display:flex}.access-row+.access-row{border-top:1px solid var(--border)}.access-row>span{flex:1}.join-card .muted,.access-card .muted,.share-pop .share-private .muted{color:var(--muted)}.access-card .small,.share-pop .share-private .small{font-size:12px}.access-link input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.share-pop .share-private{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:8px;padding-bottom:8px;display:flex}.share-pop .share-private>div{flex:1}.access-fresh{flex-direction:column;gap:6px;display:flex}.ai-sizes{margin:6px 0 2px;font-size:12px}.ai-sizes.miss{border-left:3px solid var(--warn);background:color-mix(in srgb, var(--warn) 10%, transparent);border-radius:var(--r-control);padding:4px 8px}.ai-sizes.miss b{color:var(--warn);font-weight:600;display:block}.ai-sizes.ok{color:var(--muted)}
