:root{--ink:#17191c;--muted:#636b73;--paper:#f6f7f8;--card:#fff;--line:#dce1e5;--teal:#027dc3;--teal-dark:#005781;--gold:#027dc3;--coral:#027dc3;--violet:#7461a4;--shadow:0 8px 25px rgba(18,44,46,.07)}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:275px;background:var(--ink);color:#f6f7f8;padding:26px 18px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit;padding:0 8px 28px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--gold);color:var(--ink);font-weight:850;letter-spacing:-.09em}.brand b{display:block;font-size:15px;letter-spacing:.14em}.brand small{display:block;color:#a7b7b6;font-size:12px;margin-top:2px}.side-section{padding:25px 8px 12px}.side-label,.kicker,.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:750;color:#93a6a5}.project-select{width:100%;border:0;border-radius:10px;background:#273a3e;color:#f6f7f8;padding:12px 13px;display:flex;justify-content:space-between;gap:10px;text-align:left}.workflow{display:grid;gap:3px}.nav-item{border:0;background:transparent;color:#aab9b7;display:flex;align-items:center;gap:12px;padding:11px 10px;border-radius:9px;text-align:left;font-weight:600}.nav-item:hover,.nav-item.active{background:#2b4245;color:#fff}.nav-item.active{box-shadow:inset 3px 0 var(--gold)}.nav-no{font-size:11px;color:#788f8e;width:21px}.nav-item.active .nav-no{color:var(--gold)}.sidebar-bottom{margin-top:auto}.ai-connection{border-top:1px solid rgba(255,255,255,.12);padding:17px 8px 10px;display:flex;align-items:center;gap:9px}.ai-connection b{display:block;font-size:13px}.ai-connection small{display:block;color:#91a6a4;font-size:11px}.status-dot{display:block;width:9px;height:9px;background:#e3a155;border-radius:50%;box-shadow:0 0 0 4px rgba(227,161,85,.12)}.status-dot.ok{background:#55c28a;box-shadow:0 0 0 4px rgba(85,194,138,.12)}.icon-button{border:0;background:transparent;color:inherit;border-radius:8px;padding:7px 9px}.icon-button:hover{background:rgba(255,255,255,.1)}.ai-connection .icon-button{margin-left:auto;color:#aab9b7}.side-note{font-size:12px;line-height:1.45;color:#8da3a1;margin:10px 8px 0}.main-content{margin-left:275px;width:calc(100% - 275px);padding:0 44px 60px}.topbar{min-height:112px;padding:25px 0 19px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.topbar h1{margin:1px 0 0;font-size:31px;letter-spacing:-.03em}.top-actions{display:flex;align-items:center;gap:11px}.save-state{font-size:13px;color:var(--muted);margin-right:4px}.button{border:1px solid transparent;border-radius:9px;padding:10px 15px;font-weight:700;white-space:nowrap}.button.primary{background:var(--teal);color:#fff}.button.primary:hover{background:var(--teal-dark)}.button.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.button.ghost{background:transparent;border-color:var(--line);color:var(--muted)}.button.danger{color:#a54d42;border-color:#e5c5c0;background:#fff}.view-stack{padding-top:30px}.view{max-width:1360px}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);padding:22px}.card.tight{padding:16px}.card h2,.card h3,.card h4{margin:0 0 8px}.muted{color:var(--muted)}.section-intro{max-width:780px;color:var(--muted);margin:-10px 0 28px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:25px 0 29px}.stat-card{padding:20px;border-radius:12px;background:var(--ink);color:#fff}.stat-card:nth-child(2){background:var(--teal)}.stat-card:nth-child(3){background:#80618d}.stat-card:nth-child(4){background:#b46d54}.stat-card b{font-size:29px;display:block;line-height:1.1}.stat-card span{display:block;color:#dce1e5;font-size:13px;margin-top:8px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:23px}.page-head h2{font-size:25px;margin:0 0 4px}.project-card{display:flex;flex-direction:column;min-height:190px}.project-card .card-top{display:flex;justify-content:space-between;gap:10px}.project-card .date{font-size:12px;color:var(--muted)}.project-card .project-meta{margin:auto 0;color:var(--muted);font-size:14px}.stage-pill,.lock-pill,.tag{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:4px 9px;background:#edf6fc;color:#005781;font-size:12px;font-weight:700}.lock-pill{background:#edf1f7;color:#506c8d}.tag{background:#edf6fc;color:var(--ink);font-weight:600}.tag.gold{background:#f8eedc;color:#8b652b}.flow-strip{display:flex;align-items:center;gap:7px;overflow:auto;padding:12px 0 20px}.flow-step{white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:12px;color:var(--muted);background:#fff}.flow-step.current{border-color:var(--teal);color:var(--teal);font-weight:750;background:#edf6fc}.flow-arrow{color:#929ba3}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:13px;font-weight:750}.field input,.field select,.field textarea{width:100%;border:1px solid #dce1e5;border-radius:8px;background:#fff;padding:10px 12px;color:var(--ink);outline-color:var(--teal)}.field textarea{min-height:95px;resize:vertical}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.upload-zone{border:1.5px dashed #a8bdca;border-radius:12px;background:#edf6fc;min-height:148px;display:grid;place-items:center;text-align:center;padding:22px;position:relative}.upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-zone strong{display:block;color:var(--teal)}.upload-zone p{margin:4px 0 0;color:var(--muted);font-size:13px}.file-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.file-chip{display:flex;align-items:center;gap:6px;background:#edf6fc;border-radius:7px;padding:6px 9px;font-size:12px;color:#636b73}.file-chip button{border:0;background:none;color:#929ba3;padding:0}.lock-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#eef3fa;border:1px solid #cfdae8;border-radius:11px;padding:15px 18px;margin:22px 0}.lock-banner b{display:block;color:#4b6685}.lock-banner p{margin:2px 0 0;font-size:13px;color:#636b73}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.choice{border:1px solid var(--line);background:#fff;text-align:left;padding:14px;border-radius:10px;color:var(--ink);min-height:90px}.choice:hover,.choice.selected{border-color:var(--teal);box-shadow:0 0 0 2px rgba(2,125,195,.12)}.choice.selected{background:#edf6fc}.choice b{display:block}.choice small{display:block;color:var(--muted);margin-top:4px}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.check-card{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:9px;padding:11px;background:#fff}.check-card input{accent-color:var(--teal);margin-top:4px}.scope-row{display:grid;grid-template-columns:1.5fr 2fr auto;align-items:center;gap:14px;border-top:1px solid var(--line);padding:15px 0}.segmented{display:flex;gap:5px}.segmented button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 9px;font-size:12px;color:var(--muted)}.segmented button.selected{background:var(--teal);border-color:var(--teal);color:#fff}.investment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.investment{border:1px solid var(--line);background:#fff;border-radius:10px;padding:15px;text-align:left}.investment.selected{border-color:var(--gold);box-shadow:0 0 0 2px rgba(2,125,195,.2);background:#fffaf1}.investment b{display:block}.investment small{color:var(--muted)}.planner-layout{display:grid;grid-template-columns:250px minmax(0,1fr) 280px;gap:15px;align-items:start}.block-list{display:grid;gap:7px;max-height:650px;overflow:auto}.block-button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px;text-align:left}.block-button:hover{border-color:var(--teal)}.block-button b{display:block;font-size:13px}.block-button small{color:var(--muted);font-size:11px}.plan-wrap{background:#edf6fc;border:1px solid var(--line);border-radius:12px;padding:12px;overflow:auto}.plan-wrap svg{width:100%;min-width:640px;height:auto;display:block;background:#fff;border-radius:8px}.plan-object{cursor:grab}.plan-object.selected > .plan-hitbox{stroke:#e0a35c;stroke-width:3}.option-card{border:1px solid var(--line);background:#fff;border-radius:10px;padding:13px;text-align:left}.option-card.selected{border-color:var(--teal);box-shadow:0 0 0 2px rgba(2,125,195,.13)}.option-card h4{font-size:14px}.option-card p{font-size:12px;color:var(--muted);margin:0 0 8px}.warning{padding:10px 12px;border-radius:8px;background:#fff4e7;color:#825a2a;font-size:12px;margin-top:9px}.good{padding:10px 12px;border-radius:8px;background:#eaf6f1;color:#28735c;font-size:12px;margin-top:9px}.product-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:15px}.product-toolbar input{flex:1;border:1px solid #dce1e5;border-radius:8px;padding:10px 12px;background:#fff}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.product-card{padding:0;overflow:hidden;display:flex;flex-direction:column}.product-card img{width:100%;height:150px;object-fit:contain;background:#f6f7f8}.product-card .product-body{padding:14px;display:flex;flex-direction:column;gap:7px;height:100%}.product-card h3{font-size:14px;margin:0}.product-card p{font-size:12px;color:var(--muted);margin:0}.product-card .button{margin-top:auto;font-size:12px;padding:7px}.product-card.selected-product{outline:2px solid var(--gold)}.selected-list{display:flex;gap:8px;flex-wrap:wrap}.selected-product-pill{border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px 11px;font-size:12px}.cost-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.cost-card{border-radius:12px;padding:19px;border:1px solid var(--line);background:#fff}.cost-card.recommended{border:2px solid var(--gold);padding:18px}.cost-card h3{margin:0}.cost-total{font-size:30px;margin:9px 0;color:var(--teal-dark)}.cost-line{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:8px 0;font-size:13px}.cost-line.detailed{align-items:flex-start;padding:11px 0}.cost-line.detailed span,.cost-line.total span{display:grid;gap:2px}.cost-line small{display:block;color:var(--muted);font-weight:400}.cost-line.total{align-items:center;margin-top:5px;padding:14px 0;font-size:15px;border-top:2px solid var(--ink)}.report{background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px;max-width:950px}.report h2{margin-top:0}.report-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.ai-output{white-space:pre-wrap;background:#17191c;color:#edf6fc;border-radius:10px;padding:17px;min-height:100px;font:13px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace}.empty{padding:45px 20px;text-align:center;color:var(--muted);border:1px dashed #a8bdca;border-radius:12px;background:#fbfdfb}.mobile-only{display:none}.modal-backdrop{position:fixed;inset:0;background:rgba(18,35,38,.52);z-index:50;display:grid;place-items:center;padding:20px}.modal{background:#fff;border-radius:14px;width:min(630px,100%);max-height:90vh;overflow:auto;box-shadow:0 25px 80px rgba(0,0,0,.25);padding:25px}.modal-head{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:18px}.modal-head h2{margin:0}.modal .icon-button{color:var(--muted);font-size:22px}.modal .button-row{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.toast{position:fixed;right:25px;bottom:25px;background:var(--ink);color:#fff;padding:12px 15px;border-radius:9px;box-shadow:var(--shadow);z-index:100;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateY(0)}
@media(max-width:1180px){.planner-layout{grid-template-columns:220px minmax(0,1fr)}.planner-layout>.card:last-child{grid-column:1/-1}.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sidebar{width:240px}.main-content{margin-left:240px;width:calc(100% - 240px);padding:0 27px 50px}}
@media(max-width:820px){.sidebar{transform:translateX(-100%);transition:.2s;width:270px}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0;width:100%;padding:0 18px 40px}.mobile-only{display:block}.topbar{min-height:92px}.topbar h1{font-size:25px}.top-actions .save-state,.top-actions #saveBtn{display:none}.stats,.grid.three,.choice-grid,.check-grid,.cost-grid,.investment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.planner-layout{grid-template-columns:1fr}.planner-layout>.card:last-child{grid-column:auto}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scope-row{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.report-grid{grid-template-columns:1fr}}
@media(max-width:520px){.top-actions .button.primary{font-size:12px;padding:9px 10px}.stats,.grid.two,.grid.three,.choice-grid,.check-grid,.cost-grid,.investment-grid{grid-template-columns:1fr}.product-grid{grid-template-columns:1fr 1fr}.card{padding:17px}.page-head{align-items:flex-start;flex-direction:column}.topbar{align-items:flex-start}.flow-strip{padding-bottom:12px}.scope-row{gap:8px}}
.dashboard-head{align-items:center}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:28px}.module-card{appearance:none;width:100%;min-height:158px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);box-shadow:var(--shadow);padding:20px;display:flex;gap:15px;text-align:left;text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.module-card:hover{transform:translateY(-2px);border-color:#83bad8;box-shadow:0 13px 30px rgba(18,44,46,.11)}.module-card h3{margin:0 0 7px;font-size:17px}.module-card p{margin:0 0 13px;color:var(--muted);font-size:13px;line-height:1.5}.module-card small{color:var(--teal-dark);font-weight:750}.module-code{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:10px;background:#edf6fc;color:var(--teal);font-size:11px;font-weight:850;letter-spacing:.08em}.module-card.quick-concept{background:linear-gradient(145deg,#17191c,#25333d);color:#fff;border-color:#25333d}.module-card.quick-concept p{color:#c6d0d5}.module-card.quick-concept small{color:#62b7e8}.module-card.quick-concept .module-code{background:var(--teal);color:#fff}.module-card.module-locked{opacity:.72}.module-card.module-locked small{color:#7b858c}.module-card.current{border-color:var(--teal);box-shadow:0 0 0 2px rgba(2,125,195,.13)}
@media(max-width:1050px){.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.module-grid{grid-template-columns:1fr}.module-card{min-height:0}}
.customer-summary{margin:22px 8px 10px;padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:11px;display:flex;align-items:center;gap:10px}.customer-summary b,.customer-summary small{display:block}.customer-summary b{font-size:13px}.customer-summary small{font-size:11px;color:#91a6a4;margin-top:2px}.customer-avatar{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#027dc3;color:#fff;font-size:11px;font-weight:850;letter-spacing:.06em}.primary-workflow{margin-bottom:7px}.logout-button{width:100%;border:1px solid rgba(255,255,255,.16);background:transparent;color:#aab9b7;border-radius:8px;padding:8px 10px;text-align:left;margin-top:4px}.logout-button:hover{color:#fff;border-color:rgba(255,255,255,.32)}.client-welcome,.space-dashboard-banner{border-radius:18px;background:linear-gradient(135deg,#17191c,#263944);color:#fff;padding:30px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}.client-welcome h2,.space-dashboard-banner h2{font-size:32px;margin:3px 0 6px;letter-spacing:-.035em}.client-welcome p:not(.eyebrow),.space-dashboard-banner p:not(.eyebrow){color:#c7d2d6;margin:0;max-width:690px}.space-type-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:20px 0 32px}.space-type-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:16px;text-align:left;color:var(--ink);min-height:132px;box-shadow:var(--shadow)}.space-type-card:hover{border-color:#7fb7d5;transform:translateY(-2px)}.space-type-card span{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:#edf6fc;color:#027dc3;font-size:11px;font-weight:850;margin-bottom:17px}.space-type-card b,.space-type-card small{display:block}.space-type-card small{color:var(--muted);margin-top:4px;line-height:1.35}.spaces-heading{margin-top:4px}.space-status-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.space-status-row span{border:1px solid var(--line);background:#fff;border-radius:10px;padding:13px;color:var(--muted);font-size:12px}.space-status-row b{display:block;color:var(--ink);font-size:15px;margin-bottom:2px}
@media(max-width:1180px){.space-type-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.client-welcome,.space-dashboard-banner{align-items:flex-start;flex-direction:column}.space-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.space-status-row{grid-template-columns:repeat(2,1fr)}}
.modal-backdrop[hidden]{display:none}
.file-chip a{color:inherit;text-decoration:none}.file-chip a:hover{text-decoration:underline}
.render-placeholder{margin-top:18px;min-height:300px;border:1px dashed #a8bdca;border-radius:14px;background:linear-gradient(135deg,#edf6fc,#f6f7f8);display:grid;place-items:center;align-content:center;text-align:center;color:var(--muted);padding:30px}.render-placeholder h3{margin:8px 0 2px;color:var(--ink)}.render-placeholder p{margin:0}.render-icon{width:58px;height:58px;border-radius:18px;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:28px}.render-gallery{display:grid;gap:18px;margin-top:18px}.render-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}.render-card img{width:100%;aspect-ratio:16/9;display:block;object-fit:cover;background:#dce1e5}.render-card>div{display:flex;align-items:center;gap:14px;padding:13px 16px}.render-card span{color:var(--muted);font-size:12px}.render-card .button{margin-left:auto;text-decoration:none}button:disabled{opacity:.58;cursor:wait}
.nav-item.unavailable{opacity:.38}.nav-item.unavailable:hover{background:transparent;color:#aab9b7}.sequence-check{display:flex;gap:8px;flex-wrap:wrap;margin:-6px 0 20px}.sequence-check span{border:1px solid var(--line);background:#fff;color:var(--muted);padding:7px 11px;border-radius:999px;font-size:12px;font-weight:700}.sequence-check span.done{background:#eaf6f1;border-color:#a8bdca;color:#28735c}.check-card small{display:block;margin-top:3px;font-weight:400}input:disabled,select:disabled,textarea:disabled,button:disabled{opacity:.58;cursor:not-allowed}.upload-zone:has(input:disabled){opacity:.58}
.plan-canvas{position:relative;background:#fff;border-radius:8px;overflow:hidden}.floor-plan-underlay{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.28;filter:grayscale(1);pointer-events:none}.plan-canvas svg{position:relative;z-index:1;background:rgba(255,255,255,.38)}.plan-caption{margin:9px 3px 0}
.planning-link{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#17191c;color:#fff;border-radius:14px;padding:20px 22px;margin-bottom:18px}.planning-link h3{margin:2px 0 5px}.planning-link p{margin:0;color:#dce1e5}.planning-status{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.planning-status span{border-radius:999px;padding:6px 10px;font-size:11px;font-weight:700;white-space:nowrap}.planning-status .done{background:#dff4e9;color:#22684f}.planning-status .pending{background:#fff0d8;color:#835c24}.planning-brief{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(400px,1.7fr) auto;gap:18px;align-items:center;margin-bottom:18px}.planning-brief h3{margin:2px 0}.planning-brief p{margin:0}.keyword-grid{display:flex;gap:7px;flex-wrap:wrap}.keyword{border:1px solid var(--line);background:#fff;color:var(--muted);padding:7px 10px;border-radius:999px;font-size:12px}.keyword.selected{background:#edf6fc;border-color:#a8bdca;color:#005781;font-weight:700}.option-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:18px}.option-proposal{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}.option-proposal.selected{border:2px solid var(--teal);padding:14px}.option-proposal-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.option-proposal-head h3{margin:7px 0 2px}.option-proposal-head p{font-size:12px;color:var(--muted);margin:0}.option-proposal-head>b{font-size:18px;color:var(--teal-dark);white-space:nowrap}.mini-plan{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#f6f7f8}.mini-plan svg{width:100%;height:auto;display:block}.option-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;font-size:11px;color:var(--muted)}.option-metrics span{background:#f6f7f8;border-radius:7px;padding:7px}.option-metrics b{color:var(--ink)}.option-metrics .ok{background:#eaf6f1;color:#28735c}.option-metrics .bad{background:#fff0e4;color:#8a5b27}.option-proposal .button{margin-top:auto}.selected-plan{margin-bottom:18px}.selected-plan-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:13px}.selected-plan-head h3{margin:2px 0}.selected-plan-head p{margin:0}.plan-validation{display:flex;justify-content:space-between;gap:15px;padding:11px 13px;margin-top:11px;border-radius:9px;background:#eaf6f1;color:#28735c;font-size:12px}.plan-validation.has-issues{background:#fff3e5;color:#855a27}.plan-validation span{max-width:75%}.planner-layout.advanced{grid-template-columns:280px minmax(0,1fr) 280px;margin-bottom:18px}.assembly-note{margin-top:18px}.assembly-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.assembly-strip span{display:grid;border:1px solid var(--line);border-radius:8px;padding:9px;background:#fafcfb}.assembly-strip small{color:var(--muted)}
@media(max-width:1050px){.planning-brief{grid-template-columns:1fr}.option-gallery{grid-template-columns:1fr}.planner-layout.advanced{grid-template-columns:1fr}.assembly-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.planning-link,.selected-plan-head,.plan-validation{align-items:flex-start;flex-direction:column}.planning-status{justify-content:flex-start}.plan-validation span{max-width:none}.assembly-strip{grid-template-columns:1fr}}
.analysis-card{margin-top:18px}.analysis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.analysis-head h3{margin:2px 0 5px}.analysis-head p{margin:0}.analysis-head .actions{margin-top:0;justify-content:flex-end}.analysis-grid{display:grid;grid-template-columns:minmax(360px,1.25fr) minmax(300px,1fr);gap:20px;margin-top:18px;align-items:start}.plan-analysis-preview{position:relative;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#f6f7f8}.plan-analysis-preview img{display:block;width:100%;height:auto}.plan-analysis-preview svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.plan-analysis-preview rect{fill:rgba(2,125,195,.08);stroke:#d0963f;stroke-width:5;stroke-dasharray:12 8}.plan-analysis-preview polygon{fill:rgba(2,125,195,.12);stroke:#027dc3;stroke-width:5}.analysis-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.analysis-values span,.evidence-list span{display:grid;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fafcfb}.analysis-values small,.evidence-list small{color:var(--muted);font-size:10px}.analysis-values b{font-size:15px}.evidence-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:11px}.evidence-list b{font-size:12px}@media(max-width:900px){.analysis-grid{grid-template-columns:1fr}.analysis-head{flex-direction:column}.analysis-head .actions{justify-content:flex-start}.analysis-values{grid-template-columns:1fr}.evidence-list{grid-template-columns:1fr}}
.planner-calibration{display:grid;grid-template-columns:minmax(260px,1.1fr) minmax(360px,1fr);gap:14px 24px;background:#edf6fc;border:1px solid #a8bdca;border-radius:13px;padding:18px 20px;margin-bottom:18px}.planner-calibration h3{margin:2px 0 4px}.planner-calibration p{margin:0}.calibration-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.calibration-facts span{display:grid;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px;font-size:11px;color:var(--muted)}.calibration-facts b{font-size:14px;color:var(--ink)}.calibration-legend{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:13px;border-top:1px solid var(--line);padding-top:12px}.calibration-legend span{font-size:11px;color:var(--muted)}.calibration-legend span:before{content:"";display:inline-block;width:17px;height:9px;margin-right:5px;border-radius:2px;vertical-align:middle}.legend-plan:before{background:#dce1e5}.legend-grid:before{border-top:1px dashed #636b73}.legend-aisle:before{background:#edf6fc}.legend-zone:before{background:#027dc3}.legend-traffic:before{background:#236da5;border-radius:50%}.legend-block:before{background:#636b73}.plan-fixed-zone rect{fill:none;stroke:#647b84;stroke-width:1.4;stroke-dasharray:5 4}.plan-fixed-zone text{font-size:9px;font-weight:700;fill:#79382c}@media(max-width:900px){.planner-calibration{grid-template-columns:1fr}.calibration-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.selected-plan.editing{border:2px solid var(--teal);padding:21px}.selected-plan.editing .plan-wrap{box-shadow:0 0 0 3px rgba(2,125,195,.12)}.selected-plan.editing .plan-object{cursor:move}.edit-hint{display:flex;align-items:center;gap:14px;background:#027dc3;color:#fff;border-radius:10px;padding:12px 16px;margin:-4px 0 12px}.edit-hint span{font-size:12px;color:#edf6fc}.planner-layout.advanced [data-block-field]{background:#fffaf1;border-color:#d9b477}
.plan-edit-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.selected-plan.editing .plan-edit-workspace{grid-template-columns:minmax(0,1fr) 310px}.plan-edit-canvas{min-width:0}.selected-block-dock{position:sticky;top:18px;background:#edf6fc;border:1px solid #a8bdca;border-radius:11px;padding:17px}.selected-block-dock>h3{margin:2px 0 13px}.selected-block-dock .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.selected-block-dock .field:last-child{grid-column:1/-1}.selected-block-dock .actions{display:grid;grid-template-columns:1fr 1fr;margin-top:14px}.selected-block-dock .actions .danger{grid-column:1/-1}.planner-layout.advanced.planner-tools{grid-template-columns:minmax(280px,1fr) minmax(280px,1fr)}
@media(max-width:1150px){.selected-plan.editing .plan-edit-workspace{grid-template-columns:minmax(0,1fr) 270px}.selected-block-dock .form-grid{grid-template-columns:1fr}.selected-block-dock .field:last-child{grid-column:auto}}
@media(max-width:900px){.selected-plan.editing .plan-edit-workspace{grid-template-columns:1fr}.selected-block-dock{position:static}.selected-block-dock .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.selected-block-dock .field:last-child{grid-column:1/-1}.planner-layout.advanced.planner-tools{grid-template-columns:1fr}}

/* Dimensioned furniture blocks and reference templates */
.plan-display-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:12px 0 16px;font-size:12px}.plan-display-controls label{display:flex;align-items:center;gap:7px}.plan-display-controls select{padding:5px;border:1px solid var(--line);border-radius:6px}.plan-display-controls a,.reference-block-library a{color:var(--teal)}.plan-canvas{min-width:640px}.plan-canvas svg{width:100%;min-width:0}.plan-object{touch-action:none}.plan-object.selected > .plan-hitbox{stroke:#bf872f;stroke-width:1.8;fill:#e4bf6b;fill-opacity:.12}.block-dimension-note{padding:9px 10px;border-left:3px solid var(--teal);background:#edf6fc;font-size:13px}.block-dimension-note small{color:var(--muted)}.reference-block-library{border:1px solid var(--line);padding:12px;border-radius:9px;margin:12px 0}.reference-block-library summary{font-weight:700;color:var(--teal);cursor:pointer}.reference-block-list{margin-top:12px;max-height:520px}.reference-block-button{display:flex;align-items:center;gap:10px}.reference-block-button img{width:90px;height:76px;object-fit:contain;flex-shrink:0;background:#fff}.reference-block-button:disabled{opacity:.65;cursor:not-allowed}

/* Product mapping uses the same locked millimetre scene as the renderer. */
.block-products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:16px;margin:22px 0}.block-product-card label{display:block;font-size:13px;font-weight:600;margin-top:12px}.block-product-card select{display:block;width:100%;max-width:100%;margin-top:6px;padding:9px;font-size:12px}.schedule-scroll{overflow-x:auto}.schedule-table{width:100%;border-collapse:collapse;text-align:left}.schedule-table td,.schedule-table th{padding:12px;border-bottom:1px solid #dce1e5}.schedule-product{display:flex;align-items:center;gap:14px;min-width:270px}.schedule-product img{width:66px;height:66px;object-fit:contain;background:#fafafa;border-radius:8px}.warning details,.warning li{margin:6px 0}.render-card p{max-width:100%;white-space:normal}.schedule-table small{color:#636b73}

.photo-viewpoint{margin-top:24px}.viewpoint-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:24px;align-items:start}.viewpoint-photo{width:100%;max-height:440px;object-fit:contain;background:#edf6fc;margin-top:12px;border-radius:10px}.viewpoint-grid select{width:100%;max-width:100%}#photoViewpointMap{width:100%;height:auto;cursor:crosshair;touch-action:manipulation}.viewpoint-instruction{color:#975324;font-weight:600}.photo-viewpoint details{margin:16px 0}.photo-viewpoint .actions{flex-wrap:wrap}@media(max-width:900px){.viewpoint-grid{grid-template-columns:1fr}}

/* Persistent previous / next navigation for every space page. */
.stage-navigation{min-height:58px;margin:0;padding:10px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px}.stage-navigation[hidden]{display:none}.stage-navigation .stage-path{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage-navigation .stage-path b{color:var(--ink)}.stage-nav-actions{display:flex;gap:8px;grid-column:3;justify-self:end}.stage-nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);text-decoration:none;font-size:12px;font-weight:700;white-space:nowrap}.stage-nav-link:hover{border-color:#9fc9df;color:var(--teal)}.stage-nav-link.next{background:var(--teal);border-color:var(--teal);color:#fff}.stage-nav-link.next:hover{background:var(--teal-dark)}.stage-nav-link[disabled]{opacity:.45;cursor:not-allowed}.stage-nav-link.overview{grid-column:2;justify-self:center}@media(max-width:760px){.stage-navigation{grid-template-columns:1fr auto}.stage-navigation .stage-path{grid-column:1/-1}.stage-nav-link.overview{grid-column:1;justify-self:start}.stage-nav-actions{grid-column:2}.stage-nav-link{padding:7px 9px}.stage-nav-link span{display:none}}

/* A single, ordered 01–08 workflow on each space dashboard. */
.workflow-dashboard{max-width:1080px}.workflow-dashboard .module-grid{grid-template-columns:1fr;gap:8px;margin:0}.workflow-dashboard .module-card{min-height:0;padding:13px 15px;border-radius:10px;align-items:center;gap:14px;box-shadow:0 3px 12px rgba(17,25,35,.035)}.workflow-dashboard .module-code{flex-basis:36px;width:36px;height:36px;border-radius:8px}.workflow-dashboard .module-card>div{min-width:0;flex:1;display:grid;grid-template-columns:210px minmax(260px,1fr) auto;align-items:center;gap:18px}.workflow-dashboard .module-card h3{font-size:15px;margin:0}.workflow-dashboard .module-card p{font-size:12px;line-height:1.4;margin:0}.workflow-dashboard .module-card small{font-size:11px;text-align:right;white-space:nowrap}.workflow-dashboard .module-card:hover{transform:none;box-shadow:0 5px 16px rgba(17,25,35,.075)}@media(max-width:1000px){.workflow-dashboard .module-card>div{grid-template-columns:170px minmax(180px,1fr) auto;gap:12px}}@media(max-width:760px){.workflow-dashboard .module-card{align-items:flex-start}.workflow-dashboard .module-card>div{display:block}.workflow-dashboard .module-card h3{margin:1px 0 4px}.workflow-dashboard .module-card p{margin:0 0 6px}.workflow-dashboard .module-card small{text-align:left;white-space:normal}}
.workspace-page .app-shell{min-height:calc(100vh - 74px)}.workspace-page .sidebar{top:74px}.workspace-page .customer-summary{margin-top:4px}@media(max-width:650px){.workspace-page .app-shell{min-height:calc(100vh - 66px)}.workspace-page .sidebar{top:66px}}

/* Future workflow steps remain visible as read-only previews until their prerequisite is confirmed. */
.step-preview-notice{max-width:1360px;margin:0 0 20px;padding:16px 18px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;border:1px solid #b9cbd7;border-radius:13px;background:#edf6fc;color:#263944;box-shadow:0 6px 18px rgba(18,44,46,.05)}.step-preview-notice b{display:block;font-size:15px}.step-preview-notice p{margin:3px 0 0;color:#5d6b74;font-size:13px}.preview-lock-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#d5e8f3;color:#027dc3;font-weight:850}.step-preview-content{opacity:.48;filter:grayscale(.72);pointer-events:none;user-select:none}.step-preview-content .view{padding-bottom:24px}.nav-item.unavailable{opacity:.58}.nav-item.unavailable:hover{background:#223035;color:#d4dde1}.module-card.module-locked{opacity:.68}.module-card.module-locked:hover{opacity:.9}@media(max-width:720px){.step-preview-notice{grid-template-columns:auto 1fr}.step-preview-notice .button{grid-column:1/-1;width:100%}}

/* Saved spaces first; new space creation stays compact below the list. */
.spaces-page .spaces-heading{align-items:flex-start;margin-bottom:18px}.spaces-page .spaces-heading h2{font-size:28px}.spaces-page .spaces-heading .section-intro{margin:3px 0 0}.saved-spaces-grid{margin-bottom:34px}.create-space-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,520px);align-items:end;gap:28px;padding:24px 26px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow)}.create-space-panel h2{margin:3px 0 5px;font-size:22px}.create-space-panel p{margin:0;color:var(--muted)}.create-space-control{display:grid;grid-template-columns:minmax(160px,1fr) auto;gap:8px;align-items:end}.create-space-control label{grid-column:1/-1;font-size:12px;font-weight:750;color:var(--muted)}.create-space-control select{height:43px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 12px;color:var(--ink)}@media(max-width:820px){.create-space-panel{grid-template-columns:1fr}.create-space-control{grid-template-columns:1fr}.create-space-control label{grid-column:auto}}

.topbar[hidden]{display:none}.spaces-page{padding-top:4px}

.sidebar-saved-spaces{margin:22px 8px 8px;padding-top:18px;border-top:1px solid rgba(255,255,255,.11)}.sidebar-saved-spaces[hidden]{display:none}.sidebar-list-label{margin:0 0 8px;color:#91a6a4;font-size:10px;font-weight:800;letter-spacing:.14em}.sidebar-space-list{display:grid;gap:4px}.sidebar-space-link{width:100%;border:0;border-radius:8px;background:transparent;color:#c5d0d4;padding:9px 10px;display:flex;align-items:center;gap:9px;text-align:left;font-size:13px;font-weight:650}.sidebar-space-link::before{content:'';width:6px;height:6px;border-radius:50%;background:#4faee0;opacity:.75}.sidebar-space-link:hover{background:#25343d;color:#fff}.sidebar-space-link .space-link-type{margin-left:auto;color:#71858f;font-size:9px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}
.saved-spaces-grid .project-card .card-top{align-items:baseline}.saved-spaces-grid .project-card .card-top h3{margin:0;font-size:18px}.saved-spaces-grid .project-card .project-meta{margin-top:18px}
.space-name-row{display:flex;align-items:baseline;gap:9px;min-width:0}.rename-link{border:0;background:transparent;color:var(--teal);padding:2px 0;font-size:11px;font-weight:750}.rename-link:hover{text-decoration:underline}
.locked-design-context{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:15px 18px;margin:0 0 18px;background:#f1f8fb;border:1px solid #c8dfe9;border-radius:12px;color:#25495a}
.locked-design-context img{width:112px;height:72px;object-fit:cover;border-radius:7px;flex:none}
.locked-design-context>div{flex:1;min-width:0}.locked-design-context small{display:block;font-size:11px;font-weight:800;letter-spacing:.07em;color:#0873a5}.locked-design-context strong{display:block;font-size:17px;margin-top:4px}.locked-design-context p{margin:4px 0 0;font-size:13px;line-height:1.4}
.locked-design-context a{color:#006fa7;font-weight:700;white-space:nowrap;text-decoration:none}
.locked-design-context a.design-alternative-link{padding:7px 10px;border:1px solid #a9cbdc;border-radius:7px;background:#fff;font-size:12px}
.locked-design-journey{flex-basis:100%;display:flex;gap:7px;flex-wrap:wrap;border-top:1px solid #d5e7ee;padding-top:11px}.locked-design-journey span{font-size:11px;font-weight:700;color:#687d89;background:#fff;border:1px solid #d9e4e9;border-radius:999px;padding:4px 8px}.locked-design-journey span.done{color:#1f7653;border-color:#b8dac8;background:#edf8f1}
.financial-plan{margin-bottom:18px}.financial-plan .form-grid{margin-top:18px}.financial-plan h2{margin:5px 0 0}.financial-summary{padding:12px 14px;background:#f0f6f0;border:1px solid #d0e3d0;border-radius:8px;font-weight:700}
.budget-review{margin:18px 0;border-color:#c8dfe9;background:#fbfdfe}
.budget-review h2{font-size:24px;margin:5px 0 7px}
.budget-review>.muted{max-width:760px}
.budget-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.budget-totals>div{display:grid;gap:3px;border:1px solid #d7e4ea;border-radius:10px;background:#fff;padding:16px}
.budget-totals>div:nth-child(2){background:#eef8fc;border-color:#b8dbe9}
.budget-totals small{font-size:12px;color:#56717e}.budget-totals strong{font-size:28px;line-height:1.2}.budget-totals span{font-size:12px;color:#256788}
.budget-review-controls{display:grid;gap:10px;max-width:800px}.budget-target{display:grid;gap:6px;font-size:14px;font-weight:700;color:#345261}
.budget-target input,.budget-target select{width:100%;max-width:460px;border:1px solid #bfd1da;border-radius:8px;padding:10px 12px;background:#fff;color:#263c47;font:inherit}
.budget-cut{display:flex;align-items:flex-start;gap:10px;border:1px solid #d7e4ea;border-radius:9px;background:#fff;padding:12px;cursor:pointer}
.budget-cut input{margin-top:4px}.budget-cut span{display:grid;gap:3px}.budget-cut small{color:#647783;font-weight:400}
.budget-target-result{display:inline-block;margin:16px 0 6px;padding:9px 12px;border-radius:8px;background:#eaf5fa;color:#24556c;font-weight:700}
@media(max-width:650px){.budget-totals{grid-template-columns:1fr}}
@media(max-width:700px){.locked-design-context{flex-wrap:wrap}.locked-design-context img{width:86px;height:64px}.locked-design-context a{width:100%}}
.floor-workspace-page{max-width:1440px}.floor-setup-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,.8fr);gap:18px;align-items:start}.floor-main-card{padding:18px}.floor-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.floor-card-head h3{margin:0}.floor-card-head p{margin:2px 0 0;font-size:13px}.floor-upload{position:relative;overflow:hidden;cursor:pointer}.floor-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.floor-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:12px 0}.floor-tool{border:1px solid #cddde6;border-radius:7px;background:#fff;color:#3b5869;padding:7px 10px;font-size:12px;font-weight:700}.floor-tool.active{background:#087eb5;border-color:#087eb5;color:#fff}.floor-zoom{display:flex;align-items:center;gap:7px;margin-left:auto;color:#536977;font-size:12px;font-weight:700}.floor-zoom input{width:105px}.floor-viewport{height:min(61vh,650px);min-height:400px;overflow:hidden;display:grid;place-items:center;background:#fff;border:1px solid #cbd8df;border-radius:12px;touch-action:none;cursor:crosshair}.floor-stage{position:relative;width:min(100%,900px);max-height:100%;transform-origin:center;user-select:none;will-change:transform}.floor-stage img{display:block;width:100%;max-height:min(61vh,650px);height:auto;object-fit:contain;pointer-events:none}.floor-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.floor-focus{fill:transparent;stroke:#8cc6e1;stroke-width:4;stroke-dasharray:12 6}.floor-ai-focus{fill:rgba(219,107,50,.05);stroke:#db6b32;stroke-width:3;stroke-dasharray:12 8}.floor-draft{fill:rgba(0,119,180,.08);stroke:#0078b4;stroke-width:3;stroke-dasharray:10 7}.floor-draft[hidden]{display:none}.floor-tool-help{margin:10px 0 0;color:#58707c;font-size:13px}.floor-empty{min-height:430px;display:grid;place-content:center;text-align:center;background:#f3f8fa;border:1px dashed #b7cad3;border-radius:12px;padding:24px}.floor-empty strong{font-size:20px}.floor-empty p{max-width:420px;color:#647783}.floor-side{display:grid;gap:18px;align-content:start}.floor-side .card{padding:18px}.floor-side h3{font-size:18px;margin:6px 0}.floor-side p{font-size:13px;line-height:1.45;margin:4px 0 10px}.floor-photo-tools{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.floor-step{font-size:11px;font-weight:800;letter-spacing:.12em;color:#087eb5}.floor-value{display:block;margin:12px 0 0!important;padding:9px 10px;background:#edf6fa;border-radius:8px;color:#28576d;font-weight:700}.floor-dimension{display:grid;gap:5px;margin-top:12px;color:#385869;font-size:13px;font-weight:700}.floor-dimension input{width:100%;padding:9px 10px;border:1px solid #cbdbe3;border-radius:8px;background:#fff}.floor-dimension small{font-weight:400}.floor-source-photo{display:block;width:100%;max-height:190px;object-fit:cover;border-radius:9px;background:#eaf0f3}.floor-ai-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.45fr);gap:12px;margin-top:18px}.floor-ai-card h3{margin:5px 0}.floor-ai-card p{font-size:13px;margin:0}.floor-ai-status,.floor-ai-warning{display:block;padding:10px 12px;border-radius:8px;background:#eff7fa;color:#2c6179;font-size:13px;font-weight:700}.floor-ai-warning{background:#fff4e8;color:#855d29}.floor-feature-list{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}.floor-feature-list span{border:1px solid #d6e4e9;border-radius:99px;background:#fafcfd;color:#486472;padding:4px 8px;font-size:12px}.floor-confirm{grid-column:1/-1;max-width:840px}.floor-confirm small{color:#657b84}@media(max-width:980px){.floor-setup-grid{grid-template-columns:1fr}.floor-side{grid-template-columns:repeat(2,minmax(0,1fr))}.floor-ai-card{grid-template-columns:1fr}}@media(max-width:700px){.floor-side{grid-template-columns:1fr}.floor-card-head{align-items:start;flex-direction:column}.floor-viewport{min-height:320px;height:50vh}.floor-stage img{max-height:50vh}}

.floor-stage{max-height:none}.floor-stage img{max-height:none;object-fit:fill}

.floor-ai-alignment{grid-column:1/-1;margin:0;padding:12px 14px;border-radius:9px;background:#f2edf9;color:#5d427a;font-size:13px}

#floorLineDraft[hidden]{display:none}.floor-distance-backdrop{position:fixed;inset:0;z-index:400;display:grid;place-items:center;padding:24px;background:rgba(19,35,46,.35)}.floor-distance-dialog{width:min(100%,390px);display:grid;gap:10px;padding:25px;background:#fff;border-radius:16px;box-shadow:0 20px 70px rgba(15,34,48,.24)}.floor-distance-dialog h3{margin:0;font-size:24px}.floor-distance-dialog p{margin:0 0 5px;color:#5b6f7a;font-size:14px}.floor-distance-dialog label{font-weight:700;font-size:13px;color:#375263}.floor-distance-dialog input{width:100%;padding:12px 13px;border:1px solid #bfcfd8;border-radius:9px;font-size:17px}.floor-distance-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:10px}

@media(min-width:1100px){.floor-distance-backdrop{place-items:center end;padding-right:clamp(24px,5vw,100px)}}

.floor-ceiling-source{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 10px;margin-top:16px;padding:11px 12px;border:1px solid #d7e5ec;border-radius:9px;background:#f5f9fb;color:#385869;font-size:13px}.floor-ceiling-source span{font-weight:700}.floor-ceiling-source strong{font-size:16px;color:#1e4c63}.floor-ceiling-source small{grid-column:1/-1;color:#70838c}

.floor-setup-grid{align-items:stretch}.floor-main-card{display:flex;flex-direction:column}.floor-card-head h3{margin:6px 0 0}.floor-main-card .floor-viewport{flex:1;height:auto;min-height:650px}.floor-side .floor-confirm{margin-top:14px;max-width:none;padding:12px}
@media(max-width:980px){.floor-main-card .floor-viewport{height:min(61vh,650px);min-height:400px}}
@media(max-width:700px){.floor-main-card .floor-viewport{height:50vh;min-height:320px}}

.floor-viewport[data-photo-tool^="photo-"] .floor-stage{cursor:none}
#floorPhotoPositionPreview[hidden],#floorPhotoDirectionPreview[hidden]{display:none}
.floor-photo-position-preview .photo-cursor-halo{fill:rgba(8,126,181,.16);stroke:#fff;stroke-width:7;vector-effect:non-scaling-stroke}
.floor-photo-position-preview .photo-cursor-outline{fill:none;stroke:#087eb5;stroke-width:3;vector-effect:non-scaling-stroke}
.floor-photo-position-preview .photo-cursor-dot{fill:#087eb5;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.floor-photo-direction-preview line{stroke:#087eb5;stroke-dasharray:9 5;vector-effect:non-scaling-stroke}
.floor-photo-direction-preview ellipse{fill:#087eb5;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.floor-photo-position-preview.outside .photo-cursor-outline,.floor-photo-direction-preview.outside line{stroke:#c05b57}
.floor-photo-position-preview.outside .photo-cursor-dot,.floor-photo-direction-preview.outside ellipse{fill:#c05b57}

.floor-toolbar{gap:10px 18px}
.floor-tool-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;flex:0 0 238px}
.floor-tool-group .floor-tool{width:100%;min-height:40px;line-height:1.2;text-align:center}
.floor-photo-tools{align-items:center;margin:12px 0 10px}
.floor-photo-hint{font-size:12px;line-height:1.35;color:#657b84}
.floor-required{float:right;border-radius:999px;padding:3px 8px;background:#fff3e8;color:#9d592b;font-size:11px;font-weight:800}
.floor-required.done{background:#e7f5ed;color:#287350}
@media(max-width:700px){.floor-tool-group{flex:1 1 238px}.floor-zoom{margin-left:0}}

.floor-toolbar{align-items:flex-end;gap:12px 18px}
.floor-toolbar .floor-tool-group{flex:0 0 216px;align-items:end}
.floor-group-label{grid-column:1/-1;color:#77909d;font-size:10px;font-weight:800;letter-spacing:.12em;line-height:1;white-space:nowrap}
.floor-toolbar .floor-tool{height:36px;min-height:36px;padding:6px 8px;white-space:nowrap;background:#fff;border-color:#cddde6;color:#3b5869;box-shadow:none}
.floor-toolbar .floor-tool.active{background:#fff;color:#087eb5;border-color:#087eb5;box-shadow:inset 0 -2px #087eb5}
.floor-toolbar .floor-zoom{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:8px;min-width:110px;margin-left:auto}
@media(max-width:700px){.floor-toolbar .floor-tool-group{flex:1 1 216px}.floor-toolbar .floor-zoom{margin-left:0}}

#app > .locked-design-context{max-width:1360px}
#app:has(> .floor-workspace-page) > .locked-design-context{max-width:1440px}

/* Furniture Layout focused workspace */
.furniture-layout-page{max-width:none}.layout-intro{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px;padding:24px 28px}.layout-intro h2{font-size:30px;margin:3px 0 7px}.layout-intro p:not(.eyebrow){max-width:820px;margin:0;color:var(--muted);font-size:15px;line-height:1.55}.layout-concept{flex:0 0 150px;display:grid;gap:4px;text-align:center;color:var(--muted);font-size:11px}.layout-concept img{display:block;width:150px;height:90px;object-fit:cover;border-radius:8px}.layout-workspace{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px;align-items:start}.layout-canvas-column{min-width:0}.layout-plan-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 10px}.layout-plan-heading h3{font-size:21px;margin:0}.layout-plan-heading p{margin:2px 0 0;color:var(--muted);font-size:13px}.layout-large-plan{padding:8px;background:#fff;min-height:560px}.layout-large-plan .plan-canvas{width:90%;min-width:0;margin-inline:auto}.layout-large-plan svg{min-width:0;width:100%;height:auto;background:#fff}.layout-toolrail{position:sticky;top:90px;max-height:calc(100vh - 105px);overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px;box-shadow:var(--shadow);display:grid;gap:10px;align-content:start}.layout-toolrail>.button{width:100%;white-space:normal}.layout-toolrail label{display:grid;gap:5px;font-size:13px;font-weight:650}.layout-toolrail select,.layout-toolrail input[type=number]{width:100%;min-width:0;border:1px solid var(--line);border-radius:7px;padding:7px}.layout-toolrail .layout-check{display:flex;align-items:center;font-weight:500}.layout-toolrail .layout-check input{width:auto}.layout-toolrail h3{font-size:16px;margin:0}.layout-toolrail .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.layout-toolrail .field:last-child{grid-column:1/-1}.layout-toolrail .actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}.layout-toolrail .actions .button{min-width:0;white-space:normal;padding:8px 5px;font-size:12px}.layout-toolrail .actions .danger{grid-column:1/-1}.layout-toolrail details>summary{font-weight:700;cursor:pointer}.layout-toolrail details>.block-list{margin-top:10px;max-height:250px;overflow:auto}.layout-toolrail .reference-block-library{margin:9px 0 0}.layout-toolrail .reference-block-button img{width:48px;height:43px}.layout-toolrail .reference-block-button{padding:6px}.layout-toolrail .block-button{width:100%}.toolrail-divider{height:1px;background:var(--line);margin:4px 0}.layout-analysis,.layout-later-tools{margin-top:15px;padding:14px 17px;border:1px solid var(--line);border-radius:10px;background:#fff}.layout-analysis summary,.layout-later-tools summary{font-weight:700;cursor:pointer}.layout-analysis p{font-size:13px}.layout-analysis li{margin:4px 0;color:var(--muted);font-size:13px}.layout-later-tools>.card{margin-top:15px}.layout-later-tools .photo-viewpoint{max-width:none}@media(max-width:1080px){.layout-workspace{grid-template-columns:minmax(0,1fr) 260px}.layout-toolrail{top:12px}}@media(max-width:850px){.layout-workspace{grid-template-columns:1fr}.layout-toolrail{position:static;max-height:none}.layout-intro{align-items:flex-start}.layout-concept{flex-basis:120px}.layout-concept img{width:120px;height:76px}}@media(max-width:600px){.layout-intro{padding:18px;display:block}.layout-intro h2{font-size:25px}.layout-concept{display:none}.layout-plan-heading{align-items:flex-start;flex-direction:column}.layout-large-plan{min-height:320px}}
.layout-v4 .layout-intro{display:block}.layout-process{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.layout-process span{padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#f7f9f9;color:#66777b;font-size:13px;font-weight:700}.layout-process span.done{background:#eaf3ef;color:#245b4c;border-color:#b9d7c8}.layout-v4 .concept-reference-strip{margin-bottom:17px}.layout-option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 12px}.layout-option-card{display:grid;gap:6px;text-align:left;align-content:start;min-height:148px;background:#fff;border:1px solid #d2dddf;border-radius:10px;padding:13px;color:#32484d;cursor:pointer;font:inherit}.layout-option-card:hover{border-color:#5092a8}.layout-option-card.selected{border:2px solid #2c7ba0;background:#eef7fa;padding:12px}.layout-option-card span,.layout-option-card small{font-size:12px;line-height:1.35}.layout-option-card .layout-option-name{font-size:15px;font-weight:750;color:#183e50}.layout-option-card strong{font-size:13px}.layout-option-card .option-issue{color:#a34d32}.layout-option-card .option-pass{color:#2a7353}.layout-empty-step{padding:18px;border:1px dashed #aebfc0;background:#f8faf9;border-radius:9px;margin-bottom:12px;color:#5d7275}.layout-plan-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin:10px 0;color:#526d71;font-size:12px}.layout-plan-legend span{display:inline-flex;gap:6px;align-items:center}.layout-plan-legend i{width:13px;height:13px;border-radius:3px;background:#086fa4}.layout-plan-legend .legend-access{background:#2c9ab2;opacity:.5}.layout-plan-legend .legend-seat{background:#ba914d}.layout-plan-legend .legend-furniture{background:#e5ede7;border:1px solid #263b3d}.plan-route-handle{cursor:grab}.plan-route-handle:active{cursor:grabbing}@media(max-width:1050px){.layout-option-grid{grid-template-columns:1fr}.layout-process{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.layout-process{grid-template-columns:1fr}}
.layout-copy-picker{margin:0 0 16px}.layout-copy-picker>b{display:block;margin:0 0 3px;color:#32484d;font-size:14px}.layout-copy-picker>p{margin:0 0 10px;color:#66777b;font-size:12px}.layout-copy-picker>div{display:grid;gap:10px}.layout-copy-card{display:flex;align-items:center;gap:14px;width:100%;min-height:116px;padding:9px 12px;border:1px solid #d2dddf;border-radius:10px;background:#fff;color:#32484d;text-align:left;cursor:pointer;font:inherit}.layout-copy-preview{display:block;width:170px;height:110px;flex:0 0 170px;border:1px solid #e0e8e8;border-radius:6px;background:#fff}.layout-copy-details{display:grid;gap:5px}.layout-copy-card strong{color:#183e50;font-size:15px}.layout-copy-details>span{font-size:12px;color:#475d62}.layout-copy-details small{font-size:11px;color:#66777b}.layout-copy-card.selected{border:2px solid #2c7ba0;background:#eef7fa;padding:8px 11px}.layout-copy-card:disabled{cursor:default}.layout-copy-card:not(:disabled):hover{border-color:#5092a8}@media(max-width:600px){.layout-copy-card{gap:10px}.layout-copy-preview{width:115px;height:80px;flex-basis:115px}}

.layout-library-selector .reference-block-library{padding:8px;max-height:400px;overflow:auto}.layout-library-selector h4{margin:12px 0 5px;font-size:12px}.layout-library-selector .reference-block-list{max-height:none;overflow:visible}.layout-library-selector .reference-block-button{min-height:56px}
.block-height-picker{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}.block-height-picker button{display:flex;min-height:58px;align-items:center;justify-content:center;flex-direction:column;gap:2px;padding:8px 6px;border:1px solid var(--line);border-radius:8px;background:#f1f3f4;color:#33434b;font-size:12px;font-weight:700;line-height:1.2;text-align:center}.block-height-picker button span{display:block}.block-height-picker button[aria-pressed="true"]{background:#3476b7;border-color:#3476b7;color:#fff}
.layout-page-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:0 0 16px}.layout-page-actions .button{white-space:normal;text-align:center}.layout-page-actions .warning{padding:9px 12px;font-size:12px}
.layout-design-brief{display:grid;gap:6px;margin:0 0 12px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:#fff}.layout-design-brief label{font-size:13px;font-weight:700;color:#32484d}.layout-design-brief label span{font-weight:400;color:#66777b}.layout-design-brief textarea{width:100%;min-height:58px;resize:vertical;padding:8px 10px;border:1px solid #d2dddf;border-radius:7px;font-size:13px;line-height:1.4}.layout-copy-details small{max-width:650px;line-height:1.4}
.layout-toolrail .selected-block-summary h3{margin:0;color:#183e50;font-size:18px}.layout-toolrail .selected-block-summary p{margin:3px 0 0;color:#66777b;font-size:12px}.layout-toolrail .actions{margin-top:2px}.layout-toolrail .reference-block-button span{display:grid;gap:2px}.layout-toolrail .reference-block-button b{font-size:12px;line-height:1.3}.layout-toolrail .reference-block-button small{font-size:11px;color:#66777b}.layout-library-selector .block-family:first-child h4{margin-top:2px}
.layout-walkway-settings{margin:12px 0 0;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:#fff}.layout-walkway-settings summary{cursor:pointer;font-size:13px;font-weight:700;color:#355364}.layout-walkway-settings>div{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin-top:12px}.layout-walkway-settings label{display:grid;gap:4px;font-size:12px;font-weight:650}.layout-walkway-settings select{min-width:150px;padding:8px;border:1px solid var(--line);border-radius:7px;background:#fff}.layout-walkway-settings .button{white-space:normal}
@media(max-width:600px){.layout-page-actions{display:grid;grid-template-columns:1fr}.layout-walkway-settings>div{display:grid;align-items:stretch}}

.concept-reference-strip{display:flex;align-items:center;gap:12px;padding:9px 11px;margin:8px 0 12px;border:1px solid var(--line);border-radius:9px;background:#fff}.concept-reference-strip img{display:block;width:156px;height:96px;object-fit:cover;border-radius:6px;flex:none}.concept-reference-strip p{font-size:12px;line-height:1.45;margin:0;color:var(--muted)}.concept-reference-strip b{color:var(--ink)}.concept-match-active .layout-analysis{background:#f4f8f7}@media(max-width:600px){.concept-reference-strip img{width:104px;height:70px}}

.whole-floor-flow,.whole-flow-empty{margin:0 0 17px;padding:12px 14px;border:1px solid #d4e2e4;border-radius:10px;background:#fff;color:#3a5960}
.whole-floor-flow summary{cursor:pointer;font-size:14px;font-weight:750;color:#235f77}
.whole-floor-flow p,.whole-flow-empty{font-size:13px;line-height:1.5}
.whole-floor-flow p{margin:8px 0}
.whole-floor-map{position:relative;width:min(100%,540px);margin:11px 0;border:1px solid #d7e2e5;border-radius:8px;overflow:hidden;background:#fff}
.whole-floor-map img{display:block;width:100%;height:auto}
.whole-floor-map svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.layout-plan-legend .legend-flow{background:#c57436}
.plan-object.snap-aligned > .plan-hitbox{stroke:#0a8f92;stroke-width:2.5;fill:#79d7cd;fill-opacity:.16}
.zoning-stage{margin:18px 0;padding:20px}.zoning-stage .analysis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.zoning-stage .analysis-head p{margin:.35rem 0 0}.zoning-map{position:relative;width:100%;max-width:760px;aspect-ratio:1;overflow:hidden;border:1px solid #cddbd8;background:#f7faf9;margin:14px 0}.zoning-map img,.zoning-map svg{position:absolute;inset:0;width:100%;height:100%}.zoning-map img{object-fit:fill;opacity:.72}.zoning-map svg{touch-action:none}.zone-drag{cursor:move}.zone-resize{cursor:nwse-resize}.zone-edit-list{display:grid;gap:8px;margin:12px 0}.zone-edit-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(100px,150px) auto;gap:8px;align-items:center}.zone-edit-row input,.zone-edit-row select{min-width:0}.zone-edit-row small{grid-column:1/-1;color:#5e7172}.zoning-stage .actions{display:flex;gap:8px;flex-wrap:wrap}
.zoning-page{scroll-margin-top:92px}
.floor-workspace-page.is-locked .floor-setup-grid{filter:grayscale(1);opacity:.66}
.floor-workspace-page.is-locked .lock-banner{background:#f0f2f4;border-color:#d8dde1}
.floor-workspace-page.is-locked .lock-banner b{color:#53616d}
.zoning-page.is-unavailable{filter:grayscale(1);opacity:.48}
.zoning-unavailable-preview{display:grid;gap:14px}
.zoning-unavailable-preview .zoning-flow-stage,.zoning-unavailable-preview .zoning-stage{min-height:100px}
.flow-editor-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:14px;align-items:start}
.flow-map{position:relative;overflow:hidden;border:1px solid #d3e0e4;border-radius:10px;background:#fff}
.flow-map img{display:block;width:100%;height:auto}
.flow-map>img,.zoning-map svg image{filter:grayscale(1)}
.flow-map svg{position:absolute;inset:0;width:100%;height:100%;touch-action:none}
.flow-node-marker{cursor:grab}
.flow-node-marker circle{fill:#fff;stroke:#075f81;stroke-width:4}
.flow-node-marker.selected circle{fill:#087eb5;stroke:#fff;stroke-width:4}
.flow-node-marker polygon{stroke-width:4;stroke-linejoin:round}
.flow-node-bar polygon{fill:#f3b65f;stroke:#a96716}
.flow-node-ordering polygon{fill:#f6d781;stroke:#a87812}
.flow-node-food_pass polygon{fill:#a3d8ae;stroke:#31764b}
.flow-node-toilet circle{fill:#dcc8ef;stroke:#7755a0}
.flow-node-marker.selected polygon{stroke:#fff;filter:drop-shadow(0 0 4px rgba(22,71,91,.8))}
.flow-node-marker circle,.flow-node-marker polygon,.flow-bend-marker,.flow-route-start{vector-effect:non-scaling-stroke}
.flow-node-toilet.selected circle{fill:#7755a0;stroke:#fff}
.flow-node-marker text{font-size:18px;font-weight:800;fill:#143d50;paint-order:stroke;stroke:#fff;stroke-width:3px;pointer-events:none}
.flow-path-hit{cursor:pointer}
.flow-bend-marker{fill:#fff;stroke:#087eb5;stroke-width:3;cursor:move}
.flow-map svg.is-drawing-route{cursor:crosshair}
.flow-map svg.is-drawing-route .flow-node-marker{cursor:pointer}
.flow-route-draft{fill:none;stroke:#087eb5;stroke-width:5;stroke-dasharray:12 7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.flow-route-start{fill:none;stroke:#087eb5;stroke-width:3;pointer-events:none}
.flow-toolrail{display:grid;gap:12px;background:#f7fafb;border:1px solid #d5e1e5;border-radius:10px;padding:14px}
.flow-toolrail h4,.flow-toolrail h5{margin:0}
.flow-toolrail-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.flow-toolrail-head span{font-size:11px;color:#59727d;white-space:nowrap}
.flow-planning-questions{border-top:1px solid #d5e1e5;padding-top:18px;margin-top:8px;display:grid;gap:8px}
.flow-planning-questions-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.flow-planning-questions-head span{font-size:11px;color:#59727d;white-space:nowrap}
.flow-planning-question{margin:4px 0 0;font-size:13px;font-weight:750;color:#203d4b}
.flow-planning-limit{margin:0 0 3px;font-size:11px;color:#59727d}
.flow-planning-options{display:grid;gap:7px}
.flow-planning-option{display:flex;align-items:flex-start;gap:9px;width:100%;padding:10px;border:1px solid #cbdce3;border-radius:8px;background:#fff;color:#294857;text-align:left;cursor:pointer}
.flow-planning-option:hover{border-color:#087eb5;background:#f5fbfe}
.flow-planning-option.selected{border-color:#087eb5;background:#eaf6fb;box-shadow:inset 0 0 0 1px #087eb5}
.flow-planning-option:disabled{cursor:default;opacity:.65}
.flow-planning-check{flex:none;display:grid;place-items:center;width:17px;height:17px;border:1.5px solid #8caab7;border-radius:4px;margin-top:1px;color:#fff;font-size:12px;font-weight:800}
.flow-planning-option.selected .flow-planning-check{background:#087eb5;border-color:#087eb5}
.flow-planning-option strong{display:block;font-size:11px;line-height:1.35}
.flow-planning-option small{display:block;margin-top:3px;font-size:10px;line-height:1.4;color:#59727d}
@media(max-width:1100px){.flow-planning-questions{grid-column:1/-1}}

.flow-tool-modes{display:grid;grid-template-columns:1fr;gap:5px}
.flow-marker-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.flow-marker-tools button{display:flex;align-items:center;gap:7px;min-width:0;border:1px solid #cbdce3;border-radius:7px;background:#fff;padding:8px 7px;color:#315d6d;font-size:11px;font-weight:700;text-align:left}
.flow-marker-tools button:hover{border-color:#087eb5;background:#eef8fc}
.flow-tool-icon{display:block;width:13px;height:13px;flex:none;border:2px solid #087eb5;border-radius:50%;background:#dceff7}
.flow-tool-icon-bar{width:16px;height:15px;border:0;border-radius:0;background:#d58c2d;clip-path:polygon(50% 0,100% 100%,0 100%)}
.flow-tool-icon-ordering,.flow-tool-icon-food_pass{border-radius:2px;transform:rotate(45deg)}
.flow-tool-icon-ordering{border-color:#a87812;background:#f6d781}
.flow-tool-icon-food_pass{border-color:#31764b;background:#a3d8ae}
.flow-tool-modes button{border:1px solid #cbdce3;border-radius:7px;background:#fff;padding:7px 4px;color:#315d6d;font-size:12px;font-weight:700}
.flow-tool-modes button.active{background:#087eb5;border-color:#087eb5;color:#fff}
.flow-draw-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.flow-draw-actions button{min-width:0;padding:8px 5px;font-size:12px}
.flow-save-status{margin:0;color:#536b76;font-size:12px}
.flow-save-status[role="alert"]{display:grid;gap:7px;color:#a64636}
.flow-analysis-wait{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:14px 16px;border:1px solid #b8dce9;border-radius:10px;background:#eef8fc;color:#15546e}
.flow-analysis-wait p{margin:3px 0 0;font-size:12px}
.flow-lock-wait{margin:14px 0 0}
.flow-analysis-spinner{width:21px;height:21px;flex:none;border:3px solid #c5e5f0;border-top-color:#087eb5;border-radius:50%;animation:flow-spin .8s linear infinite}
.zoning-generation-wait{position:sticky;bottom:16px;z-index:3;display:flex;align-items:center;gap:12px;margin:12px 0 0;padding:14px 16px;border:1px solid #b8dce9;border-radius:10px;background:#eef8fc;box-shadow:0 8px 20px rgba(15,78,105,.12);color:#15546e}
.zoning-generation-wait p{margin:3px 0 0;font-size:12px}
@keyframes flow-spin{to{transform:rotate(360deg)}}
.flow-tool-hint{margin:0;color:#536b76;font-size:12px}
.flow-tool-field,.flow-selected-panel label{display:grid;gap:5px;font-size:12px;font-weight:700;color:#385869}
.flow-tool-field select,.flow-selected-panel input,.flow-selected-panel select{width:100%;min-width:0;border:1px solid #cbdce3;border-radius:7px;background:#fff;padding:7px 8px;color:#1b3d49}
.flow-selected-panel{display:grid;gap:9px;border-top:1px solid #d6e2e6;padding-top:12px}
.flow-selected-panel>span{font-size:12px;color:#4b6570}
.flow-selected-panel .button{width:100%;padding:7px 10px;font-size:12px}
.flow-selected-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.flow-point-list{display:grid;gap:5px;max-height:240px;overflow:auto;border-top:1px solid #d6e2e6;padding-top:10px}
.flow-point-list>b{font-size:12px}
.flow-point-list>p{margin:0;font-size:12px;color:#61757b}
.flow-point-list details{font-size:12px;color:#536b76}
.flow-point-list details summary{cursor:pointer;font-weight:700}
.flow-point-choice{display:flex;align-items:center;gap:7px;width:100%;border:1px solid #d6e1e5;border-radius:7px;background:#fff;padding:6px 8px;text-align:left}
.flow-point-choice span{flex:none;color:#08769c;font-size:11px;font-weight:800}
.flow-point-choice b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#314f59}
.flow-point-choice.selected{border-color:#087eb5;background:#eaf6fb}
.flow-save-actions{display:flex;gap:6px;border-top:1px solid #d6e2e6;padding-top:11px}
.flow-save-actions .button{flex:1;padding:8px 10px;font-size:12px}
.flow-notes{margin-top:14px;border-top:1px solid #e0e8eb;padding-top:9px;color:#56707b;font-size:12px}
.flow-notes summary{cursor:pointer;font-weight:700}
.flow-notes p{margin:8px 0}
.flow-notes ul{margin:8px 0;padding-left:19px}
.zoning-page .layout-process{grid-template-columns:repeat(2,minmax(0,1fr))}
.zoning-flow-stage{background:#fff;border:1px solid #d4e2e4;border-radius:12px;padding:18px 20px}
.zoning-flow-stage .analysis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}
.zoning-flow-stage .analysis-head h3{margin:0}
.zoning-flow-stage .flow-reset-button{padding:7px 10px;font-size:12px;color:#66747c;border-color:#d9e1e4}
.flow-confirm-footer{display:flex;justify-content:flex-end;align-items:center;margin-top:16px;padding-top:16px;border-top:1px solid #e1e8eb}
.workflow-lock-button{display:inline-flex;align-items:center;justify-content:center;width:190px;height:48px;flex:0 0 190px;padding:0 14px;font-size:15px;line-height:1.2;text-align:center}
.zoning-flow-stage.is-locked{background:#f0f2f4;border-color:#d8dde1}
.zoning-flow-stage.is-locked .analysis-head,.zoning-flow-stage.is-locked .whole-floor-flow{filter:grayscale(1);opacity:.58}
.zoning-flow-stage.is-locked .whole-floor-flow{pointer-events:auto}
.zoning-flow-stage.is-locked .flow-reset-button{background:#e6e9eb;color:#7a858c;border-color:#d5dade;cursor:not-allowed}
.zoning-flow-stage.is-locked .flow-confirm-footer .stage-pill{background:#e1e5e8;color:#53616d}
.zoning-flow-stage.is-locked .flow-confirm-footer .workflow-lock-button{background:#e1e5e8;border-color:#cbd2d7;color:#53616d;cursor:not-allowed;opacity:1}
.zoning-flow-stage .analysis-head p{margin:4px 0 0;color:#5e7172;font-size:13px}
.zoning-flow-stage .actions,.zoning-continue{display:flex;gap:8px;flex-wrap:wrap}
.zoning-flow-stage .whole-floor-flow,.zoning-flow-stage .whole-flow-empty{margin:0}
.zoning-page .zoning-stage{margin:14px 0}
@media(min-width:1151px){
  .zoning-page .whole-floor-flow[open]{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:8px 18px;align-items:start}
  .zoning-page .whole-floor-flow summary{grid-column:1/-1}
  .zoning-page .whole-floor-map{grid-column:1;grid-row:2/span 3;width:100%;max-width:none;margin:0}
  .zoning-page .whole-floor-flow>p:first-of-type{grid-column:2;grid-row:2;margin:0}
  .zoning-page .whole-floor-flow>p.small{grid-column:2;grid-row:3}
  .zoning-page .whole-floor-flow>ul{grid-column:2;grid-row:4;margin:0;padding-left:18px}
  .zoning-page .zoning-stage:has(.zoning-map){display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:12px 18px;align-items:start}
  .zoning-page .zoning-stage .analysis-head{grid-column:1/-1}
  .zoning-page .zoning-map{grid-column:1;grid-row:2/span 3;max-width:none;margin:0}
  .zoning-page .zoning-stage>p.small{grid-column:2;grid-row:2;margin:0}
  .zoning-page .zone-edit-list{grid-column:2;grid-row:3;margin:0}
  .zoning-page .zoning-stage .actions{grid-column:2;grid-row:4}
}
@media(max-width:1150px){.zoning-flow-stage .analysis-head{flex-direction:column}.zoning-page .layout-process{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){.flow-editor-grid{grid-template-columns:1fr}.flow-toolrail{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-toolrail-head,.flow-marker-tools,.flow-tool-modes,.flow-tool-hint,.flow-save-actions{grid-column:1/-1}}
@media(max-width:650px){.flow-toolrail{grid-template-columns:1fr}.flow-toolrail>*{grid-column:1/-1}}
@media(max-width:600px){.zoning-page .layout-process{grid-template-columns:1fr}.zoning-flow-stage{padding:14px}}
.space-three-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 18px}
.space-three-steps span{display:flex;align-items:center;min-height:46px;padding:10px 14px;border:1px solid #d4dfe2;border-radius:10px;background:#fff;color:#5a7077;font-size:13px;font-weight:750}
.space-three-steps .done{border-color:#bdd8cb;background:#eaf3ef;color:#245b4c}
.space-three-steps .current{border-color:#8cbcd0;background:#eef8fb;color:#075d7c}
.space-three-steps .waiting{background:#f3f5f5;color:#929fa2}
.zoning-stage-waiting{background:#f3f5f5;border-color:#dce2e2;color:#718084}
.zoning-stage-waiting .stage-pill{white-space:nowrap}
.zoning-stage-label{margin:20px 0 0;color:#08769c;font-size:11px;letter-spacing:.08em;font-weight:800}
.zoning-stage-pending{filter:grayscale(1);opacity:.56}
.zoning-page .zoning-stage .eyebrow,.zoning-flow-stage .eyebrow{margin:0 0 6px;color:#08769c;font-size:11px;letter-spacing:.08em;font-weight:800}
@media(max-width:650px){.space-three-steps{grid-template-columns:1fr}}
.zoning-legend{display:flex;flex-wrap:wrap;align-items:center;gap:9px 18px;margin:12px 0 4px;color:#526d71;font-size:12px}.zoning-legend span{display:inline-flex;align-items:center;gap:6px}.zoning-legend i,.zoning-corridor-row i{display:inline-block;width:17px;height:10px;border-radius:3px;background:#187696;flex:none}.zoning-legend i.secondary,.zoning-corridor-row i.secondary{background:#5cb0ae}.zoning-corridor{fill-opacity:.72}.zoning-corridor.secondary{fill-opacity:.78}.zoning-corridor-list{border:1px solid #d8e5e5;border-radius:9px;padding:10px 12px;margin:12px 0;max-width:760px}.zoning-corridor-list summary{cursor:pointer;font-weight:700;color:#295367}.zoning-corridor-row{display:grid;grid-template-columns:auto minmax(0,1fr) 100px;align-items:center;gap:9px;padding:8px 0;border-top:1px solid #e4ecec;font-size:12px}.zoning-corridor-row:first-of-type{margin-top:8px}.zoning-corridor-row select{min-width:0;width:100%;margin:0;padding:6px}.zone-name-control{display:grid;gap:5px}.zone-name-control select,.zone-name-control input{width:100%}.zone-name-control input[hidden]{display:none}.zoning-stage .warning{max-width:760px;margin:12px 0}.zoning-page .zone-edit-list{max-width:760px}@media(max-width:650px){.zoning-corridor-row{grid-template-columns:auto minmax(0,1fr) 90px}.zone-edit-row{grid-template-columns:minmax(120px,1fr) minmax(90px,120px)}.zone-edit-row button{grid-column:2}}
.zoning-workspace{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:18px;align-items:start}.zoning-side{display:grid;gap:11px;align-content:start;min-width:0}.zoning-side>p,.zoning-side>.warning,.zoning-side>.zoning-corridor-list,.zoning-side>.zone-edit-list{margin:0;max-width:none}.zoning-workspace .zoning-map{width:100%;max-width:none;margin:0}.zoning-side .actions{margin:0}@media(min-width:1151px){.zoning-page .zoning-stage:has(.zoning-workspace){display:block}.zoning-page .zoning-stage .zoning-map,.zoning-page .zoning-stage .zone-edit-list,.zoning-page .zoning-stage .actions{grid-column:auto;grid-row:auto;max-width:none;margin:0}}@media(max-width:1100px){.zoning-workspace{grid-template-columns:1fr}.zoning-workspace .zoning-map{max-width:760px}}
.floor-workspace-page,.zoning-page{max-width:1440px}
.zone-edit-list{gap:7px}
.zone-edit-row{grid-template-columns:68px minmax(120px,1fr) minmax(90px,130px) 38px;padding:7px;border:1px solid #dbe5e8;border-radius:8px;background:#fff}
.zone-edit-row.is-selected{border-color:#087eb5;background:#f0f9fd}
.zone-select-button{border:1px solid #c8dbe3;border-radius:7px;background:#fff;color:#346277;font-size:11px;font-weight:700;padding:7px 5px}
.zone-select-button[aria-pressed="true"]{background:#087eb5;color:#fff;border-color:#087eb5}
.zone-title-editor{display:grid;gap:7px}.zone-title-editor label{font-weight:700;color:#294b50}.zone-title-editor select{width:100%}
.zone-selection-help{font-size:12px;color:#526d71;margin:0}
.zone-group-actions{display:flex;gap:8px;flex-wrap:wrap}
.zone-shape.is-selected .zone-drag{stroke:#000;stroke-width:3}
.zone-edge-handle{fill:#fff;stroke:#087eb5;stroke-width:3;cursor:ew-resize}
.zone-edge-handle:hover{fill:#087eb5;stroke:#fff;stroke-width:3}
.zone-edge-handle[data-zone-edge="top"],.zone-edge-handle[data-zone-edge="bottom"]{cursor:ns-resize}
.secondary-path-handle{fill:#fff;stroke:#198f91;stroke-width:3;cursor:grab}
.secondary-path-handle:hover{fill:#198f91;stroke:#fff}
.zoning-corridor-row{grid-template-columns:auto minmax(0,1fr) 88px 78px}
.zoning-corridor-row .button{padding:6px 7px;font-size:11px}
.zoning-corridor-row .button[aria-pressed="true"]{background:#e7f5f4;border-color:#67b8b3;color:#126b6a}
.corridor-fixed-width{color:#697a80;font-size:11px;white-space:nowrap}
.secondary-path-hit{cursor:pointer}
.secondary-path-hit:hover{fill:rgba(255,255,255,.12)}
.secondary-path-panel{display:grid;gap:10px;padding:12px;border:1px solid #8fc7c4;border-radius:9px;background:#edf8f7}
.secondary-path-panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.secondary-path-panel-head button{border:0;background:transparent;color:#406c70;font-size:20px;line-height:1}
.secondary-path-panel p{margin:0;font-size:12px;color:#42626a}
.secondary-path-panel label{display:grid;gap:5px;font-size:12px;font-weight:700;color:#355e65}
.secondary-path-panel select{width:100%;border:1px solid #bed6d7;border-radius:7px;padding:7px;background:#fff}
@media(max-width:650px){.zone-edit-row{grid-template-columns:68px minmax(110px,1fr) minmax(80px,110px) 38px}.zone-edit-row button{grid-column:auto}}
.floor-setup-grid,.flow-editor-grid,.zoning-workspace{grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);gap:16px}
.floor-main-card .floor-viewport{padding-left:24px}
.zoning-page{margin-top:18px}
.zoning-page .zoning-stage{margin-top:10px}
.zoning-stage-label{margin-top:18px}
.zoning-stage .zone-edit-row small{display:none}
.zoning-stage-preview .zoning-side{background:#f7fafb;border:1px solid #d5e1e5;border-radius:10px;padding:14px}
.zoning-stage-preview .zoning-side .button{justify-self:start}
.zoning-map{max-height:none}
.zoning-map svg text,.zoning-map svg circle{transform:scaleX(var(--zoning-marker-scale,1));transform-box:fill-box;transform-origin:center}
@media(max-width:1050px){.floor-setup-grid,.flow-editor-grid,.zoning-workspace{grid-template-columns:1fr}.floor-main-card .floor-viewport{padding-left:0}}
.zoning-page .zone-edit-row{grid-template-columns:minmax(0,1fr) 90px 34px;gap:6px}
.zoning-page .zone-edit-row .button{padding:5px 0;min-width:0;font-size:18px;line-height:1}
.zoning-page .zone-edit-row select{min-width:0;width:100%}
.zoning-page .zoning-side{background:#f7fafb;border:1px solid #d5e1e5;border-radius:10px;padding:14px}
@media(max-width:650px){.zoning-page .zone-edit-row{grid-template-columns:minmax(0,1fr) 84px 30px}.zoning-page .zone-edit-row button{grid-column:auto}}
.zoning-page .zone-edit-row{grid-template-columns:68px minmax(0,1fr) 34px}
@media(max-width:650px){.zoning-page .zone-edit-row{grid-template-columns:68px minmax(0,1fr) 30px}}

.zone-title-label{font-weight:700;color:#294b50}.zone-title-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.zone-title-options button{border:1px solid #cbd3d8;border-radius:8px;background:#e8ebed;color:#3b4b52;padding:10px 12px;font:inherit;font-weight:650;cursor:pointer}.zone-title-options button[aria-pressed='true']{background:#2f74b5;border-color:#2f74b5;color:#fff}.zone-title-options button:last-child{grid-column:1/-1}.zone-title-options button:disabled{cursor:not-allowed;opacity:.6}.zone-title-editor [data-zone-custom-title]{width:100%;box-sizing:border-box}


.zone-title-editor [data-zone-custom-title][hidden]{display:none}

.zoning-generation-notice{display:flex;align-items:center;gap:10px;width:max-content;max-width:100%;margin:12px 0 0;padding:10px 13px;border:1px solid #cbdceb;border-radius:9px;background:#f1f7fc;color:#234b6b;font-size:13px;font-weight:600}
.layout-zoning-section .zoning-stage{padding:0;border:0;box-shadow:none;background:transparent}
.layout-zoning-section .zoning-workspace{grid-template-columns:minmax(0,1fr) 290px;gap:18px}
.layout-zoning-section .zoning-side{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px;box-shadow:var(--shadow);gap:10px}
.layout-zoning-section .zoning-side .button{white-space:normal}
.layout-zoning-section .zone-title-options button{padding:8px 5px;font-size:12px}
@media(max-width:1080px){.layout-zoning-section .zoning-workspace{grid-template-columns:minmax(0,1fr) 260px}}
@media(max-width:850px){.layout-zoning-section .zoning-workspace{grid-template-columns:1fr}}

/* Keep each planning diagram fully visible within one viewport. */
.layout-zoning-section .zoning-map{width:min(100%,68dvh);max-height:68dvh}
.layout-large-plan .plan-canvas{width:min(90%,68dvh)}
@media(max-width:850px){.layout-zoning-section .zoning-map{width:min(100%,68dvh)}.layout-large-plan .plan-canvas{width:min(100%,68dvh)}}

/* Traffic Flow shares the Floor Plan's view controls beneath its diagram. */
.flow-map-column{min-width:0}
.flow-map-stage{position:relative;width:100%;transform-origin:center;will-change:transform;user-select:none}
.flow-map-stage>img{display:block;width:100%;height:auto;filter:grayscale(1);pointer-events:none}
.flow-map.is-panning{cursor:grab}
.flow-map.is-panning:active{cursor:grabbing}
.flow-map.is-panning svg,.flow-map.is-panning .flow-node-marker,.flow-map.is-panning .flow-path-hit{cursor:inherit}
.flow-view-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-top:10px;padding:9px 10px;border:1px solid #d3e0e4;border-radius:10px;background:#f7fafb}
.flow-view-controls .floor-tool-group{display:flex;align-items:center;gap:6px;flex:1 1 100%;flex-wrap:wrap}
.flow-view-controls .floor-tool-group .floor-group-label{flex:0 0 100%}
.flow-view-controls .floor-tool-group .floor-tool{width:auto;flex:1 1 120px}
.flow-view-controls .floor-zoom{width:100%;margin-left:0}
.flow-view-controls .floor-zoom input{flex:1;width:auto}

/* Floor-plan geometry follows the plan; annotation weight stays in screen pixels. */
.zoning-map svg text{font-family:inherit}
.zoning-map svg .zone-drag,
.zoning-map svg .zone-edge-handle,
.zoning-map svg .main-path-label,
.zoning-map svg>rect[fill="none"]{vector-effect:non-scaling-stroke}


.zone-diagram-priority{display:grid;gap:7px;border-top:1px solid #d7e2e5;padding-top:12px;margin-top:10px}
.zone-diagram-priority p{margin:0;color:#47616d;font-size:12px}
.zone-diagram-priority input{width:100%;box-sizing:border-box}
.zone-diagram-priority button{justify-self:start}

.zone-diagram-separations{display:grid;gap:8px;border-top:1px solid #d7e2e5;padding-top:12px;margin-top:10px}
.zone-separation-row{display:grid;gap:5px;padding:8px;border:1px solid #d9e3e7;border-radius:7px;background:#fff}
.zone-separation-row span{font-size:11px;font-weight:700}
.zone-separation-row small{font-size:10px;color:#637783}
.zone-separation-row>div{display:flex;flex-wrap:wrap;gap:5px}
.zone-separation-row button{border:1px solid #c8d8de;background:#fff;color:#31556a;border-radius:6px;padding:6px 7px;font-size:10px;font-weight:700;cursor:pointer}
.zone-separation-row button[aria-pressed="true"]{border-color:#087eb5;background:#eaf6fb;color:#075e87}

.zone-separation-mark{stroke:#243f59;stroke-width:7;stroke-dasharray:14 9;pointer-events:none;vector-effect:non-scaling-stroke}
.zone-separation-line.is-selected .zone-separation-mark{stroke:#c64822;stroke-width:8}
.zone-separation-hit{stroke:transparent;stroke-width:36;pointer-events:stroke;cursor:pointer;vector-effect:non-scaling-stroke}
.zone-separation-line:focus{outline:none}
.zone-separation-line:focus .zone-separation-mark{stroke:#c64822}
.zone-separation-row.is-selected{border-color:#c64822;background:#fff8f3}
.zone-separation-select{width:100%;text-align:left}

.zone-separation-handle{fill:#fff;stroke:#c64822;stroke-width:3;cursor:grab;vector-effect:non-scaling-stroke}
.zone-separation-line .zone-separation-hit{cursor:grab}
.separation-tools{display:flex;flex-wrap:wrap;gap:6px}
.separation-tools .button{font-size:11px;padding:7px 9px}
.zone-separation-remove{border-color:#d9a79e!important;color:#a33a2b!important;background:#fff8f6!important}

.zoning-confirm-footer{display:flex;justify-content:flex-end;padding:18px 0 2px;border-top:1px solid #d7e1e5;margin-top:18px}
.zoning-confirm-footer .button{min-width:220px}

.zone-edit-section{border-top:1px solid #d7e1e5;margin-top:18px;padding-top:18px;display:grid;gap:10px}
.zone-edit-section>b{font-size:16px}
.zone-edit-section .zone-selection-help{margin:0}

.zoning-side-stack{min-width:0;display:flex;flex-direction:column;gap:18px}
.layout-zoning-section .zoning-confirm-footer{margin:0;padding:0;border:0;display:block}
.layout-zoning-section .zoning-confirm-footer .button{width:100%}
.layout-zoning-section .zone-group-actions{display:flex;flex-wrap:wrap;gap:8px}
.zoning-side-stack .zoning-confirm-footer{margin:0;padding:0;border:0;display:block}.zoning-side-stack .zoning-confirm-footer .button{width:100%}

.zoning-side .zone-edit-section,.zoning-side .zone-diagram-separations{border-top:1px solid #d7e1e5;margin-top:10px;padding-top:14px;display:grid;gap:8px}
.zoning-side .zone-edit-section>b,.zoning-side .zone-diagram-separations>b{font-size:16px;line-height:1.3;color:#182d3b}
.layout-zoning-section .zone-title-editor{display:grid;gap:7px;padding:8px;border:1px solid #d9e3e7;border-radius:7px;background:#fff}
.layout-zoning-section .zone-title-label{font-size:11px;font-weight:700;color:#31556a}
.layout-zoning-section .zone-title-options{display:flex;flex-wrap:wrap;gap:5px}
.layout-zoning-section .zone-title-options button,.layout-zoning-section .zone-group-actions .button,.layout-zoning-section .zone-title-editor .button{width:auto;grid-column:auto;border:1px solid #c8d8de;border-radius:6px;background:#fff;color:#31556a;padding:6px 7px;font-size:10px;font-weight:700;line-height:1.35;cursor:pointer}
.layout-zoning-section .zone-title-options button[aria-pressed="true"]{border-color:#087eb5;background:#eaf6fb;color:#075e87}
.layout-zoning-section .zone-title-editor .button.danger{border-color:#d9a79e;color:#a33a2b;background:#fff8f6}
.layout-zoning-section .zone-group-actions .button:disabled{cursor:not-allowed;opacity:.6}
.layout-zoning-section .zone-group-actions .button{font-size:11px;padding:7px 9px}

.furniture-layout-page .zoning-stage-confirmed .zoning-map,.furniture-layout-page .zoning-stage-confirmed .zoning-side{filter:grayscale(1);opacity:.52}
.zoning-unlock-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.furniture-layout-page.layout-awaiting-zoning .layout-workspace,.furniture-layout-page.layout-awaiting-zoning .layout-later-tools{filter:grayscale(1);opacity:.42}

.furniture-option-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 16px}
.furniture-option-button{min-height:72px;padding:12px;border:1px solid #cdd9df;border-radius:12px;background:#fff;color:#234556;text-align:center;cursor:pointer;display:grid;align-content:center;gap:4px;font:inherit}
.furniture-option-button strong{font-size:17px}.furniture-option-button small{font-size:12px;color:#657a84}
.furniture-option-button.is-active{background:#e9f3f8;border:2px solid #347da9;color:#17496a}
.furniture-option-button:disabled{cursor:default;opacity:.56}
@media(max-width:600px){.furniture-option-switch{gap:6px}.furniture-option-button{padding:8px 4px;min-height:64px}.furniture-option-button strong{font-size:13px}}

/* Keep the block library alongside the full visible furniture plan. */
@media (min-width:851px){
  .furniture-layout-page .layout-toolrail{height:calc(100vh - 105px);max-height:none;overflow:hidden;grid-template-rows:auto auto auto minmax(0,1fr)}
  .furniture-layout-page .layout-library-selector{display:flex;flex-direction:column;min-height:0}
  .furniture-layout-page .layout-library-selector>.reference-block-library{flex:1;min-height:0;max-height:none;overflow-y:auto}
}
@media (min-width:851px) and (max-width:1080px){
  .furniture-layout-page .layout-toolrail{height:calc(100vh - 24px)}
}
.chosen-product-photo{width:100%;height:165px;object-fit:contain;background:#f4f5f2;border-radius:10px;margin-bottom:12px}.design-reference-photo{width:100%;max-height:360px;object-fit:contain}.zone-product-group{margin:20px 0}.zone-product-group>summary{padding:18px;background:#e8f1ed;border-radius:12px;font-size:18px;font-weight:700}.block-products-grid{margin:16px 0}.block-product-card input{width:100%}.design-presentation{max-width:1080px;margin:0 auto;background:#fff;color:#253638;padding:36px}.presentation-cover h1{font-size:42px;line-height:1.1}.presentation-cover{border-bottom:3px solid #224e49;margin-bottom:32px}.presentation-section{padding:24px 0;border-bottom:1px solid #dfe6e2}.presentation-section h2{font-size:25px;color:#224e49}.design-presentation figure{margin:22px 0}.design-presentation figure img{width:100%;max-height:620px;object-fit:contain}.design-presentation figcaption{font-size:12px;color:#62746c;margin-top:8px}.brief-answers{display:grid;grid-template-columns:minmax(150px,1fr) 3fr;gap:12px 20px}.brief-answers dt{font-weight:600;text-transform:capitalize}.brief-answers dd{margin:0}.report-drawing svg{width:100%;height:auto;max-height:700px}.finish-schedule{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.design-presentation .schedule-product img{width:80px;height:80px;object-fit:contain}.design-presentation li{margin:8px 0}.design-presentation table{width:100%}
@media(max-width:800px){.design-presentation{padding:18px}.brief-answers{grid-template-columns:1fr}.finish-schedule{grid-template-columns:1fr}}
@media print{
 @page{size:A4 portrait;margin:15mm}
 body{background:white!important;color:#263638!important}body:has(.design-presentation) .sidebar,body:has(.design-presentation) .topbar,body:has(.design-presentation) #stageNav,body:has(.design-presentation) .page-head,body:has(.design-presentation) .no-print,body:has(.design-presentation) #toast,body:has(.design-presentation) .locked-design-context{display:none!important}
 body:has(.design-presentation) .app,body:has(.design-presentation) .main,body:has(.design-presentation) main,body:has(.design-presentation) .workspace,body:has(.design-presentation) .view{display:block!important;width:100%!important;margin:0!important;padding:0!important;overflow:visible!important;max-width:none!important}
 .design-presentation{padding:0!important;max-width:none!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.presentation-cover{break-after:page}.presentation-section{break-before:page;break-inside:auto}.presentation-section h2,.presentation-section h3{break-after:avoid}.design-presentation figure,.design-presentation tr,.finish-schedule>div{break-inside:avoid}.design-presentation figure img{max-height:210mm;object-fit:contain}.design-presentation .schedule-scroll{overflow:visible!important}.design-presentation thead{display:table-header-group}.design-presentation table{font-size:10pt}.design-presentation .schedule-product img{width:18mm;height:18mm}.report-drawing{break-inside:avoid}.report-drawing svg{max-height:220mm;width:100%!important}.design-presentation a{color:inherit;text-decoration:none}.design-presentation button{display:none!important}
}

@media print{body:has(.design-presentation) .app-shell,body:has(.design-presentation) .main-content,body:has(.design-presentation) #app{display:block!important;margin:0!important;padding:0!important;width:100%!important;max-width:none!important;overflow:visible!important}body:has(.design-presentation) .global-brand-bar,body:has(.design-presentation) .platform-footer,body:has(.design-presentation) .corporate-footer{display:none!important}}
/* Separate real-product components and keep the supply total visible at the start. */
.furniture-total-summary { background:#edf5f1; border-color:#bbd5c9; margin-bottom:24px; }
.furniture-total-summary h2 { font-size:32px; margin:8px 0; }
.furniture-total-summary small { font-size:16px; font-weight:400; }
.product-category-section { margin:32px 0; }
.product-component-price { padding:12px; background:#f3f6f4; border-radius:8px; line-height:1.7; }

.component-finish-fields{display:grid;gap:12px}.component-finish-fields input{width:100%;min-height:38px}.component-finish-fields small{color:#657681;line-height:1.5}.product-applies{margin-top:12px;color:#657681;font-size:12px}

.furniture-fit-progress { color: #006fae; font-size: 14px; line-height: 1.5; margin: 12px 0; }

.zone-product-group { margin: 16px 0; }
.zone-product-group > summary { padding: 12px 16px; font-size: 16px; }
.zone-product-group .block-products-grid { grid-template-columns: repeat(auto-fill,minmax(min(100%,280px),1fr)); gap: 12px; margin: 12px 0; align-items: stretch; }
.zone-product-group .block-product-card { padding: 16px; min-width: 0; display: flex; flex-direction: column; }
.block-product-card h3 { font-size: 15px; margin: 0 0 10px; line-height: 1.35; min-height: 2.7em; }
.product-category-label { color: #006fae; font-size: 11px; font-weight: 600; margin: 0 0 5px; }
.block-product-card .chosen-product-photo { height: 110px; margin: 0 0 8px; }
.block-product-card .product-component-price { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; padding: 8px 10px; font-size: 12px; margin: 0 0 10px; }
.block-product-card label { margin-top: 8px; font-size: 12px; }
.block-product-card select, .block-product-card input { margin-top: 4px; padding: 7px 8px; min-height: 34px; font-size: 12px; box-sizing: border-box; }
.block-product-card .component-finish-fields { gap: 4px; }
.block-product-card p, .block-product-card .component-finish-fields small { font-size: 12px; line-height: 1.45; }
.block-product-card .button { padding: 7px 10px; font-size: 12px; margin-top: 10px; }
.block-product-card .product-applies { margin-top: auto; padding-top: 12px; }
.block-product-card .chosen-product-photo, .block-product-card .product-component-price { flex-shrink: 0; }
.product-photo-preview { width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; flex-shrink: 0; margin: 0 0 8px; }
.block-product-card .product-photo-preview .chosen-product-photo { display: block; margin: 0; }
.product-photo-preview:focus-visible { outline: 2px solid #006fae; outline-offset: 3px; border-radius: 10px; }
.product-image-modal { width: min(960px,94vw); padding: 20px; }
.product-image-modal .modal-head { margin-bottom: 12px; padding-bottom: 12px; }
.enlarged-product-photo { display: block; width: 100%; height: min(70vh,720px); object-fit: contain; background: #f6f7f8; border-radius: 8px; }
.product-schedule-details { margin: 16px 0; }
.product-schedule-details > summary { cursor: pointer; font-weight: 600; }
.furniture-total-summary { padding: 16px 20px; margin-bottom: 16px; }
.furniture-total-summary h2 { font-size: 26px; margin: 4px 0; }
.concept-history-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.concept-history-tile figure{margin:0}.concept-history-tile img{width:100%;height:150px;object-fit:cover}.concept-history-tile figcaption{font-size:12px;line-height:1.3}.project-supply-table{width:100%;border-collapse:collapse}.project-supply-table th,.project-supply-table td{text-align:left;padding:10px;border-bottom:1px solid #dce5e0;vertical-align:top}.project-supply-table small{display:block;font-size:12px;line-height:1.4;color:#53645d}.project-supply-table td:first-child{width:55%}@media print{.concept-history-grid{grid-template-columns:repeat(3,1fr)}.concept-history-tile{break-inside:avoid}.concept-history-tile img{height:125px}}@media(max-width:650px){.concept-history-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.final-image{margin-bottom:16px}.final-image>img{display:block;width:100%;max-height:70vh;object-fit:contain;background:#eef1ee}.final-image>div{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;gap:12px}.final-preparation>summary,.business-profile>summary{font-weight:600;cursor:pointer}.supply-edit-row{display:grid;grid-template-columns:1fr 130px 1fr;gap:12px;align-items:end;padding:10px 0;border-bottom:1px solid #dce5e0}.business-guide-demo{background:#f3f6f4;padding:12px;margin-top:14px}@media(max-width:650px){.supply-edit-row{grid-template-columns:1fr}.final-image>div{flex-wrap:wrap}}

/* Diagram annotations use screen pixels; only plan geometry follows the source scale. */
.zoning-map svg text{font-weight:600;letter-spacing:0}
.zoning-map svg .zone-drag{stroke-width:1.5}
.zoning-map svg>rect[fill="none"]{stroke-width:2}
.zoning-map svg .main-path-label{stroke-width:2.5}
.zoning-map svg .zone-separation-mark{stroke-width:2;stroke-dasharray:7 5}
.zoning-map svg .zone-separation-line.is-selected .zone-separation-mark{stroke-width:3}
.zoning-map svg .zone-separation-hit{stroke-width:20}
.layout-zoning-section .zoning-workspace{grid-template-columns:minmax(0,1fr) 290px;width:100%;max-width:calc(64dvh * var(--zoning-map-aspect,1) + 308px);gap:18px}
.layout-zoning-section .zoning-map{width:100%;max-height:none;margin:0;border-radius:8px}
.layout-zoning-section .analysis-head{align-items:center;margin-bottom:12px;max-width:calc(64dvh * var(--zoning-map-aspect,1) + 308px)}
.layout-zoning-section h3{font-size:16px;line-height:1.4;margin:0;font-weight:600}
.layout-zoning-section .zoning-side{font-size:13px;line-height:1.5;padding:16px;gap:12px;box-shadow:none}
.layout-zoning-section .zoning-side b{font-size:14px;font-weight:600}
.layout-zoning-section .zoning-side p,.layout-zoning-section .zoning-side small{font-size:12px;line-height:1.5;margin:0;color:#47616d}
.layout-zoning-section .zone-diagram-priority{border-top:0;padding-top:0;margin-top:0}
.layout-zoning-section .button,.layout-zoning-section .zone-separation-row button{font-family:inherit;font-size:12px;font-weight:600;line-height:1.3;min-height:34px;padding:8px 10px;border-radius:7px}
.layout-zoning-section .zoning-confirm-footer .button{font-size:13px;min-height:40px}
.layout-zoning-section input[type=text],.layout-zoning-section select{font-family:inherit;font-size:13px;line-height:1.4;min-height:36px;padding:7px 9px;border:1px solid #cbd9e2;border-radius:7px;background:#fff;color:#294b50;box-sizing:border-box}
.layout-zoning-section .separation-tools,.layout-zoning-section .zone-group-actions{display:flex;flex-wrap:wrap;gap:6px}
@media(max-width:850px){.layout-zoning-section .zoning-workspace{grid-template-columns:1fr;max-width:100%}.layout-zoning-section .zoning-map{width:min(100%,calc(64dvh * var(--zoning-map-aspect,1)))}.layout-zoning-section .zoning-side-stack{max-width:600px}}

.zoning-map svg .zone-shape text{fill:#111;stroke:#fff;stroke-width:2.5;paint-order:stroke;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.zoning-map svg .zone-separation-handle{stroke-width:2}

.layout-issue-outline{fill:#d9363622;stroke:#d93636;stroke-width:3;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none}
.layout-issue-marker circle{fill:#c62828;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.layout-issue-marker text{fill:#fff;font:600 15px Arial,sans-serif}
.layout-issue-panel{border:1px solid #dfbc72;border-radius:10px;padding:12px;background:#fff8e8;color:#805b12;margin:12px 0;font-size:13px}
.layout-issue-panel p{margin:5px 0 8px;font-size:12px}
.layout-issue-panel button{display:flex;align-items:center;gap:8px;background:transparent;border:0;color:inherit;font:inherit;text-align:left;padding:6px 0;cursor:pointer}
.layout-issue-panel button span{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:50%;background:#c62828;color:#fff;font-size:12px}
.product-choice-label{font-size:12px;margin:10px 0;color:#283840}
.product-photo-picker{position:relative;margin-top:5px}
.product-photo-picker>summary,.product-choice-current{display:flex;align-items:center;gap:9px;padding:6px 9px;border:1px solid #cbd5dc;border-radius:6px;background:#fff;min-height:48px;cursor:pointer;list-style:none}
.product-photo-picker>summary::-webkit-details-marker{display:none}
.product-photo-picker>summary>span:nth-child(2){flex:1}
.product-photo-picker>summary:focus-visible,.product-photo-option:focus-visible{outline:2px solid #007ab5;outline-offset:2px}
.product-photo-picker img,.product-choice-current img{width:48px;height:42px;object-fit:contain;background:#f5f7f7;border-radius:4px;flex:none}
.product-choice-no-photo{width:48px;font-size:10px;color:#77828b;flex:none;text-align:center}
.product-photo-options{position:absolute;top:100%;left:0;right:0;margin-top:4px;max-height:330px;overflow:auto;background:#fff;border:1px solid #b9cad6;border-radius:7px;box-shadow:0 8px 24px #183b5026;z-index:30;padding:4px}
.product-photo-option{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:white;padding:7px;border-radius:4px;color:#243843;cursor:pointer}
.product-photo-option:hover,.product-photo-option.is-selected{background:#e9f3f9}
.product-photo-option>span{min-width:0}
.product-photo-option b{display:block;font-size:12px;line-height:1.35}
.product-photo-option small{display:block;font-size:11px;margin-top:3px;color:#627580}

/* Align zoning and furniture tool columns across the full workspace. */
.furniture-layout-page .layout-zoning-section .zoning-workspace{max-width:none;width:100%;grid-template-columns:minmax(0,1fr) 290px;gap:18px}
.furniture-layout-page .layout-zoning-section .analysis-head{max-width:none}
.furniture-layout-page .layout-zoning-section .zoning-map{max-width:calc(64dvh * var(--zoning-map-aspect,1));justify-self:start}
.furniture-option-card{display:flex;flex-direction:column;gap:10px;min-width:0}
.furniture-option-card .furniture-option-button{width:100%;flex:1}
.furniture-option-lock{width:100%;white-space:normal}
@media(max-width:1080px) and (min-width:851px){.furniture-layout-page .layout-zoning-section .zoning-workspace{grid-template-columns:minmax(0,1fr) 260px}}
@media(max-width:850px){.furniture-layout-page .layout-zoning-section .zoning-workspace{grid-template-columns:1fr}.furniture-layout-page .layout-zoning-section .zoning-side-stack{max-width:none}.furniture-option-lock{font-size:12px;padding:9px 6px}}

.layout-tool-column{min-width:0;display:flex;flex-direction:column;gap:18px;position:sticky;top:90px}
.layout-tool-column .layout-toolrail{position:static;max-height:calc(100vh - 177px)}
.furniture-layout-page .layout-regenerate-button,.layout-zoning-section .layout-regenerate-button{width:100%;min-height:52px;padding:13px 16px;font-family:inherit;font-size:15px;font-weight:600;line-height:1.4;border-radius:8px;white-space:normal}
@media(max-width:850px){.layout-tool-column{position:static}.layout-tool-column .layout-toolrail{max-height:none}}

/* Match the registered source-plan scale in both drawing panels. */
.furniture-layout-page .layout-zoning-section .zoning-map{justify-self:center;margin-inline:auto;max-width:none;max-height:none}

/* Shared primary layout actions and section separation. */
.furniture-layout-page .zoning-confirm-footer .button{width:100%;min-height:52px;padding:13px 16px;font-family:inherit;font-size:15px;font-weight:600;line-height:1.4;border-radius:8px}
.furniture-layout-page .layout-zoning-section{padding-bottom:24px;margin-bottom:24px;border-bottom:1px dashed #cbd5dc}

.furniture-layout-page [data-action="generate-furniture-test-fit"]:disabled{background:#e8ebed;border-color:#dce1e5;color:#77818a;opacity:1;cursor:not-allowed}

.design-quick-view-trigger{border:0;padding:0;background:transparent;border-radius:8px;cursor:zoom-in;line-height:0;flex-shrink:0}
.design-quick-view-trigger img{display:block}
.design-quick-view{border:0;padding:0;background:transparent;max-width:94vw;max-height:92dvh;overflow:visible}
.design-quick-view::backdrop{background:rgba(12,20,28,.78)}
.design-quick-view>img{display:block;max-width:94vw;max-height:88dvh;width:auto;height:auto;object-fit:contain;border-radius:10px;box-shadow:0 12px 50px #0006}
.design-quick-view-close{position:absolute;right:12px;top:12px;width:38px;height:38px;border:0;border-radius:50%;background:#fff;color:#17191c;font-size:27px;line-height:1;cursor:pointer}

/* Space selection has one consistent list and a separate scrolling body. */
.space-picker-modal{width:min(720px,100%);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;overflow:hidden;padding:0;border-radius:16px}
.space-picker-modal .modal-head{flex:none;margin:0;padding:22px 24px 18px;align-items:center;background:#fff}
.space-picker-modal .modal-head .kicker{margin:0 0 6px}
.space-picker-modal .modal-head h2{font-size:24px}
.space-picker-modal #closeModal{display:grid;place-items:center;flex:none;width:36px;height:36px;padding:0;font-size:24px;color:var(--muted)}
.space-picker-modal #modalBody{min-height:0;overflow-y:auto;padding:20px 24px 24px;scrollbar-gutter:stable}
.space-picker-modal .project-picker{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.space-picker-modal .project-picker>.choice{display:block;width:100%;min-width:0;margin:0;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;white-space:normal;line-height:1.4}
.space-picker-modal .project-picker>.choice b{display:block;font-size:15px;font-weight:650;overflow-wrap:anywhere}
.space-picker-modal .project-picker>.choice small{display:block;margin-top:7px;font-size:13px;color:var(--muted)}
.space-picker-modal .project-picker>.choice:hover{background:#f2f8fc;border-color:var(--teal)}
.space-picker-modal .project-picker>.choice:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
@media(max-width:520px){.space-picker-modal .modal-head{padding:18px 16px}.space-picker-modal #modalBody{padding:16px}.space-picker-modal .project-picker>.choice{padding:14px}}

.generation-progress-header{display:flex;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap}.generation-progress-header strong{font-size:17px;min-width:42px}.generation-progress-estimate{margin-left:auto;color:var(--muted);font-size:12px}.furniture-fit-progress>small{display:block;margin-top:6px}
.flow-node-bar .flow-service-box{fill:#f3b65f55;stroke:#a96716}.flow-node-ordering .flow-service-box{fill:#f6d78155;stroke:#a87812}.flow-node-food_pass .flow-service-box{fill:#a3d8ae55;stroke:#31764b}.flow-service-box{stroke-width:3;vector-effect:non-scaling-stroke}.flow-node-marker.selected .flow-service-box{stroke-width:5}.flow-node-marker[data-flow-area="true"] text{font-size:12px;stroke-width:2px;font-weight:650}.flow-tool-icon-bar,.flow-tool-icon-ordering,.flow-tool-icon-food_pass{clip-path:none!important;border-radius:2px!important;transform:none!important}

.layout-issue-panel--hard{border-color:#e8a6a6;background:#fff5f5;color:#8e2020}
.layout-issue-panel button.layout-issue-row--review{color:#805b12}
.layout-issue-panel button.layout-issue-row--hard{color:#8e2020}
.layout-issue-panel .layout-issue-row--review span{background:#a87613}
.layout-issue-panel .layout-issue-row--hard span{background:#c83232}

/* Reserve a stable feedback area so drag messages cannot move the plan. */
[data-live-layout-status]{box-sizing:border-box;line-height:1.6;overflow-wrap:anywhere;scrollbar-gutter:stable;}

.flow-lock-control{padding:10px 0 14px;border-bottom:1px solid #dce5eb;margin-bottom:12px}.flow-lock-control .button{width:100%}.flow-lock-control p{margin:6px 0 0}
.zoning-flow-stage.is-locked .whole-floor-flow,.zoning-flow-stage.is-locked .analysis-head{filter:none;opacity:1}

.flow-area-resize{fill:#fff;stroke:#0075ad;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:all}

.flow-marker-legend{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #dce5eb;border-radius:6px;font-size:12px;color:#536b76}.flow-tool-icon-toilet{display:inline-block;width:12px;height:12px;border-radius:50%;background:#b799d1;border:2px solid #8762ad}

.layout-source-notes{margin:12px 0;padding:10px 14px;border:1px solid #d8dfe6;border-radius:10px;background:#fafbfc;color:#586776;font-size:13px}.layout-source-notes summary{cursor:pointer;font-weight:600}.layout-source-notes p{font-size:12px}.layout-source-notes button{display:flex;gap:8px;text-align:left;background:transparent;border:0;color:inherit;padding:7px 0;font:inherit;cursor:pointer}
.overview-schemes,.overview-area-tools{margin-top:20px;padding-top:18px;border-top:1px solid #d3e0e4}.overview-schemes .button{display:flex;flex-direction:column;text-align:left;white-space:normal;width:100%;margin:8px 0;gap:5px}.overview-schemes small{font-size:12px;font-weight:400;line-height:1.45}.overview-area-tools label{display:block;margin:12px 0}.overview-area-tools select,.overview-area-tools input[type="text"]{display:block;width:100%;margin-top:7px;padding:9px;border:1px solid #cbdbe4;border-radius:6px}.overview-zone{cursor:grab}.overview-zone.selected>rect{stroke:#0075ad}.flow-node-entrance circle{fill:#fff1cf;stroke:#ae7412}.flow-tool-icon-entrance{border-color:#ae7412!important;background:#fff1cf!important}.flow-node-entrance:after{content:'Main Entry'}
.overview-scheme-preview{width:100%;height:150px;background:#fff;border-radius:5px;pointer-events:none}.overview-scheme-preview .overview-zone{pointer-events:none}.overview-scheme-preview text{font-size:26px}
.overview-schemes{margin:0 0 20px;padding:0;border:0}.overview-schemes h4{margin:0 0 5px}.overview-schemes>p{margin:0 0 12px}.overview-scheme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.overview-scheme-grid>.button{margin:0;align-items:stretch;padding:12px;justify-content:flex-start}.overview-scheme-grid .overview-scheme-preview{height:165px}.overview-scheme-grid b{font-size:14px;line-height:1.35;min-height:38px}.overview-scheme-grid small{font-size:12px;line-height:1.45}.overview-scheme-grid .button.secondary{background:#fff}.overview-scheme-grid .button.primary small{color:#fff}@media(max-width:850px){.overview-scheme-grid{grid-template-columns:1fr}.overview-scheme-grid .overview-scheme-preview{height:190px}}
.zoning-flow-stage>.overview-schemes{margin-top:24px;padding-top:20px;border-top:1px solid #d3e0e4}
.overview-planning-questions{margin-top:22px;padding:14px 18px;background:#fff;border:1px solid #d3e0e4;border-radius:9px}.overview-planning-questions>summary{cursor:pointer;font-weight:600;color:#526a78}.overview-planning-questions .planning-questions{margin-top:14px}

.overview-area-tools select,.overview-area-tools input[type="text"]{box-sizing:border-box;min-height:46px;font:inherit;background:#fff;}

#flowEditorSvg.has-design-selection .flow-node-marker circle{fill:#e6e8ea;stroke:#7f898f;}
#flowEditorSvg.has-design-selection .flow-node-marker .flow-service-box{fill:#c6cbd055;stroke:#7f898f;}
#flowEditorSvg.has-design-selection .flow-node-marker text{fill:#626d74;}
#flowEditorSvg.has-design-selection .flow-node-marker .flow-area-resize{fill:#f4f5f6;stroke:#7f898f;}

/* Matching comparison windows for seating strategy and furniture. */
@media(min-width:851px){.furniture-layout-page .layout-zoning-section .zoning-workspace,.furniture-layout-page .layout-workspace{grid-template-columns:minmax(0,1fr) 250px}}
.furniture-layout-page .layout-large-plan{padding:0;overflow:hidden}

.flow-lock-control .flow-reset-button{margin-bottom:10px}

.overview-main-actions{display:flex;flex-direction:column;gap:12px}.overview-main-actions .overview-primary-action{width:100%;min-height:50px;font-size:16px;font-weight:700;margin:0}.overview-main-actions p{margin:0;font-size:13px}

.overview-area-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.overview-area-fields label{min-width:0}.overview-area-fields input,.overview-area-fields select{width:100%;min-width:0;box-sizing:border-box}

/* Keep overview editing tools compact so zoning alternatives remain nearby. */
.zoning-page .flow-toolrail{padding:12px;gap:8px}
.zoning-page .overview-main-actions{gap:8px;padding:0 0 10px;margin-bottom:8px}
.zoning-page .overview-main-actions .overview-primary-action{min-height:44px;font-size:15px;padding:9px 12px}
.zoning-page .flow-marker-tools{gap:5px}
.zoning-page .flow-marker-tools button{min-height:29px;padding:5px 8px;font-size:11px;line-height:1.2}
.zoning-page .flow-tool-modes{margin:0}
.zoning-page .flow-tool-modes button{min-height:29px;padding:5px 8px;font-size:12px}
.zoning-page .overview-area-tools{margin-top:8px;padding-top:10px}
.zoning-page .overview-area-tools h4{margin:0 0 6px;font-size:14px}
.zoning-page .zone-group-actions{gap:5px;flex-wrap:nowrap}
.zoning-page .zone-group-actions .button{padding:6px 9px;min-height:32px;font-size:12px;white-space:nowrap}
.zoning-page .overview-area-tools label{margin:7px 0;font-size:12px}
.zoning-page .overview-area-fields{gap:8px}
.zoning-page .overview-area-fields input,.zoning-page .overview-area-fields select{min-height:34px;margin-top:4px;padding:6px 8px;font-size:13px}
.zoning-page .overview-main-actions p{font-size:12px;line-height:1.3}

.zoning-page .overview-main-actions .overview-primary-action:disabled,
.zoning-page .flow-confirm-footer .workflow-lock-button:disabled{
  background:#e4e8eb;border-color:#d3dbe1;color:#7c8993;opacity:1;cursor:not-allowed;
}

body:has(.zoning-page) .main-content>.topbar{min-height:28px;padding-top:4px;padding-bottom:4px;margin-bottom:0}
.zoning-page .overview-final-lock{margin-top:8px;padding-top:10px;border-top:1px solid #dce5eb}
.zoning-page .zoning-flow-stage{padding-top:12px}

.plan-preparing-placeholder{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#fff;border:1px solid #dce5eb;border-radius:10px}.plan-preparing-placeholder p{margin:0;color:#647482}

.plan-status-strip{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 14px;margin-bottom:12px;background:#edf6fc;border:1px solid #cbdfe9;border-radius:8px;font-size:13px}.plan-status-strip .flow-analysis-spinner{width:18px;height:18px}.plan-status-strip>span:last-child{color:#526b7c}

.plan-view-tools{padding:10px 12px;margin-top:12px;border:1px solid #d3e0e4;border-radius:10px;background:#f8fafb}
.plan-view-tool-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:4px}
.plan-view-tool-buttons .button{width:100%;min-height:40px;font-size:13px}
.plan-view-zoom{display:flex;align-items:center;gap:12px;margin-top:10px}
.plan-view-zoom input{flex:1;min-width:0;accent-color:#0075ad}

/* Compact furniture choices keep the drawing close to its controls. */
.furniture-layout-page .furniture-option-button{min-height:64px;padding:9px 12px;gap:3px}
.furniture-layout-page .furniture-option-button strong{font-size:16px}
.furniture-layout-page .furniture-option-card{gap:6px}
.furniture-layout-page .furniture-option-lock{min-height:36px;padding:8px 12px;font-size:13px}
.furniture-layout-page .layout-canvas-column > .plan-view-tools{margin-top:10px;margin-bottom:12px}

/* Empty drag feedback must not reserve space above the furniture drawing. */
.furniture-layout-page [data-live-layout-status]:empty{display:none}
.furniture-layout-page .furniture-option-switch{margin-bottom:10px}

/* Furniture selection follows visible symbols, never the interaction rectangle. */
.furniture-layout-page .plan-object > .plan-hitbox{stroke:none!important;fill:transparent!important}
.furniture-layout-page .plan-object.selected .furniture-symbol{filter:drop-shadow(0 0 1px #c08a2f)}

.strategy-obstacle-list{max-height:200px;overflow:auto;margin:8px 0}.strategy-obstacle-list>div{display:flex;gap:5px;margin:4px 0}.strategy-obstacle-list>div>button:first-child{flex:1;text-align:left}.strategy-obstacle{cursor:move;touch-action:none}.strategy-obstacle.is-selected polygon{stroke-width:4}

.layout-tool-column>.layout-regenerate-button:disabled{background:#b8bec2;border-color:#b8bec2;color:#fff;opacity:1;cursor:not-allowed}

.sidebar{background:#34383d}

.layout-workspace.is-layout-locked .layout-canvas-column,.layout-workspace.is-layout-locked .layout-toolrail{opacity:.55;filter:grayscale(1);user-select:none}
.layout-workspace .layout-tool-column .is-layout-disabled{background:#d9dde0!important;border-color:#d9dde0!important;color:#77818a!important;opacity:1!important;cursor:not-allowed}

.product-main-section{margin:24px 0;padding:18px 0;border-top:1px solid #dce1e5}.product-main-section>h2{font-size:20px;margin:0 0 16px}

.product-feedback-footer{display:block;width:100%;max-width:none;margin:24px 0 0;padding:0}.product-feedback-footer>.product-check-details{width:100%;max-width:none;margin:0}

.paint-colour-options{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.paint-colour-option{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #d6dfe7;border-radius:8px;background:white;min-width:260px}.paint-colour-option small{display:block;color:#647381}.paint-swatch{width:52px;height:52px;border-radius:6px;border:1px solid #ddd}.paint-chip{display:inline-block;width:24px;height:24px;border:1px solid #ddd;vertical-align:middle}.paint-colour-option a{margin-left:auto;font-size:12px}

.paint-palette-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:720px}.paint-palette-toolbar .button{padding:8px 14px;font-size:14px}.paint-palette-note{margin:8px 0 0}.paint-colour-options{margin-bottom:10px}

.paint-selection-schedule{margin-top:16px}.paint-selection-schedule th:first-child{width:60px}.paint-selection-schedule td:last-child{width:42%}.paint-area-input{width:100%;min-width:220px;padding:10px 12px;border:1px solid #ccd8e2;border-radius:6px;background:white;font:inherit;color:inherit}.paint-selection-schedule .paint-chip{margin-right:8px}

.paint-selection-schedule .paint-chip{width:56px;height:56px;margin-right:14px;border-radius:6px;vertical-align:middle}.paint-selection-schedule td{padding-top:14px;padding-bottom:14px}

.product-design-workspace{display:grid;grid-template-columns:minmax(0,42fr) minmax(0,58fr);gap:22px;align-items:start}.product-reference-column{position:sticky;top:96px;min-width:0}.product-reference-stack{display:grid;gap:16px}.product-reference-stack>.card{margin:0;padding:16px}.product-reference-stack h3{margin:0 0 12px}.product-reference-stack .design-reference-photo{display:block;width:100%;height:27vh;max-height:300px;object-fit:contain}.product-reference-stack>.card>p{font-size:13px;line-height:1.45;margin:10px 0 0}.product-reference-stack svg{display:block;max-height:42vh;width:100%}.product-selection-column{min-width:0}.product-selection-column .block-products-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-selection-column .product-main-section:first-of-type{margin-top:16px}.product-selection-column .chosen-product-photo{max-height:160px;object-fit:contain}.product-selection-column .card{padding:16px}.product-selection-column .paint-palette-toolbar{max-width:none}.product-selection-column .paint-area-input{min-width:140px}.product-selection-column .paint-selection-schedule td:last-child{width:36%}@media(max-width:1000px){.product-design-workspace{grid-template-columns:1fr}.product-reference-column{position:static}.product-reference-stack{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.product-reference-stack{grid-template-columns:1fr}.product-selection-column .block-products-grid{grid-template-columns:1fr}}

/* Keep both references visible beside the product selection. */
.product-reference-stack .design-reference-photo{height:22vh;max-height:250px}
.product-reference-stack svg{max-height:35vh}


.product-reference-stack>.product-concept-reference{height:calc(22vh + 144px);padding:10px}.product-reference-stack>.product-plan-reference{height:calc(35vh + 78px);padding:10px}.product-reference-stack .design-reference-photo,.product-reference-stack svg{height:100%;max-height:none;width:100%;object-fit:contain}


.product-design-workspace{grid-template-columns:minmax(0,28fr) minmax(0,72fr);gap:18px}.product-reference-stack>.product-plan-reference{height:calc(42vh + 78px);padding:6px}.product-reference-stack>.product-concept-reference{padding:6px}@media(max-width:1000px){.product-design-workspace{grid-template-columns:1fr}}


.product-reference-stack>.product-concept-reference,.product-reference-stack>.product-plan-reference{height:auto;padding:6px}.product-reference-stack .design-reference-photo{height:auto;width:100%;max-height:none}.product-reference-stack>.product-plan-reference>svg{height:auto;width:100%;max-height:none}


.product-selection-column .block-products-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.product-selection-column .chosen-product-card{min-width:0}.product-selection-column input,.product-selection-column select{max-width:100%;box-sizing:border-box}@media(max-width:650px){.product-selection-column .block-products-grid{grid-template-columns:1fr}}


.furniture-mapping-panel{padding:12px 0;border-bottom:1px solid #dce5e8}.furniture-family-legend{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.furniture-family-legend span{display:flex;align-items:center;gap:6px;font-size:12px}.furniture-family-legend i,.product-family-chip{display:inline-block;width:16px;height:16px;border-radius:4px;flex-shrink:0;border:1px solid #ffffff}.product-family-chip{margin-right:5px}.furniture-assignment-list{display:grid;gap:8px;margin-top:12px}.furniture-assignment-list>div{display:grid;grid-template-columns:50px 1fr 1fr 1fr;gap:8px;align-items:center}.furniture-assignment-list select{width:100%;font-size:12px}

/* Keep both design references fully visible within the available desktop viewport. */
@media(min-width:1001px){.product-reference-stack{height:calc(100dvh - 220px);grid-template-rows:minmax(0,43fr) minmax(0,57fr);gap:12px}.product-reference-stack>.product-concept-reference,.product-reference-stack>.product-plan-reference{height:100%;min-height:0;overflow:hidden;padding:6px;box-sizing:border-box}.product-reference-stack .design-reference-photo,.product-reference-stack>.product-plan-reference>svg{width:100%;height:100%;max-height:100%;object-fit:contain}}
.tabletop-size-list>details{border-bottom:1px solid #e0e6eb;padding:10px 0}.tabletop-size-list summary{cursor:pointer;font-size:13px;font-weight:600}.tabletop-size-list .product-choice-label{margin-top:10px}

.flooring-product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.flooring-product-card label{display:block;font-size:13px;font-weight:600;margin:12px 0 0}.flooring-product-card input,.flooring-product-card select{display:block;width:100%;box-sizing:border-box;margin-top:5px;padding:9px;border:1px solid #cbd8e1;border-radius:6px}.flooring-swatch{display:block;width:100%;height:150px;object-fit:contain;background:#f3f5f4}.flooring-price-row{display:flex;align-items:center;gap:16px}.flooring-price-row label{max-width:140px}.flooring-price-row span{font-size:13px}.flooring-add-row{display:flex;gap:10px;margin-top:14px}.flooring-add-row select{min-width:0;max-width:450px;padding:8px;border:1px solid #cbd8e1;border-radius:6px}

.product-section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;flex-wrap:wrap}.product-section-heading h2{margin:0}.category-budget{font-size:14px;color:#53646d}.category-budget b{font-size:18px;color:#214b5e;margin-left:8px}.category-budget small{font-size:12px}.product-selection-column .product-main-section>.product-section-heading{border-bottom:1px solid #dbe3e8;padding-bottom:12px}

.reference-zoom{display:block;width:100%;cursor:zoom-in;text-align:initial}.reference-expanded{display:flex;align-items:center;justify-content:center;width:100%;padding:0;border:0;background:white;cursor:zoom-out}.reference-expanded img,.reference-expanded svg{width:100%;height:74dvh;object-fit:contain;max-height:74dvh}.product-image-modal:has(.reference-expanded){width:min(96vw,1400px)}

.product-selection-column .block-product-card .chosen-product-photo{width:100%;height:140px;max-height:140px;aspect-ratio:auto;object-fit:contain}.product-selection-column .block-product-card[data-product-category="Tabletops"] .chosen-product-photo{object-fit:cover}
.project-total-summary{text-align:right;margin-left:auto;width:calc(72% - 9px);box-sizing:border-box}
.project-next-action{justify-content:flex-end}
@media(max-width:1000px){.project-total-summary{width:100%}}

.flooring-product-card .flooring-swatch{width:100%;height:180px;object-fit:cover}

.layout-zoning-section .analysis-head>[data-action='generate-zoning']{width:250px;flex:0 0 250px;min-height:52px}.layout-zoning-section [data-action='generate-zoning'].primary{color:#fff}@media(max-width:850px){.layout-zoning-section .analysis-head>[data-action='generate-zoning']{width:100%;flex-basis:auto}}

.layout-conflict-review-row{display:flex;align-items:center;gap:12px;margin:8px 0}.layout-conflict-review-row>button:first-child{flex:1;text-align:left}.layout-conflict-review-row>.button{flex:none;font-size:12px}

.layout-conflict-review-row>.button{min-width:140px;padding:10px 24px!important;white-space:nowrap;font-size:13px}

.product-selection-column .block-product-card .product-photo-preview,.product-selection-column .block-product-card .chosen-product-photo{background:#fff;border-radius:10px}

.product-selection-column .block-product-card[data-product-category='Chairs and stools'] .chosen-product-photo{display:block;width:100%;height:140px;max-height:140px;aspect-ratio:auto;object-fit:contain;background:#fff}

.layout-review-details,.layout-review-details summary,.layout-review-details p,.layout-review-details li,.layout-issue-panel,.layout-issue-panel summary,.layout-issue-panel p{ text-align:left; }
.layout-conflict-review-row{justify-content:flex-start;}
/* Enlarge standard booth references while retaining the full module and both ends. */
.booth-module-preview,.booth-module-enlarged{overflow:hidden;background:#fff;border-radius:10px}
.product-selection-column .block-product-card .booth-module-preview .chosen-product-photo,
.booth-module-enlarged .enlarged-product-photo{display:block;width:100%;max-width:none;height:auto;max-height:none;margin:0;object-fit:contain;background:#fff;border-radius:0}
/* Uniform product-photo height throughout Real Products; references retain their layout. */
.product-selection-column{--product-photo-height:140px}
.product-selection-column .chosen-product-photo,
.product-selection-column .block-product-card .chosen-product-photo,
.product-selection-column .block-product-card[data-product-category='Chairs and stools'] .chosen-product-photo,
.product-selection-column .block-product-card .booth-module-preview .chosen-product-photo,
.product-selection-column .flooring-product-card .flooring-swatch{display:block;width:100%;height:var(--product-photo-height);min-height:var(--product-photo-height);max-height:var(--product-photo-height);margin:0;aspect-ratio:auto;object-fit:contain;background:#fff}
.product-selection-column .block-product-card[data-product-category='Tabletops'] .chosen-product-photo,
.product-selection-column .flooring-product-card .flooring-swatch{object-fit:cover}
/* Fill the shared photo frame with chair views, trimming excess white space. */
.product-selection-column .block-product-card[data-product-category='Chairs and stools'] .chosen-product-photo{object-fit:cover;object-position:center}

.furniture-option-card .furniture-mode-control{background:#e9edf0;color:#50616e;border:1px solid #d5dde3;transition:background .15s,color .15s,border-color .15s}
.furniture-option-card .furniture-mode-control:not(:disabled):hover,.furniture-option-card .furniture-mode-control:not(:disabled):focus-visible{background:#007eae;color:#fff;border-color:#007eae}

.furniture-option-switch{align-items:start}
.furniture-option-card .furniture-option-button{min-height:105px;flex:none}
.layout-generation-message{margin-top:12px;padding:14px 18px;border:1px solid #ead5aa;background:#fff8eb;border-radius:12px;color:#765520}
.layout-generation-message p{margin:6px 0 0}

.product-render-status{margin:12px 0;padding:12px 14px;border-radius:10px;background:#eef4f7;color:#345566;overflow:hidden}
.product-render-status strong{display:block;font-size:17px;line-height:1.45}
.product-render-status.is-rendering{border:1px solid #8ec6de;background:#eaf6fc;color:#006b98}
.product-render-status.is-error{background:#fff5e8;color:#825520}
.product-render-track{height:8px;margin:10px 0;background:#cce3ee;border-radius:8px;overflow:hidden}
.product-render-track span{display:block;height:100%;background:#007fae;border-radius:8px;transition:width .3s}
.product-render-track .is-indeterminate{animation:product-preview-wait 1.5s ease-in-out infinite}
.product-render-detail{display:block;font-size:14px;line-height:1.45}
@keyframes product-preview-wait{from{transform:translateX(-100%)}to{transform:translateX(300%)}}
@media(prefers-reduced-motion:reduce){.product-render-track .is-indeterminate{animation:none;transform:translateX(90%)}}

/* Compact layout cards with prominent themes and adjacent actions. */
.workspace-page .furniture-option-card>.furniture-option-button{min-height:68px;padding:8px 12px;gap:3px;flex:none}
.furniture-option-card .furniture-theme-field{display:grid;gap:6px;margin:2px 0 4px;padding:10px;border:1px solid #c6dfe9;border-radius:9px;background:#eef6fa}
.furniture-theme-field>span{font-size:13px;font-weight:800;color:#00668e}
.furniture-theme-field select{width:100%;min-width:0;min-height:40px;padding:7px 9px;border:1px solid #8eb6cc;border-radius:7px;background:#fff;color:#193f54;font:inherit;font-size:14px;font-weight:650}
.furniture-theme-field select:focus-visible{outline:2px solid #007eae;outline-offset:2px}
.furniture-option-actions{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(68px,1fr);gap:8px}
.furniture-option-actions .button{min-width:0;min-height:38px;padding:7px 8px;font-size:13px;white-space:normal;line-height:1.25}
@media(max-width:600px){.furniture-option-actions{grid-template-columns:minmax(0,2fr) minmax(58px,1fr);gap:5px}.furniture-option-actions .button{padding:6px 4px;font-size:12px}}

/* Compact theme headers retain layout switching without separate option cards. */
.furniture-option-card .furniture-theme-field{margin:0;padding:9px 10px;gap:7px}
.furniture-option-card .furniture-theme-field.is-active{border-color:#347da9;box-shadow:inset 0 0 0 1px #347da9}
.furniture-theme-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:20px;padding:0;border:0;background:transparent;text-align:left;font:inherit;color:#00668e;cursor:pointer}
.furniture-theme-heading strong{font-size:13px;font-weight:800}
.furniture-theme-heading small{font-size:12px;color:#506d7c;white-space:nowrap}
.furniture-theme-heading:disabled{opacity:1;cursor:default}
.furniture-theme-heading:focus-visible{outline:2px solid #007eae;outline-offset:3px;border-radius:3px}

/* Fixed furniture layout direction cards. */
.furniture-option-card .furniture-theme-field{padding:0;min-height:46px;overflow:hidden;background:#edf6fc;border:1px solid #b9d7eb;border-radius:10px}
.furniture-option-card .furniture-theme-field.is-active{background:#dfeffc;border-color:#1678b8;box-shadow:inset 0 0 0 1px #1678b8}
.furniture-theme-heading{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;min-height:46px;height:100%}
.furniture-theme-heading strong{font-size:16px;line-height:1.25;font-weight:800;color:#075b8e}
.furniture-theme-heading small{font-size:12px;line-height:1.3;color:#496b80}
.furniture-theme-heading:not(:disabled):hover{background:#d9ecfa}
.furniture-theme-heading:focus-visible{outline:3px solid #1678b8;outline-offset:-4px;border-radius:10px}
@media(max-width:700px){.furniture-theme-heading{padding:10px;min-height:44px;gap:8px}.furniture-theme-heading strong{font-size:14px}}

/* Center titles independently of the right-aligned seat count. */
.furniture-theme-heading{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px}
.furniture-theme-heading strong{grid-column:2;text-align:center}
.furniture-theme-heading small{grid-column:3;justify-self:end}

.booth-style-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.booth-style-choice{padding:0;border:1px solid #ccdce4;border-radius:8px;overflow:hidden;background:#fff;text-align:left;cursor:pointer;color:#224555}.booth-style-choice img{display:block;width:100%;height:120px;object-fit:contain;background:#f5f7f8}.booth-style-choice span{display:block;padding:8px;font-size:12px}.booth-style-choice.is-selected{border:2px solid #0879ad;background:#eaf6fc}.booth-style-choice:focus-visible{outline:3px solid #0879ad;outline-offset:2px}

/* Ordered space floor-plan controls. */
.space-floor-page .floor-setup-grid{align-items:start}
.space-floor-page .floor-side{gap:14px;grid-template-columns:1fr}
.space-floor-page .region-confirm-row{display:grid;gap:8px;margin:12px 0;padding:0;border:0;background:none}
.space-floor-page .region-confirm-row p{margin:0}
.space-floor-page .region-confirm-row .button{width:100%}
.space-floor-page .floor-next-step{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-top:14px;padding:16px}
.space-floor-page .floor-source-link{display:block;margin-top:14px;font-size:12px}
.space-floor-page .floor-source-photo{height:auto;max-height:240px;object-fit:contain;background:#f3f7f8}
.space-floor-page .floor-side textarea{width:100%;box-sizing:border-box}
.space-floor-page .region-status{display:block;width:fit-content;margin:8px 0}
@media(max-width:700px){.space-floor-page .floor-next-step{align-items:stretch;flex-direction:column}.space-floor-page .floor-main-card .floor-viewport{min-height:320px}}

.space-floor-page .region-confirm-row{grid-template-columns:minmax(0,1fr);padding:0!important;background:transparent!important;box-shadow:none!important}.space-floor-page .region-confirm-row>div{display:none}.space-floor-page .region-confirm-row>button{width:100%;min-width:0}.space-floor-page .floor-side>.card>[data-region-action="resolve"]{width:100%}
.space-floor-page .photo-viewpoint-actions:has(>button:only-child){grid-template-columns:minmax(0,1fr)}.space-floor-page .photo-viewpoint-actions .button{white-space:normal;min-width:0;width:100%;line-height:1.35}

.space-floor-page .floor-toolbar .floor-edit-drawing{margin-left:auto;font-size:13px;font-weight:700;padding:9px 14px;white-space:nowrap}
@media(max-width:600px){.space-floor-page .floor-toolbar .floor-edit-drawing{margin-left:0}}

/* Consistent confirmed/editable controls across the design workflow. */
.space-floor-page button:disabled,.space-floor-page input:disabled,.furniture-option-actions button:disabled,.product-next-action button:disabled{background:#e8edf0!important;border-color:#d8e0e5!important;color:#82909a!important;cursor:not-allowed;box-shadow:none}
.space-floor-page .floor-dimension input:disabled{opacity:1}
.furniture-option-actions .furniture-lock-control:not(:disabled){background:#087eb5;color:white;border-color:#087eb5}

/* Compact club home: shared setup first, independent spaces below. */
.club-spaces-section{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px}.club-spaces-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px}.club-spaces-heading h2{font-size:22px;margin:3px 0 5px}.club-spaces-heading p{font-size:13px;color:var(--muted);margin:0}.club-spaces-heading .eyebrow{font-size:11px;letter-spacing:.13em;font-weight:800;color:#087eb5}.space-count{display:inline-block;background:#edf4f8;border-radius:8px;padding:3px 8px;font-size:13px;vertical-align:middle;color:#58707e}.club-spaces-heading .create-space-control{width:min(460px,50%)}.club-spaces-empty{display:flex;align-items:center;gap:16px;background:#f8fbfc;border:1px dashed #c9dce6;border-radius:10px;padding:26px}.club-spaces-empty h3{margin:0 0 6px;font-size:17px}.club-spaces-empty p{margin:0;color:var(--muted);font-size:13px}.empty-space-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#e9f4fa;color:#087eb5;font-size:25px;flex-shrink:0}.club-spaces-section .saved-spaces-grid{margin-bottom:0}@media(max-width:900px){.club-spaces-heading{align-items:stretch;flex-direction:column}.club-spaces-heading .create-space-control{width:100%}}@media(max-width:600px){.club-spaces-section{padding:18px}.club-spaces-empty{padding:18px}.club-spaces-heading .create-space-control{grid-template-columns:1fr}}
@media(max-width:900px){.app-shell:has(.spaces-page){display:block}.app-shell:has(.spaces-page)>#sharedSidebar{display:none}.app-shell:has(.spaces-page)>.main-content{margin-left:0;width:100%;min-width:0}}

.space-floor-page .floor-toolbar .floor-edit-drawing{margin-left:0;background:#edf0f2;border:1px solid #cfd9df;color:#415b69;text-decoration:none;box-shadow:none}.space-floor-page .floor-toolbar .floor-edit-drawing:hover{background:#e2e8ec;border-color:#aebfc9}

/* Keep local regeneration guidance beside the actions without a spare row. */
.actions.local-regenerate-toolbar{display:flex;flex-wrap:nowrap;align-items:center;gap:12px}
.local-regenerate-toolbar>button{flex:0 0 auto}
.local-regenerate-toolbar .local-regenerate-help{flex:1 1 auto;min-width:0;margin:0;line-height:1.4;font-size:12px}
@media(max-width:720px){.actions.local-regenerate-toolbar{flex-wrap:wrap}.local-regenerate-toolbar .local-regenerate-help{flex-basis:100%}}

/* Unified controls: white at rest; blue only while hovering an enabled control. */
body :is(button,.button,a[role="button"],input[type="button"],input[type="submit"]){background:#fff!important;background-image:none!important;color:#365361!important;border-color:#ccd8e0!important;transition:background-color .15s ease,color .15s ease,border-color .15s ease}
body :is(button,.button,a[role="button"],input[type="button"],input[type="submit"]):is(.active,.is-active,.selected,.is-selected,[aria-pressed="true"],[aria-checked="true"]){border-color:#347fb2!important;box-shadow:inset 0 0 0 1px #347fb2}
body .furniture-option-card .furniture-theme-field{background:#fff!important}
body :is(button,.button,a[role="button"]):not(:disabled):not([aria-disabled="true"]):hover{background:#347fb2!important;color:#fff!important;border-color:#347fb2!important}
body :is(button,.button,a[role="button"]) :is(strong,small,span){color:inherit}
body :is(button,.button,a[role="button"]):focus-visible{outline:2px solid #347fb2;outline-offset:3px}
body :is(button,.button,input[type="button"],input[type="submit"]):disabled,body [role="button"][aria-disabled="true"]{background:#fff!important;color:#a4adb4!important;border-color:#e0e5e9!important;box-shadow:none!important;cursor:not-allowed}
body .topbar nav a,body .topbar nav a.active{background:#fff!important;color:#365361!important}
body .topbar nav a:hover{background:#347fb2!important;color:#fff!important}

/* Readable sidebar labels on the white workflow controls. */
body #sharedSidebar .nav-item{opacity:1!important;color:#2f4654!important}
body #sharedSidebar .nav-item :is(span,small){color:inherit!important;opacity:1!important}
body #sharedSidebar .nav-item.unavailable{background:#fff!important;color:#707d86!important;opacity:1!important}
body #sharedSidebar .nav-item:not(.unavailable):hover{background:#347fb2!important;color:#fff!important}
body #sharedSidebar .nav-item.unavailable:hover{background:#fff!important;color:#707d86!important}
body #sharedSidebar .nav-item.active{color:#245b7b!important}
body #sharedSidebar .nav-item.active:hover{color:#fff!important}
body #sharedSidebar .nav-item{background:#fff!important}
body #sharedSidebar .nav-item:hover:not(.unavailable){background:#347fb2!important;color:#fff!important}

/* Current workflow step: clearly selected, like the Design Studio tab. */
body #sharedSidebar .nav-item.active{background:#eaf4fc!important;border:1px solid #4b91c7!important;border-radius:9px;color:#245d86!important;box-shadow:inset 0 0 0 1px #c8e1f4!important}
body #sharedSidebar .nav-item.active::before{display:none!important}
body #sharedSidebar .nav-item.active :is(span,small){color:inherit!important;opacity:1!important}
body #sharedSidebar .nav-item.active:hover{background:#347fb2!important;border-color:#347fb2!important;color:#fff!important}

/* Neutral utility accents keep attention on the plan. */
body .customer-avatar{background:#e5e7e9!important;color:#46515a!important}
body input[type="range"],body .plan-view-zoom input{accent-color:#828a91!important}
body .status-dot.ok{background:#aab2b7;box-shadow:0 0 0 4px rgba(170,178,183,.12)}
/* Keep selection and viewing actions together below the drawing. */
.plan-view-tools .plan-view-tool-buttons{display:flex;flex-wrap:wrap;gap:8px}
.plan-view-tools .plan-view-tool-buttons>.button{flex:1 1 130px;min-width:0;white-space:normal}
.plan-view-tools .local-regenerate-help{display:block;font-size:12px;margin:4px 0;color:#687780}
.plan-view-tools .local-regenerate-help:empty{display:none}
/* Keep furniture option labels and actions readable in narrow workspaces. */
.furniture-layout-page .furniture-theme-heading{grid-template-columns:minmax(0,1fr) auto;gap:8px}
.furniture-layout-page .furniture-theme-heading strong{grid-column:1;min-width:0}
.furniture-layout-page .furniture-theme-heading small{grid-column:2}
@media(max-width:600px){.furniture-layout-page .furniture-option-switch{grid-template-columns:minmax(0,1fr)}}

/* Zoning option labels need the full card width on narrow screens. */
@media(max-width:600px){.space-floor-page .furniture-option-switch{grid-template-columns:minmax(0,1fr)}.space-floor-page .furniture-option-actions .button{min-height:44px}}
