@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial;--support-angle:0deg;--press-angle:0deg}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-bold:700;--tracking-tight:-.025em;--ease-out:cubic-bezier(0, 0, .2, 1);--blur-sm:8px;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\@container{container-type:inline-size}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.z-\[90\]{z-index:90}.z-\[95\]{z-index:95}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.ml-px{margin-left:1px}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-full{height:100%}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.\[place-items\:safe_center\]{place-items:safe center}.place-items-center{place-items:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.bg-\[var\(--bg\)\]{background-color:var(--bg)}.bg-black\/45{background-color:#00000073}@supports (color:color-mix(in lab, red, red)){.bg-black\/45{background-color:color-mix(in oklab, var(--color-black) 45%, transparent)}}.p-4{padding:calc(var(--spacing) * 4)}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-\[\.62em\]{font-size:.62em}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-\[var\(--ink\)\]{color:var(--ink)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--bg:#edf1ec;--panel:#fbfcf9;--canvas:#f8faf5;--control-bg:#f3f8f4;--ink:#17372a;--muted:#52665a;--line:#cbd8cf;--control-border:#b9d0c0;--accent:#176c49;--accent-soft:#d8f0e1;--danger:#b94f45;--shadow:0 10px 28px #13332514;--control-shadow:inset 0 1px #ffffffc2,0 1px 2px #183b2a0f;--range-track:#c8d9ce;--range-thumb:#176c49;--range-thumb-border:#f8fcf9;--topbar-h:60px;--expand-size:26px;--expand-offset:32px;--expand-gutter:38px;--focus-ring-width:2px;--focus-ring-offset:2px}*{box-sizing:border-box}html,body{min-height:100%}body{color:var(--ink);background:var(--bg);margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button,select{cursor:pointer}button:disabled,input:disabled,select:disabled{cursor:not-allowed}.app{min-height:100vh;padding-top:env(safe-area-inset-top);background:var(--bg);transition:background .18s,color .18s}html[data-theme=dark] .app{--bg:#0e1713;--panel:#15231c;--canvas:#19291f;--control-bg:#102019;--ink:#e1eee5;--muted:#acc0b2;--line:#3d594b;--control-border:#4d6b5a;--accent:#69ca91;--accent-soft:#203d2e;--danger:#ef8a7d;--shadow:0 12px 30px #00000059;--control-shadow:inset 0 1px #ffffff0a,0 1px 2px #00000042;--range-track:#324e3f;--range-thumb:#87e5ac;--range-thumb-border:#102019}@media (prefers-color-scheme:dark){html[data-theme=system] .app{--bg:#0e1713;--panel:#15231c;--canvas:#19291f;--control-bg:#102019;--ink:#e1eee5;--muted:#acc0b2;--line:#3d594b;--control-border:#4d6b5a;--accent:#69ca91;--accent-soft:#203d2e;--danger:#ef8a7d;--shadow:0 12px 30px #00000059;--control-shadow:inset 0 1px #ffffff0a,0 1px 2px #00000042;--range-track:#324e3f;--range-thumb:#87e5ac;--range-thumb-border:#102019}}.topbar{min-height:var(--topbar-h);background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:18px;padding:0 22px;display:flex}.brand,.top-actions{align-items:center;display:flex}.topbar:not(.wide) .top-actions{margin-left:auto}.brand{color:inherit;flex:none;gap:10px;text-decoration:none}.brand strong{letter-spacing:-.04em;font-size:19px}.top-actions{flex:none;gap:7px}.top-actions>button,.file-menu summary{min-height:34px;color:var(--ink);border:1px solid var(--line);background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:7px 10px;font-size:12px;font-weight:750;display:inline-flex}.top-actions>button:hover,.file-menu summary:hover,.file-menu[open] summary{background:var(--accent-soft)}.top-actions .icon-button,.top-actions .bug-button{width:34px;height:34px;padding:0}.top-actions svg{flex:none}.file-menu summary{cursor:pointer;gap:7px;height:34px;padding:0 12px 0 10px}.support-button{gap:6px;color:var(--accent)!important;border-color:var(--accent)!important}@supports (color:color-mix(in lab, red, red)){.support-button{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))!important}}.workspace{height:calc(100vh - var(--topbar-h));height:calc(100dvh - var(--topbar-h));grid-template-columns:72px 226px minmax(0,1fr) 290px;min-height:0;display:grid;overflow:hidden}.library,.inspector{background:var(--panel);overflow-y:auto}.library{border-right:1px solid var(--line);padding:17px 12px}.inspector{border-left:1px solid var(--line);padding:18px 15px 26px}.section-title span,.inspector-head span{letter-spacing:.09em;text-transform:uppercase;font-size:11px;font-weight:800;display:block}.section-title small{color:var(--muted);margin-top:5px;font-size:11px;line-height:1.42;display:block}.search,.field>input:not([type=range]),.number,.setting-select{width:100%;color:var(--ink);background:var(--control-bg);border:1px solid var(--control-border);box-shadow:var(--control-shadow);border-radius:8px;transition:border-color .16s,background .16s,box-shadow .16s}.search{width:calc(100% - 12px);height:35px;margin:0 6px 9px;padding:0 10px;font-size:12px}.search:hover,.field>input:not([type=range]):hover,.number:hover,.setting-select:hover:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.search:hover,.field>input:not([type=range]):hover,.number:hover,.setting-select:hover:hover{border-color:color-mix(in srgb,var(--accent) 48%,var(--control-border))}}.search:focus,.field>input:not([type=range]):focus,.number:focus-within,.setting-select:focus{outline:var(--focus-ring-width) solid var(--accent);outline-offset:var(--focus-ring-offset);border-color:var(--accent)}.palette-group{margin-top:16px}.palette-group h2{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;margin:0 7px 6px;font-size:10px}.palette-item{width:100%;color:var(--ink);text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:9px;padding:8px;font-size:12px;display:flex}.palette-item:hover{background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.palette-item:hover{background:color-mix(in srgb,var(--accent-soft) 70%,transparent)}}.palette-item.active{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.palette-item.active{border-color:color-mix(in srgb,var(--accent) 28%,transparent)}}.palette-item.active{font-weight:750}.palette-item b{place-items:center;width:22px;font-size:18px;font-weight:500;display:grid}.canvas-section{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.drawing{min-width:0;min-height:0;padding:var(--expand-gutter);overscroll-behavior:contain;flex:1 1 0;justify-content:safe center;align-items:safe center;display:flex;position:relative;overflow:auto}.plan{background:var(--canvas);border:1px solid var(--line);max-width:none;box-shadow:var(--shadow);color:var(--ink);touch-action:none;border-radius:8px;display:block}.placing .plan{cursor:crosshair}.plan-stage .expand-handle{z-index:4;width:var(--expand-size);height:var(--expand-size);color:var(--accent);background:var(--panel);border:1px solid var(--line);border-radius:999px;place-items:center;margin:0;padding:0;display:grid;position:absolute;box-shadow:0 2px 7px #0000002e}.plan-stage .expand-handle:hover,.plan-stage .expand-handle:focus-visible{background:var(--accent-soft)}.plan-stage .expand-handle svg{width:16px;height:16px}.expand-left,.expand-right{top:50%;transform:translateY(-50%)}.expand-left{left:calc(0px - var(--expand-offset))}.expand-right{right:calc(0px - var(--expand-offset))}.expand-top,.expand-bottom{left:50%;transform:translate(-50%)}.expand-top{top:calc(0px - var(--expand-offset))}.expand-bottom{bottom:calc(0px - var(--expand-offset))}.metrics{min-height:68px;color:var(--muted);background:var(--panel);border-top:1px solid var(--line);justify-content:center;align-items:center;padding:12px 20px;display:flex}.inspector-head{justify-content:space-between;align-items:center;margin:2px 5px 16px;display:flex}.selected-name{align-items:center;gap:9px;margin:0 5px 20px;display:flex}.selected-name i{width:36px;height:36px;color:var(--accent);background:var(--accent-soft);border-radius:10px;flex:none;place-items:center;font-style:normal;display:grid}.selected-name strong,.selected-name small{display:block}.selected-name strong{font-size:14px}.selected-name small{color:var(--muted);margin-top:3px;font-size:11px;line-height:1.35}.field{min-width:0;margin:13px 5px 0;display:block}.field>span{color:var(--muted);margin-bottom:5px;font-size:11px;font-weight:750;display:block}.field>input:not([type=range]){height:36px;padding:0 9px}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.number{align-items:center;min-width:0;height:36px;display:flex;overflow:hidden}.number input{width:100%;min-width:0;color:inherit;background:0 0;border:0;outline:0;padding:0 0 0 9px}.number input:focus-visible{outline:0}.number i{color:var(--muted);flex:none;padding:0 9px;font-size:11px;font-style:normal}.number input[type=number]{appearance:textfield;font-variant-numeric:tabular-nums}.number input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}.number input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.input-conversion{color:var(--muted);margin-top:4px;font-size:10px;font-weight:650;display:block}.input-error{color:var(--danger);margin-top:4px;font-size:10px;font-weight:700;display:block}.number input[aria-invalid=true]{color:var(--danger)}.property-group{background:var(--canvas);gap:9px;min-width:0;margin-top:14px;padding:12px;display:grid}@supports (color:color-mix(in lab, red, red)){.property-group{background:color-mix(in srgb,var(--canvas) 90%,var(--panel))}}.property-group{border:1px solid var(--line);border-radius:11px}.property-group>span{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;font-size:10px;font-weight:800}.property-group .field{margin:0}.setting-select{max-width:100%;height:36px;padding:0 32px 0 9px;font-size:12px;font-weight:750;display:block}.inspector-action{width:calc(100% - 10px);min-width:0;color:var(--ink);background:var(--canvas);border:1px solid var(--line);text-align:left;border-radius:10px;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:10px;margin:10px 5px 0;padding:10px;transition:border-color .16s,background .16s,transform .16s;display:grid}.inspector-action:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.inspector-action:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}}.inspector-action:hover{background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.inspector-action:hover{background:color-mix(in srgb,var(--accent-soft) 44%,var(--canvas))}}.inspector-action:active{transform:translateY(1px)}.inspector-action.active{background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.inspector-action.active{background:color-mix(in srgb,var(--accent-soft) 62%,var(--canvas))}}.inspector-action.active{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.inspector-action.active{border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}}.inspector-action.active{box-shadow:inset 3px 0 var(--accent)}.inspector-action-icon{width:28px;height:28px;color:var(--accent);align-self:start;place-items:center;margin-top:1px;display:grid}.inspector-action-copy{min-width:0;display:block}.inspector-action-copy strong{font-size:12px;line-height:1.25;display:block}.inspector-action-copy small{color:var(--muted);margin-top:3px;font-size:10px;font-weight:550;line-height:1.38;display:block}.wall-tip,.polygon-tip{color:var(--muted);background:var(--accent-soft);margin:14px 5px;padding:10px}@supports (color:color-mix(in lab, red, red)){.wall-tip,.polygon-tip{background:color-mix(in srgb,var(--accent-soft) 68%,var(--canvas))}}.wall-tip,.polygon-tip{border:1px solid var(--accent)}@supports (color:color-mix(in lab, red, red)){.wall-tip,.polygon-tip{border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line))}}.wall-tip,.polygon-tip{border-radius:9px;font-size:11px;line-height:1.45}.position{border-top:1px solid var(--line);margin:20px 5px 0;padding-top:14px}.position span,.position small{color:var(--muted);font-size:11px;display:block}.position small{color:var(--ink);margin-top:5px}.surface{color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent);margin:16px 5px 0;padding:13px}@supports (color:color-mix(in lab, red, red)){.surface{border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}}.surface{border-radius:10px}.surface span{font-size:11px;display:block}.surface b{letter-spacing:-.04em;margin-top:3px;font-size:22px;display:block}.field.disabled,.orientation-control.disabled{opacity:.58}.orientation-input{grid-template-columns:minmax(88px,.34fr) minmax(0,1fr);align-items:center;gap:8px;display:grid}.rotation-anchor{flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px;display:flex}.rotation-anchor>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-right:3px;font-size:10px;font-weight:800}.rotation-anchor button{color:var(--muted);background:var(--canvas);border:1px solid var(--line);border-radius:6px;padding:5px 7px;font-size:11px;font-weight:750}.rotation-anchor button.active{color:var(--accent-contrast,#fff);background:var(--accent);border-color:var(--accent)}.file-menu{position:relative}.file-menu summary{list-style:none}.file-menu summary::-webkit-details-marker{display:none}.file-menu summary svg{flex:none}.file-menu-panel,.context-menu{z-index:60;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}.file-menu-panel{border-radius:10px;min-width:258px;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.file-menu-panel button{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:6px;padding:9px 10px;font-size:12px;font-weight:700;display:block}.file-menu-panel button:hover{background:var(--accent-soft)}.file-menu-item small{color:var(--muted);margin-top:3px;font-size:10px;font-weight:500;display:block}.file-menu-label{flex-wrap:wrap;gap:3px 6px;display:flex}.file-menu-item kbd{color:var(--muted);background:var(--canvas);border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:2px 5px;font-family:inherit;font-size:9px}.file-menu-divider{background:var(--line);height:1px;margin:5px 4px}.context-menu{border-radius:10px;min-width:250px;max-width:min(340px,100vw - 24px);padding:6px;position:fixed}.context-menu p{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:5px 8px 7px;font-size:10px;font-weight:800}.context-menu button{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:6px;padding:8px;font-size:12px;display:block}.context-menu button:hover{background:var(--accent-soft)}.context-menu button.action{color:var(--accent);font-weight:750}.context-menu button.danger{color:var(--danger);font-weight:750}.context-menu-candidates{background:var(--canvas);gap:2px;margin:0 0 5px;padding:2px;display:grid}@supports (color:color-mix(in lab, red, red)){.context-menu-candidates{background:color-mix(in srgb,var(--canvas) 78%,var(--panel))}}.context-menu-candidates{border:1px solid var(--line);border-radius:7px}.context-menu .context-menu-choice{justify-content:space-between;gap:12px;font-weight:700;display:flex}.context-menu-choice span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.context-menu-choice small{color:var(--muted);flex:none;font-size:10px}.overlay-inspector{padding:2px 5px}.overlay-inspector>p{color:var(--muted);margin:0 0 17px;font-size:11px;line-height:1.5}.create-floor-button{width:calc(100% - 10px);color:var(--accent);background:var(--accent-soft);border:1px dashed var(--accent);text-align:left;border-radius:8px;align-items:center;gap:6px;margin:0 5px 16px;padding:10px;font-size:12px;font-weight:800;display:flex}.overlay-actions{grid-template-columns:1fr 1fr;gap:5px;margin-bottom:18px;display:grid}.overlay-actions button,.overlay-choice{color:var(--muted);background:var(--canvas);border:1px solid var(--line);border-radius:8px;padding:8px;font-size:12px;font-weight:750}.overlay-actions button.active,.overlay-actions button:hover{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}.overlay-inspector fieldset{border:0;margin:0;padding:0}.overlay-inspector legend{color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:700}.overlay-choice{color:var(--ink);align-items:center;gap:9px;display:flex}.overlay-choice+.overlay-choice{margin-top:5px}.overlay-choice input{width:15px;height:15px;accent-color:var(--accent)}.overlay-order{border-top:1px solid var(--line);margin:18px 0 0;padding-top:15px}.overlay-order-heading h3,.overlay-order-endpoint{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:10px;font-weight:800}.overlay-order-heading p{color:var(--muted);margin:4px 0 10px;font-size:10px;line-height:1.4}.overlay-order-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.overlay-order-status{color:var(--accent);margin:9px 0 0;font-size:11px;font-weight:700;line-height:1.45}.overlay-order-item{background:var(--canvas);border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;min-height:47px;padding:6px 7px 6px 11px;display:flex}.overlay-order-item.current{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 3px 0 var(--accent)}.overlay-order-floor strong,.overlay-order-floor small{display:block}.overlay-order-floor strong{font-size:12px}.overlay-order-floor small{color:var(--muted);margin-top:2px;font-size:10px}.overlay-order-actions{gap:4px;display:flex}.overlay-order-actions button{width:29px;height:29px;color:var(--accent);background:var(--panel);border:1px solid var(--line);border-radius:6px;place-items:center;padding:0;display:grid}.overlay-order-actions button:disabled{color:var(--line)}input[type=range]{appearance:none;cursor:pointer;background:0 0;border:0;width:100%;height:22px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:var(--range-track);border-radius:999px;height:6px;box-shadow:inset 0 1px 2px #0000002e}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--range-thumb);border:2px solid var(--range-thumb-border);border-radius:50%;width:16px;height:16px;margin-top:-5px;box-shadow:0 2px 5px #0000003d}.plan-bg{fill:var(--canvas)}.plan-title{fill:var(--muted);letter-spacing:1.7px;font-size:13px;font-weight:800}.plan-subtitle{fill:var(--muted);font-size:11px}.computed-room{fill:#a9cfd4;fill-opacity:.2;stroke:#5595a0;stroke-width:1.5px;stroke-dasharray:6 4}.room{stroke:#789685;stroke-width:2px;cursor:grab}.room.selected{stroke:#33865b;stroke-width:3px;stroke-dasharray:6 4}.label{fill:#31503d;text-anchor:middle;pointer-events:none;font-size:15px;font-weight:700}.dim{fill:#577366;text-anchor:middle;pointer-events:none;font-size:11px}.wall-hit{stroke:#0000;stroke-width:30px;cursor:grab}.wall{stroke:#284c3b;stroke-width:9px;stroke-linecap:square;cursor:grab}.wall.selected{stroke:#3c9065}.wall.hidden{stroke:#8a7357;stroke-width:7px;stroke-opacity:.82;stroke-dasharray:7 5}.wall.hidden.selected{stroke:#3c9065;stroke-opacity:1}.element{cursor:grab}.element.locked{cursor:default}.selection{fill:#48a976;fill-opacity:.1;stroke:#42a372;stroke-width:2px;stroke-dasharray:5 3}.opening{fill:none;stroke:#4b9db3;stroke-width:8px}.opening-detail{stroke:#d9f4fb;stroke-width:2px}.swing{fill:none;stroke:#a66f42;stroke-width:1.7px;stroke-dasharray:4 3}.garage{stroke:#c78652;stroke-width:11px}.garage-detail{stroke:#f4d3ad;stroke-width:1.5px}.vehicle{fill:#dce7df;stroke:#4f7560;stroke-width:2px}.vehicle-window{fill:#a9cad3;stroke:#5a8994;stroke-width:1.5px}.vehicle-line,.tree-mark,.bike,.wheel{fill:none;stroke:#4d6658;stroke-width:3px}.garden{fill:#b9d5a9;stroke:#628c5c;stroke-width:2px}.pool{fill:#9bd6e5;stroke:#4b9eb3;stroke-width:2px}.terrace{fill:#e3d3b7;stroke:#a78a67;stroke-width:2px;stroke-dasharray:5 2}.tank{fill:#dfe4e0;stroke:#6f7f76;stroke-width:2px}.tank-lid{fill:#c6cfc9;stroke:#56665d;stroke-width:2px}.tank-detail{fill:none;stroke:#56665d;stroke-width:1.5px}.furniture{fill:#e7d2b2;stroke:#896d4e;stroke-width:2px}.furniture-detail{fill:none;stroke:#896d4e;stroke-width:1.6px}.sink-bowl{fill:#b7dfeb;stroke:#4d8fa4;stroke-width:1.5px}.stair{fill:#f8f8f1;stroke:#49564d;stroke-width:2px}.stair-step{fill:none;stroke:#6d7e72;stroke-width:1.2px}.technical{fill:#d5e3e9;stroke:#386879;stroke-width:2px}.technical-detail,.sanitary-detail{fill:none;stroke:#386879;stroke-width:1.5px}.technical-hole{fill:#386879}.sanitary{fill:#e8eef0;stroke:#527382;stroke-width:2px}.north circle{fill:var(--panel);stroke:var(--line)}.north path{fill:var(--accent)}.north text{fill:var(--muted);text-anchor:middle;font-size:10px;font-weight:800}.wall-guide{stroke:#4d9c70;stroke-width:1px;stroke-opacity:.48;stroke-dasharray:7 6}.placement-preview{opacity:.68}.preview-wall{stroke:var(--accent);stroke-width:9px;stroke-linecap:square;stroke-dasharray:10 6}.preview-room{fill:#4ea3751f;stroke:var(--accent);stroke-width:2px;stroke-dasharray:7 5}.preview-opening{fill:none;stroke:#4b9db3;stroke-width:8px;stroke-dasharray:8 5}.preview-point{fill:var(--panel);stroke:var(--accent);stroke-width:3px}.floor-overlay{opacity:.42}.overlay-room{fill:#8fc0cc;fill-opacity:.16;stroke:#4d8e9c;stroke-width:1.5px;stroke-dasharray:5 4}.overlay-wall{stroke:#4b7985;stroke-width:7px;stroke-linecap:square;stroke-dasharray:7 5}.overlay-element{fill:#769da5;fill-opacity:.14;stroke:#4b7985;stroke-width:2px;stroke-dasharray:4 3}:root:not([data-plan-rulers]) .wall-dimension{display:none}html[data-theme=dark] :is(.app .wall){stroke:#91c7a7}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .wall){stroke:#91c7a7}}html[data-theme=dark] :is(.app .wall.selected){stroke:#76d99d}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .wall.selected){stroke:#76d99d}}html[data-theme=dark] :is(.app .label,.app .dim){fill:#c8ddcf}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .label,.app .dim){fill:#c8ddcf}}html[data-theme=dark] :is(.app .opening){stroke:#8ed1e4}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .opening){stroke:#8ed1e4}}html[data-theme=dark] :is(.app .opening-detail){stroke:#cff0f6}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .opening-detail){stroke:#cff0f6}}html[data-theme=dark] :is(.app .garage){stroke:#eab882}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .garage){stroke:#eab882}}html[data-theme=dark] :is(.app .garage-detail){stroke:#f7d8b2}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .garage-detail){stroke:#f7d8b2}}html[data-theme=dark] :is(.app .vehicle-line,.app .tree-mark,.app .bike,.app .wheel){stroke:#c8e3d1}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .vehicle-line,.app .tree-mark,.app .bike,.app .wheel){stroke:#c8e3d1}}html[data-theme=dark] :is(.app .technical-detail,.app .sanitary-detail,.app .technical-hole){stroke:#6fa2ae;fill:#6fa2ae}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .technical-detail,.app .sanitary-detail,.app .technical-hole){stroke:#6fa2ae;fill:#6fa2ae}}html[data-theme=dark] :is(.app .dimension-extension){stroke:#dff4e6;stroke-opacity:.58}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .dimension-extension){stroke:#dff4e6;stroke-opacity:.58}}html[data-theme=dark] :is(.app .dimension-line,.app .dimension-arrow){stroke:#e9fff0;stroke-opacity:.82}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .dimension-line,.app .dimension-arrow){stroke:#e9fff0;stroke-opacity:.82}}html[data-theme=dark] :is(.app .dimension-chip){fill:#102017;stroke:#8eb49a}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .dimension-chip){fill:#102017;stroke:#8eb49a}}html[data-theme=dark] :is(.app .dimension-leader){stroke:#dff4e6;stroke-opacity:.6}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .dimension-leader){stroke:#dff4e6;stroke-opacity:.6}}html[data-theme=dark] :is(.app .wall-dimension .wall-dim){fill:#f7fff9;font-weight:700}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .wall-dimension .wall-dim){fill:#f7fff9;font-weight:700}}.rotation-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}.rotation-quick-actions button{min-height:34px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent);justify-content:center;align-items:center;gap:6px;padding:6px 9px;display:flex}@supports (color:color-mix(in lab, red, red)){.rotation-quick-actions button{border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line))}}.rotation-quick-actions button{border-radius:8px;font-size:11px;font-weight:800}.rotation-quick-actions button:hover:not(:disabled){background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.rotation-quick-actions button:hover:not(:disabled){background:color-mix(in srgb,var(--accent-soft) 68%,var(--accent))}}.rotation-quick-actions button:disabled{cursor:not-allowed}.resize-guide{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:3 3;pointer-events:none}.resize-handle{fill:var(--panel);stroke:var(--accent);stroke-width:2.5px;pointer-events:all;cursor:nwse-resize}.selection-anchor{cursor:move;filter:drop-shadow(0 1px 2px #0000002e)}.pivot-dot{fill:var(--accent);stroke:var(--panel);stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:none}.resize-width{cursor:ew-resize}.resize-height{cursor:ns-resize}.room-label{color:#10271d;text-anchor:middle}.room-label-name{fill:currentColor;letter-spacing:.01em;font-size:12px;font-weight:700}.computed-room-label text{fill:#52766c;fill-opacity:.68;letter-spacing:.04em;font-size:9px;font-weight:650}.dimension-extension{fill:none;stroke:#6a8275;stroke-width:.7px;stroke-opacity:.34}.dimension-line{fill:none;stroke:#587263;stroke-width:.8px;stroke-opacity:.5}.dimension-arrow{fill:none;stroke:#587263;stroke-width:.9px;stroke-opacity:.54}.dimension-chip{fill:var(--canvas)}@supports (color:color-mix(in lab, red, red)){.dimension-chip{fill:color-mix(in srgb,var(--canvas) 94%,var(--panel))}}.dimension-chip{stroke:#58726352;stroke-width:.6px;display:none}.wall-dimension .wall-dim{fill:#587263;fill-opacity:.72;letter-spacing:.015em;font-weight:700}.object-dim{font-size:10px}.dimension-leader{fill:none;stroke:#587263;stroke-width:.8px;stroke-dasharray:3 3;stroke-opacity:.6}html[data-theme=dark] :is(.app .computed-room-label text){fill:#b8d5c8;fill-opacity:.72}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .computed-room-label text){fill:#b8d5c8;fill-opacity:.72}}.snap-geometry-tip{color:var(--muted);margin:12px 5px 0;font-size:10px;line-height:1.4}.inspector-head-actions{align-items:center;gap:4px;display:flex}.app :where(a,button,summary,input,select,textarea,[tabindex]:not([tabindex="-1"])):focus-visible{outline:var(--focus-ring-width) solid var(--accent);outline-offset:var(--focus-ring-offset)}.library{position:relative}.library-content{min-width:0}.section-title{margin:2px 7px 17px;padding-right:30px}.library-toggle{z-index:3;width:30px;height:30px;color:var(--accent);background:var(--canvas);border:1px solid var(--line);border-radius:8px;place-items:center;padding:0;display:grid;position:absolute;top:12px;right:8px}.library-toggle:hover,.library-toggle:focus-visible{background:var(--accent-soft);border-color:var(--accent)}.library-toggle svg{width:18px;height:18px}@media (min-width:768px){.workspace.library-collapsed{grid-template-columns:48px 32px minmax(0,1fr) 290px}.library.collapsed{flex-direction:column;align-items:stretch;padding:0;display:flex;overflow:hidden}.library.collapsed .library-content,.library.collapsed .panel-close{display:none}.library.collapsed .library-toggle{width:100%;height:auto;color:var(--muted);font:inherit;letter-spacing:.04em;cursor:pointer;background:0 0;border:0;border-radius:0;flex-direction:column;flex:auto;justify-content:flex-start;align-items:center;gap:8px;padding:12px 0;font-size:12px;font-weight:650;display:flex;position:static}.library.collapsed .library-toggle:hover,.library.collapsed .library-toggle:focus-visible{color:var(--accent);background:var(--accent-soft)}.library.collapsed .library-toggle:focus-visible{outline-offset:-3px}.library.collapsed .library-toggle svg{flex:none;width:16px;height:16px}.library.collapsed .library-tab-label{writing-mode:vertical-rl;white-space:nowrap;transform:rotate(180deg)}.library:not(.collapsed) .library-tab-label{display:none}}.plan-stage{flex:none;min-width:1px;min-height:1px;margin:0;position:relative}.top-actions .icon-button{line-height:1}.ui-icon-button{width:34px;height:34px;color:var(--ink);border:1px solid var(--line);background:0 0;border-radius:8px;flex:none;place-items:center;padding:0;text-decoration:none;transition:color .16s,background .16s,border-color .16s;display:inline-grid}.ui-icon-button:hover,.ui-icon-button:focus-visible{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.ui-icon-button:hover,.ui-icon-button:focus-visible{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}}.ui-icon-button.danger{color:var(--danger);border-color:#0000}.ui-icon-button.danger:hover,.ui-icon-button.danger:focus-visible{color:var(--danger);background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.ui-icon-button.danger:hover,.ui-icon-button.danger:focus-visible{background:color-mix(in srgb,var(--danger) 13%,transparent)}}.ui-icon-button.danger:hover,.ui-icon-button.danger:focus-visible{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.ui-icon-button.danger:hover,.ui-icon-button.danger:focus-visible{border-color:color-mix(in srgb,var(--danger) 28%,transparent)}}.segmented-control{background:var(--control-bg);border:1px solid var(--control-border);border-radius:9px;gap:4px;min-width:0;max-width:100%;padding:3px;display:flex}.segmented-control button{min-width:0;min-height:30px;color:var(--muted);overflow-wrap:anywhere;background:0 0;border:0;border-radius:6px;flex:1 1 0;padding:6px 10px;font-size:11px;font-weight:750;line-height:1.25}.segmented-control button:hover:not(:disabled){color:var(--ink);background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.segmented-control button:hover:not(:disabled){background:color-mix(in srgb,var(--accent-soft) 58%,transparent)}}.segmented-control button.active{color:var(--accent-contrast,#fff);background:var(--accent);box-shadow:0 1px 3px #00000029}.range-control{--range-progress:0%;appearance:none;cursor:pointer;background:0 0;border:0;width:100%;min-width:80px;height:24px;margin:0;padding:0}.range-control::-webkit-slider-runnable-track{background:linear-gradient(to right,var(--range-thumb) 0 var(--range-progress),var(--range-track) var(--range-progress) 100%);border:1px solid var(--control-border);height:7px}@supports (color:color-mix(in lab, red, red)){.range-control::-webkit-slider-runnable-track{border:1px solid color-mix(in srgb,var(--control-border) 72%,transparent)}}.range-control::-webkit-slider-runnable-track{border-radius:999px;box-shadow:inset 0 1px 2px #0003}.range-control::-webkit-slider-thumb{appearance:none;background:var(--range-thumb);border:3px solid var(--range-thumb-border);border-radius:50%;width:18px;height:18px;margin-top:-6px;box-shadow:0 2px 6px #00000047}.range-control::-moz-range-track{background:linear-gradient(to right,var(--range-thumb) 0 var(--range-progress),var(--range-track) var(--range-progress) 100%);border:1px solid var(--control-border);height:7px}@supports (color:color-mix(in lab, red, red)){.range-control::-moz-range-track{border:1px solid color-mix(in srgb,var(--control-border) 72%,transparent)}}.range-control::-moz-range-track{border-radius:999px;box-shadow:inset 0 1px 2px #0003}.range-control::-moz-range-thumb{background:var(--range-thumb);border:3px solid var(--range-thumb-border);border-radius:50%;width:14px;height:14px;box-shadow:0 2px 6px #00000047}.range-control:disabled{opacity:.5;cursor:not-allowed}.settings-dialog{width:100%;max-width:520px;max-height:min(92dvh,820px);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:16px;outline:0;flex-direction:column;padding:0;display:flex;overflow-y:auto;box-shadow:0 24px 70px #00000057}.settings-dialog-head{z-index:2;background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;min-width:0;padding:16px 22px 12px;display:flex;position:sticky;top:0}.settings-dialog-head>div{min-width:0}.settings-dialog-head h2{margin:0;font-size:18px;font-weight:700;line-height:1.25}.settings-dialog-head p{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.4}.settings-close{width:32px;height:32px;color:var(--muted);border-color:#0000}.settings-body{gap:16px;padding:14px 22px 16px;display:grid}.settings-section h3{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;padding:0 2px;font-size:11px;font-weight:800;line-height:1.3}.settings-rows{background:var(--canvas);border:1px solid var(--line);border-radius:12px;display:grid}.settings-row{justify-content:space-between;align-items:center;gap:20px;min-width:0;min-height:50px;padding:9px 14px;display:flex}.settings-row+.settings-row{border-top:1px solid var(--line)}.settings-row-text{flex:auto;gap:3px;min-width:0;display:grid}.settings-row-label{overflow-wrap:anywhere;font-size:13px;font-weight:700;line-height:1.35}.settings-row-hint{color:var(--muted);overflow-wrap:anywhere;font-size:12px;line-height:1.4}.settings-row-control{flex:0 auto;justify-content:flex-end;min-width:0;max-width:60%;display:flex}.settings-row-control>.setting-select,.settings-row-control>.segmented-control{width:236px;max-width:100%}.settings-row-control>.setting-select{min-height:36px;padding:0 10px;font-size:13px}.settings-row-control .segmented-control button{min-height:32px;font-size:12px}.settings-row.stacked{flex-direction:column;align-items:stretch;gap:8px}.settings-row.stacked .settings-row-control{max-width:none}.settings-row.stacked .settings-row-control>.segmented-control{flex-wrap:wrap;width:100%}.settings-row.stacked .segmented-control button{white-space:nowrap;flex:auto;padding:6px 8px}.settings-row.toggle .settings-row-control{flex:none}.switch-setting{cursor:pointer;align-items:center;display:inline-flex;position:relative}.switch-setting input{opacity:0;width:100%;height:100%;cursor:inherit;margin:0;position:absolute;inset:0}.switch-setting i{background:var(--muted);width:40px;height:24px;position:relative}@supports (color:color-mix(in lab, red, red)){.switch-setting i{background:color-mix(in srgb,var(--muted) 58%,var(--control-bg))}}.switch-setting i{border-radius:999px;transition:background .16s}.switch-setting i:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch-setting input:checked+i{background:var(--accent)}.switch-setting input:checked+i:after{background:var(--accent-contrast,#fff);transform:translate(16px)}.switch-setting input:focus-visible+i{outline:var(--focus-ring-width) solid var(--accent);outline-offset:var(--focus-ring-offset)}.switch-setting input:disabled{cursor:not-allowed}.switch-setting input:disabled+i{opacity:.45}.settings-footer{z-index:2;background:var(--panel);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:10px 22px;display:flex;position:sticky;bottom:0}.settings-copyright{min-width:0;color:var(--muted);font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:12px}.settings-submit{min-width:120px;min-height:38px;color:var(--accent-contrast,#fff);background:var(--accent);cursor:pointer;border:0;border-radius:9px;flex:none;padding:8px 20px;font-size:14px;font-weight:800}.settings-submit:hover{filter:brightness(1.06)}.support-dialog{width:100%;max-width:400px;color:var(--ink);background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:16px;justify-items:center;padding:28px;display:grid;box-shadow:0 24px 70px #00000057}.support-dialog>svg{color:var(--accent);margin-bottom:14px}.support-dialog h2{letter-spacing:-.025em;margin:0;font-size:20px;line-height:1.2}.support-dialog p{max-width:32ch;color:var(--muted);margin:10px 0 22px;font-size:13px;line-height:1.55}.donation-dialog .cup{width:96px;height:auto;margin-bottom:14px;overflow:visible}.donation-dialog .cup-saucer{fill:var(--panel);stroke:var(--ink);stroke-width:2px}.donation-dialog .cup-body,.donation-dialog .cup-handle{fill:var(--control-bg);stroke:var(--ink);stroke-width:2px}.donation-dialog .cup-coffee{fill:#7a4a2a}.donation-dialog .cup-steam{fill:none;stroke:#f3e2cf;stroke-width:2px;stroke-linecap:round;opacity:.8}.donation-dialog .cup-dimension{fill:none;stroke:var(--accent);stroke-width:1.5px}.donation-dialog .cup-dimension-text{font-family:var(--font-geist-mono),ui-monospace,monospace;fill:var(--accent);text-anchor:middle;font-size:14px;font-weight:600}.support-link{min-width:190px;min-height:42px;color:var(--accent-contrast,#fff);background:var(--accent);border:1px solid var(--accent);box-shadow:0 5px 14px var(--accent);border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:800;text-decoration:none;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.support-link{box-shadow:0 5px 14px color-mix(in srgb,var(--accent) 24%,transparent)}}.support-link:hover{filter:brightness(1.08)}.snap-mark{fill:none;stroke:var(--accent);stroke-width:2.5px;vector-effect:non-scaling-stroke;pointer-events:none}.snap-mark-wall{stroke:#247f9b}.share-dialog{max-width:460px}.share-dialog p{max-width:42ch;margin-bottom:16px}.share-link{width:100%;color:var(--ink);background:var(--control-bg);border:1px solid var(--control-border);font-family:var(--font-geist-mono),ui-monospace,monospace;text-overflow:ellipsis;border-radius:9px;padding:10px 12px;font-size:12px}.share-dialog .share-size{margin:6px 0 18px;font-size:11px}.share-dialog .support-link:disabled{opacity:.6;cursor:progress}.share-dialog .support-link{gap:8px}.bug-dialog{max-width:440px}.bug-dialog p{max-width:40ch;margin-bottom:12px}.bug-checklist{width:100%;color:var(--ink);background:var(--control-bg);border:1px solid var(--line);text-align:left;border-radius:10px;gap:6px;margin:0 0 22px;padding:12px 14px 12px 30px;font-size:13px;line-height:1.45;list-style:outside;display:grid}.bug-dialog .bug-address{margin:16px 0 4px;font-size:12px}.bug-address strong{color:var(--ink);font-family:var(--font-geist-mono),ui-monospace,monospace;font-weight:600}.bug-copy{align-items:center;gap:6px;margin-top:4px;display:inline-flex}.support-later{color:var(--muted);background:0 0;border:0;border-radius:7px;margin-top:10px;padding:8px 12px;font-size:12px;font-weight:700}.support-later:hover{color:var(--ink);background:var(--control-bg)}.inspector{overflow-x:hidden}.inspector :where(.selected-name>div,.property-group,.field,.field-grid,.orientation-input,.rotation-anchor,.segmented-control,.inspector-action-copy,.overlay-order-floor){min-width:0;max-width:100%}.inspector :where(strong,small,p,span,button,option){overflow-wrap:anywhere}.inspector .selected-name{min-width:0}.inspector .selected-name>div{overflow:hidden}.field-hint{color:var(--muted);margin:-3px 0 0;font-size:11px;font-weight:550;line-height:1.4;display:block}.inspector .property-group,.inspector .orientation-control{width:calc(100% - 10px)}.inspector .property-group .segmented-control{width:100%}.inspector .rotation-anchor{grid-template-columns:auto minmax(0,1fr);display:grid}.inspector-head .ui-icon-button{width:28px;height:28px}html[data-theme=dark] .app{--accent-contrast:#0a2013}@media (prefers-color-scheme:dark){html[data-theme=system] .app{--accent-contrast:#0a2013}}html[data-theme=dark] :is(.app .room){stroke:#8fc5a5;fill-opacity:.2}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .room){stroke:#8fc5a5;fill-opacity:.2}}html[data-theme=dark] :is(.app .room.selected){fill-opacity:.28;stroke:#78e0a2}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .room.selected){fill-opacity:.28;stroke:#78e0a2}}html[data-theme=dark] :is(.app .label,.app .dim,.app .plan-title,.app .plan-subtitle){fill:#e8f5ec;paint-order:stroke;stroke:#16271d;stroke-width:3px;stroke-linejoin:round}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .label,.app .dim,.app .plan-title,.app .plan-subtitle){fill:#e8f5ec;paint-order:stroke;stroke:#16271d;stroke-width:3px;stroke-linejoin:round}}html[data-theme=dark] :is(.app .computed-room){fill:#397989;fill-opacity:.22;stroke:#79bdca}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .computed-room){fill:#397989;fill-opacity:.22;stroke:#79bdca}}html[data-theme=dark] :is(.app .selection){fill:#6ee49d;fill-opacity:.14;stroke:#76d99d}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .selection){fill:#6ee49d;fill-opacity:.14;stroke:#76d99d}}html[data-theme=dark] :is(.app .wall.hidden){stroke:#d3a56f}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .wall.hidden){stroke:#d3a56f}}html[data-theme=dark] :is(.app .swing){stroke:#f0ad70}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .swing){stroke:#f0ad70}}html[data-theme=dark] :is(.app .vehicle){fill:#294438;stroke:#a7d8ba}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .vehicle){fill:#294438;stroke:#a7d8ba}}html[data-theme=dark] :is(.app .vehicle-window){fill:#315966;stroke:#a9dce7}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .vehicle-window){fill:#315966;stroke:#a9dce7}}html[data-theme=dark] :is(.app .garden){fill:#29482d;stroke:#86c184}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .garden){fill:#29482d;stroke:#86c184}}html[data-theme=dark] :is(.app .pool){fill:#1d5260;stroke:#83d2e3}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .pool){fill:#1d5260;stroke:#83d2e3}}html[data-theme=dark] :is(.app .terrace){fill:#4a3b2a;stroke:#d4ad7f}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .terrace){fill:#4a3b2a;stroke:#d4ad7f}}html[data-theme=dark] :is(.app .tank){fill:#2f3833;stroke:#9db1a5}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .tank){fill:#2f3833;stroke:#9db1a5}}html[data-theme=dark] :is(.app .tank-lid){fill:#262e2a;stroke:#b4c6ba}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .tank-lid){fill:#262e2a;stroke:#b4c6ba}}html[data-theme=dark] :is(.app .tank-detail){stroke:#b4c6ba}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .tank-detail){stroke:#b4c6ba}}html[data-theme=dark] :is(.app .furniture){fill:#493b29;stroke:#e6c99e}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .furniture){fill:#493b29;stroke:#e6c99e}}html[data-theme=dark] :is(.app .furniture-detail,.app .sink-bowl){stroke:#eed8b6;fill:none}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .furniture-detail,.app .sink-bowl){stroke:#eed8b6;fill:none}}html[data-theme=dark] :is(.app .stair){fill:#2d3e33;stroke:#bdd8c6}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .stair){fill:#2d3e33;stroke:#bdd8c6}}html[data-theme=dark] :is(.app .stair-step){stroke:#a9c8b3}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .stair-step){stroke:#a9c8b3}}html[data-theme=dark] :is(.app .technical,.app .sanitary){fill:#27454c;stroke:#b8e6ee}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .technical,.app .sanitary){fill:#27454c;stroke:#b8e6ee}}html[data-theme=dark] :is(.app .technical-detail,.app .sanitary-detail){fill:none;stroke:#a7d9e2}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .technical-detail,.app .sanitary-detail){fill:none;stroke:#a7d9e2}}html[data-theme=dark] :is(.app .technical-hole){fill:#a7d9e2;stroke:#a7d9e2}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .technical-hole){fill:#a7d9e2;stroke:#a7d9e2}}html[data-theme=dark] :is(.app .floor-overlay){opacity:.58}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .floor-overlay){opacity:.58}}html[data-theme=dark] :is(.app .overlay-room){fill:#438d9d;fill-opacity:.18;stroke:#8bcbd7}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .overlay-room){fill:#438d9d;fill-opacity:.18;stroke:#8bcbd7}}html[data-theme=dark] :is(.app .overlay-wall,.app .overlay-element){stroke:#8bcbd7}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .overlay-wall,.app .overlay-element){stroke:#8bcbd7}}html[data-theme=dark] :is(.app .overlay-element){fill:#438d9d;fill-opacity:.13}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .overlay-element){fill:#438d9d;fill-opacity:.13}}html[data-theme=dark] :is(.app .preview-room){fill:#69ca91;fill-opacity:.13}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .preview-room){fill:#69ca91;fill-opacity:.13}}html[data-theme=dark] :is(.app .preview-opening){stroke:#8ed1e4}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .preview-opening){stroke:#8ed1e4}}.panel-close,.panel-scrim{display:none}@media (max-width:1099px){.app{flex-direction:column;height:100dvh;min-height:0;display:flex;overflow:hidden}.workspace{flex:1 1 0;height:auto;min-height:0;overflow:hidden}.canvas-section{min-height:0}.panel-close{display:inline-grid}.panel-scrim{z-index:75;background:#0918116b;display:block;position:fixed;inset:0}.inspector{z-index:80;width:min(340px,82vw);padding-top:env(safe-area-inset-top);transition:transform .22s;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-18px 0 36px #00000038}.inspector.panel-open{transform:none}.inspector .inspector-head{z-index:2;background:var(--panel);margin:0 5px 14px;padding:18px 0 10px;position:sticky;top:0}.panel-close,.inspector-head .ui-icon-button{width:40px;height:40px}.palette-item{min-height:44px}:root{--expand-size:32px;--expand-offset:36px;--expand-gutter:42px}.overlay-order-actions button{width:36px;height:36px}.settings-dialog,.support-dialog{max-height:min(88dvh,760px);overflow-y:auto}.donation-dialog{max-height:none;overflow:visible}}@media (max-width:1099px) and (min-width:768px){.workspace,.workspace.library-collapsed{grid-template-columns:auto minmax(0,1fr)}.library .panel-close{display:none}.library{width:212px}.library.collapsed{width:32px}.metrics{gap:12px}}@media (max-width:767px){.topbar{gap:10px;min-height:56px;padding:0 12px}.brand strong{font-size:17px}.top-actions{gap:5px;margin-left:auto}.support-button{width:34px;padding:0}.support-button span,.file-menu-text{display:none}.file-menu summary{width:34px;padding:0}.top-actions{position:relative}.file-menu{position:static}.file-menu-panel{max-width:calc(100vw - 24px)}.workspace{flex-direction:column;display:flex}.canvas-section{flex:1 1 0}.context-row{gap:8px;min-height:46px;padding:0 10px}.drawing{-webkit-overflow-scrolling:touch}.library,.inspector{z-index:80;width:auto;max-height:min(74dvh,600px);padding:0 14px calc(16px + env(safe-area-inset-bottom));border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;transition:transform .24s;position:fixed;inset:auto 0 0;overflow-x:hidden;transform:translateY(100%);box-shadow:0 -14px 34px #00000042}.library.panel-open,.inspector.panel-open{transform:none}.library{flex-direction:column;padding-top:22px;display:flex;overflow-y:hidden}.library .library-content{flex:auto;min-height:0;overflow-y:auto}.inspector{overflow-y:auto}.inspector .inspector-head{padding-top:22px}.library:before,.inspector .inspector-head:before{content:"";background:var(--line);border-radius:999px;width:44px;height:4px;position:absolute;top:9px;left:50%;transform:translate(-50%)}.panel-close{z-index:2;position:absolute;top:16px;right:12px}.inspector .panel-close{position:static}.library.collapsed{display:flex}.library .library-toggle{display:none}.library .library-content,.library.collapsed .library-content{width:auto;min-width:0;display:block}.library .section-title,.library.collapsed .section-title{margin:4px 6px 12px;padding-right:44px;display:block}.library .palette-group h2,.library.collapsed .palette-group h2,.library .palette-item span,.library.collapsed .palette-item span{display:block}.library .search,.library.collapsed .search{width:100%;height:42px;margin:0 0 4px;display:block}.library .palette-group,.library.collapsed .palette-group{border:0;width:auto;margin:14px 0 0;padding:0;display:block}.library .palette-item,.library.collapsed .palette-item{justify-content:flex-start;width:100%;min-height:46px;padding:9px 8px}.library .palette-item b,.library.collapsed .palette-item b{flex:0 0 24px}.metrics{min-height:0;padding:9px 10px calc(9px + env(safe-area-inset-bottom));flex-wrap:wrap;gap:8px}.context-menu{max-width:none;max-height:70dvh;padding:10px 10px calc(10px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;overflow-y:auto;inset:auto 0 0!important}.context-menu button{min-height:44px}.library,.library.collapsed,.inspector{padding-right:calc(14px + env(safe-area-inset-right));padding-left:calc(14px + env(safe-area-inset-left))}.context-menu{padding-right:calc(10px + env(safe-area-inset-right));padding-left:calc(10px + env(safe-area-inset-left))}.settings-dialog-head{padding:16px 16px 12px}.settings-body{gap:20px;padding:16px}.settings-row{padding:12px}.settings-row.side{flex-direction:column;align-items:stretch;gap:10px}.settings-row.side .settings-row-control{max-width:none}.settings-row.side .settings-row-control>.setting-select,.settings-row.side .settings-row-control>.segmented-control{width:100%}.settings-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom));text-align:center;flex-direction:column-reverse;align-items:stretch;gap:10px}.settings-submit{width:100%}.support-dialog{max-width:360px;padding:24px 20px}}@media (max-width:1099px) and (max-height:500px){.topbar{min-height:48px;padding:0 calc(12px + env(safe-area-inset-right)) 0 calc(12px + env(safe-area-inset-left))}.context-row{min-height:40px;padding:0 calc(10px + env(safe-area-inset-right)) 0 calc(10px + env(safe-area-inset-left))}.metrics{min-height:0;padding:6px calc(10px + env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) calc(10px + env(safe-area-inset-left));flex-wrap:nowrap;gap:10px}.library,.inspector{max-height:92dvh}}@media (max-width:539px) and (max-height:500px){.metrics{padding:6px calc(10px + env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) calc(10px + env(safe-area-inset-left));flex-wrap:wrap;gap:8px}}@media (min-width:768px) and (max-width:1099px) and (max-height:500px){.library{padding-left:calc(12px + env(safe-area-inset-left))}.library.collapsed{padding-left:calc(10px + env(safe-area-inset-left))}.inspector{padding-right:calc(15px + env(safe-area-inset-right))}}.stepper-caption{color:var(--muted);margin-bottom:5px;font-size:11px;font-weight:750;display:block}.stepper{align-items:stretch;gap:4px;min-width:0;display:flex}.stepper .number{flex:1 1 0;min-width:0}.step-button{width:34px;min-height:36px;color:var(--accent);background:var(--control-bg);border:1px solid var(--control-border);box-shadow:var(--control-shadow);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:8px;flex:none;place-items:center;padding:0;transition:color .16s,background .16s,border-color .16s;display:grid}.step-button:hover:not(:disabled),.step-button:active:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.step-button:hover:not(:disabled),.step-button:active:not(:disabled){border-color:color-mix(in srgb,var(--accent) 48%,var(--control-border))}}.step-button:disabled{opacity:.45}.step-button svg{flex:none}.stepper-pair{grid-template-columns:minmax(0,1fr);gap:6px;display:grid}.stepper-readout{color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;margin:0 0 5px;font-size:11px;font-weight:700;display:block}.stepper-field.imperial{grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:8px;display:grid}.stepper-field.imperial>.stepper-pair,.stepper-field.imperial>.input-conversion,.stepper-field.imperial>.input-error{grid-column:1/-1}.field-grid.stepper-grid{grid-template-columns:minmax(0,1fr)}.stepper-field.disabled .stepper-caption{opacity:.7}.quick-toolbox-anchor,.panel-collapse{display:none}@media (max-width:1099px){.panel-collapse{display:inline-grid}.inspector-head .panel-collapse{width:40px;height:40px}.quick-toolbox-anchor{z-index:40;height:0;margin:0 env(safe-area-inset-right) 0 env(safe-area-inset-left);pointer-events:none;flex:0 0 0;display:block;position:relative}.quick-toolbox{right:10px;bottom:calc(10px + var(--qt-lift,0px));width:min(330px,100% - 20px);color:var(--ink);background:var(--panel);border:1px solid var(--line);pointer-events:auto;touch-action:manipulation;-webkit-user-select:none;user-select:none;border-radius:14px;gap:8px;padding:8px 10px 10px 4px;animation:.18s ease-out quick-toolbox-in;display:grid;position:absolute;box-shadow:0 14px 34px #00000038}.quick-toolbox[data-placed]{right:auto;left:var(--qt-left)}.quick-toolbox.dragging{box-shadow:0 20px 44px #00000052}.quick-toolbox input{-webkit-user-select:text;user-select:text}.quick-toolbox-head{align-items:center;gap:8px;min-width:0;display:flex}.quick-toolbox-head i{width:30px;height:30px;color:var(--accent);background:var(--accent-soft);border-radius:9px;flex:none;place-items:center;display:grid}.quick-toolbox-head strong{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:14px;overflow:hidden}.quick-toolbox-head .ui-icon-button{width:40px;height:40px}.quick-toolbox-handle{width:26px;height:40px;color:var(--muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.quick-toolbox.dragging .quick-toolbox-handle{cursor:grabbing}.quick-toolbox-handle:hover,.quick-toolbox-handle:focus-visible{color:var(--accent);background:var(--accent-soft)}.quick-toolbox-body{gap:8px;padding-left:6px;display:grid}.quick-toolbox-summary{color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent);justify-content:space-between;align-items:baseline;gap:10px;margin-left:6px;padding:8px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.quick-toolbox-summary{border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}}.quick-toolbox-summary{border-radius:10px}.quick-toolbox-summary span{font-size:11px;font-weight:750}.quick-toolbox-summary b{letter-spacing:-.03em;font-size:18px}.quick-toolbox-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.quick-toolbox-fields.imperial{grid-template-columns:minmax(0,1fr)}.quick-toolbox-fields.imperial .stepper-pair{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-toolbox .field{margin:0}.quick-toolbox .field>span,.quick-toolbox .stepper-caption{white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;overflow:hidden}.quick-toolbox .stepper-readout{margin:0 0 3px}.quick-toolbox .number{height:38px}.quick-toolbox .step-button{min-height:38px}.quick-toolbox .number input{font-size:16px}.quick-toolbox .input-conversion{display:none}.quick-toolbox-actions{flex-wrap:wrap;gap:8px;display:flex}.quick-toolbox-turns{flex:2 128px;gap:8px;min-width:0;display:flex}.quick-action{min-width:0;min-height:40px;color:var(--ink);background:var(--canvas);border:1px solid var(--line);white-space:nowrap;border-radius:9px;flex:1 1 0;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:750;transition:color .16s,background .16s,border-color .16s;display:flex}.quick-action svg{flex:none}.quick-lock{flex:0 0 44px}.quick-toolbox-pivot{background:var(--canvas);border:1px solid var(--line);border-radius:9px;flex:132px;gap:2px;min-width:0;padding:2px;display:flex}.quick-segment svg{display:none}.quick-segment{min-width:0;min-height:34px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:7px;flex:1 1 0;padding:0 8px;font-size:12px;font-weight:750;transition:color .16s,background .16s;overflow:hidden}.quick-segment:hover:not(:disabled):not([aria-pressed=true]){color:var(--ink);background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.quick-segment:hover:not(:disabled):not([aria-pressed=true]){background:color-mix(in srgb,var(--accent-soft) 58%,transparent)}}.quick-segment[aria-pressed=true]{color:var(--accent-contrast,#fff);background:var(--accent)}.quick-segment:disabled:not([aria-pressed=true]){opacity:.45}.quick-action:hover:not(:disabled),.quick-action:focus-visible{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.quick-action:hover:not(:disabled),.quick-action:focus-visible{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}}.quick-action[aria-pressed=true]{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.quick-action[aria-pressed=true]{border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}}.quick-action[aria-pressed=true]{box-shadow:inset 3px 0 var(--accent)}.quick-action:disabled:not([aria-pressed=true]){opacity:.45}html[data-theme=dark] :is(.app .quick-toolbox){box-shadow:0 14px 34px #00000085}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .quick-toolbox){box-shadow:0 14px 34px #00000085}}}@media (max-width:539px),(max-width:767px) and (min-height:501px){.quick-toolbox,.quick-toolbox[data-placed]{left:10px;right:10px;bottom:calc(8px + var(--qt-keyboard,0px));width:auto;padding:8px 10px 10px}.quick-toolbox-handle{display:none}.quick-toolbox-head{touch-action:none}.quick-toolbox-body{padding-left:0}.quick-toolbox-summary{margin-left:0}}@media (max-width:359px){.quick-toolbox .stepper .number i{display:none}}@media (min-width:540px) and (max-width:1099px) and (max-height:500px){.quick-toolbox{flex-wrap:wrap;align-items:center;gap:4px;width:min(820px,100% - 20px);padding:4px 4px 4px 2px;display:flex}.quick-toolbox-head,.quick-toolbox-body,.quick-toolbox-actions{display:contents}.quick-toolbox-handle{width:20px;height:40px}.quick-toolbox-head i{width:28px;height:28px}.quick-toolbox-head strong{flex:48px}.quick-toolbox-fields{display:contents}.quick-toolbox-summary{flex:0 auto;gap:12px;margin:0;padding:5px 10px}.quick-toolbox-turns{flex:none;gap:4px}.quick-lock{flex:none}.quick-toolbox-fields .field{width:116px}.quick-toolbox-fields.imperial .field{width:236px}.quick-toolbox .field>span{margin-bottom:1px;font-size:10px}.quick-toolbox .number{height:36px}.quick-toolbox .number input{padding-left:5px;font-size:15px}.quick-toolbox .number i{padding:0 6px;font-size:10px}.quick-toolbox .stepper .number i{display:none}.quick-toolbox .stepper-caption{margin-bottom:1px;font-size:10px}.quick-toolbox .stepper-readout{display:none}.quick-toolbox .step-button{width:34px;min-height:36px}.quick-toolbox-pivot{flex:none}.quick-segment{flex:none;place-items:center;width:36px;min-height:36px;padding:0;display:grid}.quick-segment svg{display:block}.quick-segment span{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.quick-toolbox-head .ui-icon-button,.quick-action{flex:none;width:36px;height:36px;min-height:36px;padding:0}.quick-toolbox-turns .quick-action span{display:none}}@media (min-width:540px) and (max-width:999px) and (max-height:500px){.quick-toolbox-head i{display:none}}@media (min-width:700px) and (max-width:1099px) and (max-height:500px){.quick-toolbox{gap:6px}.quick-toolbox .delete-button{margin-right:4px}.quick-toolbox-fields .field{width:124px}.quick-toolbox-fields.imperial .field{width:250px}}@media (min-width:960px) and (max-width:1099px) and (max-height:500px){.quick-segment{gap:5px;width:auto;padding:0 8px;display:flex}.quick-segment span{clip-path:none;width:auto;height:auto;position:static;overflow:visible}}@keyframes quick-toolbox-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.quick-toolbox{animation:none}}.recent-tools-anchor{display:none}@media (max-width:767px){.recent-tools-anchor{z-index:40;height:0;margin:0 env(safe-area-inset-right) 0 env(safe-area-inset-left);pointer-events:none;flex:0 0 0;display:block;position:relative}.recent-tools{--recent-chip-min:58px;--recent-chip-max:76px;width:fit-content;max-width:calc(100% - 20px);color:var(--ink);background:var(--panel);border:1px solid var(--line);pointer-events:auto;touch-action:pan-x;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:16px;align-items:center;gap:2px;margin:0 auto;padding:4px;animation:.18s ease-out recent-tools-in;display:flex;position:absolute;bottom:8px;left:0;right:0;overflow:visible;box-shadow:0 10px 26px #0003}.recent-tools-list{overscroll-behavior:contain;scrollbar-width:none;flex:0 auto;gap:2px;min-width:0;display:flex;overflow-x:auto}.recent-tools-list::-webkit-scrollbar{display:none}.recent-tool{width:var(--recent-chip,58px);height:58px;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;flex:none;justify-content:flex-start;align-items:center;gap:2px;padding:4px 2px 3px;transition:color .16s,background .16s,border-color .16s;display:flex}.recent-tool b{flex:0 0 20px;place-items:center;width:20px;height:20px;font-size:18px;font-weight:500;line-height:1;display:grid}.recent-tool span{-webkit-line-clamp:2;text-overflow:ellipsis;text-align:center;overflow-wrap:normal;word-break:normal;-webkit-hyphens:manual;hyphens:manual;-webkit-box-orient:vertical;max-width:100%;font-size:10.5px;font-weight:700;line-height:1.12;display:-webkit-box;overflow:hidden}.recent-tool:focus-visible{color:var(--accent);background:var(--accent-soft)}@media (hover:hover){.recent-tool:hover{color:var(--accent);background:var(--accent-soft)}}.recent-tool:focus-visible{outline-offset:-3px}.recent-tool[aria-pressed=true]{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.recent-tool[aria-pressed=true]{border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}}html[data-theme=dark] :is(.app .recent-tools){box-shadow:0 10px 26px #00000080}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .recent-tools){box-shadow:0 10px 26px #00000080}}}@media (max-width:767px) and (max-height:500px){.recent-tools{--recent-chip-min:84px;--recent-chip-max:88px;border-radius:14px;padding:2px;bottom:6px}.recent-tool{width:var(--recent-chip,84px);border-radius:10px;flex-direction:row;justify-content:flex-start;align-items:center;gap:3px;height:40px;padding:0 4px 0 2px}.recent-tool span{text-align:start;font-size:10px;line-height:1.1}}@keyframes recent-tools-in{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.recent-tools{animation:none}.recent-tool{transition:none}}.tap-picker{z-index:76;width:min(380px,100vw - 24px);max-height:min(46dvh,340px);color:var(--ink);background:var(--panel);border:1px solid var(--line);overscroll-behavior:contain;border-radius:14px;padding:6px;position:fixed;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 14px 34px #00000038}.tap-picker-head{justify-content:space-between;align-items:center;gap:8px;padding:2px 2px 6px 8px;display:flex}.tap-picker-head p{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:7px;margin:0;font-size:10px;font-weight:800;display:flex}.tap-picker-head p span{color:var(--accent);background:var(--accent-soft);letter-spacing:0;border-radius:999px;padding:1px 6px}.tap-picker-close{width:36px;height:36px;color:var(--muted);background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:grid}.tap-picker-close:hover,.tap-picker-close:focus-visible{color:var(--ink);background:var(--accent-soft)}.tap-picker-list{gap:3px;margin:0;padding:0;list-style:none;display:grid}.tap-picker-row{border-radius:9px;align-items:stretch;gap:3px;display:flex}.tap-picker-row.previewed{background:var(--accent-soft);box-shadow:inset 3px 0 var(--accent)}.tap-picker-choice{min-width:0;min-height:46px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:9px;flex:auto;justify-content:space-between;align-items:center;gap:10px;padding:0 10px;font-size:13px;font-weight:700;display:flex}.tap-picker-choice span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tap-picker-choice small{color:var(--muted);flex:none;font-size:10.5px;font-weight:600}.tap-picker-show{min-height:46px;color:var(--muted);background:0 0;border:0;border-radius:9px;flex:0 0 46px;place-items:center;padding:0;display:grid}.tap-picker-choice:hover,.tap-picker-choice:focus-visible,.tap-picker-show:hover,.tap-picker-show:focus-visible{color:var(--accent);background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.tap-picker-choice:hover,.tap-picker-choice:focus-visible,.tap-picker-show:hover,.tap-picker-show:focus-visible{background:color-mix(in srgb,var(--accent-soft) 70%,transparent)}}.tap-picker-show[aria-pressed=true]{color:var(--accent)}.pick-highlight{fill:var(--accent)}@supports (color:color-mix(in lab, red, red)){.pick-highlight{fill:color-mix(in srgb,var(--accent) 20%,transparent)}}.pick-highlight{stroke:var(--accent);stroke-width:3px;stroke-dasharray:9 6;stroke-linejoin:round;vector-effect:non-scaling-stroke;animation:1.1s ease-in-out infinite alternate pick-pulse}.pick-highlight-wall{fill:none;stroke:var(--accent)}@supports (color:color-mix(in lab, red, red)){.pick-highlight-wall{stroke:color-mix(in srgb,var(--accent) 42%,transparent)}}.pick-highlight-wall{stroke-dasharray:none;stroke-linecap:round;vector-effect:none}@keyframes pick-pulse{0%{opacity:1}to{opacity:.45}}@media (prefers-reduced-motion:reduce){.pick-highlight{animation:none}}@property --support-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.app{--support-green:#176c49;--support-amber:#e0a03a;--support-coffee:#c8742b;--support-glow:#e0a03a4d;--support-glow-strong:#e0a03a8c}html[data-theme=dark] .app{--support-green:#69ca91;--support-amber:#ffc15a;--support-coffee:#f08a3c;--support-glow:#ffc15a52;--support-glow-strong:#ffc15a94}@media (prefers-color-scheme:dark){html[data-theme=system] .app{--support-green:#69ca91;--support-amber:#ffc15a;--support-coffee:#f08a3c;--support-glow:#ffc15a52;--support-glow-strong:#ffc15a94}}.support-button{box-shadow:0 0 8px 0 var(--support-glow),0 0 14px 1px #176c492e;transition:box-shadow .2s;position:relative;border-color:#0000!important}.donation-dialog:before,.support-button:before{content:"";pointer-events:none;background:conic-gradient(from var(--support-angle),var(--support-green),var(--support-amber) 35%,var(--support-coffee) 65%,var(--support-green));-webkit-mask-composite:xor;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;border-radius:9px;padding:2px;animation:3s linear infinite support-spin;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.support-button:hover{box-shadow:0 0 11px 1px var(--support-glow-strong),0 0 20px 2px #176c4947}.donation-dialog{box-shadow:0 24px 70px #00000057,0 0 18px 1px var(--support-glow),0 0 34px 4px var(--support-green);border-color:#0000;position:relative}@supports (color:color-mix(in lab, red, red)){.donation-dialog{box-shadow:0 24px 70px #00000057,0 0 18px 1px var(--support-glow),0 0 34px 4px color-mix(in srgb,var(--support-green) 24%,transparent)}}.donation-dialog:before{background:conic-gradient(from var(--support-angle),transparent 0 50%,var(--support-green) 66%,var(--support-amber) 82%,var(--support-coffee) 94%,transparent),var(--support-green);border-radius:16px;padding:3px}@supports (color:color-mix(in lab, red, red)){.donation-dialog:before{background:conic-gradient(from var(--support-angle),transparent 0 50%,var(--support-green) 66%,var(--support-amber) 82%,var(--support-coffee) 94%,transparent),color-mix(in srgb,var(--support-green) 30%,var(--line))}}.donation-dialog:before{animation-duration:3.6s}html[data-theme=dark] :is(.app .support-button){box-shadow:0 0 8px 0 var(--support-glow),0 0 14px 1px #69ca9133}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .support-button){box-shadow:0 0 8px 0 var(--support-glow),0 0 14px 1px #69ca9133}}html[data-theme=dark] :is(.app .support-button:hover){box-shadow:0 0 11px 1px var(--support-glow-strong),0 0 20px 2px #69ca914d}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .support-button:hover){box-shadow:0 0 11px 1px var(--support-glow-strong),0 0 20px 2px #69ca914d}}@keyframes support-spin{to{--support-angle:360deg}}@media (prefers-reduced-motion:reduce){.donation-dialog:before,.support-button:before{--support-angle:135deg;animation:none}.support-button{transition:none}}@property --press-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.press-ring{z-index:75;pointer-events:none;background:conic-gradient(var(--accent) var(--press-angle),var(--accent) 0);border-radius:50%;width:62px;height:62px;margin:-31px 0 0 -31px;display:none;position:fixed}@supports (color:color-mix(in lab, red, red)){.press-ring{background:conic-gradient(var(--accent) var(--press-angle),color-mix(in srgb,var(--accent) 16%,transparent) 0)}}.press-ring{-webkit-mask:radial-gradient(circle farthest-side,#0000 calc(100% - 4.5px),#000 calc(100% - 4px));mask:radial-gradient(circle farthest-side,#0000 calc(100% - 4.5px),#000 calc(100% - 4px))}.press-ring.on{animation:press-fill var(--press-ms,.38s) linear forwards;display:block}@keyframes press-fill{to{--press-angle:360deg}}@media (prefers-reduced-motion:reduce){.press-ring.on{--press-angle:360deg;animation:none}}.plan{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.settings-hint-line{display:block}.aim-anchor{z-index:45;pointer-events:none;flex:0 0 0;height:0;position:relative}.aim-overlay{width:var(--aim-width,100%);height:var(--aim-height,0);pointer-events:none;position:absolute;top:0;left:0;overflow:hidden}.aim-crosshair{pointer-events:none;width:44px;height:44px;margin:-22px 0 0 -22px;position:absolute;top:50%;left:50%;overflow:visible}.aim-crosshair-halo{fill:var(--panel);stroke:var(--panel);stroke-width:4.5px;stroke-linecap:round}.aim-crosshair-mark{fill:var(--ink);stroke:var(--ink);stroke-width:2px;stroke-linecap:round}.aim-crosshair.caught .aim-crosshair-mark{fill:var(--accent);stroke:var(--accent)}.aim-bubble{max-width:calc(100% - 20px);color:var(--ink);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:5px 11px;font-size:12.5px;font-weight:750;position:absolute;bottom:calc(50% + 28px);left:50%;overflow:hidden;transform:translate(-50%)}.aim-line{fill:none;stroke:var(--accent);stroke-width:3px;stroke-dasharray:9 6;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.aim-dot{fill:var(--accent);stroke:var(--panel);stroke-width:1.5px;vector-effect:non-scaling-stroke}.aim-target{fill:var(--panel);fill-opacity:.7;stroke:var(--ink);stroke-width:2px;vector-effect:non-scaling-stroke}.aim-target.caught{stroke:var(--accent)}.aim-snap{fill:none;stroke:var(--accent);stroke-width:2.5px;vector-effect:non-scaling-stroke}.aim-snap-wall{stroke:#247f9b}.aim-ghost{opacity:.7}.aim-magnifier{z-index:78;background:var(--canvas);box-shadow:0 0 0 3px var(--accent),0 10px 26px #00000057;pointer-events:none;border-radius:50%;position:fixed;overflow:hidden;transform:translate(-50%,-50%)}.aim-magnifier svg:first-child{display:block}.aim-lens-label{max-width:104px;color:var(--ink);background:var(--panel);padding:2px 8px;position:absolute;bottom:7px;left:50%;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.aim-lens-label{background:color-mix(in srgb,var(--panel) 90%,transparent)}}.aim-lens-label{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;border-radius:999px;font-size:11px;font-weight:750;transform:translate(-50%)}.metrics>.aim-bar{flex:100%;align-items:stretch;gap:8px;width:100%;min-width:0;max-width:560px;margin:0 auto;display:flex;position:relative}.aim-button{min-width:44px;min-height:44px;color:var(--ink);background:var(--canvas);border:1px solid var(--line);border-radius:9px;flex:1 1 0;justify-content:center;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:750;display:flex}.aim-button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.aim-button svg{flex:none}.aim-button:hover:not(:disabled),.aim-button:focus-visible{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.aim-button:hover:not(:disabled),.aim-button:focus-visible{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}}.aim-button:disabled{opacity:.45}.aim-button.aim-undo{flex:0 0 48px}.aim-button.primary{color:var(--accent-contrast,#fff);background:var(--accent);border-color:var(--accent);flex:1.5 1 0}.aim-button.primary:hover:not(:disabled),.aim-button.primary:focus-visible{color:var(--accent-contrast,#fff);background:var(--accent);filter:brightness(1.08)}.aim-length .aim-button{flex:0 0 48px}.aim-length-field{flex:auto;align-items:center;min-width:0;display:flex;position:relative}.aim-length-field input{width:100%;min-height:44px;color:var(--ink);background:var(--control-bg);border:1px solid var(--control-border);font-variant-numeric:tabular-nums;border-radius:9px;padding:0 40px 0 12px;font-size:16px}.aim-length-field i{color:var(--muted);pointer-events:none;font-size:12px;font-style:normal;font-weight:700;position:absolute;right:12px}.aim-length-field input[aria-invalid=true]{border-color:var(--danger)}.aim-length-error{color:var(--danger);background:var(--panel);border:1px solid var(--danger);border-radius:8px;padding:3px 9px;font-size:12px;font-weight:700;position:absolute;bottom:calc(100% + 6px);left:0}@media (max-height:500px){.aim-button,.aim-length-field input{min-height:40px}}@media (max-width:440px){.aim-button:not(.aim-undo,.primary) svg{display:none}.aim-button{padding-left:6px;padding-right:6px;font-size:12.5px}.metrics>.aim-bar{gap:6px}}:root{--layer-structure:#284c3b;--layer-furniture:#a97b45;--layer-electric:#bf7710;--layer-water:#2a78c8;--layer-site:#6b7d3a;--net-cable:#bf7710;--net-cold:#2a78c8;--net-hot:#d63b2f;--net-drain:#8a5a32}html[data-theme=dark] .app{--layer-structure:#91c7a7;--layer-furniture:#d8b283;--layer-electric:#f0a93c;--layer-water:#6fb2f2;--layer-site:#b9c97f;--net-cable:#f0a93c;--net-cold:#6fb2f2;--net-hot:#ff8576;--net-drain:#d1a273}@media (prefers-color-scheme:dark){html[data-theme=system] .app{--layer-structure:#91c7a7;--layer-furniture:#d8b283;--layer-electric:#f0a93c;--layer-water:#6fb2f2;--layer-site:#b9c97f;--net-cable:#f0a93c;--net-cold:#6fb2f2;--net-hot:#ff8576;--net-drain:#d1a273}}.layer-swatch{background:var(--layer-color,var(--muted));border-radius:4px;flex:none;width:12px;height:12px;display:inline-block}[data-layer=structure]{--layer-color:var(--layer-structure)}[data-layer=furniture]{--layer-color:var(--layer-furniture)}[data-layer=electric]{--layer-color:var(--layer-electric)}[data-layer=water]{--layer-color:var(--layer-water)}[data-layer=site]{--layer-color:var(--layer-site)}.layer-dimmed{opacity:.3;pointer-events:none}.layer-dimmed *{pointer-events:none!important}.run-layer.in-plan{opacity:.62}.riser-layer.in-plan{opacity:.8}.run-layer.dimmed,.riser-layer.dimmed{opacity:.3}.ghost-objects{opacity:.45}.layers-button{min-height:29px;color:var(--muted);border:1px solid var(--line);white-space:nowrap;background:0 0;border-radius:7px;flex:none;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:700;display:inline-flex}.layers-button:hover,.layers-button.active{color:var(--accent);background:var(--accent-soft)}.mode-switch{flex:none}.mode-switch .segmented-control{gap:2px;padding:2px}.mode-switch .segmented-control button{white-space:nowrap;overflow-wrap:normal;min-height:25px;padding:3px 11px;font-size:12px}.mode-chip{min-height:29px;color:var(--ink);background:var(--layer-color);flex:none;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.mode-chip{background:color-mix(in srgb,var(--layer-color) 16%,var(--panel))}}.mode-chip{border:1px solid var(--layer-color)}@supports (color:color-mix(in lab, red, red)){.mode-chip{border:1px solid color-mix(in srgb,var(--layer-color) 55%,var(--line))}}.mode-chip{white-space:nowrap;border-radius:999px;font-size:12px;font-weight:750}.mode-chip[data-mode=electric]{--layer-color:var(--layer-electric)}.mode-chip[data-mode=water]{--layer-color:var(--layer-water)}:is(.mode-chip,.mode-menu button)[data-mode=all]{--layer-color:var(--accent)}.mode-menu-anchor{flex:none;position:relative}.mode-menu{z-index:80;background:var(--panel);border:1px solid var(--line);border-radius:12px;gap:2px;width:188px;margin:0;padding:5px;list-style:none;display:grid;position:fixed;box-shadow:0 10px 28px #00000038}.mode-menu button{width:100%;min-height:42px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:6px 12px;font-size:13px;font-weight:700;display:flex}.mode-menu button:hover{background:var(--accent-soft)}.mode-menu button.active{background:var(--layer-color)}@supports (color:color-mix(in lab, red, red)){.mode-menu button.active{background:color-mix(in srgb,var(--layer-color) 16%,var(--panel))}}:is(.mode-chip,.mode-menu button)[data-mode=structure]{--layer-color:var(--layer-structure)}:is(.mode-chip,.mode-menu button)[data-mode=furniture]{--layer-color:var(--layer-furniture)}:is(.mode-chip,.mode-menu button)[data-mode=electric]{--layer-color:var(--layer-electric)}:is(.mode-chip,.mode-menu button)[data-mode=water]{--layer-color:var(--layer-water)}:is(.mode-chip,.mode-menu button)[data-mode=site]{--layer-color:var(--layer-site)}.mode-menu .layer-swatch:not([data-layer]),.mode-chip .layer-swatch:not([data-layer]){background:var(--accent)}.layers-panel>.layers-mode{margin:0 5px 12px}.layer-list{gap:6px;margin:0 5px 18px;padding:0;list-style:none;display:grid}.layer-row{background:var(--canvas);border:1px solid var(--line);border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:7px 7px 7px 12px;display:grid}.layer-row.working{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.layer-row.working{border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}}.layer-row.working{box-shadow:inset 3px 0 var(--accent)}.layer-row.hidden .layer-text{opacity:.5}.layer-text{min-width:0}.layer-text strong{font-size:13px;display:block}.layer-text small{color:var(--muted);overflow-wrap:anywhere;margin-top:2px;font-size:11px;line-height:1.35;display:block}.layer-eye,.layer-draw{width:34px;height:34px;color:var(--muted);border:1px solid var(--line);background:0 0;border-radius:8px;place-items:center;padding:0;display:grid}.layer-eye:hover:not(:disabled),.layer-draw:hover{color:var(--accent);background:var(--accent-soft)}.layer-eye:disabled{opacity:.4}.layer-draw[aria-pressed=true]{color:var(--accent-contrast,#fff);background:var(--accent);border-color:var(--accent)}.ghost-floors{margin:0 5px}.ghost-floors h3{margin:0 0 6px;font-size:12px;font-weight:800}.ghost-floors>p{color:var(--muted);margin:0 0 14px;font-size:11px;line-height:1.5}.ghost-floors .create-floor-button{width:100%;margin:0 0 14px}.ghost-list{gap:10px;margin:0 0 18px;padding:0;list-style:none;display:grid}.ghost-floor{gap:6px;display:grid}.ghost-floor-name{color:var(--ink);font-size:12px;font-weight:750}.ghost-chips{flex-wrap:wrap;gap:6px;display:flex}.ghost-chip{min-height:30px;color:var(--muted);background:var(--canvas);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.ghost-chip:hover{color:var(--accent);border-color:var(--accent)}.ghost-chip[aria-pressed=true]{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}.library-mode-note{color:var(--ink);background:var(--layer-electric);margin:8px 0 0;padding:8px 10px}@supports (color:color-mix(in lab, red, red)){.library-mode-note{background:color-mix(in srgb,var(--layer-electric) 12%,var(--canvas))}}.library-mode-note{border:1px solid var(--line);border-radius:9px;font-size:11px;line-height:1.45}.library-mode-note[data-mode=water]{background:var(--layer-water)}@supports (color:color-mix(in lab, red, red)){.library-mode-note[data-mode=water]{background:color-mix(in srgb,var(--layer-water) 12%,var(--canvas))}}.library-mode-note[data-mode=site]{background:var(--layer-site)}@supports (color:color-mix(in lab, red, red)){.library-mode-note[data-mode=site]{background:color-mix(in srgb,var(--layer-site) 14%,var(--canvas))}}.library-equipment-note{background:var(--canvas)}.library-mode-link{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.library-mode-link[data-mode=electric]{color:var(--layer-electric)}.library-mode-link[data-mode=water]{color:var(--layer-water)}.library-mode-link[data-mode=site]{color:var(--layer-site)}.library-mode-link[data-mode=all]{color:var(--accent)}@media (max-width:1099px){.layers-button{min-height:38px}.mode-switch .segmented-control button{min-height:34px}.mode-chip{min-height:38px}.layer-eye,.layer-draw{width:42px;height:42px}.ghost-chip{min-height:38px}}@media (max-width:767px){.layers-button{padding:6px 9px}}.mode-switch .segmented-control{width:max-content;max-width:none}.mode-switch .segmented-control button{flex:none}.circuit-swatch{background:var(--layer-electric);border:1px solid var(--ink);flex:none;width:12px;height:12px;display:inline-block}@supports (color:color-mix(in lab, red, red)){.circuit-swatch{border:1px solid color-mix(in srgb,var(--ink) 30%,transparent)}}.circuit-swatch{border-radius:4px}.circuit-swatch[data-none]{background:repeating-linear-gradient(135deg,transparent 0 3px,var(--muted) 3px 4px)}@supports (color:color-mix(in lab, red, red)){.circuit-swatch[data-none]{background:repeating-linear-gradient(135deg,transparent 0 3px,color-mix(in srgb,var(--muted) 55%,transparent) 3px 4px)}}.pipe-swatch{border-radius:3px;flex:none;width:14px;height:5px;display:inline-block}.network-chips{z-index:35;box-sizing:border-box;height:var(--chips-h);min-width:0;color:var(--ink);background:var(--panel);flex:none;align-items:center;gap:8px;padding:6px 14px;display:flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.network-chips{background:color-mix(in srgb,var(--panel) 92%,var(--canvas))}}.network-chips{border-top:1px solid var(--line)}.canvas-section{--chips-h:49px}.network-chip-list{overscroll-behavior-x:contain;scrollbar-width:thin;flex:auto;align-items:center;gap:6px;min-width:0;margin:0;padding:2px 0;list-style:none;display:flex;overflow-x:auto}.network-chip-list>li{flex:none}.net-chip{min-height:32px;color:var(--ink);background:var(--canvas);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:4px 11px;font-size:12px;font-weight:650;display:inline-flex}button.net-chip:hover{border-color:var(--accent)}button.net-chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.net-chip .chip-id{font-weight:850}.net-chip .chip-detail,.net-chip .chip-length{color:var(--muted);font-weight:600}.net-chip.manage{color:var(--accent);border-style:dashed;flex:none}.net-chip.unassigned{border-style:dashed}@media (max-width:767px){.canvas-section{--chips-h:53px}.network-chips{gap:6px;padding:5px 10px}.net-chip{min-height:38px;padding:3px 10px}.net-chip .chip-detail{display:none}.network-chips[data-mode=electric] .net-chip .chip-name{text-overflow:ellipsis;max-width:9ch;overflow:hidden}.net-chip.manage span{display:none}.network-chips[data-mode=water] .net-chip .chip-detail{display:inline}}@media (max-width:1099px) and (max-height:500px){.canvas-section{--chips-h:41px}.network-chips{padding-top:3px;padding-bottom:3px}.net-chip{min-height:30px}}.circuit-field>.circuit-select{align-items:center;gap:8px;display:flex}.circuit-select .setting-select{min-width:0}.run-controls,.riser-controls,.parcel-controls,.network-inspector-body{gap:10px;min-width:0;display:grid}.run-readout{color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent);justify-content:space-between;align-items:baseline;gap:10px;padding:8px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.run-readout{border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}}.run-readout{border-radius:10px}.run-readout span{font-size:11px;font-weight:750}.run-readout b{letter-spacing:-.03em;font-size:18px}.run-detach,.riser-actions{flex-wrap:wrap;gap:8px;display:flex}.run-detach .quick-action,.riser-actions .quick-action{min-height:40px;color:var(--ink);background:var(--canvas);border:1px solid var(--line);border-radius:9px;flex:120px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:750;display:flex}.riser-actions .quick-action.primary{color:var(--accent-contrast,#fff);background:var(--accent);border-color:var(--accent)}.riser-actions .quick-action:disabled{opacity:.45}.riser-kinds>span{margin-bottom:6px;font-size:12px;display:block}.riser-kind-chips{flex-wrap:wrap;gap:6px;display:flex}.riser-kind{min-height:34px}.network-inspector-body .field-hint{margin:0}@media (max-width:1099px){.quick-toolbox .run-controls,.quick-toolbox .riser-controls,.quick-toolbox .parcel-controls{padding-left:6px}.quick-toolbox select{min-height:40px}}.circuits-panel{margin:0 5px 18px}.circuits-head{justify-content:space-between;align-items:center;gap:8px;margin:0 0 8px;display:flex}.circuits-head h3{margin:0;font-size:12px;font-weight:800}.circuit-add{min-height:32px;color:var(--accent);background:var(--accent-soft);border:1px dashed var(--accent);border-radius:8px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:800;display:inline-flex}.circuits-empty,.circuits-note{color:var(--muted);margin:0 0 10px;font-size:11px;line-height:1.5}.circuit-list{gap:8px;margin:0 0 10px;padding:0;list-style:none;display:grid}.circuit-card{background:var(--canvas);border:1px solid var(--line);border-radius:10px;gap:8px;padding:10px;display:grid}.circuit-title{align-items:center;gap:8px;display:flex}.circuit-colour{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;flex:none;width:30px;height:30px;padding:0}.circuit-name{flex:auto;min-width:0}.circuit-name input{width:100%;min-height:32px;color:var(--ink);background:var(--control-bg);border:1px solid var(--control-border);border-radius:8px;padding:0 8px;font-size:13px;font-weight:700}.circuit-delete{width:34px;height:34px;color:var(--danger);border:1px solid var(--line);background:0 0;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.circuit-delete:hover{background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.circuit-delete:hover{background:color-mix(in srgb,var(--danger) 12%,transparent)}}.circuit-confirm{background:var(--danger);gap:8px;padding:9px 10px;display:grid}@supports (color:color-mix(in lab, red, red)){.circuit-confirm{background:color-mix(in srgb,var(--danger) 10%,var(--canvas))}}.circuit-confirm{border:1px solid var(--danger)}@supports (color:color-mix(in lab, red, red)){.circuit-confirm{border:1px solid color-mix(in srgb,var(--danger) 45%,var(--line))}}.circuit-confirm{border-radius:9px}.circuit-confirm p{margin:0;font-size:12px;line-height:1.45}.circuit-confirm div{gap:8px;display:flex}.circuit-confirm button{min-height:34px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:8px;flex:1 1 0;font-size:12px;font-weight:750}.circuit-confirm button.danger{color:#fff;background:var(--danger);border-color:var(--danger)}.circuit-ratings{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 8px;display:grid}.circuit-ratings .field>span{font-size:11px}.circuit-ratings .setting-select{min-height:32px;padding:0 4px;font-size:12px}.circuit-figures{flex-wrap:wrap;justify-content:space-between;gap:2px 10px;margin:0;font-size:12px;display:flex}.circuit-figures span{color:var(--muted)}.circuit-advice{gap:5px;margin:0;padding:0;list-style:none;display:grid}.circuit-advice li{border-radius:8px;align-items:flex-start;gap:7px;padding:6px 8px;font-size:11px;line-height:1.4;display:flex}.circuit-advice li svg{flex:none;margin-top:1px}.circuit-advice li[data-severity=warning]{color:var(--ink);background:#d98a1e}@supports (color:color-mix(in lab, red, red)){.circuit-advice li[data-severity=warning]{background:color-mix(in srgb,#d98a1e 16%,var(--canvas))}}.circuit-advice li[data-severity=warning]{border:1px solid #d98a1e}@supports (color:color-mix(in lab, red, red)){.circuit-advice li[data-severity=warning]{border:1px solid color-mix(in srgb,#d98a1e 55%,var(--line))}}.circuit-advice li[data-severity=warning] svg{color:#b26b00}.circuit-advice li[data-severity=info]{color:var(--muted)}html[data-theme=dark] :is(.app .circuit-advice li[data-severity=warning] svg){color:#f0a93c}@media (prefers-color-scheme:dark){html[data-theme=system] :is(.app .circuit-advice li[data-severity=warning] svg){color:#f0a93c}}.run-vertex{vector-effect:non-scaling-stroke;cursor:move}.run-vertex.selected{fill:var(--accent)}.run-midpoint{fill:var(--panel);fill-opacity:.85;stroke:var(--accent);stroke-width:2px;stroke-dasharray:3 2;vector-effect:non-scaling-stroke;cursor:copy;pointer-events:all}.pick-highlight-run{fill:none;stroke:var(--accent)}@supports (color:color-mix(in lab, red, red)){.pick-highlight-run{stroke:color-mix(in srgb,var(--accent) 42%,transparent)}}.pick-highlight-run{stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:none}.preview-run{stroke-linecap:round}.riser-draft{opacity:.9}.export-backdrop{place-items:center;padding:16px;display:grid}.export-dialog{width:100%;max-width:600px;max-height:min(92dvh,820px);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:16px;outline:0;flex-direction:column;padding:0;display:flex;overflow:hidden;box-shadow:0 24px 70px #00000057}.export-body{overscroll-behavior:contain;flex:auto;align-content:start;gap:18px;min-height:0;padding:14px 22px 16px;display:grid;overflow-y:auto}.export-options,.export-preview{align-content:start;gap:16px;min-width:0;display:grid}.export-preview{gap:8px}.export-group{gap:8px;min-width:0;display:grid}.export-group h3,.export-preview h3{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;padding:0 2px;font-size:11px;font-weight:800;line-height:1.3}.export-group .segmented-control button{min-height:38px;font-size:12px}.export-chips{flex-wrap:wrap;gap:8px;display:flex}.export-chip{min-height:38px;color:var(--muted);background:var(--canvas);border:1px solid var(--line);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:4px 14px;font-size:13px;font-weight:700;display:inline-flex}.export-chip i{background:var(--layer-color);border-radius:50%;width:10px;height:10px}.export-chip:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.export-chip[aria-pressed=true]{color:var(--ink);background:var(--layer-color)}@supports (color:color-mix(in lab, red, red)){.export-chip[aria-pressed=true]{background:color-mix(in srgb,var(--layer-color) 16%,var(--panel))}}.export-chip[aria-pressed=true]{border-color:var(--layer-color)}.export-chip:disabled{opacity:.45;cursor:not-allowed}.export-hint{color:var(--muted);margin:0;font-size:12px;line-height:1.4}.export-checks{gap:2px;display:grid}.export-check{cursor:pointer;align-items:flex-start;gap:10px;min-height:40px;padding:8px 2px;font-size:13px;line-height:1.35;display:flex}.export-check input{width:20px;height:20px;accent-color:var(--accent);flex:none;margin:0}.export-check b{font-weight:700;display:block}.export-check small{color:var(--muted);font-size:12px;line-height:1.4;display:block}.export-check:has(input:disabled){opacity:.5;cursor:not-allowed}.export-cards{gap:6px;display:grid}.export-cards button{min-height:48px;color:var(--ink);text-align:left;background:var(--canvas);border:1px solid var(--line);border-radius:10px;gap:1px;padding:8px 10px;display:grid}.export-cards button b{font-size:13.5px}.export-cards button small{color:var(--muted);font-size:12px;line-height:1.35}.export-cards button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.export-pills{flex-wrap:wrap;gap:6px;display:flex}.export-pills button{min-height:36px;color:var(--ink);background:var(--canvas);border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:12.5px;font-weight:650}.export-pills button:hover:not(:disabled):not([aria-pressed=true]){color:var(--accent);border-color:var(--accent)}.export-pills button[aria-pressed=true]{color:var(--accent-contrast,#fff);background:var(--accent);border-color:var(--accent)}.export-pills button:disabled{opacity:.4;cursor:not-allowed}.export-hint b{color:var(--ink)}.export-sheet{justify-self:center;place-items:center;width:100%;max-width:100%;min-height:0;max-height:320px;display:grid}.export-sheet img,.export-thumb-wait{border:1px solid var(--line);-webkit-user-select:none;user-select:none;background:#fff;width:auto;max-width:100%;height:auto;max-height:320px;display:block;box-shadow:0 10px 30px #1333252e}.export-thumb-wait{aspect-ratio:297/210;width:100%}.export-sheet[data-drawing] img{opacity:.55}.export-status{color:var(--accent);background:var(--accent-soft);border-radius:9px;margin:0;padding:8px 11px;font-size:13px;line-height:1.4}.export-status:empty{display:none}.export-status[data-warn]{color:var(--danger);background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.export-status[data-warn]{background:color-mix(in srgb,var(--danger) 12%,var(--panel))}}.export-status[data-warn]{font-weight:650}.export-status button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:800;text-decoration:underline}.export-meta{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 14px;margin:0;font-size:11.5px;display:flex}.export-error{color:var(--danger);border-top:1px solid var(--line);margin:0;padding:10px 22px;font-size:13px;font-weight:700}.export-dialog .export-footer{justify-content:flex-end}.export-submit{justify-content:center;align-items:center;gap:8px;display:inline-flex}.export-submit:disabled{opacity:.6;cursor:progress}@media (min-width:900px){.export-dialog{max-width:880px}.export-body{grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:26px}}@media (min-width:560px) and (max-height:500px){.export-body{grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:20px;padding-top:10px}.export-dialog .settings-dialog-head{padding-block:10px 8px}.export-dialog .settings-dialog-head p{display:none}.export-dialog .export-footer{padding-block:8px}}@media (max-width:767px){.export-backdrop{align-items:flex-end;padding:0;display:flex}.export-dialog{border-width:1px 0 0;border-radius:18px 18px 0 0;max-width:none;max-height:92dvh;animation:.2s ease-out export-sheet-in}.export-body{padding:14px 16px}.export-sheet,.export-sheet img,.export-thumb-wait{max-height:230px}.export-error{padding-inline:16px}.export-dialog .export-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.export-submit{width:100%}}.export-warning{color:var(--danger);font-weight:700}.export-project{width:100%;min-height:48px;color:var(--ink);text-align:left;background:var(--canvas);border:1px solid var(--line);cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:8px 14px;display:flex}.export-project:hover,.export-project:focus-visible{color:var(--accent);border-color:var(--accent)}.export-project svg{flex:none}.export-project span{gap:1px;min-width:0;display:grid}.export-project b{font-size:13px;font-weight:700}.export-project small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.project-dialog{max-width:460px}.project-fields{gap:14px;display:grid}.project-field{gap:6px;display:grid}.project-field label{color:var(--muted);font-size:12px;font-weight:700}.project-field input{min-height:44px;color:var(--ink);background:var(--control-bg);border:1px solid var(--control-border);font:inherit;border-radius:10px;padding:8px 12px;font-size:15px;font-weight:500}.project-field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.project-field small{color:var(--muted);font-size:12px;line-height:1.4}@media (max-width:767px){.project-backdrop{align-items:end;padding:0}.project-dialog{border-width:1px 0 0;border-radius:18px 18px 0 0;max-width:none}}@keyframes export-sheet-in{0%{opacity:0;transform:translateY(24px)}}@media (prefers-reduced-motion:reduce){.export-dialog{animation:none}}.parcel-line{fill:none;stroke:var(--muted);stroke-width:2px;stroke-dasharray:16 5 3 5;stroke-linejoin:round;stroke-linecap:butt;opacity:.85}.parcel.selected .parcel-line{stroke:var(--accent);stroke-width:2.6px;opacity:1}.parcel-street{fill:none;stroke:var(--accent);stroke-width:5px;stroke-linecap:butt;opacity:.4}.parcel-label{fill:var(--muted);letter-spacing:.03em;font-size:10px;font-style:italic}.parcel-street-label{fill:var(--accent);letter-spacing:.03em;font-size:11px;font-weight:750}.parcel-ghost{opacity:.4}.preview-parcel{fill:#4ea37514;stroke:var(--accent);stroke-width:2px;stroke-dasharray:16 5 3 5;stroke-linejoin:round}html[data-theme=dark] .preview-parcel{fill:#69ca91;fill-opacity:.1}@media (prefers-color-scheme:dark){html[data-theme=system] .preview-parcel{fill:#69ca91;fill-opacity:.1}}.parcel-controls .field>input[type=text]{min-height:40px;padding:0 10px}.parcel-controls .parcel-hint{margin:0}.parcel-actions .quick-action{flex:130px}.site-layer{--site-road:#c9ccc4;--site-road-line:#8f948a;--site-walk:#e4e5de;--site-neighbour:#d6d8d0;--site-hatch:var(--muted);--site-parcel-line:#5a6fc4}html[data-theme=dark] .site-layer{--site-road:#3a423b;--site-road-line:#76806f;--site-walk:#4a524a;--site-neighbour:#343b35}@media (prefers-color-scheme:dark){html[data-theme=system] .site-layer{--site-road:#3a423b;--site-road-line:#76806f;--site-walk:#4a524a;--site-neighbour:#343b35}}.site-road{fill:var(--site-road);stroke:none}.site-road-path{fill:none;stroke:var(--site-road);stroke-linejoin:round;stroke-linecap:butt}.site-walk{fill:var(--site-walk);stroke:var(--site-road-line);stroke-width:.8px}.site-walk-path{fill:none;stroke:var(--site-walk);stroke-linejoin:round;stroke-linecap:butt}.site-road-centre{fill:none;stroke:var(--site-road-line);stroke-width:2px;stroke-dasharray:18 12}.site-street-label{fill:var(--ink);opacity:.8;font-size:12px;font-weight:650}.site-neighbour{fill:var(--site-neighbour);fill-opacity:.8;stroke:var(--site-road-line);stroke-width:1.4px;stroke-linejoin:round}.site-neighbour-label{fill:var(--muted);font-size:11px}.site-access{stroke:var(--accent);stroke-width:6px;stroke-linecap:butt;fill:none}.site-access-label{fill:var(--accent);font-family:var(--font-mono,monospace);font-size:10px;font-weight:650}.site-selected{outline:none}.site-selected .site-road,.site-selected .site-neighbour{stroke:var(--accent);stroke-width:2.6px}.site-selected .site-road-path{stroke:var(--accent);stroke-opacity:.35}.site-selected .site-walk,.site-selected .site-access{stroke:var(--accent)}.site-selected .site-walk-path{stroke:var(--accent);stroke-opacity:.35}.site-footprint{stroke:var(--ink);stroke-width:3px;stroke-linejoin:miter}.site-footprint-label{fill:var(--ink);text-anchor:middle;font-size:12px;font-weight:650}.site-dimension{stroke:var(--muted);stroke-width:1.4px;stroke-dasharray:4 4}.site-dimension-label{fill:var(--muted);font-family:var(--font-mono,monospace);paint-order:stroke;stroke:var(--canvas);stroke-width:3px;stroke-linejoin:round;font-size:11px}.site-ghost{opacity:.4}.preview-neighbour{fill:#78786e24;stroke:var(--site-road-line,#8f948a);stroke-width:2px;stroke-linejoin:round}.preview-street{fill:none;stroke:var(--site-road-line,#8f948a);stroke-width:3px;stroke-dasharray:10 6;opacity:.9}.export-empty{color:var(--ink);background:var(--canvas);border:1px dashed var(--line);border-radius:12px;justify-items:start;gap:10px;padding:16px;display:grid}.export-empty svg{color:var(--accent)}.export-empty b{font-size:15px}.export-empty p{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.quick-toolbox .parcel-hint{display:none}.map-button.active{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}.map-consent{max-width:440px}.map-consent p{max-width:46ch}.site-replace-list{text-align:left;margin:0 0 16px;padding-left:20px;font-size:14px}.map-consent-remember{align-items:center;gap:8px;margin:0 0 18px;font-size:13px;display:flex}.map-consent-remember input{width:16px;height:16px;accent-color:var(--accent)}.app{--lot-0:#e7f1dc;--lot-1:#f4ecd9;--lot-2:#e3edf4;--lot-3:#f3e1e1;--lot-4:#ebe4f3;--lot-5:#dcf0ec;--lot-line:#5f8a4a}html[data-theme=dark] .app{--lot-0:#2a3d2b;--lot-1:#40371f;--lot-2:#223644;--lot-3:#46282a;--lot-4:#352c45;--lot-5:#1f3f3a;--lot-line:#86b86f}@media (prefers-color-scheme:dark){html[data-theme=system] .app{--lot-0:#2a3d2b;--lot-1:#40371f;--lot-2:#223644;--lot-3:#46282a;--lot-4:#352c45;--lot-5:#1f3f3a;--lot-line:#86b86f}}.site-lot-shape{stroke:var(--lot-line);stroke-width:2px;stroke-dasharray:10 5;stroke-linejoin:round;fill-opacity:.85}.site-lot[data-lot-color="0"] .site-lot-shape{fill:var(--lot-0)}.site-lot[data-lot-color="1"] .site-lot-shape{fill:var(--lot-1)}.site-lot[data-lot-color="2"] .site-lot-shape{fill:var(--lot-2)}.site-lot[data-lot-color="3"] .site-lot-shape{fill:var(--lot-3)}.site-lot[data-lot-color="4"] .site-lot-shape{fill:var(--lot-4)}.site-lot[data-lot-color="5"] .site-lot-shape{fill:var(--lot-5)}.site-lot-selected .site-lot-shape{stroke:var(--accent);stroke-width:3.2px;stroke-dasharray:none}.site-lot-label{fill:var(--ink);font-family:var(--font-mono,monospace);paint-order:stroke;stroke:var(--canvas);stroke-width:3px;stroke-linejoin:round;font-size:12px;font-weight:650}.site-lot-area{fill:var(--muted);font-size:11px;font-weight:500}.site-cut-start{fill:var(--accent);stroke:var(--panel);stroke-width:2.5px}.terrains-panel{border-bottom:1px solid var(--line);gap:10px;margin:0 0 14px;padding:0 0 14px;display:grid}.terrains-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.terrains-head h2{color:var(--muted);font-family:var(--font-geist-mono),ui-monospace,monospace;letter-spacing:.07em;text-transform:uppercase;margin:0;font-size:10.5px;font-weight:600}.terrain-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.terrain-item{gap:8px;display:grid}.terrain-card{width:100%;color:var(--ink);background:var(--canvas);border:1px solid var(--line);text-align:left;border-radius:11px;gap:3px;min-height:44px;padding:9px 10px;display:grid}.terrain-card:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.terrain-card:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}}.terrain-card[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.terrain-card b{flex-wrap:wrap;align-items:center;gap:6px;font-size:13.5px;display:flex}.terrain-card small{color:var(--muted);font-size:11.5px;line-height:1.35}.terrain-meta{color:var(--muted);font-family:var(--font-geist-mono),ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:11px}.terrain-meta:empty{display:none}.terrain-badge{color:var(--accent);background:var(--accent-soft);border-radius:999px;align-items:center;gap:3px;padding:1px 7px;font-size:11px;font-weight:650;display:inline-flex}.terrain-card[aria-pressed=true] .terrain-badge{background:var(--panel)}.terrain-details{border-left:2px solid var(--line);gap:8px;margin-left:4px;padding:2px 0 2px 10px;display:grid}.terrain-field>span{color:var(--muted);margin-bottom:3px;font-size:11.5px;font-weight:650;display:block}.terrain-field>input{min-height:36px;padding:0 9px}.terrain-actions{flex-wrap:wrap;gap:6px;display:flex}.terrain-action{min-height:40px;color:var(--ink);background:var(--canvas);border:1px solid var(--line);text-align:center;border-radius:9px;flex:130px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;font-weight:650;display:inline-flex}.terrain-action:hover:not(:disabled){color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.terrain-action:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}}.terrain-action.primary{color:var(--accent-contrast,#fff);background:var(--accent);border-color:var(--accent)}.terrain-action.primary:hover:not(:disabled){color:var(--accent-contrast,#fff);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.terrain-action.primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,#000)}}.terrain-action[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--accent-contrast,#fff)}.terrain-action.danger{color:var(--danger)}.terrain-action:disabled{opacity:.45;cursor:not-allowed}.terrain-action:focus-visible,.terrain-card:focus-visible,.terrain-lot:focus-visible,.terrain-chip-button:focus-visible{outline:var(--focus-ring-width,2px) solid var(--accent);outline-offset:var(--focus-ring-offset,2px)}.terrain-note{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.terrain-house-note{color:var(--accent);flex:130px;align-items:center;gap:6px;font-weight:650;display:flex}.terrain-lots-block{gap:8px;display:grid}.terrain-lots{gap:4px;margin:0;padding:0;list-style:none;display:grid}.terrain-lot{width:100%;min-height:36px;color:var(--ink);text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:7px;padding:4px 8px;font-size:12.5px;display:flex}.terrain-lot:hover{background:var(--canvas)}.terrain-lot[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.terrain-lot i{border:1px solid var(--lot-line);border-radius:3px;flex:none;width:12px;height:12px}.terrain-lot[data-lot-color="0"] i{background:var(--lot-0)}.terrain-lot[data-lot-color="1"] i{background:var(--lot-1)}.terrain-lot[data-lot-color="2"] i{background:var(--lot-2)}.terrain-lot[data-lot-color="3"] i{background:var(--lot-3)}.terrain-lot[data-lot-color="4"] i{background:var(--lot-4)}.terrain-lot[data-lot-color="5"] i{background:var(--lot-5)}.terrain-lot small{color:var(--accent);margin-left:6px;font-size:11px;font-weight:650}.terrain-lot-area{color:var(--muted);font-family:var(--font-geist-mono),ui-monospace,monospace;font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.terrain-lot-edit{background:var(--canvas);border:1px solid var(--line);border-radius:10px;gap:8px;padding:8px;display:grid}.terrain-merge{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.terrain-merge .field{flex:120px;min-width:0}.terrain-merge .field>span{color:var(--muted);margin-bottom:3px;font-size:11.5px;font-weight:650;display:block}.terrain-merge .terrain-action{flex:none}.terrain-add{gap:8px;display:grid}.terrain-add-menu{gap:6px;display:grid}.terrain-hint{font-size:11.5px}.terrains-close{width:40px;height:40px;color:var(--ink);border:1px solid var(--line);background:0 0;border-radius:9px;place-items:center;display:inline-grid}.terrains-sheet{display:none}.terrain-chips{pointer-events:none;flex-wrap:wrap;flex:none;justify-content:center;gap:6px;max-width:100%;display:flex}.terrain-chip{min-height:28px;color:var(--ink);background:var(--panel);border:1px solid var(--line);pointer-events:auto;border-radius:999px;align-items:center;gap:5px;padding:0 11px;font-size:12px;font-weight:650;display:inline-flex;box-shadow:0 4px 10px #00000014}.terrain-chip:not(.terrain-chip-button){pointer-events:none}.terrain-chip.away{color:var(--muted)}.terrain-chip-button{cursor:pointer;min-height:36px}.terrain-chip-button:hover{color:var(--accent);background:var(--accent-soft)}@media (max-width:767px){.terrains-sheet{z-index:80;max-height:min(74dvh,600px);padding:22px 14px calc(16px + env(safe-area-inset-bottom));color:var(--ink);background:var(--panel);border:1px solid var(--line);visibility:hidden;border-bottom:0;border-radius:18px 18px 0 0;transition:transform .24s,visibility 0s .24s;display:block;position:fixed;inset:auto 0 0;overflow-y:auto;transform:translateY(100%);box-shadow:0 -14px 34px #00000042}.terrains-sheet.panel-open{visibility:visible;transition:transform .24s;transform:none}.terrains-sheet:before{content:"";background:var(--line);border-radius:999px;width:44px;height:4px;position:absolute;top:9px;left:50%;transform:translate(-50%)}.terrains-sheet .terrains-panel{border-bottom:0;margin:0;padding:0}.terrain-card,.terrain-lot{min-height:44px}}@media (prefers-reduced-motion:reduce){.terrains-sheet{transition:none}}.bar-sep{background:var(--line);flex:none;width:1px;height:24px}.topbar.wide{gap:10px;padding:0 16px;position:relative}.topbar.wide .brand{margin-right:2px}.topbar.wide .file-menu-panel{left:0;right:auto}.topbar.wide .history-actions{margin-left:auto}.topbar.wide .layers-button{border-radius:8px;min-height:34px}.topbar.wide .mode-switch .segmented-control{border-radius:8px;padding:2px}.topbar.wide .mode-switch .segmented-control button{min-height:28px}.topbar.wide .floor-chip{min-height:34px}.context-row{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:6px;min-width:0;min-height:46px;padding:0 10px;display:flex}.context-spacer{flex:1 1 0;min-width:0}.floor-menu-anchor{flex:none;min-width:0;position:relative}.floor-chip{min-width:0;min-height:29px;color:var(--ink);border:1px solid var(--line);white-space:nowrap;background:0 0;border-radius:8px;align-items:center;gap:4px;padding:4px 8px 4px 11px;font-size:12.5px;font-weight:800;display:inline-flex}.floor-chip-label{text-overflow:ellipsis;min-width:0;max-width:11ch;overflow:hidden}.floor-chip svg{color:var(--muted);flex:none}.floor-chip:hover,.floor-chip[aria-expanded=true]{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.floor-chip:hover,.floor-chip[aria-expanded=true]{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}}.floor-menu{z-index:80;background:var(--panel);border:1px solid var(--line);border-radius:12px;gap:2px;width:240px;max-height:min(70dvh,420px);margin:0;padding:5px;display:grid;position:fixed;overflow-y:auto;box-shadow:0 10px 28px #00000038}.floor-menu-item{width:100%;min-height:38px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:6px 10px;font-size:13px;font-weight:700;display:flex}.floor-menu-item:hover,.floor-menu-item:focus-visible{background:var(--accent-soft)}.floor-menu-item.active{color:var(--accent);background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.floor-menu-item.active{background:color-mix(in srgb,var(--accent-soft) 70%,transparent)}}.floor-menu-item small{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:11px;font-weight:600}.floor-menu-name{align-items:center;gap:7px;min-width:0;display:inline-flex}.floor-menu-name svg{flex:none}.floor-menu-divider{background:var(--line);height:1px;margin:4px 6px}.floor-menu-add{color:var(--accent)}.floor-menu-caret{flex:none;transition:transform .16s}.floor-menu-caret.open{transform:rotate(180deg)}.floor-menu-choices{gap:2px;padding-left:14px;display:grid}.floor-menu-choices .floor-menu-item{font-weight:650}.history-actions{flex:none;gap:4px;display:flex}.history-button{width:34px;height:34px;color:var(--ink);border:1px solid var(--line);background:0 0;border-radius:8px;flex:none;place-items:center;padding:0;transition:color .16s,background .16s,border-color .16s;display:grid}.history-button:hover:not(:disabled),.history-button:focus-visible{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.history-button:hover:not(:disabled),.history-button:focus-visible{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}}.history-button:disabled{opacity:.4}.topbar.wide .layers-button,.context-row .layers-button{color:var(--ink)}.rail-slot{background:var(--panel);border-right:1px solid var(--line);min-height:0;display:none;overflow:hidden auto}.tool-rail{align-content:start;justify-items:center;gap:4px;width:48px;padding:8px 0;display:grid}.tool-rail-group{gap:4px;display:grid}.tool-rail-group+.tool-rail-group{border-top:1px solid var(--line);margin-top:4px;padding-top:8px}.rail-tool{width:36px;min-width:0;height:36px;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;place-items:center;padding:0;transition:color .16s,background .16s,border-color .16s;display:grid}.rail-tool b{place-items:center;width:20px;height:20px;font-size:18px;font-weight:500;line-height:1;display:grid}.rail-tool:hover,.rail-tool:focus-visible{color:var(--accent);background:var(--accent-soft)}.rail-tool:focus-visible{outline-offset:1px}.rail-tool[aria-pressed=true]{color:var(--accent-contrast,#fff);background:var(--accent);border-color:var(--accent)}.rail-tool[aria-pressed=true]:hover,.rail-tool[aria-pressed=true]:focus-visible{color:var(--accent-contrast,#fff);background:var(--accent)}.rail-tip{z-index:60;color:var(--panel);background:var(--ink);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow);border-radius:7px;align-items:center;gap:8px;padding:4px 8px;font-size:12px;font-weight:650;display:flex;position:fixed;transform:translateY(-50%)}.rail-tip kbd{background:var(--panel);padding:0 4px;font:600 10.5px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}@supports (color:color-mix(in lab, red, red)){.rail-tip kbd{background:color-mix(in srgb,var(--panel) 22%,transparent)}}.rail-tip kbd{border-radius:4px}@media (min-width:768px){.rail-slot{display:block}.workspace{grid-template-columns:48px 226px minmax(0,1fr) 290px}.workspace.library-collapsed{grid-template-columns:48px 32px minmax(0,1fr) 290px}}@media (min-width:768px) and (max-width:1099px){.workspace,.workspace.library-collapsed{grid-template-columns:48px auto minmax(0,1fr)}}@media (min-width:768px) and (max-height:500px){.tool-rail{gap:2px;padding:6px 0}.rail-tool{width:34px;height:34px}}.library:not(.collapsed) .palette-group{gap:1px;margin-top:12px;display:grid}.library:not(.collapsed) .palette-item{text-align:left;cursor:pointer;border-radius:8px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:40px;padding:0 8px;font-size:12.5px;line-height:1.2;display:grid}.library:not(.collapsed) .palette-item b{place-items:center;width:28px;height:28px;font-size:17px;line-height:28px;display:grid}.library:not(.collapsed) .palette-item span{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;-webkit-box-orient:vertical;min-width:0;display:-webkit-box;overflow:hidden}.palette-size{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font:500 10.5px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.palette-item.active .palette-size{color:inherit;opacity:.8}.library.collapsed .palette-size{display:none}.library:not(.collapsed) .palette-item:focus-visible{outline:var(--focus-ring-width) solid var(--accent);outline-offset:-2px}@media (max-width:767px){.library .palette-item,.library.collapsed .palette-item{min-height:44px;padding:0 8px}.library .palette-item b,.library.collapsed .palette-item b{flex:0 0 28px;width:28px}.library .palette-group,.library.collapsed .palette-group{gap:1px;display:grid}.library.collapsed .palette-item{grid-template-columns:28px minmax(0,1fr) auto;display:grid}.library.collapsed .palette-size{display:block}}.canvas-frame{flex:1 1 0;min-width:0;min-height:0;display:flex;position:relative}.canvas-frame>.drawing{flex:auto}.canvas-section:has(>.network-chips)>.canvas-frame{margin-bottom:calc(-1 * var(--chips-h))}.metrics:empty{display:none}.canvas-section:has(>.metrics:empty){padding-bottom:env(safe-area-inset-bottom)}.canvas-hud{z-index:20;pointer-events:none;justify-content:space-between;align-items:flex-end;gap:10px;display:flex;position:absolute;bottom:22px;left:18px;right:22px}.canvas-hud>*{pointer-events:auto}.canvas-section:has(>.network-chips) .canvas-hud{bottom:calc(var(--chips-h) + 22px)}.plan-metrics{min-width:0;color:var(--muted);background:var(--panel);flex:0 auto;align-items:baseline;gap:6px;padding:4px 8px;display:flex}@supports (color:color-mix(in lab, red, red)){.plan-metrics{background:color-mix(in srgb,var(--panel) 82%,transparent)}}.plan-metrics{font-family:var(--font-geist-mono),ui-monospace,monospace;border-radius:8px;font-size:11px}.plan-metrics span{white-space:nowrap;align-items:baseline;gap:4px;display:flex}.plan-metrics span+span{border-left:1px solid var(--line);padding-left:6px}.plan-metrics b{color:var(--ink);font-size:11px;font-weight:700}.plan-metrics small{font-size:11px;font-weight:500}.plan-metrics span:first-child small{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.zoom-cluster{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex:none;align-items:center;gap:2px;margin-left:auto;padding:3px;display:flex;box-shadow:0 6px 14px #0000001a}.zoom-cluster button{min-height:30px;color:var(--muted);background:0 0;border:0;border-radius:7px;font-size:12px;font-weight:700}.zoom-cluster button:hover:not(:disabled),.zoom-cluster button:focus-visible{color:var(--accent);background:var(--accent-soft)}.zoom-cluster .zoom-step{flex:none;place-items:center;width:32px;padding:0;display:grid}.zoom-value{min-width:46px;color:var(--ink);font-variant-numeric:tabular-nums;text-align:center;padding:0 4px;font-size:12px;font-weight:800}.reset-zoom{white-space:nowrap;flex:none;align-items:center;gap:6px;padding:0 9px;display:inline-flex}@media (max-width:1099px){.zoom-cluster button{min-height:38px}.zoom-cluster .zoom-step{width:40px}.history-button{width:38px;height:38px}.floor-chip{min-height:38px}}.quick-restore{max-width:40%;min-height:36px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent);align-items:center;gap:6px;padding:6px 12px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.quick-restore{border:1px solid color-mix(in srgb,var(--accent) 50%,var(--line))}}.quick-restore{border-radius:999px;font-size:12px;font-weight:750;box-shadow:0 6px 14px #0000001f}.quick-restore span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.quick-restore svg{flex:none}.canvas-hud.phone{display:block;inset:0}.canvas-hud.phone>*{position:absolute}.zoom-toast{color:var(--panel);background:var(--ink);padding:5px 12px;top:70px;left:50%}@supports (color:color-mix(in lab, red, red)){.zoom-toast{background:color-mix(in srgb,var(--ink) 82%,transparent)}}.zoom-toast{font-variant-numeric:tabular-nums;opacity:0;border-radius:999px;font-size:12px;font-weight:800;transition:opacity .2s;transform:translate(-50%);pointer-events:none!important}.zoom-toast[data-flash]{opacity:1}.fit-button{width:42px;height:42px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:12px;place-items:center;padding:0;display:grid;bottom:10px;right:10px;box-shadow:0 6px 14px #00000024}.fit-button:hover,.fit-button:focus-visible{color:var(--accent);background:var(--accent-soft)}.canvas-hud.phone .quick-restore{max-width:calc(100% - 76px);bottom:10px;left:10px}.canvas-hud.phone:not([data-above-bar]) .fit-button{top:64px;bottom:auto;right:10px}.canvas-hud.phone[data-above-bar] .fit-button,.canvas-hud.phone[data-above-bar] .quick-restore{bottom:86px}@media (max-width:767px) and (max-height:500px){.canvas-hud.phone[data-above-bar] .fit-button,.canvas-hud.phone[data-above-bar] .quick-restore{bottom:62px}.fit-button{width:38px;height:38px}}@media (prefers-reduced-motion:reduce){.zoom-toast,.floor-menu-caret{transition:none}}.recent-tools-sep{background:var(--line);flex:0 0 1px;align-self:stretch;margin:6px 3px}.recent-tools-title{top:-8px;left:calc(var(--recent-chip,58px) + 14px);color:var(--muted);background:var(--panel);font-family:var(--font-geist-mono),ui-monospace,monospace;pointer-events:none;border-radius:5px;padding:0 5px;font-size:9.5px;font-weight:600;line-height:1.3;position:absolute}.recent-tool.recent-library{color:var(--accent-contrast,#fff);background:var(--accent)}.recent-tool.recent-library:focus-visible{color:var(--accent-contrast,#fff);background:var(--accent);outline-offset:1px}@media (hover:hover){.recent-tool.recent-library:hover{color:var(--accent-contrast,#fff);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.recent-tool.recent-library:hover{background:color-mix(in srgb,var(--accent) 86%,var(--ink))}}}.plan-summary{background:var(--canvas);gap:8px;margin:0 5px 18px;padding:12px;display:grid}@supports (color:color-mix(in lab, red, red)){.plan-summary{background:color-mix(in srgb,var(--canvas) 90%,var(--panel))}}.plan-summary{border:1px solid var(--line);border-radius:11px}.plan-summary h3{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;margin:0;font-size:11px;font-weight:800}.plan-summary dl{gap:4px;margin:0;display:grid}.plan-summary dl>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.plan-summary dt{color:var(--muted);font-size:12px}.plan-summary dd{color:var(--accent);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:0;font-size:15px;font-weight:800}.plan-summary p{color:var(--muted);margin:2px 0 0;font-size:11.5px;line-height:1.45}.settings-action{min-height:36px;color:var(--ink);border:1px solid var(--control-border);white-space:nowrap;background:0 0;border-radius:8px;align-items:center;gap:7px;padding:0 14px;font-size:12.5px;font-weight:750;display:inline-flex}.settings-action:hover{color:var(--accent);background:var(--accent-soft)}@media (max-width:767px){.context-row{gap:6px;padding:0 10px}.context-row .mode-menu-anchor{flex:0 auto;min-width:0}.context-row .mode-chip{max-width:100%}.context-row .mode-chip>span:nth-child(2){text-overflow:ellipsis;min-width:0;overflow:hidden}.context-row .layers-button{padding:6px 10px}}@media (max-width:479px){.context-row .layers-button span{display:none}}.site-map-credit{z-index:5;color:var(--muted);background:var(--panel);padding:2px 7px;position:absolute;bottom:6px;right:10px}@supports (color:color-mix(in lab, red, red)){.site-map-credit{background:color-mix(in srgb,var(--panel) 86%,transparent)}}.site-map-credit{text-underline-offset:2px;border-radius:6px;font-size:10.5px;text-decoration:underline}.map-row{background:var(--canvas);border:1px solid var(--line);border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 7px 7px 12px;display:grid}.map-row.off .layer-text{opacity:.5}.map-swatch{width:12px;color:var(--muted);place-items:center;display:grid}.map-eye{width:34px;height:34px;color:var(--muted);border:1px solid var(--line);background:0 0;border-radius:8px;place-items:center;padding:0;display:grid}.map-eye:hover{color:var(--accent);background:var(--accent-soft)}@media (pointer:coarse){.map-eye{width:42px;height:42px}}.support-dialog h2 .title-line{text-wrap:balance;display:block}.support-dialog h2{font-size:min(20px,7.14286vw - 6.85714px)}.maplibregl-map{-webkit-tap-highlight-color:#0000;position:relative;overflow:hidden}.maplibregl-canvas{position:absolute;top:0;left:0}.maplibregl-marker{will-change:transform;pointer-events:none;position:absolute;top:0;left:0}.terrain-map{background:var(--canvas);position:absolute;inset:0;overflow:hidden}.terrain-map-canvas{position:absolute;inset:0}.terrain-map-gestures{z-index:1;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0}.terrain-map-gestures:focus-visible{outline:var(--focus-ring-width) solid var(--accent);outline-offset:-3px}.terrain-map-gestures[data-cursor=pointer]{cursor:pointer}.terrain-map-gestures[data-cursor=crosshair]{cursor:crosshair}.terrain-map-gestures[data-cursor=move]{cursor:move}.terrain-map[data-gesture] .terrain-map-gestures{cursor:grabbing}.terrain-label{color:var(--ink);background:var(--panel);border:1px solid var(--accent);font:600 11px/16px var(--font-mono,ui-monospace,monospace);white-space:nowrap;pointer-events:none;border-radius:5px;padding:1px 6px;display:block}.terrain-map-controls{z-index:3;gap:8px;display:grid;position:absolute;bottom:12px;right:12px}.terrain-map-group{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;display:grid;overflow:hidden}.terrain-map-button{width:44px;height:44px;color:var(--ink);background:0 0;border:0;place-items:center;padding:0;display:grid}.terrain-map-button+.terrain-map-button{border-top:1px solid var(--line)}.terrain-map-button:hover{background:var(--accent-soft)}.terrain-map-needle{place-items:center;transition:transform 50ms linear;display:grid}.terrain-map-scale{z-index:3;color:var(--ink);background:var(--panel);padding:3px 7px 4px;position:absolute;bottom:24px;left:84px}@supports (color:color-mix(in lab, red, red)){.terrain-map-scale{background:color-mix(in srgb,var(--panel) 84%,transparent)}}.terrain-map-scale{font:500 11px/14px var(--font-mono,ui-monospace,monospace);pointer-events:none;border-radius:6px}.terrain-map-scale i{border:1.5px solid var(--ink);border-top:0;height:5px;margin-top:2px;display:block}.terrain-map-credit{z-index:3;max-width:calc(100% - 96px);color:var(--muted);background:var(--panel);padding:1px 6px;position:absolute;bottom:2px;right:64px}@supports (color:color-mix(in lab, red, red)){.terrain-map-credit{background:color-mix(in srgb,var(--panel) 80%,transparent)}}.terrain-map-credit{text-align:right;border-radius:6px 6px 0 0;font-size:10px;line-height:16px}.terrain-map-credit a{color:inherit;text-underline-offset:2px;text-decoration:underline}.drawing.map-overlay{z-index:2;pointer-events:none;padding:0;display:block;position:absolute;inset:0;overflow:visible}.map-overlay .plan-stage{--inv:1;transform-origin:0 0;visibility:hidden;margin:0;position:absolute;top:0;left:0}.map-overlay svg.plan{pointer-events:none;box-shadow:none;background:0 0;border:0;border-radius:0;overflow:visible}.map-overlay svg.plan .selection-anchor,.map-overlay svg.plan .resize-handle{pointer-events:all}.map-overlay svg.plan,.map-overlay svg.plan *{outline:none}.map-overlay .parcel-line{stroke-width:calc(2px * var(--inv));stroke-dasharray:calc(16px * var(--inv)) calc(5px * var(--inv)) calc(3px * var(--inv)) calc(5px * var(--inv))}.map-overlay .parcel.selected .parcel-line{stroke-width:calc(3px * var(--inv))}.map-overlay .parcel-label,.map-overlay .site-street-label,.map-overlay .site-neighbour-label,.map-overlay .site-neighbour-parcel-label,.map-overlay .site-access-label,.map-overlay .site-footprint-label,.map-overlay .site-dimension-label{font-size:calc(11px * var(--inv))}.map-overlay .site-dimension-label{stroke-width:calc(3px * var(--inv))}.map-overlay .site-walk,.map-overlay .site-neighbour{stroke-width:calc(1.2px * var(--inv))}.map-overlay .site-road-centre{stroke-width:calc(1.5px * var(--inv));stroke-dasharray:calc(14px * var(--inv)) calc(9px * var(--inv))}.map-overlay .site-access{stroke-width:calc(5px * var(--inv))}.map-overlay .site-footprint{stroke-width:calc(2px * var(--inv))}.map-overlay .site-dimension{stroke-width:calc(1.4px * var(--inv));stroke-dasharray:calc(4px * var(--inv)) calc(4px * var(--inv))}.map-overlay .site-selected .site-road,.map-overlay .site-selected .site-neighbour,.map-overlay .site-selected .site-neighbour-parcel{stroke-width:calc(2.6px * var(--inv))}.map-overlay .selection-anchor,.map-overlay .resize-handle{r:calc(9px * var(--inv));stroke-width:calc(2.5px * var(--inv))}.map-overlay .pick-highlight{stroke-width:calc(2px * var(--inv))}.site-neighbour-hatch{pointer-events:none}.site-neighbour-parcel{fill:#788cdc24;stroke:var(--site-parcel-line);stroke-width:2px;stroke-dasharray:8 5;stroke-linejoin:round}.site-neighbour-parcel-label{fill:var(--site-parcel-line);font-size:11px;font-weight:650}.map-overlay .site-neighbour-parcel{stroke-width:calc(2px * var(--inv));stroke-dasharray:calc(8px * var(--inv)) calc(5px * var(--inv))}.house-handle-arm{stroke:var(--accent)}.house-handle-knob{fill:var(--panel);stroke:var(--accent);pointer-events:none}.house-handle-turn{stroke:var(--accent);stroke-linecap:round}.canvas-hud.map{z-index:5;display:block;position:absolute;inset:auto 12px 210px auto}.tg-search{background:var(--control-bg);border:1.5px solid var(--accent);border-radius:11px;align-items:center;gap:8px;height:46px;padding:0 12px;display:flex}.tg-search input{min-width:0;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:15px}.tg-suggest{gap:4px;margin:0;padding:0;list-style:none;display:grid}.tg-suggest button{width:100%;color:var(--ink);border:1px solid var(--line);text-align:left;background:0 0;border-radius:10px;align-items:center;gap:10px;padding:10px;font-size:14px;display:flex}.tg-suggest button:hover{background:var(--accent-soft);border-color:var(--accent)}.tg-suggest small{color:var(--muted);font-size:12px;display:block}.tg-rows{gap:6px;margin:0;padding:0;list-style:none;display:grid}.tg-rows li{background:var(--control-bg);border-radius:9px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;display:flex}.tg-rows li.warn{color:var(--danger)}.tg-rows small{color:var(--muted);font-size:11.5px;display:block}.tg-rows .num{font:500 12.5px var(--font-mono,ui-monospace,monospace);color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.tg-actions{flex-wrap:wrap;gap:8px;display:flex}.tg-btn{min-height:44px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:11px;flex:auto;justify-content:center;align-items:center;gap:6px;padding:10px 14px;font-size:14px;font-weight:700;display:inline-flex}.tg-btn:hover:not(:disabled){background:var(--accent-soft)}.tg-btn.primary{color:var(--accent-contrast,#fff);background:var(--accent);border-color:var(--accent)}.tg-btn.primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}.tg-btn:disabled{opacity:.45;cursor:not-allowed}.tg-chips{flex-wrap:wrap;gap:6px;display:flex}.tg-chip{min-height:36px;color:var(--ink);background:var(--control-bg);border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-size:13px;font-weight:650}.tg-chip:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.tg-chip:disabled{opacity:.45;cursor:not-allowed}.tg-tip{color:var(--ink);background:var(--accent-soft);border-radius:10px;align-items:flex-start;gap:8px;padding:9px 10px;font-size:12.5px;line-height:1.4;display:flex}.tg-tip svg{color:var(--accent);flex:none;margin-top:1px}.basemap-button{z-index:5;background:var(--panel);border:2px solid var(--panel);width:64px;height:64px;box-shadow:var(--shadow);border-radius:12px;padding:0;position:absolute;bottom:22px;left:12px;overflow:hidden}.basemap-button .basemap-thumb{width:100%;height:100%;display:block}.basemap-button span{color:var(--accent-contrast,#fff);background:linear-gradient(#0000,#000000a6);padding:2px 0 3px;font-size:10.5px;font-weight:750;position:absolute;bottom:0;left:0;right:0}.basemap-sheet{z-index:38;width:340px;max-width:calc(100% - 24px);max-height:calc(100% - 160px);color:var(--ink);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;gap:12px;padding:14px;display:grid;position:absolute;bottom:94px;left:12px;overflow-y:auto}.basemap-sheet h3{margin:0;font-size:15px}.basemap-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.basemap-choice{color:var(--ink);background:var(--control-bg);border:2px solid #0000;border-radius:11px;gap:5px;padding:0 0 6px;font-size:12px;font-weight:650;display:grid;overflow:hidden}.basemap-choice .basemap-thumb{aspect-ratio:1.4;width:100%;height:auto}.basemap-choice[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.basemap-choice:disabled{opacity:.4;cursor:not-allowed}.basemap-row{justify-content:space-between;align-items:center;gap:10px;font-size:13.5px;display:flex}.basemap-sheet .switch{background:var(--line);border:0;border-radius:999px;width:42px;height:24px;padding:0;position:relative}.basemap-sheet .switch:after{content:"";background:var(--panel);border-radius:50%;width:18px;height:18px;transition:left .15s;position:absolute;top:3px;left:3px}.basemap-sheet .switch[aria-checked=true]{background:var(--accent)}.basemap-sheet .switch[aria-checked=true]:after{left:21px}.basemap-note{color:var(--muted);margin:0;font-size:12px;line-height:1.4}.basemap-reset{min-height:34px;color:var(--ink);background:var(--control-bg);border:1px solid var(--line);border-radius:9px;justify-self:start;padding:6px 10px;font-size:12.5px;font-weight:650}@media (max-width:767px){.terrain-map-controls{bottom:12px;right:8px}.basemap-button{width:56px;height:56px;bottom:22px;left:8px}.basemap-sheet{width:auto;max-width:none;bottom:86px;left:8px;right:8px}.terrain-map-scale{bottom:24px;left:72px}.canvas-hud.map{bottom:204px;right:8px}}@media (max-height:500px) and (max-width:1099px){.terrain-map-controls{bottom:8px;right:8px}.basemap-button{bottom:22px;left:8px}.basemap-sheet{width:min(340px,100% - 24px);max-height:calc(100% - 100px);bottom:86px;left:8px;right:auto}.terrain-map-scale{bottom:24px;left:72px}.terrain-map-credit{bottom:2px;right:64px}.canvas-hud.map{bottom:194px}}@media (prefers-reduced-motion:reduce){.terrain-map-needle,.basemap-sheet .switch:after{transition:none}}.tool-icon{flex:none}.tool-icon.symbol{overflow:visible}.tool-icon.symbol :is(rect,circle,ellipse,polygon,path,line,polyline){vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;stroke:currentColor!important;stroke-width:1.66667px!important}.tool-icon.symbol :is(rect,circle,ellipse,polygon){fill:currentColor!important}@supports (color:color-mix(in lab, red, red)){.tool-icon.symbol :is(rect,circle,ellipse,polygon){fill:color-mix(in srgb,currentColor 9%,transparent)!important}}.tool-icon.symbol :is(path,line,polyline){fill:none!important}.tool-icon.symbol text{display:none}.app{--island:#10241a;--island-ink:#eef6f0;--island-muted:#a9c2b1;--island-ok:#69ca91;--island-warn:#f0b06a;--island-err:#ef8a7d;--island-on-ok:#0b2016;--island-dot:#f0a43a}html[data-theme=dark] .app{--island:#040a07}@media (prefers-color-scheme:dark){html[data-theme=system] .app{--island:#040a07}}.island-layer{z-index:35;pointer-events:none;flex-direction:column;align-items:center;gap:6px;padding:10px 12px 0;display:flex;position:absolute;inset:0;overflow:hidden}.island-layer[data-reserve]{padding-bottom:76px}.island-row{flex:0 auto;justify-content:center;align-items:flex-start;gap:8px;max-width:100%;min-height:0;display:flex}.island-row>*,.island-layer>.island,.island-layer>.terrain-chips>button{pointer-events:auto}.island-row>.island-bubbles{pointer-events:none}.island-bubble{pointer-events:auto}.island{--panel:var(--island);--ink:var(--island-ink);--muted:var(--island-muted);--line:#ffffff29;--control-bg:#ffffff14;--accent:var(--island-ok);--accent-soft:#ffffff1f;--accent-contrast:var(--island-on-ok);--danger:var(--island-err);min-width:0;max-width:min(100%,480px);max-height:100%;color:var(--island-ink);background:var(--island);box-shadow:var(--shadow,0 10px 30px #13332538);border:1px solid #ffffff14;border-radius:24px;flex:0 auto;gap:10px;padding:0;font-size:13.5px;transition:opacity .15s;animation:.3s cubic-bezier(.3,1.35,.5,1) both island-in;display:grid;position:relative;overflow:auto}.island[data-fade]{opacity:.3;pointer-events:none}.island-line{align-items:center;gap:10px;min-height:44px;padding:0 8px 0 14px;display:flex}.island-text{white-space:normal;overflow-wrap:anywhere;flex:auto;min-width:0;font-weight:650;line-height:1.3}.island.rest .island-line,.island.rest{min-height:34px}.island.rest{border-radius:999px;font-size:12.5px;overflow:hidden}.island.rest .island-line{min-height:34px;padding:0 14px}.island.rest .island-text{color:var(--island-muted);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.island.rest b{font-weight:700}.island-dot{background:var(--island-dot);border-radius:50%;flex:none;width:10px;height:10px}.island-ico{border-radius:50%;flex:none;place-items:center;width:24px;height:24px;display:grid}.island-ico.info{color:var(--island-ok);background:#69ca9138}.island-ico.warning{color:var(--island-warn);background:#f0b06a38}.island-ico.error{color:var(--island-err);background:#ef8a7d38}.island-close{width:32px;height:32px;color:var(--island-muted);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.island-close:hover,.island-close:focus-visible{color:var(--island-ink);background:#ffffff1f}.island-actions{flex-wrap:wrap;gap:6px;padding:0 12px 12px 14px;display:flex}.island-pill{min-height:32px;color:var(--island-ink);background:#ffffff1f;border:0;border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:700}.island-pill:hover:not(:disabled){background:#fff3}.island-pill.go{color:var(--island-on-ok);background:var(--island-ok)}.island-pill.go:hover:not(:disabled){background:var(--island-ok);filter:brightness(1.08)}.island-pill:disabled{opacity:.4;cursor:not-allowed}.island :is(button,summary,input):focus-visible{outline:var(--focus-ring-width,2px) solid var(--island-ok);outline-offset:var(--focus-ring-offset,2px)}.island.notice{flex:none;width:min(100%,480px);max-height:none}.island.notice .island-line{padding-top:6px;padding-bottom:6px}.island.notice .island-actions{padding-top:0}.island-layer>.island.notice,.island-row>.island.tool,.island-row>.island.rest{pointer-events:none}.island-layer>.island.notice button,.island-row>.island.tool button,.island-row>.island.rest button{pointer-events:auto}.island.notice[data-held] .island-progress{animation-play-state:paused}.island-progress{background:var(--island-ok);transform-origin:0;height:3px;animation:4.5s linear forwards island-shrink}.island.tool{border-radius:24px;grid-template-columns:minmax(0,1fr) auto;align-items:center;width:min(100%,560px)}.island.tool .island-actions{flex-wrap:nowrap;padding:0 8px 0 0}.island-what{flex:auto;min-width:0;padding:4px 0;line-height:1.3;display:block}.island-what b{font-weight:700}.island-what span{color:var(--island-muted);font-size:12.5px}.island-bubbles{flex:none;gap:8px;display:flex}.island-bubble{background:var(--island);width:44px;height:44px;box-shadow:var(--shadow,0 10px 30px #13332538);border:1px solid #ffffff14;border-radius:50%;flex:none;place-items:center;padding:0;animation:.35s cubic-bezier(.3,1.5,.5,1) both island-pop;display:grid}.island-bubble.warning .island-ico{color:var(--island-warn);background:0 0}.island-bubble.more{color:var(--island-ink);font-size:13px;font-weight:750}.island-bubble.error .island-ico{color:var(--island-err);background:0 0}.island-bubble:focus-visible{outline:var(--focus-ring-width,2px) solid var(--island-ok);outline-offset:var(--focus-ring-offset,2px)}.island.terrain-guide{border-radius:20px;align-content:start;gap:12px;width:min(100%,440px);padding:0 16px 16px}.island.terrain-guide.mini{border-radius:999px;grid-auto-flow:column;align-items:center;gap:4px;width:auto;padding:0 6px 0 14px}.island.terrain-guide.mini.tool{border-radius:24px;grid-auto-flow:row;width:min(100%,560px);padding:0}.island.terrain-guide :is(p){color:var(--muted);margin:0;font-size:13.5px;line-height:1.45}.island.terrain-guide h2{color:var(--ink);text-wrap:balance;letter-spacing:-.01em;margin:0;font-size:18px;line-height:1.25}.island.terrain-guide .tg-status,.island.terrain-guide .tg-note{font-size:12.5px}.island.terrain-guide .tg-status.warn{color:var(--danger);font-weight:650}.tg-head{align-items:center;gap:10px;min-height:44px;margin:0 -8px 0 0;display:flex}.tg-head b{font-size:13.5px}.tg-eyebrow{min-width:0;color:var(--island-ok);letter-spacing:.08em;text-transform:uppercase;flex:auto;font-size:11px;font-weight:750}.tg-mini-label{min-width:0;min-height:44px;color:inherit;text-align:left;white-space:nowrap;background:0 0;border:0;flex:auto;align-items:center;gap:10px;padding:0;display:flex}.tg-mini-label b{font-weight:700}.tg-mini-label span{color:var(--island-muted);text-overflow:ellipsis;font-size:13px;overflow:hidden}.tg-fold{width:36px;height:36px;color:var(--island-ink);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.tg-fold:hover{background:#ffffff1f}.tg-rail{background:#ffffff0f;border-radius:12px;gap:2px;max-width:100%;padding:3px;display:flex}.tg-step{min-height:36px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:9px;flex:auto;justify-content:center;align-items:center;gap:6px;padding:5px 8px;font-size:12px;font-weight:650;display:flex}.tg-step b{border:1.5px solid;border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;display:grid}.tg-step.done{color:var(--accent)}.tg-step.done b{color:var(--accent-contrast,#fff);background:var(--accent);border-color:var(--accent)}.tg-step.now{color:var(--ink);background:#ffffff1f}.tg-step.now b{color:var(--accent);border-color:var(--accent)}.tg-step:disabled{cursor:default}.tg-step.done:hover{background:#ffffff1f}@media (max-width:767px){.island-layer{padding-left:8px;padding-right:8px}.island-layer[data-reserve]{padding-bottom:210px}.tg-step span{display:none}.tg-step.now span{display:inline}.island.tool .island-what{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.island.tool .island-what span{font-size:12px}.island.tool .island-pill{min-height:34px;padding:6px 10px}}@media (max-height:500px) and (max-width:1099px){.island.terrain-guide{width:min(100%,380px)}}@keyframes island-in{0%{opacity:0;transform:scale(.94)translateY(-6px)}}@keyframes island-pop{0%{opacity:0;transform:scale(.4)}}@keyframes island-shrink{to{transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.island,.island-bubble{transition:none;animation:none}.island-progress{animation-duration:4.5s}}@media (max-width:1099px) and (max-height:500px){.canvas-hud:not(.phone)[data-under-toolbox]>:not(.quick-restore){visibility:hidden}}.rose-hud{z-index:40;width:48px;height:48px;position:absolute;top:8px;right:8px}.north{width:48px;height:48px;color:var(--ink);background:var(--panel);border:1px solid var(--line);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:999px;place-items:center;padding:0;display:grid;position:relative;box-shadow:0 6px 14px #0000001f}.north:active{cursor:grabbing}.rose-hud[data-open=touch] .north{pointer-events:none}.north svg{width:44px;height:44px;overflow:visible}.north .north-disc{fill:none;stroke:var(--line);stroke-width:1.5px}.north .north-needle path{fill:var(--accent)}.north .north-needle text{fill:var(--ink);text-anchor:middle;font-size:9px;font-weight:800}.north:hover,.north:focus-visible,.rose-hud[data-open] .north{border-color:var(--accent)}.rose-wheel{pointer-events:none;position:absolute;top:18px;left:-118px}.rose-wheel svg{position:absolute;inset:0;overflow:visible}.rose-wheel-band{fill:none;stroke:var(--panel);stroke-width:18px;filter:drop-shadow(0 4px 12px #0003)}.rose-wheel-inner{fill:var(--panel);stroke:var(--line);pointer-events:all}.rose-tick{stroke:var(--muted);stroke-width:1px;opacity:.55}.rose-tick.major{stroke:var(--ink);stroke-width:2px;opacity:.8}.rose-wheel-mark path{fill:var(--accent)}.rose-wheel-grab{fill:none;stroke:#0000;stroke-width:20px;pointer-events:stroke;cursor:grab;touch-action:none}.rose-wheel-body{pointer-events:auto;justify-items:center;gap:4px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.rose-wheel-field{color:var(--ink);align-items:center;gap:1px;font-weight:800;display:flex}.rose-wheel-field input{width:46px;min-height:28px;font:inherit;text-align:right;color:var(--ink);background:var(--canvas);border:1px solid var(--line);border-radius:6px;padding:0 2px;font-size:14px}.rose-wheel-actions{gap:4px;display:flex}.rose-wheel-actions button{width:26px;height:26px;font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:7px;place-items:center;padding:0;font-size:12px;font-weight:800;display:grid}.rose-wheel-actions button:disabled{opacity:.45;cursor:default}.rose-wheel-actions button:not(:disabled):hover,.rose-wheel-actions button:focus-visible{color:var(--accent);border-color:var(--accent)}@media (max-width:1099px){.island-layer{padding-right:64px}}.plan-turned text:not([transform]){transform-box:fill-box;transform-origin:50%;transform:rotate(var(--unturn))}.drawing.pan-ready .plan,.drawing.pan-ready .plan *{cursor:grab!important}.drawing.panning .plan,.drawing.panning .plan *{cursor:grabbing!important}.controls-list{gap:10px;margin:0;display:grid}.controls-list div{gap:2px;display:grid}.controls-list dt{font-size:13px;font-weight:800}.controls-list dd{color:var(--muted);margin:0;font-size:12.5px;line-height:1.4}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
