/* Presentation only. Every colour comes from the existing Tahanan styles.
   No DOM restructuring, model changes or interaction overrides. */
:root{
 --ui-brand:#214e40;--ui-accent:#527f6f;--ui-ink:#22362f;
 --ui-muted:#63746a;--ui-page:#f6f8f5;--ui-surface:#fff;
 --ui-soft:#fafbf8;--ui-selected:#edf3e9;--ui-canvas:#edf2e8;
 --ui-border:#dce3dd;--ui-focus:#ab792d;
 --ui-radius:12px;--ui-control-radius:8px;
 --ui-shadow:0 2px 5px #214e4004,0 12px 30px #214e4005;
 --ui-shadow-floating:0 4px 20px #214e4014;
 --ui-space-1:4px;--ui-space-2:8px;--ui-space-3:12px;
 --ui-space-4:16px;--ui-space-5:24px;--ui-space-6:32px;
}
.concept-return{margin-bottom:16px}
body{background:var(--ui-page);color:var(--ui-ink);line-height:1.55;-webkit-font-smoothing:antialiased}
body>header{height:80px;padding:0 32px;gap:32px;background:var(--ui-surface)}
.brand{font-size:30px;letter-spacing:-1.3px;color:var(--ui-brand)}
.header-note{color:var(--ui-muted);font-size:12px;letter-spacing:.15px}
.prototype{color:var(--ui-muted);background:var(--ui-soft);border-color:var(--ui-border);font-size:11px;padding:7px 12px}
.app,.build-mode .app{grid-template-columns:224px minmax(0,1fr)}
.app>aside{padding:32px 18px 24px;background:var(--ui-soft);border-right:1px solid var(--ui-border)}
.project-label{font-size:10px;letter-spacing:1.6px;color:var(--ui-muted);line-height:1.5}
.app>aside h2{font:700 18px/1.4 Manrope,sans-serif;letter-spacing:-.45px;margin:14px 8px 10px}
.app>aside>p{font-size:12px;line-height:1.8;color:var(--ui-muted);margin:0 8px;max-width:180px}
.app>aside .project-label{margin:0 8px}
#steps{margin:30px 0 0;display:flex;flex-direction:column;gap:6px}
#steps button{min-height:54px;padding:12px 13px;border:1px solid transparent;border-radius:9px;font-size:13px;line-height:1.4;color:var(--ui-muted);gap:12px;text-align:left;transition:background .15s,border-color .15s,color .15s}
#steps button:hover{background:var(--ui-selected);color:var(--ui-brand)}
#steps button.active{background:var(--ui-brand);color:var(--ui-surface);border-color:var(--ui-brand);box-shadow:0 4px 10px #214e4010}
.stepnum{flex-shrink:0;width:26px;height:26px;font-size:11px;border:1px solid var(--ui-border);background:var(--ui-surface);color:var(--ui-muted)}
#steps .active .stepnum{background:var(--ui-surface);color:var(--ui-brand);border-color:var(--ui-surface)}
.aside-bottom{padding:42px 9px 0;color:var(--ui-muted)}.aside-bottom strong{font-size:12px;line-height:1.7;font-weight:500}
.app main{padding:36px 36px 32px;max-width:1450px;margin:0 auto;min-width:0}
.topline{font-size:10px;letter-spacing:1.7px;font-weight:700;color:var(--ui-accent);margin-bottom:22px;line-height:1.5}
h1{font:700 clamp(28px,2.7vw,38px)/1.22 Manrope,sans-serif;letter-spacing:-1.3px;max-width:100%;margin-bottom:12px}
h2{font-family:Manrope,sans-serif;letter-spacing:-.55px;line-height:1.4}
.intro{font-size:14px;line-height:1.8;color:var(--ui-muted);margin-bottom:30px;max-width:850px}
.workspace{gap:24px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.panel,.budget-presets,.phase-concept,.concept{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}
.panel{padding:28px}.panel h3{font:700 15px/1.5 Manrope,sans-serif;letter-spacing:-.25px;margin:0 0 24px;color:var(--ui-brand)}
.panel>h3:not(:first-child){margin-top:30px;padding-top:24px;border-top:1px solid var(--ui-border)}
.panel>h2{font-size:21px;margin:0 0 20px}.label{font-size:12px;font-weight:600;color:var(--ui-ink);margin-bottom:8px}
label.field{margin-bottom:22px}.row{gap:18px}.help{color:var(--ui-muted);font-size:12px;line-height:1.8}
input:not([type=checkbox]):not([type=range]),select{height:48px;border-radius:var(--ui-control-radius);border-color:var(--ui-border);background:var(--ui-soft);font-size:14px;color:var(--ui-ink);padding:0 13px;transition:border-color .15s,box-shadow .15s}
input:not([type=checkbox]):not([type=range]):hover,select:hover{border-color:var(--ui-accent)}
input:not([type=checkbox]):not([type=range]):focus,select:focus{border-color:var(--ui-accent);background:var(--ui-surface);box-shadow:0 0 0 3px #527f6f12}
input[type=checkbox],input[type=range]{accent-color:var(--ui-brand)}
.dollhouse-controls input[type=checkbox]{accent-color:var(--ui-brand)}
button{transition:background .15s,border-color .15s,color .15s,box-shadow .15s;font-weight:600}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--ui-focus);outline-offset:3px}
.primary,.secondary{border-radius:var(--ui-control-radius);min-height:46px;padding:12px 20px;font-size:13px;line-height:1.45}
.primary{background:var(--ui-brand);border:1px solid var(--ui-brand);color:var(--ui-surface);box-shadow:0 3px 7px #214e400c}
.primary:hover:not(:disabled){background:var(--ui-accent);border-color:var(--ui-accent);box-shadow:0 4px 12px #214e4014}
.secondary{color:var(--ui-brand);border-color:var(--ui-border);background:var(--ui-surface)}
.secondary:hover:not(:disabled){background:var(--ui-selected);border-color:var(--ui-accent)}
button:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}
.segmented{gap:8px}.segmented button{min-height:46px;padding:11px 14px;border-radius:var(--ui-control-radius);font-size:12px;color:var(--ui-muted);background:var(--ui-soft);border-color:var(--ui-border)}
.segmented button:hover:not(:disabled){border-color:var(--ui-accent);background:var(--ui-selected)}
.segmented button.selected,.secondary.selected{background:var(--ui-brand);color:var(--ui-surface);border-color:var(--ui-brand)}
.segmented button.selected:hover:not(:disabled),.secondary.selected:hover:not(:disabled){background:var(--ui-brand);color:var(--ui-surface);border-color:var(--ui-brand)}
.choice,.layout-option{border-radius:9px;background:var(--ui-soft);border-color:var(--ui-border);padding:18px;box-shadow:none}
.choice:hover,.layout-option:hover{border-color:var(--ui-accent);background:var(--ui-selected)}
.choice.selected,.layout-option.selected{background:var(--ui-selected);border-color:var(--ui-accent);box-shadow:inset 3px 0 var(--ui-accent)}
.choice small,.layout-option small{color:var(--ui-muted);font-size:12px;line-height:1.65;font-weight:400}
.phase-toggles{gap:10px 14px;margin:16px 0 24px}
.phase-toggles .check{min-height:52px;padding:12px 14px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-soft);font-size:13px;line-height:1.5;cursor:pointer;gap:12px}
.phase-toggles .check:hover{border-color:var(--ui-accent)}
.phase-toggles .check:has(input:checked){border-color:var(--ui-accent);background:var(--ui-selected);color:var(--ui-brand)}
.phase-toggles .check:has(input:focus-visible){outline:3px solid var(--ui-focus);outline-offset:3px}
.phase-toggles input{width:17px;height:17px;flex:0 0 17px}
.phase-lot{background:var(--ui-soft);border:1px solid var(--ui-border);border-radius:9px;margin-top:4px;height:292px}
.phase-lot text{font-family:'DM Sans',sans-serif;fill:var(--ui-muted)}
.phase-facts{gap:0;margin:20px 0}.phase-facts div{font-size:12px;padding:12px 0;border-bottom:1px solid var(--ui-border)}.phase-facts dt{color:var(--ui-muted);line-height:1.5}.phase-facts dd{font-weight:600;font-variant-numeric:tabular-nums}
.insight,.notice,.design-rationale{border-radius:9px;padding:16px 18px;line-height:1.8;font-size:12px}
.insight{background:var(--ui-selected);color:var(--ui-brand)}.notice{background:#fffae9;border-color:#e6d3a0;color:var(--ui-ink)}
.design-rationale{background:var(--ui-soft);border-left-color:var(--ui-accent);color:var(--ui-muted)}
.pill{padding:5px 10px;font-size:10px;font-weight:600;background:var(--ui-selected);color:var(--ui-brand);line-height:1.5}
.budget-presets{padding:24px;margin-bottom:24px;gap:12px 24px}.budget-presets strong{font:700 28px/1.4 Manrope,sans-serif;letter-spacing:-.8px;font-variant-numeric:tabular-nums;color:var(--ui-brand)}
.budget-presets .topline-label{font-size:10px;letter-spacing:1.6px;font-weight:600;color:var(--ui-muted)}
.concept-workbench{gap:24px}.concept-workbench>.layout-options{padding:22px;gap:12px}.layout-options h2{font:700 15px/1.5 Manrope,sans-serif;margin-bottom:8px}
.layout-option span{font-size:16px}.concept-preview .preview-head h2{font-size:24px}.concept-preview .preview-head>strong{font:700 17px/1.5 Manrope,sans-serif;color:var(--ui-brand);letter-spacing:-.45px}
.concept-preview>h3{font-size:13px;margin:24px 0 10px;padding:0;border:0}
.concept-preview svg,.result-plan-drawing{background:var(--ui-soft);border:1px solid var(--ui-border);border-radius:9px}
.concept-preview svg text,.result-plan-drawing svg text,#floor-canvas text{font-family:'DM Sans',sans-serif}
.plan-dimension text{font-family:Manrope,sans-serif;font-weight:600}
#floor-canvas #meter-grid path{stroke:var(--ui-border)}
.concept-preview .phase-facts{gap:0 24px}.concept-preview>.primary{margin-top:22px}
.footer{margin-top:30px;padding-top:24px;padding-bottom:24px;border-color:var(--ui-border);gap:12px}
.footer p{font-size:12px;color:var(--ui-muted)}
.result-plan{margin-bottom:24px}.result-plan .editor-actions{margin-bottom:18px}.result-plan-drawing{padding:14px}
#result-exterior{background:var(--ui-soft);border:1px solid var(--ui-border);border-radius:9px!important}
.gallery-panel{padding:20px}.gallery-stage{border-radius:9px;border:1px solid var(--ui-border)}
.gallery-kind{background:var(--ui-surface);border:1px solid var(--ui-border);color:var(--ui-brand);font-size:11px;border-radius:8px}
.gallery-arrow{background:var(--ui-brand);border:1px solid var(--ui-border);box-shadow:var(--ui-shadow-floating);border-radius:8px}
.gallery-thumb{border-radius:8px;color:var(--ui-ink);background:var(--ui-soft)}.gallery-thumb.active{background:var(--ui-selected);border-color:var(--ui-accent)}
.gallery-caption h3{font-size:20px}.gallery-caption p,.style-description{color:var(--ui-muted);font-size:13px;line-height:1.8}
.budgetline{padding:14px 0;font-size:13px;border-color:var(--ui-border);line-height:1.5}.budgetline strong{font-variant-numeric:tabular-nums;font-weight:600}
.big-number{font-size:30px;letter-spacing:-1px;color:var(--ui-brand);font-variant-numeric:tabular-nums}
.estimate-rates{border-radius:9px;background:var(--ui-soft);margin:22px 0}.estimate-rates>div{padding:13px 14px;border-color:var(--ui-border)}
.estimate-rates>div:first-child{background:var(--ui-brand)}.estimate-rates>div.selected{background:var(--ui-selected);box-shadow:inset 3px 0 var(--ui-accent)}
.estimate-rates>div span,.estimate-rates>div strong{font-size:12px;line-height:1.55}.estimate-rates>p{padding:14px;font-size:11px;color:var(--ui-muted);line-height:1.8}
.upload,.result-upload{border-color:var(--ui-accent);background:var(--ui-soft);border-radius:9px;color:var(--ui-muted)}
.error,.danger{color:#a33527}.error:not(:empty){padding:8px 0}
#toast{border-radius:9px;box-shadow:var(--ui-shadow-floating);font-size:13px;line-height:1.6;background:var(--ui-brand);padding:14px 20px;max-width:calc(100vw - 32px);text-align:center}
.dollhouse-loading,.dollhouse-error,.gallery-load-error,.result-empty{color:var(--ui-muted);font-size:13px;line-height:1.8;padding:28px}
.selection-popover{background:var(--ui-surface);border-color:var(--ui-border);border-radius:9px;box-shadow:var(--ui-shadow-floating);backdrop-filter:none}
.selection-popover button{border-radius:6px;background:var(--ui-soft);color:var(--ui-brand)}
.build-mode .editor-shell.workspace-shell{border-color:var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);background:var(--ui-soft)}
.workspace-header{background:var(--ui-surface);padding:18px 20px;border-color:var(--ui-border);gap:18px}
.workspace-header strong{font:700 19px/1.5 Manrope,sans-serif;letter-spacing:-.5px;color:var(--ui-brand)}
.workspace-kicker{font-size:9px;letter-spacing:1.7px;color:var(--ui-muted);font-weight:600}
#workspace-save-state{color:var(--ui-muted);font-size:11px}.workspace-history .secondary{padding:10px 15px}
.workspace-viewbar{padding:12px 16px;background:var(--ui-soft);border-color:var(--ui-border);gap:12px}
.workspace-viewbar .concept-view-tabs{border-radius:9px;padding:3px;background:var(--ui-surface);border-color:var(--ui-border)}
.workspace-viewbar .concept-view-tabs button{border-radius:6px;font-size:12px;min-height:40px;background:transparent;color:var(--ui-muted);box-shadow:none}
.build-mode .workspace-viewbar .concept-view-tabs button.selected{background:var(--ui-brand);color:var(--ui-surface)}
.workspace-viewbar .segmented button{font-size:11px;border-radius:7px;color:var(--ui-muted)}
.workspace-viewbar .segmented button.selected{background:var(--ui-selected);color:var(--ui-brand);border-color:var(--ui-border)}
.workspace-tools{background:var(--ui-surface);padding:10px 6px;gap:5px;border-color:var(--ui-border)}
.workspace-tools button{font-size:10px;border-radius:8px;color:var(--ui-muted);height:64px;gap:6px;font-weight:500;background:transparent}
.workspace-tools button:hover{background:var(--ui-selected)}.workspace-tools button[aria-pressed=true]{background:var(--ui-brand);color:var(--ui-surface);border-color:var(--ui-brand);box-shadow:none}
.workspace-tools svg path{stroke-width:1.5}
.workspace-settings{background:var(--ui-surface);border-color:var(--ui-border);backdrop-filter:none;padding:18px;box-shadow:var(--ui-shadow-floating)}
.workspace-panel-head strong{font-family:Manrope,sans-serif;font-size:13px;color:var(--ui-brand)}.workspace-settings p{color:var(--ui-muted);line-height:1.8;font-size:12px}
.workspace-settings label{color:var(--ui-ink);font-size:11px;font-weight:600}.workspace-settings .workspace-limit{background:var(--ui-soft);border:1px solid var(--ui-border);border-radius:8px}
.workspace-settings .object-library{gap:8px}.workspace-settings .object-card{background:var(--ui-soft);border-color:var(--ui-border);border-radius:8px;box-shadow:none}
.workspace-settings .object-card:hover,.workspace-settings .object-card.selected{background:var(--ui-selected);border-color:var(--ui-accent)}
.workspace-settings .object-card strong{font-size:11px;color:var(--ui-brand)}.workspace-settings .object-card small{font-size:10px;color:var(--ui-muted);font-weight:400}
.workspace-canvas{background:var(--ui-canvas)}.workspace-canvas-top{background:var(--ui-soft);border-bottom:1px solid var(--ui-border);font-size:11px;color:var(--ui-muted);padding:14px 16px;min-height:50px}
.workspace-grid-label{font-size:10px;color:var(--ui-muted)}
.workspace-shell .canvas-scroll{background:var(--ui-canvas)}.build-mode .workspace-shell #dollhouse-stage{background:var(--ui-canvas)}
.workspace-shell .dollhouse-controls{background:var(--ui-surface);border-color:var(--ui-border);padding:9px 14px;gap:14px;color:var(--ui-muted);font-size:11px}
.workspace-camera{background:var(--ui-surface);border-color:var(--ui-border);border-radius:10px;backdrop-filter:none;box-shadow:var(--ui-shadow-floating);padding:4px;gap:2px}
.workspace-camera button{border-radius:6px;font-size:11px;min-height:40px;padding:8px 12px;color:var(--ui-brand);font-weight:500}
.workspace-camera button:hover,.workspace-camera button[aria-pressed=true]{background:var(--ui-selected)}
.workspace-canvas-footer{background:var(--ui-soft);color:var(--ui-muted);font-size:10px;line-height:1.5;border-top:1px solid var(--ui-border)}
.workspace-model-note{background:var(--ui-surface);font-size:11px;color:var(--ui-muted);padding:12px 16px;line-height:1.7;border-color:var(--ui-border)}
.build-mode .workspace-shell #editor-message:not(:empty){background:#fffae9;border-color:#e6d3a0;box-shadow:var(--ui-shadow-floating);border-radius:8px;color:var(--ui-ink)}
@media(min-width:1450px){.app main{padding:44px 48px}.app,.build-mode .app{grid-template-columns:240px minmax(0,1fr)}}
@media(max-width:1100px){.app,.build-mode .app{grid-template-columns:202px minmax(0,1fr)}.app main{padding:28px 24px}.app>aside{padding:28px 14px}.workspace{grid-template-columns:1fr}.panel{padding:24px}.concept-workbench{gap:20px}}
@media(max-width:800px){body>header{height:72px;padding:0 20px;gap:16px}.brand{font-size:28px}.app,.build-mode .app{display:block}.app>aside{padding:12px 14px;border-right:0;border-bottom:1px solid var(--ui-border)}.app>aside h2,.app>aside>p,.app>aside .project-label,.app>aside .aside-bottom{display:none}#steps{margin:0;flex-direction:row;overflow-x:auto;gap:6px;padding:2px 0;scrollbar-width:thin}#steps button{flex:0 0 auto;min-height:44px;padding:10px 12px;font-size:11px;gap:8px;white-space:nowrap}.stepnum{width:23px;height:23px;font-size:10px}.app main{padding:26px 20px}.topline{margin-bottom:18px}.workspace-header{padding:16px;gap:12px}.workspace-tools{padding:7px;gap:5px}.workspace-tools button{height:54px;min-width:62px}.workspace-settings{top:70px}.workspace-canvas-top{padding:12px 14px}.workspace-grid-label{display:none}.workspace-viewbar{padding:10px 12px}.workspace-camera button{padding:8px 9px}.footer{padding-bottom:20px}.result-plan-drawing{padding:8px}}
@media(max-width:520px){body>header{padding:0 16px;height:68px}.brand{font-size:26px}.prototype{font-size:9px;padding:6px 8px}.app main{padding:24px 16px}h1{font-size:28px;letter-spacing:-1px}.intro{font-size:13px;margin-bottom:24px}.panel{padding:20px}.row{gap:12px}.label{font-size:12px}.phase-toggles{gap:8px}.phase-toggles .check{min-height:50px;padding:11px 12px}.budget-presets{padding:20px}.budget-presets strong{font-size:26px}.concept-workbench>.layout-options{padding:20px}.layout-option{padding:16px}.layout-option.selected{padding:15px}.concept-preview .preview-head h2{font-size:22px}.concept-preview .phase-facts{grid-template-columns:1fr}.footer{gap:10px}.footer .primary,.footer .secondary{padding:12px 16px}.gallery-panel{padding:14px}.gallery-thumbs{gap:8px}.gallery-thumb{padding:5px;font-size:11px}.gallery-thumb img{width:48px}.gallery-thumb.active{padding:4px}.workspace-header{padding:14px}.workspace-header strong{font-size:17px}.workspace-header .workspace-kicker{font-size:8px}.workspace-history{gap:4px}.workspace-history button{padding:9px 11px}.workspace-viewbar .concept-view-tabs button{padding:8px 12px;min-height:40px}.workspace-model-note{font-size:10px;padding:11px 14px}.workspace-canvas-footer{font-size:9px}.workspace-settings{width:210px}.estimate-rates>div{padding:12px}.budgetline{font-size:12px;gap:10px}.budgetline strong{white-space:normal;text-align:right}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
@media print{body{background:white}.app{display:block}.app main{padding:0}.panel{box-shadow:none;border-color:var(--ui-border)}.result-plan-drawing{background:white}.phase-toggles .check{background:white}.workspace-shell{box-shadow:none}}
