/* QR stations: visitor landing page, admin "QR codes" tab, printable labels. Loaded in addition to app.css. */
[hidden]{display:none!important}

/* ---------- visitor landing page (/s/CODE) ---------- */
.station-hero{padding:26px;margin-bottom:20px}
.station-hero h1{font-size:clamp(26px,4.5vw,42px);letter-spacing:-.04em;line-height:1.08;margin:6px 0 10px}
.station-hero p{margin:0 0 4px}
.station-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px}
.station-actions .button{text-decoration:none;display:inline-flex;align-items:center}

/* ---------- admin tabs ---------- */
.admin-tabs{display:inline-flex;gap:4px;padding:4px;margin:0 0 18px;border:1px solid var(--border);border-radius:14px;background:#0c141e}
.admin-tab{border:0;background:transparent;color:var(--muted);font:inherit;font-weight:700;font-size:13px;padding:9px 16px;border-radius:10px;cursor:pointer}
.admin-tab[aria-selected=true]{background:var(--accent);color:#17210c}
.admin-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ---------- admin QR section ---------- */
.qr-settings{margin-bottom:20px;padding:22px}
.qr-settings .panel-heading{margin-bottom:10px}
.qr-settings>.muted{margin:0 0 16px}
.qr-settings .form-message{margin:10px 0 0}
@media(max-width:720px){.qr-settings{padding:16px}}
.qr-base-form{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.qr-base-form .field{flex:1 1 280px;margin:0}
.qr-warning{margin:10px 0 0;padding:10px 12px;border-radius:10px;border:1px solid #6b5a1f;background:#2a2410;color:#f3dc8a;font-size:12px;line-height:1.5}
.qr-columns{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.4fr);gap:20px;align-items:start}
.qr-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:14px}
.check-row{display:flex;align-items:center;gap:10px;font-size:13px;cursor:pointer}
.check-row input{width:18px;height:18px;accent-color:var(--accent)}
.ex-checklist{max-height:300px;overflow:auto;border:1px solid #304156;border-radius:12px;background:#0c141e;padding:6px}
.ex-check{display:flex;gap:10px;align-items:flex-start;padding:8px;border-radius:8px;cursor:pointer;font-size:13px}
.ex-check:hover{background:#142133}
.ex-check input{margin-top:2px;width:17px;height:17px;accent-color:var(--accent);flex:none}
.ex-check small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.ex-check.is-hidden-ex{opacity:.55}
.station-list{display:grid;gap:14px}
.station-card{display:grid;grid-template-columns:132px minmax(0,1fr);gap:16px;padding:14px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.02)}
.station-card.inactive{opacity:.7}
.qr-thumb{width:132px;height:132px;border-radius:10px;background:#fff;display:block}
.station-info h3{margin:0 0 4px;font-size:16px}
.station-info p{margin:0 0 4px;font-size:12px;color:var(--muted);line-height:1.5}
.station-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;color:#d8f7a1}
.station-link{word-break:break-all}
.station-actions-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.station-actions-row .button{padding:8px 11px;font-size:12px;text-decoration:none;display:inline-flex;align-items:center}
@media(max-width:1050px){.qr-columns{grid-template-columns:1fr}}
@media(max-width:520px){.station-card{grid-template-columns:1fr}.qr-thumb{width:160px;height:160px}}

/* ---------- printable labels ---------- */
#qr-print-sheet{display:none}
.qr-label{margin:0;padding:10px;border:1px dashed #999;border-radius:8px;text-align:center;break-inside:avoid;page-break-inside:avoid;background:#fff;color:#000}
.qr-label-code svg{width:100%;height:auto;display:block}
.qr-label figcaption{display:grid;gap:2px;margin-top:6px}
.qr-label strong{font-size:15px;line-height:1.2}
.qr-label span{font-size:12px}
.qr-label small{font-size:10px;color:#444}
@media print{
  @page{margin:10mm}
  body.printing-qr{background:#fff!important;color:#000!important}
  body.printing-qr>*:not(#qr-print-sheet){display:none!important}
  body.printing-qr #qr-print-sheet{display:grid!important;grid-template-columns:repeat(3,1fr);gap:8mm}
}
