@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/big-shoulders-display-vietnamese-600-normal-DFOHoAUN.woff2)format("woff2"),url(/assets/big-shoulders-display-vietnamese-600-normal-CBD8Wfz0.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/big-shoulders-display-latin-ext-600-normal-D59XNmBM.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-ext-600-normal-BQAez9cc.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/big-shoulders-display-latin-600-normal-DBjJvcBA.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-600-normal-DVaYP2lT.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/big-shoulders-display-vietnamese-700-normal-DCH5bIkD.woff2)format("woff2"),url(/assets/big-shoulders-display-vietnamese-700-normal-D5dmK5Ek.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/big-shoulders-display-latin-ext-700-normal-C8xZtiKd.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-ext-700-normal-D98SaizC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/big-shoulders-display-latin-700-normal-KM2fueoL.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-700-normal-CMi6UoP4.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-vietnamese-400-normal-BxGuknnG.woff2)format("woff2"),url(/assets/work-sans-vietnamese-400-normal-DFZk_KN_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-latin-ext-400-normal-zfQnhXzv.woff2)format("woff2"),url(/assets/work-sans-latin-ext-400-normal-j7TZlk-s.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-latin-400-normal-jUejSri3.woff2)format("woff2"),url(/assets/work-sans-latin-400-normal-DE1_0GuN.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-vietnamese-500-normal-Czn2Xkog.woff2)format("woff2"),url(/assets/work-sans-vietnamese-500-normal-90nhZfxs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-latin-ext-500-normal-CAKEIVkc.woff2)format("woff2"),url(/assets/work-sans-latin-ext-500-normal-CW9ss9Cz.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-latin-500-normal-BKGnScDy.woff2)format("woff2"),url(/assets/work-sans-latin-500-normal-BmdXWF6_.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-vietnamese-600-normal-DizFELYt.woff2)format("woff2"),url(/assets/work-sans-vietnamese-600-normal-ue5fzGW6.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-latin-ext-600-normal-DNiHHggD.woff2)format("woff2"),url(/assets/work-sans-latin-ext-600-normal-B1NFRnx8.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-latin-600-normal-DB-2V89X.woff2)format("woff2"),url(/assets/work-sans-latin-600-normal-Cg-NlmS7.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/work-sans-vietnamese-700-normal-CqjC4WOy.woff2)format("woff2"),url(/assets/work-sans-vietnamese-700-normal-BYAoORCv.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/work-sans-latin-ext-700-normal-Bc0iTajH.woff2)format("woff2"),url(/assets/work-sans-latin-ext-700-normal-BP8nCPzd.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/work-sans-latin-700-normal-CEeo_t6l.woff2)format("woff2"),url(/assets/work-sans-latin-700-normal-mDs79oer.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f3eee1;--panel:#faf7ee;--ink:#221d15;--muted:#6e6659;--line:#d7cfbc;--accent:#c94c10;--accent-ink:#fff;--secondary:#1e6f66;--danger:#b03325;--danger-bg:#b033250f;--saved-dot:#3a9d5d;--grid-minor:#604e2e1a;--grid-major:#604e2e2e;--radius-sm:3px;--radius-md:4px;--radius-lg:8px;--font-heading:"Big Shoulders Display", sans-serif;--font-body:"Work Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", monospace}.btn,.grid-controls button,.tape-panel>button,.selection-actions button,.face-template-actions button{box-sizing:border-box;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);min-height:44px;color:var(--ink);font-family:var(--font-body);cursor:pointer;padding:10px 14px;font-size:13px;font-weight:600}button.btn-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}button.btn-danger,button.delete-button{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, var(--line));background:var(--danger-bg)}.btn-sm,.feature-form button{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--paper);min-height:0;color:var(--ink);font-family:var(--font-body);cursor:pointer;padding:6px 10px;font-size:12px;font-weight:600}html,body{height:100%}body{font:14px/1.4 var(--font-body);color:var(--ink);background:var(--paper);margin:0;padding:0}#app{flex-direction:column;height:100%;display:flex}h1{font-size:20px}.status{color:#555;font-size:14px}.muted{color:#888;margin-left:8px;font-size:13px}.home-screen{background:var(--paper);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.home-header{padding:32px 22px 14px}.home-kicker{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:11px}.home-heading{font-family:var(--font-heading);color:var(--ink);margin-top:8px;font-size:38px;font-weight:600}.home-body{flex-direction:column;gap:12px;padding:8px 22px 22px;display:flex}.home-build-marker{font-family:var(--font-mono);text-align:center;margin-top:4px;font-size:10px}.new-job-btn{text-align:left;border-radius:var(--radius-lg);border:2px dashed var(--line);width:100%;color:var(--ink);cursor:pointer;background:0 0;align-items:center;gap:14px;padding:20px;display:flex}.new-job-icon{border-radius:var(--radius-md);background:var(--accent);width:40px;height:40px;color:var(--accent-ink);flex:none;place-items:center;font-size:22px;line-height:1;display:grid}.new-job-label{font-size:17px;font-weight:600}.home-section-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:8px 2px 0;font-size:10.5px}.job-card-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.job-card{align-items:stretch;gap:6px;display:flex}.open-job{text-align:left;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--panel);min-width:0;color:var(--ink);cursor:pointer;flex:1;align-items:center;gap:14px;padding:16px 18px;display:flex}.job-card-icon{border-radius:var(--radius-md);background:var(--paper);border:1px solid var(--line);flex:none;width:40px;height:40px}.job-card-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.job-card-title{font-size:16px;font-weight:600}.job-card-meta{color:var(--muted);font-size:12px;font-family:var(--font-mono)}.job-card-menu-btn{border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--panel);width:44px;color:var(--muted);cursor:pointer;flex:none;font-size:20px}.job-card-empty{color:var(--muted);padding:6px 2px;font-size:14px}.export-all-btn{width:100%;margin-top:8px}.export-all-helper{margin:-4px 2px 0;font-size:12px;line-height:1.4}.job-actions-list{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.job-actions-list button{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);color:var(--ink);text-align:left;cursor:pointer;padding:13px 14px;font-size:15px;font-weight:600}.job-actions-list button:disabled{opacity:.5;cursor:default}.job-delete-warning{color:var(--muted);margin:0 0 16px;font-size:14px;line-height:1.4}.sheet-scrim{z-index:60;background:#18140e66;align-items:flex-end;animation:.18s scrim-fade;display:flex;position:fixed;inset:0}.sheet-card{background:var(--panel);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;padding:22px 22px 28px;animation:.24s sheet-slide-up}@keyframes scrim-fade{0%{opacity:0}to{opacity:1}}@keyframes sheet-slide-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.sheet-title{font-family:var(--font-heading);color:var(--ink);margin-bottom:14px;font-size:20px;font-weight:600}.sheet-card input{box-sizing:border-box;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);margin-bottom:10px;padding:12px 14px;font-size:15px;display:block}.sheet-actions{gap:10px;margin-top:8px;display:flex}.sheet-cancel,.sheet-confirm{border-radius:var(--radius-md);cursor:pointer;flex:1;padding:13px;font-size:15px;font-weight:600}.sheet-cancel{border:1px solid var(--line);color:var(--ink);background:0 0}.sheet-confirm{background:var(--accent);color:var(--accent-ink);border:none}.canvas-screen{flex-direction:column;flex:1;min-height:0;display:flex}.top-strip{background:var(--panel);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:12px;height:56px;padding:0 14px;display:flex}.back-btn{border-radius:var(--radius-md);background:var(--paper);width:34px;height:34px;color:var(--muted);cursor:pointer;border:none;flex:none;font-size:20px}.top-strip-info{flex:1;min-width:0}.top-strip-jobname{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.top-strip-status{font-family:var(--font-mono);color:var(--muted);align-items:center;gap:6px;margin-top:1px;font-size:11px;display:flex}.save-dot{background:var(--muted);border-radius:50%;width:7px;height:7px}.save-dot.save-dot-saved{background:var(--saved-dot)}.save-dot.save-dot-unsaved{background:var(--accent)}.room-setup-btn,.report-btn{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:600;display:flex}.grid-canvas-mount{flex:1;min-height:0;display:flex}.grid-canvas-shell{flex-direction:column;flex:1;width:100%;min-height:0;display:flex;position:relative}.canvas-area{flex:1;min-height:0;position:relative;overflow:hidden}.canvas-area svg{display:block}.cabinet-strip{background:var(--panel);border-top:1px solid var(--line);z-index:20;flex-direction:column;flex:none;gap:6px;padding:8px 12px;display:flex}.cabinet-strip-row{align-items:center;gap:10px;display:flex}.cabinet-strip-row-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);flex:none;font-size:10.5px}.bottom-bar{background:var(--panel);border-top:1px solid var(--line);z-index:20;flex:none;height:88px;padding:4px 2px;display:flex}.bar-cell{border-radius:var(--radius-md);min-width:0;color:var(--ink);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;margin:2px;display:flex;position:relative}.bar-icon{display:flex}.bar-label{text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:700}.bar-cell.bar-cell-active{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent);border-radius:var(--radius-sm);box-shadow:inset 0 -2.5px 0 var(--accent)}.bar-cell.bar-cell-disabled,.bar-cell:disabled{opacity:.4;cursor:default}.floating-sheet{z-index:30;max-height:60%;transition:bottom .16s;animation:.22s sheet-slide-up;position:absolute;bottom:76px;left:12px;right:12px;overflow-y:auto;box-shadow:0 10px 26px -12px #14100861}.grid-canvas-shell.keypad-open .floating-sheet{bottom:calc(76px + var(--keypad-height,0px))}.overlay-sheet{z-index:50;background:var(--panel);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding-bottom:24px;transition:bottom .16s;animation:.24s sheet-slide-up;position:absolute;inset:12% 0 88px;overflow-y:auto;box-shadow:0 -14px 34px -20px #14100866}.grid-canvas-shell.keypad-open .overlay-sheet{bottom:calc(88px + var(--keypad-height,0px))}.overlay-sheet-header{background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 18px;display:flex;position:sticky;top:0}.overlay-sheet-title{font-family:var(--font-heading);color:var(--ink);font-size:19px;font-weight:600}.overlay-sheet-header button{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;padding:8px 14px;font-size:13px;font-weight:600}.overlay-sheet-body{flex-direction:column;gap:10px;padding:14px 18px;display:flex}.overlay-sheet-body hr{border:none;border-top:1px solid var(--line);width:100%;margin:4px 0}.room-setup-section{margin-bottom:16px}.room-setup-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:10.5px}.room-setup-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.room-setup-row .room-setup-label{margin-bottom:0}.shape-tile-grid{grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:8px;display:grid}.shape-tile{border-radius:var(--radius-md);border:1.5px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;display:flex}.shape-tile-active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--paper));color:var(--accent)}.shape-tile-glyph{width:32px;height:32px}.shape-tile-name{text-align:center;font-size:11px;font-weight:600}.shape-progress{margin-top:8px;display:inline-block}.shape-hint{margin:6px 0 0;font-size:12px;display:block}.floor-segmented button{flex:1}.toggle-track{background:var(--line);cursor:pointer;border:none;border-radius:13px;flex:none;width:44px;height:26px;padding:0;transition:background .15s;position:relative}.toggle-track.toggle-on{background:var(--accent)}.toggle-knob{background:var(--paper);border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle-track.toggle-on .toggle-knob{transform:translate(18px)}.vault-fields{gap:10px;margin-top:10px;display:flex}.field-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);flex:1;min-width:0;padding:8px 10px;display:block}.field-card-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:10px;display:block}.field-card input{box-sizing:border-box;width:100%;font-family:var(--font-mono);color:var(--ink);background:0 0;border:none;padding:0;font-size:15px}.field-card input:focus{outline:none}.grid-controls{gap:8px;margin-top:8px;display:flex}.grid-controls button:disabled{cursor:not-allowed;opacity:.5}.face-stile-readout-row{font-family:var(--font-body);color:var(--ink);margin-top:8px;font-size:13px}.face-stile-readout-row.face-stile-warning{color:var(--danger);font-weight:600}.face-appliance-label-row{margin-top:8px}.face-appliance-label-row input{font-family:var(--font-body);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);box-sizing:border-box;width:100%;padding:6px 8px;font-size:13px}.selected-wall-panel{background:var(--panel);border:1px solid var(--line);border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding:8px;font-size:13px;display:flex}.selected-wall-panel .exact-length-input,.selected-wall-panel .exact-height-input{width:100px;padding:4px 6px;font-size:13px}.selected-wall-panel .panel-divider{color:var(--line)}.junction-panel{background:var(--panel);border:1px solid var(--line);border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding:8px;font-size:13px;display:flex}.junction-panel .exact-angle-input{width:70px;padding:4px 6px;font-size:13px}.feature-form{background:var(--paper);border:1px solid var(--line);border-radius:4px;margin-top:12px;padding:8px;font-size:13px}.feature-form h4{margin:0 0 8px;font-size:13px}.feature-form-row{flex-wrap:wrap;gap:12px;margin-bottom:8px;display:flex}.feature-form-row input,.feature-form-row select{width:90px;padding:2px 4px;font-size:13px}.feature-list{margin:8px 0 0;padding:0;list-style:none}.feature-list li{border-bottom:1px solid var(--line);padding:4px 0}.bank-list{margin:8px 0 0;padding:0;list-style:none}.bank-list>li{border-bottom:1px solid var(--line);padding:4px 0}.cabinet-list{color:var(--muted);margin:4px 0 0;padding:0 0 0 16px;font-size:12px;list-style:none}.cabinet-list li{padding:2px 0}.cabinet-width-override{width:70px;padding:2px 4px;font-size:12px}.save-room-row{align-items:center;gap:8px;margin-top:12px;display:flex}.draw-mode-toggle{gap:6px;margin-bottom:8px;display:flex}.draw-mode-toggle button{border:2px solid var(--line);background:var(--panel);color:var(--ink);border-radius:var(--radius-md);cursor:pointer;padding:6px 10px;font-size:13px}.draw-mode-toggle button.mode-active{border-color:var(--ink);background:var(--ink);color:var(--paper);font-weight:600}.zoom-chip{z-index:10;cursor:pointer;font-family:var(--font-mono);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);padding:6px 10px;font-size:11px;position:absolute;top:10px;right:10px}.multiselect-toggle-overlay{z-index:10;position:absolute;top:46px;right:10px}.multiselect-toggle-overlay button{font-family:var(--font-mono);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;padding:6px 10px;font-size:11px}.multiselect-toggle-overlay button.mode-active{border-color:var(--accent);background:var(--accent);color:var(--accent-ink);font-weight:600}.units-toggle-overlay{z-index:10;position:absolute;top:82px;right:10px}.units-toggle-overlay button{font-family:var(--font-mono);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;padding:6px 10px;font-size:11px}.units-toggle-overlay button.mode-active{border-color:var(--accent);background:var(--accent);color:var(--accent-ink);font-weight:600}.delete-button{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, var(--line));background:var(--danger-bg)}.face-type-toggle{gap:6px;margin-bottom:8px;display:flex}.face-type-toggle button{border:2px solid var(--line);background:var(--panel);color:var(--ink);border-radius:var(--radius-md);cursor:pointer;padding:6px 10px;font-size:13px}.face-type-toggle button.mode-active{border-color:var(--ink);background:var(--ink);color:var(--paper);font-weight:600}.tape-panel{background:color-mix(in srgb, var(--accent) 8%, var(--panel));border:1px solid var(--line);border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding:8px;font-size:13px;display:flex}.tape-panel .tape-exact-length-input{width:100px;padding:4px 6px;font-size:13px}.tape-panel .tape-mode-note{color:var(--secondary);font-size:12px;font-style:normal}.selection-sheet{background:var(--panel);border:1px solid color-mix(in srgb, var(--ink) 40%, var(--line));border-radius:var(--radius-lg);margin-top:0;box-shadow:0 10px 26px -12px #14100861}.selection-body{padding:14px;font-size:13px;display:block}.selection-header{flex-direction:column;gap:2px;margin-bottom:10px;display:flex}.selection-kicker{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:10.5px}.selection-title{font-family:var(--font-heading);color:var(--ink);font-size:20px;font-weight:600}.selection-subnote{color:var(--muted);margin-bottom:10px;font-size:12px;font-style:normal;display:block}.field-card-row{gap:8px;margin-bottom:10px;display:flex}.selection-body .field-card{margin-bottom:0}.selection-body .field-card input{width:100%}.selection-actions{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.selection-actions button{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);min-width:130px;color:var(--ink);cursor:pointer;flex:auto;padding:10px 12px;font-size:13px;font-weight:600}.selection-actions .delete-button{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, var(--line));background:var(--danger-bg)}.selection-error{color:var(--danger);margin-bottom:8px;font-size:12px;display:block}.island-type-segmented{margin-bottom:10px}.island-type-segmented button{flex:1}.elevation-panel{background:var(--panel);border:1px solid color-mix(in srgb, var(--ink) 40%, var(--line));border-radius:var(--radius-lg);padding:12px;box-shadow:0 10px 26px -12px #14100861}.elevation-control-cluster{align-items:center;gap:8px;margin-bottom:10px;display:flex}.elevation-target-label{min-width:0;font-family:var(--font-mono);color:var(--ink);text-align:center;flex:1;font-size:12px}.elevation-nav-arrow{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);width:34px;height:34px;color:var(--ink);cursor:pointer;flex:none;font-size:13px}.elevation-done-btn{border-radius:var(--radius-md);background:var(--ink);color:var(--paper);cursor:pointer;border:none;flex:none;padding:8px 16px;font-size:13px;font-weight:600}.elevation-kind-row{margin-bottom:10px}.elevation-position{text-align:center;font-family:var(--font-mono);color:var(--muted);margin:-4px 0 10px;font-size:11px}.elevation-mount{min-width:0}.face-editor-panel{z-index:40;background:var(--panel);border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:none;padding:0 16px 20px;position:absolute;inset:6% 0 0;overflow-y:auto;box-shadow:0 -14px 34px -20px #14100866}.face-editor-header{background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:64px;margin:0 -16px 12px;padding:0 16px;display:flex;position:sticky;top:0}.face-editor-kicker{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:10.5px}.face-editor-title{font-family:var(--font-heading);color:var(--ink);margin-top:2px;font-size:19px;font-weight:600}.face-editor-done{border-radius:var(--radius-md);background:var(--ink);color:var(--paper);cursor:pointer;border:none;flex:none;padding:9px 18px;font-size:14px;font-weight:600}.face-template-save{gap:8px;margin:12px 0 8px;display:flex}.face-template-save input{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);min-width:0;color:var(--ink);flex:1;padding:9px 12px;font-size:13px}.face-template-save button{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;flex:none;padding:9px 14px;font-size:13px;font-weight:600}.face-template-section-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:12px 0 8px;font-size:10.5px}.face-template-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.face-template-tile{border-radius:var(--radius-md);border:1.5px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;display:flex}.face-template-tile-active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--paper))}.face-template-preview-svg{width:40px;height:54px;color:var(--ink)}.face-template-tile-name{text-align:center;font-size:11px;font-weight:600;line-height:1.2}.face-template-empty{grid-column:1/-1;font-size:13px}.face-template-actions{gap:8px;margin-top:12px;display:flex}.face-template-actions button{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;flex:1;padding:10px 12px;font-size:13px;font-weight:600}.room-contents-heading{color:var(--ink);margin:0 0 6px;font-size:13px;font-weight:600}.room-contents-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.room-contents-item{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.room-contents-item-text{flex-direction:column;gap:1px;min-width:0;display:flex}.room-contents-item-title{color:var(--ink);text-transform:capitalize;font-size:13px;font-weight:600}.room-contents-item-dims{font-family:var(--font-mono);color:var(--muted);font-size:11.5px}.room-contents-item button{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;flex:none;padding:6px 12px;font-size:12px;font-weight:600}.room-contents-empty{color:var(--muted);padding:4px 2px;font-size:13px}.attachments-add-row{margin:4px 0 12px}.attachments-empty{padding:8px 2px;display:block}.attachments-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.attachments-item{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);flex-direction:column;gap:6px;padding:8px;display:flex}.attachments-thumb{object-fit:cover;border-radius:var(--radius-sm);background:var(--panel);cursor:pointer;width:100%;height:120px}.attachments-caption-input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);padding:6px 8px;font-size:12px}.attachments-item-note{grid-column:1/-1}.attachments-note-text,.attachments-note-compose-input{font-family:var(--font-body);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);resize:vertical;min-height:60px;padding:8px 10px;font-size:13px}.attachments-note-compose{flex-direction:column;gap:8px;margin:0 0 12px;display:flex}.attachment-lightbox-scrim{justify-content:center;align-items:center;padding:24px}.attachment-lightbox{max-width:100%;max-height:100%;animation:.2s sheet-slide-up;position:relative}.attachment-lightbox-img{object-fit:contain;border-radius:var(--radius-md);background:var(--panel);max-width:90vw;max-height:90vh;display:block}.attachment-lightbox-close{background:var(--ink);width:32px;height:32px;color:var(--paper);cursor:pointer;border:none;border-radius:50%;font-size:14px;line-height:1;position:absolute;top:-14px;right:-14px}.sketch-color-row{gap:8px;margin-bottom:10px;display:flex}.sketch-color-swatch{border:2px solid var(--line);cursor:pointer;border-radius:50%;width:32px;height:32px}.sketch-color-swatch.mode-active{border-color:var(--ink);box-shadow:0 0 0 2px var(--paper), 0 0 0 4px var(--ink)}.sketch-canvas{border:1px solid var(--line);border-radius:var(--radius-md);touch-action:none;background:#fff;width:100%;max-width:480px;height:auto;display:block}.numeric-keypad{z-index:70;background:var(--panel);border-top:1px solid var(--line);padding:8px;padding-bottom:max(8px, env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 12px #18140e26}.numeric-keypad-grid{grid-template-columns:repeat(4,1fr);gap:6px;max-width:420px;margin:0 auto;display:grid}.numeric-keypad button{font-family:var(--font-mono);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;padding:14px 0;font-size:18px}.numeric-keypad button:active{background:var(--line)}.numeric-keypad-wide{font-size:16px}.numeric-keypad-space{letter-spacing:.08em;text-transform:uppercase;grid-column:1/-1;font-size:14px}.numeric-keypad-done{width:100%;max-width:420px;font-family:var(--font-mono);color:var(--accent-ink);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-md);cursor:pointer;margin:6px auto 0;padding:10px 0;font-size:14px;font-weight:600;display:block}.pin-gate-screen{background:var(--paper);flex-direction:column;flex:1;align-items:center;gap:20px;min-height:0;padding:40px 22px;display:flex;overflow-y:auto}.pin-gate-header{text-align:center}.pin-gate-kicker{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:11px}.pin-gate-heading{font-family:var(--font-heading);color:var(--ink);margin-top:8px;font-size:26px;font-weight:600}.pin-gate-links{flex-direction:column;align-items:center;gap:8px;display:flex}.pin-gate-links button{color:var(--muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;min-height:32px;font-size:13px;text-decoration:underline}.pin-gate-seat-list{flex-direction:column;gap:8px;width:100%;max-width:320px;margin:0;padding:0;list-style:none;display:flex}.pin-gate-seat-option{border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--panel);width:100%;color:var(--ink);text-align:left;cursor:pointer;padding:16px 18px;font-size:16px;font-weight:600}.pin-pad{flex-direction:column;align-items:center;gap:16px;width:100%;max-width:300px;display:flex}.pin-pad-title{font-family:var(--font-heading);color:var(--ink);text-align:center;font-size:22px;font-weight:600}.pin-pad-subtitle{text-align:center;margin-top:-8px;font-size:13px}.pin-pad-dots{gap:14px;display:flex}.pin-pad-dot{border:1.5px solid var(--line);background:0 0;border-radius:50%;width:14px;height:14px}.pin-pad-dot-filled{background:var(--accent);border-color:var(--accent)}.pin-pad-error{min-height:16px}.pin-pad-grid{grid-template-columns:repeat(3,1fr);gap:10px;width:100%;display:grid}.pin-pad-key{border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--panel);min-height:56px;color:var(--ink);font-family:var(--font-mono);cursor:pointer;font-size:20px;font-weight:600}.pin-pad-backspace{color:var(--muted);font-size:16px}.manage-seats-btn{width:100%}.manage-seats-list{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.manage-seats-item{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.manage-seats-add-row{gap:8px;margin-bottom:8px;display:flex}.manage-seats-add-row input{box-sizing:border-box;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);color:var(--ink);flex:1;padding:10px 12px;font-size:14px}.pairing-status{margin:4px 0 12px}.pairing-connect-btn{width:100%}.pairing-connected{color:var(--saved-dot);font-size:13px;font-weight:600;display:block}.pairing-code{border-radius:var(--radius-md);border:1px dashed var(--line);background:var(--paper);font-family:var(--font-mono);letter-spacing:.08em;text-align:center;color:var(--ink);margin:16px 0;padding:16px;font-size:28px;font-weight:600}.pairing-waiting{text-align:center}.pairing-success{color:var(--saved-dot);font-size:15px;font-weight:600}.restore-open-btn{width:100%;margin-top:8px}.restore-job-list{flex-direction:column;gap:6px;max-height:50vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.restore-job-item{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}
