.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.card{background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.metric{font-size:2rem;font-weight:800}.label{color:var(--muted);font-size:.82rem}.status-pill{border:1px solid var(--border);background:var(--surface);padding:8px 12px;border-radius:999px;color:var(--muted);font-size:.8rem}.status-pill.online{color:var(--success)}.status-pill.offline{color:var(--warning)}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:10px;padding:10px 14px;cursor:pointer}.btn.primary{background:var(--accent);color:#041019;border-color:var(--accent);font-weight:700}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab{border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:10px 14px;border-radius:10px}.empty{padding:36px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius)}
.error-panel{padding:24px;border:1px solid var(--danger);border-radius:var(--radius);background:rgba(255,107,107,.08);color:var(--text)}
.family-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
table.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--border)}.data-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.data-table tr.clickable{cursor:pointer}.data-table tr.clickable:hover{background:var(--surface-2)}
.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:.72rem;font-weight:700}.badge.registered{background:rgba(77,208,225,.15);color:var(--accent)}.badge.active,.badge.operational{background:rgba(66,211,146,.15);color:var(--success)}.badge.attention{background:rgba(255,200,87,.15);color:var(--warning)}.badge.critical,.badge.retired{background:rgba(255,107,107,.15);color:var(--danger)}
.modal-backdrop{position:fixed;inset:0;background:rgba(3,8,15,.6);display:flex;align-items:center;justify-content:center;padding:20px;z-index:20}.modal{width:min(520px,100%);max-height:85vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}
.field{display:grid;gap:6px;margin-bottom:14px}.field label{color:var(--muted);font-size:.8rem}.field input,.field select,.field textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:10px 12px}
.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.user-chip{color:var(--muted);font-size:.8rem}