:root { font-family:Inter,Segoe UI,Arial,sans-serif; color:#17212b; background:#f2f5f7; line-height:1.45; }
* { box-sizing:border-box; }
body { margin:0; }
.topbar { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 2rem; background:#102b3f; color:white; }
.brand { font-size:1.35rem; font-weight:780; }
.subtitle { opacity:.76; }
.session { display:flex; gap:.8rem; align-items:center; flex-wrap:wrap; }
.session a { color:#dff4ff; font-weight:700; }
main { max-width:1450px; margin:0 auto; padding:1.4rem; }
.panel { background:white; border:1px solid #d6e0e6; border-radius:12px; padding:1.2rem; box-shadow:0 5px 18px rgba(16,43,63,.06); margin-bottom:1rem; }
.narrow { max-width:500px; margin:3rem auto; }
.notice { padding:.9rem 1rem; margin-bottom:1rem; border-radius:9px; background:#fff7df; border:1px solid #e6c870; color:#5f480d; }
.grid { display:grid; gap:.8rem; }
.grid.two { grid-template-columns:1fr 1fr; }
.grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
h1,h2,h3 { margin-top:0; }
p { color:#566a77; }
label { display:block; font-weight:650; margin-bottom:.85rem; }
input,select,textarea { display:block; width:100%; margin-top:.35rem; padding:.72rem; border:1px solid #b9c7d0; border-radius:7px; font:inherit; background:white; }
button,.button { border:0; border-radius:7px; padding:.72rem 1rem; background:#156b9b; color:white; font-weight:700; cursor:pointer; text-decoration:none; display:inline-block; }
button.secondary,.button.secondary { background:#e4edf2; color:#173247; }
button.approve { background:#267847; }
button.warning { background:#a36d17; }
.hidden { display:none!important; }
.message { min-height:1.4rem; margin-top:.65rem; white-space:pre-wrap; }
.message.error { color:#a12626; }
.message.success { color:#247a43; }
.cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:.75rem; margin-top:.8rem; }
.card { border:1px solid #dbe4ea; border-left:5px solid #287aa5; border-radius:8px; padding:.9rem; background:#fbfcfd; }
.card.current { border-left-color:#267847; }
.card.superseded { border-left-color:#a36d17; }
.card.revoked,.invalid { border-left-color:#a93636; }
.meta { color:#637785; font-size:.87rem; margin-top:.3rem; }
.details { background:#f5f7f9; border-radius:7px; padding:.65rem; margin-top:.55rem; overflow-wrap:anywhere; }
.actions { display:flex; gap:.6rem; flex-wrap:wrap; margin-top:.7rem; }
.status { display:inline-block; border-radius:999px; padding:.25rem .6rem; font-weight:700; background:#e4edf2; }
.status.valid { background:#e2f3e8; color:#1d6038; }
.status.invalid { background:#fde5e5; color:#8b2424; }
.qr { max-width:230px; width:100%; background:white; border:1px solid #d6e0e6; padding:.6rem; border-radius:8px; }
@media (max-width:900px) {
  .grid.two,.grid.three { grid-template-columns:1fr; }
  .topbar { padding:1rem; }
  main { padding:1rem; }
}
