:root{--ink:#25282a;--muted:#67716f;--line:#dce1dd;--paper:#fff;--bg:#f0f2ef;--yellow:#f4c846;--dark:#1c2021}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 "Segoe UI",Arial,sans-serif}.top{height:78px;background:var(--dark);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(32px,calc((100vw - 1320px)/2));gap:16px}.brand{display:flex;align-items:center;gap:12px;font-weight:750;letter-spacing:.06em}.brand small{display:block;font-size:11px;font-weight:400;letter-spacing:0;color:#adb5b2}.mark{background:var(--yellow);color:var(--dark);font-size:22px;font-weight:800;display:grid;place-items:center;width:39px;height:39px;border-radius:3px}.local{font-size:12px;color:#c2c9c5}main{max-width:1320px;margin:auto;padding:42px 32px 100px}.intro{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.intro h1{font-size:42px;line-height:1.05;letter-spacing:-.04em;margin:8px 0 13px}.kicker{font-size:12px;color:#7b8580;font-weight:700;letter-spacing:.06em;margin:0}.lead{color:var(--muted);max-width:660px;margin:0}.intro-number{color:#c3cac3;font-size:44px;font-weight:800;line-height:1;display:flex;gap:10px;align-items:end}.intro-number span{font-size:11px;line-height:1.25;color:#929a95;font-weight:500;padding-bottom:3px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:26px;align-items:start}.maincol{display:grid;gap:18px}.box{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:27px 30px}.upload{display:flex;justify-content:space-between;align-items:center;gap:20px;border-left:5px solid var(--yellow)}h2{font-size:20px;margin:0 0 4px;letter-spacing:-.015em}h3{margin:0 0 5px;font-size:18px}.box p,.result p{color:var(--muted);margin:0;font-size:13px}.file-state{font-size:12px;margin-top:12px;color:#52645a}.uploadbutton,.secondary,.primary{display:inline-flex;align-items:center;justify-content:center;min-height:43px;padding:0 17px;border-radius:5px;border:1px solid #b9c3bb;background:white;color:var(--ink);font:inherit;font-weight:650;text-decoration:none;cursor:pointer;white-space:nowrap}.uploadbutton{background:var(--dark);color:white;border-color:var(--dark)}button:hover,.uploadbutton:hover{filter:brightness(.96)}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible,.uploadbutton:focus-within{outline:3px solid #e4b629;outline-offset:2px}.text-button{background:none;border:0;padding:6px 0;color:#53645b;font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}.warning{background:#fff4d1;border:1px solid #ebd184;border-radius:6px;padding:15px 18px;color:#51411b;font-size:13px;white-space:pre-line}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:22px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.full{grid-column:1/-1}label{display:block;font-size:13px;font-weight:650;color:#35413b}input:not([type=radio]),textarea{display:block;width:100%;background:white;border:1px solid #cbd3ce;border-radius:5px;padding:10px 11px;margin-top:6px;font:15px "Segoe UI",Arial,sans-serif;color:var(--ink)}textarea{resize:vertical}fieldset{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;margin:0 0 20px;display:flex;gap:26px}legend{padding:0 8px 0 0;font-size:13px;font-weight:700}.choice{display:flex;gap:8px;align-items:flex-start;font-size:13px;flex:1}.choice input{accent-color:#bd921a;margin-top:4px}.choice small{display:block;color:var(--muted);font-weight:400;line-height:1.35;margin-top:3px}.estimate-row{border-top:1px solid var(--line);padding:18px 0}.estimate-row:first-child{border-top:0}.row-head{display:flex;justify-content:space-between;margin-bottom:10px;font-size:13px}.remove{border:0;background:transparent;color:#9a5149;cursor:pointer;font-size:12px}.row-values{display:grid;grid-template-columns:1fr .7fr 1.3fr 1.3fr;gap:10px;margin-top:12px}.calculate{font-size:12px;margin-top:6px}.add-bottom{display:none}aside{position:sticky;top:24px;display:grid;gap:14px}.summary{background:var(--dark);color:#f7f6ee;border-radius:8px;padding:27px}.summary .kicker{color:#c8b267}.summary h2{margin:8px 0 24px}.summary-line{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid #3d4643;font-size:13px}.summary-line span{color:#a6b0aa}.summary-line strong{text-align:right;overflow-wrap:anywhere;max-width:180px}.sum-total{padding:25px 0}.sum-total span,.sum-total small{display:block;color:#aab4ad;font-size:12px}.sum-total strong{display:block;color:var(--yellow);font-size:25px;margin:4px 0}.primary{width:100%;background:var(--yellow);border-color:var(--yellow);color:#211d12;font-size:15px}.aside-note{color:#aab4ad;font-size:12px;margin:15px 0 0}.result{background:#fff;border:1px solid var(--line);border-radius:8px;padding:22px}.download{margin:16px 0 4px;width:100%;background:#f3cc51;border-color:#f3cc51}.result .text-button{display:block}.error{color:#ffc8ad;font-size:13px;margin-top:12px}.success{color:#c8e8d0;font-size:13px;margin-top:12px}@media(max-width:900px){.layout{grid-template-columns:1fr}aside{position:static}.intro-number{display:none}}@media(max-width:600px){.top{padding:0 18px;height:70px}.local{display:none}main{padding:28px 14px 60px}.intro h1{font-size:34px}.box{padding:21px 18px}.upload,.section-heading{display:block}.uploadbutton{margin-top:18px}.section-heading .secondary{margin-top:15px}.fields{grid-template-columns:1fr}.full{grid-column:auto}fieldset{display:block}.choice{margin:12px 0}.row-values{grid-template-columns:1fr 1fr}.summary{padding:23px}.add-bottom{display:block}}
[hidden]{display:none !important}
.plan-summary{font-size:21px;font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:15px}.plan-summary::-webkit-details-marker{display:none}.plan-summary span{font-size:13px;font-weight:500;color:#5b6a60}.plan-create,.shared-fields,.plan-fields,.plan-actions,.opening-actions{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.plan-create label,.shared-fields label,.plan-fields label{flex:1;min-width:110px}.plan-create select{width:100%;padding:12px;border:1px solid #d5ddd6;border-radius:6px;background:white}.plan-room{margin-top:20px;border:1px solid #d9ded9;border-radius:8px;padding:18px}.room-head,.opening-head{display:flex;justify-content:space-between;align-items:end;gap:12px}.room-head label{flex:1}.shared-fields{margin:14px 0}.plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.plan-svg{display:block;width:100%;height:280px;background:#f2f4f0;touch-action:none;border-radius:6px}.wall-line{stroke:#37443e;stroke-width:.012;pointer-events:stroke;cursor:pointer}.wall-line.selected{stroke:#ba8021;stroke-width:.018}.wall-hit{stroke:transparent;stroke-width:.06;cursor:pointer}.opening-line{stroke:#ebbd39;stroke-width:.028;cursor:grab}.vertex{fill:#fff;stroke:#45564b;stroke-width:.006;cursor:grab}.plan-svg text{font-size:.04px;text-anchor:middle;fill:#25302e;pointer-events:none}.plan-hint{font-size:12px;color:#65716a}.wall-choices{display:flex;flex-wrap:wrap;gap:6px}.wall-choice{padding:7px 9px;border:1px solid #d9ded9;background:#fff;border-radius:4px;cursor:pointer}.wall-choice.active{border-color:#bc8a23;background:#fff6d9}.wall-editor h3{margin:0 0 12px}.opening-actions{margin-top:12px}.opening-card{border-top:1px solid #e0e5df;margin-top:14px;padding-top:10px}.plan-totals{margin-top:18px;background:#f1f4ee;padding:14px;font-weight:700}.plan-actions{margin-top:12px}#planStatus{color:#73561b;font-size:13px}[hidden]{display:none!important}@media(max-width:700px){.plan-grid{grid-template-columns:1fr}.plan-svg{height:230px}.plan-summary{font-size:18px}.shared-fields button{flex:1}.room-head{align-items:center}}

.wall-options{margin-top:12px}.wall-options select{width:100%;padding:12px;border:1px solid #d5ddd6;border-radius:6px;background:#fff;color:inherit;font:inherit}

.opening-line.opening-window{stroke:#2179ad}.opening-line.opening-door{stroke:#c35f25}.opening-line.opening-opening{stroke:#795ab3}.plan-legend{display:flex;flex-wrap:wrap;gap:12px;margin:7px 0 12px;color:#46534c;font-size:12px}.plan-legend span::before{content:"";display:inline-block;width:18px;height:4px;border-radius:3px;vertical-align:middle;margin-right:5px}.legend-window::before{background:#2179ad}.legend-door::before{background:#c35f25}.legend-opening::before{background:#795ab3}
.layout-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.layout-inspector{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:14px 0}.layout-inspector label{min-width:150px;flex:1}.layout-inspector select{width:100%;padding:12px;border:1px solid #d5ddd6;border-radius:6px;background:white;font:inherit}#layoutCanvas{display:block;width:100%;height:500px;border:1px solid #d9ded9;border-radius:6px;background:#f6f7f4;touch-action:none}#layoutCanvas .layout-edge{stroke:#35453d;stroke-width:7;cursor:pointer}#layoutCanvas .layout-edge.active{stroke:#b98220;stroke-width:11}#layoutCanvas .layout-hit{stroke:transparent;stroke-width:24;cursor:pointer}#layoutCanvas .layout-node{fill:white;stroke:#4b5d51;stroke-width:3}#layoutCanvas .layout-current{fill:#d6a52d}#layoutCanvas text{fill:#304037;font-size:19px;text-anchor:middle;paint-order:stroke;stroke:#f6f7f4;stroke-width:5px;stroke-linejoin:round;pointer-events:none}#layoutRooms{margin:12px 0;color:#435448}#layoutStatus{min-height:1.5em}@media(max-width:700px){#layoutCanvas{height:320px}}

.plan-room-section{border-top:1px solid #d9ded9;margin-top:24px;padding-top:24px}.plan-room-section h3{margin:0 0 8px;font-size:19px}
#layoutDetails[open]>.editor-intro{margin:10px 0 0;color:#65716a}.layout-toolbar{justify-content:space-between;align-items:center;margin:18px 0 12px;gap:10px}.layout-modes{display:inline-flex;gap:2px;padding:3px;background:#eef1ed;border-radius:6px}.layout-modes .secondary{min-height:36px;border:0;background:transparent;padding:0 13px;font-size:13px;font-weight:600}.layout-modes .secondary[aria-pressed="true"]{background:#fff;box-shadow:0 1px 4px #1c20211a}.layout-tools{display:flex;gap:14px;flex-wrap:wrap}.layout-tools .text-button{font-size:12px;text-decoration:none;color:#66736a}.layout-tools button:disabled{opacity:.38;cursor:default}.layout-inspector{padding:15px;background:#f4f6f2;border-radius:6px}.layout-inspector label{min-width:130px}.layout-next{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;padding:17px 0 0;border-top:1px solid #e4e8e3}.layout-next strong{font-size:14px}.layout-next #layoutRooms{margin:2px 0 0;color:#78837b;font-size:12px}.layout-next button:disabled{opacity:.5;cursor:default}.layout-note{margin-top:8px!important;font-size:12px!important}.rooms-heading{display:flex;align-items:start;justify-content:space-between;gap:18px}.rooms-heading h3{font-size:17px}.manual-room{position:relative}.manual-room summary{cursor:pointer;list-style:none;color:#52665a;font-size:12px;text-decoration:underline;white-space:nowrap}.manual-room summary::-webkit-details-marker{display:none}.manual-room .plan-create{margin-top:12px;min-width:320px}.manual-room[open]{flex:1}.plan-room-section:has(#planRooms:empty) .rooms-heading p{max-width:300px}@media(max-width:700px){.layout-toolbar,.layout-next,.rooms-heading{align-items:stretch;flex-direction:column}.layout-modes{align-self:start}.layout-tools{gap:12px}.layout-next button{align-self:flex-start}.manual-room .plan-create{min-width:0}.manual-room summary{white-space:normal}}

.element-palette{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:10px 0}.element-palette>span{font-size:12px;color:#65716a;margin-right:5px}.element-chip{font:600 12px Segoe UI,Arial,sans-serif;background:#fff;border:1px solid #d5ddd6;border-radius:5px;padding:8px 10px;color:#36423c;cursor:grab;touch-action:none}.element-chip::before{content:"";display:inline-block;width:12px;height:4px;border-radius:4px;vertical-align:middle;margin-right:6px;background:#795ab3}.element-chip[data-kind=window]::before{background:#2179ad}.element-chip[data-kind=door]::before{background:#c35f25}.element-chip:active{cursor:grabbing}.layout-opening{stroke-width:15;cursor:grab;pointer-events:stroke;touch-action:none}.layout-opening.window{stroke:#2179ad}.layout-opening.door{stroke:#c35f25}.layout-opening.opening{stroke:#795ab3}.element-inspector{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:12px 0;padding:14px;background:#f4f6f2;border-radius:6px}.element-inspector strong{align-self:center;margin-right:auto}.element-inspector label{width:110px}.element-inspector input{margin-top:4px}.element-inspector button{color:#9a5149}

#layoutCanvas .layout-guide{stroke:#bd8d29;stroke-width:3;stroke-dasharray:9 7;pointer-events:none}

.layout-canvas-wrap{position:relative}.inline-wall{position:absolute;z-index:2;display:flex;align-items:center;gap:6px;padding:7px 9px;background:#fff;border:1px solid #cbd3ce;border-radius:6px;box-shadow:0 4px 16px #18241c24;transform:translate(-50%,-110%)}.inline-wall label{font-size:12px;white-space:nowrap}.inline-wall input{width:76px;margin:0;padding:7px}.inline-wall button{border:0;background:transparent;font-size:19px;cursor:pointer;color:#627067}.layout-delete{color:#9a5149}.group-inspector{display:flex;align-items:end;gap:12px;flex-wrap:wrap;background:#f4f6f2;border-radius:6px;padding:14px;margin:12px 0}.group-inspector strong{align-self:center;font-size:13px}.group-inspector label{width:150px}.layout-groups{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.layout-group-tag{font-size:12px;background:#f1f3ee;padding:5px 8px;border-radius:4px}.layout-group-tag button{background:none;border:0;color:#995549;cursor:pointer;margin-left:5px}.layout-edge.grouped{stroke:#bd8125;stroke-width:12}
@media(max-width:700px){.layout-modes{display:flex;flex-wrap:wrap;width:100%;max-width:100%}.layout-modes .secondary{min-width:0}.layout-canvas-wrap{min-width:0}.group-inspector label{width:auto;min-width:120px;flex:1}.inline-wall{max-width:95%}}

#layoutCanvas .layout-node{cursor:grab;touch-action:none}#layoutCanvas .layout-node:active{cursor:grabbing}#layoutCanvas .point-guide{stroke:#3980a8;stroke-width:2;stroke-dasharray:7 7;pointer-events:none}

#layoutCanvas .layout-node{pointer-events:none}#layoutCanvas .layout-node-hit{fill:transparent;cursor:grab;touch-action:none}#layoutCanvas .layout-node-hit:active{cursor:grabbing}

.wall-toggle{display:flex;align-items:flex-start;gap:8px;margin:12px 0;color:#35413b;font-size:13px}.wall-toggle input[type=checkbox]{width:auto;margin:3px 0 0;accent-color:#b3831a}.wall-toggle span{display:block}.wall-toggle small{display:block;font-weight:400;font-size:11px;color:#69776d}.graph-wall-toggle{flex-basis:100%;margin:0}.layout-edge.excluded{stroke:#a0a9a3!important;stroke-dasharray:15 10}.wall-line.excluded{stroke:#a0a9a3!important;stroke-dasharray:.025 .015}

.canvas-controls{display:flex;align-items:center;gap:5px;margin:10px 0 8px;color:#68766d;font-size:12px}.canvas-controls>span{margin-right:4px}.canvas-controls button{height:32px;min-width:32px;border:1px solid #d5ddd6;border-radius:4px;background:white;color:#35443b;font:600 15px Segoe UI,Arial,sans-serif;cursor:pointer}.canvas-controls button:disabled{opacity:.4;cursor:default}.canvas-controls output{min-width:45px;text-align:center;color:#35443b;font-variant-numeric:tabular-nums}.canvas-controls #layoutZoomReset{font-size:12px;padding:0 9px}.layout-canvas-wrap .is-panning,.layout-canvas-wrap .is-panning .layout-node-hit,.layout-canvas-wrap .is-panning .layout-edge,.layout-canvas-wrap .is-panning .layout-opening{cursor:grab}.layout-canvas-wrap .is-panning:active{cursor:grabbing}
@media(max-width:700px){.canvas-controls{flex-wrap:wrap}.canvas-controls>span{flex-basis:100%}}

.backup-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0}.backup-toolbar .secondary{min-height:36px;font-size:12px}.backup-toolbar span{font-size:12px;color:#66736a}.layout-mismatch{border:1px solid #e5c879;background:#fff8e7;border-radius:6px;padding:12px;margin:12px 0}.layout-mismatch p{color:#6f5725;font-size:12px;margin:0 0 8px}.layout-mismatch p:last-child{margin:8px 0 0}.layout-mismatch .secondary{min-height:36px;font-size:13px}

.infer-panel{border-top:1px solid #e4e8e3;padding-top:15px;margin-top:18px}.infer-panel .plan-hint{margin:6px 0!important}.infer-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #edf0ec;font-size:12px}.infer-row button{min-height:32px;font-size:12px}.infer-warning{color:#8b6022}.infer-summary{margin:9px 0;font-size:12px;color:#52645a}.estimated-wall{font-size:11px;color:#976629}
