.flat-wind-launch { display:flex; gap:20px; align-items:center; justify-content:space-between; margin:8px 0; padding:12px; border:1px solid #93c5fd; border-radius:8px; background:#eff6ff; }
.flat-wind-launch small { display:block; margin-top:4px; color:#475569; }
.flat-wind-saved { display:grid; gap:8px; }
#flat-wind-dialog { width:min(1280px,96vw); max-width:96vw; max-height:94vh; padding:0; border:1px solid #cbd5e1; border-radius:12px; color:#172b42; background:#f8fafc; box-shadow:0 20px 80px #0f172a55; font:13px/1.45 system-ui,sans-serif; }
#flat-wind-dialog::backdrop { background:#0f172a80; }
#flat-wind-dialog * { box-sizing:border-box; }
#flat-wind-dialog [hidden] { display:none !important; }
.fw-header,.fw-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 20px; background:white; }
.fw-header { border-bottom:1px solid #dbe3ed; }
.fw-header h2 { margin:0; font-size:20px; }
.fw-header p { margin:3px 0 0; color:#64748b; font-size:12px; }
.fw-body { display:grid; grid-template-columns:340px minmax(0,1fr); }
.fw-inputs { padding:18px; border-right:1px solid #dbe3ed; background:white; }
.fw-results { padding:18px; min-width:0; }
#flat-wind-dialog fieldset { border:0; border-top:1px solid #dbe3ed; padding:12px 0; margin:12px 0 0; min-width:0; }
#flat-wind-dialog legend { font-weight:750; font-size:13px; padding:0 8px 0 0; }
.fw-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
#flat-wind-dialog label { display:block; font-size:12px; font-weight:600; color:#334155; }
#flat-wind-dialog input,#flat-wind-dialog select,#flat-wind-dialog textarea { display:block; width:100%; min-width:0; padding:7px 8px; border:1px solid #b8c7d8; border-radius:5px; background:#fff; color:#172b42; font:13px system-ui; margin-top:4px; }
#flat-wind-dialog input:focus,#flat-wind-dialog select:focus,#flat-wind-dialog button:focus-visible { outline:3px solid #93c5fd; outline-offset:2px; }
#flat-wind-dialog input[aria-invalid="true"] { border-color:#b91c1c; }
#flat-wind-dialog button { font:600 12px system-ui; padding:8px 12px; border:1px solid #b8c7d8; background:white; color:#172b42; border-radius:5px; cursor:pointer; }
#flat-wind-dialog button.primary { background:#1d4ed8; border-color:#1d4ed8; color:white; }
#flat-wind-dialog button:disabled { opacity:.45; cursor:default; }
.fw-actions { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
.fw-hint { font-size:11px; color:#64748b; margin:6px 0; }
.fw-error { padding:10px 12px; border:1px solid #fbbf24; background:#fffbeb; color:#92400e; border-radius:6px; margin-bottom:12px; }
.fw-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin:12px 0; }
.fw-kpis div { padding:12px; border:1px solid #dbe3ed; background:white; border-radius:7px; }
.fw-kpis strong { display:block; font-size:19px; }
.fw-kpis small { color:#64748b; }
.fw-preview { border:1px solid #dbe3ed; border-radius:8px; background:white; overflow:hidden; }
.fw-preview svg { width:100%; display:block; min-height:250px; max-height:420px; }
.fw-zone { cursor:pointer; }
.fw-zone:focus { outline:none; stroke:#0f172a; stroke-width:3px; }
.fw-table-wrap { overflow-x:auto; margin:12px 0; }
.fw-table { width:100%; border-collapse:collapse; background:white; font-size:12px; }
.fw-table th,.fw-table td { padding:9px 7px; border-bottom:1px solid #e2e8f0; text-align:right; white-space:nowrap; }
.fw-table th:first-child,.fw-table td:first-child { text-align:left; }
.fw-table th { font-weight:600; color:#475569; background:#f1f5f9; }
.fw-table tr[data-zone] { cursor:pointer; }
.fw-table tr.fw-selected { background:#dbeafe; }
.fw-detail { padding:10px 12px; background:#eff6ff; border-left:3px solid #2563eb; min-height:45px; }
.fw-footer { position:sticky; bottom:0; border-top:1px solid #dbe3ed; z-index:2; }
.fw-docs { margin-top:16px; padding:12px; background:white; border:1px solid #dbe3ed; border-radius:7px; }
.fw-docs summary { cursor:pointer; font-weight:700; }
#fw-draw-banner { position:fixed; z-index:10000; top:110px; left:50%; transform:translateX(-50%); max-width:90vw; padding:12px 18px; background:#172b42; color:white; border-radius:8px; box-shadow:0 4px 20px #0004; }
#fw-draw-banner button { margin-left:12px; }
@media(max-width:760px) { .fw-body { grid-template-columns:1fr; } .fw-inputs { border-right:0; } .fw-header,.fw-footer { padding:12px; flex-wrap:wrap; } .fw-results { padding:12px; } .fw-kpis strong {font-size:15px;} }
@media print { .fw-print-controls {display:none;} }

.fw-saved-building { min-width:0; border:1px solid #dbe3ed; border-radius:7px; background:#fff; padding:10px; }
.fw-saved-building h3 { font:700 13px system-ui,sans-serif; margin:0 0 8px; color:#172b42; }
.fw-saved-analysis { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:7px 0; border-top:1px solid #e2e8f0; }
.fw-analysis-show { display:flex; align-items:center; gap:5px; font:12px system-ui,sans-serif; }
.fw-analysis-edit { flex:1 1 240px; min-width:0; text-align:left; }
.fw-analysis-edit strong,.fw-analysis-edit span { display:block; white-space:normal; overflow-wrap:anywhere; }
.fw-analysis-edit span { margin-top:3px; font-size:11px; font-weight:400; color:#475569; }
.fw-outline-preview svg { display:block; width:100%; height:115px; margin-top:8px; border:1px solid #dbe3ed; background:#fff; border-radius:5px; }
#flat-wind-saved .fw-analysis-edit { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:3px; text-align:left; padding:8px 10px; min-height:48px; }
#flat-wind-saved .fw-analysis-edit strong { font-size:13px; }
#flat-wind-saved .fw-analysis-edit span { margin-top:0; font-size:12px; }
