:root{font-family:system-ui,sans-serif;color:#1a1a1a;background:#f4f6f8}body{margin:0}.app-shell{min-height:100vh}.topbar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem;background:#1b3a2d;color:#fff}.topbar .tagline{opacity:.8;font-size:.9rem}.topbar nav a{color:#b8e6c8;margin-right:.75rem}main{padding:1.25rem;max-width:1100px;margin:0 auto}.panel{background:#fff;border-radius:8px;padding:1rem 1.25rem;box-shadow:0 1px 3px #00000014}.login-page{min-height:100vh;display:grid;place-items:center}.login-card{background:#fff;padding:2rem;border-radius:8px;display:grid;gap:.75rem;min-width:280px}.login-card input{padding:.5rem}.error{color:#b00020}.status-banner{padding:1rem;border-radius:6px;margin-bottom:1rem}.status-green{background:#e6f4ea}.status-yellow{background:#fef7e0}.status-red{background:#fce8e6}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:1rem}.metric{background:#f8f9fa;padding:.75rem;border-radius:6px}.metric span{display:block;font-size:.8rem;color:#666}.house-map{position:relative;height:280px;background:linear-gradient(#e8efe8,#dfe8df);border:2px solid #8aa;border-radius:4px;margin:1rem 0}.house-map.editable{cursor:crosshair}.zone-pin{position:absolute;transform:translate(-50%,-50%);background:#fff;border:2px solid #2d6a4f;border-radius:8px;padding:.25rem .5rem;text-align:center;font-size:.85rem}.zone-pin small{display:block;font-size:.7rem;color:#555}.layout-form{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin-bottom:.5rem}.sensor-palette{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.sensor-palette button.active{background:#2d6a4f;color:#fff}.muted{color:#666}.alert-list{list-style:none;padding:0}.alert-list li{padding:.75rem;border-left:4px solid #888;margin-bottom:.5rem;background:#fafafa}.alert-critical{border-color:#c0392b!important}.alert-warning{border-color:#f39c12!important}.compare-card{margin-top:1rem;padding:1rem;background:#f0f7f4;border-radius:6px}.opt-in{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem}
