.property-visual { align-self:stretch; }
.floorplan-entry { margin-top:18px; padding-top:18px; border-top:1px solid var(--brand); }
.floorplan-entry-actions,.model-source-actions { display:flex; flex-wrap:wrap; gap:10px; }
.floorplan-entry-actions .button { flex:1; justify-content:center; font-size:14px; gap:8px; }
.model-source-actions { align-items:center; margin:0 0 16px; }
.model-source-actions .button { font-size:14px; }
.model-dialog .sample-ready { border:1px solid var(--brand); background:var(--accent); padding:16px; font-size:14px; font-weight:700; margin-bottom:22px; }
.sample-ready span { display:block; font-weight:400; margin-top:8px; line-height:1.4; }
#direct-plan-status,#model-upload-status { overflow-wrap:anywhere; }
#model-upload-status:not([hidden]) { padding:12px; border:1px solid var(--line); margin-bottom:18px; }
@media(max-width:520px) { .floorplan-entry-actions { display:grid; grid-template-columns:1fr; } }
.visual-switch { display:flex; border:1px solid var(--brand); background:#fff; }
.visual-switch button { flex:1; padding:13px 8px; min-height:48px; font-size:14px; font-weight:700; border:0; background:transparent; color:var(--ink); }
.visual-switch button + button { border-left:1px solid var(--brand); }
.visual-switch button[aria-pressed="true"] { background:var(--ink); color:#fff; }
#property-model { border:1px solid var(--brand); border-top:0; background:#eeeFE8; }
.model-topline { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 18px 0; font-size:12px; font-weight:700; }
#sample-model { width:100%; display:block; min-height:230px; }
.model-stats { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); padding:15px 18px; gap:15px; }
.model-stats span { font-size:12px; line-height:1.4; color:var(--muted); }
.model-stats strong { display:block; font-size:17px; font-weight:600; color:var(--ink); }
.upload-group { margin-bottom:28px; }
.upload-group h3 { font-size:18px; margin:0 0 12px; display:flex; justify-content:space-between; gap:12px; }
.upload-group h3 span { font-size:14px; font-weight:400; color:var(--muted); }
.upload-group .upload-zone { min-height:130px; padding:18px; }
.file-input { position:absolute; width:1px; height:1px; opacity:0; overflow:hidden; }
.plan-actions { display:flex; align-items:center; gap:15px; flex-wrap:wrap; margin-top:13px; }
.draft-summary dd { overflow-wrap:anywhere; }
.model-dialog { width:min(1160px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); padding:0 24px 24px; }
.model-dialog .modal-top { position:sticky; top:0; background:var(--paper); z-index:2; }
.model-dialog h2 { font-size:clamp(30px,4vw,48px); }
.model-dialog > p { max-width:900px; }
.model-workspace { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:26px; align-items:start; }
.model-stage { position:sticky; top:65px; min-width:0; }
#plan-canvas,#model-canvas { width:100%; display:block; border:1px solid var(--brand); border-top:0; background:#eef0e8; }
#plan-canvas { touch-action:manipulation; cursor:crosshair; }
#plan-canvas:focus-visible { outline:3px solid #7a8d00; outline-offset:2px; }
#rotate-control { padding:0 14px 16px; border:1px solid var(--brand); border-top:0; }
#rotate-control label { margin:0; padding:12px 0; }
#model-rotation { width:100%; accent-color:var(--ink); }
.model-controls > p,.model-controls #trace-controls > p { font-size:14px; line-height:1.45; }
.model-controls label { margin:15px 0 8px; }
.model-controls input[type="number"] { width:100%; border:1px solid var(--brand); border-radius:0; min-height:48px; padding:10px; font-size:18px; background:#fff; }
.model-controls .button { width:100%; justify-content:center; font-size:14px; padding:12px; min-height:48px; margin:6px 0; }
.model-controls .text-button { min-height:44px; }
.model-controls hr { border:0; border-top:1px solid var(--line); margin:22px 0; }
.model-measurements { margin-top:20px; border-top:1px solid var(--brand); }
.model-measurements div { display:flex; justify-content:space-between; gap:14px; padding:10px 0; border-bottom:1px solid var(--line); font-size:14px; }
.model-measurements strong { text-align:right; }
.model-controls .measurement-note { color:var(--muted); font-size:13px; line-height:1.45; }
@media(max-width:800px) { .property-visual { width:100%; } .model-workspace { grid-template-columns:1fr; gap:24px; } .model-stage { position:static; } .model-dialog { padding:0 16px 20px; } .trace-buttons { display:grid; grid-template-columns:1fr 1fr; gap:8px; } .model-stats { gap:8px; padding:13px; } .model-stats strong { font-size:15px; } }
