/* Quiz Night Online - server pages (landing, /admin, /venue): layout on top of engine.css + app.css */
body{min-height:100vh}
.landing{max-width:860px;margin:0 auto;padding:4vh 20px 40px;text-align:center}
.landing .landing-logo{width:min(430px,84vw);margin:0 auto}
.landing .lead{color:var(--slate);font-size:18px;margin:10px 0 34px}
.landing-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;text-align:left}
.lc{display:flex;flex-direction:column;gap:12px;text-decoration:none;color:inherit;padding:22px}
.lc:hover{border-color:var(--gold-line)}
.lc h2{font-family:var(--font-display);font-weight:860;font-size:24px;margin:0}

/* top nav */
.anav{display:flex;gap:2px;flex-wrap:wrap;margin-left:14px}
.anav a{padding:8px 12px;border-radius:9px;font-weight:650;font-size:14px;color:var(--slate)}
.anav a:hover{color:var(--chalk);background:var(--velvet-2)}
.anav a.on{color:var(--gold);background:var(--gold-soft)}
.page{max-width:1280px;margin:0 auto;padding:18px 16px 60px}
.page h1{margin-bottom:4px}
.phead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.phead .help{margin-top:2px}

/* tables */
.atable{width:100%;border-collapse:collapse;font-size:14px}
.atable th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-dim);text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.atable td{padding:10px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
.atable tr:hover td{background:rgba(255,255,255,.02)}
.atable .num{text-align:right;white-space:nowrap}
.atable .act{text-align:right;white-space:nowrap}
.atable .act .btn{margin-left:4px}
.atable .t{font-weight:700}
.tw{overflow-x:auto;border:1px solid var(--line-soft);border-radius:var(--r-2);background:var(--velvet)}
.tw .atable th:first-child,.tw .atable td:first-child{padding-left:16px}

/* stat tiles */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.stat{background:var(--velvet);border:1px solid var(--line-soft);border-radius:var(--r-2);padding:14px 16px}
.stat b{display:block;font:860 30px/1 var(--font-display);color:var(--gold)}
.stat span{font-size:12.5px;color:var(--slate)}

.pill{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:999px;border:1px solid var(--line);color:var(--slate);white-space:nowrap}
.pill.ok{color:var(--good);border-color:rgba(70,198,124,.4)} .pill.warn{color:var(--gold);border-color:var(--gold-line)} .pill.bad{color:var(--danger);border-color:rgba(255,107,107,.4)}
.pill.live{color:#fff;background:#d9534f;border-color:#d9534f}

.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.filters select,.filters input{width:auto;min-width:150px}
.checklist{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-1);background:var(--ink);padding:6px}
.checklist label{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:6px;cursor:pointer}
.checklist label:hover{background:var(--velvet-2)}
.checklist input{width:auto}
.pw-reveal{font:800 26px/1.2 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.06em;text-align:center;padding:16px;border:2px dashed var(--gold-line);border-radius:var(--r-2);background:var(--gold-soft);color:var(--gold);user-select:all}
.progress{height:10px;border-radius:999px;background:var(--velvet-3);overflow:hidden;margin:10px 0}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),#f3d36b);transition:width .2s}
.login-card{max-width:420px;margin:12vh auto 0}
.login-card h1{margin-bottom:6px}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:560px){.formgrid{grid-template-columns:1fr}.anav{margin-left:0;width:100%}}
.empty-state{padding:36px 18px;text-align:center;color:var(--slate)}
.small{font-size:12.5px;color:var(--slate-dim)}
.stand{width:100%;border-collapse:collapse;font-size:14px}
.stand td,.stand th{padding:6px 8px;border-bottom:1px solid var(--line-soft);text-align:left}
.stand td.n{text-align:right;font-variant-numeric:tabular-nums}
.stand .r1 td{color:var(--gold);font-weight:700}
.dlbtn{display:inline-flex;gap:8px;align-items:center}
.vnotice{padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--ink);margin-bottom:14px}
.vnotice.ok{border-color:rgba(70,198,124,.4)} .vnotice.warn{border-color:var(--gold-line)}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
@media (max-width:860px){.cols2{grid-template-columns:1fr}}


/* ---- weekly planner, quiz library picker, league ---- */
.weekrange{font:700 18px/1.2 var(--font-display);margin:0 0 12px}
.week{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.daycard{background:var(--velvet);border:1px solid var(--line-soft);border-radius:var(--r-2);padding:14px;display:flex;flex-direction:column;gap:8px}
.daycard.today{border-color:var(--gold-line);box-shadow:inset 0 0 0 1px var(--gold-line)}
.daycard.past{opacity:.8}
.daycard.vacant{border-style:dashed}
.daycard .dh{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.daycard .dh b{font:860 19px/1 var(--font-display);color:var(--gold)} .daycard .dh span{color:var(--slate);font-size:13px}
.daycard .dqset{display:block;font-size:15px;color:var(--chalk);margin-bottom:2px}
.daycard .dq.none{color:var(--slate);font-weight:600}
.daycard .dvn{font-size:13px;color:var(--slate)} .warnt{color:var(--gold)}
.daycard .dexp{line-height:1.45}
.daycard .dbtn{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:6px}
.picker{display:grid;gap:6px;max-height:52vh;overflow:auto}
.prow{display:grid;grid-template-columns:1fr auto;gap:2px 12px;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-1);background:var(--ink);width:100%}
.prow:hover{border-color:var(--gold)}
.prow .pt{font-weight:700} .prow .pm{grid-column:1;font-size:12.5px;color:var(--slate)} .prow .pb{grid-column:2;grid-row:1 / span 2;align-self:center;text-align:right}
.daychips{display:flex;gap:6px;flex-wrap:wrap}
.daychip{cursor:pointer}
.daychip input{position:absolute;opacity:0;pointer-events:none}
.daychip span{display:inline-block;padding:7px 12px;border:1px solid var(--line);border-radius:999px;font-weight:650;font-size:13px;color:var(--slate);background:var(--ink)}
.daychip input:checked + span{background:var(--gold-soft);border-color:var(--gold-line);color:var(--gold)}
.daychip input:focus-visible + span{outline:2px solid var(--gold)}
.gaps{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.gap{font-size:14px} .gap a{margin-left:8px;color:var(--gold);font-weight:650}
.importopts{display:flex;flex-direction:column;gap:6px}
.mv{display:inline-block;font:700 11px/1 var(--font-body);margin-left:6px;vertical-align:middle}
.mv.up{color:var(--good)} .mv.dn{color:var(--danger)} .mv.nw{color:var(--gold);border:1px solid var(--gold-line);border-radius:999px;padding:2px 6px}
.pill a{color:inherit;margin-left:4px;opacity:.7}
/* in a dialog every switch has its own line (two short ones used to run into each other on one line) */
.modal .switch{display:flex}
