@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Dwzd0TKx.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal--EtKVqC7.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BKTgBNmI.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-DDbeQdWO.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-DkTWoOHj.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-DXKoNrs9.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-BriLmxM2.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-CVvOgo6s.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-italic-B-HAXtk8.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-italic-Dl1hEN99.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-italic-DEjNRPC7.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-italic-CCy0IRlI.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #1d2733;--ink-2: #4a5866;--ink-3: #75828f;--paper: #f5f7f8;--panel: #ffffff;--line: #d9e0e6;--line-strong: #b9c4cd;--brand: #0f6e6e;--brand-ink: #ffffff;--brand-soft: #e1efee;--route: #f2b705;--route-ink: #2a2100;--danger: #b4321a;--danger-soft: #fbe9e5;--warn: #a8640a;--warn-soft: #fdf1dc;--ok: #2f7a3e;--ok-soft: #e4f2e6;--focus: #1f6feb;--radius-s: 6px;--radius-m: 10px;--radius-l: 18px;--shadow-sheet: 0 -6px 24px rgba(29, 39, 51, .12);--font: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;--fs-xs: .8125rem;--fs-s: .9375rem;--fs-m: 1.0625rem;--fs-l: 1.3125rem;--fs-xl: 1.75rem;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ink: #e8edf1;--ink-2: #b4bfc9;--ink-3: #8794a0;--paper: #141b22;--panel: #1c2530;--line: #2c3845;--line-strong: #3d4b59;--brand: #4fb3ad;--brand-ink: #08201f;--brand-soft: #173431;--danger: #f08a73;--danger-soft: #3a1d17;--warn: #f0b45a;--warn-soft: #3a2a12;--ok: #7fcf8d;--ok-soft: #173020;--focus: #6aa7ff;--shadow-sheet: 0 -6px 24px rgba(0, 0, 0, .45);color-scheme:dark}}:root[data-theme=dark]{--ink: #e8edf1;--ink-2: #b4bfc9;--ink-3: #8794a0;--paper: #141b22;--panel: #1c2530;--line: #2c3845;--line-strong: #3d4b59;--brand: #4fb3ad;--brand-ink: #08201f;--brand-soft: #173431;--danger: #f08a73;--danger-soft: #3a1d17;--warn: #f0b45a;--warn-soft: #3a2a12;--ok: #7fcf8d;--ok-soft: #173020;--focus: #6aa7ff;--shadow-sheet: 0 -6px 24px rgba(0, 0, 0, .45);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:var(--fs-m);line-height:1.45;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}h1,h2,h3{line-height:1.15;margin:0;font-weight:700}h1{font-size:var(--fs-xl);letter-spacing:-.01em}h2{font-size:var(--fs-l)}h3{font-size:var(--fs-m)}p{margin:0}a{color:var(--brand)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45em;min-height:40px;padding:0 1rem;border-radius:var(--radius-s);border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);font:inherit;font-size:var(--fs-s);font-weight:700;cursor:pointer;white-space:nowrap;text-decoration:none}.btn:hover:not(:disabled){border-color:var(--ink-3)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.btn-primary:hover:not(:disabled){filter:brightness(1.08);border-color:var(--brand)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--brand-soft);border-color:transparent}.btn-s{min-height:32px;padding:0 .7rem;font-size:var(--fs-xs)}.btn-icon{width:40px;padding:0}.field{display:grid;gap:.3rem;font-size:var(--fs-s)}.field>span{color:var(--ink-2);font-weight:700}.field small{color:var(--ink-3)}.input,.select,.textarea{width:100%;min-height:40px;padding:.45rem .65rem;border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--panel);color:var(--ink);font:inherit;font-size:var(--fs-s)}.textarea{min-height:80px;resize:vertical}.check{display:flex;gap:.5rem;align-items:center;font-size:var(--fs-s);cursor:pointer}.check input{width:18px;height:18px;accent-color:var(--brand)}.badge{display:inline-flex;align-items:center;gap:.3em;padding:.1rem .5rem;border-radius:999px;font-size:var(--fs-xs);font-weight:700;background:var(--line);color:var(--ink-2);white-space:nowrap}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-brand{background:var(--brand-soft);color:var(--brand)}.level-chip{display:inline-grid;place-items:center;min-width:1.9em;height:1.9em;padding:0 .35em;border-radius:var(--radius-s);color:#fff;font-weight:700;line-height:1}.notice{display:flex;gap:.6rem;align-items:flex-start;padding:.7rem .85rem;border-radius:var(--radius-s);border-left:4px solid var(--line-strong);background:var(--panel);font-size:var(--fs-s)}.notice-warn{border-left-color:var(--warn);background:var(--warn-soft)}.notice-danger{border-left-color:var(--danger);background:var(--danger-soft)}.notice-ok{border-left-color:var(--ok);background:var(--ok-soft)}.notice-info{border-left-color:var(--brand);background:var(--brand-soft)}.table{width:100%;border-collapse:collapse;font-size:var(--fs-s)}.table th{text-align:left;font-weight:700;color:var(--ink-2);padding:.5rem .6rem;border-bottom:2px solid var(--line)}.table td{padding:.55rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}.table tr:hover td{background:color-mix(in srgb,var(--brand-soft) 45%,transparent)}.muted{color:var(--ink-3)}.row{display:flex;gap:.6rem;align-items:center}.stack{display:grid;gap:.8rem}.spacer{flex:1}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#141b2273;display:grid;place-items:center;padding:16px;z-index:100}.dialog{width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--panel);border-radius:var(--radius-m);border:1px solid var(--line);padding:1.25rem;display:grid;gap:1rem}.dialog-wide{width:min(900px,100%)}.toasts{position:fixed;bottom:16px;left:50%;transform:translate(-50%);display:grid;gap:8px;z-index:200;width:min(520px,calc(100% - 32px))}.toast{padding:.7rem 1rem;border-radius:var(--radius-s);background:var(--ink);color:var(--paper);font-size:var(--fs-s)}.toast-error{background:var(--danger);color:#fff}.login-wrap{min-height:100%;display:grid;place-items:center;padding:16px}.login{width:min(380px,100%);display:grid;gap:1rem}.login .mark{display:flex;gap:.6rem;align-items:center;font-weight:700;font-size:var(--fs-l)}:root{--grid: rgba(29, 39, 51, .06);--grid-strong: rgba(29, 39, 51, .14);--canvas: #eef2f5}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--grid: rgba(232, 237, 241, .05);--grid-strong: rgba(232, 237, 241, .12);--canvas: #10161c}}.center-msg{display:grid;place-items:center;height:100vh;color:var(--ink-3)}.pad{padding:20px 24px}.small{font-size:var(--fs-xs)}.mono-key{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.75rem}.warn-text{color:var(--warn)}.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.6rem}.stack.tight{gap:.5rem}.row.wrap{flex-wrap:wrap}.input-s{min-height:32px;padding:.2rem .45rem;font-size:var(--fs-xs)}.linkish{border:0;background:none;padding:0;font:inherit;color:var(--brand);cursor:pointer;text-align:left}.linkish:hover{text-decoration:underline}.plain-list{list-style:none;padding:0;margin:.25rem 0 .6rem;display:grid;gap:.2rem}.table.compact td,.table.compact th{padding:.35rem .45rem}.empty{max-width:560px;display:grid;gap:.8rem}.studio{height:100vh;display:grid;grid-template-rows:auto 1fr}.studio-top{display:flex;align-items:center;gap:.8rem;padding:.5rem 16px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:.5rem;color:var(--ink);text-decoration:none;font-weight:700;font-size:var(--fs-l)}.site-select{width:auto;min-width:280px}.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.site-tile{display:grid;gap:.3rem;text-align:left;padding:1rem;border:1px solid var(--line);border-left:5px solid var(--brand);border-radius:var(--radius-s);background:var(--panel);color:var(--ink);font:inherit;cursor:pointer}.workspace{display:grid;grid-template-rows:auto 1fr;min-height:0}.tabs{display:flex;align-items:center;gap:2px;padding:0 16px;background:var(--panel);border-bottom:1px solid var(--line);overflow-x:auto}.tab{padding:.6rem .9rem;color:var(--ink-2);text-decoration:none;font-weight:700;font-size:var(--fs-s);border-bottom:3px solid transparent;white-space:nowrap}.tab.is-on{color:var(--ink);border-bottom-color:var(--brand)}.workspace-body{min-height:0;overflow:auto}.editor{height:100%;display:grid;grid-template-rows:auto auto 1fr;min-height:0}.editor-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.45rem 16px;border-bottom:1px solid var(--line);background:var(--paper)}.rev-id{display:flex;align-items:center;gap:.5rem}.editor-notice{margin:8px 16px 0;align-items:center}.editor-main{display:grid;grid-template-columns:92px 1fr 340px;min-height:0}.toolrail{display:grid;align-content:start;gap:2px;padding:8px 6px;border-right:1px solid var(--line);background:var(--panel);overflow-y:auto}.tool{display:grid;justify-items:center;gap:1px;padding:.4rem .2rem;border:1px solid transparent;border-radius:var(--radius-s);background:transparent;color:var(--ink-2);font:inherit;cursor:pointer}.tool:hover{background:var(--brand-soft)}.tool.is-on{background:var(--ink);color:var(--paper)}.tool-key{font-weight:700;font-size:1rem}.tool-label{font-size:.72rem;line-height:1.1;text-align:center}.canvas-col{display:grid;grid-template-rows:auto 1fr auto;min-width:0;min-height:0}.floorbar{display:flex;align-items:center;gap:4px;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--panel);overflow-x:auto}.floorbar .hint{max-width:50%;text-align:right}.floor-tab{display:inline-flex;align-items:center;gap:.4rem;padding:3px 8px 3px 3px;border:1px solid transparent;border-radius:var(--radius-s);background:transparent;color:var(--ink-2);font:inherit;font-size:var(--fs-xs);font-weight:700;cursor:pointer;white-space:nowrap;position:relative}.floor-tab.is-on{border-color:var(--line-strong);background:var(--paper);color:var(--ink)}.route-dot{width:9px;height:9px;border-radius:50%;background:var(--route)}.statusline{display:flex;gap:1rem;align-items:center;padding:4px 12px;border-top:1px solid var(--line);background:var(--panel);min-height:34px}.side{border-left:1px solid var(--line);background:var(--panel);padding:14px;overflow-y:auto}.side details{border-top:1px solid var(--line);padding-top:.6rem}.side summary{cursor:pointer;font-weight:700;font-size:var(--fs-s);margin-bottom:.5rem}.insp-head{display:flex;gap:.5rem;align-items:flex-start}.file-btn{cursor:pointer}.issues{list-style:none;margin:0;padding:0;display:grid;gap:.35rem;font-size:var(--fs-xs)}.issues li{padding-left:.6rem;border-left:3px solid var(--line-strong)}.issues li.error{border-left-color:var(--danger)}.issues li.warning{border-left-color:var(--warn)}.issues li.ok{border-left-color:var(--ok)}.plan-wrap{position:relative;min-height:0;overflow:hidden;background:var(--canvas)}.plan-wrap[data-tool=pan] svg{cursor:grab}.plan-wrap:not([data-tool=select]):not([data-tool=pan]) svg{cursor:crosshair}.plan-svg{display:block;touch-action:none;-webkit-user-select:none;user-select:none}.plan-zoom{position:absolute;right:10px;bottom:10px;display:flex;gap:4px}.pc-slab{fill-opacity:.1;stroke:var(--line-strong);stroke-width:.05}.pc-wall{fill:none;stroke:var(--ink);stroke-linecap:square}.pc-wall.is-sel,.pc-door.is-sel{stroke:var(--focus)!important}.pc-hit{fill:none;stroke:transparent}.pc-hit-node{fill:transparent}.pc-door{fill:none}.pc-volume{fill:var(--line-strong);fill-opacity:.6;stroke:var(--ink-3)}.pc-stairs{fill:var(--line);stroke:var(--ink-3)}.pc-volume.is-sel,.pc-stairs.is-sel{stroke:var(--focus);stroke-width:.15}.pc-zone{fill:color-mix(in srgb,var(--brand) 10%,transparent);stroke:var(--brand);stroke-dasharray:.6 .3}.pc-zone.is-private{fill:url(#hatch);stroke:var(--danger)}.pc-zone.is-sel{stroke:var(--focus)}.pc-zone.is-target{fill:color-mix(in srgb,var(--danger) 30%,transparent)}.pc-zone-label{fill:var(--ink-2);font-weight:700;pointer-events:none}.pc-edge{stroke:var(--ink-2)}.pc-edge.k-door{stroke:var(--brand)}.pc-edge.not-accessible{stroke:var(--warn);stroke-dasharray:.5 .3}.pc-edge.is-route{stroke:var(--route)}.pc-edge.is-excluded,.pc-edge.is-target{stroke:var(--danger);stroke-dasharray:none}.pc-edge.is-issue{stroke:var(--danger)}.pc-edge.is-sel{stroke:var(--focus)}.pc-node{fill:var(--panel);stroke:var(--ink)}.pc-node.k-door{fill:var(--brand);stroke:var(--panel)}.pc-node.k-entrance{fill:var(--ok)}.pc-node.k-landing{fill:var(--ink-2)}.pc-node.k-poi{fill:var(--route)}.pc-node.is-sel,.pc-node.is-pending{fill:var(--focus);stroke:var(--panel)}.pc-node.is-target,.pc-node.is-issue{fill:var(--danger)}.pc-start-ring{fill:none;stroke:var(--ok)}.pc-vert{fill:var(--panel);font-weight:700;pointer-events:none}.pc-place{fill:var(--ink);font-weight:700;paint-order:stroke;stroke:var(--canvas);stroke-width:.25;cursor:pointer}.pc-place.is-private{fill:var(--danger);font-style:italic}.pc-place.is-sel{fill:var(--focus)}.pc-place-link{stroke:var(--ink-3);stroke-dasharray:.3 .3}.pc-route{fill:none;stroke-linejoin:round;stroke-linecap:round;opacity:.85}.pc-draft polyline{fill:none;stroke:var(--focus);stroke-dasharray:.4 .25}.pc-draft circle{fill:var(--focus)}.pc-calib line{stroke:var(--danger)}.pc-cursor{fill:var(--focus);pointer-events:none}.restr-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:1rem}.picker{height:320px;border:1px solid var(--line);border-radius:var(--radius-s);overflow:hidden;display:grid}.target-list{list-style:none;margin:0;padding:0;display:grid;gap:.25rem;font-size:var(--fs-s)}.target-list li{display:flex;align-items:center;gap:.4rem}.impact{border-top:1px solid var(--line);padding-top:.8rem;display:grid;gap:.5rem}.impact-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;font-size:var(--fs-s)}.impact ul{margin:.3rem 0 .6rem;padding-left:1rem}.sim{height:100%;display:grid;grid-template-columns:340px 1fr;min-height:0}.sim .side{border-left:0;border-right:1px solid var(--line)}.sim .canvas-col{grid-template-rows:auto 1fr}.sim-steps{margin:0;padding-left:1.2rem;display:grid;gap:.3rem;font-size:var(--fs-s)}.seg-s{display:flex;gap:4px;margin-right:8px}.preview-page{height:100%;display:grid;grid-template-rows:auto 1fr}.preview3d{min-height:0;height:100%}.struct-b+.struct-b{border-top:1px solid var(--line);padding-top:.8rem}@media(max-width:1100px){.editor-main{grid-template-columns:80px 1fr 290px}.restr-grid,.impact-cols{grid-template-columns:1fr}}.dialog-wide{width:min(1120px,100%)}.validity{display:grid;gap:.4rem}
