.mapper{gap:var(--space-3);grid-template-columns:auto minmax(0,1fr) 300px;align-items:stretch;min-height:560px;display:grid;position:relative}@media (height<=800px){.mapper{min-height:480px}}.mapper-toolbar{gap:var(--space-2);padding:var(--space-2);flex-direction:column;display:flex}.mapper-toolbar-scroll{gap:var(--space-1);flex-direction:column;min-height:0;display:flex;overflow-y:auto}@media (height<=800px){.mapper-toolbar-scroll{max-height:calc(100vh - 390px)}}.mapper-toolbar-footer{gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.mapper-tool{align-items:center;gap:var(--space-2);border-radius:var(--radius-control);width:100%;color:var(--text-muted);white-space:nowrap;transition:background var(--dur-fast) var(--ease-settle), color var(--dur-fast) var(--ease-settle);padding:8px 10px;display:flex}.mapper-tool:hover{background:rgb(var(--muted-rgb) / .08);color:var(--text)}.mapper-tool[aria-pressed=true]{background:rgb(var(--accent-deep-rgb) / .25);color:var(--accent)}#mp-help-toggle svg{transition:transform var(--dur-base) var(--ease-settle)}#mp-help-toggle:hover svg{transform:scale(1.18)}.mapper-tool-group{gap:var(--space-1);flex-direction:column;display:flex}.mapper-planfile-input{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mapper-toolbar-sep{background:var(--panel-border);height:1px;margin:var(--space-2) 0}.mapper-simulate{padding:10px var(--space-3);border-radius:var(--radius-control);background:radial-gradient(circle at 35% 30%, var(--accent), var(--accent-deep));color:var(--accent-ink);font:var(--font-title);letter-spacing:var(--tracking-title);box-shadow:var(--glow-accent)}.mapper-bands{gap:2px;display:flex}.mapper-band{border:1px solid var(--panel-border);border-radius:var(--radius-control);color:var(--text-muted);flex:1;padding:6px 4px}.mapper-band[aria-pressed=true]{border-color:rgb(var(--accent-rgb) / .6);color:var(--accent)}.mapper-stage{gap:var(--space-2);flex-direction:column;min-width:0;display:flex;position:relative}.mapper-canvas{border:1px solid var(--panel-border);border-radius:var(--radius-panel);background:rgb(var(--muted-rgb) / .04);touch-action:none;cursor:crosshair;flex:1;min-height:68vh;position:relative;overflow:hidden}@media (height<=800px){.mapper-canvas{min-height:58vh}}.mapper-canvas.tool-select{cursor:default}.mapper-canvas.tool-erase{cursor:not-allowed}.mapper-canvas.is-space{cursor:grab}.mapper-canvas.is-panning{cursor:grabbing}.mapper-heat{position:absolute;inset:0}.mapper-svg{width:100%;height:100%;position:absolute;inset:0}.mapper-hint{padding:0 var(--space-1);margin:0}.mapper-scale-chip{left:var(--space-2);bottom:var(--space-2);z-index:1;border:1px solid var(--panel-border);background:var(--panel-solid);pointer-events:none;border-radius:999px;margin:0;padding:3px 9px;position:absolute}.mp-grid{stroke:rgb(var(--muted-rgb) / .16);stroke-width:1px}.mp-room{fill:rgb(var(--accent-deep-rgb) / .06);stroke:rgb(var(--muted-rgb) / .4);stroke-width:1px;stroke-dasharray:4 3}.mp-room.mp-selected{stroke:var(--accent);stroke-width:2px;stroke-dasharray:none}.mp-wall-centerline{pointer-events:none}.mp-wall-hit{stroke:#0000;stroke-width:14px;fill:none;pointer-events:stroke}.mp-ghost-wall{stroke:var(--text-muted);stroke-linecap:round}.mp-wall-handle{fill:var(--panel-solid);stroke:var(--accent);stroke-width:2px;cursor:grab}.mp-wall-handle:hover{fill:var(--accent)}.mp-vertex-marker{fill:rgb(var(--accent-rgb) / .3);stroke:var(--accent);stroke-width:2.5px;pointer-events:none}.mp-opening{fill:var(--bg);stroke:none}.mp-opening.mp-selected{stroke:var(--accent);stroke-width:2px}.mp-jamb{stroke:var(--text-muted);stroke-width:1.5px;pointer-events:none}.mp-window-pane{stroke:rgb(var(--accent-rgb) / .6);stroke-width:1.5px;fill:none;pointer-events:none}.mp-draft{fill:rgb(var(--accent-rgb) / .12);stroke:var(--accent);stroke-dasharray:4 3;stroke-width:1.5px}.mp-draft-line{stroke:var(--accent);stroke-dasharray:4 3;stroke-width:2px}.mp-marquee{fill:rgb(var(--accent-rgb) / .08);stroke:var(--accent);stroke-dasharray:4 3;stroke-width:1.5px}.mp-vertex-snap{fill:none;stroke:var(--accent);stroke-width:2.5px;pointer-events:none}.mp-room-label{fill:var(--text-muted);font:var(--font-caption)}.mp-node circle{fill:var(--panel-solid);stroke:var(--accent);stroke-width:2px}.mp-node.mp-selected circle{stroke-width:3.5px}.mp-node-icon{font-size:13px}.mp-hint-target{fill:none;stroke:var(--accent);stroke-width:2px;stroke-dasharray:3 3}.mapper-legend{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}@media (height<=800px){.mapper-legend{flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}}.mapper-legend-chip{border:1px solid var(--panel-border);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:3px 9px;display:inline-flex}.mapper-legend-swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px}.mapper-side{gap:var(--space-4);padding:var(--space-4);flex-direction:column;display:flex;overflow-y:auto}@media (height<=800px){.mapper-side{max-height:calc(100vh - 240px)}}.mapper-section,.mapper-results-stats{gap:var(--space-2);flex-direction:column;display:flex}.mapper-results-stats.is-stale{opacity:.5}.mapper-notice{color:var(--text-muted)}.mapper-field{gap:var(--space-1);flex-direction:column;display:flex}.mapper-field-group{gap:var(--space-2);flex-direction:column;display:flex}.mapper-field select{background-color:var(--panel-solid)}.mapper-field input{padding:7px var(--space-2);border:1px solid var(--panel-border);border-radius:var(--radius-control);background:var(--panel-solid);color:var(--text);font:var(--font-body)}.mapper-danger{color:var(--heat-weak);align-self:flex-start;text-decoration:underline}.mapper-error{color:var(--heat-weak)}.mapper-router-link{color:var(--accent);align-self:flex-start;text-decoration:none}.mapper-router-link:hover{text-decoration:underline}.mapper-material-list{border:1px solid var(--panel-border);border-radius:var(--radius-control);flex-direction:column;gap:2px;max-height:240px;padding:4px;display:flex;overflow-y:auto}.mapper-material-row{align-items:center;gap:var(--space-2);width:100%;padding:6px var(--space-2);border-radius:var(--radius-control);color:var(--text-muted);text-align:left;display:flex}.mapper-material-row:hover{background:rgb(var(--muted-rgb) / .08);color:var(--text)}.mapper-material-row[aria-checked=true]{background:rgb(var(--accent-deep-rgb) / .22);color:var(--text)}.mapper-material-swatch{flex-shrink:0}.mapper-material-name{flex:1}.mapper-material-db{color:var(--text-muted);flex-shrink:0}.mapper-stat-row{justify-content:space-between;gap:var(--space-2);display:flex}.mapper-rooms{gap:var(--space-1);flex-direction:column;padding:0;list-style:none;display:flex}.mapper-room-row{gap:var(--space-2);padding:6px var(--space-2);border:1px solid var(--panel-border);border-radius:var(--radius-control);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.mapper-room-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mapper-badge{border:1px solid var(--panel-border);border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.mapper-badge-marker{background:var(--heat-weak);border-radius:999px;width:10px;height:10px}.mapper-badge-clear .mapper-badge-marker{background:var(--heat-strong)}.mapper-warnings{gap:var(--space-1);flex-direction:column;padding:0;list-style:none;display:flex}.mapper-warn-row{padding:6px var(--space-2);border:1px solid var(--panel-border);border-left:3px solid var(--heat-ok);border-radius:var(--radius-control)}.mapper-warn-dead{border-left-color:var(--heat-weak)}.mapper-warn-weak{border-left-color:var(--heat-ok)}.mapper-downsampled{color:var(--text-muted)}.mapper-hint-card{gap:var(--space-2);padding:var(--space-3);border:1px solid rgb(var(--accent-rgb) / .35);border-radius:var(--radius-control);background:rgb(var(--accent-deep-rgb) / .12);flex-direction:column;display:flex}.mapper-apply{padding:6px var(--space-3);border:1px solid rgb(var(--accent-rgb) / .6);border-radius:var(--radius-control);color:var(--accent);align-self:flex-start}.mapper-funnel{gap:var(--space-1);padding:var(--space-3);border:1px solid var(--panel-border);border-radius:var(--radius-control);color:var(--text-muted);flex-direction:column;text-decoration:none;display:flex}.mapper-funnel b{color:var(--accent)}.mapper-guide{width:min(360px,92vw);z-index:var(--z-overlay);gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-panel) 0 0 var(--radius-panel);background:var(--panel-solid);-webkit-backdrop-filter:none;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.mapper-guide-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.mapper-guide-close{border-radius:var(--radius-control);width:30px;height:30px;color:var(--text-muted);font-size:1.1rem;line-height:1}.mapper-guide-close:hover{background:rgb(var(--muted-rgb) / .08);color:var(--text)}.mapper-guide-restart{padding:6px var(--space-3);border:1px solid var(--panel-border);border-radius:var(--radius-control);color:var(--text-muted);align-self:flex-start}.mapper-guide-restart:hover{background:rgb(var(--muted-rgb) / .08);color:var(--text)}.mapper-guide-body{gap:var(--space-4);flex-direction:column;display:flex}.mapper-guide-group{gap:var(--space-2);flex-direction:column;display:flex}.mapper-guide-group ul{gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.mapper-guide-group li{gap:var(--space-2);align-items:baseline;display:flex}.mapper-guide-icon{text-align:center;flex-shrink:0;width:1.4em}@media (width<=720px){.mapper-guide{border-radius:0;width:100vw}}.mapper-import{width:min(360px,92vw);z-index:var(--z-overlay);gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-panel) 0 0 var(--radius-panel);background:var(--panel-solid);-webkit-backdrop-filter:none;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.mapper-import-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.mapper-import-close{border-radius:var(--radius-control);width:30px;height:30px;color:var(--text-muted);font-size:1.1rem;line-height:1}.mapper-import-close:hover{background:rgb(var(--muted-rgb) / .08);color:var(--text)}.mapper-import-body{gap:var(--space-4);flex-direction:column;display:flex}.mapper-import-section{gap:var(--space-2);flex-direction:column;display:flex}.mapper-import-file{align-items:flex-start;gap:var(--space-1);padding:var(--space-3);border:1px dashed var(--panel-border);border-radius:var(--radius-control);cursor:pointer;flex-direction:column;display:flex}.mapper-import-file input[type=file]{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mapper-import-file>span{padding:6px var(--space-3);border:1px solid var(--panel-border);border-radius:var(--radius-control);background:rgb(var(--accent-deep-rgb) / .25);color:var(--accent);transition:background var(--dur-fast) var(--ease-settle);font-weight:600}.mapper-import-file:hover>span{background:rgb(var(--accent-deep-rgb) / .4)}.mapper-import-file:focus-within>span{outline:2px solid var(--accent);outline-offset:2px}.mapper-import-locked{gap:var(--space-3)}.mapper-import-pricing-link{padding:6px var(--space-3);border:1px solid var(--panel-border);border-radius:var(--radius-control);color:var(--text);align-self:flex-start;font-weight:600}.mapper-import-pricing-link:hover{background:rgb(var(--muted-rgb) / .08)}@media (width<=720px){.mapper-import{border-radius:0;width:100vw}}.mapper-import-dxf,.mapper-import-image{gap:var(--space-3);flex-direction:column;display:flex}.mapper-import-dxf h4,.mapper-import-image h4{margin:var(--space-2) 0 0;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.85rem;font-weight:600}.mapper-import-dwg-guidance{gap:var(--space-2);flex-direction:column;display:flex}.mapper-import-dwg-guidance a{color:var(--accent);font-weight:600}.mapper-import-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.mapper-import-actions button{padding:6px var(--space-3);border:1px solid var(--panel-border);border-radius:var(--radius-control);color:var(--text)}.mapper-import-actions button:not(.caption){font-weight:600}.mapper-import-actions button.caption{color:var(--text-muted);border-color:#0000}.mapper-import-actions button:not(:disabled):hover{background:rgb(var(--muted-rgb) / .08)}.mapper-import-actions button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.mapper-import-unit-candidates{gap:var(--space-1);flex-direction:column;padding:0;list-style:none;display:flex}.mapper-import-unit-candidates button{text-align:left;width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--panel-border);border-radius:var(--radius-control)}.mapper-import-unit-candidates button:hover{background:rgb(var(--muted-rgb) / .08)}.mapper-import-unit-candidates button.is-selected,.mapper-import-unit-candidates button[aria-pressed=true]{border-color:var(--accent);background:rgb(var(--accent-rgb) / .08)}.mapper-import-layer-list{gap:var(--space-1);flex-direction:column;max-height:220px;padding:0;list-style:none;display:flex;overflow-y:auto}.mapper-import-layer-list label{align-items:baseline;gap:var(--space-2);padding:var(--space-1) 0;cursor:pointer;display:flex}.mapper-import-layer-list label span:first-of-type{color:var(--text);flex:1}.mapper-import-layers>label{align-items:baseline;gap:var(--space-2);padding:var(--space-1) 0;cursor:pointer;display:flex}.mapper-import-dxf select{background-color:var(--panel-solid)}.mapper-import-live-count{font-weight:600}.mapper-import-report{gap:var(--space-2);flex-direction:column;display:flex}.mapper-import-underlay-controls{gap:var(--space-3);flex-direction:column;display:flex}.mapper-import-not-to-scale{color:var(--heat-weak)}.mapper-import-slider{gap:var(--space-1);flex-direction:column;display:flex}.mapper-import-slider input[type=range]{width:100%;accent-color:var(--accent)}.mapper-import-calibrate{gap:var(--space-2);flex-direction:column;display:flex}.mapper-import-calibrate input[type=number]{font:inherit;color:var(--text);background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:var(--radius-control);padding:6px var(--space-2);width:100%}.mapper-import-calibrate label{gap:var(--space-1);flex-direction:column;display:flex}.mapper-import-custom-scale{gap:var(--space-2);flex-direction:column;display:flex}.mapper-import-custom-scale label{gap:var(--space-1);flex-direction:column;display:flex}.mapper-import-custom-scale input[type=number]{font:inherit;color:var(--text);background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:var(--radius-control);padding:6px var(--space-2);width:100%}.mapper-shortcuts-scrim{z-index:var(--z-overlay);padding:var(--space-4);background:rgb(var(--bg-rgb) / .72);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.mapper-shortcuts{gap:var(--space-3);width:min(560px,100%);max-height:min(80vh,640px);padding:var(--space-4);background:var(--panel-solid);-webkit-backdrop-filter:none;flex-direction:column;display:flex}.mapper-shortcuts-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.mapper-shortcuts-close{border-radius:var(--radius-control);width:30px;height:30px;color:var(--text-muted);font-size:1.1rem;line-height:1}.mapper-shortcuts-close:hover{background:rgb(var(--muted-rgb) / .08);color:var(--text)}.mapper-shortcuts-scroll{overflow-y:auto}.mapper-shortcuts-table{border-collapse:collapse;width:100%}.mapper-shortcuts-table th{text-align:left;padding:6px var(--space-2);color:var(--text-muted);border-bottom:1px solid var(--panel-border);font-weight:600}.mapper-shortcuts-table td{padding:8px var(--space-2);border-bottom:1px solid var(--panel-border);vertical-align:top}.mapper-shortcuts-table tr:last-child td{border-bottom:none}.mapper-shortcuts-key{border:1px solid var(--panel-border);border-radius:var(--radius-control);background:rgb(var(--muted-rgb) / .08);color:var(--text);white-space:nowrap;padding:2px 8px;font-size:.85rem;display:inline-block}@media (width<=480px){.mapper-shortcuts-key{white-space:normal}}.mapper-planfile-scrim{z-index:var(--z-overlay);padding:var(--space-4);background:rgb(var(--bg-rgb) / .72);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.mapper-planfile-confirm{gap:var(--space-3);width:min(420px,100%);padding:var(--space-4);background:var(--panel-solid);-webkit-backdrop-filter:none;flex-direction:column;display:flex}.mapper-planfile-confirm-actions{justify-content:flex-end;align-items:center;gap:var(--space-3);margin-top:var(--space-1);display:flex}.mapper-planfile-confirm-cancel{color:var(--text-muted);text-decoration:underline}.mapper-planfile-confirm-cancel:hover{color:var(--text)}.mapper-planfile-confirm-replace{padding:8px var(--space-4);border-radius:var(--radius-control);background:radial-gradient(circle at 35% 30%, var(--accent), var(--accent-deep));color:var(--accent-ink);font:var(--font-title);letter-spacing:var(--tracking-title)}.mapper-tut{z-index:var(--z-overlay);pointer-events:none;position:fixed;inset:0}.mapper-tut-shroud{z-index:var(--z-overlay);background:rgb(var(--bg-rgb) / .72);pointer-events:none;position:fixed}.mapper-tut-shroud-full{inset:0}.mapper-tut-ring{z-index:var(--z-overlay);border:2px solid var(--accent);border-radius:var(--radius-control);box-shadow:0 0 0 3px rgb(var(--accent-rgb) / .25);pointer-events:none;animation:1.6s ease-in-out infinite mapper-tut-pulse;position:fixed}@keyframes mapper-tut-pulse{0%,to{box-shadow:0 0 0 3px rgb(var(--accent-rgb) / .25)}50%{box-shadow:0 0 0 8px rgb(var(--accent-rgb) / .05)}}.mapper-tut-card{z-index:var(--z-overlay);gap:var(--space-2);width:min(320px,92vw);padding:var(--space-4);pointer-events:auto;background:var(--panel-solid);-webkit-backdrop-filter:none;box-shadow:0 8px 40px rgb(var(--bg-rgb) / .5);flex-direction:column;display:flex;position:fixed}.mapper-tut-head{align-items:center;gap:var(--space-2);display:flex}.mapper-tut-counter{color:var(--text-muted)}.mapper-tut-tick{color:var(--accent);font-weight:700}.mapper-tut-skip{color:var(--text-muted);margin-inline-start:auto;text-decoration:underline}.mapper-tut-skip:hover{color:var(--text)}.mapper-tut-title{font:var(--font-title);letter-spacing:var(--tracking-title)}.mapper-tut-actions{justify-content:flex-end;align-items:center;gap:var(--space-3);margin-top:var(--space-1);display:flex}.mapper-tut-back{color:var(--text-muted);text-decoration:underline}.mapper-tut-back:hover{color:var(--text)}.mapper-tut-next{padding:8px var(--space-4);border-radius:var(--radius-control);background:radial-gradient(circle at 35% 30%, var(--accent), var(--accent-deep));color:var(--accent-ink);font:var(--font-title);letter-spacing:var(--tracking-title)}@media (prefers-reduced-transparency:reduce){.mapper-tut-shroud{background:var(--panel-solid)}}.mapper-intro{z-index:var(--z-overlay);justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-5);text-align:center;background:rgb(var(--bg-rgb) / .82);-webkit-backdrop-filter:blur(var(--blur-panel));border-radius:var(--radius-panel);flex-direction:column;display:flex;position:absolute;inset:0}.mapper-intro ol{gap:var(--space-2);text-align:left;flex-direction:column;max-width:42ch;padding:0;list-style:none;display:flex}.mapper-intro li{gap:var(--space-2);display:flex}.mapper-intro-step{color:var(--accent);font-variant-numeric:tabular-nums}.mapper-intro-go{padding:8px var(--space-4);border-radius:var(--radius-control);border:1px solid rgb(var(--accent-rgb) / .6);color:var(--accent)}.mapper-intro-guide-link{text-decoration:underline}.mapper-intro-guide-link:hover{color:var(--text)}@media (prefers-reduced-transparency:reduce){.mapper-intro{background:var(--panel-solid);-webkit-backdrop-filter:none}}.mapper-gate{z-index:var(--z-overlay);justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-5);text-align:center;background:rgb(var(--bg-rgb) / .9);-webkit-backdrop-filter:blur(var(--blur-panel));border-radius:var(--radius-panel);flex-direction:column;display:flex;position:absolute;inset:0}.mapper-gate .title,.mapper-gate .body{max-width:42ch}.mapper-gate-icons{vertical-align:-.2em;align-items:center;gap:4px;display:inline-flex}.mapper-gate-actions{align-items:center;gap:var(--space-2);margin-top:var(--space-1);flex-direction:column;display:flex}.mapper-gate-primary{padding:10px var(--space-4);border-radius:var(--radius-control);background:radial-gradient(circle at 35% 30%, var(--accent), var(--accent-deep));color:var(--accent-ink);font:var(--font-title);letter-spacing:var(--tracking-title);text-decoration:none}.mapper-gate-secondary{color:var(--text-muted);text-decoration:underline}.mapper-gate-secondary:hover{color:var(--text)}@media (prefers-reduced-transparency:reduce){.mapper-gate{background:var(--panel-solid);-webkit-backdrop-filter:none}}@media (width<=1100px){.mapper{grid-template-columns:auto minmax(0,1fr)}.mapper-side{grid-column:1/-1;max-height:none}}@media (width<=720px){.mapper{grid-template-columns:minmax(0,1fr)}.mapper-toolbar-scroll,.mapper-toolbar-footer{row-gap:var(--space-2);flex-flow:wrap;max-height:none;overflow:visible}.mapper-tool{flex:none;width:auto}.mapper-tool span:last-child{display:none}.mapper-toolbar-sep{flex-basis:100%;width:auto;height:0;margin:0}.mapper-tool-group{row-gap:var(--space-2);flex-flow:wrap}.mapper-bands,.mapper-simulate{flex:auto}.mapper-canvas{min-height:55vh}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mapper-floors{gap:var(--space-1);flex-wrap:wrap;align-items:center;display:flex}.mapper-floor-tab,.mapper-floor-add,.mapper-ghost-toggle{padding:5px var(--space-3);border:1px solid var(--panel-border);border-radius:var(--radius-control);color:var(--text-muted);transition:background var(--dur-fast) var(--ease-settle), color var(--dur-fast) var(--ease-settle)}.mapper-floor-tab[aria-pressed=true]{border-color:rgb(var(--accent-rgb) / .6);background:rgb(var(--accent-deep-rgb) / .25);color:var(--accent)}.mapper-ghost-toggle[aria-pressed=true]{border-color:rgb(var(--accent-rgb) / .6);color:var(--accent)}.mapper-floor-add:disabled,.mapper-ghost-toggle:disabled{opacity:.4;cursor:not-allowed}.mapper-ghost-toggle{margin-inline-start:auto}.mp-ghost{opacity:.18;pointer-events:none}.mp-stairs{stroke:var(--accent);stroke-width:1.5px}.mp-stairs.mp-selected{stroke-width:3px}.mp-hatch-line{stroke:rgb(var(--accent-rgb) / .7);stroke-width:1px}.mp-stairs-label{fill:var(--accent);font:var(--font-caption)}.mapper-chips{gap:var(--space-1);flex-wrap:wrap;display:flex}.mapper-chip{border:1px solid var(--panel-border);color:var(--text-muted);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.mapper-chip[aria-pressed=true]{border-color:rgb(var(--accent-rgb) / .6);color:var(--accent)}.mapper-chip-marker{background:var(--heat-strong);border-radius:999px;flex-shrink:0;width:8px;height:8px}.mapper-chip-dead .mapper-chip-marker{background:var(--heat-weak)}.mapper-stepper{align-items:center;gap:var(--space-2);display:flex}.mapper-stepper button{border:1px solid var(--panel-border);border-radius:var(--radius-control);width:30px;height:30px;color:var(--text)}.mapper-stepper button:disabled{opacity:.4;cursor:not-allowed}@media (width<=720px){.mapper-ghost-toggle{margin-inline-start:0}}.mp-loupe{z-index:3;border:2px solid var(--accent);background:var(--bg);pointer-events:none;border-radius:50%;width:96px;height:96px;position:absolute;overflow:hidden;box-shadow:0 6px 18px #00000073}.mp-loupe svg{display:block}.mp-loupe-cross{stroke:var(--accent);stroke-width:1.5px}.mp-loupe-snap{fill:none;stroke:var(--accent);stroke-width:2px}.mp-node .mp-node-hit,.mp-wall-handle-halo{fill:#0000;stroke:none;pointer-events:all}@media (any-pointer:coarse){.mp-wall-hit{stroke-width:32px}}.mp-touch-chrome{padding-bottom:var(--space-2);align-items:center;gap:6px;min-width:0;display:flex;position:relative}.mp-chip{border:1px solid var(--panel-border);background:var(--panel-solid);min-width:40px;min-height:40px;color:var(--text);font:var(--font-caption);border-radius:999px;flex:none;justify-content:center;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.mp-chip:disabled{opacity:.5}.mp-chip-primary{border-color:var(--accent);color:var(--accent);font-weight:700}.mp-chip-done{background:var(--accent);color:var(--accent-ink);border-color:#0000;margin-inline-start:auto;font-weight:700}.mp-chip-floors{scrollbar-width:none;flex:auto;min-width:0;overflow-x:auto}.mp-chip-floors .mapper-floors{flex-wrap:nowrap}.mp-chip-floors .mapper-floors>*{white-space:nowrap;flex:none}.mp-chip-floors::-webkit-scrollbar{display:none}.mp-chip-menu{transition:transform .18s cubic-bezier(.16,1,.3,1)}.mp-chip-menu:active{transition-duration:80ms;transform:scale(.94)}.mp-menu-glyph{place-items:center;display:inline-grid}.mp-menu-glyph>.icon{grid-area:1/1;transition:opacity .2s,transform .2s cubic-bezier(.16,1,.3,1)}.mp-menu-glyph>.mp-menu-glyph-x{opacity:0;transform:rotate(-90deg)scale(.6)}.mp-menu-glyph[data-open]>.mp-menu-glyph-bars{opacity:0;transform:rotate(90deg)scale(.6)}.mp-menu-glyph[data-open]>.mp-menu-glyph-x{opacity:1;transform:none}.mp-site-menu{top:100%;z-index:8;width:min(320px, calc(100vw - 2 * var(--space-2)));overscroll-behavior:contain;transform-origin:0 0;opacity:0;visibility:hidden;max-height:calc(100dvh - 72px);padding:6px;transition:opacity .14s,transform .14s,visibility 0s linear .14s;position:absolute;inset-inline-start:0;overflow-y:auto;transform:translateY(-6px)scale(.96);box-shadow:0 12px 32px #00000073}.mp-site-menu.panel{background:var(--panel-solid);-webkit-backdrop-filter:none}.mp-site-menu[data-open]{opacity:1;visibility:visible;transition:opacity .22s cubic-bezier(.16,1,.3,1),transform .22s cubic-bezier(.16,1,.3,1),visibility;transform:none}.mp-site-menu-list,.mp-site-menu-lang-list{margin:0;padding:0;list-style:none}.mp-site-menu-item{border-radius:var(--radius-control);min-height:44px;color:var(--text-muted);align-items:center;gap:10px;padding:8px 12px;text-decoration:none;display:flex}.mp-site-menu-item:hover{background:rgb(var(--muted-rgb) / .08);color:var(--text)}.mp-site-menu-item[aria-current=page]{background:rgb(var(--accent-deep-rgb) / .25);color:var(--accent)}.mp-site-menu-langs{border-top:1px solid var(--panel-border);margin-top:6px;padding-top:6px}.mp-site-menu-heading{color:var(--text-muted);align-items:center;gap:6px;margin:4px 12px 6px;display:flex}.mp-site-menu-lang-list{flex-wrap:wrap;gap:4px;padding:0 6px 4px;display:flex}.mp-site-menu-lang{border:1px solid var(--panel-border);min-height:44px;color:var(--text-muted);border-radius:999px;align-items:center;padding:6px 12px;text-decoration:none;display:inline-flex}.mp-site-menu-lang:hover{background:rgb(var(--muted-rgb) / .08);color:var(--text)}.mp-site-menu-lang[aria-current=true]{border-color:var(--accent);color:var(--accent)}@media (prefers-reduced-motion:reduce){.mp-chip-menu,.mp-chip-menu:active,.mp-menu-glyph>.icon,.mp-site-menu,.mp-site-menu[data-open]{transition:none}.mp-chip-menu:active,.mp-site-menu{transform:none}.mp-menu-glyph>.icon{transform:none!important}}.mp-sheet{left:var(--space-2);right:var(--space-2);bottom:calc(var(--mp-dock-h,0px) + 6px);z-index:6;max-height:min(70dvh, calc(100% - var(--mp-dock-h,0px) - 70px));border-radius:16px;flex-direction:column;display:flex;position:absolute;box-shadow:0 -8px 24px #0006}.mp-sheet:focus{outline:none}.mp-sheet-grab{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-2);touch-action:none;display:flex;position:relative}.mp-sheet-handle{background:rgb(var(--muted-rgb) / .5);border-radius:2px;width:36px;height:4px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.mp-sheet-title{color:var(--text-muted);flex:1;margin:0}.mp-sheet-close{min-height:36px;padding:4px 10px}.mp-sheet-body{overscroll-behavior:contain;padding:0 var(--space-3) var(--space-3);overflow-y:auto}.mp-phone-tip{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);padding:6px 10px;display:flex}.mp-phone-tip p{flex:1;margin:0}.mp-phone-tip-dismiss{flex:none;min-height:36px}.mapper-toolbar--dock{z-index:7;margin:var(--space-2) 0 calc(var(--space-2) + env(safe-area-inset-bottom,0px));border-radius:14px;padding:6px;position:relative}.mapper-dock-scroll{scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.mapper-dock-scroll::-webkit-scrollbar{display:none}.mapper-dock-scroll .mapper-tool{flex-direction:column;flex:none;justify-content:center;gap:2px;width:auto;min-width:52px;min-height:48px;padding:4px 6px;font-size:.68rem}.mapper-dock-scroll .mapper-tool span:last-child{display:block}.mapper-more{z-index:1;max-height:50dvh;padding:var(--space-2);flex-wrap:wrap;gap:6px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;right:0;overflow-y:auto}.mapper-more.panel{background:var(--panel-solid);-webkit-backdrop-filter:none}.mapper-more[hidden]{display:none}.mapper-more .mapper-tool{flex:none;width:auto;min-height:44px}.mapper-more .mapper-tool span:last-child{display:inline}.mapper-more .mapper-tool-group{flex-flow:wrap}.mapper-more .mapper-toolbar-sep{display:none}.mapper-more-bands{flex-basis:100%;align-items:center;gap:6px;display:flex}.mapper.mapper--touch{z-index:50;height:100dvh;min-height:0;padding:var(--space-2) var(--space-2) 0;background:var(--bg);flex-direction:column;gap:0;display:flex;position:fixed;inset:0}.mapper.mapper--touch .mapper-stage{flex:1;order:1;gap:0;min-height:0}.mapper.mapper--touch .mapper-toolbar{order:2}.mapper.mapper--touch .mapper-canvas{border-radius:var(--radius-control);user-select:none;-webkit-touch-callout:none;flex:1;min-height:0}.mapper.mapper--touch .mapper-scale-chip{bottom:var(--space-2)}.mapper.mapper--touch .mapper-legend{scrollbar-width:none;overscroll-behavior-x:contain;flex-wrap:nowrap;flex-shrink:0;gap:6px;padding:4px 0 2px;overflow-x:auto}.mapper.mapper--touch .mapper-legend::-webkit-scrollbar{display:none}.mapper.mapper--touch .mapper-legend-chip{padding:2px 8px}@media (any-pointer:coarse){.mapper-canvas{user-select:none;-webkit-touch-callout:none}}.mapper.mapper--touch button{touch-action:manipulation}.mapper.mapper--touch .mp-touch-chrome{touch-action:none}.mapper.mapper--touch .mp-chip-floors,.mapper.mapper--touch .mapper-dock-scroll,.mapper.mapper--touch .mapper-legend{touch-action:pan-x}.mapper.mapper--touch .mp-sheet-body,.mapper.mapper--touch .mapper-more,.mapper.mapper--touch .mp-site-menu{touch-action:pan-y}html:has(.mapper--touch){overscroll-behavior:none;overflow:hidden}.mapper-gestures{gap:var(--space-2);margin:0;padding-inline-start:1.2em;display:grid}.mapper-guide-touch-note{margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--panel-border);border-radius:var(--radius-control);color:var(--text-muted)}
