:root{--blue:#1f4e8c;--blue-d:#173b6a;--bg:#f3f5f8;--card:#fff;--line:#d9dee6;--text:#1b2430;--mut:#667085;--red:#c62828;--red-bg:#fdecec;--amb:#a16207;--amb-bg:#fef6dd;--grn:#1b7f3b;--grn-bg:#e7f6ec}
*{box-sizing:border-box}
body{margin:0;font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
header.top{background:var(--blue);color:#fff;display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;flex-wrap:wrap}
header.top .brand{font-weight:700;font-size:1.1rem;color:#fff}
header.top nav{display:flex;gap:.25rem;flex-wrap:wrap;flex:1}
header.top nav a{color:#e6eefb;padding:.45rem .7rem;border-radius:6px;font-size:.95rem}
header.top nav a:hover,header.top nav a.on{background:var(--blue-d);text-decoration:none;color:#fff}
header.top .who{font-size:.85rem;color:#cfe0fa;display:flex;gap:.6rem;align-items:center}
header.top .who button{background:transparent;border:1px solid #8fb0e3;color:#fff;border-radius:6px;padding:.3rem .6rem;cursor:pointer}
main{max-width:1180px;margin:0 auto;padding:1rem}
h1{font-size:1.5rem;margin:.2rem 0 1rem}h2{font-size:1.15rem;margin:0 0 .6rem}h3{font-size:1rem;margin:.8rem 0 .4rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem;margin-bottom:1rem}
.grid{display:grid;gap:1rem}.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.flash{padding:.7rem 1rem;border-radius:8px;margin-bottom:.8rem;border:1px solid}
.flash.ok{background:var(--grn-bg);border-color:#b7e1c4;color:#14532d}.flash.err{background:var(--red-bg);border-color:#f3b6b6;color:#7f1d1d}
.flash.warn{background:var(--amb-bg);border-color:#f2dc9a;color:#713f12}.flash.secret{background:#eef2ff;border-color:#b9c4f5;font-family:ui-monospace,monospace;word-break:break-all}
table{width:100%;border-collapse:collapse}th,td{padding:.55rem .6rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--mut);background:#f8fafc}
.scroll{overflow-x:auto}
.badge{display:inline-block;padding:.12rem .55rem;border-radius:99px;font-size:.78rem;font-weight:600;background:#e8edf5;color:#27406a;white-space:nowrap}
.badge.red{background:var(--red-bg);color:var(--red)}.badge.amb{background:var(--amb-bg);color:var(--amb)}.badge.grn{background:var(--grn-bg);color:var(--grn)}
.alert{border-left:5px solid var(--red);background:var(--red-bg)}.alert.amb{border-color:#e0a800;background:var(--amb-bg)}.alert.ok{border-color:#2e9e57;background:var(--grn-bg)}
.btn,button.btn{display:inline-block;background:var(--blue);color:#fff;border:0;border-radius:8px;padding:.6rem 1rem;font-size:1rem;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--blue-d);text-decoration:none}.btn.sec{background:#e8edf5;color:var(--blue)}.btn.red{background:var(--red)}.btn.sm{padding:.3rem .6rem;font-size:.85rem}
.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.spread{justify-content:space-between}
label.f{display:flex;flex-direction:column;gap:.2rem;font-size:.9rem}label.f>span{color:var(--mut);font-weight:600}
input,select,textarea{font:inherit;padding:.55rem .6rem;border:1px solid #b8c1cf;border-radius:8px;background:#fff;width:100%}
input[type=checkbox],input[type=radio]{width:auto}
textarea{min-height:80px}
.fields{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.fields .wide{grid-column:1/-1}
.check{display:flex;align-items:center;gap:.5rem;font-size:1rem}
small.hint{color:var(--mut)}.mut{color:var(--mut)}
dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:.25rem 1rem;margin:0}dl.kv dt{color:var(--mut)}dl.kv dd{margin:0}
.hide{display:none!important}
.count{font-size:1.8rem;font-weight:700}
.login{max-width:420px;margin:8vh auto}
.qr svg{max-width:220px;height:auto}
.tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.8rem}
.tabs a{padding:.35rem .8rem;border-radius:99px;background:#e8edf5;color:var(--blue);font-size:.9rem}.tabs a.on{background:var(--blue);color:#fff;text-decoration:none}
@media (max-width:720px){main{padding:.6rem}th{display:none}td{display:block;border:0;padding:.15rem 0}tr{display:block;border-bottom:1px solid var(--line);padding:.5rem 0}}

.grow{flex:1;min-width:200px}
