/* Vitalis Team Cup: Ergänzungen zu Bootstrap 5. Mobile First. */
:root {
  --cup-brand: #17403a;
  --cup-men: #1d4ed8;
  --cup-women: #a21caf;
  --cup-mixed: #0f766e;
  --cup-win: #166534;
  --cup-loss: #b91c1c;
}

body { background: #f4f6f5; }

.app-navbar { background: var(--cup-brand); --bs-navbar-color: #e7f0ee; --bs-navbar-hover-color: #fff; --bs-navbar-active-color: #fff; --bs-navbar-brand-color: #fff; --bs-navbar-brand-hover-color: #fff; --bs-navbar-toggler-border-color: rgba(255,255,255,.5); --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,.9%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
.app-navbar .nav-link.active { font-weight: 600; text-decoration: underline; text-underline-offset: .35em; }
.env-banner { background: #92400e; color: #fff; text-align: center; font-size: .85rem; padding: .25rem; }

h1, .h1 { font-size: 1.5rem; }
h2, .h2 { font-size: 1.15rem; }
.text-muted-strong { color: #4b5563; }

/* Kategorien: Farbe plus Beschriftung */
.cat-badge { display: inline-block; padding: .15em .55em; border-radius: .35rem; font-size: .78rem; font-weight: 600; color: #fff; }
.cat-MEN { background: var(--cup-men); }
.cat-WOMEN { background: var(--cup-women); }
.cat-MIXED { background: var(--cup-mixed); }
.cat-edge-MEN { border-left: 5px solid var(--cup-men) !important; }
.cat-edge-WOMEN { border-left: 5px solid var(--cup-women) !important; }
.cat-edge-MIXED { border-left: 5px solid var(--cup-mixed) !important; }

/* Status */
.status-badge { display: inline-block; padding: .15em .55em; border-radius: .35rem; font-size: .78rem; font-weight: 600; border: 1px solid transparent; }
.status-PLANNED { background: #e5e7eb; color: #1f2937; }
.status-PLAYED { background: #dcfce7; color: #14532d; }
.status-POSTPONED { background: #fef3c7; color: #78350f; }
.status-CANCELLED { background: #374151; color: #fff; }
.status-ABANDONED { background: #fee2e2; color: #7f1d1d; }
.status-MISSING { background: #fff; color: #92400e; border-color: #b45309; }

.outcome-win { color: var(--cup-win); font-weight: 600; }
.outcome-loss { color: var(--cup-loss); font-weight: 600; }

/* Karten und Kennzahlen */
.match-card { background: #fff; border: 1px solid #dfe5e3; border-radius: .6rem; padding: .85rem 1rem; }
.match-card a.stretched { color: inherit; text-decoration: none; }
.match-hero { background: #fff; border: 1px solid #dfe5e3; border-radius: .75rem; padding: 1.1rem 1.25rem; }
.match-hero .when { font-size: 1.25rem; font-weight: 700; }
.stat-tile { background: #fff; border: 1px solid #dfe5e3; border-radius: .6rem; padding: .75rem .9rem; height: 100%; }
.stat-tile .value { font-size: 1.6rem; font-weight: 700; line-height: 1.15; color: #111827; }
.stat-tile .label { font-size: .82rem; color: #4b5563; }
.panel { background: #fff; border: 1px solid #dfe5e3; border-radius: .6rem; padding: 1rem; }
.opponents { font-size: .85rem; color: #4b5563; }
.table-panel { background: #fff; border: 1px solid #dfe5e3; border-radius: .6rem; overflow-x: auto; }
.table-panel .table { margin-bottom: 0; }
.table td.num, .table th.num { text-align: right; font-variant-numeric: tabular-nums; }

/* Resultaterfassung */
.score-grid { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr) minmax(0, 1fr); gap: .5rem .6rem; align-items: center; }
.score-grid .head { font-size: .8rem; font-weight: 600; color: #374151; overflow-wrap: anywhere; }
.score-input { text-align: center; font-size: 1.15rem; padding: .45rem .25rem; }
.tb-row { grid-column: 2 / 4; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .6rem; }
.tb-row .score-input { font-size: .95rem; padding: .25rem; }
.form-section-title { font-size: 1rem; font-weight: 600; margin-bottom: .5rem; }
.choice-list { list-style: none; padding: 0; margin: 0; }
.choice-list > div, .choice-list li { margin-bottom: .3rem; }
.choice-list label { display: block; }
.is-hidden { display: none !important; }
.preview { font-weight: 600; }
.errorlist { list-style: none; padding: 0; margin: .25rem 0 0; color: #b91c1c; font-size: .9rem; }

/* Formulare ohne Bootstrap-Klassen (Authentifizierung) */
.plain-form input:not([type=checkbox]):not([type=hidden]) { display: block; width: 100%; padding: .5rem .75rem; font-size: 1rem; border: 1px solid #9ca3af; border-radius: .375rem; background: #fff; }
.plain-form input:focus { outline: 2px solid var(--cup-mixed); outline-offset: 1px; }
.plain-form label { font-weight: 600; margin-bottom: .25rem; }
.plain-form .helptext, .plain-form .help-text { font-size: .85rem; color: #4b5563; }
.auth-card { max-width: 26rem; margin: 2rem auto; }

@media (min-width: 768px) {
  h1, .h1 { font-size: 1.75rem; }
  .score-grid { max-width: 26rem; }
}

.tb-row [data-span="all"] { grid-column: 1 / 3; }
