:root{--canvas:#dde2e7;--surface:#fff;--ink:#22272e;--muted:#69707a;--line:#b9c0c8;--line-strong:#9aa3ad;--accent:#1f5fa8;--accent-soft:#e3ecf6;--accent2:#b3541e;--danger:#b3261e;--radius-sm:4px;--radius-md:6px;color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;font-family:Pretendard Variable,Pretendard,-apple-system,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif;font-size:14px;line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);cursor:pointer;padding:6px 10px}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{color:var(--muted);cursor:default;opacity:.6}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app{--rail-l:280px;--rail-r:0px;grid-template-columns:var(--rail-l) minmax(480px, 1fr) var(--rail-r);grid-template-rows:48px 1fr;grid-template-areas:"top top top""panel view inspect";height:100%;transition:grid-template-columns .16s;display:grid}.app[data-inspector=on]{--rail-r:300px}.rails{display:contents}.sheet-controls{display:none}@media (prefers-reduced-motion:reduce){.app{transition:none}}.topbar{background:var(--surface);border-bottom:1px solid var(--line);grid-area:top;align-items:center;gap:16px;padding:0 16px;display:flex}.brand{flex:none;align-items:center;height:32px;display:inline-flex}.brand img{object-fit:contain;width:128px;height:auto;max-height:32px;display:block}.topbar-group{gap:6px;display:flex}.save-command{align-items:center;gap:6px;display:flex}.save-primary{background:var(--accent);border-color:var(--accent);color:#fff}.save-primary:hover{background:color-mix(in srgb, var(--accent) 88%, #000);border-color:var(--accent)}.save-feedback{max-width:180px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.status{color:var(--muted);font-variant-numeric:tabular-nums;margin:0 0 0 auto}button.status{border-radius:var(--radius-sm);background:0 0;border:0;padding:6px 8px}.status-warning{color:var(--danger);font-weight:600}button.status-warning:hover{background:color-mix(in srgb, var(--danger) 10%, transparent);border-color:#0000}.topbar-menu{flex:none;position:relative}.account-menu{order:2}.topbar-menu summary{cursor:pointer;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:6px 10px;list-style:none}.topbar-menu summary::-webkit-details-marker{display:none}.topbar-menu[open] summary{border-color:var(--accent);color:var(--accent)}.topbar-popover,.account-popover{z-index:10;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-md);width:300px;max-height:min(70vh,560px);padding:0;position:absolute;top:calc(100% + 8px);left:0;overflow-y:auto;box-shadow:0 10px 28px #22272e38}.account-popover{width:280px;left:auto;right:0}.topbar-popover section,.account-popover section{padding:16px}.topbar-popover section+section{border-top:8px solid var(--canvas)}.topbar-popover h2,.account-popover h2{margin:0 0 12px;font-size:13px}.segmented{display:flex}.segmented button{border-radius:0}.segmented button:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.segmented button:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-left:-1px}.segmented button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff;position:relative}.panel{overscroll-behavior:contain;background:var(--surface);border-right:1px solid var(--line);grid-area:panel;min-width:0;min-height:0;overflow:hidden auto}.panel fieldset{min-width:0}.panel-nav{z-index:2;background:var(--surface);border-bottom:1px solid var(--line);gap:4px;padding:8px 12px;display:flex;position:sticky;top:0;overflow-x:auto}.panel-nav a{color:var(--muted);border-radius:var(--radius-sm);flex:none;padding:5px 8px;font-size:12px;text-decoration:none}.panel-nav a:hover,.panel-nav a:focus-visible{color:var(--accent);background:var(--accent-soft)}.panel section{border-bottom:1px solid var(--line);padding:16px}.panel section+section{border-top:8px solid var(--canvas)}.panel h3,.inspector h3{color:var(--muted);margin:12px 0 6px;font-size:12px;font-weight:700}.panel h2{border-bottom:2px solid var(--accent-soft);color:var(--ink);margin:0 0 12px;padding-bottom:8px;font-size:13px;font-weight:700}.field{margin-bottom:8px;display:block}.field select{width:100%;min-width:0;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:5px 6px}.field-label{color:var(--muted);margin-bottom:2px;font-size:12px;display:block}.field-input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);align-items:center;display:flex}.field-input:focus-within{border-color:var(--accent)}.field-input input{width:100%;min-width:0;font:inherit;font-variant-numeric:tabular-nums;background:0 0;border:0;padding:5px 6px}.field-input input:focus-visible{outline:none}.field-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.field-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.field-input input[type=number]{appearance:textfield}.field-unit{color:var(--muted);padding-right:6px;font-size:11px}.field-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.field-row.three{grid-template-columns:1fr 1fr 1fr}.furniture-form{margin-bottom:8px}.preset-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.preset{text-align:left;flex-direction:column;align-items:stretch;gap:4px;padding:6px;display:flex}.preset small{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.preset-name{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.preset-thumb{aspect-ratio:4/3;object-fit:contain;background:var(--canvas);border-radius:var(--radius-sm);width:100%;display:block}.preset-thumb-fallback{place-items:center;display:grid}.preset-thumb-fallback>span{border:1px solid var(--line-strong);border-radius:2px;max-width:84%;max-height:84%;display:block}.outliner{gap:2px;margin:0;padding:0;list-style:none;display:grid}.outliner-name{text-align:left;background:0 0;border-color:#0000;align-items:baseline;gap:8px;width:100%;padding:5px 8px;display:flex}.outliner-name:hover{background:var(--accent-soft);border-color:#0000}.outliner-name[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);font-weight:600}.outliner-name small{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.outliner-warning{color:var(--danger);font-weight:600}.sub-form{margin-top:12px}.sub-form summary{font-size:12px}.analysis-counts{color:var(--muted);flex-wrap:wrap;gap:8px;margin:6px 0;padding:0;font-size:12px;list-style:none;display:flex}.selected-name{margin:0 0 8px;font-weight:600}.button-row{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.angle{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}.danger{color:var(--danger)}.hint{color:var(--muted);margin:0;font-size:12px}.layout-list{gap:4px;margin:10px 0 0;padding:0;list-style:none;display:grid}.layout-list li{align-items:center;gap:6px;display:flex}.layout-name{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.inspector{overscroll-behavior:contain;background:var(--surface);border-left:1px solid var(--line);grid-area:inspect;min-width:0;min-height:0;overflow-y:auto}.inspector section{padding:16px}.inspector section+section{border-top:8px solid var(--canvas)}.inspector h2{border-bottom:2px solid var(--accent-soft);align-items:baseline;gap:6px;margin:0 0 12px;padding-bottom:8px;font-size:13px;font-weight:700;display:flex}.inspector-kind{color:var(--muted);margin-left:auto;font-size:11px;font-weight:400}.viewport{z-index:0;grid-area:view;min-height:0;position:relative}.walk-hint{color:#fff;border-radius:var(--radius-sm);pointer-events:none;-webkit-user-select:none;user-select:none;background:#22272eb8;margin:0;padding:6px 12px;font-size:12px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.check{cursor:pointer;align-items:center;gap:6px;margin-top:4px;display:flex}.check input{accent-color:var(--accent);margin:0}details summary{cursor:pointer;color:var(--muted);font-size:13px;font-weight:600}.shortcuts{gap:4px;margin:10px 0 0;display:grid}.shortcuts div{justify-content:space-between;gap:8px;font-size:12px;display:flex}.shortcuts dt,.shortcuts dd{margin:0}.shortcuts dd{color:var(--muted);text-align:right}kbd{font:inherit;border:1px solid var(--line);border-radius:var(--radius-sm);background:#f5f6f8;border-bottom-width:2px;padding:1px 5px;font-size:11px}.dim-label{font-variant-numeric:tabular-nums;white-space:nowrap;color:#fff;background:var(--accent);border-radius:var(--radius-sm);pointer-events:none;-webkit-user-select:none;user-select:none;padding:2px 6px;font-size:12px}.dim-label.clearance{color:var(--accent);background:var(--surface);border:1px solid var(--accent)}.dim-label.furniture{color:var(--accent2);background:var(--surface);border:1px solid var(--accent2)}.dim-label.room{color:var(--ink);background:var(--canvas);padding:0 4px}.dim-label.angle-label{transform:translateY(-22px)}.furniture-actions{background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius-md);white-space:nowrap;gap:2px;padding:2px;display:flex;box-shadow:0 6px 18px #22272e38}.furniture-actions button{background:0 0;border-color:#0000;min-width:30px;padding:4px 6px;font-size:14px;line-height:1}.furniture-actions button:hover:not(:disabled){background:var(--accent-soft);border-color:#0000}.canvas-toolbar{z-index:5;background:color-mix(in srgb, var(--surface) 92%, transparent);border:1px solid var(--line-strong);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:200px;padding:10px;position:absolute;bottom:12px;left:12px;box-shadow:0 6px 18px #22272e29}.canvas-toolbar-row{grid-template-columns:1fr 1fr;gap:6px;display:grid}.canvas-toolbar .field{margin-bottom:0}.canvas-toolbar .field-label{font-size:11px}.canvas-toolbar .hint{margin-top:6px}.plan-review{z-index:40;background:color-mix(in srgb, var(--ink) 78%, transparent);grid-template-columns:1fr minmax(260px,340px);display:grid;position:fixed;inset:0}.plan-review-canvas{place-items:center;min-width:0;padding:16px;display:grid}.plan-review-canvas svg{background:var(--surface);border-radius:var(--radius-md);max-width:100%;max-height:100%}.plan-review-side{background:var(--surface);border-left:1px solid var(--line);padding:16px;overflow-y:auto}.plan-review-side h2{margin-top:0}.plan-review-rooms{margin:4px 0 12px;padding-left:18px;font-size:13px}.plan-room{fill:color-mix(in srgb, var(--accent) 22%, transparent);stroke:var(--accent);stroke-width:3px}.plan-wall{stroke:var(--accent);opacity:.85}.plan-wall-reference{stroke:var(--accent2);opacity:1}.plan-wall-hit{stroke:#0000;cursor:pointer}.plan-wall-hit:hover{stroke:color-mix(in srgb, var(--accent2) 35%, transparent)}@media (width<=720px){.plan-review{grid-template-rows:1fr auto;grid-template-columns:1fr}.plan-review-side{border-left:0;border-top:1px solid var(--line);max-height:45vh}}@media (width<=1199px){.app{--rail-l:240px}.app[data-inspector=on]{--rail-r:260px}.preset-grid{grid-template-columns:1fr 1fr}}@media (width<=1023px){.app{grid-template-columns:var(--rail-l) minmax(0, 1fr);grid-template-areas:"top top""panel view"}.app[data-inspector=on]{--rail-r:0px}.inspector{z-index:20;border:1px solid var(--line-strong);border-radius:var(--radius-md);width:280px;position:fixed;top:56px;bottom:12px;right:12px;box-shadow:0 10px 28px #22272e38}.canvas-toolbar{width:180px}}@media (width<=720px){.app{--sheet-h:64px;grid-template:"top""view"1fr/1fr}.app[data-sheet=half]{--sheet-h:45vh}.app[data-sheet=full]{--sheet-h:90vh}.topbar{flex-wrap:wrap;gap:4px 6px;padding:6px 10px}.topbar button,.topbar-menu summary{padding:5px 8px;font-size:13px}.topbar-group button,.topbar-menu summary{text-align:center;min-width:40px;min-height:32px;font-size:16px;line-height:1}.topbar-menu summary{font-size:13px}.topbar-group{gap:6px}.brand img{width:88px}.account-menu{margin-left:0}.topbar-popover,.account-popover{width:auto;position:fixed;top:56px;left:12px;right:12px}.status{margin:0;font-size:12px}.rails{z-index:30;height:var(--sheet-h);padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface);border-top:1px solid var(--line-strong);border-radius:14px 14px 0 0;flex-direction:column;transition:height .18s;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 28px #22272e38}.sheet-controls{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:8px;padding:0 12px 8px;display:flex}.sheet-grip{touch-action:none;cursor:grab;background:0 0;border-color:#0000;flex:none;place-items:center;width:56px;height:32px;margin-right:auto;padding:0;display:grid}.sheet-grip:active{cursor:grabbing}.sheet-grip-bar{background:var(--line-strong);border-radius:2px;width:36px;height:4px;display:block}.sheet-tabs{flex:none}.sheet-tabs button{padding:5px 10px;font-size:12px}.panel,.inspector{width:auto;min-height:0;box-shadow:none;border:0;border-radius:0;flex:auto;position:static}.app[data-sheet-tab=tools] .inspector,.app[data-sheet-tab=inspector] .panel,.app[data-sheet=peek] .panel,.app[data-sheet=peek] .inspector{display:none}.walk-hint{bottom:calc(var(--sheet-h) + 12px)}@media (prefers-reduced-motion:reduce){.rails{transition:none}}}.print-sheets{display:none}@media print{@page{size:A4 portrait;margin:12mm}.app{display:none}.print-sheets{color:#111;font-size:11pt;display:block}.print-sheet{page-break-after:always;break-after:page}.print-sheet:last-child{page-break-after:auto;break-after:auto}.print-head{border-bottom:1px solid #111;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:4mm;display:flex}.print-head h2{margin:0;font-size:16pt}.print-head p{font-variant-numeric:tabular-nums;margin:0}.print-plan{width:100%;height:120mm;margin:6mm 0;display:block}.print-tables{grid-template-columns:1fr 1fr;align-items:start;gap:8mm;display:grid}.print-tables h3{margin:0 0 2mm;font-size:11pt}.print-tables table{border-collapse:collapse;width:100%;font-size:9.5pt}.print-tables th,.print-tables td{text-align:left;border-bottom:1px solid #bbb;padding:1.5mm 1mm}.print-tables td:not(:first-child),.print-tables th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.print-empty{color:#666;margin:0}}
