
:root { --bg:#f5f6f8; --card:#fff; --ink:#1b2130; --muted:#5d6678; --line:#e1e5ec; --accent:#c62828; --accent-ink:#fff;
        --ok:#1f7a3d; --ok-bg:#e6f4ea; --warn:#9a5b00; --warn-bg:#fff4e0; --bad:#b3261e; --bad-bg:#fde8e7; --soft:#eef1f5; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#11141a; --card:#1a1f28; --ink:#e7ebf2; --muted:#9aa3b5; --line:#2b3240; --accent:#ef5350; --accent-ink:#fff;
          --ok:#7fd69a; --ok-bg:#183223; --warn:#f2c06b; --warn-bg:#33270f; --bad:#ff8a80; --bad-bg:#3a1a19; --soft:#222937; }
}
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:15px/1.5 "Segoe UI", system-ui, -apple-system, sans-serif; }
.top { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 16px; background:var(--card); border-bottom:1px solid var(--line); flex-wrap:wrap; }
.brand { display:flex; align-items:center; gap:10px; font-size:16px; }
.logo { display:inline-grid; place-items:center; width:30px; height:30px; border-radius:8px; background:var(--accent); color:var(--accent-ink); font-weight:700; font-size:13px; }
.who { display:flex; align-items:center; gap:8px; flex-wrap:wrap; color:var(--muted); font-size:14px; }
main { max-width:1100px; margin:0 auto; padding:24px 16px 64px; }
h1 { font-size:24px; margin:0 0 4px; }
h2 { font-size:18px; margin:0 0 12px; }
.muted { color:var(--muted); }
.small { font-size:13px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:20px; margin:0 0 16px; }
.narrow { max-width:420px; margin:40px auto; }
label { display:block; font-weight:600; font-size:14px; margin:12px 0 4px; }
input[type=email], input[type=password], input[type=text], input[type=number], input[type=search] {
  width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:var(--bg); color:var(--ink); font:inherit; min-height:44px; }
input:focus-visible, button:focus-visible, a:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
button { font:inherit; font-weight:600; border-radius:8px; border:1px solid var(--line); background:var(--card); color:var(--ink); padding:8px 14px; min-height:40px; cursor:pointer; }
button.primary { background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
button.danger { color:var(--bad); }
button.link { border:0; background:none; color:var(--muted); padding:4px 6px; min-height:32px; text-decoration:underline; }
button:disabled { opacity:.55; cursor:default; }
.row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.row.end { justify-content:flex-end; }
.spacer { flex:1; }
.err { color:var(--bad); margin:10px 0 0; min-height:1.2em; }
.note { background:var(--warn-bg); color:var(--warn); border-radius:8px; padding:10px 12px; margin:12px 0; }
.secret { background:var(--ok-bg); border-radius:10px; padding:14px; margin:12px 0; }
.secret code { font:600 16px/1.4 Consolas, monospace; word-break:break-all; }
.grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:14px; }
a.lic { display:block; text-decoration:none; color:inherit; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px; }
a.lic:hover { border-color:var(--accent); }
.lic .name { font-weight:700; font-size:16px; }
.meter { height:8px; border-radius:4px; background:var(--soft); overflow:hidden; margin:10px 0 6px; }
.meter > i { display:block; height:100%; background:var(--accent); }
.pill { display:inline-block; padding:2px 10px; border-radius:999px; font-size:12px; font-weight:700; }
.pill.ok { background:var(--ok-bg); color:var(--ok); }
.pill.bad { background:var(--bad-bg); color:var(--bad); }
.pill.warn { background:var(--warn-bg); color:var(--warn); }
.stats { display:flex; gap:12px; flex-wrap:wrap; margin:12px 0 0; }
.stat { background:var(--soft); border-radius:10px; padding:10px 14px; min-width:120px; }
.stat b { display:block; font-size:22px; }
.tablewrap { overflow-x:auto; margin-top:12px; }
table { width:100%; border-collapse:collapse; font-size:14px; }
th, td { text-align:left; padding:10px 8px; border-bottom:1px solid var(--line); vertical-align:middle; }
th { font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
td.actions { white-space:nowrap; text-align:right; }
td.actions button { margin-left:6px; min-height:34px; padding:4px 10px; }
.checks { display:flex; gap:16px; flex-wrap:wrap; margin-top:6px; }
.checks label { font-weight:400; margin:0; display:flex; gap:6px; align-items:center; }
.back { display:inline-block; margin-bottom:12px; color:var(--muted); }
@media (max-width:640px) { .card { padding:16px; } td, th { padding:8px 6px; } }
