:root{--blue:#1D4ED8;--blue-dark:#1E3A8A;--tint:#EFF6FF;--ink:#111827;--muted:#4B5563;--line:#D1D5DB;--danger:#B91C1C;--ok:#166534;--bg:#FFFFFF}
*{box-sizing:border-box}
body{margin:0;font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:#F9FAFB}
h1,h2,h3{color:var(--blue-dark);line-height:1.25}
h1{font-size:1.6rem;margin:0 0 1rem}h2{font-size:1.2rem;margin:1.5rem 0 .5rem}
a{color:var(--blue)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--blue);color:#fff;padding:.5rem 1rem;z-index:10}
.skip:focus{left:0}
header.site{background:var(--blue);color:#fff}
header.site .bar{max-width:72rem;margin:0 auto;padding:.5rem 1rem;display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:center}
header.site a,header.site button.link{color:#fff;text-decoration:none;background:none;border:0;font:inherit;cursor:pointer;padding:.25rem .5rem;border-radius:4px}
header.site a:hover,header.site button.link:hover{text-decoration:underline}
header.site a:focus-visible,header.site button.link:focus-visible{outline-color:#fff}
header.site .brand{font-weight:700;margin-right:auto}
header.site form{margin:0}
main{max-width:72rem;margin:0 auto;padding:1.5rem 1rem 3rem}
.card{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:1.25rem;margin-bottom:1rem}
.narrow{max-width:30rem;margin:2rem auto}
.tint{background:var(--tint);border-color:#BFDBFE}
label{display:block;font-weight:600;margin:.9rem 0 .25rem}
input[type=text],input[type=email],input[type=password],input[type=date],select,textarea{width:100%;padding:.55rem .65rem;border:1px solid #6B7280;border-radius:6px;font:inherit;background:#fff;color:var(--ink)}
.help{color:var(--muted);font-size:.9rem;margin:.2rem 0 0}
.errorlist{list-style:none;margin:.25rem 0 0;padding:0;color:var(--danger);font-weight:600}
.btn{display:inline-block;background:var(--blue);color:#fff;border:2px solid var(--blue);border-radius:6px;padding:.55rem 1.1rem;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;margin-top:1rem}
.btn:hover{background:var(--blue-dark);border-color:var(--blue-dark)}
.btn.secondary{background:#fff;color:var(--blue)}
.btn.secondary:hover{background:var(--tint)}
.btn.danger{background:#fff;color:var(--danger);border-color:var(--danger)}
.btn.danger:hover{background:#FEF2F2}
.inline{display:inline}.inline .btn{margin-top:0}
.messages{list-style:none;margin:0 0 1rem;padding:0}
.messages li{padding:.6rem .9rem;border-radius:6px;margin-bottom:.5rem;border:1px solid var(--line);background:#fff}
.messages .success{border-color:var(--ok);color:var(--ok)}.messages .error{border-color:var(--danger);color:var(--danger)}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}
th{background:var(--tint);color:var(--blue-dark)}
.scroll{overflow-x:auto}
code,.mono{font-family:ui-monospace,Menlo,Consolas,monospace}
.codes{columns:2;font-size:1.1rem;list-style:none;padding:0}
.linkbox{word-break:break-all;background:#fff;border:1px dashed var(--blue);padding:.75rem;border-radius:6px}
.badge{display:inline-block;padding:.05rem .5rem;border-radius:999px;background:var(--tint);color:var(--blue-dark);font-size:.85rem;border:1px solid #BFDBFE}
.badge.off{background:#FEF2F2;color:var(--danger);border-color:#FECACA}
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:0 1rem}
.pager{display:flex;gap:1rem;align-items:center;margin-top:1rem}
.qr{width:12rem;height:12rem;border:1px solid var(--line)}
@media (prefers-reduced-motion:no-preference){.btn{transition:background .15s}}
