:root{--bg:#f7f7f8;--surface:#fff;--border:#e5e4e7;--hover:#f2f1f5;--text:#08060d;--text-muted:#6b6375;--accent:#aa3bff;--danger:#e53e3e;--online:#10b981;--offline:#ef4444;--unknown:#d1d5db;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--bg:#16171d;--surface:#1f2028;--border:#2e303a;--hover:#2a2c36;--text:#f3f4f6;--text-muted:#9ca3af;--accent:#c084fc;--danger:#f87171;--online:#34d399;--offline:#f87171;--unknown:#4b5563}}*,:before,:after{box-sizing:border-box}body{font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}#app{width:100%;min-height:100vh}h1,h2,h3{letter-spacing:-.02em;color:var(--text);margin:0;font-weight:600}p{margin:0}a{color:var(--accent)}code{font-family:var(--mono);background:var(--hover);border-radius:4px;padding:2px 6px;font-size:.82em}.badge{border-radius:999px;padding:.2rem .6rem;font-size:.78rem;font-weight:500;display:inline-block}.badge.actif{color:#065f46;background:#d1fae5}.badge.expiré{color:#991b1b;background:#fee2e2}.badge.exempté{color:#3730a3;background:#e0e7ff}@media (prefers-color-scheme:dark){.badge.actif{color:#6ee7b7;background:#064e3b}.badge.expiré{color:#fca5a5;background:#7f1d1d}.badge.exempté{color:#a5b4fc;background:#1e1b4b}}.status-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block}.status-dot.online{background:var(--online)}.status-dot.offline{background:var(--offline)}.status-dot.unknown{background:var(--unknown)}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.5rem 1.1rem;font-size:.9rem;font-weight:500;transition:opacity .15s}.btn-primary:hover:not(:disabled){opacity:.85}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:.45rem .9rem;font-size:.85rem;transition:all .15s}.btn-secondary:hover{color:var(--text);border-color:var(--text-muted)}.btn-danger{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;transition:opacity .15s}.btn-danger:hover{opacity:.75}.field{flex-direction:column;gap:.35rem;display:flex}.field.full{grid-column:1/-1}label{color:var(--text-muted);font-size:.82rem;font-weight:500}input,select,textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;width:100%;padding:.55rem .75rem;font-family:inherit;font-size:.9rem;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}textarea{resize:vertical}.form-actions{justify-content:flex-end;gap:.5rem;margin-top:.75rem;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px}table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:10px;width:100%;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.7rem 1rem}th{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--bg);font-size:.75rem;font-weight:500}tr:last-child td{border-bottom:none}.empty{text-align:center;color:var(--text-muted);padding:3rem;font-size:.9rem}.muted{color:var(--text-muted)}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}
