:root{font-family:'Yu Gothic UI','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;color:#203330;background:#f4f5f7;font-size:16px;--green:#183b35;--muted:#687570;--line:#dde2de;--accent:#c65b37}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;transition:background .15s}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c65b37;outline-offset:3px}button:disabled{opacity:.45;cursor:default}header{height:84px;background:#fff;padding:0 32px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:32px}.brand{font-size:34px;font-weight:800;letter-spacing:-2px;text-decoration:none;color:var(--green)}.brand span{display:block;letter-spacing:2.6px;font-size:10px;margin-top:-5px}.header-note{font-size:14px;color:var(--muted)}.badge{margin-left:auto;font-size:12px;background:#edf2ef;padding:8px 12px;border-radius:20px}main{display:grid;grid-template-columns:300px minmax(390px,1fr) 260px;max-width:1800px;margin:auto}.setup{background:white;padding:28px 24px;border-right:1px solid var(--line)}.section-label{font-size:12px;letter-spacing:2px;color:var(--muted);font-weight:700}h1{font-size:30px;line-height:1.5;letter-spacing:-1px;margin:16px 0 12px}h2{font-size:17px;margin:0;line-height:1.6}h2 span{font-size:12px;font-weight:400;color:var(--muted)}.sub{font-size:14px;color:var(--muted);line-height:1.8;margin-bottom:28px}.setup section{margin:24px 0}.setup h2{margin-bottom:12px;font-size:15px}.uploads{display:flex;gap:8px}.upload{width:50%;min-height:86px;border:1px dashed #a4b1ab;background:#f5f7f5;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;cursor:pointer;gap:5px;padding:10px;text-align:center}.upload input{position:absolute;width:1px;height:1px;opacity:0}.upload:focus-within{outline:2px solid var(--accent)}.upload img{max-width:100%;max-height:90px;object-fit:contain}.hint{font-size:12px;color:var(--muted);line-height:1.8;margin:10px 0}.field-row{display:flex;gap:8px}.field-row label{flex:1;min-width:0}label{font-size:13px;display:block;color:#52625b}input,select{border:1px solid var(--line);border-radius:5px;background:#fff;color:#203330;padding:10px;width:100%;margin-top:6px;font-size:16px}.styles{display:grid;grid-template-columns:1fr 1fr;gap:8px}.style-choice{padding:12px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:13px;text-align:left}.style-choice.active{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:#f0f5f1}.swatches{display:flex;gap:4px;margin-bottom:9px}.swatches i{height:17px;width:17px;border-radius:50%;border:1px solid #0001}.budget-input{position:relative}.budget-input span{position:absolute;left:13px;top:15px;font-size:21px}.budget-input input{padding-left:36px;font-weight:700;font-size:22px}.extra{margin-top:14px}.primary{background:var(--green);color:white;border:0;border-radius:6px;padding:15px;width:100%;font-size:15px;font-weight:700}.primary:hover{background:#28564d}.workspace{padding:28px 24px;min-width:0}.visual-panel,.shopping{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:20px}.panel-head .section-label{margin-bottom:5px}.segmented{display:flex;padding:3px;border-radius:6px;background:#eef1ef}.segmented button{border:0;background:transparent;padding:8px 12px;font-size:13px;color:var(--muted);border-radius:4px}.segmented button.active{background:#fff;color:var(--green);box-shadow:0 1px 4px #0001}#viewport{position:relative;background:#e9eeec;height:430px;overflow:hidden}#canvasHost,#plan{width:100%;height:100%;display:block}#canvasHost canvas{display:block;width:100%;height:100%;touch-action:none}[hidden]{display:none!important}.room-stamp{position:absolute;top:16px;left:16px;background:#fff9;padding:7px 12px;border-radius:5px;font-size:12px;pointer-events:none}.view-toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:12px 16px}.view-toolbar span{font-size:12px;color:var(--muted);margin-right:auto}.view-toolbar button,.text-button{border:0;background:#edf2ef;border-radius:4px;padding:8px;font-size:12px;color:#284f45}#status{margin:0;padding:0 16px 14px;font-size:13px;color:#936047;min-height:32px}.shopping{margin-top:24px}.outline{background:transparent;border:1px solid #b9c6be;border-radius:5px;padding:9px 12px;color:var(--green);font-size:13px;white-space:nowrap}.outline:hover{background:#edf2ef}.catalog-note{padding:0 20px 14px;color:var(--muted);font-size:12px}.item-row{border-top:1px solid #e8ece9;padding:15px 20px;display:flex;align-items:center;gap:12px}.item-swatch{height:42px;width:42px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;font-size:22px}.item-info{flex:1;min-width:0}.item-info strong{font-size:14px;display:block;font-weight:600}.item-info small{font-size:12px;color:var(--muted)}.item-price{font-size:15px;font-weight:700;white-space:nowrap}.item-action{background:none;border:0;color:#576a61;font-size:13px;padding:8px}.cost{margin:28px 20px 0 0;background:var(--green);color:white;padding:24px 22px;border-radius:10px;align-self:start}.cost .section-label{color:#acc4bb}.cost h2{margin-top:10px;font-size:19px}.total-caption{margin-top:30px;font-size:13px;color:#b5cbc3}#grandTotal{display:block;font-size:34px;letter-spacing:-1px;margin:5px 0 24px}.cost-rows{font-size:13px}.cost-rows div{display:flex;justify-content:space-between;margin:13px 0;color:#d4e1db}.cost-rows b{color:white;font-weight:500}.budget-track{height:6px;border-radius:9px;background:#ffffff25;margin-top:25px;overflow:hidden}#budgetBar{height:100%;background:#e4b48b;border-radius:9px}#budgetText{font-size:13px;line-height:1.6;color:#e7d7c3}.cost hr{border:0;border-top:1px solid #ffffff25;margin:25px 0}.big-icon{font-size:34px;color:#e4b48b}.cost-message h3{font-size:14px}.cost-message p{font-size:13px;line-height:1.9;color:#b9cdc3}.cost .outline{border-color:#698d7d;color:white}.wide{width:100%;margin-top:15px}.local-note{font-size:12px;line-height:1.8;color:#b9cdc3;margin-top:20px}dialog{border:0;border-radius:12px;width:min(520px,calc(100% - 24px));padding:24px;box-shadow:0 20px 80px #0003}dialog::backdrop{background:#10282480}dialog label{margin-top:14px}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head button{background:none;border:0;font-size:26px}#editError{font-size:14px;color:#ac3d22}#renderError{position:absolute;inset:0;padding:50px;background:#e9eeec}#items:empty::after{content:'家具がありません。家具を追加するか、予算を変更して提案してください。';display:block;padding:24px;font-size:14px;color:var(--muted)}@media(min-width:1500px){main{grid-template-columns:330px minmax(390px,1fr) 300px}#viewport{height:540px}}@media(max-width:1150px){main{grid-template-columns:280px minmax(0,1fr)}.cost{grid-column:2;margin:0 24px 24px}.setup{grid-row:1 / 3}.cost-message,.cost hr,.big-icon{display:none}.cost-rows{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap}#grandTotal{margin-bottom:10px}.total-caption{margin-top:15px}.local-note{margin-top:12px}}@media(max-width:700px){header{padding:0 18px;height:70px}.header-note{display:none}main{display:flex;flex-direction:column}.setup{padding:24px 20px;border-right:0}h1{font-size:25px}h1 br{display:none}.sub{margin-bottom:16px}.setup section{margin:20px 0}.styles{grid-template-columns:repeat(4,1fr)}.style-choice{font-size:12px}.uploads .upload{min-height:70px}.workspace{padding:20px 12px}.panel-head{padding:16px;flex-wrap:wrap}#viewport{height:340px}.cost{margin:0 12px 24px}.item-row{padding:14px 12px;gap:8px}.item-info strong{font-size:13px}.item-swatch{width:32px;height:32px}.item-price{font-size:14px}.item-action{padding:5px}.view-toolbar span{width:100%;margin-bottom:4px}.shopping h2{font-size:15px}#grandTotal{font-size:36px}.local-note{font-size:12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
:root .reading-panel{background:#edf3ef;border:1px solid #c6d7cc;border-radius:7px;padding:14px}.reading-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.reading-top h2{margin-bottom:0}.reading-top span{background:#fff;border-radius:4px;padding:4px 7px;font-size:12px;white-space:nowrap}#readingProgress{font-size:13px;line-height:1.8;margin:12px 0}#readingSize{font-size:22px}#recognitionPreview{width:100%;height:auto;border-radius:4px;margin-bottom:8px}details summary{cursor:pointer;font-size:14px;font-weight:600;line-height:1.8}details summary span{font-weight:400;font-size:12px;color:#687570}details .field-row{margin-top:12px}#readingEvidence{white-space:pre-line}

.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;font-size:12px}.check-grid label{display:flex;align-items:center;gap:7px}.check-grid input{width:15px;height:15px;accent-color:#24453d}.finish-panel i{display:inline-block;width:20px;height:20px;border:1px solid #b8c3ba;border-radius:5px;flex-shrink:0}.finish-panel #finishes>div{display:flex;align-items:center;gap:8px;font-size:11px;margin:9px 0;line-height:1.6}.item-info a,.catalog-entry a{color:#266d56;font-size:12px;text-decoration:underline;display:block;margin-top:7px}.item-info small{line-height:1.55;white-space:normal}.item-row{align-items:start}.catalog-entry{padding:14px 0;border-bottom:1px solid #e4e8e4}.catalog-entry small{display:block;margin-top:7px;color:#738076}#catalogDialog{max-height:85vh;overflow:auto;width:620px}

.cost .hint{color:#c0d2c9}.item-info small{display:block}input[readonly]{background:#f2f5f2;color:#576a61}

#plan{touch-action:none;cursor:grab}#plan:active{cursor:grabbing}.measurement-controls{padding:12px 16px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-top:1px solid #e4e8e4}.measurement-controls label{display:flex;gap:6px;align-items:center;font-size:12px}.measurement-controls input{margin:0;width:15px;height:15px;accent-color:#24453d}.measurement-controls button{font-size:12px;padding:7px;background:#edf2ef;border:0;color:#24453d}#planLegend{display:flex;gap:6px;flex-wrap:wrap;padding:0 16px 12px}.legend-item{border:1px solid #cbd6cf;border-radius:5px;background:#fff;color:#28453b;font-size:12px;padding:8px;text-align:left}.legend-item.selected{border-color:#c65b37;background:#fff3ec}.clearance-panel{padding:14px 16px;background:#f5f8f6}.clearance-panel strong{font-size:13px}.clearance-panel small{font-weight:400;color:#687570}#clearanceList{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.clearance-row{font-size:12px;background:#e5f1f1;color:#176f7d;padding:6px 9px;border-radius:4px}.clearance-row.narrow{background:#fceee8;color:#a84932}.scene-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.scene-dimension{position:absolute;border:1px solid #5a7768;background:#fffffff0;color:#24453d;border-radius:4px;padding:4px 6px;font-size:11px;white-space:nowrap}.scene-dimension.selected{border-color:#c65b37;color:#a84a2b}.scene-dimension.gap{color:#176f7d;border-color:#176f7d}.scene-dimension.narrow{color:#a84932;border-color:#a84932}#canvasHost{position:relative}
.dimension-caption{padding:0 16px;margin:6px 0;color:#687570;font-size:12px}

.wall-calibration select,.wall-calibration input[type=number]{width:100%;margin:6px 0 12px}.calibration-check{display:flex;gap:8px;align-items:center;margin:8px 0 16px}#wallError{color:#a84932;font-size:12px}

.wall-calibration .calibration-check{display:flex;font-size:12px}.wall-calibration .calibration-check input{width:auto;margin:0;flex:none}

[hidden]{display:none!important}.rotation-controls{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--line);flex-wrap:wrap}.rotation-controls span{font-size:12px;flex:1}.rotation-controls button{border:1px solid var(--line);border-radius:5px;background:#fff;padding:8px 12px;color:var(--green)}

#planRotate{position:absolute;z-index:3;padding:8px 10px;border:1px solid #c65b37;border-radius:18px;background:#fff;color:#a84932;font-size:13px;box-shadow:0 2px 6px #0002}

.url-import{padding:16px 20px;border-bottom:1px solid var(--line)}.url-import input{font-size:13px}.url-import button{margin-top:10px}.url-import p{font-size:12px;color:var(--muted);line-height:1.6}#importReviewError{font-size:12px;color:#a84932}

#planDelete{position:absolute;z-index:4;width:24px;height:24px;min-width:0;padding:0;border:1px solid #a84932;border-radius:50%;background:#fff;color:#a84932;font-size:17px;line-height:22px;box-shadow:0 2px 6px #0002;}

.proposal-preview{width:min(94vw,1000px);max-height:94vh;padding:20px}.proposal-preview>div{display:flex;align-items:center;gap:18px;position:sticky;top:0;background:#fff;padding:8px}.proposal-preview h2{margin-right:auto}.proposal-preview img{width:100%;height:auto}.proposal-preview a{color:#24453d;text-decoration:underline;white-space:nowrap}

/* After image analysis, portrait phones follow the planning workflow. */
.mobile-flow[hidden]{display:none}
@media(max-width:700px) and (orientation:portrait){
 .mobile-model-first .mobile-flow{display:flex;flex-direction:column;gap:18px;padding:12px;min-width:0}
 .mobile-model-first .workspace{display:none}
 .mobile-model-first .mobile-flow>section[id],.mobile-model-first #suggestActions{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px}
 .mobile-model-first .mobile-flow>section[id] h2{font-size:15px;margin-bottom:12px}
 .mobile-model-first .shopping{margin-top:0}
 .mobile-model-first .mobile-flow>.cost{margin:0;align-self:stretch}
 .mobile-model-first .setup{margin:0 12px 24px;padding:20px;border:1px solid var(--line);border-radius:10px}
 .mobile-model-first .setup>h1,.mobile-model-first .setup>.sub,.mobile-model-first .setup>.section-label{display:none}
}
@media(max-width:700px) and (orientation:portrait){
 .mobile-model-first .styles{grid-template-columns:repeat(4,minmax(0,1fr))}
 .mobile-model-first .style-choice{min-width:0;padding:10px 5px;overflow-wrap:anywhere}
 .mobile-model-first .swatches{gap:3px}
 .mobile-model-first .swatches i{width:14px;height:14px;flex-shrink:0}
}
.load-plan{position:relative;border:1px solid #dde2de;background:#fff;border-radius:5px;font-size:12px;padding:8px 10px;cursor:pointer;color:#52625b}.load-plan input{position:absolute;width:1px;height:1px;opacity:0}.load-plan:focus-within{outline:3px solid #c65b37}.layout-context{border-top:1px solid var(--line);padding:16px 20px}.layout-context summary{font-size:14px;color:#24453d;cursor:pointer}.layout-context .field-row{margin-top:12px}.layout-context #layoutSources{display:flex;flex-wrap:wrap;gap:8px 14px}.layout-context #layoutSources a{color:#24453d}.layout-context label{margin-top:10px}

.model-progress[hidden]{display:none}.model-progress{margin:0 20px 18px;padding:16px;border:1px solid #c6d7cc;border-radius:8px;background:#edf3ef;color:#18312e}.model-progress-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}.model-progress-heading span{font-variant-numeric:tabular-nums}.model-progress-track{display:flex;align-items:center;gap:10px;margin:12px 0}.model-progress progress{appearance:none;width:100%;height:10px;border:0;border-radius:5px;overflow:hidden;background:#d8e3de;accent-color:#285b4d}.model-progress progress::-webkit-progress-bar{background:#d8e3de;border-radius:5px}.model-progress progress::-webkit-progress-value{background:#285b4d;border-radius:5px;transition:width .25s}.model-progress progress::-moz-progress-bar{background:#285b4d;border-radius:5px}.model-progress-track span{font-size:14px;font-variant-numeric:tabular-nums;min-width:3ch}.model-progress p{font-size:14px;margin:0 0 6px;line-height:1.6}.model-progress small{font-size:12px;color:#53665e}
.selection-tab{position:fixed;z-index:20;left:0;top:45%;writing-mode:vertical-rl;display:flex;align-items:center;gap:12px;padding:17px 9px;border:1px solid #567468;border-left:0;border-radius:0 8px 8px 0;background:#244b3e;color:#fff;box-shadow:2px 3px 12px #183b351a;font-size:13px;letter-spacing:.1em}.selection-tab span{font-size:22px;line-height:1;writing-mode:horizontal-tb}.selection-drawer{position:fixed;inset:0 auto 0 0;margin:0;width:min(380px,calc(100vw - 36px));height:100dvh;max-height:none;max-width:none;border:0;border-radius:0 14px 14px 0;padding:0;background:#fbfcf9;color:#203330;box-shadow:8px 0 45px #10282433;overflow:auto}.selection-drawer[open]{display:flex;flex-direction:column;animation:drawer-enter .22s ease-out}.selection-drawer::backdrop{background:#10282466}.selection-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:1;background:#fbfcf9;padding:28px 24px 22px;border-bottom:1px solid var(--line)}.selection-drawer-head .section-label{font-size:10px;letter-spacing:.13em}.selection-drawer-head h2{font-size:20px;margin-top:8px}.selection-drawer-head button{border:0;background:#edf2ed;color:#244b3e;border-radius:50%;width:40px;height:40px;padding:0;font-size:24px;flex-shrink:0}.selection-drawer-body{padding:0 24px 22px;flex:1}.selection-drawer-body section{margin:28px 0}.selection-drawer-body h2{font-size:16px;margin-bottom:17px}.selection-drawer .check-grid{gap:15px 12px}.selection-drawer .check-grid label{font-size:14px;margin:0;min-height:28px}.selection-drawer .check-grid input{margin:0;width:18px;height:18px}.selection-drawer #browseCatalog{margin-top:20px;font-size:12px;padding:9px}.selection-drawer .hint{margin-top:20px}.selection-drawer-footer{padding:18px 24px 24px;border-top:1px solid var(--line);background:#fbfcf9;position:sticky;bottom:0}.selection-drawer-footer button{font-size:14px;padding:15px}#modelDetails{display:none!important}@keyframes drawer-enter{from{transform:translateX(-100%)}to{transform:translateX(0)}}@media(max-width:700px){.selection-tab{top:43%;font-size:12px;padding:14px 7px}.selection-drawer-head{padding:25px 20px 20px}.selection-drawer-body{padding:0 20px 20px}.selection-drawer-footer{padding:16px 20px 22px}}@media(prefers-reduced-motion:reduce){.selection-drawer[open]{animation:none}}
.sample-preview-note{font-size:13px;line-height:1.8;color:#65766b;margin:0;padding:0 20px 15px}.before-room-reading .setup>.visual-panel{margin:24px 0 30px}.before-room-reading .setup>.visual-panel h2{font-size:17px;margin:0}.before-room-reading .workspace>.shopping{margin-top:0}@media(min-width:701px){.before-room-reading main{grid-template-columns:minmax(420px,1.15fr) minmax(300px,1fr);max-width:1300px}.before-room-reading .setup{grid-row:1/3}.before-room-reading .cost{grid-column:2;margin:0 24px 24px}.before-room-reading .setup>#styleSection,.before-room-reading .setup>#budgetSection{max-width:540px}.before-room-reading .setup #viewport{height:400px}}@media(max-width:700px){.before-room-reading .setup>.visual-panel{margin-left:-8px;margin-right:-8px}.before-room-reading .setup .view-toolbar{padding:12px}.before-room-reading .sample-preview-note{font-size:12px;padding:0 16px 13px}}
.placement-warning{margin:0;padding:12px 16px;background:#fff0ed;border-top:1px solid #e5b7b0;border-bottom:1px solid #e5b7b0;color:#b12f28;font-size:13px;line-height:1.7}.item-row.placement-invalid{border-left:3px solid #c94339;background:#fff8f6}.item-row.placement-invalid .item-info strong{color:#b12f28}

.item-add-actions{display:flex;gap:8px;flex-wrap:wrap}.owned-photo-preview{display:block;width:100%;max-height:180px;object-fit:contain;margin-top:12px;border-radius:6px;background:#f4f3ef}.owned-photo-preview[hidden]{display:none}.item-swatch.has-photo{width:68px;height:68px;flex-shrink:0;overflow:hidden;background:#f5f4ef}.item-photo{width:100%;height:100%;object-fit:contain}#ownedDialog{max-height:calc(100dvh - 32px);overflow:auto}#ownedError{font-size:13px;color:#a84932;line-height:1.7}#ownedUrlFields .wide{margin-top:10px}#ownedColor{height:42px;padding:4px}#ownedDialog [hidden]{display:none!important}@media(max-width:700px){.item-swatch.has-photo{width:48px;height:48px}.item-add-actions .outline{font-size:12px;padding:8px}}

.plan-alignment{padding:14px 20px;border-top:1px solid #dce3df}.alignment-actions{display:flex;flex-wrap:wrap;gap:8px}.alignment-actions button{padding:9px 12px;border:1px solid #cbd6d0;border-radius:5px;background:white;color:#24453d}.alignment-actions button[aria-pressed="true"]{background:#24453d;color:white}.alignment-actions button:disabled{opacity:.45}.plan-alignment p{font-size:14px;margin:12px 0 6px}.plan-alignment small{font-size:13px;color:#6b7771}.alignment-items{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.alignment-items[hidden],.plan-alignment[hidden]{display:none}.alignment-items label{display:flex;align-items:center;gap:7px;font-size:14px;padding:8px;border:1px solid #dce3df;border-radius:5px;max-width:100%}.alignment-items input{width:18px;height:18px;accent-color:#24453d}
.cg-dialog{width:min(1080px,94vw);max-height:94dvh;padding:24px;overflow:auto}.cg-dialog h2{margin:4px 0 0;font-size:22px}.cg-caption{font-size:14px;color:#62736b;margin:14px 0}.cg-controls{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:16px 0}.cg-controls label{font-size:14px;display:flex;align-items:center;gap:8px}.cg-controls select{width:auto;margin:0}.cg-controls .cg-reverse input{width:18px;height:18px;margin:0;accent-color:#24453d}.cg-controls button{margin-left:auto}.cg-stage{aspect-ratio:3/2;background:#e9ece8;border-radius:8px;overflow:hidden;display:grid;place-items:center}.cg-stage>div,.cg-stage img,.cg-stage canvas{width:100%;height:100%;object-fit:contain;display:block}.cg-stage [hidden]{display:none!important}.cg-progress{margin:18px 0}.cg-progress>div{display:flex;justify-content:space-between;gap:16px;font-size:14px}.cg-progress-track{align-items:center;margin-top:8px}.cg-progress progress{width:100%;height:12px;accent-color:#24453d}.cg-footer{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.cg-footer a{padding:12px 18px;background:#24453d;color:white;border-radius:6px;text-decoration:none;font-size:14px}.cg-footer a[hidden]{display:none}.cg-dialog .hint{font-size:12px;line-height:1.8}@media(max-width:700px){.cg-dialog{padding:16px;width:96vw}.cg-controls{gap:10px}.cg-controls button{margin-left:0}.cg-dialog h2{font-size:19px}.cg-progress>div{flex-wrap:wrap;gap:8px}.cg-footer{gap:10px}.cg-footer button,.cg-footer a{font-size:13px}}
.cg-stage{height:min(52vh,640px);aspect-ratio:auto}

.cg-stage{display:block;position:relative}.cg-stage #cgRender,.cg-stage #cgResult{position:absolute;inset:0;width:100%;height:100%;min-height:0;min-width:0;object-fit:contain}.cg-stage canvas{width:100%;height:100%;object-fit:contain}

.cg-stage{height:min(44vh,640px)}.cg-controls button,.cg-footer button{padding:10px 14px;border:1px solid #ccd5cf;background:#f3f6f3;color:#24453d;border-radius:6px;font-size:14px}.cg-controls button:disabled,.cg-footer button:disabled{opacity:.45}

.item-lock{border:1px solid #b7c8c0;background:white;color:#24453d;border-radius:5px;padding:8px 10px;font-size:14px;min-height:40px}.item-lock[aria-pressed="true"]{background:#24453d;color:white}#generateModel{margin:0 0 16px}
@media(min-width:901px){
 .desktop-model-fixed main{display:grid;grid-template-columns:minmax(360px,440px) minmax(0,1fr);gap:24px;padding:24px;align-items:start}
 .desktop-model-fixed main>.workspace{display:none}
 .desktop-products{min-width:0;display:flex;flex-direction:column;gap:20px}
 .desktop-products>#styleSection,.desktop-products>#budgetSection,.desktop-products>#suggestActions{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px}
 .desktop-products h2{margin-bottom:12px}.desktop-products .shopping{margin:0}.desktop-products .cost{position:static;width:auto;padding:24px;border:1px solid var(--line);border-radius:10px}
 .desktop-model{position:sticky;top:16px;align-self:start;min-width:0;max-height:calc(100dvh - 32px);overflow:auto;border-radius:10px}
 .desktop-model #viewport{height:clamp(300px,55dvh,650px)}
 .dimension-correction{margin-top:12px;background:#fff;border:1px solid var(--line);border-radius:8px}
 .dimension-correction>summary{padding:16px 20px;font-size:15px;font-weight:700;color:var(--green);cursor:pointer}
 .dimension-correction>.setup{border:0;padding:20px}.dimension-correction>.setup>h1,.dimension-correction>.setup>.section-label,.dimension-correction>.setup>.sub{display:none}
 .desktop-products .item-row{flex-wrap:wrap}.desktop-products .item-info{min-width:200px}.desktop-products .item-price{margin-left:auto}
}
@media(max-width:700px){body{font-size:16px}.hint,.item-info small,.placement-warning,.view-toolbar,.cg-dialog .hint{font-size:14px;line-height:1.7}label,input,select,.item-info strong{font-size:16px}.view-toolbar button,.view-toolbar .load-plan,.item-action,.item-lock{font-size:14px;min-height:40px}.item-row{flex-wrap:wrap;gap:10px}.item-info{min-width:150px}.item-price{font-size:16px}.legend-item,.clearance-row{font-size:15px}.room-stamp{font-size:14px}#viewport{min-height:430px}.field-row{gap:10px}.field-row label{min-width:0}.field-row input{padding:10px 6px}.model-progress small,.model-progress-phase{font-size:14px}}

#viewport[data-proposing] > :not(#proposalProgress){visibility:hidden!important;pointer-events:none!important}#viewport[data-proposing]{background:#f3f0e9}.proposal-progress{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:24px;text-align:left}.proposal-progress[hidden]{display:none}.proposal-progress-card{width:min(100%,440px);padding:28px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 45px #183b350a}.proposal-progress h3{font-size:21px;margin:14px 0}.proposal-progress p{font-size:15px;line-height:1.7;min-height:50px}.proposal-progress progress{display:block;appearance:none;width:100%;height:9px;margin:14px 0 18px;accent-color:var(--green);border:0;border-radius:10px;overflow:hidden}.proposal-progress progress::-webkit-progress-bar{background:#e7ece8}.proposal-progress progress::-webkit-progress-value{background:var(--green);transition:width .25s}.proposal-progress small{display:block;font-size:12px;line-height:1.7;color:var(--muted)}#status{padding:0 18px;color:#34574f;font-size:14px;line-height:1.8}#status:empty{display:none}@media(max-width:700px){.proposal-progress{padding:16px}.proposal-progress-card{padding:22px}.proposal-progress h3{font-size:20px}.proposal-progress small,#status{font-size:14px}}
:root .item-swatch.has-photo{width:100px;height:100px;background:#fff;border:1px solid #ecece8;border-radius:6px;position:relative}
.product-photo-button{display:block;width:100%;height:100%;padding:0;background:#fff;border:0;cursor:zoom-in}.product-photo-button .item-photo{display:block;object-fit:contain}.photo-loading::after{content:'';width:22px;height:22px;border:2px solid #e4e8e5;border-top-color:#526b60;border-radius:50%;animation:photo-spin 1s linear infinite}.photo-retry{background:#fafaf8;border:0;color:#738078;font-size:11px;line-height:1.6;padding:8px;width:100%;height:100%}.product-photo-dialog{width:min(600px,calc(100% - 28px));background:#fff;text-align:center;padding:28px}.product-photo-dialog img{display:block;width:100%;max-height:65dvh;object-fit:contain}.product-photo-dialog p{font-size:16px}.product-photo-dialog small{color:#788079}.photo-close{position:absolute;right:10px;top:8px;background:#fff;border:0;font-size:28px;color:#203330}@keyframes photo-spin{to{transform:rotate(360deg)}}@media(max-width:700px){:root .item-swatch.has-photo{width:78px;height:78px}.item-row{flex-wrap:wrap}.item-row .item-info{flex:1;min-width:calc(100% - 94px)}.item-row .item-price{margin-left:86px}.item-row .item-action,.item-row .item-lock{margin-top:2px}}@media(prefers-reduced-motion:reduce){.photo-loading::after{animation:none}}
.dimension-error{color:#b54832!important;font-weight:600}.dimension-status{color:#42675b}

@font-face{font-family:'Roomfit Plan Mincho';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/roomfit-plan-mincho.ttf') format('truetype')}
#area{font-family:'Roomfit Plan Mincho','Yu Mincho','Hiragino Mincho ProN',serif;font-weight:500}

/* Tablet product cards share a narrow column with the room controls. */
@media(min-width:701px) and (max-width:900px){
 .item-row{flex-wrap:wrap;gap:10px}
 .item-row .item-info{flex:1;min-width:calc(100% - 110px);overflow-wrap:anywhere}
 .item-row .item-price{margin-left:auto}
 .item-row .item-action,.item-row .item-lock{min-height:40px}
}
.conversation-panel input{width:100%;margin:8px 0}.conversation-panel{border-top:1px solid #d4d9cf;padding-top:16px}.project-dialog{width:min(900px,calc(100vw - 24px));max-height:90vh;overflow:auto}.project-dialog input:not([type=checkbox]),.project-dialog textarea{width:100%;margin:8px 0}.project-row{display:flex;flex-wrap:wrap;gap:8px;padding:16px 0;border-bottom:1px solid #d4d9cf}.project-row strong,.project-row small{flex-basis:100%;overflow-wrap:anywhere}.project-dialog hr{margin:24px 0}.project-dialog pre{white-space:pre-wrap}.social-image{display:block;max-width:100%;height:auto;margin:12px 0}#procurementPreview iframe{width:100%;height:440px;border:1px solid #d4d9cf;margin:12px 0}#projectStatus{overflow-wrap:anywhere}.project-dialog a{display:inline-block;margin:10px;color:#18312e}header #projectTools{font-size:12px;white-space:nowrap}@media(max-width:600px){header .header-note{display:none}.project-dialog{padding:16px}.project-row button{flex:1}}

.additional-openings{margin:20px 0}.additional-openings fieldset{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:8px}.additional-openings legend{font-size:13px;padding:0 5px}.additional-openings h3{font-size:16px}

.outline-editor{margin:16px 0;padding:12px;border:1px solid #d9dfdc;border-radius:8px}.outline-editor fieldset{margin:12px 0;padding:12px;border:1px solid #d9dfdc;border-radius:8px}.outline-editor fieldset button{margin:4px 6px 4px 0}.outline-editor input{min-width:0;width:100%;box-sizing:border-box}

.purchase-review-dialog{width:min(760px,calc(100vw - 32px));max-height:85vh;box-sizing:border-box;padding:24px;border:1px solid #d4d9cf;border-radius:12px;color:#18312e;background:#f8f7f2}.purchase-review-dialog .dialog-head h2{font-size:22px}.purchase-review-item{border-top:1px solid #d4d9cf;padding:18px 0;overflow-wrap:anywhere}.purchase-review-item h3{font-size:16px;margin:0 0 10px}.purchase-review-item p{font-size:13px;line-height:1.8;margin:6px 0}.purchase-review-item a{color:#1c614d;font-size:13px}@media(max-width:420px){.purchase-review-dialog{padding:16px}.purchase-review-dialog .dialog-head h2{font-size:19px}}
