:root{color:#1d2433;--line:#d9dde3;--muted:#5b6573;--primary:#1f5fbf;background:#f5f6f8;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px}*{box-sizing:border-box}body{margin:0}h1{margin:0;font-size:1.25rem}h2{margin:0 0 12px;font-size:1.1rem}button{font:inherit;color:inherit;cursor:pointer;background:#fff;border:1px solid #b8bfc9;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:6px 12px;display:inline-flex}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button:disabled{opacity:.55;cursor:default}:focus-visible{outline-offset:2px;outline:3px solid #f0a500}label{gap:4px;font-size:.9rem;font-weight:600;display:grid}input,textarea{font:inherit;border:1px solid #b8bfc9;border-radius:6px;width:100%;padding:7px 10px;font-weight:400}input[type=checkbox]{width:18px;height:18px;margin:0}textarea{resize:vertical}label.check{align-items:center;gap:8px;display:flex}.error{color:#b3261e;margin:0}.ok{color:#1b6e2d;margin:0}.hint{color:var(--muted);margin:0;font-size:.85rem}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.card{border:1px solid var(--line);background:#fff;border-radius:8px;gap:14px;padding:20px;display:grid}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login .card{width:100%;max-width:340px}.settings{max-width:420px}.topbar{border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px 16px;display:flex}.topbar .contact{color:var(--muted);flex:auto;margin:0}.topbar nav{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.page{gap:14px;padding:16px;display:grid}.banner{color:#7a1c15;background:#fdecea;border:1px solid #f3b4ae;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.banner button{background:0 0;border:none;padding:0 6px;font-size:1.2rem}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border-radius:999px}.chip-on{color:#fff;background:#1d2433;border-color:#1d2433}.count{font-weight:700}.search{max-width:360px}.bulkbar{background:#e8f0fc;border-radius:6px;flex-wrap:wrap;gap:8px;padding:8px;display:flex}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:8px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:900px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;padding:8px 10px}thead th{color:var(--muted);background:#fafbfc;font-size:.85rem}td.note{white-space:normal;overflow-wrap:anywhere;max-width:240px}td.actions{gap:6px;display:flex}td.empty{text-align:center;color:var(--muted);padding:24px}.badge{border-radius:999px;padding:2px 8px;font-size:.85rem;font-weight:600;display:inline-block}.badge-active{color:#1b6e2d;background:#e3f4e6}.badge-grace{color:#7a5300;background:#fff4d6}.badge-expired{color:#a1261c;background:#fdecea}.badge-disabled{color:#3d4450;background:#e7e9ed}dialog{border:1px solid var(--line);border-radius:8px;width:min(480px,100vw - 32px);max-height:calc(100vh - 32px);padding:20px}dialog::backdrop{background:#0006}dialog form{gap:12px;display:grid}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.changes{background:#f5f6f8;border-radius:6px;max-height:160px;margin:0;padding:8px 8px 8px 24px;overflow-y:auto}.warning{background:#fff4d6;border:1px solid #f0d58a;border-radius:6px;gap:8px;margin:0;padding:8px 12px;display:grid}.warning p{margin:0}
