@font-face{font-family:Pretendard;src:url('assets/PretendardVariable.woff2') format('woff2');font-display:swap;font-weight:100 900}
:root{--navy:#0d2d52;--blue:#1768b3;--ink:#12263d;--muted:#6e7e91;--line:#dce5ee;--paper:#f7f9fc;--white:#fff;--accent:#b5e8ff;--shadow:0 16px 46px rgba(13,45,82,.09)}
.project-name-label input{width:170px;border:1px solid transparent;border-radius:7px;padding:6px 8px;color:var(--navy);font-weight:800;background:#f5f8fb;outline:0}.project-name-label input:focus{border-color:#7dd7ff;background:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Pretendard,system-ui,sans-serif;font-size:16px;line-height:1.45}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none;min-height:48px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.mobile-only{display:none}
.planner-header{height:78px;background:var(--white);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:0 clamp(16px,4vw,58px);position:sticky;top:0;z-index:20}.planner-brand{display:flex;align-items:center;gap:14px;text-decoration:none}.planner-brand img:first-child{width:142px;height:auto}.planner-brand .c14-mark{width:115px;height:auto}.brand-divider{height:32px;width:1px;background:var(--line)}.planner-title{display:flex;align-items:center;gap:12px;margin-left:auto}.eyebrow,.panel-kicker,.section-kicker{font-size:11px;letter-spacing:.12em;font-weight:800;color:var(--blue)}.planner-title strong{font-size:18px}.save-status{font-size:12px;color:var(--muted);padding:6px 10px;background:#f1f6fa;border-radius:20px}.header-actions{display:flex;align-items:center;gap:8px;margin-left:10px}.icon-button{font-size:22px;width:48px}.outline-button{border:1px solid var(--line);border-radius:10px;padding:0 15px;color:var(--navy);font-weight:700}
.planner-app{width:100%;max-width:none;margin:0;padding:12px}.quick-start{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:10px 0 34px}.section-kicker{margin:0 0 8px}.quick-start h1{font-size:clamp(32px,4vw,56px);line-height:1.05;letter-spacing:-.055em;margin:0}.quick-start h1 em{font-style:normal;color:var(--blue)}.intro-copy{color:var(--muted);font-size:17px;margin:16px 0 0}.start-actions{display:flex;gap:10px;align-items:center}.primary-button,.primary-small{background:var(--navy);color:#fff;font-weight:800;border-radius:12px;padding:0 22px;box-shadow:0 8px 20px rgba(13,45,82,.17)}.primary-button{font-size:16px}.primary-button span{font-size:24px;vertical-align:-2px;margin-left:10px}.ghost-button{color:var(--blue);font-weight:700;padding:0 14px}.plan-note{font-size:12px;color:var(--muted);margin:0 0 4px;white-space:nowrap}
.toolbar{min-height:72px;background:var(--white);border:1px solid var(--line);border-radius:16px 16px 0 0;padding:10px 14px;display:flex;align-items:center;gap:16px;box-shadow:var(--shadow)}.view-switch{display:flex;background:#f0f4f8;border-radius:10px;padding:3px}.view-switch button{border-radius:8px;padding:0 14px;min-height:40px;color:var(--muted);font-size:14px;font-weight:700}.view-switch button.active{background:var(--white);color:var(--navy);box-shadow:0 2px 8px rgba(13,45,82,.12)}.room-picker{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;font-weight:700}.room-picker select{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);padding:9px 28px 9px 10px;min-height:42px}.toolbar-tools,.toolbar-main-actions{display:flex;gap:2px}.toolbar-tools{border-left:1px solid var(--line);padding-left:10px}.tool-button{font-size:13px;color:var(--muted);padding:0 9px;border-radius:8px}.tool-button:first-letter{font-size:20px}.tool-button:hover,.soft-button:hover{background:#f2f6f9;color:var(--navy)}.toolbar-main-actions{margin-left:auto}.soft-button{padding:0 12px;color:var(--blue);font-weight:700;border-radius:8px}.primary-small{min-height:42px;border-radius:9px;padding:0 17px;font-size:14px}
.workspace{display:grid;grid-template-columns:260px minmax(0,1fr) 260px;min-height:650px;border:1px solid var(--line);border-top:0;background:var(--white);border-radius:0 0 16px 16px;overflow:hidden;box-shadow:var(--shadow)}.panel{background:#fff;padding:23px 18px}.catalog-panel{border-right:1px solid var(--line)}.inspector-panel{border-left:1px solid var(--line)}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.panel-heading h2{font-size:17px;margin:2px 0 0}.search-field{height:44px;background:#f5f8fb;border:1px solid #e6edf3;border-radius:9px;display:flex;align-items:center;padding:0 10px;color:var(--muted)}.search-field input{background:none;border:0;outline:0;width:100%;height:100%;font-size:13px}.catalog-tabs{display:flex;gap:3px;margin:16px 0 11px;overflow-x:auto}.catalog-tabs button{min-height:34px;padding:0 8px;border-radius:7px;color:var(--muted);font-size:12px;white-space:nowrap}.catalog-tabs button.active{background:#e7f5fc;color:var(--blue);font-weight:800}.catalog-list{display:grid;gap:7px;max-height:455px;overflow:auto}.catalog-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid transparent;border-radius:9px;padding:8px;min-height:56px}.catalog-item:hover{background:#f4f8fb;border-color:#d8e7f1}.catalog-icon{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;background:#edf5f9;color:var(--blue);font-size:18px}.catalog-item strong{font-size:13px;display:block}.catalog-item small{color:var(--muted);font-size:11px}.custom-furniture{width:100%;border:1px dashed #abc4d6;border-radius:9px;color:var(--blue);font-weight:700;font-size:13px;margin-top:12px}
.canvas-panel{min-width:0;display:flex;flex-direction:column;background:#eff4f8}.canvas-header{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;background:#fff;border-bottom:1px solid var(--line)}.canvas-header strong{display:block;font-size:16px}.canvas-header span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.canvas-controls{display:flex;align-items:center;gap:2px}.canvas-controls button{min-height:34px;min-width:34px;border-radius:7px;color:var(--muted)}.canvas-controls button:hover{background:#f0f5f8;color:var(--navy)}.canvas-controls span{font-variant-numeric:tabular-nums;font-size:12px;min-width:42px;text-align:center}.viewport{position:relative;flex:1;min-height:500px;display:grid;place-items:center;overflow:hidden;padding:26px}.viewport:focus-visible{outline:3px solid #7dd7ff;outline-offset:-3px}.viewport svg{width:100%;height:100%;max-height:600px;filter:drop-shadow(0 14px 18px rgba(23,55,80,.12))}.plan-background{fill:#f7fafc}.plan-grid path{stroke:#e7eef4;stroke-width:1}.floorplan-shell rect{fill:#fff;stroke:var(--navy);stroke-width:6}.floorplan-shell path{fill:none;stroke:var(--navy);stroke-width:5}.floorplan-shell text{fill:#527089;font-size:18px;font-weight:700;text-anchor:middle}.floorplan-shell .measure-label{fill:#7b8d9d;font-size:13px;text-anchor:start;font-weight:500}.empty-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;color:var(--muted);background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:14px;padding:15px 22px;box-shadow:0 8px 24px rgba(13,45,82,.08)}.empty-hint span{display:block;font-size:22px;color:var(--blue)}.empty-hint strong{display:block;font-size:14px;color:var(--navy)}.empty-hint small{display:block;font-size:11px;margin-top:3px}.canvas-footer{display:flex;justify-content:space-between;padding:10px 22px;color:var(--muted);background:#fff;border-top:1px solid var(--line);font-size:11px}.three-view{width:100%;height:100%;min-height:500px;border-radius:10px;background:linear-gradient(145deg,#eaf4fa,#f9fbfd)}
.selection-empty{text-align:center;color:var(--muted);padding:64px 10px 46px}.selection-empty span{font-size:30px;color:#9ab4c6}.selection-empty p{font-size:13px;margin:10px 0;line-height:1.6}.selection-fields{display:grid;gap:14px}.field-label{display:grid;gap:5px;font-size:12px;color:var(--muted);font-weight:700}.field-label input,.field-label textarea,.field-label select{border:1px solid var(--line);border-radius:8px;padding:9px 10px;min-height:42px;outline:0;color:var(--navy);background:#fff}.field-label textarea{min-height:74px;resize:vertical}.dimension-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.inspector-divider{border-top:1px solid var(--line);margin:22px 0 9px}.check-row{display:flex;gap:8px;align-items:center;min-height:40px;font-size:12px;color:var(--muted)}.check-row input{width:18px;height:18px;accent-color:var(--blue)}
.mobile-dock{display:none}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);background:var(--navy);color:#fff;border-radius:10px;padding:11px 16px;font-size:13px;opacity:0;pointer-events:none;transition:.2s;z-index:80}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:0;border-radius:16px;max-width:min(480px,calc(100% - 32px));width:100%;padding:0;color:var(--ink);box-shadow:0 24px 80px rgba(4,26,48,.25)}dialog::backdrop{background:rgba(8,29,50,.46)}.dialog-content{position:relative;padding:30px}.dialog-content h2{margin:4px 0 17px;font-size:24px}.dialog-close{position:absolute;right:14px;top:12px;min-width:42px;font-size:26px;color:var(--muted)}
@media(max-width:1100px){.workspace{grid-template-columns:220px minmax(0,1fr) 220px}.tool-button span{display:none}.planner-brand img:first-child{width:122px}.planner-brand .c14-mark{width:96px}}
@media(max-width:760px){body{font-size:16px;padding-bottom:74px}.planner-header{height:66px;padding:0 14px;gap:9px}.planner-brand{gap:7px}.planner-brand img:first-child{width:105px}.planner-brand .c14-mark{width:82px}.brand-divider{height:24px}.planner-title{display:block;margin-left:auto;text-align:right}.planner-title .eyebrow{display:block;font-size:9px}.planner-title strong{font-size:15px}.save-status{display:none}.header-actions{margin:0}.outline-button{display:none}.icon-button{font-size:20px;width:42px;padding:0}.planner-app{padding:20px 12px 20px}.quick-start{display:block;padding:4px 2px 20px}.quick-start h1{font-size:34px}.intro-copy{font-size:15px;margin-top:12px}.start-actions{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.primary-button,.ghost-button{width:100%;padding:0 10px}.ghost-button{border:1px solid var(--line);border-radius:10px}.plan-note{font-size:10px;margin-top:12px;white-space:normal}.toolbar{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px;border-radius:12px 12px 0 0}.view-switch{width:max-content}.view-switch button{padding:0 11px;min-height:40px;font-size:13px}.room-picker{justify-self:end}.room-picker select{max-width:120px;padding-right:8px}.toolbar-tools{grid-column:1/2;border:0;padding:0}.tool-button{padding:0 8px}.toolbar-main-actions{grid-column:2/3;grid-row:2;margin:0;justify-self:end}.soft-button{display:none}.primary-small{min-height:40px;padding:0 14px}.workspace{display:block;min-height:0;border-radius:0 0 12px 12px;overflow:visible;position:relative}.panel{display:none;position:fixed;left:0;right:0;bottom:62px;z-index:40;border:0;border-radius:18px 18px 0 0;box-shadow:0 -12px 36px rgba(13,45,82,.18);padding:18px 16px;max-height:72vh;overflow:auto}.panel.is-open{display:block}.catalog-panel{border:0}.inspector-panel{border:0}.mobile-only{display:block}.panel-close{font-size:26px;min-width:42px;color:var(--muted)}.catalog-list{max-height:40vh;grid-template-columns:1fr 1fr}.canvas-panel{min-height:calc(100svh - 350px);border-radius:0 0 12px 12px}.canvas-header{padding:14px}.canvas-header span{font-size:11px}.desktop-only{display:none}.viewport{min-height:58svh;padding:10px}.viewport svg{max-height:none}.canvas-footer{padding:8px 14px;font-size:10px}.canvas-footer span:first-child{display:none}.empty-hint{padding:12px 14px;white-space:nowrap}.mobile-dock{position:fixed;display:grid;grid-template-columns:repeat(4,1fr);left:0;right:0;bottom:0;height:64px;background:#fff;border-top:1px solid var(--line);z-index:50;padding-bottom:env(safe-area-inset-bottom)}.mobile-dock button{min-height:64px;color:var(--muted);font-size:20px;line-height:1}.mobile-dock button:first-child{color:var(--blue)}.mobile-dock small{display:block;font-size:10px;margin-top:4px}.three-view{min-height:58svh}.toast{bottom:82px}.selection-empty{padding:24px 10px}.dialog-content{padding:24px 20px}}
@media(max-width:360px){.planner-brand img:first-child{width:88px}.planner-brand .c14-mark{width:70px}.planner-title strong{font-size:13px}.planner-app{padding-left:8px;padding-right:8px}.catalog-list{grid-template-columns:1fr}.quick-start h1{font-size:31px}.room-picker select{max-width:104px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:0s!important;animation:none!important}}
@media(max-width:760px){.project-name-label input{width:125px;font-size:12px;padding:5px 6px}.planner-title{gap:4px}}

/* Shared dynamic controls, including touch and export visibility. */
[hidden]{display:none!important}.toast.visible{opacity:1;transform:translate(-50%,0)}
.catalog-card{display:grid;grid-template-columns:42px 1fr;text-align:left;gap:2px 10px;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;min-height:76px}.catalog-card:hover{background:#eaf4fb}.catalog-card strong{font-size:16px}.catalog-card small{grid-column:2;font-size:14px;color:var(--muted)}.furniture-icon{grid-row:span 2;align-self:center;font-size:32px;color:var(--blue)}
.selection-fields form{display:grid;gap:12px}.field-label{font-size:16px}.field-label input,.field-label textarea,.field-label select{width:100%;min-width:0;min-height:48px;font-size:16px}.edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.edit-actions button{border:1px solid var(--line)}.warning{padding:12px;background:#fff2e7;color:#874525;border-radius:9px;font-size:15px}
#dialog-body{display:grid;gap:12px}#dialog-body form{display:grid;gap:12px}#dialog-body>.soft-button{background:#f0f5fa;text-align:left;display:block;min-height:52px}#dialog-body label:has(input[type=checkbox]){display:flex;align-items:center;gap:10px}#dialog-body input[type=checkbox]{width:22px;height:22px}.project-card{border:1px solid var(--line);padding:14px;border-radius:12px}.project-card svg{width:100%;height:140px}.project-card .soft-button{display:inline-block}.project-card p{font-size:14px}
#furniture-list{width:100%;max-width:none;margin:16px 0;padding:0 12px 80px}#furniture-list h2{font-size:20px}.item-list-button{border:1px solid var(--line);border-radius:10px;background:#fff;margin:4px;padding:10px 14px}.three-view canvas{width:100%;height:100%;display:block}.viewport{height:600px;min-height:500px;flex:none}.inspector-panel{max-height:900px;overflow:auto}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #39a6e3;outline-offset:3px}button:disabled{opacity:.4;cursor:default}
@media(max-width:760px){.soft-button{display:inline-block}.toolbar-main-actions>.soft-button{display:none}.planner-header{height:auto;min-height:76px;flex-wrap:wrap;padding:10px 12px;gap:6px}.planner-brand img:first-child{width:98px}.planner-brand .c14-mark{width:78px}.planner-title{order:3;width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left}.planner-title .eyebrow{display:none}.save-status{display:inline;font-size:12px}.header-actions{margin-left:auto}.project-name-label input{font-size:16px;width:155px}.catalog-tabs button,.room-picker,.view-switch button,.custom-furniture{font-size:16px;min-height:48px}.mobile-dock small{font-size:13px}.viewport{height:58svh;min-height:360px}.three-view{height:100%;min-height:0}.panel{max-height:68dvh;bottom:64px}.panel .soft-button{display:block}.canvas-header{gap:8px}.canvas-controls button{min-height:48px;min-width:32px}.quick-start h1{font-size:30px}.catalog-card{grid-template-columns:32px 1fr;padding:8px}.catalog-card small{font-size:13px}.canvas-footer{font-size:12px}.panel-kicker{font-size:12px}.search-field input{font-size:16px}.toolbar{gap:5px}.toolbar-tools{min-width:0}.room-picker select{font-size:16px;max-width:108px}}

.preview-status{padding:12px 16px;border:1px solid #cbdce9;background:#eef5fb;border-radius:12px;font-size:16px}.preview-status strong{color:var(--blue)}

.download-ready{display:block;overflow-wrap:anywhere;padding:14px;background:#e1f1fa;color:#145a91;border-radius:9px;min-height:48px}

/* Selected furniture controls stay inside the canvas in both views. */
.asset-tools{position:absolute;z-index:5;width:264px;padding:10px;border:2px solid #1767bf;border-radius:16px;background:#fff;box-shadow:0 8px 25px #12365425;touch-action:auto;color:#15344f}
.asset-tools>strong{display:block;font-size:16px;margin:0 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.asset-control-row{display:grid;grid-template-columns:64px 48px minmax(0,1fr) 48px;align-items:center;gap:3px;margin-top:3px}
.asset-control-row label{font-size:13px;font-weight:700}.asset-control-row button{min-width:48px;min-height:48px;padding:0;font-size:24px;border-radius:9px}
.asset-control-row input{width:100%;min-width:0;height:48px;padding:2px;text-align:center;font-size:16px;border:1px solid #ccd7e2;border-radius:8px}
@media(max-width:760px){.asset-tools{width:250px;padding:8px}.asset-control-row{grid-template-columns:54px 48px minmax(0,1fr) 48px}.toolbar .room-picker{min-width:0}.toolbar select{max-width:145px}.canvas-header strong{font-size:17px}}

.asset-tools>strong{padding-right:40px}.asset-close{position:absolute;right:4px;top:0;width:48px;height:40px;min-height:40px;border:0;background:transparent;font-size:24px;color:#25496a}

.toolbar{flex-wrap:wrap}.toolbar>*,.toolbar button{flex-shrink:0;white-space:nowrap}.toolbar .room-picker{font-size:16px}.toolbar button{font-size:16px;min-height:48px}
@media(max-width:760px){.toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.toolbar>.room-picker{display:block;justify-self:stretch;font-size:13px}.toolbar>.room-picker select{width:100%;max-width:none;min-width:0}.toolbar>.view-switch{width:100%;align-self:end}.toolbar .view-switch button{min-width:0;flex:1;font-size:14px;padding:0 4px}.toolbar-tools{grid-row:3;grid-column:1}.toolbar-main-actions{grid-row:3;grid-column:2}.asset-close{min-height:48px;height:48px}.asset-tools>strong{min-height:28px}}

/* Desktop editor uses the available screen; side panels scroll independently. */
@media(min-width:761px){
 body{height:100dvh;display:flex;flex-direction:column}
 .planner-header{flex:none;padding:0 16px}
 .planner-app{flex:1;min-height:0;display:flex;flex-direction:column;padding:8px 12px 0}
 .preview-status{flex:none;margin:0 0 8px;padding:8px 12px}
 .quick-start{flex:none;padding:8px 0 12px;gap:16px;align-items:center}
 .quick-start h1{font-size:28px}.quick-start h1 br{display:none}.quick-start .intro-copy{margin-top:6px;font-size:16px}.quick-start .plan-note{white-space:normal;max-width:260px}
 .toolbar{flex:none}
 .workspace{flex:1;min-height:300px;grid-template-rows:minmax(0,1fr)}
 .workspace>.panel{min-height:0;max-height:none;overflow:auto}
 .catalog-panel{display:flex;flex-direction:column}.catalog-panel>*{flex-shrink:0}.catalog-list{flex:1;min-height:0;max-height:none;flex-shrink:1}
 .canvas-panel{min-height:0}.canvas-header,.canvas-footer{flex:none}
 .viewport{flex:1;height:auto;min-height:0;padding:12px;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr)}
 .viewport svg{max-height:none;min-height:0}.three-view{min-height:0;height:100%}
 #furniture-list{flex:none;max-height:96px;overflow:auto;margin:0;padding:8px 12px}
 #furniture-list h2{display:inline-block;margin:0 12px 0 0;font-size:16px}
}

.studio-tools{flex:none;padding:8px 14px;background:#f3f1ec;border-bottom:1px solid #d9d9d0}.studio-tools>div{display:flex;flex-wrap:wrap;gap:6px}.studio-tools button{background:#fff;border:1px solid #d4d8d3;padding:6px 14px;border-radius:8px;font-weight:700;font-size:15px}.studio-tools button[aria-pressed=true]{background:#243e43;color:#fff}.studio-tools small{display:block;margin-top:5px;color:#536b6d}.three-view{border-radius:0}.asset-tools{border-color:#477b80;box-shadow:0 12px 35px #243c4922}.canvas-header strong{font-size:20px}.viewport{background:#e9e8e3}.planner-title .eyebrow{letter-spacing:.08em}@media(max-width:760px){.studio-tools{padding:6px}.studio-tools button{flex:1;font-size:13px;padding:4px 8px}.studio-tools small{font-size:12px}}

@media(max-width:760px){.preview-note{font-size:12px;line-height:1.55;padding:8px 12px}.studio-tools small{font-size:11px}.canvas-header{padding:8px 12px}.planner-app{padding-top:8px}}

.viewport:has(.three-view:not([hidden])) .empty-hint{display:none}
