:root{--bg:#000;--fg:#fff;--muted:#8a8a8a;--line:#2a2a2a;--surface:#0b0b0b}
*{box-sizing:border-box;margin:0}
html{background:var(--bg);color:var(--fg);font:15px/1.45 "Helvetica Neue",Helvetica,Arial,system-ui,sans-serif}
body{min-height:100svh}
a{color:var(--fg);text-underline-offset:3px}
:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.hide{display:none!important}
header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px clamp(14px,4vw,32px);border-bottom:1px solid var(--fg)}
header b{font-weight:800;letter-spacing:.02em}
header .who{color:var(--muted);display:flex;gap:12px;align-items:center;flex-wrap:wrap}
main{max-width:1000px;margin:0 auto;padding:clamp(14px,3vw,28px)}
.card{background:var(--surface);border:1px solid var(--line);padding:18px;margin-bottom:18px}
.muted{color:var(--muted)}
.np-title{font-size:clamp(20px,3vw,28px);font-weight:700;margin-top:2px;overflow-wrap:anywhere}
nav.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
button,select,input{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:0;padding:8px 12px}
button{cursor:pointer}
button:hover:not(:disabled){border-color:var(--fg)}
button:disabled{opacity:.35;cursor:not-allowed}
button.primary{background:var(--fg);border-color:var(--fg);color:var(--bg);font-weight:700}
button.danger{border-style:dashed;border-color:var(--fg)}
.tab[aria-selected="true"]{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.badge{display:inline-block;min-width:20px;padding:0 6px;background:var(--fg);color:var(--bg);font-size:12px;font-weight:700;text-align:center;margin-left:6px}
.tab[aria-selected="true"] .badge{background:var(--bg);color:var(--fg)}
.row{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.row:last-child{border:0}
.row .t{overflow-wrap:anywhere}
.row .flag{font-size:13px;text-decoration:underline;text-underline-offset:3px}
.acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th,.tbl td{text-align:left;padding:8px 10px 8px 0;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
.tbl th{color:var(--muted);font-weight:400}
.fail{font-weight:700;text-decoration:underline;text-underline-offset:3px}
#msg{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:10px 16px;max-width:90vw;z-index:5}
#msg.err{background:var(--bg);color:var(--fg);border:2px solid var(--fg);font-weight:700}
.login{max-width:360px;margin:12vh auto;padding:0 18px}
.login h1{font-size:28px;margin-bottom:18px}
.login label{display:block;margin-bottom:12px;color:var(--muted)}
.login input{width:100%;margin-top:4px}
.login button{width:100%;padding:12px;margin-top:6px}
.err-text{font-weight:700;min-height:1.4em;margin-top:10px}
form.inline{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
@media (max-width:560px){.row{grid-template-columns:28px 1fr}.row .acts{grid-column:1/-1;justify-content:flex-start}}
