:root{--bg:#f6f7f9;--card:#fff;--ink:#1b2430;--muted:#5d6b7c;--line:#dde2e8;--brand:#0b5fd7;--brand-ink:#fff;--ok:#127a3e;--okbg:#e3f5ea;--warn:#8a5a00;--warnbg:#fff3d6;--bad:#b3261e;--badbg:#fde7e5;--info:#0b5fd7;--infobg:#e3eefc;--mutedbg:#eceff3;--radius:10px}
@media (prefers-color-scheme:dark){:root{--bg:#10151c;--card:#171e27;--ink:#e6ebf1;--muted:#98a6b6;--line:#2a3441;--brand:#5b9bff;--brand-ink:#0a1220;--ok:#5fd18a;--okbg:#10301e;--warn:#f0b955;--warnbg:#33290f;--bad:#ff8b83;--badbg:#3a1714;--info:#8bb8ff;--infobg:#13273f;--mutedbg:#222c38}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--brand)}
h1{font-size:1.6rem;margin:.2rem 0 .6rem}h2{font-size:1.1rem;margin:.1rem 0 .6rem}
code{background:var(--mutedbg);padding:.1rem .35rem;border-radius:5px;font-size:.92em}
.top{display:flex;gap:1.25rem;align-items:center;flex-wrap:wrap;padding:.75rem max(1rem,calc((100% - 1100px)/2));background:var(--card);border-bottom:1px solid var(--line)}
.brand{font-weight:700;font-size:1.15rem;text-decoration:none;color:var(--ink)}.brand span{font-weight:400;color:var(--muted)}
.top nav{display:flex;gap:1rem;flex:1}.top nav a,.subnav a{text-decoration:none;color:var(--ink);padding:.2rem .1rem;border-bottom:2px solid transparent}.top nav a:hover,.subnav a:hover{border-color:var(--brand)}
main{max-width:1100px;margin:1.25rem auto;padding:0 1rem}
footer{max-width:1100px;margin:2rem auto;padding:0 1rem;color:var(--muted);font-size:.85rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.15rem;margin:0 0 1rem}
.narrow{max-width:460px;margin:2rem auto}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:1rem}.grid>.card{margin:0}
.row{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.service header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.service h2 a{text-decoration:none;color:var(--ink)}
label{display:block;margin:.6rem 0;font-weight:500}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=search]{display:block;width:100%;margin-top:.25rem;padding:.55rem .65rem;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink);font:inherit}
input:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
input.num{display:inline-block;width:4.5rem;margin:0}
.btn,button.btn{display:inline-block;padding:.55rem 1rem;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}
.btn.primary{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}.btn.danger{background:var(--bad);color:#fff;border-color:var(--bad)}
.btn:hover{filter:brightness(1.06)}
button.link{background:none;border:0;padding:0;color:var(--brand);font:inherit;cursor:pointer;text-decoration:underline}button.link.danger{color:var(--bad)}
form.inline{display:inline}.btns{display:flex;flex-wrap:wrap;gap:.5rem}
.muted{color:var(--muted)}.bad-text{color:var(--bad)}
.notice{padding:.7rem 1rem;border-radius:8px;margin:0 0 1rem;border:1px solid var(--line)}
.notice.ok{background:var(--okbg);color:var(--ok)}.notice.bad{background:var(--badbg);color:var(--bad)}.notice.warn{background:var(--warnbg);color:var(--warn)}.notice.info{background:var(--infobg);color:var(--info)}
.card.warn{background:var(--warnbg);border-color:var(--warn)}.danger-zone{border-color:var(--bad)}
.badge{display:inline-block;padding:.1rem .6rem;border-radius:999px;font-size:.82rem;font-weight:600;background:var(--mutedbg);color:var(--muted);white-space:nowrap}
.badge.ok{background:var(--okbg);color:var(--ok)}.badge.bad{background:var(--badbg);color:var(--bad)}.badge.warn{background:var(--warnbg);color:var(--warn)}.badge.info{background:var(--infobg);color:var(--info)}
.gauges label{display:grid;grid-template-columns:5.5rem 1fr auto;gap:.5rem;align-items:center;margin:.35rem 0;font-weight:400}
progress{width:100%;height:.7rem}
fieldset{border:1px solid var(--line);border-radius:8px;margin:0 0 1rem;padding:.5rem .8rem}
.choice{display:flex;gap:.7rem;align-items:flex-start;padding:.5rem;border-radius:8px;cursor:pointer}.choice:hover{background:var(--mutedbg)}.choice input{margin-top:.35rem}
.qr{display:block;margin:1rem auto;background:#fff;padding:.5rem;border-radius:8px}
.secret{word-break:break-all}.secret.big{font-size:1.2rem;padding:.4rem .6rem}
.codes{columns:2;list-style:none;padding:0}.codes li{margin:.3rem 0}
ul.plain{list-style:none;padding:0}ul.plain li{padding:.35rem 0;border-bottom:1px solid var(--line)}
dl{display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem}dt{color:var(--muted)}dd{margin:0}
.scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;background:var(--card);border:1px solid var(--line);border-radius:8px}
th,td{padding:.5rem .7rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.85rem;color:var(--muted)}
.actions form{display:inline-block;margin-right:.6rem}.subnav{display:flex;gap:1.2rem;margin-bottom:.8rem}
hr{border:0;border-top:1px solid var(--line);margin:1rem 0}
@media (max-width:600px){.gauges label{grid-template-columns:4.5rem 1fr}.gauges label span{grid-column:2}.codes{columns:1}}
