/* The Verification page (src/wsis/verifypage.py). Same palette and masthead as the
 * resort pages (resort.css); its own file so a change here cannot reflow them. */

:root {
  --ink: #1c2733;
  --muted: #5b6b7a;
  --paper: #f6f8fa;
  --card: #ffffff;
  --accent: #2563a8;
  --line: #dde5ec;
  --bar: #5598e7;
  --good: #1c5cab;
  --bad: #9e3423;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  background: var(--paper);
  color: var(--ink);
  line-height: 1.55;
  overflow-wrap: break-word;
}
a { color: var(--accent); }

.top {
  background: linear-gradient(160deg, #1d3a5f 0%, #2b5d8a 55%, #4a86b4 100%);
  color: #fff;
  padding: 1rem 1.25rem 2.2rem;
}
.top-inner { max-width: 52rem; margin: 0 auto; }
.crumb { font-size: .82rem; opacity: .85; margin: 0; }
.crumb a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.4); }
.top h1 { margin: .9rem 0 .3rem; font-size: 2.1rem; letter-spacing: -.02em; }
.where { margin: 0; opacity: .92; font-size: .96rem; max-width: 36rem; }

main { max-width: 52rem; margin: -1.4rem auto 3rem; padding: 0 1rem; }
.card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 1.2rem 1.4rem;
  box-shadow: 0 2px 10px rgba(29, 58, 95, .06);
}

/* ---- tabs ---- */
.tabs { display: flex; gap: .5rem; margin: 0 0 1rem; }
.tab {
  font: 600 .84rem/1 inherit; font-family: inherit; padding: .55rem .95rem;
  border: 1px solid var(--line); background: var(--paper); color: var(--muted);
  border-radius: 999px; cursor: pointer;
}
.tab.on { background: var(--accent); border-color: var(--accent); color: #fff; }
.tab:focus-visible, .chip:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.js .panel { display: none; }
.js .panel.on { display: block; }
.panel + .panel { margin-top: 1.6rem; border-top: 1px solid var(--line); padding-top: 1.2rem; }
.js .panel + .panel { margin-top: 0; border-top: 0; padding-top: 0; }

.status { margin: 0 0 .9rem; font-size: .82rem; color: var(--muted); }
.k {
  font-size: .72rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase;
  color: var(--muted); margin: 0 0 .5rem;
}
.muted { color: var(--muted); }
.small { font-size: .78rem; }
.block { margin-top: 1.4rem; }

/* ---- stat tiles ---- */
.stats { display: flex; gap: .6rem; flex-wrap: wrap; }
.stat { flex: 1 1 10rem; min-width: 0; padding: .7rem .85rem; border: 1px solid var(--line); border-radius: 10px; }
.stat b { display: block; font-size: 1.5rem; line-height: 1.2; font-variant-numeric: tabular-nums; }
.stat span { font-size: .76rem; color: var(--muted); display: block; }
.stat.blue b { color: var(--good); }
.stat.muted b { color: var(--muted); font-size: 1.1rem; font-weight: 600; padding: .22rem 0; }
.stat.grey b { color: var(--muted); }
.cvline { margin: .6rem 0 0; font-size: .8rem; color: var(--muted); }
.collect {
  margin: .9rem 0 0; padding: .6rem .8rem; font-size: .84rem;
  border-left: 3px solid #c2410c; background: #fdf5f1; border-radius: 0 6px 6px 0;
}
.honest {
  margin: 1.3rem 0 0; padding: .6rem .8rem; font-size: .84rem;
  border-left: 3px solid var(--accent); background: #f1f6fb; border-radius: 0 6px 6px 0;
}

/* ---- "?" boxes: the tip hangs under the button; on a phone it spans the card ---- */
.vq {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 1rem; height: 1rem; margin-left: .3rem; border-radius: 50%; background: var(--muted);
  color: #fff; font: 700 .6rem/1 inherit; font-family: inherit; border: 0; padding: 0;
  cursor: help; vertical-align: 1px; text-transform: none; letter-spacing: normal;
}
.vq::after {
  content: attr(data-tip); position: absolute; left: -.4rem; top: calc(100% + 6px); width: 16rem; max-width: 80vw;
  padding: .5rem .65rem; border-radius: 7px; background: var(--ink); color: #fff; font-size: .76rem;
  font-weight: 400; line-height: 1.4; text-align: left; opacity: 0; visibility: hidden; z-index: 6;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .18); white-space: normal;
}
.vq:hover::after, .vq:focus::after { opacity: 1; visibility: visible; }
.vq:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (max-width: 40rem) {
  .card { position: relative; }
  .vq { position: static; }
  .vq::after { position: absolute; left: .9rem; right: .9rem; top: auto; width: auto; max-width: none; margin-top: 1.3rem; }
}

/* ---- lead-group chips ---- */
.chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .8rem; }
.chip {
  font: 600 .76rem/1 inherit; font-family: inherit; padding: .42rem .7rem; border: 1px solid var(--line);
  background: var(--paper); color: var(--muted); border-radius: 999px; cursor: pointer;
}
.chip.on { background: var(--ink); border-color: var(--ink); color: #fff; }
.js .chart[hidden] { display: none; }
.chart[hidden] { display: block; }
.js .chips { display: flex; }
.chips { display: none; }

/* ---- reliability bars ---- */
.rel { display: flex; gap: .45rem; align-items: flex-end; }
.rel .col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: .2rem; }
.rel .plot { position: relative; width: 100%; height: 9rem; display: flex; align-items: flex-end; justify-content: center; border-bottom: 1px solid var(--line); }
.rel .b { width: 58%; background: var(--bar); border-radius: 3px 3px 0 0; }
.rel .tgt { position: absolute; left: 8%; right: 8%; height: 0; border-top: 2px dashed var(--ink); }
.rel .hc { position: absolute; left: calc(50% - 5px); width: 10px; height: 10px; margin-bottom: -5px; border-radius: 50%; background: #fff; border: 2px solid var(--ink); }
.rel .v { font-size: .72rem; font-weight: 700; font-variant-numeric: tabular-nums; min-height: 1em; }
.rel .x { font-size: .7rem; color: var(--muted); text-align: center; }
.rel .n { font-size: .68rem; color: var(--muted); font-variant-numeric: tabular-nums; min-height: 1em; }
.rel .empty .plot { background: repeating-linear-gradient(135deg, #f1f4f7, #f1f4f7 6px, #fff 6px, #fff 12px); }
.hist { display: flex; gap: .45rem; align-items: flex-end; margin: .2rem 0 .6rem; }
.hc2 { flex: 1 1 0; min-width: 0; height: 4.2rem; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; }
.hc2 i { display: block; width: 58%; background: #b9c9d9; border-radius: 2px 2px 0 0; }
.hc2 span { font-size: .66rem; color: var(--muted); }
.hc2 em { font-size: .66rem; font-style: normal; font-variant-numeric: tabular-nums; }

/* ---- tables ---- */
.tbl-wrap { overflow-x: auto; }
.vt { border-collapse: collapse; width: 100%; font-size: .84rem; }
.vt th, .vt td { padding: .45rem .5rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; font-variant-numeric: tabular-nums; }
.vt thead th { font-size: .68rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); vertical-align: bottom; }
.vt tbody th[scope="row"] { font-weight: 600; white-space: nowrap; }
.vt small { display: block; font-size: .72rem; color: var(--muted); font-weight: 400; text-transform: none; letter-spacing: normal; }
.vt tr.reg th { background: var(--paper); font-size: .76rem; padding: .35rem .5rem; }
.vt .east { color: var(--muted); font-size: .82rem; }
.vt small.ok { color: var(--good); font-weight: 600; }
.vt small.miss { color: var(--bad); font-weight: 600; }
@media (max-width: 40rem) {
  .vt thead { display: none; }
  .vt, .vt tbody, .vt tr, .vt th, .vt td { display: block; width: 100%; }
  .vt tbody tr { padding: .5rem 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr; gap: .15rem .8rem; }
  .vt tbody tr.reg { display: block; padding: 0; border: 0; }
  .vt tbody th[scope="row"] { grid-column: 1 / -1; border: 0; padding: .1rem .2rem; }
  .vt td { border: 0; padding: .1rem .2rem; }
  .vt td[data-l]::before { content: attr(data-l); display: block; font-size: .64rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
  .vt td.east { grid-column: 1 / -1; }
  .vt tbody tr:has(td.east) { display: block; }
}

footer { max-width: 52rem; margin: 0 auto; padding: 0 1rem 3rem; font-size: .78rem; color: var(--muted); }
footer p { margin: .5rem 0; }
@media (max-width: 34rem) {
  .top h1 { font-size: 1.7rem; }
  .card { padding: 1rem .9rem; }
}
