:root{--bg:#fff;--fg:#111418;--muted:#666f7a;--line:#e3e7eb;--accent:#1b4dd8;--chip:#f2f4f7;--warn-bg:#fff8e6;--warn-fg:#7a5a00}@media (prefers-color-scheme:dark){:root{--bg:#0e1116;--fg:#e8ecf1;--muted:#9aa4b1;--line:#232a33;--accent:#6f9bff;--chip:#1a212a;--warn-bg:#2a2415;--warn-fg:#e2c369}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font:14px/1.45 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}.shell{min-height:100vh;display:flex}.rail{border-right:1px solid var(--line);flex:0 0 190px;width:190px;padding:18px 14px}.rail h1{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 14px;font-size:13px}.rail a{color:var(--fg);border-radius:6px;padding:6px 8px;text-decoration:none;display:block}.rail a[aria-current=page]{background:var(--chip);font-weight:600}.rail form{margin-top:18px}.main{flex:1;min-width:0;padding:22px 26px}h2{margin:0 0 4px;font-size:19px}.sub{color:var(--muted);margin:0 0 18px}.controls{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.pill{border:1px solid var(--line);color:var(--fg);border-radius:999px;padding:4px 10px;font-size:13px;text-decoration:none;display:inline-block}.pill[aria-current=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}.notice{background:var(--warn-bg);color:var(--warn-fg);border:1px solid var(--line);border-radius:8px;margin-bottom:14px;padding:8px 12px;font-size:13px}.cards{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.card{border:1px solid var(--line);border-radius:10px;min-width:150px;padding:10px 14px}.card .k{color:var(--muted);font-size:12px}.card .v{font-variant-numeric:tabular-nums;margin-top:2px;font-size:19px}.tablewrap{border:1px solid var(--line);border-radius:10px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:7px 10px}th{color:var(--muted);background:var(--bg);font-weight:600;position:sticky;top:0}tr:last-child td{border-bottom:none}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.name{text-overflow:ellipsis;white-space:nowrap;max-width:380px;overflow:hidden}.thumb{object-fit:cover;background:var(--chip);border:1px solid var(--line);border-radius:6px;width:44px;height:44px;display:block}.thumb-ph{background:var(--chip);border:1px solid var(--line);border-radius:6px;width:44px;height:44px}.chip{background:var(--chip);color:var(--muted);border-radius:5px;margin-right:4px;padding:1px 6px;font-size:11px;display:inline-block}.badge{border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:11px;display:inline-block}.dash{color:var(--muted)}.login{max-width:320px;margin:12vh auto;padding:0 20px}.login label{color:var(--muted);margin:12px 0 4px;font-size:13px;display:block}.login input{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--fg);font:inherit;border-radius:7px;padding:8px 10px}button{border:1px solid var(--fg);background:var(--fg);color:var(--bg);font:inherit;cursor:pointer;border-radius:7px;margin-top:16px;padding:8px 14px}.rail button{color:var(--muted);border-color:var(--line);background:0 0;margin:0;padding:5px 10px;font-size:12px}.err{color:#c0392b;margin-top:12px}.ok{color:#1a7f4b}.bad{color:#c0392b}
