:root{color-scheme:light;--bg: #eef1f6;--panel: #ffffff;--surface: #ffffff;--surface-2: rgba(0, 0, 0, .04);--ink: #0f172a;--ink-soft: #64748b;--line: #e6e9ef;--line-strong: #d5dae3;--accent: #2563eb;--accent-ink: #1d4ed8;--accent-soft: #e8eefe;--gold: #f0c000;--gold-ink: #7a5a00;--gold-soft: #faf3e3;--warn: #e5484d;--warn-soft: #fdecec;--amber: #f59e0b;--ok: #16a34a;--ink-faint: #94a3b8;--fill: #eef2f7;--warn-ink: #b42318;--amber-soft: #fef3e2;--amber-ink: #92600a;--ok-soft: #e7f6ec;--ok-ink: #15803d;--board: #fcfaf5;--track: #8a96a4;--canvas-bg: #e7ebf2;--canvas-desk: on;--canvas-desk-center: #eef2f7;--canvas-desk-mid: #e6ebf2;--canvas-desk-edge: #d7deea;--canvas-desk-dot: rgba(90, 105, 130, .13);--canvas-grid: rgba(0, 0, 0, .1);--rail: #2b2b2b;--roadbed: #cdbb9a;--sleeper: #7a5a3a;--sleeper-end: #5e4630;--sleeper-concrete: #9a9a92;--sleeper-concrete-end: #75756c;--flex-warn: #d32f2f;--ghost: #8a8a8a;--elev-shadow: rgba(112, 118, 126, .34);--elev-support: rgba(70, 70, 70, .55);--terrain-shade-dark: #3c4048;--terrain-shade-light: #fffdf6;--terrain-contour: rgba(90, 78, 54, .55);--terrain-water: #3f83c4;--terrain-water-edge: rgba(31, 74, 120, .7);--terrain-trasse: #83898f;--plate-fill: #fdfbf4;--plate-stroke: #e7e2d3;--plate-shadow: rgba(30, 41, 59, .22);--plate-label: #8a6d3b;--select: #1565c0;--arrow: #2e7d32;--arrow-hot: #ef6c00;--measure: #5d4037;--label-color: #2b2b2b;--edit-overlay: #a21caf;--edit-overlay-casing: rgba(255, 255, 255, .85);--route-seg-straight: #6d28d9;--route-seg-arc: #a21caf;--route-seg-ease: #be185d;--route-cross-kreuzung: #a21caf;--route-cross-ueberfuehrung: #15803d;--route-cross-eng: #b42318;--route-cross-offen: #64748b;--radius-btn: 12px;--radius-card: 16px;--radius-modal: 20px;--shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 8px 24px rgba(15, 23, 42, .08);--shadow-soft: 0 1px 2px rgba(15, 23, 42, .04), 0 4px 14px rgba(15, 23, 42, .06);--shadow-topbar: 0 1px 0 #edf0f5, 0 4px 14px -6px rgba(30, 41, 59, .16);--shadow-rail: inset 0 1px 0 rgba(255, 255, 255, .9), 0 16px 34px -10px rgba(30, 41, 59, .24), 0 4px 10px rgba(30, 41, 59, .12);--shadow-catalog: 0 22px 46px -14px rgba(30, 41, 59, .26), 0 4px 12px rgba(30, 41, 59, .12);--shadow-chip: 0 12px 26px -8px rgba(30, 41, 59, .22);--shadow-anzeige: 0 14px 30px -10px rgba(30, 41, 59, .24);--shadow-statusbar: 0 -3px 12px -2px rgba(30, 41, 59, .14);--cat-head-bg: #f4f6fa;--catalog-bg: #eaeef1;--tile-bg: #f4f6f8;--tile-bd: #d6dce1;--tap: 50px;--z-fullscreen: 45;--z-popover: 60;--z-popover-info: 65;--z-modal: 70;--z-toast: 80;--font: "Segoe UI", system-ui, -apple-system, "Inter", "Helvetica Neue", Arial, sans-serif}[data-theme=dark]{color-scheme:dark;--bg: #0f141b;--panel: #1a2230;--surface: #1a2230;--surface-2: rgba(255, 255, 255, .06);--ink: #f1f5f9;--ink-soft: #9fb0c3;--line: #2a3444;--line-strong: #3b4860;--accent: #5b9dff;--accent-ink: #93c5fd;--accent-soft: #1d2a45;--gold: #f5cf3a;--gold-ink: #e8c45a;--gold-soft: #2a2418;--warn: #ff7074;--warn-soft: #3a1f22;--amber: #fbbf24;--ok: #34d399;--board: #161c25;--track: #aab6c4;--canvas-bg: #12161c;--canvas-desk: none;--plate-shadow: none;--canvas-grid: rgba(0, 0, 0, .3);--rail: #d3d8df;--roadbed: #5d5444;--sleeper: #8c6d49;--sleeper-end: #6f5537;--sleeper-concrete: #8b8c85;--sleeper-concrete-end: #6c6d66;--flex-warn: #ff5c61;--ghost: #7b8694;--elev-shadow: rgba(146, 152, 162, .38);--elev-support: rgba(150, 156, 166, .6);--terrain-shade-dark: #10141c;--terrain-shade-light: #8fa0b8;--terrain-contour: rgba(150, 138, 110, .5);--terrain-water: #356aa2;--terrain-water-edge: rgba(150, 190, 230, .6);--terrain-trasse: #9aa1a8;--plate-fill: #1b2230;--plate-stroke: #b58a48;--plate-label: #d8b985;--select: #5b9dff;--arrow: #34d399;--arrow-hot: #fb923c;--measure: #c2b3a3;--label-color: #e8edf3;--edit-overlay: #e879f9;--edit-overlay-casing: rgba(8, 11, 16, .8);--route-seg-straight: #a78bfa;--route-seg-arc: #e879f9;--route-seg-ease: #fb7185;--route-cross-kreuzung: #e879f9;--route-cross-ueberfuehrung: #34d399;--route-cross-eng: #ff7074;--route-cross-offen: #94a3b8;--shadow-topbar: 0 1px 0 rgba(255, 255, 255, .05), 0 4px 14px -6px rgba(0, 0, 0, .5);--shadow-rail: inset 0 1px 0 rgba(255, 255, 255, .06), 0 16px 34px -10px rgba(0, 0, 0, .5), 0 4px 10px rgba(0, 0, 0, .35);--shadow-catalog: 0 22px 46px -14px rgba(0, 0, 0, .55), 0 4px 12px rgba(0, 0, 0, .35);--shadow-chip: 0 12px 26px -8px rgba(0, 0, 0, .5);--shadow-anzeige: 0 14px 30px -10px rgba(0, 0, 0, .5);--shadow-statusbar: 0 -3px 12px -2px rgba(0, 0, 0, .4);--cat-head-bg: #1f2836;--catalog-bg: #1a2230;--tile-bg: #ffffff;--tile-bd: #2a3444}.admin-shell{color-scheme:light;--bg: #eef1f6;--panel: #ffffff;--surface: #ffffff;--surface-2: rgba(0, 0, 0, .04);--ink: #0f172a;--ink-soft: #64748b;--ink-faint: #94a3b8;--fill: #eef2f7;--line: #e6e9ef;--line-strong: #d5dae3;--accent: #2563eb;--accent-ink: #1d4ed8;--accent-soft: #e8eefe;--gold: #f0c000;--gold-ink: #7a5a00;--gold-soft: #faf3e3;--warn: #e5484d;--warn-soft: #fdecec;--warn-ink: #b42318;--amber: #f59e0b;--amber-soft: #fef3e2;--amber-ink: #92600a;--ok: #16a34a;--ok-soft: #e7f6ec;--ok-ink: #15803d}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:var(--font);background:var(--bg);color:var(--ink);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;color:inherit}h1,h2,h3,h4{font-weight:700;letter-spacing:-.01em}svg.ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}svg.ic.sm{width:18px;height:18px}svg.ic.brand{stroke:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.lang-switch,.theme-switch{display:inline-flex;align-items:center}.lang-switch select,.theme-switch select{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line-strong);border-radius:8px;padding:6px 8px;cursor:pointer}.lang-switch select:hover,.theme-switch select:hover{border-color:var(--accent)}.lang-switch select:focus-visible,.theme-switch select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar,.tools,.catalog,.statusbar{-webkit-user-select:none;user-select:none}.topbar img,.tools img,.catalog img,.statusbar img,.topbar svg,.tools svg,.catalog svg,.statusbar svg{-webkit-user-drag:none;user-drag:none}.topbar{display:flex;align-items:center;gap:12px;padding:4px 12px;background:var(--panel);border-bottom:1px solid var(--line);z-index:30;position:relative;box-shadow:var(--shadow-topbar)}.brand{display:flex;align-items:center;gap:9px;font-weight:650;font-size:16px;white-space:nowrap;letter-spacing:-.01em}.brand .logo{width:28px;height:28px;border-radius:8px;background:var(--accent);display:grid;place-items:center;box-shadow:0 2px 8px #0f172a2e}.brand .logo svg{width:21px;height:21px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.brand .wm-accent{color:var(--accent)}.project{display:flex;align-items:center;gap:8px;color:var(--ink-soft);font-size:13px;padding-left:13px;margin-left:1px;border-left:1px solid var(--line);white-space:nowrap;min-width:0}.project b{color:var(--ink);font-weight:600}.project-name{display:inline-flex;align-items:center;gap:5px;min-height:34px;min-width:0;padding:2px 7px;margin:0;border:1px solid transparent;border-radius:8px;background:none;color:inherit;font:inherit;cursor:pointer;transition:.12s}.project-name:hover,.project-name:focus-visible{background:var(--accent-soft, #eef2f7);border-color:var(--line)}.project-name b{color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.project-edit{width:14px;height:14px;opacity:.55;flex:none}.project-name:hover .project-edit,.project-name:focus-visible .project-edit{opacity:.9}.saved{display:inline-flex;align-items:center;gap:5px;color:var(--ok);font-weight:600;font-size:12.5px}.saved svg{width:15px;height:15px;stroke:var(--ok);fill:none;stroke-width:2.2}.saving{color:var(--ink-soft);font-weight:600;font-size:12.5px}.not-saved{color:var(--warn);font-weight:600;font-size:12.5px;cursor:help}.sync{font-weight:600;font-size:12.5px;color:var(--ink-soft)}.sync-synced{color:var(--ok)}.sync-offline{color:var(--ink-soft)}.sync-pending,.sync-syncing{color:var(--accent-ink)}.sync-conflict,.sync-error,.sync-limit{color:var(--warn)}.premium-btn{display:inline-flex;align-items:center;gap:4px;font:inherit;font-size:12px;font-weight:700;color:var(--accent-ink);background:var(--accent-soft);border:1px solid var(--line-strong);border-radius:999px;padding:4px 11px;cursor:pointer;white-space:nowrap}.premium-btn:hover{border-color:var(--accent)}.top-actions{display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:nowrap;flex:none}.ta-inline{display:contents}.ta-more{display:none;position:relative}.ta-more-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:38px;padding:0 10px;border:1px solid var(--line-strong);background:#fff;border-radius:12px;color:var(--ink-soft);cursor:pointer}.ta-more-btn:hover,.ta-more-btn[aria-expanded=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.ta-more-dots{font-size:22px;line-height:1;font-weight:700}.ta-more-btn .badge{position:absolute;top:3px;right:4px;min-width:17px;height:17px;border-radius:9px;background:var(--warn);color:#fff;font-size:10.5px;font-weight:700;display:grid;place-items:center;padding:0 4px;box-shadow:0 0 0 2px #fff}.ta-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:40;min-width:240px;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;gap:2px;max-height:calc(100dvh - 84px);overflow-y:auto;overscroll-behavior:contain}.ta-menu-item{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 12px;border:0;background:transparent;border-radius:10px;color:var(--ink);font-size:14.5px;font-weight:600;cursor:pointer;text-align:left}.ta-menu-item:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-ink)}.ta-menu-item:disabled{opacity:.45;cursor:default}.ta-menu-item svg{width:20px;height:20px;flex:none}.help-menu{position:relative;display:inline-flex}.help-hub{min-width:288px}.ta-menu-sec{padding:8px 12px 4px;font-size:10.5px;letter-spacing:.8px;font-weight:800;color:var(--ink-soft);text-transform:uppercase}.ta-menu-sec:not(:first-child){border-top:1px solid var(--line);margin-top:4px}.ta-menu-item{text-decoration:none}.ta-menu-ext{margin-left:auto;color:var(--ink-soft);font-size:13px}.ta-menu-kbd{margin-left:auto;min-width:22px;padding:1px 7px;border-radius:6px;background:var(--bg);border:1px solid var(--line);border-bottom-width:2px;font:600 12px/1.5 ui-monospace,Consolas,monospace;color:var(--ink-soft);text-align:center}.ta-menu-subhead{padding:6px 12px 2px 42px;font-size:11px;font-weight:700;color:var(--ink-soft)}.ta-menu-tour .ta-tour-t{flex:1}.ta-menu-tour .ta-tour-meta{margin-left:auto;display:inline-flex;align-items:center}.ta-tour-done{color:var(--ok, #2e9e4f);font-weight:800}.ta-tour-dur{color:var(--ink-soft);font-size:12px;font-weight:500}.modal.shortcut-sheet{width:720px;max-width:100%;padding:20px 24px 24px}.shortcut-head{display:flex;align-items:center;gap:10px}.shortcut-head h2{margin:0;font-size:18px;font-weight:750}.shortcut-close{margin-left:auto;width:var(--tap);height:var(--tap);border:1px solid var(--line);background:var(--panel);border-radius:10px;display:grid;place-items:center;color:var(--ink-soft);font-size:15px;cursor:pointer}.shortcut-close:hover{background:var(--bg);color:var(--ink)}.shortcut-hint{color:var(--ink-soft);font-size:12.5px;margin:4px 0 14px}.shortcut-cols{display:grid;grid-template-columns:1fr;gap:0 34px}@media (min-width: 720px){.shortcut-cols{grid-template-columns:1fr 1fr}}.shortcut-grp{margin-bottom:8px}.shortcut-grp h3{font-size:11px;letter-spacing:.7px;color:var(--ink-soft);margin:10px 0 4px;font-weight:800;text-transform:uppercase}.shortcut-row{display:flex;align-items:center;gap:10px;min-height:40px;padding:6px 0;border-bottom:1px dashed var(--line)}.shortcut-desc{color:var(--ink);font-size:13.5px}.shortcut-keys{margin-left:auto;display:flex;gap:4px;flex:0 0 auto}.shortcut-keys kbd{background:var(--bg);border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:2px 8px;font:600 12px/1.5 ui-monospace,Consolas,monospace;color:var(--ink)}.shortcut-keys kbd.gesture{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);font-family:inherit;font-weight:600}.tbtn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:54px;min-height:0;padding:4px 8px;border:1px solid transparent;background:transparent;border-radius:10px;color:var(--ink-soft);font-size:11px;font-weight:600;transition:.12s}.tbtn svg.ic{width:19px;height:19px}.tbtn:not(:disabled):hover{background:var(--bg);color:var(--ink)}.tbtn.subtle{border-color:transparent;background:transparent;min-width:42px}.tbtn.subtle:not(:disabled):hover{background:var(--bg);color:var(--ink)}.tbtn.has-warn{position:relative;border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}.tbtn.has-warn:not(:disabled):hover{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.tbtn .badge{position:absolute;top:5px;right:7px;min-width:17px;height:17px;border-radius:9px;background:var(--warn);color:#fff;font-size:10.5px;font-weight:700;display:grid;place-items:center;padding:0 4px;box-shadow:0 0 0 2px #fff}.tbtn.active{background:var(--bg);color:var(--accent-ink)}.tbtn.prominent{min-width:56px;min-height:0;height:39px;font-size:11px}.tbtn.prominent svg.ic{width:19px;height:19px}.seg-nav{display:flex;gap:2px;padding:2px;border-radius:11px;background:var(--bg);border:1px solid var(--line)}.seg-nav .tbtn{border-radius:8px}.seg-nav .tbtn:not(:disabled):hover{background:var(--panel);color:var(--ink);box-shadow:0 1px 3px #1e293b1f}.tbtn:disabled{opacity:.4;cursor:default}.divider{width:1px;height:24px;background:var(--line);margin:0 2px}.presence{display:none;align-items:center;padding-right:2px}.app.shared .presence{display:flex}.av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:700;border:2.5px solid #fff;margin-left:-10px;box-shadow:var(--shadow-soft)}.av:first-child{margin-left:0}.av.more{background:#e2e8f0;color:#475569}.share{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:54px;min-height:0;padding:4px 8px;margin-right:4px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--ink-soft);font-size:11px;font-weight:600;transition:.12s}.share svg.ic{width:19px;height:19px}.share:not(:disabled):hover{background:var(--bg);color:var(--ink)}.share:disabled{opacity:.4;cursor:default}.share .lbl{font-size:11px;font-weight:600;line-height:1;display:block;margin:0;color:inherit;text-transform:none;letter-spacing:normal}.app.shared .share{color:var(--accent-ink)}.app.shared .share:not(:disabled):hover{background:var(--accent-soft);color:var(--accent-ink)}.me{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:700;background:#0f172a;box-shadow:0 0 0 2px var(--panel),0 0 0 3.5px var(--accent)}.me.premium{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--accent)}.main{display:flex;flex:1;min-height:0;position:relative;overflow:clip;--stage-inset-left: 86px;--stage-inset-right: 76px}.main.drawer-open{--stage-inset-right: 380px}.canvas-wrap{flex:1;position:relative;min-width:0;overflow:hidden;background:radial-gradient(circle at 1px 1px,rgba(90,105,130,.13) 1.3px,transparent 0) 0 0 / 26px 26px,var(--canvas-bg, #e7ebf2)}.canvas-stage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.canvas-stage canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;display:block}.canvas-stage.panning,.canvas-stage.panning canvas{cursor:grab}.canvas-stage.panning:active,.canvas-stage.panning canvas:active{cursor:grabbing}.canvas-controls{position:absolute;top:0;right:0;bottom:0;left:0;z-index:19;pointer-events:none}.canvas-controls>*{pointer-events:auto}.canvas-dock-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:21;pointer-events:none}.canvas-dock-layer>*{pointer-events:auto}.canvas-cursor-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:21;pointer-events:none}@keyframes plus-badge-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.82)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.plus-badge{position:absolute;transform:translate(-50%,-50%);z-index:24;width:28px;height:28px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--accent) 55%,transparent);background:#ffffff8c;color:color-mix(in srgb,var(--accent) 70%,transparent);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:20px;line-height:1;font-weight:700;padding:0;animation:plus-badge-in .15s ease-out backwards}@media (prefers-reduced-motion: reduce){.plus-badge{animation:none}}.plus-badge:before{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;border-radius:50%}.plus-badge:hover{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow)}.plus-badge--flex{cursor:grab;touch-action:none;z-index:29}.plus-badge--flex:active{cursor:grabbing}.plus-badge .pb-plus{display:flex;align-items:center;justify-content:center}.plus-badge .pb-drag{display:none;align-items:center;justify-content:center}.plus-badge--flex:hover .pb-plus{display:none}.plus-badge--flex:hover .pb-drag{display:flex}.end-grip{position:absolute;transform:translate(-50%,-50%);z-index:25;width:21px;height:21px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--ink) 30%,transparent);background:#ffffff80;color:color-mix(in srgb,var(--ink) 55%,transparent);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;font-size:13px;line-height:1;font-weight:700;letter-spacing:1px;animation:plus-badge-in .15s ease-out backwards}.end-grip:before{content:"";position:absolute;top:-13.5px;right:-13.5px;bottom:-13.5px;left:-13.5px;border-radius:50%}.end-grip:hover{background:var(--panel);color:var(--ink);border-color:var(--line-strong);box-shadow:var(--shadow)}@media (prefers-reduced-motion: reduce){.end-grip{animation:none}}.end-fan{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;pointer-events:none}.end-fan .fan-chip{pointer-events:auto}.fan-chip{position:absolute;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:7px;min-height:48px;padding:6px 16px;border-radius:24px;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);font-size:14px;font-weight:650;cursor:pointer;box-shadow:var(--shadow);white-space:nowrap;animation:fan-chip-in .16s ease-out backwards}.fan-chip:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.fan-chip .fan-ic{font-size:17px;line-height:1}@keyframes fan-chip-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.86)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media (prefers-reduced-motion: reduce){.fan-chip{animation:none}}.fan-mode-chip{position:absolute;left:50%;top:14px;transform:translate(-50%);z-index:31;display:inline-flex;align-items:center;gap:10px;padding:8px 10px 8px 16px;background:var(--panel);border:1px solid var(--accent);border-radius:22px;box-shadow:var(--shadow);font-size:13.5px;font-weight:650;color:var(--ink);white-space:nowrap}.fan-mode-chip .fmc-x{width:32px;height:32px;border:0;border-radius:50%;background:var(--bg);color:var(--ink-soft);cursor:pointer;display:grid;place-items:center;font-size:14px}.fan-mode-chip .fmc-x:hover{color:var(--ink)}.stretch-readout.fan-readout{left:50%;top:68px;transform:translate(-50%);position:absolute;z-index:31}.arc-gauge .ag-line{stroke:var(--accent);stroke-width:1.25}.arc-gauge .ag-a{stroke-dasharray:4 4;opacity:.55}.arc-gauge .ag-arc{fill:none;stroke:var(--accent);stroke-width:1.25;opacity:.8}.arc-gauge .ag-center{fill:var(--accent);stroke:#fff;stroke-width:1.25}.arc-gauge text{font:600 11.5px system-ui,sans-serif;fill:var(--accent-ink);paint-order:stroke;stroke:#ffffffe6;stroke-width:3px}.end-callout{position:absolute;transform:translate(-50%,-100%);z-index:32;max-width:300px;background:var(--ink);color:#fff;padding:9px 14px;border-radius:11px;font-size:13px;font-weight:600;line-height:1.35;box-shadow:var(--shadow);pointer-events:none;text-align:center;animation:fan-chip-in .2s ease-out backwards}.end-callout:after{content:"";position:absolute;left:50%;bottom:-6px;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--ink);border-bottom:0}@media (prefers-reduced-motion: reduce){.end-callout{animation:none}}.rubber-band{position:absolute;z-index:23;border:1px solid var(--accent);background:var(--accent-soft);opacity:.55;pointer-events:none;border-radius:2px}.group-btn{position:absolute;transform:translate(-50%,-150%);z-index:25;min-height:40px;padding:0 14px;border-radius:20px;border:1px solid var(--accent);background:#fff;color:var(--accent);font-size:13px;font-weight:600;cursor:pointer;box-shadow:var(--shadow)}.group-btn:hover{background:var(--accent);color:#fff}.context-bar{position:absolute;transform:translate(-50%,calc(-100% - 14px));z-index:26;display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:6px;box-shadow:var(--shadow)}.action-dock{position:absolute;left:50%;bottom:52px;transform:translate(-50%);z-index:26;display:flex;gap:4px;align-items:stretch;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:6px;box-shadow:var(--shadow);max-width:calc(100vw - 16px)}.action-dock.dock-build{background:color-mix(in srgb,var(--accent-soft) 65%,var(--panel));border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.action-dock .dock-who{display:flex;flex-direction:row;align-items:center;gap:8px;padding:4px 9px;min-height:48px;border:1px solid transparent;border-right-color:var(--line);border-radius:10px;margin-right:4px;min-width:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.action-dock .dock-who:hover,.action-dock .dock-who[aria-expanded=true]{background:var(--accent-soft);border-color:var(--accent)}.action-dock .who-txt{display:flex;flex-direction:column;justify-content:center;gap:1px;min-width:0}.action-dock .dock-count{font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap}.action-dock .dock-item{font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.action-dock .who-chev{font-size:11px;color:var(--ink-soft);line-height:1;transition:transform .15s}.action-dock .dock-who[aria-expanded=true] .who-chev{transform:rotate(180deg);color:var(--accent-ink)}.action-dock .dock-hint{display:flex;align-items:center;padding:0 6px;max-width:200px;font-size:12px;line-height:1.3;color:var(--ink-soft)}.action-dock .dock-sep{width:1px;background:var(--line);margin:4px 2px}.action-dock .dock-more-wrap{position:relative;display:flex}.dock-menu{position:absolute;bottom:calc(100% + 8px);right:0;z-index:27;min-width:240px;background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:6px;box-shadow:var(--shadow)}.dock-menu-item{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:4px 12px;border:0;background:none;border-radius:9px;color:var(--ink);cursor:pointer;font:inherit;font-size:14px;text-align:left}.dock-menu-item:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-ink)}.dock-menu-item:disabled{opacity:.5;cursor:not-allowed}.dock-menu-item .mi-key{margin-left:auto;display:flex;gap:4px;padding-left:14px}.dock-menu-item .mi-key kbd{background:var(--bg);border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:2px 8px;font:600 12px/1.5 ui-monospace,Consolas,monospace;color:var(--ink)}:root{--dock-clearance: 0px}@media (max-width: 719.98px){.action-dock .dock-who{display:none}}@media (max-width: 1099.98px){.main.spq-open .action-dock{transform:translate(calc(-50% - 170px))}.main.drawer-open .action-dock{transform:translate(calc(-50% - 190px))}}.ctx-act{min-width:56px;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid var(--line-strong);background:#fff;border-radius:10px;color:var(--ink);cursor:pointer;padding:4px 8px}.ctx-act:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.ctx-act:disabled{opacity:.5;cursor:not-allowed}.ctx-act:disabled:hover{background:#fff;border-color:var(--line-strong);color:var(--ink)}.ctx-act .ctx-count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;margin-top:1px;border-radius:8px;background:var(--accent, #268bd2);color:#fff;font-size:10.5px;font-weight:700;line-height:1}.action-dock .ctx-drive{display:flex;align-items:center;gap:6px;padding:0 2px}.action-dock .ctx-drive-lbl{font-size:12px;color:var(--ink-soft);white-space:nowrap}.action-dock .ctx-drive.mixed .ctx-drive-lbl{color:var(--accent-ink);font-style:italic}.action-dock .ctx-seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:9px;overflow:hidden}.action-dock .ctx-seg-opt{min-height:40px;padding:4px 10px;border:0;background:#fff;color:var(--ink);cursor:pointer;font:inherit;font-size:13px}.action-dock .ctx-seg-opt+.ctx-seg-opt{border-left:1px solid var(--line)}.action-dock .ctx-seg-opt:hover:not(:disabled):not(.on){background:var(--accent-soft);color:var(--accent-ink)}.action-dock .ctx-seg-opt.on{background:var(--accent);color:#fff;font-weight:600}.action-dock .ctx-seg-opt:disabled{opacity:.45;cursor:not-allowed}.el-stages{margin:2px 0 14px}.el-h{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);padding:0 2px 6px}.el-stufen{border:1px solid var(--line-strong);border-radius:12px;overflow:hidden}.el-stufe{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;text-align:left}.el-stufe:last-child{border-bottom:0}.el-stufe.can{cursor:pointer}.el-stufe.can:hover:not(.on){background:var(--accent-soft)}.el-stufe.on{background:var(--accent-soft)}.el-stufe.off{background:var(--surface-2)}.el-stufe.off .el-nm{color:var(--ink-soft)}.el-radio{flex:0 0 auto;width:16px;height:16px;border-radius:50%;border:2px solid var(--line-strong);display:grid;place-items:center}.el-stufe.on .el-radio,.el-opt.on .el-radio{border-color:var(--accent)}.el-stufe.on .el-radio:after,.el-opt.on .el-radio:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}.el-txt{flex:1;min-width:0}.el-nm{display:block;font-weight:650;font-size:13.5px}.el-sub{display:block;color:var(--ink-soft);font-size:12px;margin-top:1px}.el-amt{flex:0 0 auto;font-variant-numeric:tabular-nums;font-weight:700;font-size:13.5px;text-align:right;white-space:nowrap}.el-amt.plus{color:var(--accent-ink)}.el-badge{display:inline-block;font-size:10.5px;font-weight:750;padding:1px 7px;border-radius:999px;margin-left:6px;vertical-align:1px}.el-badge.amber{background:var(--amber-soft);color:var(--amber-ink)}.el-badge.ok{background:var(--ok-soft);color:#15803d}.el-badge.mut{background:var(--line);color:var(--ink-soft)}.el-bauweise{margin-top:9px;border:1px dashed var(--line-strong);border-radius:10px;padding:9px 11px;background:var(--surface-2)}.el-bauweise-t{font-size:11.5px;font-weight:750;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:5px}.el-opt{display:flex;align-items:center;gap:9px;width:100%;padding:5px 0;border:0;background:none;color:inherit;font:inherit;text-align:left}.el-opt.can{cursor:pointer}.el-opt-nm{flex:1;font-size:12.5px}.el-opt-nm i{display:block;font-style:normal;color:var(--ink-soft);font-size:11.5px}.el-note{margin:4px 0 0;font-size:11.5px;color:var(--ink-soft)}.el-gap{margin:8px 2px 0;font-size:12px;color:var(--amber-ink)}.el-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;padding-top:9px;border-top:2px solid var(--line-strong);font-weight:700;font-size:13px}.el-total .big{font-size:16px;font-variant-numeric:tabular-nums}.bom-alldrive{margin:8px 0 4px}.bom-btn.alldrive-open{width:100%}.alldrive-choice{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.alldrive-choice .alldrive-prompt{font-size:13px;color:var(--ink-soft);width:100%}.alldrive-choice .bom-btn{flex:1;min-width:96px}.ctx-ic{font-size:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.ctx-ic .ic{width:18px;height:18px;display:block}.ctx-lbl{font-size:11px;font-weight:600}.ctx-danger:hover{background:#fde8e4;border-color:#ef6c4d;color:#b23a1d}.info-pop{position:fixed;z-index:var(--z-popover-info);background:var(--panel);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);padding:10px;display:flex;flex-direction:column;gap:6px;min-width:290px;max-width:420px;max-height:45vh;overflow:auto}.info-pop .ip-title{font-size:13.5px;font-weight:700;padding:1px 3px 6px;border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.info-pop .ip-title .soft{font-size:11.5px;color:var(--ink-soft);font-weight:600}.info-pop .ip-grid{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;padding:3px 3px 1px;font-size:12.5px}.info-pop .ip-grid .k{color:var(--ink-soft);font-weight:600;white-space:nowrap}.info-pop .ip-grid .v{font-weight:600;display:flex;align-items:center;gap:7px;min-width:0}.info-pop .artchip{display:inline-flex;align-items:center;gap:6px;background:var(--accent-soft);border:1px solid var(--line-strong);border-radius:7px;padding:1px 4px 1px 8px;font-family:ui-monospace,Consolas,monospace;font-size:12px;font-weight:700}.info-pop .copy-btn .ic{width:13px;height:13px;display:block}.info-pop .copy-btn{border:0;background:transparent;border-radius:6px;padding:3px 6px;font-size:11px;color:var(--ink-soft);display:inline-flex;align-items:center;gap:4px;font-weight:600;cursor:pointer}.info-pop .copy-btn:hover{background:var(--accent-soft);color:var(--accent-ink)}.info-pop .copy-btn.ok{color:var(--ok)}.info-pop .ip-rows{display:flex;flex-direction:column;gap:2px}.info-pop .ip-row{display:flex;align-items:center;gap:9px;padding:6px 5px;border-radius:9px;font-size:12.5px}.info-pop .ip-row:hover{background:var(--accent-soft)}.info-pop .qty{min-width:32px;text-align:center;background:var(--accent-soft);color:var(--accent-ink);border-radius:7px;padding:2px 5px;font-weight:800;font-size:12px}.info-pop .ip-row .nm{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-pop .ip-row .mk{font-size:11px;color:var(--ink-soft);white-space:nowrap;margin-left:auto}.info-pop .ip-sec{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-weight:700;padding:5px 5px 0}.info-pop .ip-note{font-size:11px;color:var(--ink-soft);line-height:1.45;padding:6px 3px 0;border-top:1px solid var(--line);margin-top:2px}.info-pop .ip-row .ip-val{margin-left:auto;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums}.info-pop .ip-row.ip-sum{margin-top:2px;border-top:1px solid var(--line);font-weight:700}.info-pop .copy-vals{margin-top:6px;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border:1px solid var(--line-strong);background:var(--bg);border-radius:9px;color:var(--ink);cursor:pointer;font:inherit;font-size:12.5px;font-weight:600}.info-pop .copy-vals:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.info-pop .copy-vals.ok{color:var(--ok);border-color:var(--ok)}.scenery-bar .who-btn .who-chev{font-size:11px;color:var(--ink-soft);line-height:1;transition:transform .15s}.scenery-bar .who-btn[aria-expanded=true] .who-chev{transform:rotate(180deg);color:var(--accent-ink)}.scenery-bar .scenery-height-hint{font-size:11px;color:var(--ink-soft);white-space:nowrap}.scenery-bar .scenery-height--locked .dk-inp{cursor:pointer;opacity:.6}.scenery-bar .scenery-height-lock{font-size:12px;cursor:pointer}.scenery-bar .scenery-height--auto .dk-inp{opacity:.6;font-style:italic}.scenery-bar .scenery-height-auto{font-size:11px;cursor:pointer;padding:2px 6px;border-radius:6px;border:1px solid var(--line, #cbd5e1);background:transparent;color:var(--ink-soft);white-space:nowrap}.scenery-bar .scenery-height-auto:hover{background:var(--hover, rgba(0,0,0,.05))}.trk-tip{position:fixed;z-index:90;background:#0f172a;color:#fff;border-radius:10px;padding:8px 12px;font-size:12px;line-height:1.5;box-shadow:var(--shadow);pointer-events:none;white-space:nowrap;display:flex;flex-direction:column;gap:1px;max-width:320px}.trk-tip b{font-size:12.5px}.trk-tip .soft{color:#94a3b8}.cut-badge{position:absolute;transform:translate(-50%,-50%);z-index:25;width:32px;height:32px;border-radius:50%;border:1px solid var(--accent);background:#fff;color:var(--accent);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:15px;box-shadow:var(--shadow);padding:0}.cut-badge:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%}.cut-badge:hover{background:var(--accent);color:#fff}.snap-ring{position:absolute;transform:translate(-50%,-50%);z-index:22;border-radius:50%;border:3px solid var(--ok);background:#16a34a24;box-shadow:0 0 0 2px #fff9;pointer-events:none}.touch-leader{position:absolute;transform:translate(-50%);z-index:22;width:2px;background:var(--ok);opacity:.8;pointer-events:none}.touch-leader-dot{position:absolute;transform:translate(-50%,-50%);z-index:22;width:12px;height:12px;border-radius:50%;background:var(--ok);opacity:.5;pointer-events:none}.rotate-handle{position:absolute;transform:translate(-50%,calc(-100% - 86px));z-index:27;width:34px;height:34px;border-radius:50%;border:1px solid var(--accent);background:#fff;color:var(--accent);display:flex;align-items:center;justify-content:center;cursor:grab;font-size:18px;line-height:1;box-shadow:var(--shadow);padding:0;touch-action:none}.rotate-handle:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%}.rotate-handle:hover{background:var(--accent);color:#fff}.rotate-handle:active{cursor:grabbing}.rotate-readout{position:absolute;transform:translate(-50%,calc(-100% - 130px));z-index:28;background:var(--ink);color:#fff;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow)}.flip-handle{position:absolute;transform:translate(calc(-50% - 44px),calc(-100% - 86px));z-index:27;width:34px;height:34px;border-radius:50%;border:1px solid var(--accent);background:#fff;color:var(--accent);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;line-height:1;box-shadow:var(--shadow);padding:0}.flip-handle:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%}.flip-handle:hover{background:var(--accent);color:#fff}@keyframes edit-handle-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.stretch-handle,.slide-handle,.parallel-badge,.morph-zone-svg,.morph-label{animation:none}}.stretch-handle{position:absolute;z-index:27;width:30px;height:30px;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);background:#ffffff8c;color:color-mix(in srgb,var(--accent) 70%,transparent);display:flex;align-items:center;justify-content:center;cursor:grab;font-size:16px;line-height:1;box-shadow:none;padding:0;touch-action:none;animation:edit-handle-in .15s ease-out backwards;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.stretch-handle:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%}.stretch-handle:hover{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow)}.stretch-handle:active{cursor:grabbing}.stretch-readout{position:absolute;transform:translate(-50%,calc(-100% - 22px));z-index:28;background:var(--ink);color:#fff;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow)}.radius-handle{position:absolute;transform:translate(-50%,-50%);z-index:27;width:30px;height:30px;border-radius:50%;border:1px solid #7b1fa2;background:#fff;color:#7b1fa2;display:flex;align-items:center;justify-content:center;cursor:nesw-resize;font-size:16px;line-height:1;box-shadow:var(--shadow);padding:0;touch-action:none}.radius-handle:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%}.radius-handle:hover{background:#7b1fa2;color:#fff}.radius-readout{position:absolute;transform:translate(-50%,calc(-100% - 22px));z-index:28;background:#7b1fa2;color:#fff;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow)}.parallel-mode-chip{position:absolute;left:50%;top:12px;transform:translate(-50%);z-index:31;display:flex;align-items:center;gap:8px;background:var(--accent);color:#fff;border-radius:999px;padding:5px 6px 5px 14px;box-shadow:var(--shadow);font:600 13px system-ui,sans-serif}.parallel-mode-chip .pmc-ico{font-size:16px;line-height:1}.parallel-mode-chip .pmc-label{white-space:nowrap}.parallel-mode-chip .pmc-exit{width:24px;height:24px;border-radius:50%;border:none;background:#ffffff40;color:#fff;font-size:13px;line-height:1;cursor:pointer}.parallel-mode-chip .pmc-exit:hover{background:#ffffff73}.measure-mode-chip{position:absolute;left:50%;top:12px;transform:translate(-50%);z-index:31;display:flex;align-items:center;gap:2px;background:var(--panel, #fff);border:1px solid var(--line, #e6e9ef);border-radius:12px;padding:5px;box-shadow:var(--shadow);font:700 12.5px system-ui,sans-serif}.measure-mode-chip .mmc-label{font-size:11px;font-weight:700;color:var(--ink-soft, #64748b);padding:0 9px 0 7px;border-right:1px solid var(--line, #e6e9ef);margin-right:4px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.measure-mode-chip .mmc-btn{display:flex;align-items:center;gap:6px;min-height:34px;border:0;background:transparent;border-radius:8px;padding:7px 12px;font:inherit;color:var(--ink-soft, #64748b);cursor:pointer}.measure-mode-chip .mmc-btn:hover{background:var(--hover, #f3f5f9)}.measure-mode-chip .mmc-btn.on{background:var(--accent-soft, #e8eefe);color:var(--accent-ink, #1d4ed8)}@media (pointer: coarse){.measure-mode-chip .mmc-btn{min-height:48px;padding:7px 14px}}.action-dock .mode-seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:9px;overflow:hidden}.action-dock .mode-seg-opt{min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border:0;background:#fff;color:var(--ink);cursor:pointer;font:inherit}.action-dock .mode-seg-opt+.mode-seg-opt{border-left:1px solid var(--line)}.action-dock .mode-seg-opt:hover:not(.on){background:var(--accent-soft);color:var(--accent-ink)}.action-dock .mode-seg-opt.on{background:var(--accent);color:#fff}.action-dock .mode-seg-ic{display:inline-flex;align-items:center;justify-content:center}.action-dock .mode-seg-draw .mode-seg-opt{min-width:32px;padding:4px 5px;font-size:15px;line-height:1}.action-dock .mode-seg-draw .mode-seg-ic{font-size:15px}.action-dock .dk-image-wrap{display:inline-flex;align-items:stretch}.action-dock .dk-image-btn{min-width:40px}@media (pointer: fine){.action-dock.terrain-dock .ctx-act{flex-direction:row;gap:6px;min-height:40px;padding:4px 10px}.action-dock.terrain-dock .ctx-act .ctx-lbl{white-space:nowrap}}.dock-menu-item:has(.mi-sub){flex-wrap:wrap;padding-top:6px;padding-bottom:6px}.dock-menu-item .mi-sub{flex:1 0 100%;padding-left:26px;font-weight:400;font-size:11px;color:var(--ink-soft, #64748b)}.dock-menu-item .mi-check{margin-left:auto;font-weight:700;color:var(--accent-ink, #1d4ed8)}.dock-menu-sep{height:1px;background:var(--line, #e6e9ef);margin:4px 0}.dock-menu-item.danger{color:var(--danger-ink, #b42318)}.dock-menu-item.danger:hover:not(:disabled){background:var(--danger-soft, #fdf2f2);color:var(--danger-ink, #b42318)}.statusbar .sb-readout{white-space:nowrap}.statusbar .sb-readout b{color:var(--ink, #0f172a)}.terrain-brush-cursor{position:absolute;z-index:30;pointer-events:none;border-radius:50%;transform:translate(-50%,-50%);border:1.5px solid var(--accent, #2563eb);--core-stop: 45%;background:radial-gradient(circle,color-mix(in srgb,var(--accent, #2563eb) 12%,transparent) 0%,color-mix(in srgb,var(--accent, #2563eb) 12%,transparent) var(--core-stop),transparent 100%)}.terrain-brush-cursor.no-tint{background:none}.terrain-brush-cursor>.terrain-brush-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;box-sizing:border-box;border:1px dashed var(--accent, #2563eb);opacity:.75}.terrain-brush-ghost{position:absolute;z-index:29;pointer-events:none;transform:translate(-50%,-50%)}.terrain-ghost-stroke{position:absolute;top:0;right:0;bottom:0;left:0;z-index:28;pointer-events:none}.terrain-state-chip{position:absolute;transform:translate(-50%,-100%);pointer-events:none;z-index:31;background:var(--ink);color:var(--bg);border-radius:999px;padding:2px 9px;font:600 11px/1.4 system-ui;white-space:nowrap;font-variant-numeric:tabular-nums;box-shadow:0 1px 4px #0f172a40}.image-bar .ctx-range{display:flex;align-items:center;gap:6px;padding:0 6px;color:var(--ink-soft, #64748b)}.image-bar .ctx-range input[type=range]{width:92px}.ctx-act.is-active,.ctx-act.is-active:hover{background:var(--accent, #268bd2);border-color:var(--accent, #268bd2);color:#fff}.underlay-chip{position:relative;left:auto;top:auto;transform:none;z-index:auto}.underlay-chip .underlay-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;border-radius:9px;background:var(--accent, #268bd2);color:#fff;font-size:11px;font-weight:700}.underlay-pop{position:absolute;left:50%;top:calc(100% + 6px);transform:translate(-50%);min-width:240px;background:var(--panel, #fff);border:1px solid var(--line, #e6e9ef);border-radius:12px;padding:8px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px}.underlay-row{display:flex;align-items:center;gap:8px}.underlay-thumb{width:40px;height:28px;flex:0 0 auto;border:1px solid var(--line, #e6e9ef);border-radius:6px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--hover, #f3f5f9)}.underlay-thumb img{width:100%;height:100%;object-fit:cover}.underlay-thumb-ph{width:100%;height:100%;background:repeating-linear-gradient(45deg,#e6e9ef,#e6e9ef 4px,#f3f5f9 4px,#f3f5f9 8px)}.underlay-op{flex:1 1 auto;min-width:60px}.underlay-act{min-height:32px;border:1px solid var(--line-strong, #d5dae3);background:#fff;border-radius:8px;padding:4px 10px;font:700 12px system-ui,sans-serif;color:var(--ink, #0f172a);cursor:pointer;white-space:nowrap}.underlay-act:hover{background:var(--hover, #f3f5f9)}.underlay-danger:hover{background:#fde8e4;border-color:#ef6c4d;color:#b23a1d}.calib-dialog{position:absolute;z-index:34;transform:translate(-50%);background:var(--panel, #fff);border:1px solid var(--line, #e6e9ef);border-radius:12px;padding:10px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;min-width:200px}.calib-dialog .calib-label{font-size:12.5px;font-weight:700;color:var(--ink, #0f172a)}.calib-dialog .calib-row{display:flex;align-items:center;gap:6px}.calib-dialog .calib-row input{flex:1 1 auto;min-width:0;padding:6px 8px;border:1px solid var(--line-strong, #d5dae3);border-radius:8px;font:inherit}.calib-dialog .calib-unit-sel{flex:0 0 auto;padding:6px;border:1px solid var(--line-strong, #d5dae3);border-radius:8px;font:inherit;background:#fff;color:var(--ink, #0f172a);cursor:pointer}.calib-dialog .calib-mode{display:flex;align-items:center;gap:6px}.calib-dialog .calib-seg{flex:0 0 auto;min-height:30px;border:1px solid var(--line-strong, #d5dae3);border-radius:8px;background:#fff;color:var(--ink, #0f172a);padding:5px 10px;font:700 12px system-ui,sans-serif;cursor:pointer}.calib-dialog .calib-seg.on{background:var(--accent, #268bd2);border-color:var(--accent, #268bd2);color:#fff}.calib-dialog .calib-scale{display:inline-flex;align-items:center;gap:3px;color:var(--ink-soft, #64748b);font-weight:700;font-size:12.5px}.calib-dialog .calib-scale-in{width:62px;padding:5px 6px;border:1px solid var(--line-strong, #d5dae3);border-radius:8px;font:inherit}.calib-dialog .calib-result{font-size:12px;font-weight:700;color:var(--accent, #268bd2)}.calib-dialog .calib-actions{display:flex;gap:6px;justify-content:flex-end}.calib-dialog .btn{min-height:34px;border:1px solid var(--line-strong, #d5dae3);border-radius:8px;background:#fff;padding:6px 12px;font:700 12.5px system-ui,sans-serif;color:var(--ink, #0f172a);cursor:pointer}.calib-dialog .btn.primary{background:var(--accent, #268bd2);border-color:var(--accent, #268bd2);color:#fff}.calib-hint{position:absolute;top:62px;left:50%;transform:translate(-50%);z-index:34;display:flex;align-items:center;gap:10px;max-width:min(560px,90%);background:#0f172a;color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:9px 12px 9px 16px;box-shadow:var(--shadow);font:600 13px system-ui,sans-serif}.calib-hint-ic{font-size:16px;flex:0 0 auto}.calib-hint-txt{flex:1 1 auto}.calib-hint-cancel{flex:0 0 auto;min-height:30px;border:1px solid rgba(255,255,255,.25);border-radius:9px;background:#ffffff1a;color:#fff;padding:5px 12px;font:700 12.5px system-ui,sans-serif;cursor:pointer}.calib-hint-cancel:hover{background:#fff3}@media (pointer: coarse){.calib-hint-cancel{min-height:44px}}.measure-pending{position:absolute;transform:translate(-50%);z-index:32;display:flex;align-items:center;gap:8px}.measure-pending button{display:flex;align-items:center;gap:7px;min-height:34px;border:1px solid var(--line-strong, #d5dae3);border-radius:10px;background:#fff;padding:8px 13px;font:700 12.5px system-ui,sans-serif;color:var(--ink, #0f172a);cursor:pointer}.measure-pending button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.measure-pending button:hover{filter:brightness(.97)}@media (pointer: coarse){.measure-pending button{min-height:48px}}.parallel-fix{position:absolute;transform:translate(-50%,-50%);z-index:27;font-size:15px;line-height:1;pointer-events:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}.mode-switch-badge{position:absolute;transform:translate(-50%,-50%);z-index:27;width:30px;height:30px;border-radius:50%;border:1px solid var(--accent);background:#fff;color:var(--accent);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;line-height:1;box-shadow:var(--shadow);padding:0;touch-action:none}.mode-switch-badge:before{content:"";position:absolute;top:-9px;right:-9px;bottom:-9px;left:-9px;border-radius:50%}.mode-switch-badge:hover{background:var(--accent);color:#fff}.bundle-bar{position:absolute;top:58px;left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #1565c0;border-radius:12px;padding:6px 12px;box-shadow:var(--shadow);font:500 13px system-ui,sans-serif;color:var(--ink)}.bundle-bar-label{color:#64748b;font-size:12px}.bundle-bar-val{min-width:56px;text-align:center;font-weight:700}.bundle-bar-btn{width:28px;height:28px;border-radius:8px;border:1px solid #1565c0;background:#fff;color:#1565c0;font-size:18px;line-height:1;cursor:pointer}.bundle-bar-btn:hover:not(:disabled){background:#1565c0;color:#fff}.bundle-bar-btn:disabled{opacity:.4;cursor:not-allowed}.bundle-bar-hint{color:#b45309;font-size:12px;font-weight:600}.bundle-move-arrow{width:0;height:0}.bundle-move-arrow line{stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:5 4}.bundle-move-arrow polygon{fill:var(--accent)}.parallel-badge{position:absolute;transform:translate(-50%,-50%);z-index:27;min-width:30px;height:30px;padding:0 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);background:#ffffff8c;color:color-mix(in srgb,var(--accent) 70%,transparent);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;font-weight:700;line-height:1;box-shadow:none;touch-action:none;animation:edit-handle-in .15s ease-out backwards;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.parallel-badge:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:999px}.parallel-badge:hover{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow)}.parallel-badge .par-ico{width:19px;height:14px;overflow:visible}.parallel-badge .par-ico line{stroke:currentColor;stroke-linecap:round}.parallel-badge .par-ico .par-existing{stroke-width:1.5;opacity:.7}.parallel-badge .par-ico .par-built{stroke-width:3.5}.slide-handle{position:absolute;z-index:27;width:28px;height:28px;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 16%,transparent);color:color-mix(in srgb,var(--accent) 70%,transparent);display:flex;align-items:center;justify-content:center;cursor:move;font-size:15px;line-height:1;box-shadow:none;padding:0;touch-action:none;animation:edit-handle-in .15s ease-out backwards;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.slide-handle:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%}.slide-handle:hover,.slide-handle:active{opacity:1;background:var(--accent);border-color:#fff;color:#fff;box-shadow:var(--shadow)}.slide-readout{position:absolute;transform:translate(-50%,calc(-100% - 22px));z-index:28;background:var(--ink);color:#fff;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow)}.slide-range,.range-marks{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:26}.range-line{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:4 3;opacity:.7;fill:none}.range-end{stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;opacity:.9}.range-tick{r:2.5;fill:var(--accent);opacity:.85}.range-tick--active{r:4;fill:var(--accent);opacity:1;stroke:#fff;stroke-width:1.5}.range-label{fill:var(--ink);font:600 11px system-ui,sans-serif;text-anchor:middle;dominant-baseline:text-after-edge;transform:translateY(-8px);paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.morph-zone-svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:27;animation:edit-handle-in .15s ease-out backwards}.morph-zone{stroke:#f59e0b;stroke-width:3.5;stroke-dasharray:2 4;stroke-linecap:round;opacity:.9;fill:none}.morph-zone--locked{stroke:#9ca3af;stroke-dasharray:3 3;opacity:.8}.morph-threshold{stroke:#f59e0b;stroke-width:3;stroke-linecap:round}.morph-zone--locked~.morph-threshold{stroke:#9ca3af}.morph-label{position:absolute;transform:translate(-50%,calc(-100% - 10px));z-index:29;background:#f59e0b;color:#1f2937;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow);animation:edit-handle-in .15s ease-out backwards}.morph-label--locked{background:#9ca3af;color:#fff}.reach-glow{position:absolute;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;border:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);pointer-events:none;z-index:28;animation:reach-glow-pulse 1.1s ease-in-out infinite}@keyframes reach-glow-pulse{0%,to{transform:scale(.82);opacity:.55}50%{transform:scale(1.08);opacity:1}}.end-mode-pill{position:absolute;transform:translate(14px,-34px);z-index:31;display:flex;align-items:center;gap:8px;white-space:nowrap;pointer-events:none;background:var(--accent);color:#fff;border-radius:999px;padding:4px 11px;box-shadow:var(--shadow);font:600 12px system-ui,sans-serif}.connect-offer{position:absolute;transform:translate(-50%,-50%);z-index:27;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;cursor:pointer;background:#fff;color:var(--accent);border:1px dashed var(--accent);border-radius:999px;padding:3px 10px;font:600 12px system-ui,sans-serif;box-shadow:var(--shadow);opacity:.9}.connect-offer:hover{background:var(--accent);color:#fff;border-style:solid;opacity:1}.crossover-offer{position:absolute;transform:translate(8px,-50%);z-index:29;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;cursor:pointer;background:#fff;color:var(--accent);border:1px dashed var(--accent);border-radius:999px;padding:3px 10px;font:600 12px system-ui,sans-serif;box-shadow:var(--shadow);opacity:.92}.crossover-offer:hover{background:var(--accent);color:#fff;border-style:solid;opacity:1}.hold-ring{position:absolute;width:50px;height:50px;margin:-25px 0 0 -25px;border-radius:50%;border:3px solid color-mix(in srgb,var(--accent) 45%,transparent);pointer-events:none;z-index:33}.hold-ring:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:50%;background:var(--accent);transform:scale(0);opacity:.45;animation:hold-ring-fill .5s linear forwards}@keyframes hold-ring-fill{to{transform:scale(1);opacity:.85}}.strand-edit-bar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:14px;flex-wrap:wrap;max-width:calc(100vw - 24px);background:#fff;border:1px solid var(--accent);border-radius:12px;padding:8px 14px;box-shadow:var(--shadow);font:500 13px system-ui,sans-serif;color:var(--ink)}.strand-edit-bar .seb-group{display:flex;align-items:center;gap:6px}.strand-edit-bar .seb-label{color:#64748b;font-size:12px}.strand-edit-bar .seb-value{font-weight:700;min-width:52px;text-align:center}.strand-edit-bar .seb-step{width:30px;height:30px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:var(--ink);font-size:18px;line-height:1;cursor:pointer}.strand-edit-bar .seb-step:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}.strand-edit-bar .seb-step:disabled{opacity:.4;cursor:default}.route-pill{position:absolute;transform:translate(14px,-28px);z-index:28;background:var(--ink);color:#fff;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow)}.route-pill--snap{background:var(--ok)}.route-pill--busy{background:var(--accent, #1565c0);display:inline-flex;align-items:center;gap:6px}.route-pill__spinner{width:11px;height:11px;border-radius:50%;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;animation:route-pill-spin .7s linear infinite}@keyframes route-pill-spin{to{transform:rotate(360deg)}}.route-radius-label{position:absolute;transform:translate(-50%,-50%);z-index:27;background:#1565c0eb;color:#fff;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow)}.cut-end{position:absolute;z-index:27;width:24px;height:24px;transform:translate(-50%,-50%);border-radius:50%;border:3px solid #1565c0;background:#1565c033;box-shadow:0 0 0 2px #ffffffbf;pointer-events:none;animation:cutEndPulse .9s ease-out forwards}@keyframes cutEndPulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.25)}55%{opacity:1;transform:translate(-50%,-50%) scale(.95)}to{opacity:0;transform:translate(-50%,-50%) scale(1.15)}}.plate-form{padding:18px 22px;display:flex;flex-direction:column;gap:12px}.plate-row{display:flex;gap:14px;flex-wrap:wrap}.plate-row label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft);font-weight:600}.plate-row label .inp{width:90px;height:40px}.plate-area{font-size:14px;color:var(--ink)}.plate-row label .inp.invalid,.inp.invalid{border-color:#ef6c4d;outline:2px solid #fde8e4}.tools{position:absolute;left:16px;top:16px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-rail, var(--shadow));padding:8px;display:flex;flex-direction:column;gap:4px;z-index:19}.tool{width:var(--tap);height:var(--tap);border:0;background:transparent;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ink-soft);font-size:9.5px;font-weight:600;transition:.12s}.tool:hover{background:var(--accent-soft);color:var(--accent-ink)}.tool.on{background:var(--accent);color:#fff}.tool .ic{width:21px;height:21px}.tool.sep{height:1px;width:auto;background:var(--line);margin:3px 8px;pointer-events:none}.phase-toast{position:absolute;left:50%;bottom:max(56px,var(--dock-clearance, 0px));transform:translate(-50%);background:var(--ink);color:#fff;padding:9px 15px;border-radius:11px;font-size:13px;font-weight:600;box-shadow:var(--shadow);z-index:36;pointer-events:none;max-width:80%;text-align:center}.phase-toast.dismiss-undo{bottom:max(64px,var(--dock-clearance, 0px));display:inline-flex;align-items:center;gap:12px;pointer-events:auto}.dismiss-undo-btn{background:none;border:1px solid rgba(255,255,255,.55);color:#fff;border-radius:7px;padding:3px 11px;font:inherit;font-weight:700;cursor:pointer}.dismiss-undo-btn:hover{background:#ffffff29}.phase-toast--hint{background:var(--panel);color:var(--ink);border:1px solid var(--line-strong);box-shadow:var(--shadow-soft)}.phase-toast--hint .dismiss-undo-btn{border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent-ink)}.phase-toast--hint .dismiss-undo-btn:hover{background:var(--accent-soft);border-color:var(--accent)}.phase-toast--hint .dismiss-undo-btn:focus{outline:2px solid var(--accent);outline-offset:2px}.catalog{position:absolute;left:86px;top:16px;width:252px;max-height:calc(100% - 100px);background:var(--catalog-bg, var(--panel));border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-catalog, var(--shadow));display:flex;flex-direction:column;overflow:hidden;z-index:19;transition:width .18s}@media (hover: hover) and (pointer: fine){.catalog{opacity:.75;transition:width .18s,opacity .16s ease}.catalog:hover,.catalog:focus-within{opacity:1}}.cat-h{display:flex;align-items:center;gap:9px;padding:12px 12px 12px 15px;cursor:pointer;font-weight:700;font-size:13px;letter-spacing:.02em;-webkit-user-select:none;user-select:none;background:var(--cat-head-bg, var(--panel));border-bottom:1px solid var(--line)}.cat-h .ci{width:19px;height:19px;color:var(--accent)}.cat-h .chev{margin-left:auto;color:var(--ink-soft);transition:transform .18s}.catalog.collapsed{width:auto}.catalog.collapsed .cat-body{display:none}.catalog.collapsed .cat-h,.catalog-panel.collapsed .cat-h{border-bottom-color:transparent}.catalog.collapsed .cat-h .chev{transform:rotate(-90deg)}.cat-body{display:flex;flex-direction:column;min-height:0}.cat-filters{padding:10px 12px 11px;display:flex;flex-direction:column;gap:9px;border-bottom:1px solid var(--line)}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:11px;color:var(--ink-soft);font-weight:600}.cat-legacy-note{margin:0;font-size:11.5px;line-height:1.35;color:var(--ink-soft);cursor:help}.field select{width:100%;height:40px;border:1px solid var(--line);border-radius:11px;padding:0 12px;font-size:13.5px;background:#fff;color:var(--ink);box-shadow:inset 0 1px 2px #0b0f130d;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round'><path d='M3 5l4 4 4-4'/></svg>");background-repeat:no-repeat;background-position:right 11px center}.search{position:relative}.search input{width:100%;height:40px;border:1px solid var(--line);border-radius:11px;padding:0 12px 0 37px;font-size:13.5px;background:#fff;color:var(--ink);box-shadow:inset 0 1px 2px #0b0f130d}.search input:focus,.field select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.search .mag{position:absolute;left:11px;top:11px;color:var(--ink-soft)}.art-select{position:relative}.art-field{position:relative;display:flex;align-items:center;gap:6px;height:40px;padding:0 8px 0 37px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:inset 0 1px 2px #0b0f130d;cursor:text}.art-field:focus-within{outline:2px solid var(--accent-soft);border-color:var(--accent)}.art-field .mag{position:absolute;left:11px;top:11px;color:var(--ink-soft);pointer-events:none}.art-field input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;padding:0;font-size:13.5px;color:var(--ink)}.art-chev{flex:0 0 auto;color:var(--ink-soft);font-size:11px;padding-right:3px}.art-clear{flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;border:0;background:transparent;color:var(--ink-soft);border-radius:7px;cursor:pointer;font-size:12px}.art-clear:hover{background:var(--accent-soft);color:var(--accent-ink)}.art-dd{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:4px;max-height:320px;overflow-y:auto;overscroll-behavior:contain}.art-row{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:7px 9px;border:0;background:transparent;border-radius:9px;cursor:pointer;text-align:left;color:var(--ink);font-size:13px}.art-row:hover{background:var(--accent-soft)}.art-row.on{background:var(--accent-soft);color:var(--accent-ink)}.art-row .art-mini{flex:0 0 auto;width:38px;height:22px;color:var(--ink-soft);display:grid;place-items:center}.art-row .art-mini svg{width:100%;height:100%;display:block}.art-row .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.art-row .nm .spec{color:var(--accent-ink);font-weight:600}.art-row .nm .mm{color:var(--ink-soft)}.art-row .ct{flex:0 0 auto;color:var(--ink-soft);font-size:12px;font-variant-numeric:tabular-nums}.art-row .ct.art{color:var(--accent-ink);font-weight:600}.art-row.art-variants{border-top:1px solid var(--line);margin-top:3px;padding-top:9px}.art-empty{padding:12px 10px;color:var(--ink-soft);font-size:12.5px}.cat-scroll{overflow:auto;padding:6px 12px 14px}.cat-radius-group{margin-bottom:2px}.cat-radius{display:inline-block;font-size:11px;font-weight:600;color:var(--ink-soft);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:2px 8px;margin:8px 4px 5px}.cat-radius-delta{display:inline-block;font-size:10.5px;font-weight:600;color:var(--ink-soft);opacity:.72;vertical-align:middle}.cat-scroll h4{margin:9px 4px 7px;font-size:11px;color:var(--ink-soft);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:9px}.tile{min-width:0;border:1px solid var(--tile-bd, var(--line));border-radius:13px;background:var(--tile-bg, #fff);padding:9px 6px 8px;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;min-height:80px;transition:.12s;cursor:grab;box-shadow:0 1px 2px #1e293b0f}.tile:hover{border-color:var(--accent);background:var(--accent-soft)}.tile:active{cursor:grabbing}.tile .draw{width:100%;height:46px;display:grid;place-items:center}.tile .nm{max-width:100%;font-size:11.5px;font-weight:600;line-height:1.15;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.tile .nm.abbr{font-size:14px;font-weight:800;letter-spacing:.03em;color:var(--accent-ink)}.tile .sub{display:flex;align-items:baseline;justify-content:center;gap:5px;max-width:100%;line-height:1.1;overflow:hidden}.tile .sub .art{font-size:10.5px;font-weight:600;color:var(--accent-ink);white-space:nowrap}.tile .sub .meta{font-size:10.5px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile .sub .meta:before{content:"·";margin-right:5px;color:var(--ink-soft)}.tile.special{border-color:var(--accent-soft);background:var(--accent-soft)}.tile.special .nm{color:var(--accent-ink)}.tile.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent) inset}.cat-empty{color:var(--ink-soft);font-size:12.5px;padding:10px 4px;margin:0}.cat-gap-link{display:inline-block;margin-top:6px;color:var(--accent-ink);font-weight:600;text-decoration:none}.cat-gap-link:hover{text-decoration:underline}.cat-h-tabs{gap:8px;padding-right:8px;cursor:pointer}.cat-domain{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:13px;letter-spacing:.02em;color:var(--accent-ink)}.cat-domain-ic{display:inline-flex;color:var(--accent)}.cat-domain .scenery-pro{margin-left:2px}.cat-collapse{margin-left:auto;display:grid;place-items:center;width:30px;height:30px;border:0;background:transparent;color:var(--ink-soft);border-radius:9px;cursor:pointer}.cat-collapse:hover{background:var(--accent-soft);color:var(--accent-ink)}.catalog-panel.collapsed .cat-collapse .chev{transform:rotate(-90deg)}.scenery-pro{margin-left:6px}.scenery-gate{padding:10px 12px;margin:4px 8px 0;background:var(--accent-soft);border-radius:12px}.scenery-gate p{margin:0 0 8px;font-size:12px;color:var(--ink-soft);line-height:1.3}.scenery-tile.locked{opacity:.6;cursor:grab}.scenery-tile.locked:active{cursor:grabbing}.scenery-tile.locked:hover{transform:none;border-color:var(--tile-bd, var(--line));background:var(--tile-bg, #fff)}.scenery-tile .draw{height:30px}.scenery-tile .nm{-webkit-line-clamp:2}.scenery-thumb{display:inline-grid;place-items:center;width:44px;height:30px}.scenery-thumb svg{width:100%;height:100%}.scenery-select{position:relative}.scenery-drop{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 4px);max-height:320px;overflow:auto;background:#fff;border:1px solid var(--line-strong);border-radius:11px;box-shadow:0 10px 28px #00000024;padding:4px}.scenery-hit{display:flex;align-items:center;gap:9px;width:100%;padding:6px 8px;border:0;background:none;border-radius:8px;cursor:pointer;text-align:left;font-size:13px;color:var(--ink)}.scenery-hit:hover{background:var(--accent-soft)}.scenery-hit.empty{color:var(--ink-soft);cursor:default;justify-content:center}.scenery-hit.empty:hover{background:none}.scenery-hit .hic{display:inline-grid;place-items:center;width:28px;height:22px;flex:0 0 auto;color:var(--ink-soft)}.scenery-hit .hic .scenery-thumb{width:28px;height:22px}.scenery-hit .hic.brand{font-weight:700;color:var(--accent)}.scenery-hit .hnm{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scenery-hit .hct{flex:0 0 auto;font-size:11px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.scenery-hit .hart{flex:0 0 auto;font-size:10.5px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.scenery-hit.mfr{font-style:italic}.scenery-active-filter{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;max-width:100%;padding:4px 8px;border:1px solid var(--accent);border-radius:999px;background:var(--accent-soft);color:var(--ink);font-size:12px;cursor:pointer}.scenery-active-filter span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scenery-tile .scenery-art{font-size:10px;color:var(--ink-soft);font-variant-numeric:tabular-nums;margin-top:1px}.scenery-tile .scenery-otherscale{font-size:9.5px;color:var(--ink-soft);opacity:.8}.scenery-tile.highlight{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.scenery-bar{z-index:27}.label-bar{z-index:27;align-items:center}.draw-handle{position:absolute;width:12px;height:12px;transform:translate(-50%,-50%);border:2px solid var(--accent);background:#fff;border-radius:50%;padding:0;cursor:grab;z-index:24;box-shadow:0 1px 3px #00000040}.draw-handle.is-square{border-radius:3px}.draw-handle:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:inherit}.draw-handle:hover{background:var(--accent-soft)}.draw-handle.is-fillet{border-color:#16a34a;width:13px;height:13px;cursor:nwse-resize}.draw-handle.is-fillet:hover{background:#dcfce7}.draw-handle.is-ctvertex{background:var(--accent);border-color:var(--accent)}.draw-handle.is-ctvertex:hover{background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft),0 1px 3px #00000040}.draw-handle.is-bend{width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--accent);color:var(--accent);display:grid;place-items:center}.draw-handle.is-bend:hover{background:var(--accent-soft)}.draw-handle.is-bend .ch-glyph{font:800 13px/1 var(--font, system-ui, sans-serif);transform:translateY(2px);pointer-events:none}.contour-plus{position:absolute;transform:translate(-50%,-50%);box-sizing:border-box;width:22px;height:22px;padding:0;border-radius:50%;background:#fff;border:2px solid var(--line-strong);cursor:pointer;display:grid;place-items:center;color:var(--accent);box-shadow:var(--shadow);z-index:25;transition:transform .08s ease-out,box-shadow .08s ease-out,border-color .08s ease-out}.contour-plus .ic{width:14px;height:14px;display:block}.contour-plus:before{content:"";position:absolute;left:50%;top:50%;width:34px;height:34px;transform:translate(-50%,-50%)}.contour-plus:hover,.contour-plus:focus-visible{border-color:var(--accent);transform:translate(-50%,-50%) scale(1.2);box-shadow:0 0 0 5px var(--accent-soft),var(--shadow)}.contour-plus:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.contour-plus:active{transform:translate(-50%,-50%) scale(1.05)}.iso-convert{position:absolute;transform:translate(-50%,calc(-100% - 12px));z-index:26;border:1px solid var(--accent);border-radius:999px;background:#fff;color:var(--accent);padding:4px 11px;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;box-shadow:var(--shadow)}.iso-convert:hover,.iso-convert:focus-visible{background:var(--accent);color:#fff}.iso-convert:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.canvas-cursor-layer .iso-convert{pointer-events:auto}.iso-hover-chip{position:absolute;transform:translate(-50%,calc(-100% - 14px));pointer-events:none;z-index:31;background:var(--accent);color:#fff;border-radius:999px;padding:2px 9px;font:600 11px/1.4 system-ui;white-space:nowrap;font-variant-numeric:tabular-nums;box-shadow:0 1px 4px #0f172a40}.iso-hover-chip.is-conform{background:var(--ink);color:var(--bg)}.draw-dock{flex-wrap:nowrap;max-width:min(96vw,1180px)}.draw-dock .dk-sec-wrap{display:flex;align-items:stretch}.dk-sec{display:flex;align-items:center;gap:5px;padding:0 3px}.dk-ctl-lbl{font-size:11px;color:var(--ink-soft);white-space:nowrap}.dk-field{display:flex;flex-direction:column;gap:2px}.dk-field-lbl{font-size:10px;color:var(--ink-soft);white-space:nowrap}.dk-field-row{display:flex;align-items:center;gap:3px}.draw-dock .dk-field{flex-direction:row;align-items:center;gap:5px}.draw-dock .dk-field-lbl{font-size:11px}.draw-dock .dk-field-row{gap:2px}.dk-inp{width:62px;min-height:30px;padding:3px 6px;text-align:right;font:inherit;font-size:12.5px;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:8px}.dk-inp:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.dk-inp::placeholder{color:var(--ink-soft)}.draw-dock .dk-inp{width:52px}.dk-step{width:26px;min-height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);background:#fff;border-radius:8px;color:var(--ink);cursor:pointer}.dk-step:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.dk-color{position:relative;display:flex;align-items:center;gap:4px}.dk-color-btn{display:flex;align-items:center;min-height:32px;padding:4px;border:1px solid var(--line-strong);background:#fff;border-radius:8px;color:var(--ink);cursor:pointer}.dk-color-btn:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.dk-color-sw{width:20px;height:20px;border-radius:5px;border:1px solid var(--line-strong);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--ink-soft)}.dk-color-sw.is-none{background:repeating-linear-gradient(45deg,#fff 0,#fff 4px,#eee 4px,#eee 8px)}.dk-color-sw.is-mixed{background:linear-gradient(135deg,#c62828 0,#c62828 50%,#1565c0 50%,#1565c0)}.dk-hex{width:96px;min-height:30px;padding:3px 6px;font:inherit;font-size:12px;border:1px solid var(--line-strong);border-radius:8px}.dk-biu{display:flex;gap:3px}.dk-biu .ctx-act{min-width:32px;min-height:32px;padding:2px 6px;font-size:13px}.dk-b{font-weight:800}.dk-i{font-style:italic}.dk-u{text-decoration:underline}.dk-biu .ctx-act.is-active,.dk-hatch.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.dk-font-btn{min-height:32px;padding:2px 8px}.dk-font-pop .dk-font-opt[data-font=sans]{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.dk-font-pop .dk-font-opt[data-font=serif]{font-family:Georgia,Times New Roman,Times,serif}.dk-font-pop .dk-font-opt[data-font=mono]{font-family:SF Mono,Consolas,Liberation Mono,Menlo,monospace}.dk-font-pop .dk-font-opt[data-font=hand]{font-family:Segoe Script,Bradley Hand,Comic Sans MS,cursive}.dk-font-pop .dk-font-opt[data-font=condensed]{font-family:Arial Narrow,Roboto Condensed,Liberation Sans Narrow,sans-serif}.dk-font-pop .dk-font-opt[data-font=display]{font-family:Impact,Haettenschweiler,Arial Black,sans-serif}.dk-font-pop .dk-font-opt.is-active{background:var(--accent-soft);color:var(--accent-ink)}.dk-hatch-wrap{position:relative;display:flex}.dk-hatch{min-width:32px;min-height:32px;padding:2px 6px}.dk-hatch-glyph{display:inline-flex;line-height:1}.dk-hatch-pop{display:flex;flex-direction:column;gap:4px;min-width:160px}.dk-hatch-pop .pp-btn.dk-hatch-opt{display:flex;align-items:center;gap:8px;justify-content:flex-start}.dk-hatch-pop .pp-btn.is-active{background:var(--accent-soft);color:var(--accent-ink)}.dk-color-pop{min-width:220px}.dk-color-pop .pd-color-row{display:flex;align-items:center;gap:8px}.pp-text{white-space:pre-wrap;word-break:break-word;max-width:260px}.dk-more{display:flex;align-items:center}.dk-more-pop{display:flex;flex-direction:column;gap:10px;min-width:240px}.dk-more-pop .dk-sec{padding:0}.value-chip{display:flex;align-items:center}.vchip-btn{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:3px 10px;border:1px solid var(--line-strong);background:#fff;border-radius:10px;color:var(--ink);cursor:pointer}.vchip-btn:hover,.vchip-btn[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.vchip-lbl{font-size:11px;font-weight:600;color:var(--ink-soft);white-space:nowrap}.vchip-btn:hover .vchip-lbl,.vchip-btn[aria-expanded=true] .vchip-lbl{color:var(--accent-ink)}.vchip-val{font-size:12.5px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.vchip-btn:hover .vchip-val,.vchip-btn[aria-expanded=true] .vchip-val{color:var(--accent-ink)}.vchip-chev{font-size:10px;line-height:1;color:var(--ink-soft);transition:transform .12s}.vchip-btn:hover .vchip-chev,.vchip-btn[aria-expanded=true] .vchip-chev{color:var(--accent-ink)}.vchip-btn[aria-expanded=true] .vchip-chev{transform:rotate(180deg)}.vchip-pop{min-width:210px}.vchip-pop-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.vchip-pop-lbl{font:700 13px var(--font, system-ui, sans-serif);color:var(--ink)}.vchip-pop-val{font-weight:700;color:var(--accent-ink);font-variant-numeric:tabular-nums}.vchip-range{display:block;width:100%;box-sizing:border-box;margin:0;accent-color:var(--accent);cursor:pointer}.vchip-hint{margin-top:10px;padding:7px 9px;border-radius:9px;background:var(--accent-soft);border:1px solid #d4e0fb;color:var(--accent-ink);font-size:11.5px}.vchip-glyph{display:inline-flex;align-items:center;line-height:0}.vchip-glyph svg{display:block}.vchip-preview{margin-bottom:10px}.vchip-anchors{display:flex;justify-content:space-between;gap:4px;margin-top:8px}.vchip-anchor{padding:3px 6px;border:0;border-radius:6px;background:none;cursor:pointer;font:600 11.5px var(--font, system-ui, sans-serif);color:var(--ink-soft)}.vchip-anchor:hover,.vchip-anchor.is-active{background:var(--accent-soft);color:var(--accent-ink)}.tp-glyph .tp-curve{fill:currentColor;fill-opacity:.28;stroke:currentColor;stroke-width:1.2}.terrain-profile .tp-svg{display:block;width:100%;height:84px}.terrain-profile .tp-curve{fill:var(--accent, #2563eb);fill-opacity:.18;stroke:var(--accent, #2563eb);stroke-width:1.4;vector-effect:non-scaling-stroke}.terrain-profile .tp-core-mark{stroke:var(--accent-ink, #1d4ed8);stroke-width:2;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.terrain-profile .tp-core-text{margin-top:6px;font-size:11.5px;color:var(--ink-soft);font-variant-numeric:tabular-nums}@media (pointer: coarse){.dk-step{min-width:var(--tap);min-height:var(--tap)}.dk-inp{min-height:var(--tap)}.dk-color-btn,.dk-hatch{min-width:var(--tap);min-height:var(--tap)}.vchip-btn,.action-dock.terrain-dock .ctx-act{min-height:var(--tap)}.vchip-range{min-height:44px}.vchip-anchor{min-height:var(--tap);padding-inline:10px}.mode-seg-opt{min-width:var(--tap);min-height:var(--tap)}.action-dock .mode-seg-draw .mode-seg-opt{min-width:var(--tap);padding:4px 10px}.dk-hatch-pop .pp-btn{min-height:48px}.vbtn{min-height:var(--tap)}body.dock-open .view-ctrl{bottom:calc(var(--dock-clearance) + 8px)}}.hint{position:absolute;top:18px;left:50%;transform:translate(-50%);background:#0f172a;color:#fff;padding:9px 16px;border-radius:999px;font-size:13px;display:flex;align-items:center;gap:9px;z-index:19;box-shadow:var(--shadow)}.hint b{color:#cdd7ff}.hint svg{width:17px;height:17px;stroke:#cdd7ff;fill:none;stroke-width:1.8}.view-ctrl{position:absolute;right:16px;bottom:54px;z-index:21;display:flex;gap:8px}@media (pointer: fine) and (max-width: 1440px){body.dock-open .view-ctrl{bottom:calc(var(--dock-clearance) + 8px)}}.vbtn{display:inline-flex;align-items:center;gap:7px;height:42px;padding:0 14px;border:1px solid var(--line);background:var(--panel);border-radius:12px;box-shadow:var(--shadow-anzeige, var(--shadow-soft));font-size:12.5px;font-weight:600;color:var(--ink-soft)}.vbtn .ic{width:18px;height:18px}.vbtn:hover{color:var(--accent-ink);border-color:var(--accent)}.vbtn.on{background:var(--accent);color:#fff;border-color:var(--accent)}@media (max-width: 640px),(pointer: coarse){.view-ctrl .vbtn .vbtn-label{display:none}.view-ctrl .vbtn{gap:0;padding:0 12px}}.vp-pop{position:absolute;right:16px;bottom:104px;z-index:22;width:306px;max-width:calc(100vw - 32px);max-height:calc(100% - 120px);background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-soft, 0 8px 30px rgba(15,23,42,.18));display:flex;flex-direction:column;overflow:hidden;font-size:13px;color:var(--ink)}.vp-head{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--line)}.vp-head b{font-size:13.5px}.vp-x{border:none;background:transparent;color:var(--ink-soft);font-size:15px;cursor:pointer;line-height:1;padding:2px 4px;border-radius:6px}.vp-x:hover{color:var(--ink);background:var(--accent-soft, #eef2f7)}.vp-body{padding:6px 14px 12px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;min-height:0}.vp-body h3{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin:12px 0 4px}.vp-body h3:first-child{margin-top:4px}.vp-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 10px;min-height:32px}.vp-row .vp-seg{margin-left:auto}.vp-l{color:var(--ink-soft);font-weight:600;display:flex;align-items:center;gap:6px}.vp-chips{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:2px 0}.vp-chip{border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);font-size:12px;font-weight:600;padding:6px 8px;border-radius:9px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vp-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.vp-chip:last-child:nth-child(odd){grid-column:1 / -1}.vp-seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}.vp-seg button{border:none;background:var(--panel);color:var(--ink-soft);font-size:12px;font-weight:600;padding:5px 9px;cursor:pointer;border-right:1px solid var(--line)}.vp-seg button:last-child{border-right:none}.vp-seg button.on{background:var(--accent);color:#fff}.vp-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;width:100%;position:relative}.vp-toggle input{position:absolute;opacity:0;width:0;height:0}.vp-sw{flex:0 0 auto;width:34px;height:20px;border-radius:999px;background:var(--line);position:relative;transition:background .15s}.vp-sw:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .15s}.vp-toggle input:checked+.vp-sw{background:var(--accent)}.vp-toggle input:checked+.vp-sw:after{transform:translate(14px)}.vp-toggle .vp-t{color:var(--ink);font-weight:600}.vp-toggle.disabled{opacity:.6;cursor:default}.vp-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-top:1px solid var(--line)}.vp-note{color:var(--ink-soft);font-size:11px;margin-right:auto}.vp-done{border:none;background:var(--accent);color:#fff;font-weight:600;font-size:12.5px;padding:7px 16px;border-radius:9px;cursor:pointer}.vp-done:hover{filter:brightness(1.05)}.vp-reset{border:1px solid var(--line);background:transparent;color:var(--ink-soft);font-size:12.5px;padding:6px 12px;border-radius:9px;cursor:pointer;white-space:nowrap}.vp-reset:hover{color:var(--ink);border-color:var(--ink-soft)}@media (max-width: 640px){.vp-pop{right:8px;left:8px;bottom:8px;width:auto;max-height:82vh;overflow:auto}}.statusbar{position:absolute;left:0;right:0;bottom:0;height:40px;background:#fffffff0;border-top:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 16px;font-size:12.5px;color:var(--ink-soft);z-index:21;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow-statusbar)}.statusbar b{color:var(--ink);font-weight:600}.statusbar .sys-scale{color:var(--ink-soft);font-weight:500}.statusbar .grow{margin-left:auto}.statusbar{flex-wrap:nowrap;overflow:hidden}.statusbar .sb-left{display:flex;align-items:center;gap:16px;min-width:0;flex:1 1 auto;overflow:hidden}.statusbar .sb-right{display:flex;align-items:center;gap:16px;flex:0 0 auto;margin-left:auto}.statusbar .sb-left>span:not(.sel-pill){white-space:nowrap;flex:0 0 auto}.sel-pill{display:inline-flex;align-items:center;gap:7px;background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;padding:4px 11px;font-weight:600;font-size:12px;min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sel-pill .d{width:7px;height:7px;border-radius:50%;background:var(--accent)}.statusbar .sb-report{border:0;background:none;padding:0;font:inherit;color:var(--ink-faint, var(--ink-soft));text-decoration:underline;text-underline-offset:2px;cursor:pointer;white-space:nowrap}.statusbar .sb-report:hover,.statusbar .sb-report:focus-visible{color:var(--ink-soft)}.scalebar{display:flex;flex-direction:column;gap:3px;align-items:flex-start;padding:2px;cursor:default}.scalebar .track-line{position:relative;height:9px;display:flex;align-items:flex-end}.scalebar .seg{height:5px;border:1px solid var(--ink);border-right:none}.scalebar .seg.fill{background:var(--ink)}.scalebar .seg.last{border-right:1px solid var(--ink)}.scalebar .labels{display:flex;justify-content:space-between;width:100%;font-size:11px;line-height:1;color:var(--ink-soft);font-variant-numeric:tabular-nums}.scalebar .labels .end{font-weight:600;color:var(--ink)}@media (max-width: 640px){.statusbar .scalebar{display:none}}.zoom{display:flex;align-items:center;gap:5px}.zoom button{width:30px;height:27px;border:1px solid var(--line-strong);background:#fff;border-radius:8px;font-size:16px;line-height:1;color:var(--ink);transition:.12s}.zoom button:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.zoom button.fit{width:auto;padding:0 10px;font-size:12.5px;font-weight:600}.drawer{position:absolute;top:0;right:0;bottom:0;width:380px;background:var(--panel);border-left:1px solid var(--line);box-shadow:var(--shadow);z-index:25;transform:translate(106%);transition:transform .22s ease;display:flex;flex-direction:column}.drawer.open{transform:none}.drawer-h{display:flex;align-items:center;gap:10px;padding:15px 16px;border-bottom:1px solid var(--line);font-weight:700;font-size:15px}.drawer-h .x{margin-left:auto;width:34px;height:34px;border:0;background:var(--bg);border-radius:9px;display:grid;place-items:center;color:var(--ink-soft)}.drawer-h .x:hover{background:var(--line)}.drawer-b{padding:14px 16px;overflow:auto}.mk svg{width:15px;height:15px;stroke:#fff;fill:none;stroke-width:2.2}.bad{background:var(--warn)}.good{background:var(--ok)}.bom{width:100%;border-collapse:collapse;font-size:13.5px}.bom td{padding:8px 2px;border-bottom:1px solid var(--line)}.bom td.q{color:var(--ink-soft);width:36px}.bom td.p{text-align:right;font-weight:600;white-space:nowrap}.bom tr.inv td{color:var(--ok)}.bom-total{display:flex;justify-content:space-between;align-items:center;margin-top:14px;font-weight:700}.bom-total .big{font-size:20px}.bom-total-price{margin-top:6px;color:var(--accent-ink)}.bom-total-price .big{font-size:18px}.buy{margin-top:12px;width:100%;height:46px;border:0;border-radius:12px;background:var(--accent);color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 2px 8px #0f172a29}.buy:hover{background:var(--accent-ink)}.bp-chips{display:flex;flex-wrap:wrap;gap:7px;margin:2px 0 12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.bp-chip{display:inline-flex;align-items:center;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink-soft);font-size:12.5px;font-weight:600;cursor:pointer}.bp-chip:hover{border-color:var(--accent);color:var(--accent-ink)}.bp-chip.foc{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 0 0 3px var(--accent-soft)}.bp-hint{margin:18px 2px;color:var(--ink-soft);font-size:13px;text-align:center}.bom-btn.phase-export{width:100%;margin-top:12px;min-height:0;padding:10px 12px;justify-content:flex-start;gap:8px;border-style:dashed;border-radius:10px;font-size:12px;font-weight:600;color:var(--ink-soft)}.bom-btn.phase-export:hover{border-color:var(--accent);color:var(--accent-ink)}.bom-btn.phase-export .ic{flex:0 0 auto}.bom-btn.phase-export .bom-prem{margin-left:auto;font-size:10px;font-weight:800;padding:2px 7px;border-radius:6px;background:var(--amber-soft, #fdf0db);color:var(--amber, #b45309)}.bom-grp{margin-bottom:14px}.bom-grp-h{display:flex;align-items:baseline;justify-content:space-between;font-weight:700;font-size:13px;padding:6px 2px;border-bottom:2px solid var(--ink)}.bom-grp-n{color:var(--ink-soft);font-weight:600;font-size:12.5px}.bom-art{font-size:11px;color:var(--ink-soft)}.bom tr.unres td{color:var(--amber)}.bom-flag{font-size:11px;font-weight:700;color:var(--amber)}.bom-warn{margin:8px 0 0;color:var(--amber);font-size:12.5px}.share-ok{margin:8px 0 0;color:var(--ok);font-size:12.5px}.bom-region{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:10px;font-size:12px;color:var(--muted, #6b7280)}.bom-region-sel{font-size:12px;padding:2px 4px;color:inherit;background:transparent;border:1px solid var(--line, #d1d5db);border-radius:4px}.bom-region-sel:hover{border-color:var(--accent, #2563eb)}.bom-btn{flex:1 1 0;min-height:48px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);font-weight:700;font-size:13.5px;display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer}.bom-btn:hover{background:var(--line)}.bom-buy{margin-left:8px;font-size:11.5px;font-weight:600;color:var(--accent);text-decoration:none;white-space:nowrap}.bom-buy:after{content:" ↗"}.bom-buy:hover{text-decoration:underline}.bom-legacy{margin-left:8px;font-size:11px;font-style:italic;color:var(--ink-soft);white-space:nowrap}.bom-offer{display:inline-flex;align-items:baseline;gap:5px;margin-left:8px;font-size:11px;color:var(--ink-soft);white-space:nowrap}.bom-shop{font-weight:700}.bom-shop:after{content:" ·";font-weight:400}.bom-unit{font-variant-numeric:tabular-nums}.bom-stock{font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px}.bom-stock.in{color:var(--ok-ink);background:var(--ok-soft)}.bom-stock.out{color:var(--amber, #b45309);background:var(--amber-soft, #fdf0db)}.inv-li-top .bom-offer{margin-left:auto}.bom-btn.order{width:100%;margin-top:14px;border:0;background:var(--accent);color:#fff;box-shadow:0 4px 14px #2563eb47}.bom-btn.order:hover{background:var(--accent-ink)}.bom-btn.order:disabled{background:var(--line);color:var(--ink-soft);box-shadow:none;cursor:default}.bom-hint{margin:10px 0 0;color:var(--ink-soft);font-size:11.5px}.ordsec{margin-top:16px;border:1px solid var(--line-strong);border-radius:14px;padding:12px;background:var(--panel)}.ord-h{display:flex;align-items:baseline;gap:8px;margin-bottom:9px}.ord-t{font-weight:800;font-size:14px}.ord-m{margin-left:auto;font-size:11.5px;color:var(--ink-soft)}.ord-shop{display:flex;gap:11px;align-items:center;width:100%;text-align:left;margin-bottom:7px;border:1px solid var(--line);border-radius:12px;padding:9px 11px;background:var(--bg);color:var(--ink);cursor:pointer}.ord-shop:hover{border-color:var(--line-strong)}.ord-shop.sel{border-color:var(--accent);background:var(--accent-soft)}.ord-shop.off{opacity:.55;cursor:default}.ord-radio{flex:0 0 auto;width:18px;height:18px;border-radius:50%;border:2px solid var(--line-strong);background:var(--panel);display:grid;place-items:center}.ord-shop.sel .ord-radio{border-color:var(--accent)}.ord-shop.sel .ord-radio:after{content:"";width:9px;height:9px;border-radius:50%;background:var(--accent)}.ord-info{flex:1;min-width:0}.ord-nm{font-weight:700;font-size:13.5px;display:flex;align-items:center;gap:7px}.ord-cov{display:flex;align-items:center;gap:8px;margin-top:4px}.ord-bar{flex:0 0 84px;height:6px;border-radius:99px;background:var(--line);overflow:hidden}.ord-bar i{display:block;height:100%;border-radius:99px;background:var(--accent)}.ord-cov-l{display:block;margin-top:4px;font-size:11.5px;color:var(--ink-soft)}.ord-cov .ord-cov-l{margin-top:0}.ord-val{flex:0 0 auto;text-align:right;font-weight:800;font-size:13px;font-variant-numeric:tabular-nums}.ord-val-u{display:block;font-size:10.5px;color:var(--ink-soft);font-weight:600}.ord-badge{font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:999px;white-space:nowrap}.ord-badge.ok{color:var(--ok-ink);background:var(--ok-soft)}.ord-badge.none{color:var(--ink-soft);background:var(--fill)}.ord-miss{margin:2px 0 8px;font-size:12px;color:var(--ink-soft)}.ord-legacy,.ord-note{margin:0 0 8px;font-size:11.5px;color:var(--ink-soft)}.ord-allowned{margin:4px 0 10px;font-weight:700;color:var(--ok);font-size:12.5px}.ord-scope{font-weight:700;color:var(--ink)}.ord-banner{background:var(--ok-soft);border:1px solid var(--ok-soft);border-radius:12px;padding:10px 12px;margin:0 0 10px;font-size:12.5px;color:var(--ok-ink);font-weight:600}.ord-banner a{color:inherit}.ord-chain{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:10px 12px;border:1px solid var(--accent);border-radius:12px;background:var(--accent-soft)}.ord-chain-p{flex:1;min-width:0;margin:0;font-size:12.5px;font-weight:600;color:var(--accent-ink)}.ord-chain .bom-btn.ord-chain-stop{width:auto;flex:0 0 auto;margin-top:0;min-height:34px;font-size:12px}.ord-chain-warn{margin:0 0 10px;padding:10px 12px;border:1px solid var(--amber);border-radius:12px;font-size:12.5px;color:var(--ink)}.ord-chain-dur{margin:0 0 8px}.bom-btn.ord-chain-view{margin:0 0 10px}.ord-grp{margin:10px 0}.ord-grp-h{display:flex;align-items:baseline;justify-content:space-between;font-weight:700;font-size:12.5px;padding:4px 2px;border-bottom:1px solid var(--line-strong)}.ord-grp-n{color:var(--ink-soft);font-weight:600;font-size:11.5px}.ord-list{list-style:none;margin:0;padding:0;font-size:12.5px}.ord-list li{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;padding:6px 2px;border-bottom:1px dashed var(--line)}.ord-list.handed li{opacity:.6;text-decoration:line-through}.ord-list.handed .ord-check{text-decoration:none;color:var(--ok);font-weight:800}.ord-art{font-size:11px;color:var(--ink-soft)}.ord-foot{display:flex;flex-direction:column;gap:8px;margin-top:4px}.ord-foot .bom-btn{width:100%;flex:0 0 auto;margin-top:0}.ord-foot .bom-btn.ord-primary{text-decoration:none}.ord-foot .bom-btn.ord-rest{min-height:42px;font-size:12.5px;border-color:var(--line-strong)}.ord-foot .bom-btn.ord-print{min-height:40px;font-size:12.5px;border-style:dashed}.ord-session{margin:8px 0 0;font-size:11px;color:var(--ink-soft)}.ord-stamp{display:flex;align-items:center;gap:7px;margin:10px 0 0;font-size:11.5px;color:var(--ink-soft)}.ord-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);flex:0 0 auto}.ord-stamp.stale .ord-dot{background:var(--amber)}.inv-toggle{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:12.5px;font-weight:600;cursor:pointer}.inv-toggle input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.inv-login-hint{margin:0 0 12px;color:var(--ink-soft);font-size:12px}.inv-hint{margin:-6px 0 12px;color:var(--accent-ink);font-size:11.5px}.bp-list{display:flex;flex-direction:column}.bp-li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:6px 8px;margin:0 -8px;border-radius:10px;border-bottom:1px solid var(--line);transition:background .12s,box-shadow .12s}.bp-li:last-child{border-bottom:0}.bp-li:hover{background:var(--fill)}.bp-mk{display:inline-grid;place-items:center;width:14px;height:14px;margin-right:5px;vertical-align:-2px;border-radius:50%;font-size:9px;font-weight:800;line-height:1;color:#fff}.bp-mk.have{background:var(--ok)}.bp-mk.cart{background:var(--accent)}.bp-mk.legacy,.bp-mk.unresolved{background:var(--amber)}.bp-t{grid-column:1;font-size:13px;font-weight:650;line-height:1.25;min-width:0}.bp-li.have .bp-t{color:var(--ink-soft)}.bp-q{grid-column:2;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13.5px;font-weight:800}.bp-q-u{font-weight:600;color:var(--ink-soft);font-size:11px}.bp-have{font-size:12px;font-weight:700;color:var(--ok-ink)}.bp-sub{font-size:11px;font-weight:650;color:var(--ink-soft);margin-left:5px}.bp-meta{grid-column:1;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-soft)}.bp-art{font-variant-numeric:tabular-nums}.bp-side{grid-column:2;display:flex;align-items:center;justify-content:flex-end;gap:6px}.bp-side-l{font-size:10px;font-weight:650;color:var(--ink-faint)}.bp-price{display:inline-flex;align-items:center;gap:4px;font-weight:750;font-variant-numeric:tabular-nums;color:var(--accent-ink);text-decoration:none;border-bottom:1px dotted currentColor;padding-bottom:1px}.bp-price:hover{border-bottom-style:solid}.bp-price.flat{color:var(--ink);border-bottom:0;font-weight:700}.bp-shop{font-size:10px;font-weight:800;color:var(--ink-soft);letter-spacing:.02em}.bp-ext{opacity:.65}.bp-stock{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700}.bp-stock:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok)}.bp-stock.in{color:var(--ok-ink)}.bp-stock.out,.bp-stock.ask{color:var(--amber-ink)}.bp-stock.out:before,.bp-stock.ask:before{background:var(--amber)}.bp-badge{font-size:10px;font-weight:800;padding:1.5px 7px;border-radius:999px;white-space:nowrap}.bp-badge.cart{color:var(--accent-ink);background:var(--accent-soft)}.bp-badge.legacy,.bp-badge.unresolved{color:var(--amber-ink);background:var(--amber-soft)}.bp-badge.generic{color:var(--ink-soft);background:var(--fill);font-style:italic}.bp-buy{font-size:11.5px;font-weight:650;color:var(--accent-ink);text-decoration:none;white-space:nowrap}.bp-buy:after{content:" ↗"}.bp-buy:hover{text-decoration:underline}.bp-li.lit,.bp-li.lit:hover{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.bp-side .stepper-btn{min-width:24px;min-height:24px;font-size:14px;border-radius:7px}.bp-side .stepper-in{width:30px;min-height:24px;font-size:12px}@media (pointer: coarse){.bp-side .stepper-btn{min-width:40px;min-height:40px}.bp-side .stepper-in{min-height:40px;width:42px}}.bp-rail{display:flex;align-items:stretch;gap:0;list-style:none;margin:0 0 10px;padding:0}.bp-step{flex:1;min-width:0;display:flex;gap:6px;align-items:flex-start;padding:6px;border-radius:10px}.bp-step-n{flex:0 0 auto;width:20px;height:20px;margin-top:1px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;background:var(--line);color:var(--ink-soft)}.bp-step-tx{min-width:0;overflow:hidden}.bp-step-tx b{display:block;font-size:12.5px;font-weight:700;color:var(--ink-soft);line-height:1.2;white-space:nowrap}.bp-step-tx i{display:block;font-style:normal;font-size:10.5px;color:var(--ink-faint);margin-top:2px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bp-step.now{background:var(--accent-soft)}.bp-step.now .bp-step-n{background:var(--accent);color:#fff}.bp-step.now .bp-step-tx b{color:var(--accent-ink)}.bp-step.done .bp-step-n{background:var(--ok);color:#fff}.bp-step.done .bp-step-tx b{color:var(--ok-ink)}.bp-phase-h{display:flex;align-items:center;gap:8px;margin:2px 0 8px}.bp-phase-nm{font-weight:760;font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bp-phase-n{font-size:11.5px;color:var(--ink-soft);font-weight:650;white-space:nowrap}.bp-mini{display:inline-flex;align-items:center;gap:5px;margin-left:auto;white-space:nowrap;font-size:11.5px;font-weight:650;color:var(--ink-soft);border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:4px 8px;cursor:pointer}.bp-mini:hover{border-color:var(--line-strong);color:var(--ink)}.bp-chip-n{margin-left:6px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;display:inline-grid;place-items:center;font-size:10.5px;font-weight:800;background:var(--line);color:var(--ink-soft)}.bp-chip.foc .bp-chip-n{background:#ffffff47;color:#fff}.bp-chip-n.done{background:var(--ok-soft);color:var(--ok-ink)}.bp-step3{margin-top:12px;padding:12px;border:1px dashed var(--line-strong);border-radius:14px}.bp-step3-h{display:flex;align-items:center;gap:8px;margin-bottom:4px}.bp-step3-n{width:19px;height:19px;border-radius:50%;background:var(--line-strong);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800}.bp-step3-t{font-weight:750;font-size:13.5px}.bp-step3-p{margin:0 0 10px;font-size:11.5px;color:var(--ink-soft);line-height:1.4}.bom-btn.ghost{border-style:dashed;color:var(--ink-soft)}.bp-step3.on{border-style:solid;border-color:#c9ecd6;background:#fbfefc}.bp-step3.on .bp-step3-n{background:var(--ok)}.bom-btn.ok{border:0;background:var(--ok);color:#fff}.bom-btn.ok:hover{background:var(--ok-ink)}.bom-btn.as-bought-cart{flex-direction:column;gap:2px;min-height:44px;margin-bottom:7px}.bp-step3-n2{font-size:11px;font-weight:600;opacity:.85}.bp-fine{margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}.bp-sum{display:flex;align-items:baseline;gap:8px}.bp-sum-l{font-size:12px;color:var(--ink-soft);font-weight:640}.bp-sum-v{margin-left:auto;font-variant-numeric:tabular-nums}.bp-sum-v b{font-size:17px;font-weight:800}.bp-sum-u{font-size:12px;color:var(--ink-soft);font-weight:650}.bp-fine-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px;font-size:10.5px;color:var(--ink-faint)}.bp-fine-sep{opacity:.5}.bp-stamp{display:inline-flex;align-items:center;gap:6px}.bp-dot{width:6px;height:6px;border-radius:50%;background:var(--ok)}.bp-stamp.stale .bp-dot{background:var(--amber)}.bp-region{display:inline-flex;align-items:center;gap:5px}.bp-fine-more{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.bp-fine-more:hover{color:var(--ink-soft)}.bp-fine-note{margin:6px 0 0;font-size:10.5px;color:var(--ink-faint);line-height:1.45}.ord-state{margin:0 0 10px;padding:10px 12px;border:1px solid #c9ecd6;border-radius:12px;background:var(--ok-soft)}.ord-state.stale{border-color:var(--amber);background:var(--amber-soft)}.ord-state-h{display:flex;gap:10px;align-items:flex-start}.ord-state-i{flex:0 0 auto;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--panel);color:var(--ok-ink);font-weight:800}.ord-state.stale .ord-state-i{color:var(--amber-ink)}.ord-state-tx b{display:block;font-size:13px;font-weight:740;line-height:1.25}.ord-state-tx small{display:block;margin-top:2px;font-size:11.5px;color:var(--ink-soft)}.ord-state-note{display:flex;margin:8px 0;padding:8px 10px;border-radius:9px;background:var(--panel);font-size:11.5px;color:var(--ink-soft);line-height:1.4}.ord-state-acts{display:flex;gap:7px;flex-wrap:wrap}.ord-state-acts .bom-btn{width:auto;flex:0 0 auto;margin-top:0;min-height:34px;padding:0 11px;font-size:12px}.bom-btn.ord-state-open{flex:1 1 auto}.bom-btn.ord-state-reset{border-color:transparent;background:transparent;color:var(--ink-soft);text-decoration:underline;text-underline-offset:2px}.bom-btn.ord-state-reset:hover{color:var(--ink)}.ovf{position:relative;display:inline-block;flex:0 0 auto}.ovf-btn{width:40px;min-height:40px;border:1px solid var(--line-strong);border-radius:10px;background:var(--panel);color:var(--ink-soft);display:grid;place-items:center;cursor:pointer}.ovf-btn:hover{background:var(--fill);color:var(--ink)}.ovf-menu{position:absolute;right:0;bottom:calc(100% + 6px);width:244px;z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:5px;box-shadow:0 8px 26px #0f172a29}.ovf-item{display:flex;gap:9px;align-items:flex-start;width:100%;text-align:left;padding:8px 9px;border:0;border-radius:9px;background:none;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--ink)}.ovf-item:hover:not(:disabled){background:var(--fill)}.ovf-item:disabled{color:var(--ink-faint);cursor:default}.ovf-tx small{display:block;font-weight:500;font-size:10.5px;color:var(--ink-soft);margin-top:2px}.bom-generic{font-size:11px;font-style:italic;color:var(--ink-soft)}.stepper{display:inline-flex;align-items:center;gap:2px}.stepper-btn{min-width:30px;min-height:30px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font-size:18px;font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.stepper-btn:hover:not(:disabled){background:var(--line)}.stepper-btn:disabled{color:var(--line-strong, #cbd5e1);cursor:default}.stepper-in{width:40px;min-height:30px;text-align:center;border:1px solid var(--line);border-radius:8px;background:var(--panel, #fff);color:var(--ink);font-size:13.5px;font-weight:600;padding:0 2px;-moz-appearance:textfield}@media (pointer: coarse){.stepper-btn{min-width:44px;min-height:44px}.stepper-in{min-height:44px;width:46px}}.inv-phase-cart{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 2px;font-size:12.5px}.inv-tobuy-sum{font-weight:700;color:var(--accent-ink)}.inv-allowned{font-weight:700;color:#16a34a}.bom-btn.as-built{flex:0 0 auto;min-height:36px;padding:0 12px;font-size:12px}.bom-btn.as-built-plan{width:100%;margin-top:8px;min-height:40px;font-size:12.5px;border-style:dashed}@media (max-width: 980px){.project,.tbtn-label{display:none}.tbtn{min-width:46px}.drawer{width:86%}.catalog{max-height:calc(100% - 80px)}}.tut-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-toast);pointer-events:none}.tut-ring{position:absolute;border-radius:16px;pointer-events:none;border:3px solid var(--accent);box-shadow:0 0 0 4px var(--accent-soft),var(--shadow);animation:tut-pulse 1.5s ease-in-out infinite}@keyframes tut-pulse{0%,to{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft),var(--shadow)}50%{border-color:var(--accent-ink);box-shadow:0 0 0 4px var(--accent),var(--shadow)}}@media (prefers-reduced-motion: reduce){.tut-ring{animation:none}}.tut-card{position:absolute;pointer-events:auto;width:min(340px,calc(100vw - 32px));background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:18px 20px}.tut-left{left:356px;top:24px}.tut-top{left:50%;top:78px;transform:translate(-50%)}.tut-center{left:50%;top:50%;transform:translate(-50%,-50%);text-align:center}.tut-count{font-size:13px;font-weight:700;color:var(--accent-ink);letter-spacing:.02em;margin-bottom:6px}.tut-title{font-size:21px;font-weight:750;color:var(--ink);margin:0 0 8px;line-height:1.2}.tut-body{font-size:16px;line-height:1.5;color:var(--ink);margin:0 0 16px}.tut-foot{display:flex;align-items:center;gap:10px}.tut-sp{flex:1}.tut-skip{min-height:48px;padding:0 16px;border:1px solid var(--line-strong);background:#fff;border-radius:12px;color:var(--ink-soft);font-weight:650;font-size:15px;cursor:pointer}.tut-skip:hover{background:var(--bg);color:var(--ink);border-color:var(--line-strong)}.tut-next,.tut-done{min-height:48px;padding:0 22px;border:0;border-radius:12px;background:var(--accent);color:#fff;font-weight:700;font-size:16px;cursor:pointer}.tut-next:hover,.tut-done:hover{background:var(--accent-ink)}.tut-finish .tut-emoji{font-size:40px;line-height:1;margin-bottom:8px}.tut-finish .tut-foot{justify-content:center}@media (max-width: 980px){.tut-left{left:50%;top:auto;bottom:70px;transform:translate(-50%)}}.upsell-pulse{animation:upsell-pulse .5s ease-out}@keyframes upsell-pulse{0%,to{box-shadow:0 0 0 3px transparent}45%{box-shadow:0 0 0 3px var(--accent)}}@media (prefers-reduced-motion: reduce){.upsell-pulse{animation:none}}.upsell-badge{font-size:11px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--accent-ink);background:var(--accent-soft);border-radius:999px;padding:1px 8px}.toast-stack{position:fixed;left:50%;bottom:max(24px,var(--dock-clearance, 0px));transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;gap:8px;align-items:center;max-width:min(560px,calc(100vw - 32px));pointer-events:none}.toast-stack>*{pointer-events:auto}.limit-toast{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 16px;background:var(--panel);color:var(--ink);border:1px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow)}.limit-toast-msg{font-size:13.5px;line-height:1.35}.limit-toast .x{flex:none;width:34px;height:34px;border:0;background:var(--bg);border-radius:9px;display:grid;place-items:center;color:var(--ink-soft);cursor:pointer}.limit-toast .x:hover{color:var(--ink)}@media (max-width: 560px){.limit-toast{flex-wrap:wrap;justify-content:flex-end}.limit-toast-msg{flex:1 1 100%}}.undo-toast{padding:10px 16px;background:var(--panel);color:var(--ink);border:1px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow);cursor:pointer;animation:undo-toast-in .16s ease-out}.undo-toast-msg{font-size:13.5px;line-height:1.35}@keyframes undo-toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.undo-split{position:relative;display:inline-flex;align-items:stretch}.undo-split-arrow{min-width:24px;padding:0 3px;margin-left:1px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink-soft);font-size:10px;line-height:1;transition:.12s}.undo-split-arrow:not(:disabled):hover{background:var(--panel);color:var(--ink);box-shadow:0 1px 3px #1e293b1f}.undo-split-arrow:disabled{opacity:.4;cursor:default}.undo-split.open .undo-split-arrow{background:var(--panel);color:var(--accent-ink)}.undo-menu{position:absolute;top:calc(100% + 10px);left:0;z-index:40;min-width:230px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px 0 0;overflow:hidden}.undo-menu-list{max-height:min(52vh,480px);overflow-y:auto}.undo-menu-item{display:block;width:100%;text-align:left;padding:7px 14px;border:0;background:transparent;color:var(--ink);font-size:13px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.undo-menu-item.in-block{background:var(--accent-soft);color:var(--accent-ink)}.undo-menu-item.is-ring{color:var(--ink-soft)}.undo-menu-item.is-ring.in-block{color:var(--accent-ink);opacity:.8}.undo-menu-sep{padding:8px 14px 3px;font-size:10.5px;letter-spacing:.8px;font-weight:800;text-transform:uppercase;color:var(--ink-soft);border-top:1px solid var(--line);margin-top:4px}.undo-menu-footer{min-height:26px;padding:5px 14px;border-top:1px solid var(--line);margin-top:6px;font-size:12px;color:var(--ink-soft);background:var(--bg)}.tab-lock-banner{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--warn-soft);color:var(--ink);border-bottom:1px solid var(--line-strong);font-size:13.5px}.tab-lock-msg{flex:1;line-height:1.35}.tab-lock-take{flex:none;padding:6px 12px;border:1px solid var(--accent);border-radius:9px;background:var(--accent);color:#fff;font-weight:600;cursor:pointer;font-size:13px}.tab-lock-take:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.layer-toggle{position:absolute;right:16px;top:78px;z-index:21;width:44px;height:44px;border:1px solid var(--line);background:var(--panel);border-radius:12px;box-shadow:var(--shadow-chip, var(--shadow-soft));color:var(--ink-soft);cursor:pointer;display:grid;place-items:center}.layer-toggle:hover{color:var(--accent);border-color:var(--accent)}.layer-toggle-ic{font-size:20px;line-height:1}.layer-toggle-n{position:absolute;top:4px;right:5px;min-width:16px;height:16px;padding:0 3px;border-radius:8px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center}.layer-panel{position:absolute;right:16px;top:78px;width:268px;max-height:calc(100% - 94px);z-index:21;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.layer-h{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line)}.layer-h .x{width:30px;height:30px;border:0;background:var(--bg);border-radius:8px;color:var(--ink-soft);cursor:pointer}.layer-h .x:hover{color:var(--ink)}.layer-list{overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:4px}.layer-row{display:flex;align-items:center;gap:4px;padding:4px;border-radius:10px;border:1px solid transparent}.layer-row.active{border-color:var(--accent);background:var(--accent-soft)}.layer-row.layer-ghost{opacity:.6;border:1px dashed var(--accent);cursor:pointer}.layer-row.layer-ghost:hover{opacity:.8}.layer-row.layer-ghost .layer-active,.layer-row.layer-ghost .layer-eye{pointer-events:none}.layer-active,.layer-eye,.layer-lock{flex:none;width:28px;height:28px;border:0;background:transparent;cursor:pointer;font-size:14px;border-radius:7px;color:var(--ink-soft)}.layer-active.on{color:var(--accent)}.layer-active:hover,.layer-eye:hover,.layer-lock:hover{background:var(--bg)}.layer-lock.on{color:var(--accent-ink)}.layer-row.locked .layer-name-txt{opacity:.7}@keyframes layerFlashPulse{0%,to{box-shadow:var(--shadow)}30%{box-shadow:0 0 0 3px var(--accent)}}@keyframes layerRowFlash{0%,to{background:transparent}35%{background:#fee2e2;border-color:#ef4444}}.layer-panel.flash,.layer-toggle.flash{animation:layerFlashPulse .7s ease}.layer-row.flash-row{animation:layerRowFlash .7s ease}.tool-flash{animation:layerFlashPulse .7s ease}.tools .tool.is-quiet{opacity:.45}.tools .tool.is-quiet:hover{opacity:1}.layer-name{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:1px;border:0;background:transparent;cursor:pointer;text-align:left;padding:2px 4px;border-radius:7px}.layer-name:hover{background:var(--bg)}.layer-name-txt{font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.layer-count{font-size:11px;color:var(--ink-soft)}.layer-acts{display:flex;gap:1px;flex:none}.layer-mini{width:26px;height:26px;border:0;background:transparent;border-radius:7px;color:var(--ink-soft);cursor:pointer;font-size:12px}.layer-mini:hover:not(:disabled){background:var(--bg);color:var(--accent)}.layer-mini.danger:hover:not(:disabled){color:var(--warn)}.layer-mini:disabled{opacity:.3;cursor:default}@media (pointer: coarse){.layer-active,.layer-eye,.layer-lock{width:44px;height:44px}.layer-mini,.layer-h .x{width:40px;height:40px}}.layer-grip{width:26px;height:26px;border:0;background:transparent;border-radius:7px;color:var(--ink-soft);cursor:grab;display:inline-flex;align-items:center;justify-content:center}.layer-grip:hover{background:var(--bg);color:var(--accent)}.layer-grip:active{cursor:grabbing}.layer-row.dragging{opacity:.5}.layer-row.drop-above{box-shadow:inset 0 2px 0 var(--accent)}.layer-row.drop-below{box-shadow:inset 0 -2px 0 var(--accent)}.layer-del{padding:10px 12px;border-top:1px solid var(--line);background:var(--warn-soft)}.layer-del p{margin:0 0 8px;font-size:12.5px;color:var(--ink)}.layer-del-acts{display:flex;flex-wrap:wrap;gap:6px}.layer-del-acts .btn.danger{border-color:var(--warn);color:var(--warn)}.layer-add-head{padding:8px 12px;border-bottom:1px solid var(--line)}.layer-add{width:100%;min-height:38px;border:1px dashed var(--line-strong);background:transparent;border-radius:10px;color:var(--ink);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;gap:6px}.layer-add:hover{border-color:var(--accent);color:var(--accent)}.layer-hint{margin:8px 0 0;font-size:11.5px;color:var(--ink-soft);line-height:1.35}.layer-hint .lnk{border:0;background:transparent;color:var(--accent);cursor:pointer;font-size:11.5px;padding:0;text-decoration:underline}.layer-h strong{display:inline-flex;align-items:center;gap:6px}.layer-swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:middle;border:1px solid rgba(0,0,0,.15)}.modal.layer-modal{width:380px}.layer-modal-body{padding:16px 18px 4px}.layer-modal-val{color:var(--ink-soft);font-weight:400}.layer-opacity{width:100%;margin-top:4px;accent-color:var(--accent)}.layer-color-row{display:flex;align-items:center;gap:10px;margin-top:4px}.layer-color-inp{width:44px;height:30px;padding:0;border:1px solid var(--line);border-radius:8px;background:transparent;cursor:pointer}.layer-color-pick{position:relative;display:inline-flex}.layer-color-over{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer}.layer-color-row .lnk{border:0;background:transparent;color:var(--accent);cursor:pointer;font-size:12.5px;padding:0;text-decoration:underline}.layer-del-btn{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600;padding:9px 16px}@media (max-width: 1200px){.top-actions{gap:5px}.ta-inline{display:none}.ta-more{display:inline-flex}.app .topbar .share .lbl{display:none}.app .topbar .share{padding:0 12px}}@media (max-width: 1024px),(pointer: coarse){.top-actions{flex-wrap:nowrap;gap:5px}.ta-inline{display:none}.ta-more{display:inline-flex}.project{font-size:12px;max-width:38vw;overflow:hidden}.tbtn{min-width:52px}.share{padding:0 14px}.tools .tool{font-size:0;gap:0}.tools .tool .ic{width:23px;height:23px}.catalog.catalog-sheet{left:78px;top:84px;width:min(340px,calc(100vw - 94px));max-height:calc(100% - 150px);z-index:22;box-shadow:var(--shadow)}.catalog.catalog-sheet.collapsed{width:auto}.cat-h{min-height:48px}.cat-collapse{width:var(--tap, 44px);height:var(--tap, 44px)}.app{overflow-x:hidden}.drawer{width:min(92%,420px)}}@media (pointer: coarse){.topbar{padding:8px 14px}.tbtn{min-height:var(--tap);padding:6px 9px;gap:3px}.tbtn svg.ic{width:22px;height:22px}.tbtn.prominent{min-height:0;height:49px}.tbtn.prominent svg.ic{width:20px;height:20px}.seg-nav{padding:3px}.share{min-height:var(--tap);padding:6px 9px;gap:3px}.share svg.ic{width:22px;height:22px}.project-name{min-height:var(--tap)}.ta-more-btn{min-width:var(--tap);min-height:var(--tap)}.me{width:38px;height:38px;font-size:13px}.brand .logo{width:34px;height:34px;border-radius:10px}.brand .logo svg{width:25px;height:25px}.divider{height:30px}}@media (orientation: portrait) and (max-width: 900px){.project{max-width:30vw}}@media (max-width: 560px){.catalog.catalog-sheet{width:min(144px,calc(100vw - 94px))}.tiles{grid-template-columns:1fr}.cat-h-tabs .ci{display:none}.backdrop{padding:12px}.modal{min-width:0}.modal-f{flex-wrap:wrap}.app .topbar .brand>span:not(.logo){display:none}.app .topbar .share .lbl{display:none}.app .topbar .share{padding:0 12px}}.check-drawer{z-index:26}.check-drawer .drawer-b{flex:1 1 auto}.chk-tabs{display:flex;gap:4px;padding:6px 12px 0;border-bottom:1px solid var(--line, #dfe3ea);flex:0 0 auto}.chk-tab{flex:1;padding:8px 6px;border:none;background:none;font:inherit;font-size:13px;color:var(--muted, #667);border-bottom:2px solid transparent;cursor:pointer}.chk-tab:hover{color:var(--text, #223)}.chk-tab.on{color:var(--text, #223);border-bottom-color:var(--accent);font-weight:600}.drawer-h .chk-gear{margin-left:auto;border:1px solid var(--line, #dfe3ea);background:var(--panel, #fff);border-radius:8px;width:30px;height:30px;font-size:15px;line-height:1;cursor:pointer;color:var(--ink, #223)}.drawer-h .chk-gear:hover{background:var(--accent-soft)}.drawer-h .chk-gear+.x{margin-left:6px}.chk-tab-cnt{display:inline-block;margin-left:6px;background:var(--sev-error, #dc2626);color:#fff;border-radius:9px;font-size:10.5px;font-weight:700;padding:0 5px;line-height:15px;min-width:16px;text-align:center;vertical-align:middle}.chk-tab-cnt-more{opacity:.82;font-weight:600}.chk-grp-sub{text-transform:none;letter-spacing:0;font-weight:400;color:var(--muted, #889)}.chk-planwide{margin-left:auto;font-size:10.5px;color:var(--muted, #889);border:1px solid var(--line, #dfe3ea);border-radius:5px;padding:1px 6px;flex:0 0 auto;align-self:center}.chk-level{flex:0 0 auto;align-self:center;font-size:9.5px;font-weight:700;border-radius:5px;padding:1px 6px;border:1px solid var(--line, #dfe3ea);color:var(--muted, #889);white-space:nowrap}.chk-level.chk-level-operations{color:var(--ops-staging, #7c3aed);border-color:#ddd0f5;background:color-mix(in srgb,var(--ops-staging, #7c3aed) 7%,transparent)}.chk-planwide+.chk-level{margin-left:4px}.chk-z-toggles{display:flex;flex-direction:column;gap:7px;background:var(--panel-2, #f7f9fb);border:1px solid var(--line, #dfe3ea);border-radius:11px;padding:10px 12px;margin:4px 0 10px}.chk-z-hint{font-size:12px;color:var(--muted, #889);margin:0 0 12px;line-height:1.4}.chk-zcard{border:1px solid var(--line, #dfe3ea);border-radius:12px;padding:11px 12px;margin-bottom:10px}.chk-z-top{display:flex;align-items:center;gap:7px;font-weight:700}.chk-z-star{color:var(--sev-warn, #e08700)}.chk-z-name{min-width:0}.chk-z-len{margin-left:auto;color:var(--muted, #889);font-weight:600;font-size:12px;white-space:nowrap}.chk-z-fit{font-size:12.5px;margin:7px 0}.chk-z-fit-ok{color:var(--ok, #189a4a);font-weight:700}.chk-z-fit-no{color:var(--sev-error, #dc2626);font-weight:700}.chk-z-fit-place{color:var(--muted, #889)}.chk-zcard.is-railed{border-color:#c9dcff;background:#fbfdff}.chk-z-inplan{position:relative;flex:0 0 auto;cursor:pointer;display:inline-flex;align-items:center}.chk-z-inplan input{position:absolute;opacity:0;width:0;height:0}.chk-z-inplan .sw{width:30px;height:17px;border-radius:9px;background:#cfd6df;position:relative;transition:.15s}.chk-z-inplan .sw:after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;transition:.15s;box-shadow:0 1px 2px #00000040}.chk-z-inplan.on .sw{background:var(--ok, #189a4a)}.chk-z-inplan.on .sw:after{left:15px}.chk-z-actions{display:flex;gap:7px}.chk-btn.on{background:var(--accent);color:#fff;border-color:var(--accent)}.chk-z-kit{margin-top:8px;padding:9px;border:1px solid var(--line, #dfe3ea);border-radius:8px;background:var(--bg-soft, #f7f9fc)}.train-kit{display:flex;flex-direction:column;align-items:stretch;gap:6px}.train-kit .kit-lbl{font-size:11px;color:var(--muted, #889);text-transform:uppercase;letter-spacing:.02em}.train-kit .kit-row{display:flex;align-items:center;gap:6px}.train-kit .kit-type{flex:1 1 auto;min-width:0;padding:4px 6px;border:1px solid var(--line-strong, #c4ccd6);border-radius:6px;background:#fff;font:inherit;font-size:12px;color:var(--ink-soft, #556);cursor:pointer}.train-kit .kit-count{display:inline-flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums;flex:0 0 auto}.train-kit .kit-count button{border:1px solid var(--line-strong, #c4ccd6);background:#fff;border-radius:6px;width:24px;height:24px;cursor:pointer;line-height:1;font-size:15px}.train-kit .kit-rm{flex:0 0 auto;border:none;background:none;color:var(--muted, #889);cursor:pointer;font-size:13px;padding:2px 5px;border-radius:6px}.train-kit .kit-rm:hover{background:var(--sev-error-bg, #fde8e8);color:var(--sev-error, #dc2626)}.train-kit .kit-add{align-self:flex-start;border:1px dashed var(--line-strong, #c4ccd6);background:none;color:var(--accent);font:inherit;font-size:12px;font-weight:600;cursor:pointer;border-radius:6px;padding:3px 10px}.chk-z-kit .kit-manual{font-size:12px;color:var(--muted, #889);font-style:italic}.train-kit .kit-cm{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-soft, #556)}.train-kit .kit-cm input{width:58px;padding:3px 6px;border:1px solid var(--line-strong, #c4ccd6);border-radius:6px;font:inherit;text-align:right;font-variant-numeric:tabular-nums}.train-kit .kit-cm-unit{color:var(--muted, #889)}.train-kit .kit-cars{display:flex;flex-direction:column;gap:4px;margin:2px 0 2px 26px}.train-kit .kit-cars-hint{font-size:11.5px;color:var(--muted, #889);font-style:italic}.train-kit .kit-car{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.train-kit .kit-car-name{flex:0 0 auto;font-size:12px;color:var(--ink-soft, #556);min-width:92px}.train-kit .kit-car>button{border:1px solid var(--line-strong, #c4ccd6);background:#fff;border-radius:5px;width:20px;height:20px;cursor:pointer;line-height:1;font-size:12px}.train-kit .kit-car>button:disabled{opacity:.4;cursor:default}.train-kit .kit-car-fields{display:inline-flex;align-items:center;flex-wrap:wrap;gap:5px;margin-left:2px}.train-kit .kit-car-num{width:60px;padding:2px 5px;border:1px solid var(--line-strong, #c4ccd6);border-radius:5px;font:inherit;font-size:12px}.train-kit .kit-car-loaded{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;color:var(--ink-soft, #556)}.train-kit .kit-car-sim{display:inline-flex;align-items:center;gap:2px;font-size:11.5px;color:var(--muted, #889)}.train-kit .kit-car-sim input{width:46px;padding:2px 4px;border:1px solid var(--line-strong, #c4ccd6);border-radius:5px;font:inherit;text-align:right;font-variant-numeric:tabular-nums}.train-kit .kit-car-unit{color:var(--muted, #889)}.chk-labels-toggle input:disabled{opacity:.5}.chk-labels-toggle:has(input:disabled){opacity:.55}.chk-zadd{width:100%;border:1.5px dashed var(--line-strong, #c3cbd6);background:none;border-radius:12px;padding:10px;font-weight:700;color:var(--accent);cursor:pointer;font-size:13px}.chk-zadd:hover{background:var(--accent-soft)}.chk-rules-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182673;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:16px}.chk-rules-modal-box{width:460px;max-width:100%;max-height:84vh;overflow:auto;background:var(--panel, #fff);border-radius:16px;box-shadow:0 12px 40px #0f192859;padding:18px}.chk-rules-modal-h{display:flex;align-items:center;gap:9px}.chk-rules-modal-title{font-size:16px;font-weight:700}.chk-rules-modal-h .x{margin-left:auto;border:none;background:none;cursor:pointer;color:var(--muted, #889)}.chk-rules-modal-sub{font-size:12px;color:var(--muted, #889);margin:4px 0 12px}.chk-rules-modal-f{text-align:right;margin-top:8px}.sb-view-note{color:var(--muted, #889)}.sb-view-note b{color:var(--text, #223)}.chk-cat-chips{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0 2px 28px}.chk-cat-chip{display:inline-flex;align-items:center;gap:4px;background:var(--panel-2, #f2f4f7);border:1px solid var(--line, #dfe3ea);border-radius:14px;padding:2px 6px 2px 10px;font-size:12px;font-weight:600}.chk-cat-chip-x{border:none;background:none;color:var(--muted, #889);cursor:pointer;font-size:12px;line-height:1;padding:0 1px}.chk-cat-chip-x:hover{color:var(--sev-error, #dc2626)}.chk-z-excl{margin-top:8px;border-top:1px dashed var(--line, #dfe3ea);padding-top:7px}.chk-z-excl-h{font-size:12px;color:var(--muted, #889)}.chk-z-excl-row{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:12.5px}.chk-z-excl-row.is-stale{color:var(--muted, #889)}.chk-z-excl-name{min-width:0}.chk-z-excl-show{border:none;background:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;padding:0}.chk-z-excl-show:hover{text-decoration:underline}.chk-z-excl-rm{margin-left:auto;border:none;background:none;color:var(--muted, #889);cursor:pointer;font-size:13px}.chk-z-excl-rm:hover{color:var(--sev-error, #dc2626)}.sev-error{--sev: var(--warn)}.sev-warn{--sev: var(--amber)}.sev-info{--sev: var(--accent)}.sev-ok{--sev: var(--ok)}.chk-summary{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.chk-pill{border:0;cursor:pointer;white-space:nowrap;border-radius:8px;padding:3px 8px;font-size:11.5px;font-weight:700;font-family:inherit;color:var(--sev);background:color-mix(in srgb,var(--sev) 14%,transparent);transition:.12s}.chk-pill:hover{background:color-mix(in srgb,var(--sev) 24%,transparent)}.chk-pill.on{box-shadow:inset 0 0 0 1.5px var(--sev)}.chk-summary.filtered .chk-pill:not(.on){opacity:.45}.chk-grp{margin-bottom:6px}.chk-grp-h{font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.5px;margin:12px 0 7px}.chk-card{border:1px solid var(--line);border-radius:11px;margin-bottom:8px;overflow:hidden;background:var(--panel)}.chk-card.is-active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent)}.chk-card-h{display:flex;align-items:center;gap:9px;padding:10px 11px;width:100%;border:0;background:none;color:inherit;text-align:left;cursor:pointer;font:inherit}.chk-card-h:hover{background:var(--accent-soft)}.chk-num{flex:0 0 20px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--sev);font-size:11px;font-weight:700}.chk-dot{flex:0 0 9px;width:9px;height:9px;border-radius:50%;background:var(--sev)}.chk-title{flex:1;font-size:12.8px;font-weight:600}.chk-card-b{padding:2px 12px 12px 40px}.chk-why{font-size:12.3px;color:var(--ink-soft);line-height:1.5;margin:0}.chk-src{display:block;font-size:11px;color:var(--ink-soft);font-style:italic;margin-top:5px;opacity:.85}.chk-actions{display:flex;gap:7px;margin-top:10px;flex-wrap:wrap}.chk-btn{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:6px 11px;font-size:12px;cursor:pointer;color:var(--ink);min-height:32px}.chk-btn:hover{background:var(--accent-soft)}.chk-btn.primary{border-color:var(--accent);color:var(--accent-ink);font-weight:600}.chk-fix{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:9px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.chk-fix-label{font-size:12px;color:var(--ink);flex:1 1 auto;min-width:120px}.chk-fix-variants{display:flex;flex-wrap:wrap;gap:6px;flex-basis:100%}.chk-fix-variant{font-size:11px;line-height:1.3;padding:4px 9px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--ink-soft);cursor:pointer}.chk-fix-variant:hover{border-color:var(--accent)}.chk-fix-variant.on{background:var(--accent);border-color:var(--accent);color:#fff}.chk-fix-view{display:inline-flex;flex-basis:100%;width:fit-content;border:1px solid var(--line);border-radius:999px;overflow:hidden}.chk-fix-viewbtn{font-size:11px;font-weight:700;line-height:1.4;padding:3px 12px;border:0;background:var(--bg);color:var(--ink-soft);cursor:pointer;font-family:inherit}.chk-fix-viewbtn+.chk-fix-viewbtn{border-left:1px solid var(--line)}.chk-fix-viewbtn.on{background:var(--accent);color:#fff}.chk-fix-apply.locked{opacity:.85}.chk-fix-hint{flex-basis:100%;font-size:11px;color:var(--ink-soft)}.chk-fix-warn{flex-basis:100%;font-size:11px;line-height:1.4;color:var(--warn, #b8860b)}.chk-fix.is-blocked,.chk-fix.is-explain{border-style:dashed}.chk-fix-blocked{font-size:12px;color:var(--ink-soft);line-height:1.45}.chk-fix-blocked-ghost{flex-basis:100%;font-size:11px;font-style:italic;color:var(--ink-soft);opacity:.85}.chk-fix-computing{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);font-style:italic}.chk-fix-computing:before{content:"";width:12px;height:12px;border-radius:50%;border:2px solid var(--accent);border-top-color:transparent;animation:chk-fix-spin .8s linear infinite}@keyframes chk-fix-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.chk-fix-computing:before{animation:none}}.chk-dismissed{margin-top:8px;border-top:1px solid var(--line);padding-top:10px}.chk-card.is-dismissed{opacity:.7}.chk-card.is-dismissed .chk-card-h{cursor:default}.chk-card.is-dismissed .chk-btn{margin-left:auto}.chk-foot-link{align-self:flex-start;border:0;background:none;color:var(--accent);font-weight:600;font-size:13px;cursor:pointer;padding:2px 0}.chk-foot-link:hover{text-decoration:underline}.chk-empty{text-align:center;padding:26px 8px}.chk-empty-mark{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:color-mix(in srgb,var(--sev) 16%,transparent);color:var(--sev);font-size:24px;font-weight:700}.chk-empty h3{margin:0 0 6px;font-size:15px}.chk-empty p{margin:0 0 14px;color:var(--ink-soft);font-size:13px}.chk-empty-rules-label{font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.chk-empty-rules{list-style:none;padding:0;margin:0;font-size:12.5px;color:var(--ink-soft)}.chk-empty-rules li{padding:3px 0}.chk-marker{position:absolute;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;border:2px solid #fff;background:var(--sev);color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center;cursor:pointer;box-shadow:0 1px 4px #0f192859;z-index:24;padding:0}.chk-marker.is-active{outline:3px solid color-mix(in srgb,var(--sev) 45%,transparent)}.chk-marker-label{position:absolute;transform:translate(-50%,16px);padding:2px 8px;border-radius:10px;background:var(--panel);color:var(--ink);border:1px solid color-mix(in srgb,var(--sev) 60%,transparent);font-size:11px;font-weight:600;white-space:nowrap;pointer-events:none;box-shadow:0 1px 4px #0f192840;z-index:24}.tbtn{position:relative}.chk-badge{position:absolute;top:-3px;right:-3px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:var(--warn);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 2px var(--panel)}.chk-badge.tone-warn{background:var(--amber)}.statusbar .fit-ok{color:var(--ok);font-weight:700}.statusbar .fit-no{color:var(--warn);font-weight:700}.chk-settings{display:flex;flex-direction:column;gap:8px}.panel-settings .chk-settings{max-width:520px}.panel-settings .chk-cat-name{max-width:240px}.plan-dialog .panel-settings.zp-tab{flex:1 1 auto;min-height:0;overflow:hidden}.plan-dialog .zp-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:20px 22px}.plan-dialog .zp-scroll .chk-set-num{width:84px;flex:0 0 auto}.check-drawer .drawer-b{overflow-x:hidden}.check-drawer .chk-cat-name{min-width:0}.check-drawer .chk-len-field .inp{width:74px}.check-drawer .chk-cat-row{gap:4px}.chk-set-h{font-size:13px;margin:10px 0 2px;font-weight:700}.chk-set-hint{font-size:12px;color:var(--ink-soft);margin:0 0 4px}.chk-cat-list{display:flex;flex-direction:column;gap:6px}.chk-cat-row{display:flex;align-items:center;gap:6px}.chk-cat-head{display:flex;justify-content:flex-end;gap:6px;font-size:10.5px;color:var(--ink-soft);margin-bottom:-2px}.chk-cat-head .h-len{width:88px;flex:0 0 auto;padding-left:2px}.chk-cat-head .h-del{width:26px;flex:0 0 auto}.check-drawer .chk-cat-head{gap:4px}.check-drawer .chk-cat-head .h-len{width:74px}.chk-cat-name{flex:1 1 auto;min-width:60px}.chk-cat-del{border:0;background:none;color:var(--ink-soft);cursor:pointer;font-size:14px;padding:4px 6px}.chk-cat-del:hover:not(:disabled){color:var(--warn)}.chk-cat-del:disabled{opacity:.35;cursor:default}.chk-len-field .inp{width:88px}.chk-set-add{align-self:flex-start;border:1px dashed var(--line-strong, var(--line));background:none;color:var(--accent);border-radius:8px;padding:5px 10px;font-size:12.5px;cursor:pointer}.chk-set-check{display:flex;align-items:center;gap:7px;font-size:12.5px}.chk-set-num{width:62px}.chk-rules{display:flex;flex-direction:column;gap:10px}.chk-rules>.chk-set-hint{margin-bottom:2px}.chk-gcard{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--panel)}.chk-gcard.is-off{background:color-mix(in srgb,var(--ink-soft) 6%,var(--panel))}.chk-gcard-h{display:flex;align-items:center;gap:10px}.chk-gcard-title{font-weight:700;font-size:14px;flex:1;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.chk-lock-badge{font-size:11.5px;font-weight:600;color:var(--amber);white-space:nowrap}.chk-gcard-desc{font-size:12.5px;color:var(--ink-soft);margin:7px 0 0;line-height:1.5}.chk-gcard-meta{display:flex;align-items:center;gap:10px;margin-top:9px;font-size:12px;flex-wrap:wrap}.chk-gcard-count{color:var(--ink-soft)}.chk-count-error{color:var(--warn)}.chk-count-warn{color:var(--amber)}.chk-count-ok{color:var(--ok)}.chk-learn{margin-left:auto;color:var(--accent);font-weight:600;text-decoration:none;font-size:12.5px;white-space:nowrap}.chk-learn:hover{text-decoration:underline}.chk-glossary{display:block;margin-top:4px;color:var(--ink-soft);font-weight:600;text-decoration:none;font-size:12px;white-space:nowrap}.chk-glossary:hover{color:var(--accent);text-decoration:underline}.glossary-q{margin-left:1px;vertical-align:super;font-size:.72em;font-weight:700;color:var(--ink-soft);text-decoration:none;cursor:help}.glossary-q:hover{color:var(--accent)}.chk-gcard-mixed{font-size:11.5px;color:var(--amber);margin:6px 0 0;line-height:1.45}.chk-gcard-note{font-size:11.5px;color:var(--ink-soft);margin:8px 0 0;line-height:1.5}.chk-profile-note{margin-top:2px}.chk-note-link{border:0;background:none;padding:0;color:var(--accent);font:inherit;font-weight:600;cursor:pointer}.chk-note-link:hover{text-decoration:underline}.unit-wrap{position:relative;display:inline-flex}.unit-wrap>input{padding-right:30px}.unit-in{position:absolute;right:9px;top:50%;transform:translateY(-50%);color:var(--ink-soft);font-size:11.5px;pointer-events:none}.unit-wrap input::-webkit-outer-spin-button,.unit-wrap input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.unit-wrap input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.chk-gcard-limits{display:grid;grid-template-columns:1fr auto;gap:8px 10px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);font-size:12.5px}.chk-gcard-limits label{color:var(--ink-soft)}.chk-gcard-limits .chk-set-num{width:92px;text-align:right}.chk-gcard-reset{grid-column:1 / -1;justify-self:end;border:0;background:none;color:var(--accent);font-size:12px;cursor:pointer;padding:0}.chk-gcard-reset:hover{text-decoration:underline}.train-move,.train-grip{position:absolute;z-index:27;transform:translate(-50%,-50%);touch-action:none;cursor:grab}.train-move{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--accent);background:color-mix(in srgb,var(--accent) 14%,#fff);color:var(--accent);font-size:12px;line-height:1;display:grid;place-items:center;padding:0}.train-move:active{cursor:grabbing;background:var(--accent);color:#fff}.train-grip{width:14px;height:32px;border-radius:7px;border:1.5px solid var(--accent);background:color-mix(in srgb,var(--accent) 12%,#fff);cursor:ew-resize;padding:0}.train-grip:after{content:"";position:absolute;top:7px;right:4px;bottom:7px;left:4px;border-left:1.5px solid var(--accent);border-right:1.5px solid var(--accent);opacity:.8}.train-grip:focus-visible,.train-move:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.train-cut{position:absolute;z-index:28;transform:translate(-50%,-50%);width:20px;height:20px;border-radius:50%;border:1.5px solid transparent;background:transparent;padding:0;cursor:pointer;touch-action:none}.train-cut:after{content:"✂";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:11px;color:var(--accent);opacity:0;transition:opacity .12s ease}.train-cut:hover,.train-cut:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,#fff)}.train-cut:hover:after,.train-cut:focus-visible:after{opacity:1}.train-cut:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chk-trains-toggle{display:flex;align-items:center;gap:7px;font-size:12.5px;cursor:pointer}.chk-trains-toggle input{accent-color:var(--accent);width:14px;height:14px}.chk-routes-lock{margin-left:auto;flex:0 0 auto;font-size:10px;font-weight:700;color:#8a5a00;background:#fdf1df;border:1px solid #f0d9b0;padding:1px 7px;border-radius:999px;white-space:nowrap}.route-bar{position:absolute;left:76px;top:10px;z-index:26;max-width:300px;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:10px 12px;font-size:12px}.route-bar .rb-title{margin:0 0 8px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.route-bar .rb-hint{margin:0;color:var(--ink-soft)}.route-bar .rb-legend{display:flex;flex-direction:column;gap:5px}.route-bar .rb-legend span{display:inline-flex;align-items:center;gap:8px}.route-bar .rb-sw{width:15px;height:6px;border-radius:3px;flex:0 0 auto}.route-bar .rb-actions{margin-top:10px;display:flex;gap:8px}.route-bar .rb-flip{border:1px solid var(--line-strong);background:var(--accent);border-color:var(--accent);color:#fff;border-radius:10px;padding:6px 12px;font:inherit;font-size:12px;cursor:pointer}.route-bar .rb-flip:hover{filter:brightness(1.06)}.route-bar .rb-lock{margin-top:10px;display:flex;flex-direction:column;gap:4px;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;font:inherit;cursor:pointer}.route-bar .rb-lock:hover{border-color:var(--accent)}.route-bar .rb-lock-chip{align-self:flex-start;font-size:10px;font-weight:700;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,#fff);padding:2px 8px;border-radius:999px}.route-bar .rb-lock-body{color:var(--ink-soft);font-size:11.5px;line-height:1.45}.route-bar .rb-lock-cta{color:var(--accent);font-weight:600;font-size:12px}.chk-trains-hint{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid #f0d9a8;background:#fdf6e7;border-radius:10px;padding:9px 12px;margin-bottom:12px;cursor:pointer;font:inherit;color:#6b4e0e}.chk-trains-hint:hover{border-color:#e3bd66;background:#fcf0d6}.chk-trains-hint .cth-ic{font-size:16px;flex:0 0 auto}.chk-trains-hint .cth-tx{display:flex;flex-direction:column;gap:1px;font-size:12px;line-height:1.4;min-width:0}.chk-trains-hint .cth-tx b{font-size:12.5px;color:#59410a}.chk-trains-hint .cth-go{margin-left:auto;font-size:16px;color:#b98a1e;flex:0 0 auto}.train-firstuse-dim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:#1e293b52;display:flex;align-items:center;justify-content:center;padding:20px}.train-firstuse{background:var(--panel);border-radius:16px;box-shadow:var(--shadow);padding:24px 26px 18px;max-width:480px}.train-firstuse h2{margin:0 0 6px;font-size:17px}.train-firstuse p{margin:0 0 14px;color:var(--ink-soft);font-size:13px}.train-firstuse .tf-opt{display:flex;align-items:center;gap:14px;width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:#fff;cursor:pointer;text-align:left}.train-firstuse .tf-opt+.tf-opt{margin-top:8px}.train-firstuse .tf-opt:hover,.train-firstuse .tf-opt:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,#fff);outline:none}.train-firstuse .tf-t{font-weight:600;font-size:13px}.train-firstuse .tf-d{font-size:11.5px;color:var(--ink-soft)}.train-firstuse .tf-train{display:flex;align-items:flex-end;gap:2px;flex:0 0 130px}.train-firstuse .tf-loco{height:16px;border-radius:3px 6px 2px 2px;background:#3a4557}.train-firstuse .tf-wagon{height:12px;border-radius:2px;border:1px solid rgba(28,39,64,.3);background:#8b95a7}.train-firstuse .tf-wagon.gk,.train-firstuse .tf-wagon.gl{background:#9b7f63;border-color:#7c6248}.train-firstuse .tf-wagon.rz{background:#f2f5f9;position:relative}.train-firstuse .tf-wagon.rz:after{content:"";position:absolute;left:0;right:0;top:4px;height:3px;background:#cf3f4e}.train-firstuse .tf-wagon.nv{background:#aebccb}.train-firstuse .tf-later{margin-top:12px;border:0;background:none;color:var(--ink-soft);font-size:12px;cursor:pointer;padding:0}.train-firstuse .tf-later:hover{text-decoration:underline;color:var(--accent)}.fu-card{position:absolute;bottom:max(18px,var(--dock-clearance, 0px));left:50%;transform:translate(-50%);z-index:28;width:min(440px,calc(100% - 32px));background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:16px 18px 14px}.fu-head{display:flex;align-items:center;gap:12px;margin-bottom:6px}.fu-ico{font-size:26px;line-height:1;flex:none}.fu-title{margin:0;font-size:18px;font-weight:750;color:var(--ink)}.fu-body{margin:0 0 12px;font-size:15px;line-height:1.5;color:var(--ink-soft)}.fu-actions{display:flex;flex-wrap:wrap;gap:8px}.fu-btn{min-height:var(--tap);padding:0 18px;border-radius:12px;font-size:15px;font-weight:650;cursor:pointer;border:1px solid transparent}.fu-btn.primary{background:var(--accent);color:#fff}.fu-btn.primary:hover{filter:brightness(1.05)}.fu-btn.ghost{background:transparent;border-color:var(--line-strong);color:var(--ink-soft)}.fu-btn.ghost:hover{background:var(--bg);color:var(--ink)}.feature-tip{position:absolute;bottom:18px;right:18px;z-index:28;width:min(400px,calc(100% - 32px));background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:14px 16px 12px}.ft-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}.ft-ico{font-size:22px;line-height:1;flex:none}.ft-title{margin:0;font-size:16px;font-weight:750;color:var(--ink)}.ft-premium{margin-left:auto;font-size:11px;font-weight:800;color:var(--accent-ink);background:var(--accent-soft);border:1px solid var(--line-strong);border-radius:999px;padding:1px 8px}.ft-body{margin:0 0 10px;font-size:14px;line-height:1.45;color:var(--ink-soft)}.ft-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ft-btn{min-height:40px;padding:0 14px;border-radius:10px;font-size:14px;font-weight:650;cursor:pointer;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink)}.ft-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.ft-btn.primary:hover{filter:brightness(1.05)}.ft-btn.ghost{border-color:transparent;color:var(--ink-soft)}.ft-btn.ghost:hover{color:var(--ink);text-decoration:underline}.ft-more{margin-left:auto;font-size:13px;color:var(--accent-ink);text-decoration:none}.ft-more:hover{text-decoration:underline}.learn-card{position:absolute;bottom:18px;right:18px;z-index:29;width:min(360px,calc(100% - 32px));background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:14px 16px 12px}.lc-head{display:flex;align-items:center;gap:8px}.lc-eyebrow{flex:1;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.lc-title{margin:6px 0 2px;font-size:17px;font-weight:750;color:var(--ink)}.lc-sound,.lc-collapse{min-width:34px;min-height:34px;border:1px solid var(--line);background:var(--panel);border-radius:9px;cursor:pointer;color:var(--ink-soft);font-size:14px}.lc-sound:hover,.lc-collapse:hover{background:var(--bg)}.lc-dots{display:flex;gap:6px;margin:8px 0 2px}.lc-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--line-strong);background:transparent}.lc-dot.on{background:var(--ok, #2e9e4f);border-color:var(--ok, #2e9e4f)}.lc-dot.active{border-color:var(--accent)}.lc-hint,.lc-narrative{margin:4px 0 8px;font-size:13.5px;line-height:1.45;color:var(--ink-soft);background:var(--bg);border-radius:10px;padding:8px 10px}.lc-narrative{background:var(--accent-soft)}.lc-hintmore{display:inline-block;margin-bottom:8px;font-size:13px;color:var(--accent-ink)}.lc-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.lc-btn{min-height:38px;padding:0 12px;border-radius:10px;font-size:13.5px;font-weight:650;cursor:pointer;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink)}.lc-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.lc-btn.ghost{border-color:transparent;color:var(--ink-soft)}.lc-btn.ghost:hover{color:var(--ink);text-decoration:underline}.lc-sp{flex:1}.lc-done{text-align:center;padding:6px 0 2px}.lc-emoji{font-size:28px}.lc-donemsg{margin:4px 0 10px;font-size:15px;font-weight:700;color:var(--ink)}.learn-pill{position:absolute;bottom:18px;right:18px;z-index:29;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);cursor:pointer;font-weight:650;color:var(--ink)}.lp-ch{color:var(--accent-ink);font-weight:800}.lp-count{font-size:13px;color:var(--ink-soft)}.chk-switch{position:relative;width:40px;height:22px;flex-shrink:0;border:0;padding:0;background:none;cursor:pointer}.chk-switch-tr{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--line-strong);border-radius:11px;transition:background .15s}.chk-switch-kn{position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #00000040;transition:left .15s}.chk-switch.is-on .chk-switch-tr{background:var(--accent)}.chk-switch.is-on .chk-switch-kn{left:20px}.chk-switch.is-mixed .chk-switch-tr{background:repeating-linear-gradient(45deg,var(--accent),var(--accent) 4px,var(--line-strong) 4px,var(--line-strong) 8px)}.chk-switch.is-mixed .chk-switch-kn{left:11px}.chk-switch.is-locked{opacity:.5;cursor:not-allowed}.chk-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:11px}.chk-teaser{display:flex;flex-direction:column;align-items:flex-start}.chk-teaser-main{display:block;width:100%;text-align:left;border:0;background:none;cursor:pointer;padding:0;color:inherit;font:inherit}.chk-teaser-frozen{display:block;font-size:11.5px;color:var(--ink-soft);margin-top:4px}.chk-teaser-learn{margin:6px 0 0}.collab-avatars{display:flex;align-items:center;gap:4px;margin:0 10px}.collab-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:#fff;font-size:11px;font-weight:700;letter-spacing:.02em;border:2px solid var(--panel, #fff);box-shadow:0 0 0 1px #0000001f;cursor:default;-webkit-user-select:none;user-select:none}.collab-avatar.self{box-shadow:0 0 0 2px var(--accent)}.collab-avatar.viewer{opacity:.75}.collab-avatar .collab-area{position:absolute;top:100%;left:50%;transform:translate(-50%,1px);font-size:8.5px;font-weight:600;line-height:1;padding:1.5px 4px;border-radius:4px;background:inherit;color:#fff;white-space:nowrap;pointer-events:none;box-shadow:0 0 0 1px #0000001a}.collab-cursor{position:absolute;z-index:30;pointer-events:none;transform:translate(-1px,-1px)}.collab-cursor svg{display:block;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.35))}.collab-cursor-flag{position:absolute;left:12px;top:16px;color:#fff;font-size:10.5px;font-weight:600;line-height:1;padding:3px 6px;border-radius:4px 8px 8px;white-space:nowrap;box-shadow:0 1px 3px #00000040}.plate-h{position:absolute;transform:translate(-50%,-50%);z-index:23;box-sizing:border-box;transition:transform .08s ease-out,box-shadow .08s ease-out,border-color .08s ease-out}.plate-h:before{content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%)}.plate-handle-vtx{width:12px;height:12px;border-radius:2px;background:#fff;border:2px solid var(--accent);cursor:grab}.plate-handle-vtx.sel{background:var(--accent)}.plate-handle-bend{width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--accent);cursor:ns-resize}.plate-handle-edgemove{width:12px;height:12px;border-radius:3px;background:#fff;border:2px solid var(--accent);cursor:move}.plate-handle-plus{width:22px;height:22px;padding:0;border-radius:50%;background:#fff;border:2px solid var(--line-strong);cursor:pointer;display:grid;place-items:center;color:var(--accent);box-shadow:var(--shadow);z-index:25;pointer-events:auto;transition:transform .08s ease-out,box-shadow .08s ease-out,border-color .08s ease-out}.plate-handle-plus svg{display:block}.plate-handle-plus:before{width:34px;height:34px}.plate-handle-plus:hover,.plate-handle-plus:focus-visible{border-color:var(--accent);transform:translate(-50%,-50%) scale(1.2);box-shadow:0 0 0 5px var(--accent-soft),var(--shadow)}.plate-handle-plus:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.plate-handle-plus:active{transform:translate(-50%,-50%) scale(1.05)}.plate-handle-fillet{width:13px;height:13px;border-radius:50%;background:#fff;border:2px solid #16a34a;cursor:nwse-resize}.plate-handle-holemove{width:20px;height:20px;border-radius:50%;background:#fff;border:1.5px solid var(--line-strong);cursor:move;display:grid;place-items:center;color:var(--ink-soft)}.plate-handle-holemove svg{display:block}.plate-angchip{position:absolute;transform:translate(-50%,-50%);z-index:24;display:flex;align-items:stretch;height:22px;border-radius:11px;overflow:hidden;border:1px solid var(--line-strong);background:#fff;font:700 11px/1 var(--font, system-ui, sans-serif);box-shadow:var(--shadow)}.plate-angchip.locked{background:#0f172a;border-color:#0f172a}.plate-angchip .pc-val{display:grid;place-items:center;padding:0 6px 0 9px;color:#334155;cursor:text;-webkit-user-select:none;user-select:none}.plate-angchip.locked .pc-val{color:#fff}.plate-angchip .pc-lock{display:grid;place-items:center;width:24px;border:0;background:transparent;cursor:pointer;padding:0;font-size:11px;position:relative}.plate-angchip .pc-lock:before{content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%)}.plate-angchip .pc-lock:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.plate-angchip.blamed{box-shadow:0 0 0 3px var(--accent-soft),var(--shadow)}.plate-measlbl{position:absolute;transform:translate(-50%,-50%);z-index:24;padding:1px 5px;border-radius:6px;background:#eef1f6e0;color:#35435a;font:650 11.5px/1.5 var(--font, system-ui, sans-serif);cursor:text;-webkit-user-select:none;user-select:none;white-space:nowrap}.plate-measlbl:before{content:"";position:absolute;left:50%;top:50%;width:44px;height:34px;transform:translate(-50%,-50%)}.plate-measlbl:hover{color:var(--accent-ink);background:#e0e7f0f2}.plate-smoothbadge{position:absolute;transform:translate(-50%,-50%);z-index:23;color:#16a34a;font:800 13px/1 var(--font, system-ui, sans-serif);pointer-events:none}.plate-meas-edit{position:absolute;z-index:40;display:flex;align-items:center;gap:5px}.plate-meas-edit input{width:80px;height:34px;padding:0 8px;box-sizing:border-box;border:2px solid var(--accent);border-radius:8px;background:#fff;font:700 13px var(--font, system-ui, sans-serif);color:var(--ink)}.plate-dock .plate-dock-create{flex-direction:row;gap:8px;padding:10px 18px;font-size:13px;color:var(--accent-ink);min-width:0}.plate-dock .pd-dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:6px;vertical-align:-1px;border:1px solid rgba(0,0,0,.18)}.plate-pop .pd-color-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.plate-pop .pd-color-inp{width:56px;height:34px;padding:0;border:1px solid var(--line);border-radius:8px;background:transparent;cursor:pointer}.plate-pop .pd-color-hex{font:600 12px/1 ui-monospace,Consolas,monospace;color:var(--ink-soft);letter-spacing:.04em}.plate-pop .pd-swatches{display:flex;gap:8px;flex-wrap:wrap}.plate-pop .pd-swatch{width:34px;height:34px;border-radius:9px;border:2px solid rgba(0,0,0,.12);cursor:pointer;padding:0;position:relative}.plate-pop .pd-swatch:before{content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%)}.plate-pop .pd-swatch[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:2px}.plate-dock .pd-step{display:flex;flex-direction:column;align-items:center;align-self:center;gap:3px;margin:0 8px}.plate-dock .pd-cap{font-size:10.5px;font-weight:700;color:var(--ink-soft);line-height:1}.plate-dock .pd-step-row{display:flex;align-items:center;gap:5px}.plate-dock .pd-step-row button{width:30px;height:27px;border:1px solid var(--line-strong);background:#fff;border-radius:8px;font-size:16px;line-height:1;color:var(--ink);cursor:pointer;padding:0;transition:.12s}.plate-dock .pd-step-row button:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.plate-dock .pd-step-row b{min-width:54px;text-align:center;font-size:12px}.plate-pop{position:fixed;z-index:var(--z-popover);min-width:230px;padding:12px 14px;background:var(--panel, #fff);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #0f172a2e;font-size:13px}.plate-pop h5{display:flex;align-items:center;gap:6px;margin:0 0 8px;font:700 13px var(--font, system-ui, sans-serif);color:var(--ink)}.plate-pop .pp-title-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plate-pop .pp-title-edit{flex:none;display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--ink-soft);font-size:13px;line-height:1;cursor:pointer;transition:.12s}.plate-pop .pp-title-edit:hover{background:var(--accent-soft);color:var(--accent-ink)}.plate-pop .pp-title-edit:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.plate-pop .pd-build-opt{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:0;border-radius:8px;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}.plate-pop .pd-build-opt:hover{background:var(--accent-soft)}.plate-pop .pd-build-opt.is-on{background:var(--accent-soft);color:var(--accent-ink)}.plate-pop .pd-build-opt .pd-build-t{display:flex;flex-direction:column;gap:1px;min-width:0}.plate-pop .pd-build-opt .pd-build-s{font-size:11px;opacity:.72}.plate-pop .pp-title-inp{width:100%;height:32px;box-sizing:border-box;margin:0 0 8px;padding:0 9px;border:1px solid var(--accent);border-radius:8px;background:#fff;color:var(--ink);font:700 13px var(--font, system-ui, sans-serif)}.plate-pop .pp-title-inp:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.plate-pop .pp-row{display:flex;align-items:center;gap:9px;padding:5px 0}.plate-pop .pp-k{flex:1;color:var(--ink-soft)}.plate-pop .pp-v{font-weight:700}.plate-pop .pp-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;margin-top:7px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;font-weight:700;font-size:13px;color:var(--ink);cursor:pointer}.plate-pop .pp-btn{transition:.12s}.plate-pop .pp-btn:hover{background:#f3f5f9}.plate-pop .pp-btn.danger{color:#b91c1c}.plate-pop .pp-btn.danger:hover{background:#fde8e4;border-color:#ef6c4d;color:#b23a1d}.plate-pop .pp-hint{margin-top:4px;padding:7px 9px;border-radius:9px;background:var(--accent-soft);border:1px solid #d4e0fb;color:var(--accent-ink);font-size:11.5px}.plate-pop .pp-warn{color:#b45309;font-weight:600}.plate-seam{stroke:#16a34a;stroke-width:4;stroke-linecap:round}.plate-seam-lbl{fill:#16a34a;font:800 12px system-ui,sans-serif}.plate-snapaxis{stroke:var(--accent);stroke-width:1;stroke-dasharray:4 4;opacity:.7}.plate-snaptick{fill:var(--accent)}.canvas-wrap:fullscreen{width:100vw;height:100vh;background:var(--canvas-bg, #e7ebf2)}.canvas-wrap.fs-maximized{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-fullscreen);width:100vw;height:100vh;max-width:none;max-height:none}.statusbar .zoom button.fs{width:30px;display:grid;place-items:center;padding:0}.statusbar .zoom button.fs .ic{width:17px;height:17px}.plate-suggest-card{position:absolute;left:50%;bottom:52px;transform:translate(-50%);width:min(1100px,97vw);z-index:35;display:flex;align-items:stretch;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:10px 14px;box-shadow:var(--shadow);transition:opacity .2s}@media (hover: hover) and (pointer: fine){.plate-suggest-card:not(:hover):not(:focus-within):not(.fresh){opacity:.35}}.plate-suggest-card .psec{padding:2px 14px;display:flex;flex-direction:column;justify-content:center;min-width:0}.plate-suggest-card .psec+.psec{border-left:1px solid var(--line)}.plate-suggest-card h3{margin:0 0 2px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plate-suggest-card .sub{font-size:11px;color:var(--ink-soft);line-height:1.35;max-width:180px}.plate-suggest-card .pa-head{flex:0 1 232px;min-width:104px}.plate-suggest-card .pa-multi{margin-top:4px;font-size:11.5px;font-weight:700;color:var(--accent-ink)}.plate-suggest-card .pa-modes{gap:5px;flex:0 1 214px;min-width:118px}.plate-suggest-card .pa-mode{width:100%;min-height:40px;padding:5px 10px;text-align:left;cursor:pointer;border:1.5px solid var(--line-strong, var(--line));border-radius:10px;background:var(--panel);color:var(--ink-soft);font-size:10.5px}.plate-suggest-card .pa-mode b{display:block;font-size:12px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plate-suggest-card .pa-mode-sub{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plate-suggest-card .pa-mode.sel{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px #2563eb1a}.plate-suggest-card .pa-ctl{flex:1 1 300px;min-width:168px}.plate-suggest-card .srow{display:flex;align-items:center;gap:9px;padding:3px 0;font-size:12px}.plate-suggest-card .srow .lbl{width:100px;color:var(--ink-soft);font-weight:600}.plate-suggest-card .srow input[type=range]{flex:1;accent-color:var(--accent)}.plate-suggest-card .srow .val{width:54px;text-align:right;font-weight:750;font-variant-numeric:tabular-nums}.plate-suggest-card .pa-info{cursor:help;color:var(--accent-ink);margin-left:4px}.plate-suggest-card .pa-toggles{display:flex;align-items:center;gap:14px;padding:4px 0;min-width:0}.plate-suggest-card .pa-tgl{flex:0 1 auto;min-width:0;display:flex;align-items:center;gap:7px;border:0;background:none;padding:0;cursor:pointer;font:inherit;font-size:11.5px;color:var(--ink)}.plate-suggest-card .pa-tgl.off{opacity:.4;pointer-events:none}.plate-suggest-card .pa-tgl-l{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plate-suggest-card .pa-sw{position:relative;flex:0 0 auto;width:32px;height:18px}.plate-suggest-card .pa-sw-tr{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--line-strong, #d5dae3);border-radius:9px;transition:background .15s}.plate-suggest-card .pa-sw-kn{position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #00000040;transition:left .15s}.plate-suggest-card .pa-tgl.is-on .pa-sw-tr{background:var(--accent)}.plate-suggest-card .pa-tgl.is-on .pa-sw-kn{left:16px}.plate-suggest-card .pa-tgl:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}@media (max-width: 880px){.plate-suggest-card .sub,.plate-suggest-card .pa-mode-sub,.plate-suggest-card .pa-tgl-l{display:none}.plate-suggest-card .pa-head{min-width:78px}}.plate-suggest-card .pa-stats{display:flex;flex-direction:column;margin-top:3px;font-size:11.5px;color:var(--accent-ink)}.plate-suggest-card .pa-stats>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.45}.plate-suggest-card .pa-busy{color:var(--accent-ink);font-weight:750;animation:pa-busy-pulse 1s ease-in-out infinite}.plate-suggest-card .pa-busy:not(.on){visibility:hidden;animation:none}.plate-auto-chip .pac-busy{color:var(--accent-ink);font-weight:750;display:inline-block;min-width:1.15em;text-align:center;animation:pa-busy-pulse 1s ease-in-out infinite}.plate-auto-chip .pac-busy:not(.on){visibility:hidden;animation:none}@keyframes pa-busy-pulse{0%,to{opacity:1}50%{opacity:.45}}.plate-suggest-card .pa-stats .pa-empty{color:var(--ink-soft);font-style:italic}.plate-suggest-card .pa-btns{gap:7px;flex:0 1 230px;min-width:172px}.plate-suggest-card .pa-btns .btn{height:37px;padding:0 14px;border-radius:10px;cursor:pointer;border:1px solid var(--line-strong, var(--line));background:var(--panel);color:var(--ink);font-weight:750;font-size:12.5px}.plate-suggest-card .pa-btns .btn:hover{background:var(--accent-soft)}.plate-suggest-card .pa-btns .btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.plate-suggest-card .pa-btns .btn-done{font-weight:700}.plate-suggest-card .pa-btns .btn-shape{height:auto;min-height:37px;padding:6px 12px;text-align:left;border:1px dashed var(--line-strong, var(--line));border-radius:10px;font-weight:750}.plate-suggest-card .pa-btns .btn-shape:hover{border-color:var(--accent);background:var(--accent-soft)}.plate-suggest-card .pa-btns .btn-shape b{display:block;font-size:12.5px}.plate-suggest-card .pa-btns .btn-shape small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin-top:1px;font-size:10.5px;font-weight:600;color:var(--ink-soft);line-height:1.3;white-space:normal}.plate-suggest-card .pa-btns .btn-shape.pulse{animation:plate-auto-pulse .7s ease-out 2}@media (prefers-reduced-motion: reduce){.plate-suggest-card .pa-btns .btn-shape.pulse{animation:none}}.plate-suggest-card .pa-fixed{display:flex;align-items:center;gap:6px}.plate-suggest-card .pa-fixed label{display:flex;flex-direction:column;font-size:10.5px;color:var(--ink-soft)}.plate-suggest-card .pa-fixed input{width:68px;height:30px;border:1px solid var(--line-strong, var(--line));border-radius:8px;padding:0 6px;font:inherit}.plate-auto-chip{position:absolute;left:50%;bottom:52px;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:4px;padding:8px 16px;font:inherit;font-size:12.5px;background:var(--panel);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow);cursor:pointer;color:var(--ink)}.plate-auto-chip:hover{background:var(--accent-soft)}.plate-auto-chip .pac-zap{display:flex;align-items:center;gap:7px;font-weight:750;color:var(--accent-ink)}.plate-auto-chip .pac-mid{color:var(--ink-soft)}.plate-auto-chip .pac-adjust{color:var(--accent-ink);text-decoration:none;font-weight:700}.plate-auto-chip.pulse{animation:plate-auto-pulse .7s ease-out 2}@media (prefers-reduced-motion: reduce){.plate-auto-chip.pulse{animation:none}}@keyframes plate-auto-pulse{0%{box-shadow:0 0 #2563eb8c}to{box-shadow:0 0 0 14px #2563eb00}}:root{--ops-station: #1a6ef5;--ops-staging: #7c3aed}.ops-palette{display:flex;flex-direction:column;gap:8px;padding:4px 2px 2px}.ops-p-sub{font-size:11.5px;color:var(--ink-soft, #64748b);line-height:1.35}.ops-pcard{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1.5px solid var(--line, #e6e9ef);border-radius:12px;padding:9px 11px;background:var(--panel, #fff);cursor:pointer}.ops-pcard:hover:not(.soon){border-color:var(--accent, #1a6ef5)}.ops-pcard.loaded{border-color:var(--accent, #1a6ef5);box-shadow:0 0 0 2px #1a6ef52e}.ops-pcard.soon{opacity:.5;cursor:default}.ops-pcard .ops-pi{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-size:16px;flex-shrink:0;background:var(--accent-soft, #e8eefe)}.ops-pcard[data-kind=staging] .ops-pi{background:#f1e9fd}.ops-pcard .ops-pt{display:flex;flex-direction:column;gap:1px;min-width:0}.ops-pcard .ops-pt b{font-size:12.5px}.ops-pcard .ops-pd{font-size:10.5px;color:var(--ink-soft, #64748b)}.ops-pcard .ops-soon-tag{margin-left:auto;font-size:9px;font-weight:700;color:var(--ink-soft, #64748b);border:1px solid var(--line, #e6e9ef);border-radius:5px;padding:1px 5px;flex-shrink:0}.ops-p-hint{border:1px dashed var(--line-strong, #c3cbd6);border-radius:10px;padding:8px 10px;font-size:11px;color:var(--ink-soft, #64748b)}.ops-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:28;pointer-events:none}.ops-layer>*{pointer-events:auto}.ops-label{position:absolute;transform:translate(-6px,-50%);display:inline-flex;align-items:center;gap:6px;border:0;border-radius:14px;padding:3px 10px;font:700 12px system-ui,sans-serif;color:#fff;cursor:pointer;box-shadow:0 1px 4px #0f192838;white-space:nowrap;background:var(--ops-station)}.ops-label.staging{background:var(--ops-staging)}.ops-label.stale{background:#94a3b8}.ops-label.sel{outline:2px solid #fff;box-shadow:0 0 0 3px #1a6ef580}.ops-label .ops-label-kind{font-size:10px;opacity:.85;font-weight:600}.ops-label .ops-badge{display:inline-flex;align-items:center;gap:2px;margin-left:2px;padding:1px 6px;border-radius:10px;background:#ffffff38;color:#fff;font-size:11px;font-weight:800;cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff8c;white-space:nowrap}.ops-label .ops-badge.sev-error{background:var(--sev-error, #dc2626);box-shadow:0 0 0 2px #ffffffe6}.ops-label .ops-badge.sev-warn{background:var(--sev-warn, #e08700);box-shadow:0 0 0 2px #ffffffe6}.ops-label .ops-badge.sev-info{background:var(--accent, #1a6ef5);box-shadow:0 0 0 2px #ffffffe6}.ops-label .ops-badge:hover{filter:brightness(1.08)}.ops-layer.ambient,.ops-layer.ambient>*{pointer-events:none}.ops-label.ambient{transform:translate(-6px,-50%) scale(.85);transform-origin:left center;opacity:.7;cursor:default;box-shadow:0 1px 3px #0f192829}.ops-chip{position:absolute;transform:translate(-6px,-50%);display:inline-flex;align-items:center;gap:6px;background:var(--panel, #fff);border:1.5px solid var(--line, #e6e9ef);border-radius:16px;padding:4px 11px;font:700 12px system-ui,sans-serif;color:var(--ink, #0f172a);cursor:pointer;box-shadow:0 2px 8px #0f192824;white-space:nowrap}.ops-chip:hover{border-color:var(--accent, #1a6ef5)}.ops-chip .ops-chip-q{width:17px;height:17px;border-radius:50%;background:var(--warn, #e08700);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px}.ops-done{position:absolute;transform:translate(-50%,6px);display:inline-flex;align-items:center;gap:8px;background:var(--panel, #fff);border:1.5px solid var(--ok, #189a4a);border-radius:16px;padding:5px 12px;font:700 12.5px system-ui,sans-serif;box-shadow:0 2px 8px #0f192829;white-space:nowrap}.ops-done button{border:0;border-radius:10px;padding:4px 12px;font:inherit;cursor:pointer}.ops-done .ops-done-go{background:var(--ok, #189a4a);color:#fff}.ops-done .ops-done-esc{background:var(--hover, #f2f4f7);color:var(--ink-soft, #64748b)}.ops-pill{position:absolute;bottom:16px;left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:9px;max-width:70%;background:#101826;color:#fff;border-radius:20px;padding:8px 16px;font:600 12.5px system-ui,sans-serif;box-shadow:0 4px 14px #0f19284d}.ops-pill .ops-pill-dot{width:8px;height:8px;border-radius:50%;background:var(--warn, #e08700);flex-shrink:0}.ops-pill.shake{animation:opsPillShake .4s}@keyframes opsPillShake{0%,to{transform:translate(-50%)}25%{transform:translate(calc(-50% - 7px))}75%{transform:translate(calc(-50% + 7px))}}.opanel{position:absolute;top:0;right:0;bottom:0;width:340px;z-index:27;background:var(--panel);border-left:1px solid var(--line);box-shadow:var(--shadow);display:flex;flex-direction:column;padding:13px 13px 0;overflow-y:auto}.opanel-h{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;margin-bottom:10px}.opanel-h .opanel-title{flex:1 1 auto}.opanel-overview{border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);border-radius:8px;padding:4px 9px;font-size:11.5px;cursor:pointer}.opanel-overview:hover{border-color:var(--accent);color:var(--accent-ink)}.op-score{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:13px;padding:9px 12px;margin-bottom:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 5%,var(--panel)),var(--panel))}.op-score-ring{flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:var(--bg);display:grid;place-items:center}.op-score-ring b{font-size:13px;color:var(--muted)}.op-score-v{font-weight:800;font-size:13px}.op-score-s{font-size:11px;color:var(--muted)}.op-score-tag{margin-left:auto;align-self:flex-start;font-size:9px;font-weight:700;color:var(--premium, #7c3aed);border:1px solid #ddd0f5;border-radius:5px;padding:1px 5px}.op-sec{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin:10px 0 7px}.op-sec-lvl{text-transform:none;letter-spacing:0}.op-filter{display:inline-flex;align-items:center;gap:6px;margin-bottom:8px;padding:3px 4px 3px 10px;border-radius:999px;background:color-mix(in srgb,var(--ops-staging, #7c3aed) 9%,var(--panel));border:1px solid #ddd0f5;font-size:12px;font-weight:600}.op-filter-x{border:0;background:none;color:var(--muted);cursor:pointer;font-size:13px;line-height:1;padding:2px 5px;border-radius:50%}.op-filter-x:hover{color:var(--sev-error, #dc2626);background:var(--accent-soft)}.op-empty{font-size:12px;color:var(--muted);padding:4px 2px 10px}.op-note{margin-top:auto;margin-bottom:13px;border:1px dashed var(--line);border-radius:10px;padding:8px 10px;font-size:11px;color:var(--muted);line-height:1.5}@media (max-width: 620px){.opanel{width:min(92%,420px)}}.ops-pop{position:absolute;z-index:33;width:262px;background:var(--panel, #fff);border-radius:14px;box-shadow:0 10px 32px #0f192847;padding:13px;font:400 13px system-ui,sans-serif}.ops-pop h4{font-size:13px;margin:0 0 8px}.ops-pop .ops-types{display:flex;gap:6px;margin-bottom:9px}.ops-pop .ops-type{flex:1;display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;border:1.5px solid var(--line, #e6e9ef);background:var(--panel, #fff);border-radius:9px;padding:6px 3px;font:700 11px system-ui,sans-serif;color:var(--ink, #0f172a);cursor:pointer}.ops-pop .ops-type.sel{border-color:var(--accent, #1a6ef5);background:var(--accent-soft, #e8eefe)}.ops-pop .ops-type.no{color:var(--ink-soft, #64748b)}.ops-pop .ops-pop-name{width:100%;box-sizing:border-box;border:1.5px solid var(--line, #e6e9ef);border-radius:9px;padding:7px 10px;font:600 13px system-ui,sans-serif;margin-bottom:9px}.ops-pop .ops-pop-name:focus{outline:none;border-color:var(--accent, #1a6ef5)}.ops-pop .ops-pop-row{display:flex;gap:7px}.ops-pop .ops-pop-ok{flex:1;border:0;background:var(--accent, #1a6ef5);color:#fff;border-radius:9px;padding:8px;font:700 12.5px system-ui,sans-serif;cursor:pointer}.ops-pop .ops-pop-later{border:0;background:var(--hover, #f2f4f7);color:var(--ink-soft, #64748b);border-radius:9px;padding:8px 12px;font:700 12.5px system-ui,sans-serif;cursor:pointer}.action-dock.ops-dock{gap:8px;flex-wrap:wrap}.action-dock.ops-dock.stale{opacity:.72}.ops-dock .ops-dock-t{font-size:15px}.ops-dock .ops-dock-name{border:1.5px solid var(--line, #e6e9ef);border-radius:8px;padding:5px 9px;font:600 12.5px system-ui,sans-serif;width:150px}.ops-dock .ops-dock-seg{display:inline-flex;background:var(--hover, #f2f4f7);border-radius:9px;padding:2px}.ops-dock .ops-dock-seg button{border:0;background:none;border-radius:7px;padding:4px 10px;font:700 12px system-ui,sans-serif;color:var(--ink-soft, #64748b);cursor:pointer}.ops-dock .ops-dock-seg button.sel{background:var(--panel, #fff);color:var(--ink, #0f172a);box-shadow:0 1px 2px #0f19281f}.ops-dock .ops-dock-btn{border:1px solid var(--line, #e6e9ef);background:var(--panel, #fff);border-radius:8px;padding:5px 11px;font:600 12.5px system-ui,sans-serif;cursor:pointer}.ops-dock .ops-dock-btn:hover{background:var(--hover, #f2f5f9)}.ops-dock .ops-dock-btn.danger{color:var(--error, #dc2626)}.ops-dock.ops-dock-multi .ops-dock-count{font:700 12.5px system-ui,sans-serif;color:var(--ink, #0f172a);padding:0 4px}.height-label{position:absolute;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:4px;pointer-events:none;z-index:6;white-space:nowrap}.height-anchor-glyph{width:9px;height:9px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 1.5px var(--panel)}.height-anchor--manual .height-anchor-glyph{background:var(--select)}.height-anchor--auto .height-anchor-glyph{background:transparent;border:1.5px solid var(--ink-soft);width:8px;height:8px}.height-anchor--warn .height-anchor-glyph{background:var(--warn)}.height-anchor-val{font:600 11px/1 system-ui,sans-serif;color:var(--ink);background:var(--panel);border:1px solid var(--line);padding:2px 6px;border-radius:6px;box-shadow:var(--shadow-soft)}.height-anchor--auto .height-anchor-val{display:none}.height-label.is-near{z-index:7}.height-anchor--auto.is-near .height-anchor-val{display:inline}.height-anchor-hint{position:absolute;top:calc(100% + 5px);left:50%;transform:translate(-50%);font:500 10.5px/1.25 system-ui,sans-serif;color:var(--ink-soft);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:3px 7px;box-shadow:var(--shadow-soft);white-space:nowrap}.height-anchor--warn .height-anchor-glyph{animation:height-anchor-pulse 1.15s ease-in-out infinite}@keyframes height-anchor-pulse{0%,to{box-shadow:0 0 0 1.5px var(--panel),0 0 color-mix(in srgb,var(--warn) 55%,transparent)}50%{box-shadow:0 0 0 1.5px var(--panel),0 0 0 5px color-mix(in srgb,var(--warn) 0%,transparent)}}@media (prefers-reduced-motion: reduce){.height-anchor--warn .height-anchor-glyph{animation:none}}.height-marker{position:absolute;transform:translate(-50%,-50%);font:600 10.5px/1 system-ui,sans-serif;color:#fff;padding:1px 6px;border-radius:999px;white-space:nowrap;pointer-events:none;z-index:6;box-shadow:var(--shadow-soft)}.height-marker.ok{background:var(--ok)}.height-marker.warn{background:#d9a514}.height-marker.bad{background:var(--warn)}.build-rise-pill{position:absolute;transform:translate(-50%,-160%);font:600 11px/1 system-ui,sans-serif;color:#fff;padding:2px 7px;border-radius:999px;white-space:nowrap;pointer-events:none;z-index:7;box-shadow:var(--shadow-soft)}.build-rise-pill.ok{background:var(--ok)}.build-rise-pill.warn{background:#d9a514}.build-rise-pill.bad{background:var(--warn)}.height-lift-label{position:absolute;transform:translate(-50%,-220%);font:700 12px/1 system-ui,sans-serif;color:#fff;background:var(--select);border-radius:6px;padding:3px 7px;white-space:nowrap;pointer-events:none;z-index:8;box-shadow:var(--shadow-soft)}.height-mode-chip{position:absolute;left:50%;top:12px;transform:translate(-50%);z-index:31;display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px 8px 6px 12px;font:600 12.5px system-ui,sans-serif;color:var(--ink)}.height-mode-chip .hmc-ico{display:inline-flex;align-items:center;font-size:16px;line-height:1;color:var(--accent-ink)}.height-mode-chip .hmc-label{white-space:nowrap;font-weight:700}.height-mode-chip .hmc-legend{display:flex;flex-direction:column;gap:2px;min-width:120px}.height-mode-chip .hmc-bar{height:10px;border-radius:5px;background:var(--line)}.height-mode-chip .hmc-range{display:flex;justify-content:space-between;font:10px/1 system-ui;color:var(--ink-soft)}.height-mode-chip .hmc-sev{display:flex;gap:5px}.height-mode-chip .hmc-sev .sev{font:600 10px/1 system-ui;color:#fff;padding:2px 6px;border-radius:999px}.height-mode-chip .hmc-sev .sev.ok{background:var(--ok)}.height-mode-chip .hmc-sev .sev.warn{background:#d9a514}.height-mode-chip .hmc-sev .sev.bad{background:var(--warn)}.height-mode-chip .hmc-exit{width:26px;height:26px;border-radius:50%;border:1px solid var(--line-strong);background:#fff;color:var(--ink);font-size:14px;line-height:1;cursor:pointer;flex:none}.height-mode-chip .hmc-exit:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.action-dock .ctx-height-attr .cha-k{color:var(--ink-soft);font-weight:600}.action-dock .ctx-height-attr .cha-v{font-weight:800}.action-dock .ctx-height-attr .cha-v.sev-ok{color:var(--ok)}.action-dock .ctx-height-attr .cha-v.sev-warn{color:#d9a514}.action-dock .ctx-height-attr .cha-v.sev-bad{color:var(--warn)}.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:9px;overflow:hidden;background:var(--bg)}.seg button{border:0;background:transparent;padding:6px 12px;font:600 12.5px/1 system-ui;color:var(--ink-soft);cursor:pointer}.seg button+button{border-left:1px solid var(--line-strong)}.seg button.on{background:var(--accent);color:#fff}.hprofile{position:absolute;left:calc(50% + (var(--stage-inset-left) - var(--stage-inset-right)) / 2);bottom:52px;transform:translate(-50%);z-index:21;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;width:min(1180px,max(340px,calc(100% - var(--stage-inset-left) - var(--stage-inset-right) - 24px)));overflow:hidden;transition:opacity .2s}@media (hover: hover) and (pointer: fine){.hprofile:not(:hover):not(:focus-within):not(.fresh):not(.live){opacity:.35}}.hprofile-h{display:flex;align-items:center;gap:14px;padding:4px 12px;border-bottom:1px solid var(--line)}.hprofile-h .ttl{font:700 13px/1 system-ui;white-space:nowrap}.hprofile-h .x{margin-left:auto;width:26px;height:26px;border:0;background:var(--bg);border-radius:8px;color:var(--ink-soft);cursor:pointer;font-size:16px;flex:0 0 auto}.hprofile-h .x:hover{background:var(--line)}.hprofile-ramp{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:12px/1 system-ui;color:var(--ink-soft);min-width:0}.hprofile-ramp .inp{width:76px;height:26px}.hprofile-ramp .btn.apply{height:24px;padding:0 10px;font-size:12px}.hprofile-ramp .hprof-nudge{display:inline-flex;gap:2px}.hprofile-ramp .hprof-nudge .btn{height:24px;width:24px;padding:0;font-size:10px}.hprofile-h .btn.hprof-route,.hprofile-h .btn.hprof-helix{height:24px;padding:0 10px;font-size:11.5px;white-space:nowrap}.hprofile-scroll{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}.hprofile-svg{display:block;padding:2px 0 0;touch-action:pan-x}.hprofile-foot{padding:3px 12px 6px;font:11.5px/1.4 system-ui;color:var(--ink-soft)}.hprofile-foot .warn{color:var(--warn);font-weight:600}.hprof-sb-strip{opacity:.92}.hprof-sb-mile line{stroke:var(--line)}.hprof-sb-mile text{fill:var(--ink)}.hprof-sb-cursor>line{stroke:var(--ink);opacity:.55;stroke-width:1.1}.hprof-sb-cursor>circle{fill:var(--ink);stroke:var(--panel);stroke-width:2}.hprof-sb-chip rect{fill:var(--ink);opacity:.9}.hprof-sb-chip text{fill:var(--bg);font:10.5px/1 system-ui;font-variant-numeric:tabular-nums}.hprof-knick-wrap{width:100%}.hprof-knick-wrap>input{padding-right:26px}.hprofile-h .btn.hprof-chain{height:24px;padding:0 10px;font-size:11.5px;white-space:nowrap;border:1.5px dashed var(--accent);color:var(--accent-ink);background:var(--accent-soft);border-radius:999px}.hprofile-h .btn.hprof-chain.on{border-style:solid;background:var(--accent);color:#fff}.hprof-trasse-band{fill:var(--accent-soft);opacity:.55}.hprof-partner{fill:none;stroke:var(--accent-ink);stroke-width:1.4;stroke-dasharray:6 4;opacity:.8}.hprof-warn-ring{fill:none;stroke:var(--warn);stroke-width:2.5;animation:hprof-ring-pulse 1.15s ease-in-out infinite;cursor:help}.hprof-warn-ring.hprof-warn-soft{stroke:#d9a514;stroke-width:2;animation:none}@keyframes hprof-ring-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion: reduce){.hprof-warn-ring{animation:none}}.hprof-baseline line{stroke:var(--line);stroke-dasharray:4 4}.hprof-baseline text{fill:var(--ink-soft);font:9px/1 system-ui,sans-serif}.hprof-knick-input{width:100%;box-sizing:border-box;height:24px;padding:2px 5px;font:600 12px/1 system-ui,sans-serif;color:var(--ink);background:var(--panel);border:1px solid var(--accent);border-radius:6px;box-shadow:var(--shadow-soft)}.pv-warn{font:600 12px/1.35 system-ui;color:#b58112}.pv-warn.err{color:var(--warn)}.glp-preview dd.warn{color:#b58112}.helix-drawer .form{padding:0}.helix-drawer .helix-hint{font:500 13px/1.5 system-ui;color:var(--ink-soft);margin:4px 0 0}.helix-drawer .helix-target{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;flex-wrap:wrap}.helix-drawer .helix-target>.lbl{white-space:nowrap;flex:0 0 auto}.helix-drawer .helix-target .helix-anchor{margin-left:auto}.helix-drawer .helix-anchor{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-strong);background:var(--bg);border-radius:999px;padding:4px 11px;font:600 12px/1.3 system-ui;color:var(--ink-soft);cursor:pointer}.helix-drawer .helix-anchor:hover{border-color:var(--accent);color:var(--accent-ink)}.helix-drawer .helix-pair{flex:0 0 auto;height:26px;padding:0 10px;font-size:12px;white-space:nowrap;border:1px dashed var(--line-strong);border-radius:999px;background:var(--panel);color:var(--ink-soft)}.helix-drawer .helix-pair.on{border-style:solid;border-color:var(--accent);background:var(--accent);color:#fff}.helix-drawer .helix-pair:not(.on):hover{border-color:var(--accent);color:var(--accent-ink)}.helix-drawer .helix-anchor-ring{width:12px;height:12px;box-sizing:border-box;border:2.5px solid var(--accent);border-radius:50%;background:#2563eb1f;flex:0 0 auto}.helix-drawer .helix-edit-info{font:600 12.5px/1.4 system-ui;color:var(--accent-ink)}.helix-form .lbl-row{justify-content:space-between;align-items:center;margin-bottom:6px}.helix-form .lbl-row .lbl{margin-bottom:0}.helix-form .seg{display:flex;width:100%}.helix-form .seg button{flex:1 1 0;white-space:nowrap;padding:7px 6px}.helix-drawer .unit-wrap>input.helix-num{width:96px;height:30px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;color:var(--ink);font:600 13px/1 system-ui;text-align:right;padding:0 28px 0 8px}.helix-drawer .helix-num:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.helix-form input[type=range]{width:100%;margin:2px 0 0;accent-color:var(--accent)}.helix-drawer .helix-check{display:flex;align-items:center;gap:7px;margin-top:6px;font:500 12.5px/1.3 system-ui;color:var(--ink-soft);cursor:pointer}.helix-drawer .helix-check.dim{opacity:.5}.helix-drawer .helix-check input{margin:0}.helix-drawer .helix-dir{display:flex;align-items:center;gap:12px}.helix-drawer .helix-dir .field{flex:1;min-width:0}.helix-drawer .helix-dir .helix-check{margin-top:0;flex:0 0 auto}.helix-drawer .helix-report{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.helix-drawer .glp-preview{margin-top:0}.helix-drawer .pv-warn{margin-top:8px}.helix-drawer .helix-insert{width:100%;margin-top:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.helix-end-marker{position:absolute;width:22px;height:22px;transform:translate(-50%,-50%);border:3px solid var(--accent);border-radius:50%;background:#2563eb1f;box-shadow:0 0 0 2px var(--panel);cursor:pointer;padding:0;z-index:8}.helix-end-marker:hover{background:#2563eb4d}.view3d-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;background:#eef2f7}.view3d-tool-hint{position:absolute;left:50%;bottom:18px;transform:translate(-50%);display:flex;align-items:center;gap:8px;max-width:min(560px,calc(100% - 32px));padding:7px 10px 7px 14px;border-radius:999px;background:#ffffffeb;border:1px solid var(--line, #d8dee8);box-shadow:0 2px 10px #141e321f;font-size:13px;line-height:1.35;color:var(--ink-2, #48505c);pointer-events:none}.view3d-tool-hint-x{pointer-events:auto;flex:0 0 auto;width:22px;height:22px;border:0;border-radius:50%;background:transparent;color:var(--ink-3, #6b7280);font-size:16px;line-height:1;cursor:pointer}.view3d-tool-hint-x:hover{background:#141e3212;color:var(--ink, #23282f)}.top-chips{position:absolute;top:12px;right:16px;z-index:22;display:flex;align-items:center;gap:8px;pointer-events:none}.top-chips>*{pointer-events:auto}.top-chips-slot{display:contents}.top-chips-slot>*{pointer-events:auto}.view3d-toggle{z-index:21}.view3d-toggle[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}.view3d-modebar{display:flex;align-items:center;gap:2px;background:color-mix(in srgb,var(--panel, #fff) 92%,transparent);border:1px solid var(--line, #e6e9ef);border-radius:8px;padding:3px;box-shadow:var(--shadow)}.view3d-modebar .pip3d-btn[aria-pressed=true]{background:var(--accent-soft, #e8eefe);color:var(--accent-ink, #1d4ed8)}.view3d-compass{position:absolute;right:16px;bottom:104px;z-index:21;width:40px;height:40px;border-radius:50%;border:1px solid rgba(0,0,0,.14);background:#ffffffe6;box-shadow:0 1px 3px #00000038;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}body.dock-open .view3d-compass{bottom:calc(var(--dock-clearance) + 62px)}.flex-use-chip{padding:6px 10px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#334155;font:500 12px system-ui,sans-serif;cursor:pointer;white-space:nowrap;box-shadow:0 12px 26px -8px #1e293b38}.flex-use-chip.on{border-color:#059669;background:#059669;color:#fff}.view3d-toggle.active{background:var(--accent);color:#fff;border-color:var(--accent)}.pip3d{position:absolute;right:16px;bottom:92px;z-index:19;width:340px;height:240px;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.pip3d-head{display:flex;align-items:center;gap:4px;padding:4px 6px 4px 10px;border-bottom:1px solid var(--line);font:700 12px/1 system-ui,sans-serif;color:var(--ink)}.pip3d-title{flex:1 1 auto;display:flex;align-items:center;gap:6px}.pip3d-lock{font-size:12px;opacity:.85}.pip3d-btn{flex:0 0 auto;width:24px;height:24px;display:grid;place-items:center;border:none;background:transparent;border-radius:6px;cursor:pointer;padding:0;font-size:14px;color:var(--ink-soft)}.pip3d-btn:hover{background:var(--hover, rgba(0,0,0,.06));color:var(--ink)}.pip3d-btn .ic{width:16px;height:16px;display:block}.pip3d-body{flex:1 1 auto;position:relative;min-height:0}.view3d-split-pane{position:absolute;z-index:18;background:#eef2f7;overflow:hidden}.canvas-wrap{--sb-h: 40px}.canvas-wrap.split-v .canvas-stage{right:auto;width:calc(var(--v3d-2d, .5) * 100%);bottom:var(--sb-h)}.canvas-wrap.split-v .view3d-split-pane{top:0;bottom:var(--sb-h);right:0;left:calc(var(--v3d-2d, .5) * 100%)}.canvas-wrap.split-h .canvas-stage{bottom:auto;height:calc(var(--v3d-2d, .5) * 100%)}.canvas-wrap.split-h .view3d-split-pane{left:0;right:0;bottom:var(--sb-h);top:calc(var(--v3d-2d, .5) * 100%)}.view3d-split-divider{position:absolute;z-index:18;background:transparent}.view3d-split-divider:after{content:"";position:absolute;background:var(--line, #d5dae3)}.view3d-split-divider:hover:after,.view3d-split-divider:active:after{background:var(--accent, #2563eb)}.canvas-wrap.split-v .view3d-split-divider{top:0;bottom:var(--sb-h);width:12px;left:calc(var(--v3d-2d, .5) * 100%);transform:translate(-50%);cursor:col-resize}.canvas-wrap.split-v .view3d-split-divider:after{top:0;bottom:0;left:50%;width:2px;transform:translate(-50%)}.canvas-wrap.split-h .view3d-split-divider{left:0;right:0;height:12px;top:calc(var(--v3d-2d, .5) * 100%);transform:translateY(-50%);cursor:row-resize}.canvas-wrap.split-h .view3d-split-divider:after{left:0;right:0;top:50%;height:2px;transform:translateY(-50%)}.pip3d-body>div{width:100%;height:100%;min-height:0!important}.layer-base{color:var(--accent-ink);font-weight:600}.profile-marker{position:absolute;width:26px;height:26px;transform:translate(-50%,-50%);border:3px solid var(--accent);border-radius:50%;box-shadow:0 0 0 2px var(--panel);pointer-events:none;z-index:8;animation:profileMarkerPulse 1.1s ease-out infinite}@keyframes profileMarkerPulse{0%{box-shadow:0 0 0 2px var(--panel),0 0 #2563eb73}70%{box-shadow:0 0 0 2px var(--panel),0 0 0 12px #2563eb00}to{box-shadow:0 0 0 2px var(--panel),0 0 #2563eb00}}.profile-marker-partner{position:absolute;width:14px;height:14px;transform:translate(-50%,-50%);border:2.5px solid var(--accent);border-radius:50%;box-shadow:0 0 0 2px var(--panel);pointer-events:none;z-index:8}.scrub-chip{position:absolute;transform:translate(-50%,-175%);pointer-events:none;z-index:8;background:var(--ink);color:var(--bg);border-radius:6px;padding:2px 7px;font:600 11px/1.35 system-ui;white-space:nowrap;font-variant-numeric:tabular-nums;box-shadow:0 1px 4px #0f172a40}.spq{position:absolute;top:0;right:0;bottom:0;width:340px;z-index:25;background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;overflow:auto;box-shadow:-8px 0 24px #0f172a0a}.spq-h{display:flex;align-items:center;gap:8px;padding:14px 15px 4px;font-weight:750;font-size:15px}.spq-h-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spq-sw{position:relative;width:38px;height:21px;flex:0 0 auto;border:0;padding:0;background:none;cursor:pointer}.spq-sw-tr{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--line-strong, #d5dae3);border-radius:11px;transition:background .15s}.spq-sw-kn{position:absolute;top:2px;left:2px;width:17px;height:17px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #00000040;transition:left .15s}.spq-sw.is-on .spq-sw-tr{background:var(--accent)}.spq-sw.is-on .spq-sw-kn{left:19px}.spq-sw:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:11px}.spq-x{width:26px;height:26px;border:0;border-radius:7px;background:transparent;flex:0 0 auto;color:var(--ink-soft, #64748b);font-size:17px;line-height:1;cursor:pointer}.spq-x:hover{background:#f3f5f9;color:var(--ink)}.spq-tab{position:absolute;top:50%;right:0;transform:translateY(-50%);z-index:25;display:flex;flex-direction:column;align-items:center;gap:8px;width:26px;padding:14px 0;border:1px solid var(--line);border-right:0;border-radius:10px 0 0 10px;background:var(--panel);box-shadow:-6px 0 18px #0f172a0f;color:var(--ink-soft, #64748b);font-size:12px;font-weight:750;cursor:pointer}.spq-tab:hover{color:var(--ink);background:#f3f5f9}.spq-tab .spq-tab-t{writing-mode:vertical-rl;letter-spacing:.04em}.spq-sub{padding:0 15px 12px;color:var(--ink-soft, #64748b);font-size:12.5px;border-bottom:1px solid var(--line)}.spq-sec{padding:13px 15px;border-bottom:1px solid var(--line)}.spq-sec h4{margin:0 0 10px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft, #64748b);display:flex;align-items:center;gap:7px}.spq-lbl{flex:1;color:var(--ink)}.spq-lbl small{display:block;color:var(--ink-soft, #64748b);font-size:11px}.spq-enable{display:flex;flex-direction:column;gap:8px}.spq-elbl{display:block;min-width:0}.spq-elbl b{display:block;font-size:13px;font-weight:750;line-height:1.3;color:var(--ink)}.spq-elbl small{display:block;margin-top:2px;font-size:11.5px;line-height:1.35;color:var(--ink-soft, #64748b);overflow-wrap:anywhere}.spq-step{display:inline-flex;align-items:center;border:1px solid var(--line-strong, #d5dae3);border-radius:8px;overflow:hidden}.spq-step button{width:28px;height:30px;border:0;background:var(--panel);font-size:16px;color:var(--ink-soft, #64748b);cursor:pointer}.spq-step button:hover{background:#f3f5f9}.spq-step b{min-width:62px;text-align:center;font-size:12.5px}.spq-seg{display:flex;background:#f2f4f7;border-radius:10px;padding:3px;gap:2px;width:100%}.spq-seg button{flex:1;border:0;background:none;padding:7px 6px;border-radius:8px;font-weight:700;font-size:12px;cursor:pointer;color:var(--ink-soft, #64748b)}.spq-seg button.sel{background:var(--panel);color:var(--ink);box-shadow:0 1px 3px #0f19281f}.spq-seg.accent button.sel{color:var(--accent-ink, #1d4ed8)}.spq-hint{background:var(--accent-soft, #e8eefe);border:1px solid #d4e0fb;border-radius:9px;padding:7px 9px;font-size:11.5px;color:var(--accent-ink, #1d4ed8);margin-top:9px}.spq-hint.amber{background:#fdf0db;border-color:#f3d9a6;color:#b45309}.spq-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:40px;border:1px solid var(--line-strong, #d5dae3);border-radius:10px;background:var(--panel);font-weight:700;font-size:13px;color:var(--ink);cursor:pointer;margin-top:8px;position:relative}.spq-btn:hover{background:#f3f5f9}.spq-btn.primary{background:var(--accent, #2563eb);border-color:var(--accent, #2563eb);color:#fff}.spq-btn.primary:hover{background:#1d4ed8}.spq-tagp{position:absolute;right:9px;font-size:10px;font-weight:800;color:#7c3aed;border:1px solid #ddd0f5;background:#f6f1fd;border-radius:5px;padding:1px 6px}.spq-btn.primary .spq-tagp{background:#ede9fe;border-color:#c4b5fd}.spq-teaser{border:1px dashed #ddd0f5;background:#f6f1fd;border-radius:11px;padding:9px 11px;font-size:12px;color:#5a4a7a;margin-top:10px}.spq-teaser b{color:#7c3aed}@media (prefers-color-scheme: dark){.spq-step button,.spq-seg button.sel,.spq-btn{background:var(--panel)}.spq-seg{background:#ffffff0f}}:root{--spant-line: #2f8f9d;--spant-line-strong: #14707e;--zarge-line: var(--tan-ink, #8a6b39)}.spanten-2d{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:6;overflow:visible}.spanten-2d .spanten-cut line{stroke:var(--spant-line);stroke-width:1.1px;pointer-events:none}.spanten-2d .spanten-cut.zarge line{stroke:var(--zarge-line);stroke-width:1.6px;stroke-linecap:round;opacity:.85}.spanten-2d .spanten-cut.spant .spanten-flat{fill:color-mix(in srgb,var(--spant-line) 34%,transparent);stroke:var(--spant-line)}.spanten-2d .spanten-cut.zarge .spanten-flat{fill:color-mix(in srgb,var(--zarge-line) 34%,transparent);stroke:var(--zarge-line)}.spanten-2d .spanten-hit{stroke:transparent;stroke-width:14px;stroke-linecap:round;pointer-events:stroke;cursor:pointer}.spanten-2d .spanten-cut.hov line{stroke:var(--spant-line-strong);stroke-width:4px;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--spant-line) 70%,transparent))}.spanten-2d .spanten-cut.sel line{stroke:#2563eb;stroke-width:3.4px}.spanten-2d .spanten-cut.zarge.hov line{stroke-width:7px;stroke-linecap:round;opacity:1}.spanten-2d .spanten-cut.zarge.sel line{stroke-width:6.5px;stroke-linecap:round;opacity:1}.spanten-2d .spanten-comb{fill:var(--spant-line);pointer-events:none}.spanten-2d .spanten-cut.hov .spanten-comb{fill:var(--spant-line-strong)}.spanten-2d .spanten-num{fill:var(--spant-line-strong);font:700 10.5px Segoe UI,system-ui,sans-serif;pointer-events:none;-webkit-user-select:none;user-select:none}.spanten-2d .spanten-cut.zarge .spanten-num{fill:var(--zarge-line)}.spanten-2d .spanten-cut.sel .spanten-num{fill:#1d4ed8}.spanten-2d .spanten-flat{fill:color-mix(in srgb,var(--zarge-line) 30%,transparent);stroke:var(--zarge-line);stroke-width:1.2px;pointer-events:none}.spanten-2d .spanten-cut.hov .spanten-flat{fill:color-mix(in srgb,var(--spant-line-strong) 35%,transparent);stroke:var(--spant-line-strong)}.spanten-2d .spanten-cut.sel .spanten-flat{fill:color-mix(in srgb,#2563eb 35%,transparent);stroke:#1d4ed8}.spanten-2d .spanten-cut.stuetze line:not(.spanten-hit){stroke:none}.spanten-2d .spanten-cut.stuetze .spanten-flat{fill:color-mix(in srgb,var(--spant-line) 45%,transparent);stroke:var(--spant-line-strong);stroke-width:1.4px}.spanten-2d .spanten-cut.stuetze.hov .spanten-flat{fill:color-mix(in srgb,var(--spant-line-strong) 50%,transparent)}.spanten-2d .spanten-cut.stuetze.sel .spanten-flat{fill:color-mix(in srgb,#2563eb 45%,transparent);stroke:#1d4ed8}.spanten-2d .spanten-cut.stuetze .spanten-num{font-size:9.5px}.spanten-2d .spanten-cut.region{pointer-events:none}.spanten-2d .spanten-cut.region line{stroke:none}.spanten-2d .spanten-cut.region .spanten-flat{fill:none;stroke:var(--spant-line-strong);stroke-width:1.6px;stroke-dasharray:7 5;opacity:.75}.spanten-2d .spanten-cut.region.sel .spanten-flat{fill:color-mix(in srgb,#2563eb 14%,transparent);stroke:#1d4ed8;stroke-width:2.4px;opacity:1}.spanten-2d .spanten-cut.region .spanten-num{font-size:10px;opacity:.8}.spanten-2d .spanten-cut.region.sel .spanten-num{fill:#1d4ed8;opacity:1}.spq .spq-hint.spq-warn{color:#9a5b00}.build-advice-card{position:absolute;left:50%;bottom:max(64px,calc(var(--dock-clearance, 0px) + 10px));transform:translate(-50%);z-index:25;max-width:min(560px,94vw);background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:8px 12px;box-shadow:var(--shadow);font-size:12.5px}.build-advice-card .bac-head{display:flex;align-items:center;gap:16px;justify-content:space-between}.build-advice-card .bac-title{font-size:13px}.build-advice-card .pa-tgl{display:flex;align-items:center;gap:7px;border:0;background:none;padding:0;cursor:pointer;font:inherit;font-size:11.5px;color:var(--ink)}.build-advice-card .pa-sw{position:relative;flex:0 0 auto;width:32px;height:18px}.build-advice-card .pa-sw-tr{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--line-strong, #d5dae3);border-radius:9px;transition:background .15s}.build-advice-card .pa-sw-kn{position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #00000040;transition:left .15s}.build-advice-card .pa-tgl.is-on .pa-sw-tr{background:var(--accent)}.build-advice-card .pa-tgl.is-on .pa-sw-kn{left:16px}.build-advice-card .pa-tgl:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.build-advice-card .bac-rows{display:flex;flex-direction:column;gap:1px;margin-top:5px}.build-advice-card .bac-row{display:flex;align-items:center;gap:7px;border:0;background:none;padding:3px 6px;margin:0 -6px;border-radius:8px;cursor:pointer;font:inherit;font-size:12px;color:var(--ink);text-align:left}.build-advice-card .bac-row:hover{background:var(--accent-soft)}.build-advice-card .bac-row.sel{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent)}.build-advice-card .bac-single{display:flex;align-items:center;gap:7px;margin-top:5px;padding:3px 0}.build-advice-card .bac-dot{flex:0 0 auto;width:9px;height:9px;border-radius:50%;border:1px solid rgba(0,0,0,.2)}.build-advice-card .bac-dot.flach{background:#cbd5e1}.build-advice-card .bac-dot.steigung{background:#f59e0b}.build-advice-card .bac-dot.relief{background:#34a853}.build-advice-card .bac-name{font-weight:700}.build-advice-card .bac-cls,.build-advice-card .bac-arrow{color:var(--ink-soft)}.build-advice-card .bac-preset{font-weight:650}.build-advice-card .bac-off-hint{margin-top:4px;font-size:11px;color:var(--ink-soft)}.build-advice-card.is-off .bac-rows,.build-advice-card.is-off .bac-single{opacity:.6}.spq-h .spq-dot{width:13px;height:13px;border-radius:4px;border:1px solid rgba(0,0,0,.15);margin-right:3px}.spq-hero{background:#fafbff}.spq-hero h4{color:var(--accent-ink, #1d4ed8)}.spq-hero-val{display:flex;align-items:baseline;gap:7px;margin-bottom:8px;min-width:0}.spq-hero-val b{font-size:26px;font-weight:800;letter-spacing:-.02em}.spq-hero-val span{font-size:13px;color:var(--ink-soft, #64748b);font-weight:600}.spq-hero-ctl{display:flex;align-items:center;gap:10px}.spq-hero-ctl input[type=range]{flex:1;accent-color:var(--accent, #2563eb)}.spq-hero-kpi{margin-left:auto;text-align:right;font-size:12px;color:var(--ink-soft, #64748b);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spq-prev{position:relative;display:block;width:100%;margin:0 0 9px;padding:8px 8px 6px;border:1px solid var(--line-strong, #d5dae3);border-radius:10px;background:var(--panel);cursor:zoom-in;text-align:center}.spq-prev:hover{border-color:var(--spant-line, #2f8f9d);background:color-mix(in srgb,var(--spant-line) 5%,var(--panel))}.spq-prev:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.spq-prev-svg{display:block;width:100%;height:92px;fill:color-mix(in srgb,var(--spant-line, #2f8f9d) 22%,transparent);stroke:var(--spant-line-strong, #14707e)}.spq-prev-svg.zg{fill:color-mix(in srgb,var(--zarge-line, #8a6b39) 22%,transparent);stroke:var(--tan-ink, #8a6b39)}.spq-prev-cap{display:block;margin-top:5px;font-size:11px;font-weight:700;color:var(--ink-soft, #64748b);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spq-prev-zoom{position:absolute;top:6px;right:7px;font-size:12px;line-height:1;color:var(--ink-soft, #64748b)}.modal.spq-prev-modal{width:720px}.spq-prev-big{padding:18px 22px}.spq-prev-big .spq-prev-svg{width:100%;height:auto;max-height:min(62vh,520px)}.spq-prev-foot{gap:8px}.spq-prev-foot .btn{min-width:40px}.spq-prev-pos{font-size:12px;font-weight:700;color:var(--ink-soft, #64748b);font-variant-numeric:tabular-nums}.spq-prev-note{font-size:12px;color:var(--ink-soft, #64748b);text-align:right}.spq-chips{display:flex;flex-wrap:wrap;gap:5px}.spq-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;border:1px solid var(--line-strong, #d5dae3);border-radius:7px;padding:3px 7px;color:var(--spant-line-strong, #14707e);cursor:pointer;transition:background .1s,border-color .1s}.spq-chip:before{content:"";width:11px;height:2.5px;border-radius:2px;background:var(--spant-line, #2f8f9d);flex:0 0 auto}.spq-chip.zg{color:var(--tan-ink, #8a6b39);background:#f7f2e8}.spq-chip.zg:before{height:4px;background:var(--zarge-line, #8a6b39)}.spq-chip:hover,.spq-chip.hov{background:color-mix(in srgb,var(--spant-line) 14%,#fff);border-color:var(--spant-line, #2f8f9d)}.spq-chip.sel{border-color:var(--accent, #2563eb);color:var(--accent-ink, #1d4ed8);background:var(--accent-soft, #e8eefe)}.spq-chip.sel:before{background:var(--accent, #2563eb)}.spq-adv summary{list-style:none;cursor:pointer;font-size:12px;font-weight:800;color:var(--ink-soft, #64748b);display:flex;align-items:center;gap:7px}.spq-adv summary::-webkit-details-marker{display:none}.spq-adv summary .spq-chev{transition:.15s}.spq-adv[open] summary .spq-chev{transform:rotate(90deg)}.spq-arow{display:flex;align-items:center;gap:9px;font-size:12.5px;padding:6px 0}.spq-arow .spq-lbl{flex:1;color:var(--ink-soft, #64748b)}.spq-arow .spq-step button{width:26px;height:28px;font-size:15px}.spq-arow .spq-step b{min-width:54px;text-align:center;font-size:12px}.spq-stiff{padding:6px 0 2px}.spq-stiff .spq-arow{padding:0 0 3px}.spq-stiff .spq-stiff-val{font-size:11.5px;font-weight:700;text-align:right}.spq-stiff input[type=range]{display:block;width:100%;margin:0;accent-color:var(--accent, #2563eb)}.spq-stiff-ends{display:flex;justify-content:space-between;gap:8px;margin-top:1px;font-size:10.5px;color:var(--ink-soft, #64748b)}.spq-stiff.spq-rost{padding-top:2px}.route-layer-chip{position:absolute;top:10px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:6px 10px;background:var(--panel, #fff);border:1px solid var(--line, #d8d4cc);border-radius:999px;box-shadow:0 2px 10px #0000001f;font-size:13px;white-space:nowrap;z-index:30;pointer-events:auto}.route-layer-chip .rlc-ico{font-size:15px}.route-layer-chip .rlc-label{font-weight:600}.route-layer-chip .rlc-state{color:var(--ink-soft, #5a6068);font-size:11.5px}.route-layer-chip .rlc-busy{min-width:46px;font-size:11.5px;color:var(--accent, #2563eb);font-weight:600}.route-layer-chip[data-building=true] .rlc-busy{animation:rlc-busy-pulse 1s ease-in-out infinite}@keyframes rlc-busy-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion: reduce){.route-layer-chip .rlc-busy{animation:none}}.route-layer-chip .rlc-dev{display:inline-flex;align-items:center;gap:4px}.route-layer-chip .rlc-dev-lbl{color:var(--ink-soft, #5a6068);font-size:11.5px;margin-right:2px}.route-layer-chip .rlc-stage{height:24px;padding:0 8px;font:inherit;font-size:11.5px;white-space:nowrap;cursor:pointer;border:1px solid var(--line, #c9ccd1);border-radius:999px;background:none;color:var(--ink-soft, #5a6068)}.route-layer-chip .rlc-stage:hover{border-color:var(--ink-soft, #5a6068);color:var(--ink)}.route-layer-chip .rlc-stage.is-on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.route-layer-chip .rlc-goods{display:inline-flex;align-items:center;gap:6px}.route-layer-chip .rlc-good-b,.route-layer-chip .rlc-good-v{color:var(--ink-soft, #5a6068);font-size:11.5px}.route-layer-chip .rlc-good-v{border-left:1px solid var(--line, #d8d4cc);padding-left:6px}.route-layer-chip .rlc-delta{font-size:10.5px;font-weight:700;border-radius:7px;padding:1px 5px;background:var(--chip, #eef1f4);color:var(--ink-soft, #5a6068)}.route-layer-chip .rlc-delta.is-up{color:var(--ok, #2e7d32);background:#2e7d321a}.route-layer-chip .rlc-delta.is-down{color:var(--route-cross-eng, #b42318);background:#b4231814}.route-layer-chip .rlc-used{font-size:10.5px;font-weight:600;color:var(--route-befund-tausch, #b45309);border-left:1px solid var(--line, #d8d4cc);padding-left:6px}.route-layer-chip .rlc-cancel{height:24px;padding:0 10px;font:inherit;font-size:11.5px;white-space:nowrap;cursor:pointer;border:1px solid var(--line, #c9ccd1);border-radius:999px;background:none;color:var(--ink-soft, #5a6068);opacity:.85}.route-layer-chip .rlc-cancel:hover{opacity:1;border-color:var(--ink-soft, #5a6068)}.route-layer-chip .rlc-done{height:24px;padding:0 12px;font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;border:1px solid var(--ok, #2e7d32);border-radius:999px;background:var(--ok, #2e7d32);color:#fff}.route-layer-chip .rlc-gated{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);width:max-content;max-width:280px;white-space:normal;line-height:1.2;text-align:center;color:var(--ink-soft, #5a6068);font-size:12px;pointer-events:none;background:var(--panel, #fff);border-radius:9px;padding:3px 9px;box-shadow:0 2px 8px #0000001f}.route-seg-layer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible;pointer-events:none;z-index:6}.route-seg-layer .rsl-arm{stroke:var(--accent, #2563eb);stroke-width:1.5;stroke-dasharray:5 4;opacity:.9}.route-seg-layer .rsl-knob{fill:var(--panel, #fff);stroke:var(--accent, #2563eb);stroke-width:2}.route-seg-layer .rsl-guide{stroke:var(--accent, #2563eb);stroke-width:1;stroke-dasharray:2 5;opacity:.55}.route-seg-bar{position:absolute;top:52px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:5px 10px;background:var(--panel, #fff);border:1px solid var(--line, #d8d4cc);border-radius:999px;box-shadow:0 2px 10px #0000001f;font-size:12px;white-space:nowrap;z-index:30;pointer-events:auto}.route-seg-bar .rsb-nums{display:inline-flex;align-items:center;gap:9px}.route-seg-bar .rsb-num{color:var(--ink-soft, #5a6068)}.route-seg-bar .rsb-num.is-snapped{color:var(--accent, #2563eb);font-weight:600}.route-seg-bar .rsb-num.is-retract{color:var(--warn, #b45309);font-weight:600}.route-seg-bar .rsb-snapkind{color:var(--accent, #2563eb);font-size:11.5px}.route-seg-bar .rsb-usual{color:var(--accent, #2563eb)}.route-seg-bar .rsb-move{font-variant-numeric:tabular-nums}.route-seg-bar .rsb-snap{height:24px;padding:0 10px;font:inherit;font-size:11.5px;cursor:pointer;border:1px solid var(--line, #c9ccd1);border-radius:999px;background:none;color:var(--ink-soft, #5a6068)}.route-seg-bar .rsb-snap.is-on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.route-seg-bar .rsb-done{height:24px;padding:0 12px;font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;border:1px solid var(--ok, #2e7d32);border-radius:999px;background:var(--ok, #2e7d32);color:#fff}.end-rail .er-line.is-casing,.end-draw .ed-line.is-casing,.easement-preview .ep-line.is-casing,.easement-preview.is-warn .ep-line.is-casing{stroke:var(--edit-overlay-casing, rgba(255, 255, 255, .85));stroke-dasharray:none;fill:none}.end-rail{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:23}.end-rail .er-line{fill:none;stroke:var(--edit-overlay, #a21caf);stroke-width:1.5;stroke-dasharray:5 7;stroke-linecap:round;opacity:.45}.end-rail .er-line.is-on{stroke-dasharray:none;stroke-width:2.5;opacity:.9}.end-rail .er-line.is-casing{stroke-width:4.5}.end-draw{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:24}.end-draw .ed-line{fill:none;stroke:var(--edit-overlay, #a21caf);stroke-width:2.5;stroke-dasharray:7 5;stroke-linecap:round}.end-draw .ed-line.is-casing{stroke-width:5.5}.easement-marker{position:absolute;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background:transparent;border:2px solid var(--edit-overlay, #a21caf);box-shadow:0 1px 3px #0000004d;pointer-events:none;z-index:26;transition:width .12s ease,height .12s ease,opacity .12s ease}.easement-marker.is-low{opacity:.5;border-width:2px}.easement-marker.is-mid{opacity:.75;border-width:2.5px}.easement-marker.is-high{opacity:1;border-width:3px}.easement-marker.is-reverse{background:var(--edit-overlay, #a21caf);border-color:#fff;opacity:1}.easement-marker.is-eased{width:8px;height:8px;border-style:dashed;border-width:1.5px;border-color:var(--ink-faint, #94a3b8);opacity:.45;box-shadow:none;background:transparent}.easement-marker.is-active{width:18px;height:18px;opacity:1;z-index:29;border-color:var(--edit-overlay, #a21caf);pointer-events:auto;cursor:pointer;box-shadow:0 0 0 4px color-mix(in srgb,var(--edit-overlay, #a21caf) 22%,transparent),0 2px 6px #00000059}.easement-preview{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:25}.easement-preview .ep-line{fill:none;stroke:var(--edit-overlay, #a21caf);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.easement-preview .ep-line.is-casing{stroke-width:6}.easement-preview.is-warn .ep-line{stroke:var(--warn, #d97706);stroke-dasharray:6 5;opacity:.7}.easement-hint{position:absolute;transform:translate(-50%,-50%);z-index:30;background:var(--edit-overlay, #a21caf);color:#fff;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow)}.easement-hint.is-warn{background:var(--warn, #d97706)}.route-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.route-layer>svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.route-layer-lines{z-index:22}.route-layer-lines .rll-band{fill:none;stroke:var(--edit-overlay, #a21caf);opacity:.12;stroke-linecap:round}.route-layer-lines .rll-band.is-focus{opacity:.18}.route-layer-lines .rll-line{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:.55}.route-layer-lines .rll-line.is-focus{opacity:1;stroke-width:3}.route-layer-lines .rll-line.is-gerade{stroke:var(--route-seg-straight, #6d28d9)}.route-layer-lines .rll-line.is-bogen{stroke:var(--route-seg-arc, #a21caf)}.route-layer-lines .rll-line.is-uebergang{stroke:var(--route-seg-ease, #be185d)}.route-layer-lines .rll-line.is-led{opacity:.8}.route-layer-lines .rll-led{fill:none;stroke:var(--edit-overlay, #a21caf);stroke-width:1.25;stroke-dasharray:3 4;opacity:.85}.route-layer-guides{z-index:22}.route-layer-guides .rlg-line{fill:none;stroke:var(--edit-overlay, #a21caf);stroke-width:1.5;stroke-dasharray:5 7;stroke-linecap:round;opacity:.5}.route-layer-guides .rlg-line.is-snapped{stroke-dasharray:none;stroke-width:2.5;opacity:.95}.route-layer-crossings{z-index:22}.route-layer-crossings .rlx-shape{fill:none;stroke-width:2;stroke-dasharray:4 3;stroke-linejoin:round;opacity:.75}.route-layer-crossings .rlx.is-focus .rlx-shape{opacity:1;stroke-width:2.5}.route-layer-crossings .rlx-label{font-size:10px;font-weight:700;text-anchor:middle;paint-order:stroke;stroke:var(--edit-overlay-casing, rgba(255,255,255,.85));stroke-width:3px}.route-layer-crossings .rlx--kreuzung .rlx-shape{stroke:var(--route-cross-kreuzung, #a21caf)}.route-layer-crossings .rlx--kreuzung .rlx-label{fill:var(--route-cross-kreuzung, #a21caf)}.route-layer-crossings .rlx--ueberfuehrung .rlx-shape{stroke:var(--route-cross-ueberfuehrung, #15803d)}.route-layer-crossings .rlx--ueberfuehrung .rlx-label{fill:var(--route-cross-ueberfuehrung, #15803d)}.route-layer-crossings .rlx--zuEng .rlx-shape{stroke:var(--route-cross-eng, #b42318)}.route-layer-crossings .rlx--zuEng .rlx-label{fill:var(--route-cross-eng, #b42318)}.route-layer-crossings .rlx--offen .rlx-shape{stroke:var(--route-cross-offen, #64748b)}.route-layer-crossings .rlx--offen .rlx-label{fill:var(--route-cross-offen, #64748b)}.route-layer-befunde{z-index:22;overflow:visible}.route-layer-befunde .rlb-shape{fill:none;stroke-width:2;stroke-dasharray:4 3;stroke-linejoin:round;opacity:.8}.route-layer-befunde .rlb.is-focus .rlb-shape{opacity:1;stroke-width:2.5}.route-layer-befunde .rlb-label{font-size:10px;font-weight:700;text-anchor:middle;paint-order:stroke;stroke:var(--edit-overlay-casing, rgba(255,255,255,.85));stroke-width:3px}.route-layer-befunde .rlb--tausch .rlb-shape{stroke:var(--route-befund-tausch, #b45309)}.route-layer-befunde .rlb--tausch .rlb-label{fill:var(--route-befund-tausch, #b45309)}.route-layer-befunde .rlb--fail .rlb-shape{stroke:var(--route-cross-eng, #b42318)}.route-layer-befunde .rlb--fail .rlb-label{fill:var(--route-cross-eng, #b42318)}.route-layer-nodes{z-index:23}.route-layer-nodes .rln-leg{stroke:var(--edit-overlay, #a21caf);stroke-width:2;stroke-linecap:round;opacity:.6}.route-layer-nodes .rln-legline{fill:none;stroke:var(--edit-overlay, #a21caf);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:.55}.route-layer-nodes .rln-node.is-focus .rln-legline{opacity:1;stroke-width:3}.route-layer-nodes .rln-node .rlh-fill{fill:var(--edit-overlay, #a21caf);opacity:.75}.route-layer-nodes .rln-node.is-focus .rlh-fill{opacity:1}.route-layer-nodes .rln-label{fill:var(--edit-overlay, #a21caf);font-size:10px;font-weight:700;text-anchor:middle;paint-order:stroke;stroke:var(--edit-overlay-casing, rgba(255,255,255,.85));stroke-width:3px}.route-layer-handles{z-index:25;pointer-events:none}.route-layer[data-grab=true] .route-layer-handles .rlh{pointer-events:auto;cursor:grab}.route-layer[data-grab=true] .route-layer-handles .rlh:active{cursor:grabbing}.route-layer-handles .rlh-fill{fill:var(--edit-overlay, #a21caf);stroke:var(--edit-overlay-casing, rgba(255,255,255,.85));stroke-width:2}.route-layer-handles .rlh.is-sel .rlh-fill,.route-layer-handles .rlh.is-sel .rlh-open{stroke:var(--select, #1565c0);stroke-width:3}.route-layer-nodes .rln-node.is-sel .rlh-fill{stroke:var(--select, #1565c0);stroke-width:3;opacity:1}.route-layer-handles .rlh-open{fill:var(--edit-overlay-casing, rgba(255,255,255,.85));stroke:var(--edit-overlay, #a21caf);stroke-width:1.75}.route-layer-handles .rlh-leg{fill:var(--edit-overlay, #a21caf);opacity:.4;stroke:var(--edit-overlay-casing, rgba(255,255,255,.85));stroke-width:1.5}.route-layer[data-grab=true] .route-layer-handles .rlh--squareLeg{pointer-events:none;cursor:default}.route-layer-handles .rlh-mark{fill:none;stroke:var(--edit-overlay-casing, rgba(255,255,255,.85));stroke-width:1.75}.route-layer-handles .rlh-ring{fill:none;stroke:var(--edit-overlay, #a21caf);stroke-width:1.5;opacity:.8}.route-layer-handles .rlh-dir{fill:none;stroke:var(--edit-overlay, #a21caf);stroke-width:2.5;stroke-linecap:round;paint-order:stroke}.route-layer-handles .rlh:not(.is-focus){opacity:.55}.route-layer[data-grab=true] .route-layer-handles .rlh[data-led=true]{pointer-events:none;cursor:default}.route-layer-handles .rlh[data-led=true]{opacity:.5}.route-layer-act{position:absolute;z-index:27;transform:translate(-50%,-50%);width:30px;height:30px;display:grid;place-items:center;border-radius:999px;border:1px solid var(--edit-overlay, #a21caf);background:var(--panel, #fff);color:var(--edit-overlay, #a21caf);box-shadow:var(--shadow-soft);cursor:pointer;pointer-events:auto}.route-layer-act:hover{background:var(--edit-overlay, #a21caf);color:#fff}.route-layer-preview{position:absolute;z-index:27;transform:translate(-50%,-50%);display:grid;place-items:center;pointer-events:none}.route-layer-preview .rlp-ring{display:block;border-radius:999px;border:2.5px solid var(--edit-overlay, #a21caf);box-shadow:0 0 0 2px var(--edit-overlay-casing, rgba(255,255,255,.85))}.route-layer-preview .rlp-label{position:absolute;top:100%;margin-top:4px;white-space:nowrap;background:var(--edit-overlay, #a21caf);color:#fff;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700}.route-layer-preview.is-join .rlp-ring{border-style:dashed}.route-layer-preview.is-split .rlp-ring{border-style:dotted}.route-layer-band{position:absolute;left:50%;bottom:12px;transform:translate(-50%);z-index:27;width:min(560px,80%);pointer-events:auto;background:var(--panel, #fff);border:1px solid var(--line, #e2e8f0);border-radius:var(--radius-btn, 12px);padding:6px 10px;box-shadow:var(--shadow-soft)}.route-layer-band .rlb-plot{display:block;width:100%;height:24px}.route-layer-band .rlb-bar.is-gerade{fill:var(--route-seg-straight, #6d28d9)}.route-layer-band .rlb-bar.is-bogen{fill:var(--route-seg-arc, #a21caf)}.route-layer-band .rlb-bar.is-uebergang{fill:var(--route-seg-ease, #be185d)}.route-layer-band .rlb-mark{stroke:var(--text, #0f172a);stroke-width:1;stroke-dasharray:2 2}.route-layer-band .rlb-mark.is-pinned{stroke-dasharray:none;stroke-width:1.75}.route-layer-band .rlb-readout{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted, #64748b);margin-top:4px}.route-layer-band .rlb-chip{font-style:normal;font-weight:700;margin-right:4px}.route-layer-band .rlb-chip.is-gerade{color:var(--route-seg-straight, #6d28d9)}.route-layer-band .rlb-chip.is-bogen{color:var(--route-seg-arc, #a21caf)}.route-layer-band .rlb-chip.is-uebergang{color:var(--route-seg-ease, #be185d)}.route-layer-cross{position:absolute;right:12px;top:12px;z-index:27;width:min(280px,42%);max-height:44%;overflow-y:auto;pointer-events:auto;background:var(--panel, #fff);border:1px solid var(--line, #e2e8f0);border-radius:var(--radius-btn, 12px);padding:6px 8px;box-shadow:var(--shadow-soft);font-size:11px;color:var(--text, #0f172a)}.route-layer-cross .rlxl-head{font-weight:700;color:var(--muted, #64748b);padding:2px 2px 4px}.route-layer-cross .rlxl-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.route-layer-cross .rlxl-btn{display:flex;gap:6px;align-items:center;width:100%;text-align:left;background:none;border:0;padding:3px 2px;cursor:pointer;color:inherit;font:inherit}.route-layer-cross .rlxl-btn:hover{background:var(--hover, rgba(0, 0, 0, .04));border-radius:6px}.route-layer-cross .rlxl-dot{width:8px;height:8px;flex:0 0 auto;transform:rotate(45deg)}.route-layer-cross .rlxl-text{flex:1 1 auto}.route-layer-cross .rlxl-runs{color:var(--muted, #64748b);font-variant-numeric:tabular-nums}.route-layer-cross .rlxl-row.is-focus .rlxl-text{font-weight:700}.route-layer-cross .rlxl-why{margin:0 2px 6px 16px;color:var(--muted, #64748b);line-height:1.35}.route-layer-cross .rlx--kreuzung .rlxl-dot{background:var(--route-cross-kreuzung, #a21caf)}.route-layer-cross .rlx--ueberfuehrung .rlxl-dot{background:var(--route-cross-ueberfuehrung, #15803d)}.route-layer-cross .rlx--zuEng .rlxl-dot{background:var(--route-cross-eng, #b42318)}.route-layer-cross .rlx--offen .rlxl-dot{background:var(--route-cross-offen, #64748b)}
