/* Ongeslagen: rood en zwart.
   Lagen: bijna-zwart met een rode ondertoon, drie oplopende vlakken, één echt rood
   voor de hoofdactie. Goud komt alleen voor op de riemen, dus die vallen op.
   Groen en zalm zijn gereserveerd voor goed en slecht in het gevecht. */
@font-face { font-family: "Anton"; src: url("../fonts/anton-latin-400-normal.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Cinzel"; font-weight: 700; src: url("../fonts/cinzel-latin-700-normal.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Barlow Semi Condensed"; font-weight: 500; src: url("../fonts/barlow-semi-condensed-latin-500-normal.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Barlow Semi Condensed"; font-weight: 700; src: url("../fonts/barlow-semi-condensed-latin-700-normal.woff2") format("woff2"); font-display: swap; }
:root { color-scheme: dark;
  --bg: #0e0809; --vlak1: #190e10; --vlak2: #241316; --vlak3: #331a1e; --lijn: #4b272c;
  --rood: #d81f2e; --rood-d: #8e101b; --rood-dd: #4f0a11; --rood-l: #ff5a5f; --roos: #f0c4c1;
  --wit: #f8f1ed; --vaal: #bda9a6; --plus: #57d9ae; --min: #ff9b85; --papier: #efe6dc; --inkt: #1a0c0d;
  --kop: "Anton", Impact, "Arial Narrow", sans-serif; --tekst: "Barlow Semi Condensed", "Arial Narrow", system-ui, sans-serif;
  --gl: max(16px, env(safe-area-inset-left, 0px)); --gr: max(16px, env(safe-area-inset-right, 0px)); }
* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; overflow: hidden; overscroll-behavior: none; }
body { height: 100dvh; background: var(--bg); color: var(--wit); font: 500 17px/1.34 var(--tekst); display: flex; justify-content: center; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
h1, h2, h3, p, figure { margin: 0; }
button { font: inherit; color: inherit; cursor: pointer; touch-action: manipulation; }
button:focus-visible, input:focus-visible { outline: 3px solid var(--wit); outline-offset: 2px; }
#app { position: relative; width: 100%; height: 100%; overflow: hidden; display: flex; flex-direction: column; background: var(--bg); container-type: inline-size; }

.knop { display: block; width: 100%; min-height: 52px; padding: 10px 14px; background: var(--vlak3); color: var(--wit); border: 1px solid var(--lijn); border-radius: 4px; font: 400 20px/1.1 var(--kop); letter-spacing: .03em; }
.knop:active:not(:disabled) { transform: translateY(1px); background: var(--lijn); }
.knop:disabled { opacity: .45; cursor: not-allowed; }
.knop.hoofd { background: var(--rood); border-color: var(--rood); color: #fff; }
.knop.hoofd:active:not(:disabled) { background: var(--rood-d); }
.knop.rood { background: var(--rood); border-color: var(--rood); color: #fff; }
.knop.zacht { background: transparent; color: var(--roos); }
.knop.rust { background: var(--vlak3); color: var(--plus); border-color: #2f6e58; font-size: 18px; }

/* Start: schuine rode hoek, zoals een rode ringhoek */
.start { flex: 1; min-height: 0; overflow-x: hidden; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; padding: max(20px, env(safe-area-inset-top, 0px)) var(--gr) max(18px, env(safe-area-inset-bottom, 0px)) var(--gl); background: linear-gradient(164deg, var(--rood) 0 37%, var(--rood-d) 37% 39.5%, var(--bg) 39.5%); }
.start > * { flex: none; }
.hier { font-weight: 700; font-size: 14px; letter-spacing: .05em; color: var(--roos); }
.start > .hier { color: #fff; }
.record-groot { font: 400 clamp(90px, 31cqw, 140px)/1.03 var(--kop); white-space: nowrap; color: #fff; }
.titel-spel { font: 400 30px/1.1 var(--kop); letter-spacing: .1em; text-transform: uppercase; color: var(--inkt); }
.start-riem { width: 100%; max-width: 470px; margin-inline: auto; margin-block: 10px 4px; align-self: center; filter: drop-shadow(0 10px 16px rgba(0,0,0,.7)); }
.belt { display: block; width: 100%; height: auto; }
.belt.dicht { filter: grayscale(1) brightness(.4); }
.start .sub { max-width: 36ch; color: var(--wit); }
.best { color: var(--roos); font-weight: 700; margin-top: 4px; }
.start .knoppen { margin-top: auto; width: 100%; display: grid; gap: 10px; padding-top: 12px; }
.bevestig { background: var(--vlak2); padding: 12px; border: 1px solid var(--lijn); border-radius: 4px; display: grid; gap: 10px; }
.bevestig .rij { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

/* Pagina's */
.pagina { flex: 1; min-height: 0; overflow-y: auto; padding: 14px var(--gr) 16px var(--gl); display: flex; flex-direction: column; gap: 12px; }
.pagina:first-child { padding-top: max(16px, env(safe-area-inset-top, 0px)); }
.pagina > * { flex: none; }
.pagina h2 { font: 400 34px/1.08 var(--kop); text-transform: uppercase; letter-spacing: .015em; color: var(--wit); }
.midden { justify-content: center; }
.lead { color: var(--vaal); }
.klein-t { font-size: 15px; line-height: 1.25; }
.klein-l { font-weight: 700; font-size: 13px; letter-spacing: .05em; color: var(--rood-l); }
.voet { flex: none; display: grid; gap: 10px; padding: 12px var(--gr) max(14px, env(safe-area-inset-bottom, 0px)) var(--gl); background: var(--vlak1); border-top: 1px solid var(--lijn); }
.veld { font-weight: 700; color: var(--roos); }
input { width: 100%; min-height: 54px; padding: 10px 14px; font: 400 24px/1.1 var(--kop); letter-spacing: .02em; background: var(--vlak2); color: var(--wit); border: 1px solid var(--lijn); border-bottom: 3px solid var(--rood); border-radius: 4px 4px 0 0; }
input::placeholder { color: var(--vaal); opacity: .7; }
.koprij h2 { white-space: nowrap; font-size: clamp(26px, 8.6cqw, 34px); }
.koprij { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.pips { display: flex; gap: 4px; flex: none; }
.pips i { width: 10px; height: 5px; background: var(--vlak3); }
.pips i.aan { background: var(--rood); }
.pips i.nu { background: var(--wit); }
.kader { background: var(--vlak2); padding: 10px 12px; border-radius: 4px; text-align: left; }
.kader.rood { background: var(--rood-dd); }
.kader.goud { background: var(--rood); color: #fff; font-weight: 700; text-align: center; }

/* Draft */
.rad { background: var(--vlak1); padding: 10px 14px; border-radius: 4px; border-left: 5px solid var(--vlak3); }
.rad small { display: block; color: var(--vaal); font-size: 14px; }
.rad b { font: 400 32px/1.1 var(--kop); letter-spacing: .02em; }
.rad-stad { color: var(--vaal); font-size: 15px; min-height: 20px; }
.rad.stop { border-left-color: var(--rood); }
.kaarten { display: grid; gap: 8px; min-height: 196px; align-content: start; }
.kaart { display: grid; grid-template-columns: 58px 1fr; gap: 12px; align-items: center; min-height: 60px; text-align: left; background: var(--vlak2); color: var(--wit); border: 1px solid var(--lijn); border-radius: 4px; padding: 6px 12px 6px 6px; }
.kaart:active { background: var(--vlak3); }
.waarde { font: 400 32px/46px var(--kop); text-align: center; background: var(--rood-dd); color: #fff; border-radius: 2px; }
.kt b { display: block; font: 400 22px/1.1 var(--kop); letter-spacing: .02em; }
.kt small { font-size: 15px; color: var(--vaal); }
.stats { display: grid; gap: 4px; }
.stat { display: grid; grid-template-columns: 92px 1fr 26px; gap: 8px; align-items: center; font-size: 15px; }
.stat b { text-align: right; font-variant-numeric: tabular-nums; }
.stat.leeg { color: var(--vaal); opacity: .6; }
.bar { height: 7px; background: var(--vlak3); overflow: hidden; border-radius: 1px; }
.bar i { display: block; height: 100%; background: var(--rood); transform-origin: left; transition: transform .25s; }
.naambord { display: grid; gap: 2px; border-left: 5px solid var(--rood); padding-left: 12px; }
.naam { font-size: 40px !important; overflow-wrap: anywhere; }
.afkomst { font-size: 15px; color: var(--vaal); display: grid; gap: 2px; }
.afkomst b { color: var(--wit); }
.web { display: block; width: 100%; max-width: 280px; margin: 0 auto; overflow: visible; }
.w-l { font: 700 11px var(--tekst); fill: var(--vaal); }
.w-w { font: 400 15px var(--kop); fill: var(--wit); }

/* Kop */
.kop { flex: none; display: flex; gap: 12px; align-items: center; background: var(--rood-dd); padding: max(8px, env(safe-area-inset-top, 0px)) var(--gr) 6px var(--gl); }
.rec { font: 400 48px/1.05 var(--kop); white-space: nowrap; color: #fff; }
.meta { min-width: 0; display: grid; font-size: 13px; line-height: 1.22; color: var(--roos); }
.meta b { color: #fff; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.streep { flex: none; display: grid; grid-template-columns: repeat(40, 1fr); gap: 1px; background: var(--rood-dd); padding: 0 var(--gr) 8px var(--gl); }
.streep i { height: 7px; background: rgba(0,0,0,.4); }
.streep i.tit { box-shadow: 0 -3px 0 #fff; }
.streep i.w { background: #fff; }
.streep i.l { background: #0a0506; }
.streep i.d { background: var(--vaal); }
.streep.groot { padding: 4px 0 0; background: none; }
.streep.groot i { height: 18px; background: var(--vlak3); }
.streep.groot i.l { background: var(--rood); }
.streep.groot i.w { background: var(--wit); }

.hoofdstuk { display: grid; gap: 2px; }
.hoofdstuk h2 { font-size: 30px; }
.hoofdstuk.nieuw { border-left: 5px solid var(--rood); padding-left: 12px; }
.locatie { color: var(--vaal); font-size: 14px; }
.profiel, .kast, .lichaam { background: var(--vlak1); border-radius: 4px; }
.profiel { padding: 2px 6px; }
.kast { padding: 10px; display: grid; gap: 6px; }
.kast-t { font-weight: 700; font-size: 14px; color: var(--roos); }
.kast-rij { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.vak { text-align: center; background: var(--bg); padding: 6px 4px; border-radius: 2px; }
.vak.vol { background: var(--vlak3); }
.vak small { display: block; font-size: 12px; color: var(--vaal); }
.vak.vol small { color: var(--wit); font-weight: 700; }
.lichaam { padding: 10px 12px 12px; display: grid; gap: 10px; }
.lichaam.oranje { box-shadow: inset 0 0 0 1px var(--min); }
.lichaam.rood { box-shadow: inset 0 0 0 2px var(--rood-l); background: var(--rood-dd); }
.meters { display: grid; grid-template-columns: 1fr auto auto; gap: 14px; font-size: 14px; }
.meters small { color: var(--vaal); font-size: 13px; }
.meters .bar { margin-block: 3px; }
.bar.slijt i { background: var(--min); }
.vorm { display: block; font: 400 24px/1.1 var(--kop); text-align: center; }

.optie { background: var(--vlak2); padding: 10px 12px 14px; border-radius: 4px; display: grid; gap: 5px; }
.optie.titel { background: var(--vlak3); box-shadow: inset 0 0 0 2px var(--rood); }
.optie.rivaal { background: var(--rood-dd); box-shadow: inset 0 0 0 2px var(--rood-l); }
.optie.wraak { box-shadow: inset 4px 0 0 var(--rood-l); }
.optie .lbl { font-weight: 700; font-size: 13px; letter-spacing: .05em; color: var(--rood-l); }
.optie.rivaal .lbl, .optie.rivaal .bij { color: var(--roos); }
.optie-kop { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; }
.optie-kop > div { min-width: 0; }
.optie h3 { font: 400 25px/1.08 var(--kop); letter-spacing: .02em; }
.optie .bij { color: var(--vaal); font-size: 14px; line-height: 1.22; }
.verhaal { font-size: 16px; color: var(--wit); }
.prijs { max-width: 300px; margin: 2px auto; width: 100%; filter: drop-shadow(0 6px 10px rgba(0,0,0,.6)); }
.prijs.groot { max-width: 440px; }
.tot { text-align: center; line-height: 1; }
.tot b { display: block; font: 400 30px/1 var(--kop); }
.tot small { font-size: 12px; color: var(--vaal); }
.insch { font-weight: 700; }
.insch.pos { color: var(--plus); }
.insch.neg { color: var(--min); }
.scout { font-size: 15px; background: rgba(0,0,0,.28); padding: 5px 8px; border-radius: 2px; }
.scout b { color: var(--plus); }
.scout.dicht { color: var(--vaal); font-size: 14px; }
.kop-scout { font-weight: 700; font-size: 14px; color: var(--roos); }
.bel { color: var(--roos); font-size: 15px; margin-bottom: 6px; }
.tape { display: grid; gap: 1px; background: rgba(0,0,0,.28); border-radius: 2px; padding: 4px 8px; }
.trij { display: grid; grid-template-columns: 34px 1fr 34px; align-items: center; text-align: center; font-size: 14px; line-height: 1.35; }
.trij b { font-variant-numeric: tabular-nums; }
.trij.tkop { font-size: 12px; color: var(--vaal); }
.trij.beter .ik { color: var(--plus); }
.trij.slechter .hij { color: var(--min); }

/* Gevecht */
.ringkop { flex: none; display: grid; gap: 4px; padding: max(8px, env(safe-area-inset-top, 0px)) var(--gr) 8px var(--gl); background: var(--vlak1); border-bottom: 1px solid var(--lijn); }
.ronde-tekst { font: 400 26px/1 var(--kop); color: var(--wit); }
.ringkop .locatie { margin-top: -2px; }
.jury { font-size: 13px; color: var(--vaal); font-variant-numeric: tabular-nums; }
.hp { display: grid; grid-template-columns: 76px 1fr; gap: 8px; align-items: center; font-size: 13px; font-weight: 700; }
.hp span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hp div { height: 12px; background: var(--vlak3); overflow: hidden; border-radius: 1px; }
.hp i { display: block; height: 100%; transform-origin: left; transition: transform .35s; }
.hp.blauw i { background: var(--wit); }
.hp.rood i { background: var(--rood); }
.legenda { flex: none; display: flex; gap: 16px; font-size: 13px; font-weight: 700; padding: 4px var(--gr) 4px var(--gl); background: var(--bg); }
.legenda .p { color: var(--plus); }
.legenda .m { color: var(--min); }
.log { gap: 7px; }
.regel { display: flex; gap: 8px; padding: 7px 10px; border-radius: 3px; background: var(--vlak1); color: var(--vaal); animation: in .22s ease-out; }
.regel.plus { background: #10231e; color: var(--wit); box-shadow: inset 3px 0 0 var(--plus); }
.regel.min { background: #301316; color: var(--wit); box-shadow: inset 3px 0 0 var(--min); }
.pijl { font-size: 13px; line-height: 1.75; flex: none; }
.plus .pijl { color: var(--plus); }
.min .pijl { color: var(--min); }
.regel.ronde { display: block; background: none; color: var(--wit); padding: 8px 0 2px; font: 400 22px/1 var(--kop); letter-spacing: .02em; border-bottom: 1px solid var(--lijn); border-radius: 0; }
.regel.einde-ronde { font-weight: 700; }
.regel.ko { background: var(--plus); color: #06241b; font-weight: 700; box-shadow: none; }
.regel.ko .pijl { color: #06241b; }
.regel.koTegen { background: var(--rood); color: #fff; font-weight: 700; box-shadow: none; }
.regel.koTegen .pijl { color: #fff; }
@keyframes in { from { opacity: 0; transform: translateY(6px); } }

/* Uitslag */
.uit { text-align: center; }
.pagina.uit { padding-top: 0; }
.uit-kop { margin-inline: calc(-1 * var(--gl)) calc(-1 * var(--gr)); padding: max(16px, env(safe-area-inset-top, 0px)) var(--gr) 10px var(--gl); display: grid; gap: 4px; background: var(--vlak3); }
.uit.w .uit-kop { background: var(--rood); border-bottom: 6px solid var(--rood-d); }
.uit-kop .hier { color: #fff; }
.reuze { font-size: clamp(76px, 26cqw, 116px); }
.scorekaart { background: var(--papier); color: var(--inkt); border-radius: 3px; padding: 6px 8px; overflow-x: auto; }
.scorekaart table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; font-size: 14px; }
.scorekaart th { font-size: 11px; color: #6a5a58; font-weight: 700; border-bottom: 2px solid var(--inkt); }
.scorekaart td { padding: 3px 1px; text-align: center; }
.scorekaart td:first-child, .scorekaart th:first-child { text-align: left; font-weight: 700; white-space: nowrap; padding-right: 4px; }
.scorekaart td.win { font-weight: 700; background: rgba(216,31,46,.2); }
.eind { text-align: center; }
.eind .naambord { text-align: left; }
.cijfers { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; font-size: 14px; color: var(--vaal); }
.cijfers div { background: var(--vlak2); padding: 8px 2px; border-radius: 3px; }
.cijfers b { display: block; font: 400 28px/1 var(--kop); color: var(--wit); }

/* Training en gebeurtenis */
.trn-rij { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.trn { min-height: 68px; background: var(--vlak2); color: var(--wit); border: 1px solid var(--lijn); border-radius: 4px; padding: 8px 10px; text-align: left; display: grid; gap: 2px; }
.trn:active { background: var(--vlak3); }
.trn span { font: 400 20px/1 var(--kop); letter-spacing: .02em; }
.trn b { font-size: 15px; color: var(--vaal); }
.trn em { font-style: normal; color: var(--plus); }
.trn.rust { border-color: #2f6e58; }
.krant { background: var(--papier); color: var(--inkt); padding: 16px; border-radius: 2px; display: grid; gap: 6px; }
.krant .hier { color: var(--rood-d); border-bottom: 2px solid var(--inkt); padding-bottom: 4px; }
.vraag { color: var(--inkt) !important; font: 700 26px/1.18 var(--tekst) !important; text-transform: none !important; text-wrap: balance; }

/* Nieuw: modus, contract, team, centrum, leaderboard */
.rij2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.modi { display: grid; gap: 8px; }
.modus, .contract { display: grid; gap: 2px; width: 100%; min-height: 64px; text-align: left; padding: 10px 12px; background: var(--vlak2); color: var(--wit); border: 1px solid var(--lijn); border-radius: 4px; }
.modus b, .contract b { font: 400 22px/1.1 var(--kop); letter-spacing: .02em; }
.modus span, .contract span { font-size: 15px; line-height: 1.25; color: var(--vaal); }
.modus.aan { background: var(--rood-dd); border-color: var(--rood-l); box-shadow: inset 4px 0 0 var(--rood); }
.modus.aan span { color: var(--roos); }
.contract:active, .teamknop:active:not(:disabled) { background: var(--vlak3); }
.tussenkop { font: 400 22px/1.1 var(--kop); letter-spacing: .02em; }
.hc { font-style: normal; font-size: 12px; background: var(--wit); color: var(--rood-d); padding: 0 5px; border-radius: 2px; vertical-align: 1px; }
.saldi { color: #fff; font-weight: 700; }
.team { background: var(--vlak1); border-radius: 4px; padding: 10px; display: grid; gap: 6px; }
.teamknop { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; min-height: 52px; padding: 6px 10px; text-align: left; background: var(--vlak2); color: var(--wit); border: 1px solid var(--lijn); border-radius: 3px; }
.teamknop:disabled { opacity: .6; cursor: not-allowed; }
.teamknop b { display: block; font-size: 16px; }
.teamknop small { color: var(--vaal); font-size: 14px; }
.teamknop em { font-style: normal; font-weight: 700; color: var(--roos); white-space: nowrap; }
.loon { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; font-size: 14px; color: var(--vaal); }
.loon.enkel { grid-template-columns: 1fr; text-align: center; }
.loon div { background: var(--vlak2); padding: 6px 2px; border-radius: 3px; }
.loon b { display: block; font: 400 22px/1.1 var(--kop); color: var(--wit); }
.plek { font-weight: 700; color: var(--roos); }
.upgrade { display: grid; gap: 8px; background: var(--vlak2); padding: 10px 12px 12px; border-radius: 4px; }
.upgrade h3 { font: 400 22px/1.1 var(--kop); letter-spacing: .02em; }
.upgrade p { font-size: 15px; line-height: 1.25; color: var(--vaal); margin-bottom: 6px; }
.tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--lijn); border-radius: 4px; overflow: hidden; }
.tab { min-height: 48px; background: var(--vlak1); color: var(--vaal); border: 0; font: 400 18px/1 var(--kop); letter-spacing: .02em; }
.tab.aan { background: var(--rood); color: #fff; }
#lijst { display: grid; gap: 10px; }
.lb { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.lb li { display: grid; grid-template-columns: 30px 1fr auto; gap: 8px; align-items: center; background: var(--vlak1); padding: 8px 10px; border-radius: 3px; }
.lb li:nth-child(-n+3) { background: var(--vlak3); }
.lb li.mij { box-shadow: inset 3px 0 0 var(--rood-l); }
.pl { font: 400 22px/1 var(--kop); text-align: center; color: var(--roos); }
.nm { min-width: 0; }
.nm b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nm small, .pt small { color: var(--vaal); font-size: 13px; }
.pt { text-align: right; font: 400 22px/1.05 var(--kop); font-variant-numeric: tabular-nums; }
.pt small { display: block; font: 500 12px var(--tekst); }

#draai { display: none; position: fixed; inset: 0; z-index: 50; background: var(--rood); color: #fff; flex-direction: column; align-items: center; justify-content: center; font: 400 30px/1.1 var(--kop); text-align: center; padding: 24px; }
@media (orientation: landscape) and (max-height: 520px) { #draai { display: flex; } #app { visibility: hidden; } }
@media (min-width: 560px) and (min-height: 521px) { body { align-items: center; background: #060304; } #app { width: 412px; height: min(100%, 860px); box-shadow: 0 0 0 1px var(--lijn); } }
@media (max-height: 640px) { .record-groot { font-size: 76px; } .titel-spel { font-size: 24px; } .start-riem { width: 84%; margin-block: 2px; } .start .sub { font-size: 15px; line-height: 1.25; } .rec { font-size: 40px; } .pagina { gap: 9px; } .stat { font-size: 14px; } .kaarten { min-height: 0; } .kaart { min-height: 52px; } .waarde { font-size: 28px; line-height: 40px; } .web { max-width: 220px; } }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }
