:root{--navy:#1F3864;--navy2:#0e1b2a;--gold:#F3C24B;--line:#d7deea;--muted:#5a6b80;--red:#b3261e;--green:#1e6b3a}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;background:var(--navy2);color:#12233b}
.wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:18px}
.card{background:#fff;border-radius:14px;border:2px solid var(--gold);box-shadow:0 10px 40px #0008;width:100%;max-width:420px;padding:26px 26px 18px}
.brand{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.brand h1{font-size:20px;margin:0;color:var(--navy)}
.brand .qs{font-weight:bold;color:var(--navy);opacity:.25;font-size:22px}
.sub{color:var(--muted);font-size:12.5px;margin:0 0 18px}
label{display:block;font-size:12px;font-weight:bold;color:var(--navy);margin:12px 0 4px;text-transform:uppercase;letter-spacing:.3px}
input,select{width:100%;padding:11px 12px;font-size:15px;border:1px solid #b9c5d6;border-radius:8px;background:#fbfcfe}
input:focus,select:focus{outline:2px solid var(--gold);border-color:var(--navy)}
button{cursor:pointer;border-radius:8px;border:1px solid #9fb0c8;background:#f3f6fb;font-size:13px;padding:8px 12px}
.btn{width:100%;margin-top:18px;background:var(--navy);color:#fff;border:0;padding:12px;font-size:15px;font-weight:bold}
.btn:disabled{opacity:.6}
.err{display:none;margin-top:12px;padding:9px 11px;border-radius:8px;background:#fff1f0;border:1px solid #f3b8b3;color:var(--red);font-size:13px}
.ok{background:#eef8f1;border-color:#a7d8b6;color:var(--green)}
.note{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.45}
.qr{text-align:center;margin:10px 0}.qr img{width:210px;height:210px;border:1px solid var(--line);border-radius:8px;padding:6px;background:#fff}
.secret{font-family:Consolas,monospace;font-size:13px;background:#f3f6fb;border:1px dashed #9fb0c8;padding:6px 8px;border-radius:6px;word-break:break-all;text-align:center}
.credit{margin-top:16px;text-align:center;font-size:11px;color:var(--muted)}.credit b{color:var(--navy)}
.hide{display:none}
/* admin */
.top{background:var(--navy);color:#fff;display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 16px;flex-wrap:wrap}
.top h1{font-size:17px;margin:0}.top a,.top button{color:#fff;background:transparent;border:1px solid #fff6;font-size:12px;text-decoration:none;padding:6px 10px;border-radius:6px}
.page{max-width:1200px;margin:0 auto;padding:16px}
.panel{background:#fff;border-radius:12px;border:2px solid #2d5a8c;padding:14px 16px;margin-bottom:16px}
.panel h2{margin:0 0 10px;font-size:15px;color:var(--navy);text-transform:uppercase;letter-spacing:.4px}
table{width:100%;border-collapse:collapse;font-size:12.5px}th{text-align:left;color:var(--navy);border-bottom:2px solid var(--line);padding:6px 5px;font-size:11px;text-transform:uppercase}
td{border-bottom:1px solid #eef1f5;padding:6px 5px;vertical-align:middle}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.row>div{flex:1;min-width:150px}.row label{margin-top:0}
.pill{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:bold}
.p-on{background:#e6f4ea;color:var(--green)}.p-off{background:#f1f3f5;color:#777}.p-lock{background:#fff1f0;color:var(--red)}
.acts button{font-size:11px;padding:4px 7px;margin:1px}
.tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.tabs button.on{background:var(--navy);color:#fff}
.scroll{overflow:auto;max-height:60vh}
.modal{position:fixed;inset:0;background:#0009;display:none;align-items:center;justify-content:center;z-index:50;padding:16px}.modal .card{max-width:460px}

html:has(body.adminbg),body.adminbg{background:#eef2f7}
