:root{color-scheme:dark;accent-color:var(--accent);--chrome-900: #1c1e21;--chrome-800: #26292e;--chrome-700: #33373d;--chrome-600: #43484f;--ink-hi: #f2f3f5;--ink-mid: #b4bac2;--ink-low: #7a818b;--paper: #ffffff;--ink: #1c2733;--muted: #5b6b7b;--grid-blue: #aecde8;--grid-blue-pale: #e8f1fa;--accent: #ff9800;--accent-deep: #e65100;--danger: #c62828;--danger-bg: rgba(198, 40, 40, .18);--danger-ink: #ef9a9a;--place: #7c4dff;--place-soft: #b39ddb;--place-press: rgba(124, 77, 255, .25);--ok: #16a34a;--ok-deep: #2e7d32;--ok-glow: rgba(46, 125, 50, .65);--ok-tint: rgba(22, 163, 74, .16);--ok-ink: #86efac;--cl-blue: #1e88e5;--link: #aecde8;--nav: #0a357b;--nav-ink: #90caf9;--nav-tint: rgba(66, 165, 245, .16);--sel-bar: 5px;--accent-tint: rgba(255, 152, 0, .14);--route-ext: #c77d24;--route-ext-ink: #ffcc80;--route-ext-bg: rgba(214, 143, 42, .18);--warn: #9a6a00;--warn-bg: #fff6e0;--warn-ink: #ffcc80;--error: #a12626;--marker: #ffeb3b;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 28px;--sp-8: 32px;--veil-sheet: rgba(28, 30, 33, .6);--veil-input: rgba(38, 41, 46, .7);--veil-btn: rgba(51, 55, 61, .5);--ghost-ink: rgba(242, 243, 245, .55);--ghost-veil: rgba(28, 30, 33, .35);--r-1: 8px;--r-2: 12px;--r-pill: 999px;--shadow-sheet: 0 6px 24px rgba(0, 0, 0, .5);--scrim: rgba(0, 0, 0, .5);--touch: 44px;--text-xs: 11px;--text-sm: 13px;--text-md: 15px;--text-lg: 18px;--text-xl: 22px}.num,.dim-input,.keypad-value,.keypad-preview,.control-sel-value,.control-compute-chip,.ghost-val,.control-point-reading,.fd-val,.sheet-head-value,.lib-spool-chip,.catalog-name{font-variant-numeric:tabular-nums}*{box-sizing:border-box}html,body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:pan-x pan-y}body{margin:0;background:var(--chrome-900);color:var(--ink-hi);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{max-width:760px;margin:0 auto;padding:var(--sp-3) var(--sp-3) 48px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea{-webkit-user-select:text;user-select:text}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.app-header h1{margin:var(--sp-2) 0 0;font-size:1.5rem}.new-drawing{flex-shrink:0;white-space:nowrap}.confirm-card{background:var(--chrome-800);border:1px solid var(--chrome-600);border-radius:var(--r-2);padding:var(--sp-4);max-width:340px;margin:30vh auto 0}.confirm-title{margin:0 0 var(--sp-1);font-weight:700}.confirm-note{margin:0 0 var(--sp-3);color:var(--ink-mid);font-size:.9rem}.confirm-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.confirm-danger{border-color:var(--danger);color:var(--danger-ink)}.saved-select{min-height:40px;border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700)}.gasket-side{font-size:.8rem;color:var(--ink-mid)}.keypad-label-row{display:flex;align-items:center;gap:var(--sp-2);margin:var(--sp-1) 0;font-size:.85rem;color:var(--ink-mid)}.keypad-label-row input{flex:1;min-width:0;min-height:36px;border:1px solid var(--chrome-600);border-radius:var(--r-1);padding:0 var(--sp-2)}.tagline{margin:2px 0 var(--sp-3);color:var(--ink-mid);font-size:.9rem}@media(max-width:480px){.tagline{display:none}.app-header h1{font-size:1.2rem;margin:var(--sp-1) 0}}.card{border:1px solid var(--chrome-600);border-radius:var(--r-2);padding:var(--sp-3);margin-bottom:var(--sp-3);background:var(--chrome-800)}.setup-card{padding:var(--sp-2) var(--sp-2)}.setup-head{display:flex;align-items:center;gap:var(--sp-2);width:100%;border:none;background:none;cursor:pointer;padding:var(--sp-1) 0;text-align:left;min-height:36px}.setup-head-static{cursor:default;margin:0;min-height:0}.setup-chev{color:var(--ink-mid);flex-shrink:0}.setup-title{font-weight:700;flex-shrink:0}.setup-summary{color:var(--ink-mid);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.setup-head+.setup-grid{margin-top:var(--sp-2)}.setup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-2)}.setup-grid label{display:flex;flex-direction:column;gap:var(--sp-1);font-size:.8rem;color:var(--ink-mid)}.custom-bender{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--chrome-600);display:flex;flex-direction:column;gap:var(--sp-2)}.advanced-head{display:flex;align-items:center;gap:var(--sp-2);width:100%;border:none;background:none;cursor:pointer;padding:2px 0;text-align:left;min-height:32px}.advanced-title{font-weight:600;font-size:.85rem}.advanced-body{display:flex;flex-direction:column;gap:var(--sp-3)}.advanced-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-2)}.advanced-row label{display:flex;flex-direction:column;gap:var(--sp-1);font-size:.8rem;color:var(--ink-mid)}.advanced-row.annot-master-row{display:flex;align-items:center;gap:var(--sp-2)}.annot-master-label{flex:1;color:var(--ink-mid);font-size:.8rem}.annot-step-btn{min-width:var(--touch);min-height:var(--touch);background:var(--chrome-700);border:1px solid var(--chrome-600);border-radius:var(--r-1);color:var(--ink-hi);font-size:var(--text-lg)}.annot-step-btn:disabled{color:var(--ink-low)}.annot-master-val{min-width:52px;text-align:center;color:var(--ink-hi)}.advanced-summary{margin-left:auto;font-size:.75rem;color:var(--ink-mid)}.drift-note{margin:0;color:var(--ink-mid);font-size:var(--text-xs);line-height:1.5}.drift-note strong{color:var(--ink-hi);font-weight:600}.drift-rows{display:flex;flex-direction:column}.drift-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:var(--touch);padding:0 var(--sp-1);border-bottom:1px solid var(--chrome-600);color:var(--ink-hi);font-size:var(--text-sm)}.drift-row:last-child{border-bottom:none}.drift-row.drift-worst{color:var(--ink-mid)}.drift-group{margin-top:var(--sp-2);color:var(--ink-mid);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.drift-run-row{align-items:flex-start;padding-top:var(--sp-2);padding-bottom:var(--sp-2)}.drift-run-name{display:flex;flex-direction:column;gap:2px;min-width:0}.drift-run-dirs{color:var(--ink-mid);font-size:var(--text-xs);font-style:normal}.placement-reset{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.placement-count{font-size:.8rem;color:var(--ink-mid)}.btn-ghost{min-height:34px;padding:0 var(--sp-3);border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);cursor:pointer;font-weight:600;font-size:.85rem;white-space:nowrap}.btn-ghost:disabled{opacity:.45;cursor:default}.gain-row select.gain-delta{min-height:36px;border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700)}.gain-adjust{display:flex;flex-direction:column;gap:var(--sp-2)}.gain-adjust-head{display:flex;align-items:center;justify-content:space-between}.gain-adjust-title{font-size:.85rem;font-weight:600;color:var(--ink-hi)}.gain-add{border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);padding:var(--sp-1) var(--sp-3);min-height:36px;cursor:pointer}.gain-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.gain-row{display:flex;flex-direction:column;gap:var(--sp-1)}.gain-row-inputs{display:flex;align-items:center;gap:var(--sp-2)}.gain-row-warn{font-size:.75rem;color:var(--danger-ink)}.gain-row-bad .gain-deg,.gain-row-bad .gain-delta{border-color:var(--danger)}.gain-row .gain-deg{width:4.5rem;flex:0 0 auto;text-align:center}.gain-row .gain-delta{flex:1 1 auto;min-width:0}.gain-dash{color:var(--ink-mid)}.gain-del{flex:0 0 auto;border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);color:var(--ink-mid);min-height:var(--touch);width:var(--touch);cursor:pointer}.bender-save{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;margin-top:2px}.save-suggest{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-1);padding:var(--sp-2) var(--sp-2);border:1px solid var(--chrome-600);border-radius:var(--r-2);background:var(--chrome-700);font-size:.8rem;color:var(--warn-ink)}.save-suggest-text{flex:1 1 180px}.save-suggest-actions{display:flex;gap:var(--sp-2);align-items:center}.save-suggest-go{border:1px solid var(--warn-ink);color:var(--warn-ink);background:var(--chrome-800);border-radius:var(--r-1);padding:var(--sp-1) var(--sp-2);font-size:.8rem;cursor:pointer;min-height:32px}.save-suggest-x{border:none;background:transparent;color:var(--ink-mid);font-size:.95rem;cursor:pointer;padding:var(--sp-1) var(--sp-2);line-height:1}.keypad-backdrop.nogrip-backdrop{z-index:60}.gain-ref{font-size:.8rem;color:var(--ink-mid);background:var(--chrome-800);border-radius:var(--r-1);padding:var(--sp-2) var(--sp-2)}.gain-ref summary{cursor:pointer;font-weight:600;color:var(--ink-hi)}.gain-ref ul{margin:var(--sp-2) 0 0;padding-left:18px;display:flex;flex-direction:column;gap:var(--sp-1)}.gain-ref code{background:var(--chrome-700);padding:1px var(--sp-1);border-radius:var(--r-1)}.bender-caption{font-weight:600;color:var(--ink-hi);margin-top:0}.span-all{grid-column:1 / -1}select,input,button{font:inherit;color:var(--ink-hi)}select,input{padding:var(--sp-2);border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);min-height:var(--touch)}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.calc-sheet button:focus-visible{outline-color:var(--calc-accent)}.run-rows{display:flex;flex-direction:column;gap:var(--sp-2)}.row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.row-label{width:64px;flex-shrink:0;font-size:.85rem;font-weight:600}.leg-row{background:var(--ghost-veil);border-radius:var(--r-1);padding:var(--sp-2)}.bend-row{padding:0 var(--sp-2) 0 var(--sp-6)}.dim-input{flex:1;min-width:110px}.allowance-input{width:110px}.inline{display:flex;align-items:center;gap:var(--sp-1);font-size:.8rem;color:var(--ink-mid)}.angle-input,.roll-input{width:72px}.remove-btn{margin-left:auto;border:1px solid var(--chrome-600);background:var(--chrome-700);border-radius:var(--r-1);min-height:var(--touch);min-width:var(--touch);cursor:pointer;color:var(--ink-mid)}.add-btn{margin-top:var(--sp-2);width:100%;min-height:var(--touch);border:1px dashed var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-800);cursor:pointer;font-weight:600}.hint{color:var(--ink-low);font-size:.8rem;margin:var(--sp-2) 0 0}.hint code{background:var(--chrome-700);padding:1px var(--sp-1);border-radius:var(--r-1)}.help-wrap{position:relative;display:inline-flex;vertical-align:middle;margin-left:var(--sp-1)}.help-btn{position:relative;width:28px;height:28px;padding:0;border:1px solid var(--chrome-600);border-radius:var(--r-pill);background:var(--chrome-700);color:var(--ink-mid);font-size:var(--text-sm);font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.help-btn:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:var(--r-pill)}.help-btn.on{outline:2px solid var(--accent);outline-offset:1px;color:var(--ink-hi)}.help-pop{position:fixed;z-index:40;max-width:280px;background:var(--chrome-800);border:1px solid var(--chrome-600);border-radius:var(--r-2);box-shadow:var(--shadow-sheet);padding:var(--sp-3);font-size:var(--text-sm);font-weight:400;color:var(--ink-mid);text-align:left;white-space:normal}.error{color:var(--danger-ink);background:var(--danger-bg);border-radius:var(--r-1);padding:var(--sp-2);margin:0}.cut-length{display:flex;align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-2)}.cut-label{font-size:.85rem;color:var(--ink-mid);text-transform:uppercase;letter-spacing:.05em}.cut-value{font-size:1.7rem;font-weight:700}.cut-value-bad{color:var(--danger-ink)}table.marks{width:100%;border-collapse:collapse;font-size:.9rem}.marks th,.marks td{text-align:left;padding:var(--sp-2) var(--sp-1);border-bottom:1px solid var(--chrome-600);vertical-align:top}.marks thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-mid);border-bottom:2px solid var(--chrome-600)}.marks th.num,.marks td.num{text-align:right}.primary-col{font-weight:700;white-space:nowrap}.align-cell{font-size:.8rem;color:var(--ink-mid)}.flag-dot{margin-left:var(--sp-1);cursor:help}.flag-list{margin:var(--sp-2) 0 0;padding:var(--sp-2) var(--sp-3);list-style:none;background:var(--chrome-800);color:var(--warn-ink);border-radius:var(--r-1);font-size:.85rem}.flag-list li{padding:2px 0}.dir-cell{white-space:nowrap}.dir-select{font:inherit;font-size:.85rem;padding:3px var(--sp-1);border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);color:var(--ink-hi)}.dir-reverse{color:var(--danger-ink);font-weight:700;border-color:var(--danger)}.dir-nofit{color:var(--danger-ink);font-weight:700;font-size:.85rem}.tool-cell{white-space:nowrap}.tool-input{width:4.2rem;font:inherit;font-size:.85rem;padding:3px var(--sp-1);border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);color:var(--ink-hi)}.tool-input::placeholder{color:var(--ink-low);opacity:.7}.mark-infeasible td{background:var(--danger-bg)}.mark-infeasible .primary-col{color:var(--danger-ink)}.mark-suppressed td{color:var(--ink-low);background:var(--chrome-800)}.hint-infeasible{color:var(--danger-ink)}.tabs{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-3)}.tab{flex:1;min-height:var(--touch);border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);cursor:pointer;font-weight:600;color:var(--ink-mid)}.tab.active{background:var(--chrome-700);color:var(--ink-hi);border-width:2px;border-color:var(--accent)}[id^=pf-]{scroll-margin-top:8px}.view-btn{min-height:34px;padding:0 var(--sp-2);border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);cursor:pointer;font-weight:600;font-size:.85rem;white-space:nowrap}.view-btn:disabled{color:var(--ink-low);opacity:.5;cursor:default}.view-btn:active:not(:disabled){background:var(--chrome-600)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--chrome-900);font-weight:700}.btn-primary:active:not(:disabled){background:var(--accent-deep);border-color:var(--accent-deep)}.btn-primary:disabled{color:var(--chrome-900);opacity:.45}.tab:active,.step-chip:active,.scope-chips .chip:active,.export-screen .chip:active,.menu-btn:active,.tool-fab:active:not(.on),.add-btn:active,.remove-btn:active,.control-add:active{background:var(--chrome-600)}.iso-canvas-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--paper)}.iso-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.iso-canvas:active{cursor:grabbing}.grid-line{stroke:var(--grid-blue);stroke-width:1;stroke-opacity:.45;vector-effect:non-scaling-stroke}.break-gap{stroke:#fff;stroke-width:7;stroke-linecap:butt;vector-effect:non-scaling-stroke}.break-squiggle{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;vector-effect:non-scaling-stroke}.run-line{fill:none;stroke:var(--ink);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.flow-arrow{fill:var(--ink)}.node{fill:#fff;stroke:var(--ink);stroke-width:1.5;vector-effect:non-scaling-stroke}.node-start{fill:var(--ink)}.node-end{fill:var(--grid-blue)}.node-label{fill:var(--muted);font-weight:600}.compass-rose{position:absolute;top:58px;left:8px;width:96px;height:96px;pointer-events:none}.compass-bg{fill:#ffffffe0;stroke:var(--grid-blue);stroke-width:1.5}.compass-rose line{stroke-width:2.5}.compass-rose text{font-size:12px;font-weight:800}.compass-spin{position:absolute;top:156px;left:8px;width:28px;height:28px;padding:0;border:1px solid var(--chrome-600);border-radius:var(--r-pill);background:var(--chrome-700);color:var(--ink-hi);font-size:var(--text-md);line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.compass-spin:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:var(--r-pill)}.compass-spin:active{background:var(--chrome-600)}.compass-spin:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.zoom-controls{position:absolute;bottom:104px;right:8px;display:flex;flex-direction:column;gap:var(--sp-1)}.zoom-controls button{width:40px;height:40px;border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-800);cursor:pointer;font-size:1.1rem;font-weight:700;color:var(--ink-hi)}.zoom-controls button:disabled{opacity:.32;cursor:default}.zoom-controls .undo-btn{margin-top:var(--sp-1);height:auto;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;padding:3px 0}.undo-btn .ub-ic{font-size:1.25rem;font-weight:700}.undo-btn .ub-lb{font-size:.58rem;font-weight:700;color:var(--ink-mid);margin-top:1px}.zoom-controls .rail-word-btn{height:auto;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;padding:3px 0}.rail-word-btn .rw-ic{font-size:1.05rem;font-weight:700}.rail-word-btn .rw-lb{font-size:.55rem;font-weight:700;color:var(--ink-mid);margin-top:1px}.rail-word-btn .fitting-thumb line,.rail-word-btn .fitting-thumb path{stroke-width:.16}.rail-word-btn .fitting-thumb circle{r:.14}.zoom-controls .delete-fit-btn.on{border-color:var(--danger)}.delete-fit-btn.on .rw-ic,.delete-fit-btn.on .rw-lb{color:var(--danger-ink)}.iso-stage .delete-confirm{position:absolute;left:50%;transform:translate(-50%);bottom:152px;margin:0;z-index:30;box-shadow:var(--shadow-sheet)}.zoom-controls .view-rotate-btn{height:auto;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;padding:3px 0;font-size:1rem}.view-rotate-btn .vr-ic{font-size:1.05rem;font-weight:700}.view-rotate-btn .vr-lb{font-size:.58rem;font-weight:700;color:var(--ink-mid);margin-top:1px}.dim-line{stroke-width:1.5;vector-effect:non-scaling-stroke}.dim-leader{stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.dim-text{font-weight:700}.dim-group.ghost{opacity:.5}.dim-group.ghost .dim-text{font-weight:400}.fitting-symbol.ghost{stroke-dasharray:.14 .1}.size-ghost{fill:var(--ink);font-style:italic;opacity:.45}.color-input{padding:2px;min-height:44px;cursor:pointer}.keypad-open-btn{min-height:36px;min-width:36px;border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);cursor:pointer;font-weight:700;font-size:.75rem;color:var(--ink-mid)}.meas-eye{min-height:36px;min-width:30px;border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);cursor:pointer;font-size:.82rem;color:var(--ink-hi);padding:0 var(--sp-1)}.meas-eye.off{color:var(--ink-low);opacity:.5}.meas-eye-master{border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);cursor:pointer;font-size:.78rem;font-weight:700;color:var(--ink-hi);padding:3px var(--sp-2);white-space:nowrap}.meas-eye-master.off{color:var(--ink-low);opacity:.7}.sheet-control-pill{border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);cursor:pointer;font-size:.78rem;font-weight:700;color:var(--ink-hi);padding:3px var(--sp-2);white-space:nowrap}.sheet-control-pill.on{background:var(--accent);color:var(--chrome-900)}.dim-input.derived{font-style:italic;color:var(--ink-mid);background:var(--ghost-veil)}.dim-input.ghost{font-style:italic;color:var(--ghost-ink);background:var(--ghost-veil)}.dim-input.ghost::placeholder{font-style:italic;color:var(--ghost-ink);opacity:1}.dim-input.conflict{color:var(--danger-ink);border-color:var(--danger)}.dim-input.invalid,.offset-angle-select.invalid{border-color:var(--danger);background:var(--danger-bg);color:var(--danger-ink)}.offset-leg-row.invalid .row-label,.offset-angle-row.invalid .row-label{color:var(--danger-ink)}.offset-angle-select{flex:1;min-width:92px}.offset-angle-row{flex-wrap:wrap}.row.offset-angle-row :is(.offset-angle-select,.angle-input){min-width:92px}.offset-round-note{flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.offset-round-note>.hint{color:var(--warn-ink)}.offset-compute{font-weight:700}.offset-compute:disabled{opacity:.32}.offset-pick .tab:disabled{opacity:.3;cursor:default}.keypad-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:flex-end;justify-content:center;z-index:50}.keypad{width:100%;max-width:430px;background:var(--chrome-800);border:1px solid var(--chrome-600);border-radius:var(--r-2) var(--r-2) 0 0;padding:var(--sp-3);box-shadow:var(--shadow-sheet)}.keypad-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-2)}.keypad-title{font-weight:700;font-size:.9rem}.keypad-close{border:none;background:none;cursor:pointer;font-size:1rem;color:var(--ink-mid);min-height:var(--touch);min-width:var(--touch)}.keypad-display{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-900);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-2);min-height:var(--touch)}.keypad-value{font-size:1.25rem;font-weight:700;white-space:pre}.keypad-preview{font-size:.85rem;color:var(--ink-mid)}.keypad-preview.bad{color:var(--danger-ink)}.frac-chips{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-bottom:var(--sp-2)}.frac-chip{flex:1 0 50px;min-height:40px;border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);cursor:pointer;font-weight:600;font-size:.85rem}.frac-chip:active:not(:disabled){background:var(--chrome-600)}.frac-chip:disabled{color:var(--ink-low);opacity:.5;cursor:default}.keypad-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2)}.keypad-grid button{min-height:50px;border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);cursor:pointer;font-size:1.1rem;font-weight:600}.keypad-grid button:active:not(:disabled){background:var(--chrome-600)}.keypad-grid button:disabled{color:var(--ink-low);opacity:.5;cursor:default}.keypad-grid button.keypad-ft{font-size:.85rem;background:var(--chrome-600)}.keypad-grid button.keypad-done{grid-column:span 2;background:var(--accent);color:var(--chrome-900);font-weight:700}.keypad-grid button.keypad-done:active:not(:disabled){background:var(--accent-deep)}.keypad-grid button.keypad-done:disabled{color:var(--chrome-900);opacity:.45;cursor:default}.step-row{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap}.sel-chip{display:inline-flex;align-items:center;flex-wrap:wrap;gap:var(--sp-1);flex:1;min-width:180px;border-radius:var(--r-2);padding:var(--sp-1) var(--sp-2);font-size:.8rem;font-weight:600;color:var(--ink-mid);background:var(--chrome-800)}.sel-chip.place .sel-text{flex-basis:100%}.place-controls{display:inline-flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2)}.nudge-pair{display:inline-flex;gap:var(--sp-1)}.mating-type select,.reducer-size select,.reducer-sched select{border:1px solid var(--place-soft);border-radius:var(--r-1);background:var(--chrome-700);color:var(--place-soft);cursor:pointer;font-weight:600;min-height:36px;padding:0 var(--sp-2)}.reducer-near{font-weight:600;white-space:nowrap}.reducer-x{color:var(--ink-mid);font-weight:600;white-space:nowrap}.sel-set.nudge{min-width:42px;padding:0 var(--sp-2)}.sel-alt{border:1px solid var(--place-soft);border-radius:var(--r-1);background:var(--chrome-700);color:var(--place-soft);cursor:pointer;font-weight:600;min-height:36px;padding:0 var(--sp-3);white-space:nowrap}.sel-alt:active{background:var(--place-press)}.sel-chip.sel{background:var(--chrome-800);color:var(--ink-hi);border:1px solid var(--accent)}.sel-chip.place{background:var(--chrome-800);color:var(--accent);border:1px dashed var(--accent)}.sel-text{flex:1;min-width:0}.sel-clear{border:none;background:none;cursor:pointer;color:inherit;font-weight:700;min-width:36px;min-height:36px;padding:0 var(--sp-2)}.sel-set{border:none;border-radius:var(--r-1);background:var(--place);color:var(--ink-hi);cursor:pointer;font-weight:700;min-width:48px;min-height:36px;padding:0 var(--sp-2)}.step-label{font-size:.8rem;font-weight:700;color:var(--ink-mid)}.step-chip{min-width:40px;min-height:36px;border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);cursor:pointer;font-weight:600;color:var(--ink-mid)}.step-chip.active{background:var(--chrome-600);color:var(--ink-hi);border-width:2px}.step-row .hint{margin:0}.seg-squares{font-size:.8rem;font-weight:700;color:var(--ink-mid);min-width:34px}.dir-rose{position:relative;height:224px;margin-top:var(--sp-2)}.rose-overlay{position:absolute;left:8px;bottom:104px;width:156px;height:224px;margin:0;pointer-events:none}.rose-overlay .dir-btn{width:var(--touch);height:var(--touch);pointer-events:auto;background:var(--chrome-800);font-size:.66rem;gap:0}.rose-overlay .dir-arrow{font-size:.8rem}.rose-overlay .dir-btn:disabled{opacity:.22}.rose-overlay .rose-undo{width:38px;height:38px;pointer-events:auto;background:var(--chrome-800)}.rose-overlay .mode-btn{position:absolute;left:50%;transform:translate(-50%);pointer-events:auto;min-width:72px;min-height:32px;padding:var(--sp-1) var(--sp-4);border:1px solid var(--chrome-600);border-radius:var(--r-pill);background:var(--chrome-800);color:var(--ink-hi);font-weight:700;font-size:.78rem;cursor:pointer}.rose-overlay .mode-build{top:0}.rose-overlay .mode-move{bottom:0}.rose-overlay .mode-btn.on{background:var(--nav);border-color:var(--nav);color:var(--ink-hi)}.rose-overlay .rose-odd{background:var(--chrome-800);border-color:var(--nav-ink)}.rose-overlay .rose-odd .dir-arrow{color:var(--nav-ink)}.rose-overlay .rose-grow,.rose-overlay .rose-shrink{background:var(--route-ext);border-color:var(--route-ext)}.rose-overlay .rose-branch{background:var(--place);border-color:var(--place)}.rose-overlay .rose-grow .dir-arrow,.rose-overlay .rose-grow .dir-label,.rose-overlay .rose-shrink .dir-arrow,.rose-overlay .rose-shrink .dir-label,.rose-overlay .rose-branch .dir-arrow,.rose-overlay .rose-branch .dir-label{color:var(--ink-hi)}.rose-overlay .dir-label-word{font-size:.54rem;letter-spacing:-.02em;font-weight:800}.connect-overlay{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:31;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-pill);border:1px solid var(--ok-deep);background:var(--ok-deep);color:var(--ink-hi);font-size:.82rem;font-weight:600;cursor:pointer;box-shadow:0 2px 8px var(--scrim);animation:connect-pulse 1.4s ease-in-out infinite}@keyframes connect-pulse{0%,to{box-shadow:0 2px 8px var(--scrim)}50%{box-shadow:0 2px 16px var(--ok-glow)}}.dir-btn{display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--chrome-600);border-radius:var(--r-pill);width:56px;height:56px;justify-content:center;background:var(--chrome-800);cursor:pointer;font-weight:700;font-size:.8rem}.rose-btn{position:absolute;transform:translate(-50%,-50%)}.dir-btn:disabled{opacity:.35;cursor:default}.dir-arrow{display:inline-block;font-size:1rem;line-height:1}.rose-undo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:var(--r-pill);border:1px dashed var(--chrome-600);background:var(--chrome-800);cursor:pointer;font-size:1.2rem;color:var(--ink-mid)}.rose-undo:disabled{opacity:.35;cursor:default}.segment-list{margin-top:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-1)}.walk-row[data-depth="1"]{padding-left:var(--sp-3)}.walk-row[data-depth="2"]{padding-left:var(--sp-5)}.walk-row[data-depth="3"]{padding-left:var(--sp-7)}.walk-row[data-depth="4"]{padding-left:var(--sp-8)}.walk-row:not([data-depth="0"]){border-left:2px solid var(--chrome-600);background:var(--ghost-veil)}.walk-head{position:sticky;top:0;z-index:1;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);background:var(--veil-input);border-radius:var(--r-1)}.walk-head .row-label{font-weight:600;color:var(--ink-mid);width:auto}.walk-head-origin{border-bottom:1px solid var(--chrome-600)}.walk-head-branch .row-label{color:var(--ink-hi)}.walk-head-branch.selected{box-shadow:inset var(--sel-bar) 0 0 var(--nav-ink);background:linear-gradient(var(--nav-tint),var(--nav-tint)),var(--veil-input)}.walk-head-branch.selected .row-label{color:var(--ink-hi);font-weight:700}.walk-branch-end{height:var(--sp-2)}.leg-station-btn{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:var(--touch);min-width:var(--touch);padding:0 var(--sp-2);background:none;border:none;border-radius:var(--r-1);color:var(--ink-low);font-size:var(--text-sm)}.leg-station-word{color:var(--ink-mid)}.leg-station-btn.open{color:var(--ink-mid);background:var(--veil-btn)}.leg-station-btn.flagged{color:var(--danger-ink)}.leg-station-btn:disabled .leg-station-word{color:var(--danger-ink)}@media(max-width:430px){.row.seg-row .row-label{width:58px}.row.seg-row .dim-input{min-width:0}.row.seg-row{gap:var(--sp-1)}.row.seg-row .dim-input{flex-basis:92px;width:92px}.row.seg-row .seg-squares{min-width:0;font-size:var(--text-xs)}.walk-row[data-depth="1"]{padding-left:var(--sp-1)}.walk-row[data-depth="2"]{padding-left:var(--sp-2)}.walk-row[data-depth="3"]{padding-left:var(--sp-3)}.walk-row[data-depth="4"]{padding-left:var(--sp-4)}}.leg-station{flex-wrap:wrap;gap:var(--sp-2);margin:0 0 var(--sp-1) var(--sp-5);padding:var(--sp-1) var(--sp-2);background:var(--ghost-veil);border-left:2px solid var(--chrome-600);border-radius:0 var(--r-1) var(--r-1) 0}.leg-station .row-label{width:auto;color:var(--ink-low)}.leg-station-flag{flex-basis:100%;color:var(--danger-ink);font-size:var(--text-sm)}.leg-station .remove-btn{margin-left:auto;background:none;border:1px solid var(--chrome-600);color:var(--ink-mid)}.leg-station .remove-btn:active{background:var(--danger-bg);border-color:var(--danger);color:var(--danger-ink)}.sheet-body :is(button,select,[role=switch]),.sheet-body input:not([type=color]){min-height:var(--touch)}.sheet-body :is(.meas-eye,.keypad-open-btn,.fit-expand,.remove-btn,.squares-ctl button){min-width:var(--touch)}.sheet-body input[type=checkbox]{width:var(--touch);height:var(--touch)}.sheet-body .fit-expand{display:inline-flex;align-items:center;justify-content:center}.sheet-body input:not([type=color]){line-height:normal}.sel-row>.seg-row,.sel-row>.offset-card,.sel-row>.inline-row{box-shadow:inset var(--sel-bar) 0 0 var(--nav-ink);background:linear-gradient(var(--nav-tint),var(--nav-tint)),var(--ghost-veil)}.sel-row>.offset-card{border-left-color:var(--nav-ink)}.sel-row>.seg-row>.row-label,.sel-row>.inline-row>.row-label,.branch-section.selected>.branch-head>.row-label{color:var(--ink-hi);font-weight:700}.branch-section.selected{border-left-color:var(--nav-ink);box-shadow:inset 3px 0 0 var(--nav-ink);background:linear-gradient(var(--nav-tint),var(--nav-tint)),var(--ghost-veil)}.seg-row{background:var(--ghost-veil);border-radius:var(--r-1);padding:var(--sp-1) var(--sp-2);cursor:pointer}.seg-row .row-label{width:72px}.seg-row .dim-input{flex:0 0 102px;width:102px;min-width:0}.seg-bend-chip{font-size:.75rem;color:var(--ink-mid);border:1px dashed var(--chrome-600);border-radius:var(--r-1);padding:2px var(--sp-1)}.ends-row{background:var(--ghost-veil);border-radius:var(--r-1);padding:var(--sp-1) var(--sp-2);justify-content:space-between}.ftf-auto-row{justify-content:flex-start}.ftf-auto-toggle{font-size:.8rem;color:var(--ink-mid);background:none;border:none;padding:2px var(--sp-1);cursor:pointer}.ftf-auto-toggle.on{color:var(--link)}.grow-fit-row{justify-content:flex-start;padding:0 var(--sp-1)}.grow-fit-toggle{display:flex;align-items:center;min-height:var(--touch);font-size:.8rem;color:var(--ink-mid);background:none;border:none;padding:0 var(--sp-1);cursor:pointer}.grow-fit-toggle.on{color:var(--link)}.order-true-row{justify-content:flex-start;align-items:center;gap:var(--sp-2);padding:0 var(--sp-1)}.order-true-hint{font-size:.75rem;color:var(--ink-low)}.solidify-row{justify-content:flex-start}.solidify-btn{font-size:.8rem;color:var(--link);background:var(--ghost-veil);border:1px solid var(--chrome-600);border-radius:var(--r-1);padding:var(--sp-1) var(--sp-2);cursor:pointer}.inline-row{margin-left:var(--sp-3);background:var(--ghost-veil);border:1px dashed var(--chrome-600);border-radius:var(--r-1);padding:var(--sp-1) var(--sp-2)}.row select,.row input:not([type=checkbox]):not([type=color]){min-height:var(--touch);font-size:.85rem;max-width:100%;min-width:0}.inline-label{width:auto;min-width:96px;font-size:.8rem;color:var(--ink-mid)}.at-input,.ff-input{min-width:90px}.fit-meas{display:grid;grid-template-columns:72px auto auto minmax(60px,102px) minmax(0,1fr);align-items:center;gap:var(--sp-1) var(--sp-2);margin-left:0;background:var(--ghost-veil);border:1px dashed var(--chrome-600);border-radius:var(--r-1);padding:var(--sp-1) var(--sp-2)}.fit-name{font-size:.8rem;color:var(--ink-mid);white-space:nowrap}.meas-desc{font-size:.72rem;font-weight:600;letter-spacing:.02em;color:var(--ink-mid);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.fit-meas .dim-input{width:100%;min-width:0}.fit-expand{border:none;background:transparent;padding:0 var(--sp-1) 0 0;font-size:.8rem;color:var(--ink-mid);cursor:pointer;line-height:1}.dim-input.link-needs{background:var(--ghost-veil);color:var(--ghost-ink);font-style:italic;border-style:dashed}.fit-meas.link-held{outline:2px solid var(--danger);background:var(--danger-bg)}.custom-add-row{justify-content:flex-start}.custom-add-btn{font-size:.8rem;color:var(--link);background:var(--ghost-veil);border:1px solid var(--chrome-600);border-radius:var(--r-1);padding:var(--sp-1) var(--sp-2);cursor:pointer}.custom-add-btn.armed{color:var(--ink-hi);background:var(--ok);border-color:var(--ok)}.fit-meas.custom-row .remove-btn{border:none;background:transparent;color:var(--ink-mid);padding:0 var(--sp-1) 0 0;cursor:pointer}.custom-axis-chips{display:flex;gap:var(--sp-1);min-width:0}.custom-axis-chip{font-size:.72rem;color:var(--link);background:var(--chrome-700);border:1px solid var(--chrome-600);border-radius:var(--r-1);padding:2px var(--sp-1);cursor:pointer;white-space:nowrap}.fit-meas.link-held .dim-input.link-needs{color:var(--danger-ink);font-style:normal;border-color:var(--danger)}.fit-meas.chain-row{grid-template-columns:auto auto minmax(60px,102px) minmax(0,1fr) auto}.fit-meas.sel-meas{outline:2px solid var(--ok);background:var(--ok-tint)}.fit-meas.fit-direct{border-style:none;border-top:1px dashed var(--chrome-600);border-radius:0;margin-left:var(--sp-6);background:transparent;padding-top:var(--sp-1)}.fit-meas.tail-row{border-style:dotted}.meas-eye.eye-slot{visibility:hidden}.fit-meas.reducer-top-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2)}.fit-meas.reducer-top-row .row-label{flex-basis:100%}.results-toggle{display:block;width:100%;text-align:left;border:none;background:transparent;padding:var(--sp-2) var(--sp-1) var(--sp-1);font-size:.85rem;font-weight:700;color:var(--ink-mid);cursor:pointer}.measure-circle{fill:none;stroke:var(--ok);stroke-width:.12;opacity:.9}.measure-span{stroke:var(--ok);stroke-width:.55;stroke-linecap:round;opacity:.3}.measure-circle.red,.measure-span.red{stroke:var(--danger)}.meas-row{flex-wrap:wrap;row-gap:var(--sp-2)}.opts-row{margin-left:var(--sp-6);margin-top:var(--sp-1);background:transparent;border:none;border-top:1px dashed var(--chrome-600);border-radius:0;padding:var(--sp-1) var(--sp-2) 2px;gap:var(--sp-1)}.corner-select,.add-inline{font-size:.8rem}.gap-select{display:flex;gap:var(--sp-2)}.gap-custom{width:70px}.spool-label{margin:0 0 var(--sp-2);font-size:1.05rem}.takeoff h3{margin:var(--sp-3) 0 var(--sp-1);font-size:.9rem}.takeoff-list{margin:0;padding-left:0;list-style:none;font-size:.9rem}.takeoff-list li{padding:var(--sp-1) 0;border-bottom:1px solid var(--chrome-600)}.takeoff-list li:last-child{border-bottom:none}.piece-bad .primary-col{color:var(--danger-ink);font-weight:700}.placing-hint{margin:0;align-self:center;color:var(--accent);font-weight:600}.toggle{flex-direction:row!important;align-items:center;gap:var(--sp-2)}.toggle input{width:auto}.ghost-line{stroke:#9db8dd;stroke-width:.16;stroke-dasharray:.35 .25;stroke-linecap:round;opacity:.8}.ghost-tag{fill:#9db8dd;stroke:none;font-weight:600;opacity:.9}.construction-line{stroke:#78909c;stroke-width:1.2;stroke-dasharray:5 4;stroke-linecap:round;vector-effect:non-scaling-stroke}.construction-text{fill:#546e7a;font-weight:600}.construction-text.derived{font-style:italic;opacity:.8}.construction-arc{fill:none;stroke:#37474f;stroke-width:1.4;vector-effect:non-scaling-stroke}.construction-angle{fill:#37474f;font-weight:400}.control-line{fill:none;stroke-width:1.5;stroke-dasharray:9 3 2 3;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.9}.control-glow{fill:none;stroke-width:7;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.28}.control-glow-dot{stroke:none;opacity:.25}.control-line.approx{stroke-dasharray:9 3 2 3;opacity:.9}.control-label.control-name{font-style:italic}.control-gap{fill:none;stroke-width:1.5;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.85}.control-tick{fill:none;stroke-width:1.5;stroke-linecap:round;vector-effect:non-scaling-stroke}.control-leader{fill:none;stroke-width:1;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.8}.control-leader.connector{stroke-width:2;stroke-dasharray:0 5;opacity:.55}.control-reach{fill:none;stroke-width:.8;stroke-dasharray:2 2;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.45}.control-point{stroke:none}.control-label{font-weight:600;paint-order:stroke;stroke:var(--paper);stroke-linejoin:round}.control-panel{margin-bottom:.5rem;padding:.5rem;border-radius:.5rem;background:var(--ghost-veil)}.control-panel-head{display:flex;align-items:center;gap:.4rem;margin-bottom:.35rem}.control-panel-title{font-weight:700;font-size:.85rem;margin-right:auto}.control-add{border:1px solid var(--chrome-600);border-radius:var(--r-1);padding:.15rem .5rem;font-size:.8rem;background:var(--veil-btn);cursor:pointer}.control-add:hover{background:var(--chrome-600)}.control-add.value-on-place.on{background:var(--accent-tint);border-color:var(--accent);font-weight:600}.control-ref-select{font-size:.8rem;max-width:9rem;padding:.1rem .25rem}.control-line-item{border-top:1px solid var(--chrome-600)}.control-line-item.inert{opacity:.6}.control-row{display:flex;align-items:center;gap:.4rem;padding:.25rem 0}.control-dot{width:.7rem;height:.7rem;border-radius:50%;flex:0 0 auto}.control-open{display:flex;align-items:baseline;gap:.5rem;flex:1 1 auto;min-width:0;border:none;background:none;text-align:left;cursor:pointer;padding:.1rem 0}.control-kind{font-weight:600;text-transform:capitalize}.control-anchor{font-size:.78rem;color:var(--ink-mid);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.control-del{border:none;background:none;cursor:pointer;color:var(--danger-ink);font-size:.9rem;padding:.1rem .3rem}.control-card{padding:.4rem .2rem .5rem;display:flex;flex-direction:column;gap:.4rem}.control-card-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.control-field{display:flex;align-items:center;gap:.3rem;font-size:.8rem}.control-field select{background:var(--veil-input);border:1px solid var(--chrome-600);border-radius:.35rem;padding:.1rem .3rem}.control-flip,.control-reanchor{border:1px solid var(--chrome-600);border-radius:.4rem;padding:.15rem .5rem;font-size:.8rem;background:var(--veil-btn);cursor:pointer}.control-flip.on{background:var(--chrome-600)}.control-card .color-input{flex:0 0 auto;width:1.6rem;height:1.4rem;padding:0;border:1px solid var(--chrome-600);border-radius:.3rem;background:none}.control-label-input{flex:1 1 6rem;min-width:5rem;background:var(--veil-input);border:1px solid var(--chrome-600);border-radius:.35rem;padding:.15rem .4rem;font-size:.8rem}.control-toggle{display:flex;align-items:center;gap:.35rem;font-size:.8rem;cursor:pointer}.control-points-section{display:flex;flex-direction:column;gap:.35rem;padding-top:.3rem;border-top:1px dashed var(--chrome-600)}.control-points-master{display:flex;align-items:center;gap:.4rem}.control-points-title{font-size:.8rem;font-weight:600;margin-right:auto}.control-mini{border:1px solid var(--chrome-600);border-radius:.4rem;padding:.1rem .45rem;font-size:.75rem;background:var(--veil-btn);cursor:pointer}.control-run-group{display:flex;flex-direction:column;gap:.25rem}.control-run-head{display:inline-flex;align-items:center;gap:.3rem;font-size:.76rem;font-weight:600;color:var(--ink-mid)}.control-run-label{text-transform:capitalize}.control-points{display:flex;flex-wrap:wrap;gap:.5rem .7rem;padding-top:.1rem}.control-point-eye{display:inline-flex;align-items:center;gap:.2rem;font-size:.78rem}.control-point-label{color:var(--ink-mid);text-transform:capitalize}.control-pad{display:flex;flex-direction:column;gap:.5rem}.section-pad{display:flex;flex-direction:column;gap:var(--sp-2)}.save-flash{position:fixed;left:50%;bottom:104px;transform:translate(-50%);max-width:min(90vw,28rem);padding:var(--sp-2) var(--sp-4);background:var(--chrome-800);color:var(--ink-hi);border:1px solid var(--chrome-600);border-radius:var(--r-pill);box-shadow:var(--shadow-sheet);font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:60;pointer-events:none}.section-nudge{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-2);background:var(--ghost-veil);border-radius:var(--r-1)}.section-nudge-text{flex:1 1 12rem;min-width:0;font-size:var(--text-sm);color:var(--ink-mid)}.section-tools{display:flex;align-items:center;gap:var(--sp-2)}.section-tool-btn{min-height:var(--touch);padding:var(--sp-1) var(--sp-3);border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);color:var(--ink-hi);font-size:var(--text-sm);font-weight:600;cursor:pointer}.section-tool-btn.on{background:var(--accent);border-color:var(--accent);color:var(--chrome-900)}.section-tool-btn:disabled{color:var(--ink-low);cursor:default}.spool-group.identified{outline-style:solid;outline-width:2px;outline-offset:-1px}.section-bounds{display:flex;flex-direction:column}.section-bounds-title{font-size:var(--text-xs);font-weight:600;color:var(--ink-mid);padding:var(--sp-1) 0}.bound-row{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--touch);border-top:1px solid var(--chrome-600)}.bound-label{font-weight:600;min-width:3.5rem}.bound-kind{flex:1;color:var(--ink-mid);font-size:var(--text-sm)}.bound-uncut{min-height:var(--touch);min-width:var(--touch);padding:var(--sp-1) var(--sp-2);border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);color:var(--ink-hi);font-size:var(--text-sm);cursor:pointer}.bound-letter{width:3.2rem;font:inherit;font-weight:600;text-align:center;text-transform:uppercase;padding:var(--sp-1) var(--sp-2);border:1px solid var(--chrome-600);border-radius:var(--r-1)}.bound-err{color:var(--danger-ink);font-size:var(--text-sm);padding:0 0 var(--sp-2)}.bom-pad{display:flex;flex-direction:column;gap:var(--sp-2)}.bom-globals{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2)}.bom-size-btn{min-width:var(--touch)}.bom-focus-note{margin:0}.bom-chart{display:flex;flex-direction:column}.bom-cols{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);font-weight:600;color:var(--ink-mid);padding:var(--sp-1) 0}.bom-row{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--touch);border-top:1px solid var(--chrome-600);padding:var(--sp-1) 0}.bom-col-num,.bom-num{width:3.2rem;flex:none;text-align:center}.bom-num{font-weight:600;padding:var(--sp-1)}.bom-col-desc,.bom-desc{flex:1;min-width:0}.bom-desc::placeholder{color:var(--ghost-ink);font-style:italic;opacity:1}.bom-col-qty,.bom-qty,.bom-qty-in{width:5.5rem;flex:none;text-align:right}.bom-qty-in{padding:var(--sp-1) var(--sp-2)}.bom-eye-blank{visibility:hidden}.bom-balloon-count{width:1.4rem;flex:none;text-align:center;color:var(--ink-mid)}.bom-row-del{font-weight:600}.bom-bottom-btn{color:var(--ink-mid);line-height:1}.bom-bottom-btn.on{min-width:max-content;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-1);background:var(--accent-tint);color:var(--accent);font-size:var(--text-xs);font-weight:600;outline:1px solid var(--accent)}.bom-bottom-btn:disabled{color:var(--ink-low);opacity:.5}.bom-chart-tools{display:flex;align-items:center;gap:var(--sp-2);padding-top:var(--sp-2)}.bom-header-block{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--sp-2) var(--sp-3);padding-top:var(--sp-3)}.bom-header-hint{grid-column:1 / -1;margin:0}.bom-header-field{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.bom-header-label{font-size:var(--text-xs);font-weight:600;color:var(--ink-mid)}.bom-header-input{min-width:0}.control-pad-head{display:flex;flex-direction:column;gap:.4rem;padding-bottom:.3rem;border-bottom:1px solid var(--chrome-600)}.control-tabs{display:flex;align-items:center;gap:.3rem}.control-tab{border:1px solid var(--chrome-600);border-radius:.4rem .4rem 0 0;border-bottom:none;padding:.2rem .7rem;font-size:.82rem;background:var(--ghost-veil);cursor:pointer}.control-tab.active{font-weight:700;background:var(--chrome-600)}.control-pad-close{margin-left:auto;border:none;background:none;cursor:pointer;font-size:1rem;color:var(--ink-mid);padding:.1rem .4rem}.control-pad-back{font-size:.8rem;font-weight:600;white-space:nowrap}.control-sel-strip{display:flex;align-items:center;gap:.5rem;font-size:.82rem;padding:.25rem .4rem;border-radius:.4rem;background:var(--ghost-veil)}.control-sel-strip.empty{color:var(--ink-mid);font-style:italic}.control-sel-name{font-weight:600;white-space:nowrap}.control-sel-ref{font-size:.74rem;color:var(--ink-mid)}.control-sel-value{margin-left:auto;font-weight:700}.control-sel-note{margin-left:auto;font-size:.76rem;color:var(--ink-mid)}.control-compute-chip{border:1px solid var(--ok);border-radius:.4rem;padding:.15rem .5rem;font-size:.8rem;font-weight:700;background:var(--ok-tint);color:var(--ok-ink);cursor:pointer;white-space:nowrap}.control-compute-chip.conflict{border-color:var(--danger);background:var(--danger-bg);color:var(--danger-ink)}.ghost-card,.gaps-card{background:var(--ghost-veil);border-radius:.5rem;padding:.3rem .5rem .4rem}.ghost-val{margin-left:auto;font-weight:400;font-style:italic;color:var(--ghost-ink)}.ghost-val.red{color:var(--danger-ink);font-style:normal;font-weight:600}.ghost-auto{border:1px solid var(--chrome-600);border-radius:.4rem;padding:.15rem .55rem;font-size:.78rem;background:var(--veil-input);cursor:pointer}.control-gap-name{font-size:.8rem;font-weight:600}.control-gap-arrow{color:var(--ink-mid);font-size:.8rem}.control-warn-inline{font-size:.74rem;color:var(--warn-ink)}.tape-card{background:var(--ghost-veil);border-radius:.5rem;padding:.4rem .5rem .5rem}.control-tape-write{margin-left:auto;border:1px solid var(--ok);border-radius:.4rem;padding:.15rem .6rem;font-size:.8rem;font-weight:600;background:var(--ok-tint);color:var(--ok-ink);cursor:pointer}.control-tape-write:disabled{opacity:.45;cursor:default}.control-pad-body{display:flex;flex-direction:column;gap:.5rem}.control-line-block{border-radius:.5rem;padding:.4rem .5rem;background:var(--ghost-veil)}.control-line-head{display:flex;align-items:center;gap:.4rem;margin-bottom:.3rem}.control-status{font-size:.72rem;color:var(--warn-ink)}.control-status.conflict{color:var(--danger-ink);font-weight:600}.control-status.control-stub{color:var(--ink-mid);font-style:italic;opacity:.8}.autocompute-card{padding:var(--sp-2) var(--sp-2)}.autocompute-btn{font-size:.8rem;color:var(--warn-ink);background:var(--chrome-700);border:1px solid var(--warn-ink);border-radius:var(--r-1);padding:var(--sp-1) var(--sp-2);cursor:pointer}.control-point-row{display:flex;align-items:center;gap:.5rem;padding:.2rem .15rem;border-radius:.35rem;cursor:pointer}.control-point-row:hover{background:var(--ghost-veil)}.control-point-loc{flex:1 1 auto;min-width:0;font-size:.8rem;text-transform:capitalize;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.control-point-reading{flex:0 0 auto;font-size:.8rem;font-weight:600;color:var(--ink-hi)}.control-point-reading.derived{color:var(--ghost-ink);font-weight:400;font-style:italic}.control-point-reading.conflict{color:var(--danger-ink)}.control-station-input{flex:0 0 6rem;min-width:0;min-height:36px}.control-station-input.conflict{color:var(--danger-ink);border-color:var(--danger-ink)}.control-concrete{border:1px solid var(--chrome-600);border-radius:.4rem;padding:.2rem .6rem;font-size:.8rem;background:var(--veil-input);cursor:pointer;font-weight:600}.control-concrete:hover{background:var(--chrome-600)}.control-anchor-select{flex:1 1 6rem;min-width:5rem;background:var(--veil-input);border:1px solid var(--chrome-600);border-radius:.35rem;padding:.15rem .3rem;font-size:.8rem}.control-setup-add{display:flex;gap:.4rem}.control-point-row.setup{flex-wrap:wrap}.control-point-row.selected{background:var(--place-press);outline:1px solid var(--place)}.control-ref-tag{flex:0 0 auto;min-width:1.1em;text-align:center;font-size:.7rem;font-weight:700;color:var(--ink-mid);border:1px solid var(--chrome-600);border-radius:.3rem;padding:0 .25rem}.control-ref-chip{display:inline-flex;flex:0 0 auto;gap:1px;border-radius:.35rem;overflow:hidden;border:1px solid var(--chrome-600)}.control-ref-opt{border:none;padding:.05rem .4rem;font-size:.72rem;font-weight:600;background:var(--veil-input);cursor:pointer}.control-ref-opt.on{background:var(--cl-blue);color:var(--ink-hi)}.control-nudge{display:inline-flex;flex:0 0 auto;gap:2px;margin-left:auto}.control-nudge-btn{border:1px solid var(--chrome-600);border-radius:.3rem;width:1.4rem;height:1.4rem;line-height:1;font-size:.8rem;background:var(--veil-input);cursor:pointer}.control-nudge-btn.reset{color:var(--warn-ink)}.offset-card{border-left:2px solid var(--chrome-600);background:var(--ghost-veil);border-radius:var(--r-1);padding:var(--sp-1) var(--sp-2);margin:var(--sp-1) 0}.offset-card .offset-head .row-label{font-weight:700}.offset-card .offset-leg-row .row-label{min-width:4.5em;text-align:right;opacity:.85}.offset-card .angle-input{max-width:7em}.offset-more-btn{align-self:flex-start;min-height:var(--touch);padding:0 var(--sp-2);margin-top:var(--sp-1);background:none;border:none;color:var(--ink-low);font-size:var(--text-sm);text-align:left}.offset-more-btn.open{color:var(--ink-mid)}.offset-card .offset-tabs{margin:2px 0 var(--sp-2)}.offset-card .offset-pick{flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-2)}.offset-card .offset-pick .tab{flex:0 1 auto;min-width:3.5em;padding:0 var(--sp-2)}.offset-card .offset-colors{display:flex;flex-direction:column;gap:var(--sp-1);margin-bottom:var(--sp-2)}.offset-card .offset-colors-note{font-size:.7rem;opacity:.7;line-height:1.3;margin-bottom:2px}.offset-card .offset-color-row{align-items:center;gap:var(--sp-2)}.offset-card .offset-color-row .row-label{min-width:7.5em;text-align:right;opacity:.85}.offset-card .offset-color-row .color-input{flex:0 0 auto;width:3em;min-height:32px}.offset-card .offset-color-auto{font-size:.72rem;min-height:32px;min-width:2.6em;padding:0 var(--sp-2)}.offset-card .offset-color-auto:disabled{opacity:.4}.squares-ctl{display:inline-flex;align-items:center;gap:var(--sp-1);margin-right:var(--sp-2);white-space:nowrap}.squares-ctl button{min-width:1.6em;padding:0 var(--sp-1);line-height:1.3}.offset-card .offset-squares-row{flex-wrap:wrap;gap:var(--sp-2);font-size:.72rem}.offset-card .offset-squares-row .row-label{width:auto;font-size:inherit}.offset-card .offset-squares-row .squares-ctl{margin-right:0;gap:3px;padding:2px var(--sp-2);border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--veil-btn)}.offset-card .offset-squares-row .squares-ctl button{min-width:var(--touch);padding:0 2px}.clock-face{max-width:340px}.clock-svg{width:100%;display:block}.clock-pipe{fill:none;stroke:#37474f;stroke-width:3}.clock-center{fill:#37474f}.clock-spoke{stroke:#b0bec5;stroke-width:1;stroke-dasharray:4 4}.clock-tick{fill:#eceff1;stroke:#78909c;stroke-width:1.5}.clock-tick.active{fill:var(--accent)}.clock-tick-hit{cursor:pointer}.clock-sel{stroke:var(--accent);stroke-width:3;stroke-linecap:round}.clock-sel-dot{fill:var(--accent)}.clock-label{font-size:15px;font-weight:700;fill:#263238}.clock-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}.clock-actions button{flex:1}.fitting-info{background:var(--chrome-700);border-radius:var(--r-1);padding:var(--sp-1) var(--sp-2);margin:var(--sp-1) 0;font-size:.86em}.fitting-info p{margin:var(--sp-1) 0}.seg-ghost{stroke:var(--nav);stroke-width:.55;stroke-linecap:round;opacity:.22}.cursor-ghost{stroke:var(--nav);stroke-width:.34;stroke-linecap:round;opacity:.7}.junction-mark{fill:none;stroke:var(--accent);stroke-width:.12;opacity:.8}.point-mark{fill:none;stroke:var(--place);stroke-width:.14;opacity:.9}.point-mark.anchor-preview,.point-mark.aim-ring{stroke-dasharray:.24 .16}.spool-glow{fill:none;stroke-width:9;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.3}.spool-glow-shape{stroke-width:9;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:.3}.detached-mark circle,.detached-mark line{fill:none;stroke:#d32f2f;stroke-width:.1;opacity:.85}.conflict-mark{fill:#d32f2f;font-weight:700}.cut-tag{fill:#455a64;font-weight:600}.spool-name-label{font-weight:600;paint-order:stroke;stroke:var(--paper);stroke-linejoin:round}.spool-label-color-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.callout-text{fill:var(--ink);font-weight:600;paint-order:stroke;stroke:var(--paper);stroke-linejoin:round}.callout-shape{fill:none;stroke:var(--ink)}.callout-leader{stroke:var(--ink);stroke-width:1.25;vector-effect:non-scaling-stroke}.callout-leader-head{fill:var(--ink)}.note-marker line,.note-marker path{stroke:var(--place)}.note-marker polygon{fill:var(--place)}.note-marker text{fill:var(--place)}.note-marker .note-marker-badge{fill:var(--paper);stroke:var(--place)}.note-marker .note-marker-title{font-weight:600;paint-order:stroke;stroke:var(--paper);stroke-linejoin:round}.bom-balloon .bom-balloon-face{fill:var(--paper)}.bom-balloon text{font-weight:600}.bom-leader{fill:none;stroke-width:1;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.8}.annot-sel-ring{stroke:#1565c0;stroke-dasharray:.18 .12}.annot-leader-grip{fill:#1565c0;fill-opacity:.85;stroke:var(--paper)}.annot-palette .catalog-rows{grid-template-columns:1fr}.annot-palette-ic{min-width:40px;text-align:center;font-size:var(--text-lg);color:var(--ink-hi)}.annot-card .annot-card-text{width:100%;box-sizing:border-box;background:var(--chrome-700);border:1px solid var(--chrome-600);border-radius:var(--r-1);color:var(--ink-hi);font:inherit;font-size:var(--text-md);padding:var(--sp-2);margin:var(--sp-2) 0 var(--sp-1);min-height:var(--touch);resize:vertical}.annot-card .annot-card-text:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.annot-chip-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-2) 0}.annot-chip{min-height:var(--touch);padding:0 var(--sp-3);border-radius:var(--r-1);background:var(--chrome-700);border:1px solid var(--chrome-600);color:var(--ink-hi);font-size:var(--text-sm)}.annot-chip.on{border-color:var(--accent);color:var(--accent);background:var(--accent-tint)}.annot-card-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2)}.annot-card-delete{min-height:var(--touch);padding:0 var(--sp-2);background:none;border:none;color:var(--danger-ink);font-size:var(--text-sm)}.spools-block{margin-top:.8rem}.spool-group{margin:var(--sp-2) 0;padding:var(--sp-1) var(--sp-2) var(--sp-2);border-left:2px solid var(--chrome-600);background:var(--ghost-veil);border-radius:0 var(--r-1) var(--r-1) 0}.spool-head{display:flex;align-items:center;gap:.5rem}.spool-swatch{width:.85rem;height:.85rem;border-radius:3px;flex:none}.spool-swatch-hit{flex:none;min-width:var(--touch);min-height:var(--touch);display:flex;align-items:center;justify-content:center;cursor:pointer}.spool-swatch-hit .spool-swatch-input{width:1.1rem;height:1.1rem;padding:0;border:1px solid var(--chrome-600);border-radius:3px;background:none;cursor:pointer}.spool-color-auto{font-size:.72rem;min-height:32px;min-width:2.6em;flex:none}.spool-name{width:7.5rem;font:inherit;font-weight:600;padding:.15rem .4rem;border:1px solid var(--chrome-600);border-radius:var(--r-1)}.spool-eye{border:none;background:none;cursor:pointer;font-size:1rem;padding:.35rem;min-width:44px;min-height:44px}.spool-sum{margin-left:auto;color:var(--ink-mid)}.spool-focus-on{color:var(--accent)}.spool-mate{color:var(--ink-mid)}.spool-master-line{margin:.4rem 0 0;color:var(--ink-mid);font-size:.92em}.spool-cell{font-weight:600}.branch-section{margin:var(--sp-2) 0 var(--sp-2) var(--sp-3);padding:var(--sp-1) var(--sp-2) var(--sp-2);border-left:2px solid var(--chrome-600);background:var(--ghost-veil);border-radius:0 var(--r-1) var(--r-1) 0}.branch-head{flex-wrap:wrap;gap:.5rem;border-bottom:1px dashed var(--chrome-600);padding-bottom:.3rem;margin-bottom:.3rem}.branch-head .row-label{font-weight:600;color:var(--ink-mid)}.branch-pieces-head td{font-weight:600;color:var(--ink-mid);border-top:2px solid var(--chrome-600)}.span-input{max-width:6.5rem}.fitting-figure{display:block;width:100%;max-width:300px;margin:2px auto;background:var(--paper);border-radius:var(--r-1)}.ff-outline{fill:none;stroke:var(--ink);stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}.ff-dash{fill:none;stroke:var(--muted);stroke-width:1;stroke-dasharray:4 3}.ff-center{fill:none;stroke:var(--muted);stroke-width:.8;stroke-dasharray:9 3 2 3}.ff-dim{color:var(--ink)}.ff-dim.ff-computed{color:var(--muted)}.ff-dim.ff-computed .ff-letter{font-style:italic}.ff-dim.ff-overridden{color:#c96a00}.ff-dim.ff-hot .ff-letter{paint-order:stroke;stroke:#ffe2bd;stroke-width:4}.ff-dim.ff-hot .ff-arrow{stroke-width:1.8}.ff-arrow{stroke:currentColor;stroke-width:1.1}.ff-ext{stroke:currentColor;stroke-width:.7;opacity:.75}.ff-head{fill:currentColor;stroke:none}.ff-letter{fill:currentColor;font-size:13px;font-weight:700}.ff-caption{fill:var(--muted);font-size:10px}.fitting-card{background:var(--chrome-800);padding:var(--sp-2) var(--sp-3) var(--sp-3);max-height:82vh;overflow-y:auto}.fd-rows{display:flex;flex-direction:column;gap:var(--sp-1);margin-top:var(--sp-1)}.fd-branch{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}.fd-branch select{min-height:var(--touch)}.fd-row{border-radius:var(--r-1);background:var(--chrome-700);padding:2px var(--sp-1)}.fd-row.open{outline:2px solid var(--accent);outline-offset:-1px}.fd-line{display:flex;align-items:center;gap:var(--sp-1)}.fd-head{flex:1;display:flex;align-items:center;gap:var(--sp-2);min-height:38px;border:none;background:none;font:inherit;text-align:left;cursor:pointer;padding:2px var(--sp-1);min-width:0}.fd-letter{flex:none;min-width:26px;text-align:center;font-weight:700;border:1.5px solid currentColor;border-radius:var(--r-1);padding:1px var(--sp-1)}.fd-name{flex:1;color:var(--ink-mid);font-size:.82em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-val{flex:none;font-weight:700}.fd-chip{flex:none;font-size:.72em;border-radius:var(--r-pill);padding:2px var(--sp-2);background:var(--chrome-600);color:var(--ink-mid);white-space:nowrap}.fd-book{color:var(--ink-hi)}.fd-math{color:var(--ink-mid);font-style:italic}.fd-yours,.fd-chip.fd-yours{color:var(--accent)}.fd-chip.fd-yours{background:var(--accent-tint);font-weight:700}.fd-reset{flex:none;min-width:36px;min-height:36px;border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);font-size:1.05em;cursor:pointer}.fd-edit{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-1) var(--sp-2)}.fd-edit .dim-input{flex:1;min-width:90px}.scope-chips{display:flex;gap:var(--sp-1);width:100%}.scope-chips .chip{border:1px solid var(--chrome-600);border-radius:var(--r-2);background:var(--chrome-700);padding:var(--sp-1) var(--sp-2);font-size:.78em;cursor:pointer}.scope-chips .chip.on{border-color:var(--accent);background:var(--chrome-600);font-weight:700}.fd-more{margin-top:var(--sp-2);font-size:.86em}.fd-more summary{cursor:pointer;color:var(--ink-mid)}.fd-src{margin:var(--sp-2) 2px 0;font-size:.74em}.ov-mark{color:var(--accent);font-weight:700;margin-left:2px}.your-takeoffs{margin-top:var(--sp-2);border-left:3px solid var(--accent);background:var(--accent-tint);border-radius:var(--r-1);padding:var(--sp-1) var(--sp-2)}.your-takeoffs h3{margin:2px 0 var(--sp-1);font-size:.92em}.override-list{list-style:none;margin:0;padding:0;font-size:.88em;color:var(--accent)}.override-list li{padding:1px 0}.app-stage{padding:0;max-width:none;margin:0}.iso-stage-shell{position:relative;height:100dvh;overflow:clip}.iso-stage{position:absolute;top:0;right:0;bottom:0;left:0}.iso-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--paper)}.iso-panel{margin:0}.menu-btn{position:absolute;top:10px;left:10px;z-index:30;width:var(--touch);height:var(--touch);border-radius:var(--r-2);border:1px solid var(--chrome-600);background:var(--chrome-800);color:var(--ink-hi);font-size:1.1rem;cursor:pointer}.menu-card{background:var(--chrome-800);padding:var(--sp-2) var(--sp-3) var(--sp-4);max-height:84vh;overflow-y:auto}.pdf-preview-card{width:min(92vw,900px);height:88vh;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}.pdf-preview-frame{flex:1;width:100%;border:0;background:var(--chrome-900)}.pdf-preview-pages{flex:1;overflow:auto;background:var(--chrome-900);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3);align-items:center}.pdf-preview-pages img{width:100%;max-width:820px;background:var(--paper)}.pdf-preview-foot{display:flex;justify-content:center;padding-top:var(--sp-2)}.pdf-preview-foot .view-btn{text-decoration:none}.menu-actions{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap;margin-bottom:var(--sp-2)}.menu-card .card{border:none;background:none;padding:0;margin:0}.menu-card .setup-card{margin-top:var(--sp-6)}.tool-fab-wrap{position:absolute;top:10px;right:10px;z-index:30;display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2)}.tool-fab{width:var(--touch);height:var(--touch);border-radius:var(--r-pill);border:1px solid var(--chrome-600);background:var(--chrome-800);color:var(--ink-hi);font-size:1.2rem;cursor:pointer}.tool-fab.on{background:var(--accent);border-color:var(--accent);color:var(--chrome-900)}.tool-fan{width:min(264px,84vw);background:var(--chrome-800);border:1px solid var(--chrome-600);border-radius:var(--r-2);padding:var(--sp-2);box-shadow:var(--shadow-sheet);max-height:74vh;overflow-y:auto}.fan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2)}.fan-btn{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:52px;border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);cursor:pointer;font-weight:600;color:var(--ink-hi);padding:var(--sp-1) 2px}.fan-btn:disabled{opacity:.4;cursor:default}.fan-btn.on{background:var(--chrome-600);border-color:var(--accent)}.fan-ic{font-size:1.05rem;line-height:1}.fan-lb{font-size:.66rem;font-weight:600;color:var(--ink-mid)}.fitting-catalog{--catalog-col: calc(var(--touch) * 4);--catalog-sticky-top: 0px;display:flex;flex-direction:column;gap:var(--sp-4)}.fitting-catalog:not(.specbox-catalog){margin-top:var(--sp-2);border-top:1px solid var(--chrome-600);padding-top:var(--sp-3)}.catalog-cat{display:flex;flex-direction:column}.catalog-cat-label{position:sticky;top:var(--catalog-sticky-top, 0px);z-index:1;background:var(--chrome-800);padding:var(--sp-1) 0 var(--sp-2);font-size:var(--text-xs);font-weight:700;color:var(--ink-mid);text-transform:uppercase;letter-spacing:.04em}.catalog-rows{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--catalog-col),1fr));gap:var(--sp-2)}.catalog-row{display:flex;align-items:center;gap:var(--sp-2);min-width:0;scroll-margin-top:calc(var(--catalog-sticky-top, 0px) + var(--sp-8));border:1px solid var(--chrome-600);background:var(--chrome-700);border-radius:var(--r-1);min-height:var(--touch);padding:var(--sp-1) var(--sp-2);cursor:pointer;color:var(--ink-hi);text-align:left}.catalog-row:active{background:var(--chrome-600)}.catalog-row:disabled{color:var(--ink-mid);cursor:default}.catalog-row-wrap{display:flex;align-items:stretch;gap:var(--sp-1);min-width:0}.catalog-row-wrap>.catalog-row{flex:1 1 auto}.catalog-info{flex:0 0 auto;min-width:var(--touch)}.catalog-info:active{background:var(--chrome-600)}.catalog-name{flex:1 1 auto;overflow-wrap:anywhere;min-width:0;font-size:var(--text-sm);line-height:1.25}.fitting-thumb{flex:0 0 auto;overflow:visible;background:var(--paper);border-radius:var(--r-1)}.place-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.place-chip{display:inline-flex;align-items:center;border:1px solid var(--chrome-600);background:var(--chrome-700);border-radius:var(--r-1);min-height:var(--touch);padding:var(--sp-2) var(--sp-3);font-size:.82rem;cursor:pointer;color:var(--ink-hi)}.place-chip:active{background:var(--chrome-600)}.place-chip.on{background:var(--nav);border-color:var(--nav);color:var(--ink-hi);font-weight:700}.fan-snap{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap;margin-top:var(--sp-2);border-top:1px dashed var(--chrome-600);padding-top:var(--sp-2)}.status-float{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:25;max-width:min(560px,94%);display:flex;justify-content:center;flex-wrap:wrap;gap:var(--sp-2);pointer-events:none}.status-float .sel-chip{pointer-events:auto;flex:0 1 auto;min-width:0}.ff-offer{pointer-events:auto;flex:0 1 auto;display:inline-flex;align-items:center;gap:var(--sp-1);background:var(--chrome-800);border:1px solid var(--accent);border-radius:var(--r-pill);padding:0 var(--sp-1) 0 var(--sp-2)}.ff-offer-save{background:none;border:none;min-height:var(--touch);padding:var(--sp-1) var(--sp-1);color:var(--ink-hi);font-size:var(--text-sm);cursor:pointer}.ff-offer-save:active{color:var(--accent)}.iso-sheet{position:absolute;left:0;right:0;bottom:0;z-index:20;display:flex;flex-direction:column;background:var(--veil-sheet);border-top:1px solid var(--chrome-600);border-radius:var(--r-2) var(--r-2) 0 0;box-shadow:var(--shadow-sheet);max-width:760px;margin:0 auto;min-height:min-content}.iso-sheet .tab{background:var(--veil-btn)}.iso-sheet .tab.active,.iso-sheet input,.iso-sheet select{background:var(--veil-input)}.iso-sheet button{background:var(--veil-btn)}.sheet-peek{height:92px}.sel-dock{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2);padding:var(--sp-1) var(--sp-3) var(--sp-2);background:var(--nav-tint);box-shadow:inset 3px 0 0 var(--nav-ink);border-top:1px solid var(--chrome-600)}.sel-dock-id{font-size:var(--text-sm);color:var(--ink-mid);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sel-dock-id .num{color:var(--ink-hi)}.sel-dock-val{min-height:var(--touch);display:inline-flex;align-items:center;padding:0 var(--sp-3);background:var(--veil-input);border:1px solid var(--chrome-600);border-radius:var(--r-1);color:var(--ink-hi);font-weight:600}.sel-dock-val.ghost{color:var(--ghost-ink);font-style:italic}.sel-dock-val.held{color:var(--danger-ink);border-color:var(--danger)}.sel-dock-input{min-height:var(--touch);flex:0 1 auto;width:8em;padding:0 var(--sp-3);background:var(--veil-input);border:1px solid var(--chrome-600);border-radius:var(--r-1);color:var(--ink-hi);font-family:inherit;font-size:inherit;font-weight:600;-webkit-appearance:none;-moz-appearance:none;appearance:none}.sel-dock-input:focus{outline:none;border-color:var(--accent)}.sel-dock-input.ghost{color:var(--ghost-ink);font-style:italic}.sel-dock-input::placeholder{color:var(--ghost-ink);font-style:italic;font-weight:400}.sel-dock-chip{min-height:var(--touch);display:inline-flex;align-items:center;gap:var(--sp-1);padding:0 var(--sp-2);background:var(--veil-input);border:1px solid var(--chrome-600);border-radius:var(--r-1);color:var(--ink-mid);font-size:var(--text-sm)}.sel-dock-chip .num{color:var(--ink-hi);font-weight:600}.sel-dock-chip.ghost .num{color:var(--ghost-ink);font-style:italic;font-weight:400}.sel-dock-chip.invalid{border-color:var(--danger)}.sel-dock-chip.invalid .num{color:var(--danger-ink)}.sel-dock-chip:disabled{color:var(--ink-low)}.sel-dock-field{display:inline-flex;align-items:stretch}.sel-dock-key{min-height:var(--touch);display:inline-flex;align-items:center;padding:0 var(--sp-2);background:var(--veil-btn);border:1px solid var(--chrome-600);border-right:none;border-radius:var(--r-1) 0 0 var(--r-1);color:var(--ink-mid);font-size:var(--text-sm);white-space:nowrap}.sel-dock-key:active:not(:disabled){background:var(--chrome-600)}.sel-dock-key:disabled{color:var(--ink-low)}.sel-dock-fieldval{min-height:var(--touch);width:5.5rem;display:inline-flex;align-items:center;padding:0 var(--sp-2);background:var(--veil-input);border:1px solid var(--chrome-600);border-radius:0 var(--r-1) var(--r-1) 0;color:var(--ink-hi);font-weight:600;font-size:var(--text-sm)}.sel-dock-fieldval:focus{outline:2px solid var(--accent);outline-offset:-2px}.sel-dock-fieldval.ghost{font-weight:400}.sel-dock-fieldval::placeholder{color:var(--ghost-ink);font-style:italic;font-weight:400}.sel-dock-field.invalid .sel-dock-key,.sel-dock-field.invalid .sel-dock-fieldval{border-color:var(--danger)}.sel-dock-field.invalid .sel-dock-fieldval{color:var(--danger-ink)}.sel-dock-field.has-eq .sel-dock-fieldval{border-top-right-radius:0;border-bottom-right-radius:0}.sel-dock-eq{min-height:var(--touch);min-width:var(--touch);display:inline-flex;align-items:center;justify-content:center;background:var(--veil-btn);border:1px solid var(--chrome-600);border-left:none;border-radius:0 var(--r-1) var(--r-1) 0;color:var(--ink-mid);font-size:var(--text-sm)}.sel-dock-eq:active:not(:disabled){background:var(--chrome-600)}.sel-dock-eq:disabled{color:var(--ink-low)}.sel-dock-shape{display:inline-flex;gap:var(--sp-1)}.sel-dock-offset{flex-direction:column;align-items:stretch;flex-wrap:nowrap;min-width:0}.sel-dock-head,.sel-dock-fields{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2);min-width:0}.sel-dock-head .sel-dock-id{flex:1 1 auto}.sel-dock-edit{margin-left:auto}.sel-dock-angle{min-height:var(--touch);padding:0 var(--sp-2);background:var(--veil-input);border:1px solid var(--chrome-600);border-radius:var(--r-1);color:var(--ink-hi);font-size:var(--text-sm)}.sel-dock-angle.invalid{border-color:var(--danger);color:var(--danger-ink)}.sel-dock-dir{flex-basis:auto;display:flex;flex-wrap:nowrap;align-items:center;gap:var(--sp-1);min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:var(--sp-1);border-radius:var(--r-1);background:var(--ghost-veil)}.sel-dock-rollpair{display:flex;align-items:center;gap:var(--sp-1)}.sel-dock-rollpair-label{font-size:var(--text-sm);color:var(--ink-mid)}.sel-dock-rollpair .tab{flex:0 1 auto;min-width:60px;min-height:var(--touch)}.sel-dock-dir-closed{padding:0;background:none;min-height:0}.sel-dock-shape .tab.showing{background:var(--chrome-600)}.sel-dock-dir-set{display:flex;flex:0 0 auto;gap:var(--sp-1)}.sel-dock-dir.looping{gap:var(--sp-1);scroll-snap-type:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 10px,#000 calc(100% - 10px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 10px,#000 calc(100% - 10px),transparent 100%);cursor:grab}.sel-dock-dir::-webkit-scrollbar{display:none}.sel-dock-dir .tab{flex:0 0 60px;width:60px;height:80px;min-height:var(--touch);padding:0;scroll-snap-align:start}.sel-dock-dirtext{font-size:var(--text-sm);color:var(--ink-mid)}.sel-dock .keypad-open-btn{min-height:var(--touch);min-width:var(--touch)}.iso-sheet.has-dock.sheet-peek{height:auto}.iso-sheet.has-dock.sheet-peek .sheet-body{flex:0 0 0;height:0;padding-block:0;overflow:hidden;overflow-anchor:none}.sheet-half{height:48dvh}.sheet-full{height:90dvh}.sheet-handle{flex:none;padding:var(--sp-2) var(--sp-3) var(--sp-2);cursor:grab;touch-action:none}.sheet-handle:active{cursor:grabbing}.sheet-grip{width:44px;height:5px;border-radius:var(--r-pill);background:var(--chrome-600);margin:0 auto var(--sp-2)}.sheet-headline{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);flex-wrap:wrap}.sheet-drawing-path{font-size:var(--text-xs);line-height:1.3;margin-top:2px;color:var(--ink-mid);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-path-leaf{color:var(--ink-hi);font-weight:600}.sheet-head-label{font-size:.82rem;color:var(--ink-mid);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.sheet-head-value{font-size:1.15rem;font-weight:700;color:var(--ink-hi);flex:none}.sheet-body{flex:1;overflow-y:auto;padding:0 var(--sp-3) var(--sp-4)}.sheet-body .results{border:none;padding:var(--sp-2) 0 0;margin:0}.lib-card{max-width:460px}.library-warning{border:1px solid var(--chrome-600);background:var(--chrome-700);color:var(--warn-ink);border-radius:var(--r-1);padding:var(--sp-2) var(--sp-2);margin-bottom:var(--sp-2);font-size:.82rem;line-height:1.35}.lib-tree{max-height:46vh;overflow-y:auto;margin:var(--sp-1) 0 var(--sp-2)}.lib-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);min-height:var(--touch);padding-right:var(--sp-1);border-bottom:1px solid var(--chrome-600)}.lib-name{font-size:.86rem;color:var(--ink-hi);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-iso .lib-name{color:var(--ink-mid)}.lib-actions{display:flex;gap:var(--sp-1);flex-shrink:0}.lib-btn{border:1px solid var(--chrome-600);background:var(--chrome-700);border-radius:var(--r-1);padding:3px var(--sp-2);font-size:.74rem;min-height:28px;color:var(--ink-hi);cursor:pointer}.lib-btn-primary{background:var(--chrome-600)}.lib-btn-danger{color:var(--danger-ink);border-color:var(--danger)}.lib-section{border-top:1px solid var(--chrome-600);margin-top:var(--sp-1);padding-top:var(--sp-1)}.lib-section-title{font-weight:700;font-size:.78rem;color:var(--ink-mid);margin-bottom:var(--sp-1)}.lib-tool{border-bottom:1px solid var(--chrome-600)}.lib-kind{font-size:.72rem;color:var(--ink-mid)}.lib-empty{font-size:.8rem;color:var(--ink-low);padding:var(--sp-1) 2px}.lib-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:2px;font-size:.82rem;margin:2px 0 var(--sp-2)}.lib-crumb{border:none;background:none;color:var(--ink-mid);padding:2px var(--sp-1);min-height:var(--touch);cursor:pointer;border-radius:var(--r-1)}.lib-crumb:last-child{color:var(--ink-hi);font-weight:700}.lib-crumb-sep{color:var(--ink-low)}.lib-add{margin-bottom:var(--sp-2)}.lib-name-btn{flex:1;min-width:0;text-align:left;border:none;background:none;min-height:var(--touch);cursor:pointer;display:flex;align-items:center;gap:var(--sp-1)}.lib-chevron{color:var(--ink-low);margin-left:auto;padding-left:var(--sp-1)}.lib-name-cell{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lib-name-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-spools{display:flex;flex-wrap:wrap;gap:3px}.lib-spool-chip{font-size:.68rem;line-height:1.4;color:var(--ink-mid);background:var(--chrome-700);border-radius:var(--r-1);padding:0 var(--sp-1)}.lib-derived-badge{font-size:.68rem;line-height:1.4;color:var(--ink-low);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-spool-fold{position:relative;border:none;background:none;text-align:left;align-self:flex-start;color:var(--ink-mid);font-size:.72rem;line-height:1.4;padding:2px 0;cursor:pointer}.lib-spool-fold:after{content:"";position:absolute;top:-10px;right:0;bottom:-10px;left:0}.lib-spool-children{margin-left:var(--sp-4);border-left:1px solid var(--chrome-600);padding-left:var(--sp-2)}button.lib-spool-open{position:relative;border:1px solid var(--chrome-600);min-height:24px;display:inline-flex;align-items:center;gap:2px;padding:0 var(--sp-2);cursor:pointer}button.lib-spool-open:after{content:"";position:absolute;top:-10px;right:-1px;bottom:-10px;left:-1px}.lib-more-toggle{display:none}.lib-more-toggle[aria-expanded=true]{background:var(--chrome-600)}@media(max-width:520px){.lib-row{flex-wrap:wrap}.lib-more-toggle{display:block}.lib-actions-more{display:none}.lib-row-more-open .lib-actions-more{display:flex;flex-basis:100%;justify-content:flex-end;padding-bottom:var(--sp-1)}}.lib-move-target{display:block;width:100%;text-align:left;border:none;border-bottom:1px solid var(--chrome-600);background:var(--chrome-800);color:var(--ink-hi);font-size:.86rem;min-height:var(--touch);padding:var(--sp-1) var(--sp-2);cursor:pointer}.lib-move-target:hover{background:var(--chrome-700)}.saveas-form{display:flex;flex-direction:column;gap:var(--sp-2)}.saveas-field{display:flex;flex-direction:column;gap:3px}.saveas-label{font-size:.74rem;font-weight:700;color:var(--ink-mid)}.saveas-input{width:100%;box-sizing:border-box;border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);color:var(--ink-hi);font-size:.9rem;min-height:38px;padding:var(--sp-1) var(--sp-2)}.saveas-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.saveas-combo{position:relative}.saveas-combo-menu{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:1;max-height:200px;overflow-y:auto;background:var(--chrome-700);border:1px solid var(--chrome-600);border-radius:var(--r-1);box-shadow:var(--shadow-sheet)}.saveas-combo-opt{display:block;width:100%;text-align:left;border:none;border-bottom:1px solid var(--chrome-600);background:var(--chrome-700);color:var(--ink-hi);font-size:.86rem;min-height:36px;padding:var(--sp-1) var(--sp-2);cursor:pointer}.saveas-combo-opt.is-hi{background:var(--chrome-600)}.saveas-combo-opt.is-create{color:var(--accent);font-weight:600}.saveas-browse{align-self:flex-start}.saveas-error{color:var(--danger-ink);font-size:.82rem;margin:0}.lib-search{display:flex;align-items:center;gap:var(--sp-1);margin:2px 0 var(--sp-2)}.lib-search-input{flex:1;min-width:0;border:1px solid var(--chrome-600);border-radius:var(--r-1);padding:var(--sp-1) var(--sp-2);font-size:.86rem;min-height:var(--touch);color:var(--ink-hi);background:var(--chrome-700)}.lib-path{color:var(--ink-mid);font-size:.78rem}.lib-scope{display:inline-flex;align-items:center;border:1px solid var(--chrome-600);border-radius:var(--r-pill);padding:2px var(--sp-2);font-size:.68rem;min-height:24px;cursor:default;white-space:nowrap}.lib-scope-local{background:var(--chrome-700);color:var(--ink-mid);border-color:var(--chrome-600)}.lib-scope-synced{background:var(--chrome-600);color:var(--ink-hi);border-color:var(--chrome-600);font-weight:700}.lib-scope-dot{margin-left:3px;opacity:.6}.lib-scope-choices{margin:var(--sp-1) 0 2px}.lib-scope-active{font-weight:700;background:var(--chrome-600)}.lib-sync-payload{margin:var(--sp-2) 0;color:var(--ink-mid);font-size:var(--text-sm);line-height:1.4}.lib-sync-payload strong{color:var(--ink-hi)}.lib-typename{width:100%;margin:var(--sp-1) 0 var(--sp-2)}.lib-folder-row{align-items:center;gap:var(--sp-2)}.lib-folder-state{color:var(--ink-mid);font-size:var(--text-sm)}.menu-sync{align-items:center;gap:var(--sp-2)}.menu-sync-chip{cursor:default}.menu-sync-idle{background:var(--chrome-700);color:var(--ink-mid)}.menu-sync-syncing{background:var(--chrome-600);color:var(--ink-hi)}.menu-sync-error{background:var(--chrome-700);color:var(--warn-ink);border-color:var(--chrome-600)}.header-actions{margin-bottom:0}.export-backdrop{align-items:stretch}.export-screen{width:100%;max-width:620px;margin:0 auto;height:100%;background:var(--chrome-800);display:flex;flex-direction:column;padding:var(--sp-3) var(--sp-3);box-sizing:border-box}.export-body{display:flex;flex-direction:column;gap:var(--sp-2);flex:1 1 auto;overflow-y:auto;padding:var(--sp-1) 0 var(--sp-2)}.export-row{display:flex;flex-direction:column;gap:var(--sp-1)}.export-label{font-size:.72rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-mid)}.export-choices{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.export-note{color:var(--ink-mid);font-size:.85rem}.export-hint{margin:0;color:var(--ink-low);font-size:.8rem}.export-screen .chip{border:1px solid var(--chrome-600);border-radius:var(--r-2);background:var(--chrome-700);padding:var(--sp-1) var(--sp-3);font-size:.82rem;cursor:pointer;min-height:34px}.export-screen .chip.on{border-color:var(--accent);background:var(--chrome-600);font-weight:700}.export-toggle{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:.85rem;cursor:pointer}.export-toggle input{width:18px;height:18px}.export-switches{gap:var(--sp-4)}.export-colors{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.export-color{display:inline-flex;flex-direction:column;align-items:center;gap:var(--sp-1);font-size:.72rem;color:var(--ink-mid)}.export-color input[type=color]{width:var(--touch);height:30px;border:1px solid var(--chrome-600);border-radius:var(--r-1);padding:0;cursor:pointer}.calc-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:flex-end;justify-content:center;z-index:70}.calc-sheet{--calc-bg: #151d27;--calc-edge: #2c3d50;--calc-key: #1e2a38;--calc-key-edge: #35485e;--calc-ink: #e9f0f7;--calc-quiet: #93a7bc;--calc-accent: #ffb454;--calc-display: #0b1118;--calc-danger: #ff8080;--calc-accent-wash: rgba(255, 180, 84, .16);--calc-paper: #ffffff;width:100%;max-width:430px;max-height:100dvh;overflow-y:auto;background:var(--calc-bg);color:var(--calc-ink);border:1px solid var(--calc-edge);border-bottom:none;border-radius:14px 14px 0 0;padding:8px 12px;box-shadow:0 -8px 30px #0a101680}.calc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.calc-title{font-weight:700;font-size:.9rem;letter-spacing:.04em;text-transform:uppercase;color:var(--calc-quiet)}.calc-head-btns{display:flex;gap:6px}.calc-tool{min-width:34px;min-height:32px;border:1px solid var(--calc-key-edge);border-radius:8px;background:var(--calc-key);color:var(--calc-ink);font-size:.95rem;font-weight:700;cursor:pointer}.calc-tool.on{background:var(--calc-accent);border-color:var(--calc-accent);color:#1a1205}.calc-display{border:1px solid var(--calc-edge);border-radius:10px;background:var(--calc-display);padding:6px 10px 4px;margin-bottom:6px;cursor:pointer}.calc-expr{min-height:1.1em;font-size:.8rem;color:var(--calc-quiet);font-variant-numeric:tabular-nums;white-space:nowrap;overflow-x:auto;text-align:right;scrollbar-width:none}.calc-primary{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--calc-accent);text-align:right;white-space:nowrap;overflow-x:auto;scrollbar-width:none}.calc-primary.idle{opacity:.55}.calc-offgrid{font-size:.9rem;vertical-align:super;margin-left:4px;color:var(--calc-quiet)}.calc-secondary{font-size:.8rem;color:var(--calc-quiet);text-align:right;font-variant-numeric:tabular-nums}.calc-error{min-height:2.2em;display:flex;align-items:center;justify-content:flex-end;font-size:.95rem;font-weight:600;color:var(--calc-danger)}.calc-actions{display:flex;justify-content:flex-end;gap:6px;padding:4px 0 2px;cursor:default}.calc-act{min-height:32px;padding:0 14px;border:1px solid var(--calc-key-edge);border-radius:8px;background:var(--calc-key);color:var(--calc-ink);font-size:.85rem;font-weight:700;cursor:pointer}.calc-act.clear{color:var(--calc-danger);margin-right:auto}.calc-act.use{background:var(--calc-accent);border-color:var(--calc-accent);color:#1a1205}.calc-act:disabled{opacity:.35;cursor:default}.calc-inspect{border:1px dashed var(--calc-accent);border-radius:8px;background:#ffb45414;color:var(--calc-ink);font-size:.82rem;padding:7px 10px;margin-bottom:8px}.calc-tri-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.calc-tri-toggle,.calc-tape-toggle{border:none;background:none;color:var(--calc-quiet);font-size:.82rem;font-weight:700;cursor:pointer;padding:2px;min-height:26px;text-align:left}.calc-roll{display:inline-flex;align-items:center;gap:5px;font-size:.82rem;font-weight:700;color:var(--calc-ink);cursor:pointer}.calc-tri{background:var(--calc-display);border:1px solid var(--calc-edge);border-radius:10px;padding:2px;margin-bottom:6px}.tri-svg{display:block;width:100%;height:auto;max-height:200px;margin:0 auto}.tri-face{stroke:none;fill:#aecde824}.tri-face.top{fill:#aecde84d}.tri-face.side{fill:#aecde812}.tri-edge{fill:none;stroke:var(--grid-blue);stroke-width:1.2}.tri-edge.hidden{stroke-dasharray:3 3;opacity:.45}.tri-leg{fill:none;stroke:#607d9c;stroke-width:1.8;stroke-dasharray:4 4}.tri-true{fill:none;stroke:#607d9c;stroke-width:1.6;stroke-dasharray:8 3 2 3}.tri-travel{fill:none;stroke:var(--ink);stroke-width:2.8;stroke-linecap:round}.tri-bubble{fill:none;stroke:var(--ink);stroke-width:1.4}.tri-leg.active,.tri-true.active,.tri-travel.active,.tri-leg.hl,.tri-true.hl,.tri-travel.hl,.tri-bubble.hl{stroke:#e65100;stroke-width:3}.tri-stub,.tri-stub-head{pointer-events:none}.tri-stub{fill:none;stroke:var(--ink);stroke-width:5;stroke-linecap:round}.tri-stub.core{stroke:#fff;stroke-width:2}.tri-stub-head{fill:var(--ink);stroke:none}.tri-corner{cursor:pointer}.tri-corner-hit{fill:transparent;stroke:none}.tri-corner-dot{fill:var(--muted);stroke:none}.tri-corner.back{opacity:.5}.tri-corner.entry .tri-corner-dot{fill:#e65100}.tri-corner.exit .tri-corner-dot{fill:#fff;stroke:#e65100;stroke-width:2}.tri-corner-ring{fill:none;stroke:#e65100;stroke-width:1.2;opacity:.6}.tri-plane{cursor:pointer}.tri-planebg{fill:#fff;stroke:var(--grid-blue);stroke-width:1.2}.tri-planetxt{font-size:11px;font-weight:700;fill:var(--muted);text-anchor:middle}.tri-slot{cursor:pointer}.tri-svg.static .tri-slot,.tri-svg.static .tri-corner,.tri-svg.static .tri-plane{cursor:default}.tri-hit{fill:transparent;stroke:none}.tri-leader{stroke:var(--muted);stroke-width:1;opacity:.7}.tri-tabbg{fill:transparent;stroke:none}.tri-slot.empty .tri-leader{stroke-dasharray:2 3}.tri-slot.active .tri-tabbg{stroke:#e65100;stroke-width:1.6;fill:#fff}.tri-slot.active .tri-leader,.tri-slot.hl .tri-leader{stroke:#e65100;opacity:1}.tri-slot.invalid .tri-tabbg{stroke:#c62828;stroke-width:1.4;fill:#fdecec}.tri-slot.invalid .tri-val{fill:#b71c1c}.tri-slot.hl .tri-tabbg{stroke:#e65100;stroke-width:1.6;fill:#fff3e0}.tri-name{font-size:9px;fill:var(--muted);text-anchor:middle;text-transform:uppercase;letter-spacing:.06em;paint-order:stroke;stroke:#fff;stroke-width:3px}.tri-val{font-size:12px;font-weight:700;fill:var(--ink);text-anchor:middle;font-variant-numeric:tabular-nums;paint-order:stroke;stroke:#fff;stroke-width:3px}.tri-slot.empty .tri-val{fill:var(--muted)}.calc-tri .tri-svg{max-height:224px}.calc-tri .tri-face{fill:#e9f0f70d}.calc-tri .tri-face.top{fill:#e9f0f71a}.calc-tri .tri-face.side{fill:#e9f0f707}.calc-tri .tri-edge{stroke:var(--calc-key-edge)}.calc-tri .tri-leg,.calc-tri .tri-true{stroke:var(--calc-quiet)}.calc-tri .tri-travel,.calc-tri .tri-bubble{stroke:var(--calc-ink)}.calc-tri .tri-travel{filter:drop-shadow(0 0 3px rgba(255,180,84,.35))}.calc-tri .tri-leg.active,.calc-tri .tri-true.active,.calc-tri .tri-travel.active,.calc-tri .tri-leg.hl,.calc-tri .tri-true.hl,.calc-tri .tri-travel.hl,.calc-tri .tri-bubble.hl{stroke:var(--calc-accent)}.calc-tri .tri-stub{stroke:var(--calc-ink)}.calc-tri .tri-stub.core{stroke:var(--calc-display)}.calc-tri .tri-stub-head{fill:var(--calc-ink)}.calc-tri .tri-corner-dot{fill:var(--calc-quiet)}.calc-tri .tri-corner.entry .tri-corner-dot{fill:var(--calc-accent)}.calc-tri .tri-corner.exit .tri-corner-dot{fill:var(--calc-display);stroke:var(--calc-accent)}.calc-tri .tri-corner-ring{stroke:var(--calc-accent)}.calc-tri .tri-planebg{fill:var(--calc-key);stroke:var(--calc-key-edge)}.calc-tri .tri-planetxt{fill:var(--calc-ink)}.calc-tri .tri-leader{stroke:var(--calc-quiet)}.calc-tri .tri-slot.active .tri-tabbg{stroke:var(--calc-accent);fill:var(--calc-key)}.calc-tri .tri-slot.active .tri-leader,.calc-tri .tri-slot.hl .tri-leader{stroke:var(--calc-accent)}.calc-tri .tri-slot.invalid .tri-tabbg{stroke:var(--calc-danger);fill:var(--calc-key)}.calc-tri .tri-slot.invalid .tri-val{fill:var(--calc-danger)}.calc-tri .tri-slot.hl .tri-tabbg{stroke:var(--calc-accent);fill:var(--calc-accent-wash)}.calc-tri .tri-name{fill:var(--calc-quiet);stroke:var(--calc-display)}.calc-tri .tri-val{fill:var(--calc-ink);stroke:var(--calc-display)}.calc-tri .tri-slot.empty .tri-val{fill:var(--calc-quiet)}.calc-chips{display:flex;gap:4px;overflow-x:auto;margin-bottom:6px;scrollbar-width:none;padding-bottom:2px}.calc-chip{flex:0 0 auto;min-width:44px;min-height:30px;border:1px solid var(--calc-key-edge);border-radius:8px;background:var(--calc-key);color:var(--calc-ink);font-size:.8rem;font-weight:600;cursor:pointer}.calc-chip.on{border-color:var(--calc-accent);color:var(--calc-accent)}.calc-const{display:flex;gap:4px;overflow-x:auto;margin-bottom:6px;scrollbar-width:none;padding-bottom:2px}.calc-sizechip{flex:0 0 auto;min-height:30px;padding:0 10px;border:1px dashed var(--calc-key-edge);border-radius:8px;background:transparent;color:var(--calc-quiet);font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap}.calc-sizechip.set{border-style:solid;background:var(--calc-key);color:var(--calc-accent)}.calc-sizepicker{border:1px solid var(--calc-key-edge);border-radius:10px;padding:6px;margin-bottom:6px;background:var(--calc-display)}.calc-sizemodes{display:flex;gap:4px;margin-bottom:6px}.calc-sizemodes button{flex:1;min-height:28px;border:1px solid var(--calc-key-edge);border-radius:8px;background:transparent;color:var(--calc-quiet);font-size:.8rem;font-weight:700;cursor:pointer}.calc-sizemodes button.on{background:var(--calc-key);color:var(--calc-ink);border-color:var(--calc-accent)}.calc-sizelist{display:flex;flex-wrap:wrap;gap:4px}.calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.calc-key.wide{grid-column:1 / -1}.calc-key{min-height:38px;border:1px solid var(--calc-key-edge);border-radius:8px;background:var(--calc-key);color:var(--calc-ink);font-size:1.05rem;font-weight:700;cursor:pointer;font-variant-numeric:tabular-nums}.calc-key.quiet{color:var(--calc-quiet);font-size:.85rem;font-weight:600;background:transparent}.calc-key.op{background:#26374b;font-size:1.15rem}.calc-key.ftkey{font-size:.8rem}.calc-key.eq{background:var(--calc-accent);border-color:var(--calc-accent);color:#1a1205;font-size:1.3rem}.calc-tape-wrap{margin-top:4px;border-top:1px solid var(--calc-edge)}.calc-tape-toggle{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calc-tape-peek{font-weight:400;color:var(--calc-quiet);font-variant-numeric:tabular-nums}.calc-tape{max-height:170px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;padding-bottom:4px}.calc-tape-empty{color:var(--calc-quiet);font-size:.82rem;padding:4px 2px}.calc-tape-row{display:flex;align-items:stretch;gap:4px;flex-wrap:wrap}.calc-tape-line{flex:1 1 0;min-width:0;min-height:34px;text-align:left;border:1px solid var(--calc-edge);border-radius:8px;background:var(--calc-display);color:var(--calc-ink);font-size:.82rem;font-variant-numeric:tabular-nums;padding:4px 8px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calc-tape-copy{flex:0 0 34px;min-height:34px;border:1px solid var(--calc-key-edge);border-radius:8px;background:var(--calc-key);color:var(--calc-quiet);cursor:pointer;font-weight:700}.calc-tape-pin{flex:0 0 auto;min-height:34px;padding:0 10px;border:1px solid var(--calc-key-edge);border-radius:8px;background:var(--calc-key);color:var(--calc-accent);cursor:pointer;font-weight:700;font-size:.82rem}.calc-tape-chips{flex-basis:100%;display:flex;flex-wrap:wrap;gap:4px;padding:2px 0 4px}.calc-chipbtn{min-height:32px;padding:0 10px;border:1px solid var(--calc-accent);border-radius:8px;background:#ffb4541a;color:var(--calc-ink);font-size:.8rem;font-weight:600;cursor:pointer;font-variant-numeric:tabular-nums}.calc-manual{background:var(--calc-paper);color:var(--ink);border:1px solid var(--grid-blue);border-radius:10px;padding:10px 12px;max-height:78dvh;overflow-y:auto}.calc-recipe+.calc-recipe{border-top:1px solid var(--grid-blue);margin-top:12px;padding-top:10px}.calc-recipe h3{margin:0 0 6px;font-size:.95rem}.calc-recipe-fig{border:1px solid var(--grid-blue-pale);border-radius:8px;margin-bottom:6px}.hod-pipe{fill:none;stroke:var(--ink);stroke-width:1.7}.hod-tape{fill:none;stroke:var(--grid-blue);stroke-width:1.6;stroke-dasharray:4 4}.hod-half{fill:none;stroke:var(--ink);stroke-width:2.2}.hod-head{fill:var(--ink);stroke:none}.calc-gloss{margin:0 0 6px;font-size:.82rem}.calc-gloss div{display:flex;gap:6px;margin-bottom:2px}.calc-gloss dt{font-weight:700;min-width:76px}.calc-gloss dd{margin:0;color:var(--muted)}.calc-recipe ol{margin:0;padding-left:20px;font-size:.85rem}.calc-recipe li{margin-bottom:3px}.keypad-grid button.keypad-calc{background:var(--chrome-600);font-size:1.15rem}.keypad-grid button.keypad-done.slim{grid-column:auto}.note-backdrop{align-items:stretch}.note-screen{width:100%;max-width:620px;height:100%;max-height:100dvh;display:flex;flex-direction:column;background:var(--chrome-800);padding:var(--sp-3);overflow:hidden}.note-head{display:flex;align-items:center;gap:var(--sp-2)}.note-glyph-badge{flex:none;width:var(--touch);height:var(--touch);display:flex;align-items:center;justify-content:center;color:var(--place-soft)}.note-glyph-icon{width:26px;height:26px;stroke:currentColor;fill:currentColor;display:block}.note-title-input{flex:1;min-width:0;min-height:var(--touch);background:var(--chrome-700);border:1px solid var(--chrome-600);border-radius:var(--r-1);color:var(--ink-hi);font-size:var(--text-md);font-weight:600;padding:0 var(--sp-2)}.note-glyph-row{margin:var(--sp-1) 0 var(--sp-2)}.note-glyph-chip{flex:none;width:var(--touch);padding:0;display:flex;align-items:center;justify-content:center;color:var(--place-soft)}.note-glyph-chip .note-glyph-icon{width:22px;height:22px}.note-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;flex:none;margin-bottom:var(--sp-2)}.note-tabs .tab{flex:0 0 auto;padding:0 var(--sp-3);white-space:nowrap}.note-tabs .note-tab-add{min-width:var(--touch);font-weight:700}.note-add-row{margin-bottom:var(--sp-2)}.note-body{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-2)}.note-hint{color:var(--ink-low);font-size:var(--text-sm);margin:var(--sp-2) 0}.note-sec-row{flex:none;display:flex;align-items:center;gap:var(--sp-1);color:var(--ink-mid);font-size:var(--text-sm)}.note-sec-label{font-weight:600}.note-sec-spacer{flex:1}.note-sec-tool{min-height:36px;min-width:36px;background:none;border:none;color:var(--ink-mid);font-size:var(--text-sm);cursor:pointer}.note-sec-danger{color:var(--danger-ink)}.note-sec-rename{flex:1;min-height:36px;background:var(--chrome-700);border:1px solid var(--chrome-600);border-radius:var(--r-1);color:var(--ink-hi);padding:0 var(--sp-2)}.note-text{flex:1 1 auto;min-height:40dvh;resize:none;background:var(--chrome-700);border:1px solid var(--chrome-600);border-radius:var(--r-1);color:var(--ink-hi);font:inherit;font-size:var(--text-md);line-height:1.45;padding:var(--sp-2)}.note-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--sp-2)}.note-photo-btn{padding:0;border:none;background:none;cursor:pointer}.note-photo-thumb{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r-1);border:1px solid var(--chrome-600);display:block}.note-photo-add{min-height:96px;border:1px dashed var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);color:var(--ink-mid);font-size:var(--text-sm);cursor:pointer}.note-photo-error{color:var(--danger-ink);font-size:var(--text-sm);margin:var(--sp-1) 0 0}.note-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#000000d9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3)}.note-lightbox img{max-width:100%;max-height:84dvh;object-fit:contain}.note-lightbox-foot{display:flex;gap:var(--sp-4);align-items:center}.note-lookup{display:flex;flex-direction:column;gap:var(--sp-2)}.note-lookup-row{display:flex;align-items:center;gap:var(--sp-2);color:var(--ink-mid);font-size:var(--text-sm)}.note-select{flex:1;min-width:0;min-height:var(--touch);background:var(--chrome-700);border:1px solid var(--chrome-600);border-radius:var(--r-1);color:var(--ink-hi);font-size:var(--text-sm);padding:0 var(--sp-2)}.note-angle{flex:0 1 120px}.note-fd{display:flex;flex-direction:column}.note-fd-row{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--touch);border-bottom:1px solid var(--chrome-600);padding:var(--sp-1) 0}.note-fd-letter{flex:none;min-width:26px;text-align:center;font-weight:700;border:1.5px solid currentColor;border-radius:var(--r-1);padding:1px var(--sp-1);color:var(--ink-mid)}.note-fd-mark{font-size:var(--text-xs);font-weight:600}.note-fd-name{flex:1;color:var(--ink-mid);font-size:var(--text-sm);min-width:0}.note-fd-val{color:var(--ink-hi);font-weight:600}.note-foot{flex:none;display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);padding-top:var(--sp-2)}.note-calc-btn{min-height:var(--touch);padding:0 var(--sp-3);background:var(--chrome-700);border:1px solid var(--chrome-600);border-radius:var(--r-1);color:var(--ink-hi);font-size:var(--text-sm);cursor:pointer}.note-done{min-height:var(--touch);padding:0 var(--sp-5);border-radius:var(--r-1)}.note-sketch{display:flex;flex-direction:column;gap:var(--sp-1)}.note-sketch-tools,.note-sketch-stamps,.note-sketch-ctx{flex-wrap:nowrap;overflow-x:auto;margin:0}.note-sketch-tools .annot-chip,.note-sketch-stamps .annot-chip,.note-sketch-ctx .annot-chip{flex:none;white-space:nowrap}.note-sketch-tools .annot-chip:disabled{color:var(--ink-low);border-color:var(--chrome-600);background:var(--chrome-700)}.note-sketch-sep{flex:1 1 auto}.note-stamp-chip{display:inline-flex;align-items:center;gap:var(--sp-1)}.note-stamp-icon{width:26px;height:26px;display:block}.note-sketch-delete{color:var(--danger-ink);border-color:var(--danger)}.note-sketch-textrow{display:flex;gap:var(--sp-2);align-items:center}.note-sketch-textinput{flex:1 1 auto;min-width:0;min-height:var(--touch);background:var(--chrome-700);border:1px solid var(--chrome-600);border-radius:var(--r-1);color:var(--ink-hi);font:inherit;font-size:var(--text-md);padding:0 var(--sp-2)}.note-sketch-surface{width:100%;aspect-ratio:4 / 3;display:block;background:var(--paper);color:var(--ink);border:1px solid var(--chrome-600);border-radius:var(--r-1);touch-action:none;user-select:none;-webkit-user-select:none;cursor:crosshair}.note-sketch-surface .note-sketch-gridline{stroke:var(--grid-blue-pale);stroke-width:2}.note-sketch-surface .note-sketch-selbox{stroke:var(--accent-deep);stroke-width:3}.note-check{display:flex;flex-direction:column}.note-check-row{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--touch);border-bottom:1px solid var(--chrome-600)}.note-check-box{position:relative;flex:none;width:28px;height:28px;padding:0;border:1.5px solid var(--ink-mid);border-radius:var(--r-1);background:none;color:var(--accent);font-size:var(--text-md);font-weight:700;line-height:1;cursor:pointer}.note-check-box:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px}.note-check-box.on{border-color:var(--accent)}.note-check-text{flex:1 1 auto;min-width:0;min-height:var(--touch);background:none;border:none;color:var(--ink-hi);font:inherit;font-size:var(--text-md);padding:0 var(--sp-1)}.note-check-text:focus{outline:none;background:var(--chrome-700);border-radius:var(--r-1)}.note-check-text.done{color:var(--ink-low);text-decoration:line-through}.note-check-add{align-self:flex-start;min-height:var(--touch);padding:0 var(--sp-3);margin-top:var(--sp-2);border:1px dashed var(--chrome-600);border-radius:var(--r-1);background:none;color:var(--ink-mid);font-size:var(--text-sm);cursor:pointer}.note-pdf{display:flex;flex-direction:column;gap:var(--sp-1)}.note-pdf .note-sketch-tools{position:sticky;top:0;z-index:1;background:var(--chrome-900);padding:var(--sp-1) 0}.note-pdf-page{position:relative}.note-pdf-surface{width:100%;display:block;background:var(--paper);color:var(--ink);border:1px solid var(--chrome-600);border-radius:var(--r-1);touch-action:pan-y}.note-pdf-surface.armed{touch-action:none;user-select:none;-webkit-user-select:none;cursor:crosshair}.note-pdf-surface .note-sketch-selbox{stroke:var(--accent-deep);stroke-width:6}.note-pdf-pageno{position:absolute;right:var(--sp-2);bottom:var(--sp-2);padding:1px var(--sp-2);background:var(--veil-input);color:var(--ink-mid);font-size:var(--text-xs);border-radius:var(--r-1)}.note-ink-hl{stroke:var(--marker);stroke-opacity:.4;mix-blend-mode:multiply}.note-text-lined{line-height:22px;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 21px,var(--chrome-600) 21px,var(--chrome-600) 22px);background-attachment:local;background-origin:content-box;background-clip:content-box}.specbox-backdrop{align-items:stretch}.specbox-screen{width:100%;max-width:620px;height:100%;max-height:100dvh;display:flex;flex-direction:column;background:var(--chrome-800);padding:var(--sp-3);overflow:hidden}.specbox-screen .keypad-head{gap:var(--sp-2);justify-content:flex-start}.specbox-screen .keypad-close{margin-left:auto}.specbox-mode{font-size:var(--text-xs);color:var(--ink-low);text-transform:uppercase;letter-spacing:.04em}.specbox-tabs{flex:none}.specbox-body{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-3);padding-top:var(--sp-3)}.specbox-list{display:flex;flex-direction:column}.specbox-item{border-bottom:1px solid var(--chrome-600)}.specbox-item-head{display:flex;align-items:center;gap:var(--sp-1)}.specbox-item-open{flex:1;min-width:0;display:flex;align-items:center;gap:var(--sp-2);min-height:var(--touch);background:none;border:none;color:var(--ink-hi);font-size:var(--text-sm);text-align:left;cursor:pointer;padding:var(--sp-1) 0}.specbox-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.specbox-chev{color:var(--ink-low)}.specbox-item-detail{display:flex;flex-direction:column;gap:var(--sp-3);padding:0 0 var(--sp-3)}.specbox-field{display:flex;flex-direction:column;gap:var(--sp-1);font-size:.8rem;color:var(--ink-mid)}.specbox-field textarea{font:inherit;color:var(--ink-hi);padding:var(--sp-2);border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);min-height:var(--touch);resize:vertical}.specbox-field textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.specbox-symbols{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.specbox-symbol{min-width:var(--touch);min-height:var(--touch);display:inline-flex;align-items:center;justify-content:center;padding:var(--sp-1);background:var(--chrome-700);border:1px solid var(--chrome-600);border-radius:var(--r-1);cursor:pointer}.specbox-symbol.on{border-color:var(--accent);outline:1px solid var(--accent)}.specbox-symbol-rail{display:flex;flex-direction:column;gap:var(--sp-3)}.specbox-symbol-head{margin:0 0 var(--sp-2);color:var(--ink-mid);font-size:var(--text-xs)}.specbox-ends{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2)}.specbox-ends-label{font-size:.8rem;color:var(--ink-mid)}.specbox-chip{min-height:var(--touch);padding:0 var(--sp-4);border:1px solid var(--chrome-600);border-radius:var(--r-pill);background:var(--chrome-700);color:var(--ink-hi);font-size:var(--text-sm);cursor:pointer}.specbox-chip.on{border-color:var(--accent);color:var(--accent)}.specbox-seed{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.specbox-add{display:flex;flex-direction:column}.specbox-search{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;background:var(--chrome-800)}.specbox-search-input{flex:1;min-width:0}.specbox-catalog{--catalog-col: calc(var(--touch) * 3)}.specbox-add .specbox-catalog{--catalog-sticky-top: calc(var(--touch) + var(--sp-4))}.specbox-check{flex:0 0 auto;margin-left:auto;color:var(--ok-ink);font-weight:700}.catalog-row.specbox-added{background:var(--chrome-800)}.specbox-flow-hint{display:flex;align-items:center;gap:var(--sp-1)}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--sp-6);box-sizing:border-box;background:var(--chrome-900);color:var(--ink-hi)}.auth-card{width:100%;max-width:26rem;background:var(--chrome-800);border:1px solid var(--chrome-600);border-radius:var(--r-2);padding:var(--sp-6);box-shadow:var(--shadow-sheet)}.auth-brand{margin:0 0 var(--sp-1);font-size:1.5rem}.auth-tagline{margin:0 0 var(--sp-4);font-size:.85rem;color:var(--ink-mid)}.auth-loading{color:var(--ink-hi)}.auth-tabs{display:flex;gap:var(--sp-1);margin-bottom:var(--sp-4)}.auth-tabs button{flex:1;padding:var(--sp-2);background:transparent;border:1px solid var(--chrome-600);border-radius:var(--r-1);color:var(--ink-mid);cursor:pointer}.auth-tabs button.active{background:var(--chrome-700);border:2px solid var(--accent);color:var(--ink-hi);font-weight:600}.auth-form{display:flex;flex-direction:column;gap:var(--sp-3)}.auth-field{display:flex;flex-direction:column;gap:var(--sp-1);font-size:.85rem;color:var(--ink-mid)}.auth-field input{padding:var(--sp-2) var(--sp-2);border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-700);color:var(--ink-hi);font-size:1rem}.auth-check{display:flex;align-items:flex-start;gap:var(--sp-2);font-size:.85rem}.auth-check input{margin-top:3px}.terms-box{max-height:11rem;overflow:auto;white-space:pre-wrap;word-break:break-word;margin:0;padding:var(--sp-2);border:1px solid var(--chrome-600);border-radius:var(--r-1);background:var(--chrome-900);color:var(--ink-mid);font-size:.75rem;line-height:1.4;font-family:inherit}.auth-submit{margin-top:var(--sp-1)}.auth-actions{display:flex;gap:var(--sp-2)}.auth-error{color:var(--danger-ink);font-size:.8rem}.auth-done-title{font-size:1.1rem;font-weight:600;margin:0 0 var(--sp-2)}.lease-chrome{position:fixed;top:10px;right:10px;z-index:30;display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2)}.lease-chrome.counting{top:calc(10px + var(--touch) + var(--sp-2))}.lease-chip{min-height:var(--touch);padding:0 var(--sp-4);border-radius:var(--r-pill);background:var(--chrome-800);border:1px solid var(--chrome-600);color:var(--warn-ink);font-size:.85rem;cursor:pointer}.lease-chip:active{background:var(--chrome-600)}.lease-chip.lease-signin{color:var(--ink-hi)}.lease-pop{max-width:240px;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-2);background:var(--chrome-800);border:1px solid var(--chrome-600);color:var(--ink-mid);font-size:.85rem;box-shadow:var(--shadow-sheet)}.lease-back{position:fixed;top:10px;left:10px;z-index:30;min-height:var(--touch);padding:0 var(--sp-4);border-radius:var(--r-pill);background:var(--chrome-700);border:1px solid var(--chrome-600);color:var(--ink-hi);cursor:pointer}.degraded-title{margin:0 0 var(--sp-2);font-size:1.1rem;font-weight:600}.degraded-note{margin:0 0 var(--sp-4);font-size:.85rem;color:var(--ink-mid);line-height:1.5}.iso-readonly .dir-rose,.iso-readonly .tool-fab-wrap,.iso-readonly .connect-overlay,.iso-readonly .status-float,.iso-readonly .rail-word-btn{display:none}.iso-readonly .sheet-headline{pointer-events:none}.iso-readonly .sheet-body>*{pointer-events:none}.viewer-bar{position:absolute;top:10px;left:10px;right:10px;z-index:30;display:flex;align-items:center;gap:var(--sp-3);pointer-events:none}.viewer-bar .view-btn{pointer-events:auto}.viewer-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-mid);font-size:.85rem}.viewer-badge{flex:none;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-pill);border:1px solid var(--chrome-600);background:var(--chrome-800);color:var(--ink-mid);font-size:.75rem}.watermark{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:9999}.watermark-text{fill:var(--ink-low);opacity:.1;font-size:15px;font-family:system-ui,-apple-system,sans-serif;letter-spacing:1px}
