@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-semi-condensed-vietnamese-400-normal-Dj7eBp_3.woff2)format("woff2"),url(/assets/barlow-semi-condensed-vietnamese-400-normal-D1YxRXwC.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-semi-condensed-latin-ext-400-normal-BDztQS4c.woff2)format("woff2"),url(/assets/barlow-semi-condensed-latin-ext-400-normal-Bm5hzUPR.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-semi-condensed-latin-400-normal-DlzeKIMS.woff2)format("woff2"),url(/assets/barlow-semi-condensed-latin-400-normal-CwTnoNB3.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-semi-condensed-vietnamese-600-normal-b1FQiZcx.woff2)format("woff2"),url(/assets/barlow-semi-condensed-vietnamese-600-normal-DzVrjA0Q.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-semi-condensed-latin-ext-600-normal-BkQ9hN72.woff2)format("woff2"),url(/assets/barlow-semi-condensed-latin-ext-600-normal-BuP8AaxH.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-semi-condensed-latin-600-normal-BkLiAYu4.woff2)format("woff2"),url(/assets/barlow-semi-condensed-latin-600-normal-DyOfdMBA.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-semi-condensed-vietnamese-700-normal-Dm7RZTvf.woff2)format("woff2"),url(/assets/barlow-semi-condensed-vietnamese-700-normal-BvUTSFNY.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-semi-condensed-latin-ext-700-normal-BhgEo64M.woff2)format("woff2"),url(/assets/barlow-semi-condensed-latin-ext-700-normal-C0vCoZIV.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-semi-condensed-latin-700-normal-BpqDG8I9.woff2)format("woff2"),url(/assets/barlow-semi-condensed-latin-700-normal-BMyZXq_9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.cloud-status,.cloud-doc{color:var(--ink2);white-space:nowrap;font-size:13px}.cloud-doc{text-overflow:ellipsis;max-width:220px;overflow:hidden}a.button{border:1px solid var(--line);color:var(--ink);white-space:nowrap;border-radius:4px;align-items:center;padding:4px 10px;font-size:14px;text-decoration:none;display:inline-flex}a.button:hover{border-color:var(--ink2)}.cloud-form{flex-direction:column;gap:10px;display:flex}.cloud-form h2{margin:0 0 4px}.cloud-form label{color:var(--ink2);flex-direction:column;gap:4px;font-size:14px;display:flex}.cloud-browse{grid-template-columns:1fr 1fr 1.2fr;gap:10px;display:grid}.cloud-list{flex-direction:column;gap:4px;min-width:0;display:flex}.cloud-list ul{border:1px solid var(--line);background:var(--paper);border-radius:4px;height:300px;margin:0;padding:0;list-style:none;overflow:auto}.cloud-list li{cursor:pointer;border-bottom:1px solid var(--line);padding:6px 8px;font-size:14px}.cloud-list li small{color:var(--ink2);font-size:12px;display:block}.cloud-list li .note{color:var(--ink2)}.cloud-list li[aria-selected=true]{background:var(--panel);box-shadow:inset 3px 0 0 var(--flag)}.cloud-list li.muted{cursor:default;color:var(--ink2)}.cloud-warn{color:var(--ink2);margin:10px 0 0;font-size:14px}.cloud-status.changed{color:var(--amber)}a.button.primary{background:var(--ink);color:var(--panel);border-color:var(--ink)}.plan-badge{border:1px solid var(--ok);color:var(--ok);white-space:nowrap;background:0 0;border-radius:999px;padding:3px 9px;font-size:13px}.plan-badge.paid{background:var(--ok);color:#fff}.plans-dialog{width:min(820px,94vw)}.plans-dialog h2{margin:0 0 6px}.plans p{margin:0 0 10px}.plan-cards{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.plan-card{border:1px solid var(--line);background:var(--paper);border-radius:6px;flex-direction:column;gap:8px;padding:12px;display:flex}.plan-card.best{border-color:var(--ok);box-shadow:inset 0 3px 0 var(--ok)}.plan-card h3{margin:0;font-size:16px}.plan-card p{color:var(--ink2);flex:1;margin:0;font-size:14px}.plans-note{color:var(--ink2);font-size:13px;margin-top:10px!important}.plans .error{color:var(--flag)}.menu-note{color:var(--ink2);padding:6px 12px 2px;font-size:13px}.billing-message{z-index:50;border:1px solid var(--ok);background:var(--panel);border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;display:flex;position:fixed;top:56px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000026}.watermark{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:34px 0 0;overflow:hidden}.watermark span{letter-spacing:.04em;color:var(--ink);opacity:.09;white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:clamp(16px,3.2vw,34px);font-weight:600;transform:rotate(-24deg)}.account-button{border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:inline-flex}.account-button.signed-in{border-color:var(--ink);background:var(--ink);color:var(--panel)}.account-button .avatar{letter-spacing:.02em;font-size:13px;font-weight:700}.account-head{flex-direction:column;padding:8px 12px 4px;display:flex}.account-head small{color:var(--ink2);text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.cloud-form.signin ul{margin:4px 0 12px;padding-left:20px}.cloud-form.signin li{margin:2px 0}.cloud-form.signin .muted{color:var(--ink2);margin:10px 0 0;font-size:12px}.legal-links{flex-wrap:wrap;gap:4px 12px;padding:6px 12px 8px;font-size:12px;display:flex}.legal-links a{color:var(--ink2)}dialog.wide{width:min(1200px,96vw);height:min(860px,92vh);padding:0}.materials{flex-direction:column;height:100%;display:flex}.materials-bar{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 12px;display:flex}.materials-bar .tabs{gap:4px;margin-right:auto;display:flex}.materials-bar .tabs button[aria-selected=true]{border-color:var(--flag)}.materials-bar label{color:var(--ink2);font-size:14px}.materials-bar select{width:auto}.materials-body{flex:1;padding:8px 12px 16px;overflow:auto}.materials table{font-size:13px}.materials tr.group th{color:var(--ink);padding-top:12px;font-size:14px}.materials td.note{color:var(--ink2);max-width:320px;font-size:12px}.materials input.price{text-align:right;width:80px;padding:2px 4px}.materials tfoot th,.materials tfoot td{border-top:2px solid var(--line);padding-top:6px}.materials .notes{color:var(--ink2);padding-left:18px;font-size:13px}.materials .disclaimer{border:1px solid var(--line);border-radius:4px;margin-top:16px;padding:8px 10px;font-size:13px}.materials-bar .tabs button{white-space:nowrap}.pdf-state{color:var(--ink2);border-bottom:1px solid var(--line);margin:0;padding:6px 12px;font-size:13px}.materials-gate{padding:8px 4px}.materials-gate h2{margin:0 0 8px}.materials-gate .error{color:var(--flag)}.materials-stale{border:1px solid var(--amber);border-radius:4px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;padding:8px 10px;font-size:14px;display:flex}dialog.wide:has(>.materials-gate){width:min(900px,94vw);height:auto}dialog.wide>.materials-gate{padding:16px}.plan .hair{vector-effect:non-scaling-stroke}.plan .grid-line{stroke:var(--grid);stroke-width:1px}.plan .grid-line.major{stroke-width:1.6px}.plan .contour{fill:none;stroke:var(--grass);stroke-width:1.2px;stroke-dasharray:6 4}.plan .contour-label{fill:var(--grass)}.plan .building{fill:var(--concrete);fill-opacity:.35;stroke:var(--ink2);stroke-width:1px}.plan .opening-door,.plan .opening-garage-door{stroke:var(--ink);stroke-width:5px}.plan .opening-patio-door{stroke:var(--ink);stroke-width:5px;stroke-dasharray:10 3}.plan .opening-window{stroke:#5a9bbd;stroke-width:4px}.plan .garden-wall{fill:none;stroke:var(--concrete);stroke-linejoin:round;stroke-linecap:round}.plan .fence{stroke:var(--lumber);stroke-width:3px}.plan .label{fill:var(--ink)}.plan .label.strong{font-weight:600}.plan .label.muted{fill:var(--ink2)}.plan .level-labels .label{stroke:var(--panel);stroke-width:3px;vector-effect:non-scaling-stroke;stroke-linejoin:round;paint-order:stroke}.plan .level{cursor:move}.plan .level-fill{fill:var(--lumber);fill-opacity:.28}.plan .cell-std{fill:var(--clr-std)}.plan .cell-low{fill:var(--clr-low)}.plan .cell-dig{fill:var(--clr-dig)}.plan .board-gap{fill:var(--board-gap)}.plan .board{fill:var(--board);stroke:var(--board-gap);stroke-width:.7px;stroke-opacity:.55;vector-effect:non-scaling-stroke}.plan .board.t2{fill:var(--board-2)}.plan .board.t3{fill:var(--board-3)}.plan .border-band{stroke:var(--border-board,var(--board));stroke-linecap:square}.plan .board-line{stroke:var(--board)}.plan .board-line.t2{stroke:var(--board-2)}.plan .board-line.t3{stroke:var(--board-3)}.plan .board.border{fill:var(--border-board,var(--board))}.plan .joist{stroke:var(--pt);stroke-width:1.5px}.plan .beam{stroke:var(--ink);stroke-width:3px}.plan .beam.flush{stroke-dasharray:6 3}.plan .ledger{stroke:var(--ink);stroke-width:1.5px}.plan .post{fill:var(--ink)}.plan .block{fill:var(--concrete);stroke:var(--ink);stroke-width:1px}.plan .dig{fill:var(--flag);stroke:var(--ink);stroke-width:1px}.plan .footing{fill:none;stroke:var(--ink2);stroke-width:1px;stroke-dasharray:3 2}.plan .outline{fill:none;stroke:var(--ink);stroke-width:1.2px}.plan .selected>.outline,.plan .outline.selected{stroke:var(--select);stroke-width:2.5px}.plan .select-glow{fill:var(--select);fill-opacity:.14;stroke:var(--select);stroke-opacity:.45;stroke-width:10px;pointer-events:none}.plan .stair{cursor:move}.plan .stair.wrap{cursor:pointer}.plan .stair-fill{fill:var(--tread)}.plan .tread{stroke:var(--board-gap);stroke-width:1.2px}.plan .tread-shade{fill:#000;pointer-events:none}.plan .tread-seam{stroke:var(--board-gap);stroke-width:.7px;stroke-opacity:.5}.plan .selected .tread{stroke:var(--select)}.plan .arrow{stroke:var(--flag);stroke-width:1.5px;fill:none}.plan .guard{stroke:var(--rail,var(--ink));stroke-width:3.5px;stroke-linecap:square}.plan .stair-guard{stroke:var(--rail,var(--ink));stroke-width:3px;stroke-linecap:round}.plan .handrail{stroke:var(--ink);stroke-width:2px;stroke-dasharray:5 2.5;stroke-linecap:round}.plan .dim{stroke:var(--ink2);stroke-width:1px}.plan .dim-text{fill:var(--ink);stroke:var(--panel);stroke-width:3px;vector-effect:non-scaling-stroke;stroke-linejoin:round;paint-order:stroke;font-weight:600}.plan .beam-mark{fill:var(--flag);font-weight:600}.plan .edge-hit{stroke:var(--flag);stroke-opacity:.001;stroke-width:12px;cursor:pointer}.plan .edge-hit:hover{stroke-opacity:.55}.plan .handle{fill:var(--panel);stroke:var(--select);stroke-width:2px}.plan .drop-shape{fill:var(--select);fill-opacity:.22;stroke:var(--select);stroke-width:2px;stroke-dasharray:6 4}.plan .drop-reason{fill:var(--flag);stroke:var(--panel);stroke-width:3px;vector-effect:non-scaling-stroke;paint-order:stroke;font-weight:600}.plan .snap-guide{stroke:var(--flag);stroke-width:1px;stroke-dasharray:4 3}.plan text{pointer-events:none}.plan .section-cut{cursor:ns-resize}.plan .cut-hit{stroke:#0000}.plan .cut-line{stroke:var(--flag);stroke-width:1.5px;stroke-dasharray:10 4 2 4}.plan .cut-label{fill:var(--flag)}.plan .builtin{cursor:move}.plan .bi-wood{fill:var(--lumber);stroke:var(--board-gap);stroke-width:.6px}.plan .bi-soil{fill:#6b5236}.plan .bi-plant{fill:#5f8f45;fill-opacity:.9}.plan .bi-line,.plan .bi-rafter{stroke:var(--board-gap);stroke-opacity:.7}.plan .bi-pergola{fill:var(--lumber);fill-opacity:.12;stroke:var(--board-gap);stroke-dasharray:5 3}.plan .bi-beam{stroke:var(--board-gap);stroke-width:3px}.plan .bi-post{fill:var(--board-gap)}.plan .bi-stone{fill:#9a9794;stroke:#6f6c69;stroke-width:1px}.plan .bi-fire{fill:#e8792b}.plan .bi-spa{fill:#eeeae3;stroke:#9a9794;stroke-width:1px}.plan .bi-water{fill:#5ab2d3}.plan .bi-label{pointer-events:none}.plan .wall-hit{fill:none;stroke:#0000;stroke-width:12px;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:move}.plan.locked .wall-hit{cursor:default}.plan .wall-glow{fill:none}.plan.locked [data-kind=wpoint]{display:none}.plan.drawing,.plan.drawing .wall-hit,.plan.drawing [data-kind]{cursor:crosshair}.plan .draw-line{stroke:var(--flag);stroke-width:2.5px}.plan .draw-line.live{stroke-dasharray:6 4}.plan .draw-point{fill:var(--panel);stroke:var(--flag);stroke-width:2px}.plan .draw-point.start{fill:var(--flag)}.plan .draw-cursor{fill:none;stroke:var(--ink2);stroke-width:1.5px}.plan .draw-cursor.snapped-point{stroke:var(--ok);stroke-width:2.5px}.plan .draw-cursor.snapped-angle{stroke:var(--select);stroke-width:2.5px}.plan .opening-hit{stroke:#0000;stroke-width:14px;vector-effect:non-scaling-stroke;cursor:ew-resize}.plan.locked .opening-hit{cursor:default}.plan .opening-glow{stroke-width:12px}.plan .drop-opening{stroke-width:9px;stroke-opacity:.8}.plan .bi-canopy{fill:#5e8f3e;stroke:#3f6d27;stroke-width:1px}.plan .bi-canopy-light{fill:#7fae55;fill-opacity:.55}.plan .bi-canopy-shadow{fill:#1f3a12;fill-opacity:.18}.plan .bi-needles{fill:#2f5d34;stroke:#1f4224;stroke-width:1px}.plan .bi-needle-line{stroke:#6f9a5e;stroke-opacity:.8}.plan .bi-trunk{fill:#6b4a2e}.section line,.section polyline,.section polygon,.section rect{vector-effect:non-scaling-stroke}.section text{pointer-events:none}.section .grid-line{stroke:var(--grid);stroke-width:1px}.section .grid-line.datum{stroke-width:1.8px}.section .bounds{fill:none;stroke:none}.section .label{fill:var(--ink)}.section .label.strong{font-weight:600}.section .label.muted{fill:var(--ink2)}.section .level-note .label{stroke:var(--panel);stroke-width:3px;stroke-linejoin:round;paint-order:stroke}.section .ground{fill:var(--grass);fill-opacity:.22;stroke:var(--grass);stroke-width:2px}.section .fence-top{fill:none;stroke:var(--lumber);stroke-width:1.5px;stroke-dasharray:8 5}.section .fence-label{fill:var(--lumber)}.section .building{fill:var(--concrete);fill-opacity:.4;stroke:var(--ink2);stroke-width:1px}.section .slab{fill:var(--concrete)}.section .door-line{stroke:var(--ink);stroke-width:3px}.section .cell-std{fill:var(--clr-std)}.section .cell-low{fill:var(--clr-low)}.section .cell-dig{fill:var(--clr-dig)}.section .joists{fill:var(--pt);fill-opacity:.55}.section .ledger,.section .beam{fill:var(--ink)}.section .post{fill:var(--pt);stroke:var(--ink);stroke-width:1px}.section .block{fill:var(--concrete);stroke:var(--ink);stroke-width:1px}.section .block.dig{fill:var(--flag)}.section .footing{fill:none;stroke:var(--ink2);stroke-width:1px;stroke-dasharray:4 3}.section .deck-surface{fill:var(--lumber)}.section .slevel.selected .deck-surface{fill:var(--select)}.section .deck-handle{fill:#0000;cursor:ns-resize}.section .stair-profile{fill:none;stroke:var(--ink);stroke-width:2px}.section .stringer{stroke:var(--pt);stroke-opacity:.6}.section [data-kind=sstair]{cursor:pointer}.section .tread{fill:var(--lumber)}.section .guard-post{stroke:var(--ink);stroke-width:3px}.section .guard-run{fill:none;stroke:var(--ink);stroke-width:1.5px}.section .stair-guard line,.section .handrail line{stroke:var(--ink);stroke-width:3px}.section .handrail line{stroke-width:2px}.section .stair-guard .rail-post,.section .handrail .rail-post{stroke-width:1.5px}.section .fence-cut{stroke:var(--lumber);stroke-width:3px;vector-effect:non-scaling-stroke}.section .garden-wall-cut{fill:var(--concrete);stroke:var(--ink2);stroke-width:1px;vector-effect:non-scaling-stroke}.section .window-line{stroke:#5a9bbd;stroke-width:3px;vector-effect:non-scaling-stroke}:root{--paper:#f3f5f7;--panel:#fff;--ink:#1f2b38;--ink2:#5a6877;--line:#d3dae1;--grid:#e2e7ec;--lumber:#b98b5e;--pt:#9e9a66;--flag:#e0407b;--grass:#3f6d27;--amber:#c98f0e;--ok:#3f8a5a;--concrete:#a7abae;--clr-std:#3f8a5a4d;--clr-low:#c98f0e61;--clr-dig:#e0407b73;--sky:#dce5eb;--board:#dcbf8f;--board-2:#d5b583;--board-3:#e1c699;--board-gap:#8d6a42;--tread:#bf9a66;--select:#f0a800;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#141a20;--panel:#1b232b;--ink:#e3e8ed;--ink2:#9aa7b4;--line:#34414d;--grid:#222c35;--concrete:#6e7478;--sky:#2a3642;--grass:#6fa34a;--board:#b08d5e;--board-2:#a98657;--board-3:#b79566;--board-gap:#3b2c1b;--tread:#93744b;--select:#ffc233;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);margin:0;font-family:Barlow Semi Condensed,Arial Narrow,system-ui,sans-serif;font-size:15px;line-height:1.35}*,:before,:after{box-sizing:border-box}button{font:inherit;color:var(--ink);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:14px;font-weight:600}button:hover{border-color:var(--ink2)}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--ink);color:var(--panel);border-color:var(--ink)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--flag);outline-offset:1px}input,select{font:inherit;border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);border-radius:3px;padding:4px 6px;font-size:14px}input[type=checkbox]{width:auto}input.invalid{border-color:var(--flag)}.app{grid-template-rows:auto minmax(0,1fr);height:100%;display:grid}.app>header{border-bottom:1px solid var(--line);background:var(--panel);align-items:center;gap:14px;padding:8px 14px;display:flex}.app>header h1{white-space:nowrap;margin:0;font-size:20px;font-weight:700}.app>header .sub{color:var(--ink2);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.app>header .brand{flex:0 auto;align-items:center;gap:10px;min-width:0;display:flex}.toolbar{flex:none;align-items:center;gap:8px;display:flex}.toolbar .group{gap:4px;display:flex}.toolbar .divider{background:var(--line);width:1px;height:22px}.tools{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}button.with-icon{align-items:center;gap:6px;display:inline-flex}button.accent{background:var(--ok);border-color:var(--ok);color:#fff}button.accent:hover{filter:brightness(1.08)}.segmented{border:1px solid var(--line);background:var(--paper);border-radius:6px;display:inline-flex;overflow:hidden}.segmented button{color:var(--ink2);border:0;border-radius:0;align-items:center;gap:6px;padding:5px 12px;display:inline-flex}.segmented button+button{border-left:1px solid var(--line)}.segmented button:hover{color:var(--ink);background:var(--panel)}.segmented button[aria-pressed=true]{background:var(--ink);color:var(--panel)}.menu{position:relative}.menu-button{align-items:center;gap:6px;display:inline-flex}.menu-button strong{font-weight:700}.menu-panel{z-index:40;border:1px solid var(--line);background:var(--panel);border-radius:8px;width:300px;max-height:calc(100vh - 80px);padding:6px;position:absolute;top:calc(100% + 6px);left:0;overflow:auto;box-shadow:0 8px 24px #0003}.menu-heading{color:var(--ink2);text-transform:uppercase;letter-spacing:.04em;padding:8px 8px 4px;font-size:12px;font-weight:600}.menu-item{text-align:left;border:0;border-radius:6px;align-items:flex-start;gap:8px;width:100%;padding:6px 8px;font-weight:500;display:flex}.menu-item:hover{background:var(--paper)}.menu-item small{color:var(--ink2);font-size:12.5px;font-weight:400;display:block}.menu-check{width:12px;color:var(--flag);flex:0 0 12px;padding-top:3px;font-size:11px}.menu-panel.right{width:280px;left:auto;right:0}a.menu-item{color:var(--ink);font-size:14px;text-decoration:none}.menu-item:disabled{opacity:.45}.menu-separator{background:var(--line);height:1px;margin:6px 4px}.menu-layer{padding:3px 8px;font-size:14px}@media (width<=1480px){.segmented button span,.toolbar .with-icon{font-size:13px}.app>header .api-status{display:none}}@media (width<=1320px){.segmented button span{display:none}}.api-status{color:var(--ink2);white-space:nowrap;align-items:center;gap:5px;font-size:13px;display:inline-flex}.api-status i{background:var(--ink2);border-radius:50%;width:8px;height:8px}.api-status.ok i{background:var(--ok)}.api-status.down i{background:var(--flag)}.app>main{grid-template-columns:340px minmax(0,1.35fr) minmax(320px,1fr);min-height:0;display:grid;position:relative}.app>main[data-panel=rail]{grid-template-columns:44px minmax(0,1.35fr) minmax(320px,1fr)}.app>main[data-max=plan],.app>main[data-max=section],.app>main[data-max="3d"]{grid-template-columns:340px minmax(0,1fr)}.app>main[data-panel=rail][data-max=plan],.app>main[data-panel=rail][data-max=section],.app>main[data-panel=rail][data-max="3d"]{grid-template-columns:44px minmax(0,1fr)}.app>main[data-max=plan] .v3pane,.app>main[data-max=section] .v3pane{display:none}.app>main[data-max=plan] .drafting,.app>main[data-max=section] .drafting{grid-template-rows:minmax(0,1fr)}.app>main[data-max="3d"] .v3pane{border-left:0}.icon-btn{color:var(--ink2);border-color:#0000;justify-content:center;align-items:center;padding:4px;line-height:0;display:inline-flex}.icon-btn:hover{color:var(--ink);border-color:var(--line)}.icon-btn[aria-pressed=true]{color:var(--flag)}.rail{border-right:1px solid var(--line);background:var(--panel);flex-direction:column;align-items:center;gap:4px;min-height:0;padding:6px 0;display:flex;overflow:auto}.rail-tab{border-color:#0000;border-left-style:solid;border-left-width:3px;border-radius:0 4px 4px 0;flex-direction:column;align-items:center;gap:6px;width:34px;padding:10px 0;display:flex}.rail-tab>span:first-child{writing-mode:vertical-rl}.rail-tab[aria-pressed=true]{border-left-color:var(--flag);background:var(--paper)}.rail .count{background:var(--flag);color:#fff;text-align:center;border-radius:9px;min-width:18px;padding:0 4px;font-size:12px;display:inline-block}.sidepanel.floating{z-index:20;width:340px;max-width:calc(100% - 44px);position:absolute;top:0;bottom:0;left:44px;box-shadow:4px 0 18px #0000002e}.tabs .panel-btn{border-width:0 0 3px;border-color:#0000;flex:none;padding:0 8px}aside{border-right:1px solid var(--line);background:var(--panel);flex-direction:column;min-height:0;display:flex}.tabs{border-bottom:1px solid var(--line);display:flex}.tabs button{white-space:nowrap;border:0;border-bottom:3px solid #0000;border-radius:0;flex:1;min-width:0;padding:8px 2px 6px}.tabs button[aria-selected=true]{border-bottom-color:var(--flag)}.tabs .count{background:var(--flag);color:#fff;border-radius:9px;min-width:16px;margin-left:2px;padding:0 4px;font-size:12px;display:inline-block}.tabpanel{flex:1;padding:12px 14px 24px;overflow:auto}.tabpanel h2{margin:14px 0 6px;font-size:16px}.tabpanel h2:first-child{margin-top:0}.tabpanel p{color:var(--ink2);margin:4px 0 8px;font-size:14px}.swatches{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:6px 0 10px;display:grid}.swatch{text-align:left;align-items:center;gap:8px;min-width:0;padding:5px 8px;font-weight:500;display:flex}.swatch span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.swatch i{border:1px solid var(--line);border-radius:4px;flex:0 0 22px;height:22px}.swatch[aria-pressed=true]{border-color:var(--select);box-shadow:0 0 0 2px color-mix(in srgb, var(--select) 40%, transparent)}.segmented.small button{padding:4px 14px}.check{align-items:center;gap:8px;padding:3px 0;font-size:14px;display:flex}.check input[type=checkbox],.check input[type=radio]{width:16px;height:16px;accent-color:var(--ink);flex:0 0 16px;margin:0;padding:0}.choice-list{grid-template-columns:1fr 1fr;gap:0 8px;display:grid}.tabpanel .hint-small{margin:6px 0 2px;font-size:13px}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:4px 0 10px;display:grid}.tile{background:var(--panel);cursor:grab;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:10px 6px 8px;font-weight:600;display:flex}.tile:hover{border-color:var(--select);box-shadow:0 0 0 3px color-mix(in srgb, var(--select) 30%, transparent)}.tile:active{cursor:grabbing}.tile svg{width:56px;height:56px}.tile-board{fill:var(--board)}.tile-board.t2{fill:var(--board-2)}.tile-board.t3{fill:var(--board-3)}.tile-tread{fill:var(--tread)}.tile-plant{fill:#5f8f45}.tile-stone{fill:#9a9794}.tile-fire{fill:#e8792b}.tile-spa{fill:#eeeae3;stroke:#9a9794}.tile-water{fill:#5ab2d3}.tile-wall{fill:var(--concrete)}.tile-door{fill:var(--ink2)}.tile-fence{fill:none;stroke:var(--lumber);stroke-width:3px}.tile-post{fill:var(--board-gap)}.tile-leaves{fill:#5e8f3e}.tile-leaves2{fill:#3f7229}.tile-needles{fill:#2c5a2e}.tile-bark{fill:#6b4a2e}.tile-glass{fill:#9fcbe0;stroke:var(--ink2);stroke-width:1px}.tile-mullion{stroke:var(--ink2);stroke-width:1.5px}.tile-garden-wall{fill:none;stroke:var(--concrete);stroke-width:7px;stroke-linecap:round;stroke-linejoin:round}.draw-bar{z-index:5;border:1px solid var(--line);background:var(--panel);white-space:nowrap;border-radius:8px;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:8px 10px 8px 14px;font-size:13.5px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000026}.draw-bar>span{text-overflow:ellipsis;overflow:hidden}.draw-bar label{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.draw-bar .round{border-radius:50%;width:32px;height:32px;padding:0;font-size:16px;font-weight:700}.draw-bar .round.apply{border-color:var(--ok);color:var(--ok)}.tabpanel .build-message{color:var(--flag);font-weight:600}.tabpanel .build-more{font-size:13px}.field{grid-template-columns:128px minmax(0,1fr);align-items:center;gap:8px;margin:5px 0;display:grid}.field .inline{gap:6px;display:flex}.field>label{color:var(--ink2);font-size:14px}.objlist{margin:0 0 6px;padding:0;list-style:none}.objlist li button{text-align:left;border:0;border-left:3px solid #0000;border-radius:0;justify-content:space-between;gap:8px;width:100%;padding:4px 8px;font-weight:500;display:flex}.objlist li button[aria-current=true]{border-left-color:var(--flag);background:var(--paper)}.objlist .meta{color:var(--ink2);font-weight:400}.layer{align-items:center;gap:8px;padding:3px 0;display:flex}.layer .sw{border-radius:2px;width:14px;height:10px;display:inline-block}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:3px 4px}th{color:var(--ink2);font-weight:600}td.n{text-align:right;white-space:nowrap}.check{border-bottom:1px solid var(--line);grid-template-columns:10px 1fr;gap:8px;padding:7px 0;font-size:14px;display:grid}.check .dot{border-radius:50%;width:10px;height:10px;margin-top:4px}.warn .dot{background:var(--flag)}.note .dot{background:var(--amber)}.good .dot{background:var(--ok)}.drafting{grid-template-rows:minmax(0,1fr) minmax(0,1fr);min-width:0;min-height:0;display:grid}.drafting>.pane+.pane{border-top:1px solid var(--line)}.panebar input[type=range]{border:0;width:120px;padding:0}.panebar select{width:auto}.panebar .cut-value{min-width:11ch}.pane{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.panebar{color:var(--ink2);border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:nowrap;align-items:center;gap:12px;min-height:36px;padding:5px 10px;font-size:14px;display:flex}.panebar .hint{white-space:nowrap;text-overflow:ellipsis;flex:1 1 0;min-width:0;overflow:hidden}.panebar>*{flex-shrink:0}.panebar>.hint{flex-shrink:1}.panebar strong{color:var(--ink);font-size:15px}.legend{flex-wrap:nowrap;align-items:center;gap:10px;margin-left:auto;display:flex}.legend span{align-items:center;gap:4px;font-size:13px;display:inline-flex}.legend i{border-radius:2px;width:12px;height:10px;display:inline-block}svg.view{touch-action:none;-webkit-user-select:none;user-select:none;flex:1;width:100%;min-height:0;display:block}dialog{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:6px;width:min(720px,92vw);padding:16px}dialog textarea{background:var(--paper);width:100%;height:320px;color:var(--ink);border:1px solid var(--line);padding:8px;font:13px/1.4 ui-monospace,Consolas,monospace}dialog .row{justify-content:flex-end;align-items:center;gap:8px;margin-top:10px;display:flex}dialog .error{color:var(--flag);margin-right:auto;font-size:14px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.v3pane{border-left:1px solid var(--line)}.v3{background:var(--sky);flex:1;min-height:0;position:relative}.v3 canvas{touch-action:none;display:block}.v3-msg{text-align:center;color:var(--ink2);place-items:center;padding:24px;display:grid;position:absolute;inset:0}aside .hint{color:var(--ink2);margin:-2px 0 10px;font-size:13px}aside .cite{color:var(--ink2);font-size:12px}dialog.new-design{width:min(980px,94vw)}dialog.new-design h2{margin:0 0 4px}dialog.new-design>p{color:var(--ink2);margin:0 0 12px}.template-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;display:grid}.template-card{text-align:left;border:1px solid var(--line);background:var(--paper);border-radius:6px;flex-direction:column;align-items:stretch;gap:4px;padding:8px;display:flex}.template-card:hover,.template-card:focus-visible{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok)}.template-card strong{font-size:15px}.template-card small{color:var(--ink2);font-size:13px;line-height:1.3}.template-thumb{background:var(--panel);border-radius:4px;width:100%;height:120px;margin-bottom:4px}.template-thumb .thumb-lawn{fill:var(--grass);fill-opacity:.28}.template-thumb .thumb-house{fill:var(--concrete);fill-opacity:.7}.template-thumb .thumb-deck{fill:var(--board);stroke:var(--board-gap);stroke-width:2px}.template-thumb .thumb-stair{fill:var(--tread);stroke:var(--board-gap);stroke-width:2px}.template-thumb .thumb-plus{fill:var(--ok);dominant-baseline:middle;font-size:80px;font-weight:300}dialog.new-design .note{color:var(--ink2);margin-right:auto;font-size:13.5px}.lock-btn.on{background:var(--select);border-color:var(--select);color:#1f2b38}.plan.locked [data-kind=handle],.plan.locked [data-kind=edge]{display:none}.plan.locked [data-kind=level],.plan.locked [data-kind=stair],.plan.locked [data-kind=builtin],.section.locked [data-kind=slevel]{cursor:default}dialog.new-design .start-title{text-align:center;margin:4px 0 16px;font-size:24px}.start-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.start-card{border:1px solid var(--line);background:var(--paper);border-radius:8px;flex-direction:column;gap:6px;padding:10px;display:flex}.start-card .template-thumb{height:200px}.start-card strong{text-align:center;font-size:17px}.start-card small{color:var(--ink2);text-align:center;flex:1}.start-card button{padding:8px;font-size:15px}.new-design-head{align-items:center;gap:12px;display:flex}.template-grid.large{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.template-card.large .template-thumb{height:180px}.template-picture{object-fit:cover;background:var(--panel);border-radius:4px;width:100%;height:120px;margin-bottom:4px;display:block}.start-card .template-picture{height:200px}.template-card.large .template-picture{height:190px}.opening-tile .opening-picture{object-fit:cover;border-radius:3px;width:56px;height:56px;display:block}.opening-tile .tile-size{color:var(--ink2);font-size:11px}.build-note{color:var(--ink2);margin:0 0 4px;font-size:12px}.tiles.tiles-3{grid-template-columns:repeat(3,minmax(0,1fr))}.opening-tile{padding:8px 4px 6px;font-size:12px}.tabpanel h3{color:var(--ink2);margin:8px 0 2px;font-size:13px}.legend button[aria-pressed=true]{background:var(--ink);color:var(--panel)}.eye-height{align-items:center;gap:4px;font-size:13px;display:inline-flex}.plan-stage{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.object-card{text-align:left;color:var(--ink);z-index:4;border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:10px 12px;font-size:13px;position:absolute;overflow:auto;box-shadow:0 6px 24px #141e282e}.object-card header{align-items:center;gap:4px;margin-bottom:6px;display:flex}.object-card header strong{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:15px;overflow:hidden}.object-card .icon{width:26px;height:26px;padding:0;line-height:1}.card-status{border-radius:6px;margin:0 0 8px;padding:5px 8px;font-weight:600}.card-status.ok{background:color-mix(in srgb, var(--ok) 14%, transparent);color:var(--ok)}.card-status.warn{background:color-mix(in srgb, var(--amber) 16%, transparent)}.card-status.warn button{all:unset;cursor:pointer;color:var(--amber);text-decoration:underline}.card-sizes{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:8px;display:grid}.card-sizes label{color:var(--ink2);flex-direction:column;gap:2px;font-size:12px;display:flex}.card-sizes input{width:100%;min-width:0}.card-facts{grid-template-columns:auto 1fr;gap:3px 10px;margin:0 0 8px;display:grid}.card-facts dt{color:var(--ink2)}.card-facts dd{margin:0}.object-card .muted{color:var(--ink2)}.card-actions{flex-wrap:wrap;gap:6px;display:flex}.card-actions button[aria-pressed=true]{background:var(--ink);color:var(--panel)}.card-actions .danger{color:var(--flag)}.card-note{color:var(--ink2);margin:8px 0 0;font-size:11px}.object-card.folded{padding-bottom:4px}.dim-chip{z-index:3;position:absolute;transform:translate(-50%,-50%)}.dim-chip input{border:1px solid var(--select);background:var(--panel);text-align:center;border-radius:4px;width:64px;padding:1px 4px;font-size:12px;font-weight:600}.card-row{display:contents}.card-label{color:var(--ink2);margin:2px 0 4px;font-size:12px}.card-swatches{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.card-swatches button{border:1px solid var(--line);border-radius:50%;width:20px;height:20px;padding:0}.card-swatches button[aria-pressed=true]{outline:2px solid var(--select);outline-offset:1px}.card-hint{color:var(--ink2);margin:0 0 8px;font-size:12px}.card-ideas{border-top:1px solid var(--line);margin:0 0 8px;padding-top:6px}.card-ideas-toggle{all:unset;cursor:pointer;color:var(--ink);font-weight:600}.card-ideas ul{gap:6px;margin:6px 0 0;padding:0;list-style:none;display:grid}.card-ideas li{background:color-mix(in srgb, var(--select) 10%, transparent);border-radius:6px;padding:6px 8px}.card-idea-head{align-items:center;gap:6px;display:flex}.card-idea-head strong{flex:1}.card-ideas li p{color:var(--ink2);margin:3px 0 0;font-size:12px}.object-card .card-handle{cursor:move;touch-action:none;-webkit-user-select:none;user-select:none}.object-card .card-handle button{cursor:pointer}.location-badge{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--line);background:var(--panel);max-width:340px;color:var(--ink2);border-radius:999px;padding:2px 8px;font-size:12px;overflow:hidden}.location-badge.missing{border-color:var(--amber);color:var(--amber)}.region-picker{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 10px;margin-bottom:6px;display:grid}.region-picker label{color:var(--ink2);flex-direction:column;gap:2px;font-size:12px;display:flex}.region-picker .region-note{grid-column:1/-1;margin:2px 0 0;font-size:12px}.start-location{border:1px solid var(--line);background:var(--panel);border-radius:10px;gap:4px;max-width:640px;margin:0 auto 18px;padding:10px 14px;display:grid}
