:root{--bg: #f1f5f9;--card: #ffffff;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--primary: #2563eb;--danger: #ef4444;--green: #10b981;--radius: 12px;--shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.app{max-width:1200px;margin:0 auto;padding:24px}.app-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px;margin-bottom:24px}.app-header h1{margin:0;font-size:1.6rem}.subtitle{margin:4px 0 0;color:var(--muted)}.btn{border:1px solid var(--border);background:var(--card);color:var(--text);padding:8px 14px;border-radius:8px;cursor:pointer;font-size:.9rem;transition:background .15s,border-color .15s}.btn:hover:not(:disabled){border-color:var(--primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.danger{color:var(--danger);border-color:#fecaca}.btn.danger:hover:not(:disabled){background:#fef2f2}.btn.small{padding:4px 8px;font-size:.8rem}.building-selector{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.building-selector select{padding:8px 12px;border-radius:8px;border:1px solid var(--border);background:var(--card);font-size:.9rem;min-width:180px}.inline-form{display:flex;gap:8px;flex-basis:100%;margin-top:8px}.inline-form input{padding:8px 12px;border-radius:8px;border:1px solid var(--border);flex:1}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card h3{margin:0 0 12px;font-size:1.05rem}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-header h3{margin:0}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:20px}.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.kpi-card.overall{background:linear-gradient(135deg,#0f172a,#1e293b);color:#fff;border:none}.kpi-card.overall .kpi-label,.kpi-card.overall .kpi-sub{color:#cbd5e1}.kpi-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.kpi-value{font-size:2rem;font-weight:700;margin:6px 0}.kpi-sub{font-size:.8rem;color:var(--muted)}.progress-bar{margin-top:12px;height:6px;background:#94a3b84d;border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:var(--green);border-radius:99px;transition:width .4s ease}.delta{font-weight:600}.delta.up{color:var(--green)}.delta.down{color:var(--danger)}.delta.neutral{color:var(--muted)}.chart-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}@media (max-width: 900px){.chart-grid{grid-template-columns:1fr}}.bottom-grid{display:grid;grid-template-columns:360px 1fr;gap:20px;margin-top:20px;align-items:start}@media (max-width: 900px){.bottom-grid{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field span{font-size:.82rem;font-weight:600;color:var(--muted)}.field input,.field textarea{padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:.9rem;font-family:inherit}.elevation-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.report-form .hint{margin-top:0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}th{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}td.strong{font-weight:700}td.notes-cell{white-space:normal;max-width:260px;color:var(--muted)}.hint{color:var(--muted);font-size:.88rem}.error{color:var(--danger);font-size:.88rem;margin:8px 0}.error.banner{background:#fef2f2;border:1px solid #fecaca;padding:10px 14px;border-radius:8px;margin-bottom:16px}.empty-state{text-align:center;padding:40px}
