@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--shell: #e7e7e4;--chrome-top: #f2f2f0;--chrome-bottom: #e4e4e1;--statusbar-top: #e4e4e1;--statusbar-bottom: #d9d9d6;--rail: #e0e0dd;--rail-right: #dcdcd9;--panel: #f4f4f2;--panel-header: #efefec;--panel-footer: #efefec;--field: #ffffff;--field-readonly: #f0f0ee;--hover: #ededea;--active: #dde6ef;--border: #c6c7c4;--border-field: #c8cbce;--border-field-hover: #a4a9ad;--border-readonly: #d3d5d7;--border-strong: #a4a9ad;--divider: #dcdedd;--divider-list: #e2e3e0;--separator-menubar: #cbccc9;--text: #1c1e21;--text-strong: #1c1e21;--text-secondary: #31353a;--text-label: #5f6469;--text-muted: #6d7175;--text-dim: #8b8f93;--text-disabled: #9a9ea1;--text-placeholder: #9a9ea1;--accent: #2f5d8c;--accent-hover: #356798;--accent-press: #27507a;--accent-soft: #e9eff5;--accent-soft-border: #b6c6d6;--row-selected: #dde6ef;--on-accent: #ffffff;--on-accent-dim: #c9dbec;--ok: #3f7a4a;--ok-text: #245c33;--ok-soft: #e4efe6;--ok-soft-border: #a9c9b1;--warn: #a9702a;--warn-text: #7a5a18;--warn-soft: #f6efdc;--warn-soft-border: #dcc78e;--danger: #9a3b30;--danger-text: #7a2f26;--danger-soft: #f6e6e3;--danger-soft-border: #dfb8b1;--axis-x: #9a3b30;--axis-y: #3f7a4a;--axis-z: #2f5d8c;--viewport-sky-top: #c3ced8;--viewport-sky-horizon: #dfe5e9;--viewport-ground: #b6bda9;--viewport-grid: rgba(255, 255, 255, .45);--hud-bg: rgba(246, 246, 244, .92);--hud-border: #c2c5c7;--hud-divider: #d7d9da;--scrollbar-thumb: #b9bcbe;--modal-scrim: rgba(28, 30, 33, .55);--btn-secondary-bg: #f8f8f6;--btn-secondary-hover-bg: #ffffff;--btn-secondary-press-bg: #ededea;--btn-primary-disabled-bg: #b9c4ce;--btn-primary-disabled-border: #aab6c1;--btn-primary-disabled-text: #f0f2f4;--font-sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;--fs-panel-title: 14px;--fs-menu-item: 12.5px;--fs-list-header: 12.5px;--fs-section-label: 11.5px;--fs-field-label: 12px;--fs-field-value: 12px;--fs-field-number: 12.5px;--fs-unit-suffix: 11px;--fs-hud-label: 11px;--fs-hud-value: 12px;--fs-statusbar: 11.5px;--fs-badge: 11px;--fs-chip: 11.5px;--fs-button: 12px;--fs-min: 11px;--fs-touch-input: 16px;--menubar-h: 36px;--statusbar-h: 26px;--panelrail-w: 38px;--panelrail-icon: 28px;--panelrail-glyph: 14px;--panel-w: 352px;--panel-pad-x: 14px;--panel-pad-y: 14px;--label-col-w: 120px;--form-row-h: 26px;--control-h: 24px;--button-h: 28px;--menu-row-h: 26px;--chip-h: 22px;--badge-h: 22px;--gizmo: 72px;--hud-h: 26px;--scrollbar-w: 6px;--r-field: 2px;--r-segment: 2px;--r-button: 3px;--r-panel: 3px;--r-chip: 11px;--r-badge: 3px;--r-icon-button: 3px;--sp-xxs: 4px;--sp-xs: 5px;--sp-sm: 8px;--sp-md: 10px;--sp-lg: 14px;--sp-xl: 18px;--sp-section: 15px;--bw-hairline: 1px;--bw-focus-ring: 2px;--bw-selected-marker: 3px;--shadow-hud: 0 1px 2px rgba(0, 0, 0, .08);--shadow-modal: 0 8px 28px rgba(0, 0, 0, .18);--kind-note: #ffb74d;--kind-measure: #66bb6a;--kind-cable: #a07ad8;--kind-cut: #ffb74d;--kind-photo: #8b8f93}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;background:var(--shell);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-field-value);line-height:1.45;-webkit-font-smoothing:antialiased;overflow:hidden}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}input,textarea,select{font-family:inherit;color:inherit}.mono{font-family:var(--font-mono);font-feature-settings:"tnum"}*::-webkit-scrollbar{width:var(--scrollbar-w);height:var(--scrollbar-w)}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--r-field)}*::-webkit-scrollbar-track{background:transparent}.app{width:100vw;height:100vh;display:grid;grid-template-rows:var(--menubar-h) 1fr var(--statusbar-h);background:var(--shell)}.app-body{position:relative;display:grid;grid-template-columns:1fr calc(var(--panelrail-w) + var(--panel-w));overflow:hidden;min-height:0}.app-body.no-panel{grid-template-columns:1fr}.topbar{height:var(--menubar-h);flex:0 0 var(--menubar-h);background:linear-gradient(180deg,var(--chrome-top) 0%,var(--chrome-bottom) 100%);border-bottom:var(--bw-hairline) solid var(--border);display:flex;align-items:center;padding:0 var(--sp-sm);gap:var(--sp-md);-webkit-user-select:none;user-select:none}.topbar-left,.topbar-right{display:flex;align-items:center;gap:var(--sp-xxs)}.topbar-center{flex:1;display:flex;align-items:center;gap:var(--sp-sm);justify-content:center;font-size:var(--fs-menu-item);min-width:0}.brand{display:flex;align-items:center;gap:var(--sp-xs);padding-right:var(--sp-sm);border-right:var(--bw-hairline) solid var(--separator-menubar);height:20px}.brand-mark{width:20px;height:20px;border-radius:var(--r-badge);background:var(--accent);color:var(--on-accent);display:grid;place-items:center}.brand-name{font-weight:600;font-size:var(--fs-menu-item);color:var(--text)}.brand-version{font-family:var(--font-mono);font-size:var(--fs-min);color:var(--text-dim)}.proj-label{color:var(--text-label);font-size:var(--fs-min);text-transform:uppercase;letter-spacing:.06em}.proj-name{color:var(--text);font-weight:500}.proj-sep{color:var(--text-dim)}.proj-tree{color:var(--text-secondary);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.save-pill{display:inline-flex;align-items:center;gap:var(--sp-xs);height:var(--badge-h);padding:0 var(--sp-sm);border-radius:var(--r-badge);font-size:var(--fs-badge);letter-spacing:.06em;background:var(--accent-soft);border:var(--bw-hairline) solid var(--accent-soft-border);color:var(--accent);margin-left:var(--sp-sm)}.tb-btn{height:var(--button-h);min-width:var(--button-h);display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-xxs);padding:0 var(--sp-sm);border-radius:var(--r-button);background:var(--btn-secondary-bg);border:var(--bw-hairline) solid var(--border-field);color:var(--text-secondary);font-size:var(--fs-button)}.tb-btn:hover:not(:disabled){background:var(--btn-secondary-hover-bg);border-color:var(--border-field-hover)}.tb-btn:active:not(:disabled){background:var(--btn-secondary-press-bg)}.tb-btn:disabled{color:var(--text-disabled);cursor:default}.tb-btn-label{font-size:var(--fs-button);color:inherit}.tb-btn-primary{background:var(--accent);border-color:var(--accent-press);color:var(--on-accent);font-weight:500}.tb-btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-press)}.tb-btn-primary:active:not(:disabled){background:var(--accent-press)}.topbar-divider{width:var(--bw-hairline);height:14px;background:var(--separator-menubar);margin:0 var(--sp-xxs)}.viewport-wrap{position:relative;overflow:hidden;background:var(--viewport-sky-horizon);display:flex;flex-direction:column;min-width:0}.viewport{position:relative;flex:1;min-height:0;overflow:hidden}.viewport canvas{display:block}.viewport.crosshair,.viewport.crosshair canvas{cursor:crosshair}.hud-chip{display:inline-flex;align-items:center;gap:var(--sp-xs);height:var(--hud-h);padding:0 var(--sp-sm);background:var(--hud-bg);border:var(--bw-hairline) solid var(--hud-border);border-radius:var(--r-field);box-shadow:var(--shadow-hud);font-size:var(--fs-hud-value);color:var(--text)}.hud-chip .hud-key{color:var(--text-dim);font-size:var(--fs-hud-label);text-transform:uppercase;letter-spacing:.05em}.ppanel{display:grid;grid-template-columns:var(--panelrail-w) var(--panel-w);background:var(--panel);border-left:var(--bw-hairline) solid var(--border);overflow:hidden;min-height:0}.ppanel-rail{background:var(--rail-right);border-right:var(--bw-hairline) solid var(--border);display:flex;flex-direction:column;align-items:center;padding:var(--sp-xxs) 0;gap:2px}.rail-btn{width:var(--panelrail-icon);height:var(--panelrail-icon);display:grid;place-items:center;border-radius:var(--r-icon-button);color:var(--text-label);position:relative}.rail-btn svg{width:var(--panelrail-glyph);height:var(--panelrail-glyph)}.rail-btn:hover{background:var(--hover);color:var(--text-secondary)}.rail-btn.on{background:var(--panel);color:var(--accent)}.rail-btn.on:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:var(--bw-selected-marker);background:var(--accent)}.ppanel-body{display:flex;flex-direction:column;overflow:hidden;min-width:0}.ppanel-head{height:var(--menubar-h);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--panel-pad-x);background:var(--panel-header);border-bottom:var(--bw-hairline) solid var(--divider)}.ppanel-title{font-size:var(--fs-panel-title);font-weight:600;color:var(--text)}.ppanel-close{width:var(--control-h);height:var(--control-h);display:grid;place-items:center;border-radius:var(--r-icon-button);color:var(--text-label)}.ppanel-close:hover{background:var(--hover);color:var(--text)}.ppanel-content{flex:1;overflow-y:auto;overflow-x:hidden;background:var(--panel)}.form-tab{padding-bottom:var(--sp-xl)}.form-section{padding:var(--panel-pad-y) var(--panel-pad-x) var(--sp-section);border-bottom:var(--bw-hairline) solid var(--divider)}.form-section:last-child{border-bottom:0}.form-section-title{font-size:var(--fs-section-label);font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--sp-md)}.form-row{display:grid;grid-template-columns:var(--label-col-w) 1fr;align-items:center;gap:var(--sp-md);min-height:var(--form-row-h);margin-bottom:var(--sp-xxs)}.form-row>label{font-size:var(--fs-field-label);color:var(--text-label)}.form-row-stack{grid-template-columns:1fr;gap:var(--sp-xxs)}.form-row-stack>label{font-size:var(--fs-section-label);text-transform:uppercase;letter-spacing:.06em;color:var(--text-label)}.inp{width:100%;height:var(--control-h);background:var(--field);border:var(--bw-hairline) solid var(--border-field);border-radius:var(--r-field);padding:0 var(--sp-sm);font-size:var(--fs-field-value);color:var(--text);outline:0}.inp:hover:not(:disabled):not(:read-only){border-color:var(--border-field-hover)}.inp:focus{border-color:var(--accent);box-shadow:0 0 0 var(--bw-focus-ring) var(--row-selected)}.inp::placeholder{color:var(--text-placeholder)}.inp:read-only,.inp:disabled{background:var(--field-readonly);border-color:var(--border-readonly);color:var(--text-label)}textarea.inp{height:auto;min-height:60px;padding:var(--sp-sm);line-height:1.45;resize:vertical}.kv{display:grid;grid-template-columns:var(--label-col-w) 1fr;gap:var(--sp-md);align-items:baseline;min-height:var(--form-row-h);padding:var(--sp-xxs) 0;font-size:var(--fs-field-value)}.kv>span:first-child{color:var(--text-label)}.kv>span:last-child{color:var(--text);text-align:right;overflow-wrap:anywhere}.kv>span.mono{font-family:var(--font-mono);font-size:var(--fs-field-number);font-weight:500}.inp-suffix{position:relative}.inp-suffix input{padding-right:28px;text-align:right}.inp-suffix>span{position:absolute;right:var(--sp-sm);top:50%;transform:translateY(-50%);color:var(--text-placeholder);font-size:var(--fs-unit-suffix)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-xs);height:var(--button-h);padding:0 var(--sp-md);background:var(--accent);border:var(--bw-hairline) solid var(--accent-press);border-radius:var(--r-button);color:var(--on-accent);font-size:var(--fs-button);font-weight:500}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-press)}.btn-primary:disabled{background:var(--btn-primary-disabled-bg);border-color:var(--btn-primary-disabled-border);color:var(--btn-primary-disabled-text);cursor:default}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-xs);height:var(--button-h);padding:0 var(--sp-md);background:var(--btn-secondary-bg);border:var(--bw-hairline) solid var(--border-field);border-radius:var(--r-button);color:var(--text-secondary);font-size:var(--fs-button)}.btn-secondary:hover:not(:disabled){background:var(--btn-secondary-hover-bg);border-color:var(--border-field-hover)}.btn-secondary:disabled{color:var(--text-disabled);cursor:default}.btn-secondary.full-w,.btn-primary.full-w{width:100%}.icon-btn{width:var(--control-h);height:var(--control-h);display:grid;place-items:center;border-radius:var(--r-icon-button);color:var(--text-label)}.icon-btn:hover{background:var(--hover);color:var(--text)}.icon-btn.danger:hover{background:var(--danger-soft);color:var(--danger)}.search-input{position:relative;flex:1;display:flex;align-items:center;gap:var(--sp-xs);height:var(--control-h);padding:0 var(--sp-sm);background:var(--field);border:var(--bw-hairline) solid var(--border-field);border-radius:var(--r-field);color:var(--text-label)}.search-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 var(--bw-focus-ring) var(--row-selected)}.search-input input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--text);font-size:var(--fs-field-value)}.search-input input::placeholder{color:var(--text-placeholder)}.search-clear{width:16px;height:16px;display:grid;place-items:center;border-radius:50%;color:var(--text-label)}.search-clear:hover{background:var(--hover);color:var(--text)}.filter-chips{display:flex;gap:var(--sp-xxs);margin-bottom:var(--sp-md)}.chip{display:inline-flex;align-items:center;gap:var(--sp-xs);height:var(--chip-h);padding:0 var(--sp-md);border-radius:var(--r-chip);background:var(--field);border:var(--bw-hairline) solid var(--border-field);color:var(--text-muted);font-size:var(--fs-chip);white-space:nowrap}.chip:hover{border-color:var(--border-field-hover)}.chip.on{background:var(--accent);border-color:var(--accent-press);color:var(--on-accent)}.chip-count{font-family:var(--font-mono);font-size:var(--fs-min);color:var(--text-dim)}.chip.on .chip-count{color:var(--on-accent-dim)}.annot-tab-stub{padding:var(--panel-pad-y) var(--panel-pad-x) var(--sp-xl)}.annot-toolbar{display:flex;gap:var(--sp-sm);margin-bottom:var(--sp-md)}.annot-list{display:flex;flex-direction:column}.annot-row{display:grid;grid-template-columns:8px 1fr auto;gap:var(--sp-md);align-items:center;width:100%;padding:var(--sp-sm) var(--sp-md);text-align:left;background:transparent;border:0;border-bottom:var(--bw-hairline) solid var(--divider-list);border-left:var(--bw-selected-marker) solid transparent}.annot-row:hover{background:var(--hover)}.annot-row.sel{background:var(--row-selected);border-left-color:var(--accent)}.annot-bullet{width:7px;height:7px;border-radius:50%;background:var(--kind-note)}.annot-bullet.measure{background:var(--kind-measure)}.annot-bullet.kronen{background:var(--kind-cable)}.annot-bullet.segment,.annot-bullet.branch{background:var(--kind-cut)}.annot-bullet.photo{background:var(--kind-photo)}.annot-row-main{min-width:0}.annot-row-title{font-size:var(--fs-list-header);color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annot-row-meta{display:flex;align-items:center;gap:var(--sp-xs);margin-top:2px;font-size:var(--fs-min);color:var(--text-dim)}.annot-row-meta .dot{width:2px;height:2px;border-radius:50%;background:var(--text-dim);display:inline-block;flex-shrink:0}.annot-status{font-size:var(--fs-min);color:var(--warn-text);text-transform:uppercase;letter-spacing:.06em}.annot-status.done{color:var(--ok-text)}.tweak-toggle{position:relative;width:34px;height:18px;border-radius:9px;background:var(--field-readonly);border:var(--bw-hairline) solid var(--border-field);flex-shrink:0;justify-self:start}.tweak-toggle .toggle-knob{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--text-dim);transition:transform .12s,background .12s}.tweak-toggle.on{background:var(--accent);border-color:var(--accent-press)}.tweak-toggle.on .toggle-knob{transform:translate(16px);background:var(--on-accent)}.tweak-radio{display:inline-flex;justify-self:start;background:var(--field);border:var(--bw-hairline) solid var(--border-field);border-radius:var(--r-segment);overflow:hidden}.tweak-radio-btn{height:calc(var(--control-h) - 2px);padding:0 var(--sp-md);color:var(--text-muted);font-size:var(--fs-button);border-left:var(--bw-hairline) solid var(--divider)}.tweak-radio-btn:first-child{border-left:0}.tweak-radio-btn:hover{color:var(--text)}.tweak-radio-btn.on{background:var(--accent);color:var(--on-accent)}.stub-blurb{font-size:var(--fs-field-value);color:var(--text-secondary);line-height:1.5}.empty-state{padding:var(--sp-xl) var(--sp-lg);text-align:center;color:var(--text-label)}.empty-title{font-size:var(--fs-list-header);color:var(--text-secondary);font-weight:500}.empty-blurb{font-size:var(--fs-min);color:var(--text-dim);margin-top:var(--sp-xxs);line-height:1.4}.statusbar{height:var(--statusbar-h);flex:0 0 var(--statusbar-h);background:linear-gradient(180deg,var(--statusbar-top) 0%,var(--statusbar-bottom) 100%);border-top:var(--bw-hairline) solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-md);font-size:var(--fs-statusbar);color:var(--text-muted);-webkit-user-select:none;user-select:none}.sb-left,.sb-right{display:flex;align-items:center;gap:var(--sp-md)}.sb-tool{display:inline-flex;align-items:center;gap:var(--sp-xs);color:var(--text-secondary);font-weight:500}.sb-hint{color:var(--text-muted)}.sb-sep{width:var(--bw-hairline);height:12px;background:var(--separator-menubar);display:inline-block}.sb-right b{color:var(--text);font-weight:500}html,body,#root{margin:0;padding:0;width:100%;height:100%;overflow:hidden}.annot-detail{display:flex;flex-direction:column;height:100%}.detail-head{display:flex;align-items:center;gap:var(--sp-md);padding:var(--sp-md) var(--panel-pad-x);border-bottom:var(--bw-hairline) solid var(--divider);background:var(--panel-header)}.detail-back{width:var(--control-h);height:var(--control-h);border-radius:var(--r-icon-button);background:var(--btn-secondary-bg);border:var(--bw-hairline) solid var(--border-field);color:var(--text-label);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transform:rotate(180deg)}.detail-back:hover{background:var(--btn-secondary-hover-bg);border-color:var(--border-field-hover);color:var(--text)}.detail-head-main{flex:1;min-width:0}.detail-head-kind{display:flex;align-items:center;gap:var(--sp-xs);font-size:var(--fs-section-label);color:var(--text-label);text-transform:uppercase;letter-spacing:.06em}.detail-head-title{font-size:var(--fs-panel-title);font-weight:600;color:var(--text);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-head-actions{display:flex;gap:var(--sp-xxs)}.detail-body{flex:1;min-height:0;overflow-y:auto;padding-bottom:var(--sp-xl)}.detail-text{margin:0 0 var(--sp-xs);color:var(--text);font-size:var(--fs-field-value);white-space:pre-wrap;line-height:1.45}.detail-note{margin:0;font-size:var(--fs-min);color:var(--text-muted);line-height:1.45}.detail-note code{font-family:var(--font-mono);font-size:var(--fs-min);color:var(--text-secondary)}.detail-image{position:relative;width:100%;border-radius:var(--r-field);overflow:hidden;background:var(--field);border:var(--bw-hairline) solid var(--border-field)}.detail-image img{width:100%;display:block}.detail-image-expand{position:absolute;top:var(--sp-sm);right:var(--sp-sm);display:inline-flex;align-items:center;gap:var(--sp-xs);height:var(--chip-h);padding:0 var(--sp-md);font-size:var(--fs-min);border-radius:var(--r-field);border:var(--bw-hairline) solid var(--hud-border);background:var(--hud-bg);color:var(--text);box-shadow:var(--shadow-hud);cursor:pointer}.detail-image-expand:hover{border-color:var(--border-field-hover)}.detail-comment{margin-top:var(--sp-md)}.detail-comment textarea{width:100%;font-family:var(--font-sans);font-size:var(--fs-field-value);resize:vertical}.lightbox-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--modal-scrim);display:flex;align-items:center;justify-content:center;animation:lightbox-fade .12s ease-out}@keyframes lightbox-fade{0%{opacity:0}to{opacity:1}}.lightbox-stage{position:relative;width:75vw;height:75vh;max-width:75vw;max-height:75vh;display:flex;align-items:center;justify-content:center}.lightbox-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:var(--r-panel);box-shadow:var(--shadow-modal);background:var(--field)}.lightbox-close{position:absolute;top:-14px;right:-14px;width:var(--button-h);height:var(--button-h);border-radius:50%;background:var(--field);border:var(--bw-hairline) solid var(--border);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-modal)}.lightbox-close:hover{background:var(--hover);border-color:var(--border-field-hover)}.status-toggle-row{display:flex;gap:var(--sp-xs);margin-bottom:var(--sp-xs)}.status-toggle{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-xs);height:var(--button-h);padding:0 var(--sp-md);font-size:var(--fs-button);border-radius:var(--r-button);border:var(--bw-hairline) solid var(--border-field);background:var(--btn-secondary-bg);color:var(--text-secondary);cursor:pointer}.status-toggle:hover{background:var(--btn-secondary-hover-bg);border-color:var(--border-field-hover)}.status-toggle.on{background:var(--warn-soft);border-color:var(--warn-soft-border);color:var(--warn-text);font-weight:500}.status-toggle.done.on{background:var(--ok-soft);border-color:var(--ok-soft-border);color:var(--ok-text)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--sp-xs)}.photo-tile{position:relative;aspect-ratio:1;border-radius:var(--r-field);overflow:hidden;background:var(--field);border:var(--bw-hairline) solid var(--border-field)}.photo-tile img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}.photo-remove{position:absolute;top:var(--sp-xxs);right:var(--sp-xxs);width:var(--chip-h);height:var(--chip-h);border-radius:50%;border:var(--bw-hairline) solid var(--hud-border);background:var(--hud-bg);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-hud)}.photo-remove:hover{background:var(--danger-soft);border-color:var(--danger-soft-border);color:var(--danger)}.photo-add{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-xxs);border-radius:var(--r-field);border:var(--bw-hairline) dashed var(--border-strong);background:var(--field);color:var(--text-label);font-size:var(--fs-min);cursor:pointer;padding:var(--sp-sm)}.photo-add:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.photo-add:disabled{cursor:wait;color:var(--text-disabled)}.voice-recorder{display:flex;flex-direction:column;gap:var(--sp-sm)}.voice-existing{display:flex;flex-direction:column;gap:var(--sp-xxs);padding:var(--sp-sm);border-radius:var(--r-field);background:var(--field);border:var(--bw-hairline) solid var(--border-field)}.voice-existing audio{width:100%;height:32px}.voice-meta{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-min);color:var(--text-muted)}.voice-remove{display:inline-flex;align-items:center;gap:var(--sp-xxs);height:var(--chip-h);padding:0 var(--sp-sm);border-radius:var(--r-button);border:var(--bw-hairline) solid var(--border-field);background:transparent;color:var(--text-label);cursor:pointer;font-size:var(--fs-min)}.voice-remove:hover{background:var(--danger-soft);border-color:var(--danger-soft-border);color:var(--danger)}.voice-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-sm);height:var(--button-h);padding:0 var(--sp-md);border-radius:var(--r-button);border:var(--bw-hairline) solid var(--border-field);background:var(--btn-secondary-bg);color:var(--text-secondary);cursor:pointer;font-size:var(--fs-button)}.voice-btn:hover{background:var(--btn-secondary-hover-bg);border-color:var(--border-field-hover)}.voice-btn:disabled{color:var(--text-disabled);cursor:wait}.voice-btn.recording{background:var(--danger-soft);border-color:var(--danger-soft-border);color:var(--danger-text)}.voice-pulse{width:8px;height:8px;border-radius:50%;background:var(--danger);animation:voice-pulse .9s ease-in-out infinite}@keyframes voice-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.6);opacity:.4}}.voice-error{color:var(--danger-text)}.placement-banner{position:absolute;top:var(--sp-lg);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--sp-md);height:var(--button-h);padding:0 var(--sp-md);background:var(--accent);border:var(--bw-hairline) solid var(--accent-press);border-radius:var(--r-button);color:var(--on-accent);font-size:var(--fs-button);box-shadow:var(--shadow-hud);z-index:10}.placement-banner button{background:transparent;border:none;color:var(--on-accent);cursor:pointer;padding:0;display:flex;align-items:center}.added-note-banner{display:flex;align-items:center;gap:var(--sp-sm);padding:var(--sp-sm) var(--panel-pad-x);border-bottom:var(--bw-hairline) solid var(--accent-soft-border);background:var(--accent-soft);color:var(--text-secondary);font-size:var(--fs-field-value)}.btn-danger{display:inline-flex;align-items:center;gap:var(--sp-xs);height:var(--button-h);padding:0 var(--sp-md);border-radius:var(--r-button);border:var(--bw-hairline) solid var(--danger-soft-border);background:var(--danger-soft);color:var(--danger-text);cursor:pointer;font-size:var(--fs-button);font-weight:500}.btn-danger:hover{background:var(--danger);border-color:var(--danger);color:var(--on-accent)}.dropzone{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-lg);padding:var(--sp-xl);background:var(--shell);color:var(--text-secondary);font-size:var(--fs-field-value);text-align:center}.dropzone-target{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-md);width:min(560px,100%);padding:var(--sp-xl);border-radius:var(--r-panel);border:var(--bw-focus-ring) dashed var(--border-strong);background:var(--panel)}.dropzone-target.hover{border-color:var(--accent);background:var(--accent-soft)}.dropzone-title{margin:0;font-size:var(--fs-panel-title);font-weight:600;color:var(--text)}.dropzone-hint{margin:0;color:var(--text-muted);font-size:var(--fs-min)}.dropzone-error{margin:0;max-width:480px;color:var(--danger-text)}.dropzone-accent{margin:0;color:var(--accent);font-variant-numeric:tabular-nums}.dropzone-progress{display:flex;flex-direction:column;align-items:center;gap:var(--sp-sm)}label.btn-secondary{cursor:pointer}.progress-track{width:280px;height:6px;border-radius:var(--r-field);background:var(--field-readonly);border:var(--bw-hairline) solid var(--border-field);overflow:hidden}.progress-fill{height:100%;background:var(--accent);transition:width .1s}.sketch-tab{display:flex;flex-direction:column}.sketch-stage{position:relative;aspect-ratio:1;border-bottom:var(--bw-hairline) solid var(--divider);background:var(--field-readonly);overflow:hidden}.sketch-svg{width:100%;height:100%;display:block;cursor:grab;touch-action:none}.sketch-svg:active{cursor:grabbing}.sketch-hint{position:absolute;left:var(--sp-sm);top:var(--sp-sm);right:var(--sp-sm);padding:0 var(--sp-sm);height:var(--hud-h);display:flex;align-items:center;background:var(--hud-bg);border:var(--bw-hairline) solid var(--hud-border);border-radius:var(--r-field);box-shadow:var(--shadow-hud);font-size:var(--fs-hud-label);color:var(--text-muted);pointer-events:none}.sketch-actions{display:flex;gap:var(--sp-sm);margin:var(--sp-md) 0 var(--sp-sm)}.sketch-actions>button{flex:1}.sketch-lightbox-stage{position:relative;width:88vw;height:88vh;background:var(--field);border:var(--bw-hairline) solid var(--border);border-radius:var(--r-panel);box-shadow:var(--shadow-modal);overflow:hidden}.sketch-lightbox-close{position:absolute;top:var(--sp-md);right:var(--sp-md);width:var(--button-h);height:var(--button-h);display:grid;place-items:center;border-radius:var(--r-button);background:var(--hud-bg);border:var(--bw-hairline) solid var(--hud-border);color:var(--text);box-shadow:var(--shadow-hud);cursor:pointer}.sketch-lightbox-close:hover{background:var(--btn-secondary-hover-bg);border-color:var(--border-field-hover)}.sketch-stage .detail-image-expand{top:auto;bottom:var(--sp-sm);right:var(--sp-sm)}html[data-mobile="1"],html[data-mobile="1"] body{overflow:hidden;overscroll-behavior:none;height:100%;-webkit-text-size-adjust:100%}html[data-mobile="1"] .app.mobile{display:grid;grid-template-rows:48px 1fr;height:100vh;height:100dvh;width:100vw;position:relative;overflow:hidden;background:var(--shell)}.mob-topbar{display:flex;align-items:center;gap:var(--sp-md);padding:0 var(--sp-md);height:48px;background:linear-gradient(180deg,var(--chrome-top) 0%,var(--chrome-bottom) 100%);border-bottom:var(--bw-hairline) solid var(--border);z-index:20}.mob-tb-icon{width:36px;height:36px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-button);border:var(--bw-hairline) solid var(--border-field);background:var(--btn-secondary-bg);color:var(--text-secondary);cursor:pointer}.mob-tb-icon.on{background:var(--accent);border-color:var(--accent-press);color:var(--on-accent)}.mob-tb-title{flex:1;display:flex;flex-direction:column;min-width:0}.mob-tb-tree{font-size:var(--fs-panel-title);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mob-tb-kind{font-size:var(--fs-min);color:var(--text-label);text-transform:uppercase;letter-spacing:.06em}.mob-tb-send{height:36px;padding:0 var(--sp-md);display:inline-flex;align-items:center;gap:var(--sp-xs);border-radius:var(--r-button);background:var(--accent);border:var(--bw-hairline) solid var(--accent-press);color:var(--on-accent);font-size:var(--fs-field-value);font-weight:500;cursor:pointer}.mob-viewport{position:relative;display:flex;width:100%;height:100%;min-height:0;overflow:hidden;background:var(--viewport-sky-horizon);touch-action:none}.mob-viewport canvas{width:100%!important;height:100%!important;display:block;touch-action:none}.mob-sheet{position:fixed;left:0;right:0;bottom:0;background:var(--panel);border-top:var(--bw-hairline) solid var(--border);border-radius:var(--r-panel) var(--r-panel) 0 0;box-shadow:var(--shadow-modal);display:flex;flex-direction:column;z-index:30;overflow:hidden;padding-bottom:env(safe-area-inset-bottom)}.mob-sheet-grip{height:28px;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;flex-shrink:0;background:var(--panel-header)}.mob-sheet-grip:active{cursor:grabbing}.mob-sheet-handle{width:44px;height:4px;background:var(--border-strong);border-radius:var(--r-field)}.mob-sheet-header{flex-shrink:0;border-bottom:var(--bw-hairline) solid var(--divider);background:var(--panel-header)}.mob-sheet-body{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:var(--panel)}.mob-tabbar{display:flex;align-items:stretch;padding:0 var(--sp-xs)}.mob-tab{flex:1;min-width:0;background:transparent;border:none;border-bottom:var(--bw-focus-ring) solid transparent;color:var(--text-label);display:inline-flex;flex-direction:column;align-items:center;gap:2px;padding:var(--sp-sm) var(--sp-xxs);font-size:var(--fs-min);cursor:pointer}.mob-tab.on{color:var(--accent);border-bottom-color:var(--accent)}.mob-tab span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.mob-collapse{width:44px;background:transparent;border:none;border-left:var(--bw-hairline) solid var(--divider);color:var(--text-label);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.mob-collapse:active{color:var(--accent)}.mob-sheet-detailhead{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-xs) var(--sp-sm)}.mob-back{height:36px;padding:0 var(--sp-md);display:inline-flex;align-items:center;gap:var(--sp-xs);border-radius:var(--r-button);border:var(--bw-hairline) solid var(--border-field);background:var(--btn-secondary-bg);color:var(--text-secondary);font-size:var(--fs-field-value);cursor:pointer}html[data-mobile="1"] .annot-row{padding:var(--sp-md) var(--sp-md);min-height:56px}html[data-mobile="1"] .chip{height:36px;padding:0 var(--sp-lg)}html[data-mobile="1"] .form-row>label,html[data-mobile="1"] .kv>span{font-size:var(--fs-field-number)}html[data-mobile="1"] .tweak-toggle{width:44px;height:24px;border-radius:12px}html[data-mobile="1"] .tweak-toggle .toggle-knob{width:18px;height:18px}html[data-mobile="1"] .tweak-toggle.on .toggle-knob{transform:translate(20px)}html[data-mobile="1"] .tweak-radio-btn,html[data-mobile="1"] .status-toggle,html[data-mobile="1"] .btn-primary,html[data-mobile="1"] .btn-secondary{min-height:36px}html[data-mobile="1"] input[type=text],html[data-mobile="1"] input[type=search],html[data-mobile="1"] textarea,html[data-mobile="1"] .search-input input,html[data-mobile="1"] .inp{font-size:var(--fs-touch-input)}html[data-mobile="1"] .search-input,html[data-mobile="1"] .inp{height:36px}.placement-banner.mobile{position:absolute;left:var(--sp-md);right:var(--sp-md);top:var(--sp-md);transform:none;height:auto;padding:var(--sp-md);border-radius:var(--r-button);font-size:var(--fs-field-number)}.placement-banner.mobile button{margin-left:auto}
