:root{--bg:#f3efe7;--panel:#fffdf9;--ink:#2b2824;--muted:#665f53;--line:#d8cfc0;--accent:#99512d;--teal:#285a5e}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 -apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Noto Sans KR',sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer;min-height:38px;border:1px solid var(--line);border-radius:8px;padding:7px 12px;background:white}button:hover{border-color:var(--accent)}button.active,button.primary{background:var(--ink);color:white}button:disabled{opacity:.55;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #30808b;outline-offset:2px}input,select{border:1px solid var(--line);border-radius:7px;padding:7px;max-width:100%;background:white}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}h2{font-size:17px;margin:0 0 12px}h3{font-size:16px}p{color:var(--muted);margin:6px 0 16px}small,.muted{color:var(--muted)}.app{display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;height:100dvh;min-height:600px}header{display:flex;align-items:center;gap:8px;padding:12px 18px;flex-wrap:wrap;background:var(--panel);border-bottom:1px solid var(--line)}.brand{display:flex;flex-direction:column;margin-right:12px}.brand b{font-size:20px}.brand small{font-size:12px}.spacer{flex:1}.project-picker{display:flex;gap:5px;align-items:center}.project-picker select{max-width:170px}.design-switch{display:flex;gap:4px}#saveStatus{font-size:13px;color:var(--teal)}nav{display:flex;gap:7px;padding:9px 18px;border-bottom:1px solid var(--line);overflow:auto}nav button{white-space:nowrap;background:transparent;border:0}#notice{padding:8px 20px;background:#f7e8d5;border-bottom:1px solid #d6b995}.workspace{display:grid;grid-template-columns:222px minmax(0,1fr) 280px;min-height:0;grid-row:4}.library,.properties{background:var(--panel);overflow:auto;padding:18px;border-right:1px solid var(--line)}.properties{border-left:1px solid var(--line);border-right:0}.library h2:not(:first-child){margin-top:24px}.library p{font-size:13px}.room-button{display:flex;justify-content:space-between;width:100%;gap:5px;margin-bottom:7px;text-align:left}.room-button small{white-space:nowrap}.check{display:flex;gap:9px;align-items:flex-start;padding:9px 0}.check span{flex:1}.check small{display:block}.swatch{width:27px;height:27px;border:1px solid #b8afa2;border-radius:5px;display:inline-block;vertical-align:middle;margin-right:5px}.material{display:block;width:100%;margin:8px 0;text-align:left}.metric{padding:12px;background:#f3eee6;border-radius:8px;margin:12px 0}.metric strong{font-size:23px}#stage{position:relative;min-width:0;overflow:hidden;background:#f7f4ee}#plan{width:100%;height:100%;display:block;touch-action:none}#plan [data-room],#plan [data-fid]{cursor:pointer}.canvas-tools{position:absolute;z-index:3;top:12px;left:12px;right:12px;display:flex;gap:5px;flex-wrap:wrap}.canvas-tools button{background:#fffdf9e8}.canvas-tools .active{background:var(--ink)}.canvas-caption{position:absolute;bottom:12px;left:12px;right:12px;background:#fffdf9dd;padding:6px 10px;border-radius:6px;font-size:12px;pointer-events:none}#view3d{position:absolute;inset:0;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .3s}#view3d canvas{display:block;width:100%;height:100%}.is3d #view3d{visibility:visible;opacity:1;pointer-events:auto}.is3d #plan{opacity:0;pointer-events:none}#hint3d{position:absolute;bottom:50px;left:12px;right:12px;font-size:12px;pointer-events:none}#cameraTools{position:absolute;top:62px;left:12px;z-index:3}#cameraTools button{font-size:13px;padding:5px}.rlabel{background:#fffdf9df;padding:4px 8px;border-radius:5px;font-size:13px;pointer-events:none}.rlabel small{display:block}#detail{grid-row:4;overflow:auto;padding:24px max(22px,calc((100% - 1080px)/2));min-height:0}#detail h1{font-size:25px;margin:0 0 8px}.cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px;margin:16px 0}.card .amount{font-size:30px;font-weight:700;color:var(--accent)}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{text-align:left;padding:11px 7px;border-bottom:1px solid var(--line);vertical-align:top}.money{text-align:right;white-space:nowrap}td small{display:block}.table-scroll{overflow:auto}.table-scroll table{min-width:670px}.totals{max-width:420px;margin:18px 0 18px auto}.totals div{display:flex;justify-content:space-between;padding:5px}.totals .grand{font-size:22px;font-weight:700;color:var(--accent)}footer{display:flex;align-items:center;justify-content:flex-end;gap:28px;padding:12px 20px;background:var(--panel);border-top:1px solid var(--line)}footer div{display:grid;grid-template-columns:auto auto;gap:0 12px}footer div span{grid-column:1/-1;font-size:12px;color:var(--muted)}footer strong{font-size:22px;color:var(--accent);font-variant-numeric:tabular-nums}footer small{align-self:center}#toast{position:fixed;bottom:105px;left:50%;transform:translateX(-50%);max-width:90vw;background:var(--ink);color:white;padding:12px 20px;border-radius:9px;z-index:20;display:none}#toast.show{display:block}label.field{display:block;margin-bottom:16px}label.field input{display:block;width:100%}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.warning{background:#f7e8d5;padding:12px;border-radius:7px}.readonly .edit-only{display:none!important}[hidden]{display:none!important}.readonly .project-picker{display:none}.readonly .workspace{grid-template-columns:180px minmax(0,1fr) 270px}.badge{font-size:12px;background:#e7eeea;color:#285a5e;padding:3px 7px;border-radius:5px}@media(max-width:1100px){.workspace,.readonly .workspace{grid-template-columns:175px minmax(0,1fr) 245px}header{padding:9px}.brand b{font-size:17px}header .spacer{display:none}footer{gap:12px;padding:9px}footer strong{font-size:19px}}@media(max-width:700px){body{overflow:auto}.app{height:auto;min-height:100dvh;grid-template-rows:auto auto auto auto auto}header{gap:6px;padding:12px}header .brand{width:100%;margin:0}header button{padding:6px 9px}.brand small{font-size:13px}#saveStatus{width:100%}nav{padding:8px;gap:0}nav button{font-size:13px;padding:6px 8px}.workspace,.readonly .workspace{display:flex;flex-direction:column;grid-row:4}.library{order:2;border:0;padding:16px}.properties{order:3;border:0;border-top:1px solid var(--line);padding:16px}#stage{height:390px;min-height:390px;order:1;border-bottom:1px solid var(--line)}.canvas-tools button{font-size:12px;padding:5px 8px}#cameraTools{top:99px}#cameraTools button{font-size:12px;padding:4px}.canvas-caption{font-size:11px}.library h2{margin-top:12px!important}#detail{overflow:visible;padding:18px 12px}.cards{grid-template-columns:1fr;gap:0}.card{padding:16px}footer{position:sticky;bottom:0;z-index:5;gap:10px;justify-content:space-between;flex-wrap:wrap}footer div{display:block}footer small,footer span{display:block;font-size:11px!important}footer strong{display:block;font-size:19px}footer button{font-size:12px}.readonly .library{display:none}.readonly #detail{min-height:400px}#notice{font-size:13px;padding:10px 12px}}@media print{header,nav,footer,.actions,#workspace,#toast,#notice{display:none!important}.app{display:block;height:auto}#detail{display:block!important;overflow:visible;padding:0}.card{break-inside:avoid}.table-scroll{overflow:visible}.table-scroll table{min-width:0}body{background:white}}

#gLabels,#gDims,#gSel{pointer-events:none}

.keep-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.budget-fit{background:#e8efea;padding:12px;border-radius:7px}.proposal-reasons{border-top:1px solid var(--line);padding-top:12px}.proposal-reasons li{margin-bottom:10px}.field select{display:block;width:100%;margin-top:5px}#briefError{color:#8e2d23;font-weight:600}@media(max-width:700px){.keep-grid{grid-template-columns:1fr}.proposal-reasons{font-size:14px}}
/* Explicit rows prevent the status footer auto-placing above the workspace. */
.app>header{grid-row:1}.app>nav{grid-row:2}#notice{grid-row:3}.app>footer{grid-row:5}

/* M3: comparison first, accessible focus, responsive quote rows. */
.skip-link{position:fixed;top:-80px;left:12px;z-index:50;padding:10px;background:var(--ink);color:white}.skip-link:focus{top:8px}
main:focus{outline:none}.quick-compare{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px;background:#e8efea;border:1px solid #b4c6ba;border-radius:12px}.quick-compare span,.quick-compare strong{display:block}.quick-compare strong{font-size:26px;color:var(--accent);font-variant-numeric:tabular-nums}.quick-compare p{grid-column:1/-1;margin:0}.context-details{margin:16px 0}.context-details summary{cursor:pointer;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}textarea{font:inherit;width:100%;padding:10px;overflow-wrap:anywhere;border:1px solid var(--line);border-radius:7px}a{color:var(--teal)}.table-scroll:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #30808b;outline-offset:3px}
@media(max-width:700px){nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;gap:2px}nav button{font-size:13px;white-space:normal;min-height:44px;padding:6px}.readonly nav{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-compare{grid-template-columns:1fr 1fr;gap:10px;padding:14px}.quick-compare strong{font-size:23px}.quick-compare div:last-of-type{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}.quick-compare p{font-size:13px}.card .amount{font-size:27px}.readonly header .brand{display:none}.readonly header{padding:8px 12px}.readonly header #saveStatus{width:auto;margin-left:auto;font-size:12px}.readonly header .spacer{display:none}.readonly header #preview:disabled{display:none}footer small,footer span{font-size:12px!important}.readonly footer>div:first-child{display:none}.readonly footer{flex-wrap:nowrap}.readonly footer button{font-size:14px;min-height:44px}.table-scroll table{min-width:0}.table-scroll thead{display:none}.table-scroll tr{display:block;margin:14px 0;border:1px solid var(--line);border-radius:8px}.table-scroll td{display:flex;justify-content:space-between;gap:10px;white-space:normal;text-align:right}.table-scroll td:first-child{display:block;text-align:left}.table-scroll td[data-label]:before{content:attr(data-label);text-align:left;font-weight:600}.canvas-caption{font-size:12px}.canvas-tools button,#cameraTools button{font-size:13px;min-height:38px}.readonly #stage{height:380px;min-height:380px}}

