/* Große Flächen, weil an der Station mit nassen Fingern auf ein Tablet getippt
   wird – und weil Kampfrichter oft keine jungen Augen haben. */
:root{
  --grund:#f4f6f8; --karte:#fff; --text:#1f2733; --leise:#5b6675; --rand:#dde3ea;
  --akzent:#e8641e; --dunkel:#212a36; --gut:#137a3b; --warn:#b45309; --fehler:#b3261e;
  --tipp:56px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-thema="hell"]){
    --grund:#151a21; --karte:#1d242e; --text:#e8edf3; --leise:#9aa7b6; --rand:#2f3a48;
  }
}
:root[data-thema="dunkel"]{--grund:#151a21;--karte:#1d242e;--text:#e8edf3;--leise:#9aa7b6;--rand:#2f3a48;}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,sans-serif;background:var(--grund);color:var(--text);font-size:17px}
header{background:var(--dunkel);color:#fff;padding:10px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;position:sticky;top:0;z-index:20}
header .marke{font-weight:800;font-size:1.1rem}
header .marke span{color:var(--akzent)}
header .wer{margin-left:auto;font-size:.9rem;color:#c7d0da;display:flex;align-items:center;gap:10px}
nav{display:flex;gap:6px;overflow-x:auto;padding:8px 16px;background:var(--karte);border-bottom:1px solid var(--rand);position:sticky;top:52px;z-index:19}
nav button{flex:0 0 auto;border:1px solid var(--rand);background:transparent;color:var(--text);padding:9px 14px;border-radius:999px;font-size:.95rem;cursor:pointer}
nav button[aria-current="true"]{background:var(--akzent);border-color:var(--akzent);color:#fff;font-weight:600}
main{padding:16px;max-width:1100px;margin:0 auto}
.karte{background:var(--karte);border:1px solid var(--rand);border-radius:12px;padding:16px;margin-bottom:16px}
h1{font-size:1.25rem;margin:0 0 4px}
h2{font-size:1.05rem;margin:0 0 12px}
p.hinweis{color:var(--leise);margin:0 0 14px;line-height:1.5}
label{display:block;font-size:.85rem;color:var(--leise);margin:10px 0 4px}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--rand);border-radius:9px;background:var(--grund);color:var(--text);font-size:1rem;font-family:inherit}
button.tat{background:var(--akzent);color:#fff;border:0;padding:12px 18px;border-radius:9px;font-size:1rem;font-weight:600;cursor:pointer;min-height:var(--tipp)}
button.still{background:transparent;color:var(--text);border:1px solid var(--rand);padding:10px 14px;border-radius:9px;cursor:pointer}
button:disabled{opacity:.55;cursor:not-allowed}
.reihe{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.reihe>*{flex:1 1 180px}
table{width:100%;border-collapse:collapse;font-size:.95rem}
th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--rand)}
th{color:var(--leise);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
td.zahl,th.zahl{text-align:right;font-variant-numeric:tabular-nums}
.rang{font-weight:700;width:2.5em}
.rang.r1{color:#b8860b}.rang.r2{color:#8a8a8a}.rang.r3{color:#a0522d}
.meldung{padding:11px 14px;border-radius:9px;margin-bottom:12px;font-size:.95rem}
.meldung.gut{background:#e7f6ec;color:#0f5132;border:1px solid #bcdfc9}
.meldung.warn{background:#fff4e5;color:#7c4a02;border:1px solid #f2d5a8}
.meldung.fehler{background:#fdecea;color:#7f1d1d;border:1px solid #f5c2c0}
.marke-offline{background:var(--warn);color:#fff;padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:600}
.marke-live{background:var(--gut);color:#fff;padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:600}
/* Erfassung an der Station: eine Zeile je Athlet, Eingabefeld groß genug zum Tippen */
.station-zeile{display:grid;grid-template-columns:3.2em 1fr 7.5em 3.2em;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--rand)}
.station-zeile .nr{font-weight:700;color:var(--leise);font-variant-numeric:tabular-nums}
.station-zeile .wen{line-height:1.3}
.station-zeile .wen small{display:block;color:var(--leise)}
.station-zeile input{min-height:var(--tipp);font-size:1.15rem;text-align:right;font-variant-numeric:tabular-nums}
.station-zeile .x{min-height:var(--tipp);border:1px solid var(--rand);background:transparent;color:var(--leise);border-radius:9px;font-weight:700;cursor:pointer}
.station-zeile .x[aria-pressed="true"]{background:var(--fehler);color:#fff;border-color:var(--fehler)}
.leer{color:var(--leise);text-align:center;padding:28px 12px;line-height:1.5}
.anmelden{max-width:380px;margin:8vh auto}
@media(max-width:560px){
  nav{top:48px}
  .station-zeile{grid-template-columns:2.6em 1fr 6.5em 3em;gap:8px}
  main{padding:12px}
}
@media print{
  header,nav,button{display:none!important}
  body{background:#fff;color:#000;font-size:12px}
  .karte{border:0;padding:0;page-break-inside:avoid}
}
