/*
 * Schiri-App – bildschirmfüllende Oberfläche für Schiedsrichter und Zeitnehmer.
 * Gleiche Farbwelt wie die Spielkonsole (.ts-rc2). Handy: Tab-Leiste unten,
 * ab 1024 px Seitenleiste links.
 */

html.ts-ra-open, html.ts-ra-open body { overflow: hidden !important; }

.ts-ra {
    --ra-bg: #0b1220; --ra-panel: #121b2e; --ra-panel-2: #18233a; --ra-line: #24324d;
    --ra-tx: #f1f5f9; --ra-mu: #94a3b8; --ra-ac: #3b82f6; --ra-ok: #22c55e; --ra-warn: #f59e0b; --ra-bad: #ef4444;
    --ra-home: #38bdf8; --ra-away: #f472b6;
    --ra-nav-h: 64px;
    position: fixed; inset: 0; z-index: 99980;
    display: grid; grid-template-rows: 1fr auto; grid-template-areas: "stage" "nav";
    background: var(--ra-bg); color: var(--ra-tx);
    font: 15px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    -webkit-font-smoothing: antialiased; -webkit-tap-highlight-color: transparent;
}
.ts-ra *, .ts-ra *::before, .ts-ra *::after { box-sizing: border-box; }
body.admin-bar .ts-ra { top: 32px; }
@media (max-width: 782px) { body.admin-bar .ts-ra { top: 46px; } }
.ts-ra a { color: inherit; text-decoration: none; }
.ts-ra button { font: inherit; color: inherit; cursor: pointer; }

/* --- Navigation ----------------------------------------------------------- */
.ts-ra-nav {
    grid-area: nav; display: flex; justify-content: space-around; align-items: stretch;
    background: var(--ra-panel); border-top: 1px solid var(--ra-line);
    padding: 4px 4px max(4px, env(safe-area-inset-bottom));
}
.ts-ra-brand, .ts-ra-nav-foot { display: none; }
.ts-ra-tab {
    flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    min-height: 54px; border-radius: 12px; color: var(--ra-mu); font-size: 12px; font-weight: 600;
}
.ts-ra-tab-ico { font-size: 20px; line-height: 1; }
.ts-ra-tab.is-active { color: var(--ra-tx); background: var(--ra-panel-2); }
.ts-ra-tab.is-live .ts-ra-tab-ico { animation: ra-pulse 1.6s infinite; }
.ts-ra-tab.is-disabled { opacity: .35; }
.ts-ra.is-game .ts-ra-nav { display: none; }
.ts-ra.is-game { grid-template-rows: 1fr; grid-template-areas: "stage"; }

/* --- Bühne ----------------------------------------------------------------- */
.ts-ra-stage { grid-area: stage; display: flex; flex-direction: column; min-height: 0; min-width: 0; }
.ts-ra-top {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: max(10px, env(safe-area-inset-top)) 16px 10px; border-bottom: 1px solid var(--ra-line);
    background: var(--ra-bg);
}
.ts-ra-top h1 { margin: 0; font-size: 22px; font-weight: 800; color: var(--ra-tx); line-height: 1.2; }
.ts-ra-sub { color: var(--ra-mu); font-size: 13px; }
.ts-ra-top-side { display: flex; align-items: center; gap: 10px; }
.ts-ra-now { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--ra-mu); }
.ts-ra-avatar { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--ra-ac); color: #fff; font-weight: 800; }

.ts-ra-switch { position: relative; }
.ts-ra-switch summary { list-style: none; cursor: pointer; color: var(--ra-mu); font-size: 13px; display: inline-flex; gap: 4px; align-items: center; padding: 2px 0; }
.ts-ra-switch summary::-webkit-details-marker { display: none; }
.ts-ra-switch[open] summary { color: var(--ra-tx); }
.ts-ra-switch-menu {
    position: absolute; z-index: 5; top: calc(100% + 6px); left: 0; min-width: 260px; max-height: 60vh; overflow: auto;
    background: var(--ra-panel-2); border: 1px solid var(--ra-line); border-radius: 12px; padding: 6px; box-shadow: 0 16px 40px rgba(0,0,0,.45);
}
.ts-ra-switch-menu a { display: block; padding: 10px 12px; border-radius: 8px; font-size: 14px; }
.ts-ra-switch-menu a:hover, .ts-ra-switch-menu a.is-current { background: var(--ra-panel); }
.ts-ra-switch-menu a.is-current { color: var(--ra-ac); font-weight: 700; }
.ts-ra-switch-menu a.is-child { padding-left: 26px; color: var(--ra-mu); }

.ts-ra-main { flex: 1; overflow: auto; -webkit-overflow-scrolling: touch; padding: 12px 16px 24px; overscroll-behavior: contain; }

/* --- Filter --------------------------------------------------------------- */
.ts-ra-filters { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 10px; scrollbar-width: none; }
.ts-ra-filters::-webkit-scrollbar { display: none; }
.ts-ra-chip {
    flex: 0 0 auto; padding: 8px 14px; min-height: 38px; border-radius: 999px; border: 1px solid var(--ra-line);
    background: var(--ra-panel); color: var(--ra-mu); font-weight: 600; font-size: 14px;
}
.ts-ra-chip.is-on { background: var(--ra-tx); color: var(--ra-bg); border-color: var(--ra-tx); }
.ts-ra-chip.is-icon { margin-left: auto; }
.ts-ra-chip.is-spinning { animation: ra-spin .8s linear infinite; }

/* --- Spielkarten ----------------------------------------------------------- */
.ts-ra-sec { margin: 6px 0 18px; }
.ts-ra-sec h2 { margin: 0 0 8px; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--ra-mu); display: flex; align-items: center; gap: 6px; }
.ts-ra-count { background: var(--ra-panel-2); color: var(--ra-mu); border-radius: 999px; padding: 1px 8px; font-size: 11px; }
.ts-ra-cards { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); }
.ts-ra-card {
    display: grid; gap: 8px; padding: 12px 14px; border-radius: 16px; background: var(--ra-panel);
    border: 1px solid var(--ra-line); transition: transform .12s, border-color .12s;
}
.ts-ra-card:active { transform: scale(.985); }
.ts-ra-card:hover { border-color: #33476d; }
.ts-ra-card.is-live { border-color: rgba(239, 68, 68, .55); box-shadow: 0 0 0 1px rgba(239, 68, 68, .25) inset; }
.ts-ra-card.is-done { opacity: .78; }
.ts-ra-card.is-hidden { display: none; }
.ts-ra-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 22px; }
.ts-ra-card-teams { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; font-weight: 700; font-size: 16px; }
.ts-ra-card-teams .is-home { text-align: right; }
.ts-ra-card-teams span { overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ts-ra-card-teams b { font-size: 22px; font-weight: 900; font-variant-numeric: tabular-nums; padding: 2px 10px; border-radius: 10px; background: var(--ra-panel-2); }
.ts-ra-card-meta { color: var(--ra-mu); font-size: 12px; text-align: center; }
.ts-ra-pill { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; background: var(--ra-panel-2); color: var(--ra-mu); font-variant-numeric: tabular-nums; }
.ts-ra-pill.is-live { background: rgba(239, 68, 68, .18); color: #fecaca; }
.ts-ra-pill.is-live.is-paused { background: rgba(245, 158, 11, .18); color: #fde68a; }
.ts-ra-pill.is-soon { background: rgba(59, 130, 246, .2); color: #bfdbfe; }
.ts-ra-pill.is-done { color: #bbf7d0; background: rgba(34, 197, 94, .14); }
.ts-ra-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ra-bad); animation: ra-pulse 1.6s infinite; }
.is-paused .ts-ra-dot { background: var(--ra-warn); animation: none; }
.ts-ra-mine { font-size: 12px; color: #fde68a; font-weight: 700; }

.ts-ra-empty { text-align: center; padding: 48px 16px; color: var(--ra-mu); }
.ts-ra-empty > div { font-size: 44px; }
.ts-ra-empty h2 { color: var(--ra-tx); margin: 8px 0 4px; font-size: 20px; }

/* --- Spiel ----------------------------------------------------------------- */
.ts-ra-gamebar {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    padding: max(8px, env(safe-area-inset-top)) 10px 8px; border-bottom: 1px solid var(--ra-line); background: var(--ra-panel);
}
.ts-ra-back { padding: 8px 10px; border-radius: 10px; font-weight: 700; color: var(--ra-ac) !important; font-size: 16px; }
.ts-ra-gamebar-title { flex: 1; min-width: 140px; display: grid; line-height: 1.2; }
.ts-ra-gamebar-title strong { font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ts-ra-gamebar-title span { font-size: 12px; color: var(--ra-mu); }
.ts-ra-seg { display: inline-flex; background: var(--ra-bg); border-radius: 10px; padding: 3px; border: 1px solid var(--ra-line); }
.ts-ra-seg a { padding: 7px 12px; border-radius: 8px; font-weight: 700; font-size: 13px; color: var(--ra-mu); white-space: nowrap; }
.ts-ra-seg a.is-on { background: var(--ra-panel-2); color: var(--ra-tx); }
.ts-ra-next { padding: 8px 12px; border-radius: 10px; background: var(--ra-ok); color: #052e16 !important; font-weight: 800; font-size: 13px; }
.ts-ra-console { flex: 1; min-height: 0; display: flex; padding: 6px; padding-bottom: max(6px, env(safe-area-inset-bottom)); }
.ts-ra-console > .ts-rc2 { flex: 1; min-height: 0; height: 100%; margin: 0; border-radius: 12px; }
.ts-ra-console > .ts-rc2-exit { display: none; }
@media (max-width: 560px) {
    .ts-ra-back span, .ts-ra-seg a span { display: none; }
    .ts-ra-gamebar-title { min-width: 0; }
}

/* --- Erweitert: Panel als helles Blatt -------------------------------------- */
.ts-ra-sheet {
    background: #fff; color: #1e293b; border-radius: 16px; padding: 12px; max-width: 1400px; margin: 0 auto;
    font-size: 14px;
}
.ts-ra-sheet a { color: #2563eb; }
.ts-ra-sheet .wrap { margin: 0; }
.ts-ra:not(.ts-aa) .ts-ra-sheet .ts-page-head, .ts-ra-sheet .ts-shell, .ts-ra-sheet .ts-admin-back-bar { display: none; }
.ts-ra-sheet .ts-rc2 { color: var(--ra-tx); }
.ts-ra-sheet .ts-rc2-exit { display: none; }

/* --- Mehr ------------------------------------------------------------------ */
.ts-ra-more { display: grid; gap: 12px; max-width: 760px; }
.ts-ra-panel { background: var(--ra-panel); border: 1px solid var(--ra-line); border-radius: 16px; padding: 14px 16px; }
.ts-ra-panel h2 { margin: 0 0 6px; font-size: 17px; color: var(--ra-tx); }
.ts-ra-muted { color: var(--ra-mu); margin: 0 0 10px; font-size: 14px; }
.ts-ra-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ts-ra-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 46px; padding: 10px 16px;
    border-radius: 12px; background: var(--ra-panel-2); border: 1px solid var(--ra-line); font-weight: 700; color: var(--ra-tx) !important;
}
.ts-ra-btn.is-primary { background: var(--ra-ac); border-color: var(--ra-ac); color: #fff !important; }
.ts-ra-help { margin: 0; padding-left: 18px; color: var(--ra-mu); }
.ts-ra-help li { margin: 0 0 6px; }
.ts-ra-help strong { color: var(--ra-tx); }
.ts-ra-optin { background: #fff; color: #1e293b; border-radius: 12px; padding: 4px; }

/* --- Anmeldung --------------------------------------------------------------- */
.ts-ra.is-login { display: grid; place-items: center; grid-template-rows: 1fr; grid-template-areas: "stage"; padding: 16px; }
.ts-ra-login { max-width: 420px; width: 100%; text-align: center; background: var(--ra-panel); border: 1px solid var(--ra-line); border-radius: 20px; padding: 32px 24px; }
.ts-ra-login-icon { font-size: 48px; }
.ts-ra-login h1 { margin: 8px 0; color: var(--ra-tx); font-size: 26px; }
.ts-ra-login p { color: var(--ra-mu); margin: 0 0 18px; }

/* --- Breite Bildschirme: Seitenleiste ---------------------------------------- */
@media (min-width: 1024px) {
    .ts-ra { grid-template-columns: 220px 1fr; grid-template-rows: 1fr; grid-template-areas: "nav stage"; }
    .ts-ra.is-game { grid-template-columns: 220px 1fr; grid-template-areas: "nav stage"; }
    .ts-ra.is-game .ts-ra-nav { display: flex; }
    .ts-ra-nav { flex-direction: column; justify-content: flex-start; gap: 4px; border-top: 0; border-right: 1px solid var(--ra-line); padding: 16px 12px; }
    .ts-ra-brand { display: flex; align-items: center; gap: 8px; font-size: 18px; font-weight: 800; padding: 4px 10px 16px; }
    .ts-ra-tab { flex: 0 0 auto; flex-direction: row; justify-content: flex-start; gap: 10px; min-height: 46px; padding: 0 12px; font-size: 15px; }
    .ts-ra-tab-ico { font-size: 18px; width: 22px; text-align: center; }
    .ts-ra-nav-foot { display: block; margin-top: auto; padding: 8px 10px; font-size: 12px; }
    .ts-ra-main { padding: 18px 24px 32px; }
    .ts-ra-top { padding: 14px 24px; }
}
.ts-ra-net { color: var(--ra-ok); }
.ts-ra-net.is-off { color: var(--ra-bad); }

@keyframes ra-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@keyframes ra-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ts-ra * { animation: none !important; transition: none !important; } }

/* Anstoßzeit (noch nicht gespielt) anders als Spielstand */
.ts-ra-card-teams b.is-time { font-size: 15px; font-weight: 700; color: var(--ra-mu); background: transparent; border: 1px solid var(--ra-line); }
.ts-ra-pill.is-locked { background: rgba(245, 158, 11, .16); color: #fde68a; }

/* ======================================================================
 * Verwaltungs-App (.ts-aa) – gruppierte Seitenleiste mit allen Verwaltungsseiten
 * ====================================================================== */
.ts-aa .ts-aa-menu { display: none; }
.ts-aa .ts-aa-mtabs { display: flex; flex: 1; justify-content: space-around; }
.ts-aa .ts-aa-mtabs .ts-ra-tab { background: none; border: 0; }
.ts-aa.menu-open .ts-aa-menu {
    display: block; position: fixed; left: 0; right: 0; top: 0; bottom: calc(var(--ra-nav-h) + env(safe-area-inset-bottom));
    z-index: 3; overflow-y: auto; background: var(--ra-bg); padding: max(12px, env(safe-area-inset-top)) 14px 20px;
}
body.admin-bar .ts-aa.menu-open .ts-aa-menu { top: 46px; }
.ts-aa-search { position: sticky; top: 0; z-index: 1; background: inherit; padding-bottom: 8px; }
.ts-aa-search input { width: 100%; min-height: 42px; border-radius: 10px; border: 1px solid var(--ra-line); background: var(--ra-panel-2); color: var(--ra-tx); padding: 8px 12px; font: inherit; }
.ts-aa-search input::placeholder { color: var(--ra-mu); }
.ts-aa-group { margin: 12px 0 4px; }
.ts-aa-group h3 { margin: 0 0 4px; padding: 0 10px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--ra-mu); }
.ts-aa-link { display: flex; align-items: center; gap: 8px; padding: 9px 10px; border-radius: 9px; color: #cbd5e1 !important; font-size: 14px; line-height: 1.25; }
.ts-aa-link:hover { background: var(--ra-panel-2); color: var(--ra-tx) !important; }
.ts-aa-link.is-active { background: var(--ra-ac); color: #fff !important; font-weight: 700; }
.ts-aa-link i { margin-left: auto; font-style: normal; color: var(--ra-mu); font-size: 12px; }
.ts-aa-link.is-hidden, .ts-aa-group.is-hidden { display: none; }
.ts-aa-hint { color: var(--ra-mu); font-size: 13px; padding: 10px; }
.ts-ra-switch-menu.is-right { left: auto; right: 0; }
.ts-aa-user summary { list-style: none; cursor: pointer; }
.ts-aa-user summary::-webkit-details-marker { display: none; }
.ts-aa-user-name { display: block; padding: 8px 12px 10px; font-weight: 800; border-bottom: 1px solid var(--ra-line); margin-bottom: 4px; }
.ts-aa-sheet { padding: 18px; }
.ts-aa-sheet .wrap > h1:first-child { margin-top: 0; }

@media (min-width: 1024px) {
    .ts-aa { grid-template-columns: 270px 1fr; }
    .ts-aa .ts-aa-nav { overflow: hidden; padding-bottom: 8px; }
    .ts-aa .ts-aa-menu { display: block; flex: 1; overflow-y: auto; margin: 0 -6px; padding: 0 6px; scrollbar-width: thin; }
    .ts-aa .ts-aa-mtabs { display: none; }
}
@media (max-width: 560px) {
    .ts-aa-sheet { padding: 12px; border-radius: 12px; }
    .ts-aa .ts-ra-main { padding: 8px 8px 24px; }
}
.ts-aa-user summary.ts-ra-avatar { display: grid; place-items: center; }

/* ======================================================================
 * Moderations-App (.ts-ma) – Paneel dunkel, in Reitern
 * Setzt die Variablen des Design-Systems (--ts-*) und des Paneels (--md-*) dunkel.
 * ====================================================================== */
.ts-ma:not([data-theme="light"]), .ts-ma:not([data-theme="light"]) .ts-ui {
    --ts-bg: #0b1220; --ts-card: #121b2e; --ts-border: #24324d; --ts-border-2: #33476d;
    --ts-text: #f1f5f9; --ts-text-2: #cbd5e1; --ts-muted: #94a3b8; --ts-muted-2: #64748b;
    --ts-primary: #3b82f6; --ts-primary-d: #2563eb; --ts-primary-bg: rgba(59,130,246,.16); --ts-primary-bd: rgba(59,130,246,.4);
    --ts-success: #4ade80; --ts-success-bg: rgba(34,197,94,.14); --ts-success-bd: rgba(34,197,94,.4);
    --ts-danger: #f87171; --ts-danger-bg: rgba(239,68,68,.14); --ts-danger-bd: rgba(239,68,68,.4);
    --ts-warn: #fbbf24; --ts-warn-bg: rgba(245,158,11,.14); --ts-warn-bd: rgba(245,158,11,.4);
    --ts-info: #38bdf8; --ts-info-bg: rgba(56,189,248,.14); --ts-info-bd: rgba(56,189,248,.4);
    --ts-neutral-bg: #18233a;
    --md-card: #121b2e; --md-card2: #18233a; --md-line: #24324d; --md-tx: #f1f5f9; --md-tx2: #cbd5e1;
    --md-mu: #94a3b8; --md-mu2: #64748b; --md-ac: #93c5fd; --md-ok: #4ade80; --md-warn: #fbbf24; --md-bad: #f87171;
    --md-warnbg: rgba(245,158,11,.14); --md-badbg: rgba(239,68,68,.14); --md-warnline: rgba(245,158,11,.4);
}
.ts-ma .ts-ma-main { padding: 14px 16px 28px; }
.ts-ma .ts-moderation-dashboard { background: transparent; color: var(--ra-tx); max-width: none; margin: 0; padding: 0; }
.ts-ma .ts-moderation-dashboard > .ts-shell, .ts-ma .ts-moderation-dashboard > .ts-page-head, .ts-ma .ts-shell { display: none; }
.ts-ma .ts-dashboard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 14px; }
.ts-ma .ts-dashboard-section, .ts-ma .ts-card { background: var(--ra-panel) !important; border: 1px solid var(--ra-line) !important; border-radius: 16px !important; color: var(--ra-tx); box-shadow: none !important; }
.ts-ma .ts-dashboard-section h3, .ts-ma .ts-card h2, .ts-ma .ts-card h3 { color: var(--ra-tx) !important; }
.ts-ma table { color: var(--ra-tx); }
.ts-ma table th { background: var(--ra-panel-2) !important; color: var(--ra-mu) !important; border-color: var(--ra-line) !important; }
.ts-ma table td { border-color: var(--ra-line) !important; background: transparent !important; }
.ts-ma tr:nth-child(even) td { background: rgba(255,255,255,.02) !important; }
.ts-ma a { color: #93c5fd; }
.ts-ma input, .ts-ma select, .ts-ma textarea { background: var(--ra-panel-2); color: var(--ra-tx); border: 1px solid var(--ra-line); border-radius: 8px; }
.ts-ma .button, .ts-ma button:not(.ts-ra-tab):not(.ts-rd-btn) { color: inherit; }
.ts-ma [hidden] { display: none !important; }
.ts-ma .ts-ra-tab.is-active { color: var(--ra-tx); background: var(--ra-panel-2); }
.ts-ma .ts-ra-tab { background: none; border: 0; }
.ts-ma-back { display: block; margin-bottom: 6px; color: var(--ra-mu) !important; font-size: 13px; }
.ts-ma-clock { font-size: 22px; color: var(--ra-tx); }
/* Bestehende Kästen mit eigener Hintergrundfarbe (Live-Karten, Aufstellungen) */
.ts-ma .ts-mod-game-card, .ts-ma .ts-live-section .ts-mod-game-card { background: var(--ra-panel-2) !important; border-color: var(--ra-line) !important; color: var(--ra-tx); }
.ts-ma .ts-mod-score { color: var(--ra-tx) !important; }
.ts-ma .ts-mod-empty { color: var(--ra-mu) !important; }
@media (max-width: 760px) {
    .ts-ma .ts-dashboard-grid { grid-template-columns: 1fr; }
    .ts-ma .ts-ra-tab-lbl { font-size: 10px; }
    .ts-ma .ts-ra-tab-ico { font-size: 18px; }
    .ts-ma .ts-ma-main { padding: 10px 8px 24px; }
}
/* Bausteine mit festen hellen Inline-Farben (Statistik-Tabellen u. a.) im dunklen Paneel angleichen */
.ts-ma [style*="background:#fff"], .ts-ma [style*="background: #fff"], .ts-ma [style*="background:white"], .ts-ma [style*="background: white"],
.ts-ma [style*="background-color:#fff"], .ts-ma [style*="background-color: #fff"], .ts-ma [style*="background:#f9fafb"], .ts-ma [style*="background: #f9fafb"],
.ts-ma [style*="background:#f8fafc"], .ts-ma [style*="background: #f8fafc"], .ts-ma [style*="background:#f3f4f6"], .ts-ma [style*="background: #f3f4f6"] { background: var(--ra-panel) !important; }
.ts-ma [style*="color:#111827"], .ts-ma [style*="color: #111827"], .ts-ma [style*="color:#1f2937"], .ts-ma [style*="color: #1f2937"], .ts-ma [style*="color:#000"], .ts-ma [style*="color: #000"] { color: var(--ra-tx) !important; }
.ts-ma [style*="color:#374151"], .ts-ma [style*="color: #374151"], .ts-ma [style*="color:#4b5563"], .ts-ma [style*="color: #4b5563"] { color: #cbd5e1 !important; }
.ts-ma [style*="border:1px solid #e5e7eb"], .ts-ma [style*="border: 1px solid #e5e7eb"] { border-color: var(--ra-line) !important; }
.ts-ma .ts-rundown .ts-rd-card.is-big, .ts-ma .ts-rundown .ts-rd-live.is-big { background: linear-gradient(135deg, rgba(59,130,246,.18), var(--ra-panel) 60%); }
.ts-ma .ts-rundown .ts-rd-done, .ts-ma .ts-rundown .ts-rd-skipped { opacity: .55; }
/* Tabellenzeilen (WP-Listen „striped") und Knöpfe im dunklen Paneel */
.ts-ma table tbody tr, .ts-ma table.striped > tbody > tr:nth-child(odd), .ts-ma table.widefat.striped > tbody > tr:nth-child(odd) { background: transparent !important; }
.ts-ma table tbody tr:nth-child(odd) td { background: rgba(255,255,255,.025) !important; }
.ts-ma table tbody td, .ts-ma table tbody td * { color: var(--ra-tx); }
.ts-ma .button, .ts-ma .button-small, .ts-ma .button-secondary { background: var(--ra-panel-2) !important; color: var(--ra-tx) !important; border: 1px solid var(--ra-line) !important; }
.ts-ma .button-primary { background: var(--ra-ac) !important; border-color: var(--ra-ac) !important; color: #fff !important; }
/* Kommentator-Steckbriefe */
.ts-ma:not([data-theme="light"]) .ts-cmt { --cmt-bg: var(--ra-panel-2); --cmt-line: var(--ra-line); --cmt-ink: var(--ra-tx); --cmt-muted: var(--ra-mu); --cmt-soft: #1e2a44; --cmt-card: var(--ra-panel); }
.ts-ma .ts-cmt input, .ts-ma .ts-cmt select { background: var(--ra-bg); color: var(--ra-tx); border-color: var(--ra-line); }
.ts-ma:not([data-theme="light"]) .ts-cmt { --cmt-surface: var(--ra-bg); --cmt-soft: #172238; --cmt-soft-2: #1e2a44; }
.ts-ma input:not([type="checkbox"]):not([type="radio"]), .ts-ma select, .ts-ma textarea { background: var(--ra-bg) !important; color: var(--ra-tx) !important; border-color: var(--ra-line) !important; }
.ts-ma input::placeholder, .ts-ma textarea::placeholder { color: var(--ra-mu) !important; }
.ts-ma .ts-cmt button:not(.ts-cmt-result) { background: var(--ra-panel) !important; color: var(--ra-tx) !important; border: 1px solid var(--ra-line) !important; }

/* ======================================================================
 * Farbschema-Umschalter und helles Schema (data-theme="light")
 * ====================================================================== */
.ts-ra-theme { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--ra-line) !important; background: var(--ra-panel-2) !important; font-size: 17px; line-height: 1; padding: 0 !important; display: grid; place-items: center; cursor: pointer; }
.ts-ra-gamebar .ts-ra-theme { width: 34px; height: 34px; }
.ts-ra-themeflash { position: fixed; z-index: 99999; top: 72px; left: 50%; transform: translateX(-50%); padding: 8px 16px; border-radius: 999px; background: var(--ra-tx); color: var(--ra-bg); font-weight: 800; font-size: 14px; box-shadow: 0 8px 24px rgba(0,0,0,.25); pointer-events: none; }

.ts-ra[data-theme="light"] {
    --ra-bg: #eef2f7; --ra-panel: #ffffff; --ra-panel-2: #f1f5f9; --ra-line: #d8e0ea;
    --ra-tx: #0f172a; --ra-mu: #5b6b82; --ra-ac: #2563eb; --ra-ok: #16a34a; --ra-warn: #d97706; --ra-bad: #dc2626;
    --ra-home: #0284c7; --ra-away: #db2777;
    color-scheme: light;
}
.ts-ra[data-theme="dark"] { color-scheme: dark; }
.ts-ra[data-theme="light"] .ts-ra-card:hover { border-color: #93c5fd; }
.ts-ra[data-theme="light"] .ts-ra-pill.is-live { background: #fee2e2; color: #b91c1c; }
.ts-ra[data-theme="light"] .ts-ra-pill.is-live.is-paused { background: #fef3c7; color: #92400e; }
.ts-ra[data-theme="light"] .ts-ra-pill.is-soon { background: #dbeafe; color: #1d4ed8; }
.ts-ra[data-theme="light"] .ts-ra-pill.is-done { background: #dcfce7; color: #166534; }
.ts-ra[data-theme="light"] .ts-ra-pill.is-locked { background: #fef3c7; color: #92400e; }
.ts-ra[data-theme="light"] .ts-ra-mine { color: #b45309; }
.ts-ra[data-theme="light"] .ts-aa-link { color: #334155 !important; }
.ts-ra[data-theme="light"] .ts-aa-link:hover { color: #0f172a !important; }
.ts-ra[data-theme="light"] .ts-aa-link.is-active { color: #fff !important; }
.ts-ra[data-theme="light"] .ts-ra-switch-menu { box-shadow: 0 16px 40px rgba(15,23,42,.18); }
.ts-ra[data-theme="light"] .ts-ra-sheet { box-shadow: 0 1px 3px rgba(15,23,42,.08); }
.ts-ra[data-theme="light"] .ts-ma-back { color: var(--ra-mu) !important; }
.ts-ra[data-theme="light"] .ts-ra-help strong { color: var(--ra-tx); }

/* Spielkonsole im hellen Schema */
.ts-ra[data-theme="light"] .ts-rc2 {
    --rc-bg: #eef2f7; --rc-panel: #ffffff; --rc-panel-2: #f1f5f9; --rc-line: #d8e0ea;
    --rc-tx: #0f172a; --rc-mu: #5b6b82; --rc-ac: #2563eb; --rc-ok: #16a34a; --rc-warn: #d97706; --rc-bad: #dc2626;
    --rc-home: #0284c7; --rc-away: #db2777;
}
.ts-ra[data-theme="light"] .ts-rc2-act.is-score { background: #16a34a; border-color: #15803d !important; }
.ts-ra[data-theme="light"] .ts-rc2-act.is-score b, .ts-ra[data-theme="light"] .ts-rc2-act.is-score small { color: #fff; }
.ts-ra[data-theme="light"] .ts-rc2-act small { color: #334155; }
.ts-ra[data-theme="light"] .ts-rc2-act.is-yellow-card { background: #fef3c7; }
.ts-ra[data-theme="light"] .ts-rc2-act.is-red-card, .ts-ra[data-theme="light"] .ts-rc2-act.is-disqualifying-foul, .ts-ra[data-theme="light"] .ts-rc2-act.is-game-misconduct { background: #fee2e2; }
.ts-ra[data-theme="light"] .ts-rc2-act.is-2min, .ts-ra[data-theme="light"] .ts-rc2-act.is-minor-penalty { background: #ffedd5; }
.ts-ra[data-theme="light"] .ts-rc2-act.is-blue-card { background: #dbeafe; }
.ts-ra[data-theme="light"] .ts-rc2-act.is-timeout { background: #e2e8f0; }
.ts-ra[data-theme="light"] .ts-rc2-player.is-keeper { background: #dcfce7; }
.ts-ra[data-theme="light"] .ts-rc2-tag { background: rgba(15,23,42,.08); }
.ts-ra[data-theme="light"] .ts-rc2-ctl.is-end { background: #fee2e2; color: #b91c1c; }
.ts-ra[data-theme="light"] .ts-rc2-ctl.is-unlock { color: #92400e; }
.ts-ra[data-theme="light"] .ts-rc2-done.is-locked, .ts-ra[data-theme="light"] .ts-rc2-lockbar { color: #92400e; }
.ts-ra[data-theme="light"] .ts-rc2-lockbar { background: #fef3c7; }
.ts-ra[data-theme="light"] .ts-rc2-chip.is-goal { background: #dcfce7; color: #166534; }
.ts-ra[data-theme="light"] .ts-rc2-chip.is-penalty { background: #fef3c7; color: #92400e; }
.ts-ra[data-theme="light"] .ts-rc2-log-list li.is-goal .ts-rc2-log-lbl { color: #15803d; }
.ts-ra[data-theme="light"] .ts-rc2-log-list li.is-penalty .ts-rc2-log-lbl { color: #b45309; }
.ts-ra[data-theme="light"] .ts-rc2-log-list li { border-bottom-color: #e2e8f0; }
.ts-ra[data-theme="light"] .ts-rc2-log-list li:first-child:not(.ts-rc2-log-empty) { background: #eff6ff; }
.ts-ra[data-theme="light"] .ts-rc2-undo { background: #fee2e2 !important; color: #b91c1c; }
.ts-ra[data-theme="light"] .ts-rc2-sus .ts-rc-sus { background: #ffedd5; color: #9a3412; }
.ts-ra[data-theme="light"] .ts-rc2-sus .ts-rc-sus-time { color: #0f172a; }
.ts-ra[data-theme="light"] .ts-rc2-so { background: linear-gradient(180deg, #eef2ff, #e0e7ff); border-color: #c7d2fe; }
.ts-ra[data-theme="light"] .ts-rc2-so-mid small { color: #4338ca; }
.ts-ra[data-theme="light"] .ts-rc2-so-status { color: #1e1b4b; }
.ts-ra[data-theme="light"] .ts-rc2-so.is-decided .ts-rc2-so-status { color: #15803d; }
.ts-ra[data-theme="light"] .ts-rc2-so-undo { background: rgba(67,56,202,.1) !important; color: #3730a3; }
.ts-ra[data-theme="light"] .ts-rc2-so-dots i { border-color: #a5b4fc; }
.ts-ra[data-theme="light"] .ts-rc2-shot.is-goal { background: #16a34a; color: #fff; }
.ts-ra[data-theme="light"] .ts-rc2-shot.is-miss { background: #dc2626; color: #fff; }
.ts-ra[data-theme="light"] .ts-rc2-done.is-so { color: #4338ca; }
.ts-ra[data-theme="light"] .ts-rc2-ask { background: rgba(15,23,42,.35); }
.ts-ra[data-theme="light"] .ts-rc2-ask-yes { background: #16a34a !important; color: #fff; }
.ts-ra[data-theme="light"] .ts-rc2-teamhead-score { background: #e2e8f0; }

/* Moderations-App im hellen Schema: Paneel-Farben (--md-*) bleiben auf ihren hellen Grundwerten */
.ts-ma[data-theme="light"] .ts-moderation-dashboard { color: var(--ra-tx); }
.ts-ma[data-theme="light"] tr:nth-child(even) td, .ts-ma[data-theme="light"] table tbody tr:nth-child(odd) td { background: transparent !important; }
.ts-ma[data-theme="light"] table tbody tr:nth-child(odd) td { background: #f8fafc !important; }
.ts-ma[data-theme="light"] a { color: #1d4ed8; }
.ts-aa-user summary.ts-ra-avatar { color: #fff !important; font-size: 15px; font-weight: 800; padding: 0; }

/* ======================================================================
 * App-Umschalter (ts_app_switcher, includes/helper-app-nav.php) – in allen Apps
 * oben rechts: alle erlaubten Apps, Konto, Backend, Webseite, Abmelden.
 * Auf dem Handy als Blatt von unten.
 * ====================================================================== */
.ts-ra-apps > summary.ts-ra-apps-btn { display: inline-flex; align-items: center; gap: 6px; padding: 3px 3px 3px 10px; border-radius: 999px; border: 1px solid var(--ra-line); background: var(--ra-panel-2); color: var(--ra-tx); }
.ts-ra-apps > summary.ts-ra-apps-btn:hover, .ts-ra-apps[open] > summary.ts-ra-apps-btn { border-color: var(--ra-ac); }
.ts-ra-apps-grid { font-size: 18px; line-height: 1; }
.ts-ra-apps .ts-ra-avatar { width: 30px; height: 30px; font-size: 14px; }
.ts-ra-apps-menu { min-width: 320px; max-height: min(80vh, 640px); padding: 10px; z-index: 99990; }
.ts-ra-apps-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 2px 4px 8px; border-bottom: 1px solid var(--ra-line); margin-bottom: 6px; }
.ts-ra-apps-head strong { font-size: 15px; color: var(--ra-tx); }
.ts-ra-apps-close { width: 30px; height: 30px; border-radius: 50%; background: var(--ra-panel) !important; color: var(--ra-mu); border: 0; font-size: 14px; cursor: pointer; }
.ts-ra-apps-h { margin: 6px 4px 4px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ra-mu); }
.ts-ra-apps-list { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.ts-ra-switch-menu a.ts-ra-app { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 12px; background: var(--ra-panel); border: 1px solid var(--ra-line); }
.ts-ra-switch-menu a.ts-ra-app:hover { border-color: var(--ra-ac); }
.ts-ra-switch-menu a.ts-ra-app.is-current { border-color: var(--ra-ac); background: color-mix(in srgb, var(--ra-ac) 16%, var(--ra-panel)); color: var(--ra-tx); font-weight: 400; }
.ts-ra-app-ico { font-size: 22px; line-height: 1; }
.ts-ra-app-txt { display: grid; min-width: 0; line-height: 1.2; }
.ts-ra-app-txt b { font-size: 13.5px; color: var(--ra-tx); }
.ts-ra-app-txt small { font-size: 11.5px; color: var(--ra-mu); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ts-ra-apps-links { display: grid; margin-top: 8px; padding-top: 6px; border-top: 1px solid var(--ra-line); }
.ts-ra-apps-links a { padding: 9px 10px; }
.ts-ra-apps-links a.is-logout { color: #fca5a5; }
.ts-ra[data-theme="light"] .ts-ra-apps-links a.is-logout { color: #b91c1c; }
.ts-ra-gamebar .ts-ra-apps .ts-ra-avatar { display: none; }
.ts-ra-gamebar .ts-ra-apps > summary.ts-ra-apps-btn { padding: 6px 10px; }
@media (max-width: 760px) {
    .ts-ra-apps-menu, .ts-ra-switch-menu.is-right.ts-ra-apps-menu {
        position: fixed; left: 8px; right: 8px; top: auto; bottom: max(8px, env(safe-area-inset-bottom)); min-width: 0; max-height: 82vh;
        border-radius: 18px; box-shadow: 0 -10px 40px rgba(0, 0, 0, .5);
    }
    .ts-ra-apps[open]::before { content: ""; position: fixed; inset: 0; background: rgba(2, 6, 23, .55); z-index: 99989; }
    .ts-ra-apps .ts-ra-apps-grid { display: none; }
    .ts-ra-apps > summary.ts-ra-apps-btn { padding: 3px; }
    .ts-ra-gamebar .ts-ra-apps .ts-ra-apps-grid { display: inline; }
}

/* Schwebender Umschalter außerhalb der App-Hülle (ts_app_switcher_float) */
.ts-appfloat {
    --ra-bg: #0b1220; --ra-panel: #121b2e; --ra-panel-2: #18233a; --ra-line: #24324d;
    --ra-tx: #f1f5f9; --ra-mu: #94a3b8; --ra-ac: #3b82f6;
    position: fixed; z-index: 99990; right: 12px; bottom: max(12px, env(safe-area-inset-bottom));
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; color: var(--ra-tx);
}
.ts-appfloat a { color: var(--ra-tx); text-decoration: none; }
.ts-appfloat .ts-ra-apps > summary.ts-ra-apps-btn { box-shadow: 0 8px 24px rgba(0, 0, 0, .35); padding: 4px 4px 4px 12px; }
.ts-appfloat .ts-ra-apps .ts-ra-apps-grid { display: inline !important; }
.ts-appfloat .ts-ra-avatar { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--ra-ac); color: #fff; font-weight: 800; }
.ts-appfloat .ts-ra-switch-menu { top: auto; bottom: calc(100% + 8px); }
.ts-ra-apps-links a:not(.is-logout) { color: var(--ra-tx) !important; }

/* Spiel zurücksetzen */
.ts-gr-open { font-size: 18px; }
.ts-gr { max-width: 460px; width: calc(100vw - 32px); border: 1px solid var(--ra-line, #2a3245); border-radius: 14px; padding: 0; background: var(--ra-panel, #141925); color: var(--ra-tx, #e8ecf4); }
.ts-gr::backdrop { background: rgba(0, 0, 0, .55); }
.ts-gr-box { padding: 18px 20px; display: grid; gap: 10px; }
.ts-gr-box h2 { margin: 0; font-size: 18px; }
.ts-gr-box p { margin: 0; font-size: 14px; line-height: 1.45; }
.ts-gr-warn { color: #f59e0b; font-weight: 700; }
.ts-gr-undo { padding: 10px 12px; border-radius: 10px; background: rgba(34, 197, 94, .12); display: grid; gap: 8px; }
.ts-gr-code { display: grid; gap: 6px; font-weight: 600; font-size: 14px; }
.ts-gr-code input { font-size: 26px; letter-spacing: .35em; text-align: center; padding: 10px; border-radius: 10px; border: 1px solid var(--ra-line, #2a3245); background: var(--ra-bg, #0b0e14); color: inherit; }
.ts-gr-msg { padding: 8px 10px; border-radius: 8px; background: rgba(34, 197, 94, .14); }
.ts-gr-msg.is-bad { background: rgba(239, 68, 68, .16); color: #fca5a5; }
.ts-gr-actions { display: flex; gap: 8px; justify-content: flex-end; }
.ts-ra-btn.is-danger { background: #dc2626; border-color: #dc2626; color: #fff; }
.ts-gr-showcode { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ts-gr-showcode b { font-size: 28px; letter-spacing: .3em; font-variant-numeric: tabular-nums; }

/* Online-Anzeige (TS_Presence): Chip „👥 Kollegen · 👀 Zuschauer“ in den App-Köpfen */
.ts-presence summary.ts-presence-sum { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--ra-line); background: var(--ra-panel); color: var(--ra-tx); font-size: 13px; font-weight: 700; white-space: nowrap; }
.ts-presence.has-others summary.ts-presence-sum { border-color: var(--ra-ok); }
.ts-presence-sep { color: var(--ra-mu); font-weight: 400; }
.ts-presence-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ts-presence-menu { min-width: 260px; max-width: 320px; padding: 10px 12px; }
.ts-presence-h { margin: 6px 0 4px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--ra-mu); }
.ts-presence-list { list-style: none; margin: 0; padding: 0; }
.ts-presence-list li { display: flex; flex-direction: column; padding: 6px 0; border-bottom: 1px solid var(--ra-line); font-size: 13px; color: var(--ra-tx); }
.ts-presence-list li small { color: var(--ra-mu); font-size: 11.5px; }
.ts-presence-list.is-viewers li { flex-direction: row; justify-content: space-between; }
.ts-presence-empty, .ts-presence-foot { margin: 4px 0; font-size: 12px; color: var(--ra-mu); }
@media (max-width: 760px) { .ts-presence summary.ts-presence-sum { padding: 3px 8px; font-size: 12px; } }

/* Wegweiser „Als Nächstes“ (TS_Guide): im App-Umschalter und als Banner */
.ts-ra-apps-btn { position: relative; }
.ts-ra-apps-dot { position: absolute; top: 2px; right: 2px; width: 9px; height: 9px; border-radius: 50%; background: #f59e0b; box-shadow: 0 0 0 2px var(--ra-bg); }
.ts-guide-h { margin: 4px 4px 4px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ra-mu); }
.ts-guide-list { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 4px; }
.ts-guide-list li a { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 7px 8px; border-radius: 10px; border: 1px solid var(--ra-line); background: var(--ra-panel-2, var(--ra-panel)); color: var(--ra-tx); text-decoration: none; }
.ts-guide-list li.is-urgent a { border-color: #f59e0b; }
.ts-guide-ico { font-size: 18px; line-height: 1; text-align: center; }
.ts-guide-txt { min-width: 0; display: flex; flex-direction: column; }
.ts-guide-txt b { font-size: 13px; line-height: 1.25; }
.ts-guide-txt small { font-size: 11.5px; color: var(--ra-mu); line-height: 1.3; }
.ts-guide-lvl { font-style: normal; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--ra-mu); white-space: nowrap; }
.is-urgent .ts-guide-lvl { color: #f59e0b; }
.ts-guide.is-compact .ts-guide-list { max-height: 260px; overflow: auto; }
.ts-guide-banner { margin: 0 0 12px; border: 1px solid var(--ra-line); border-left: 4px solid var(--ra-ac); border-radius: 12px; background: var(--ra-panel); color: var(--ra-tx); }
.ts-guide-banner.is-urgent { border-left-color: #f59e0b; }
.ts-guide-banner summary { list-style: none; display: grid; grid-template-columns: 30px minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 10px 12px; cursor: pointer; }
.ts-guide-banner summary::-webkit-details-marker { display: none; }
.ts-guide-banner .ts-guide-ico { font-size: 22px; }
.ts-guide-banner summary b { font-size: 14px; }
.ts-guide-go { padding: 7px 12px; border-radius: 999px; background: var(--ra-ac); color: #fff !important; font-weight: 800; font-size: 13px; text-decoration: none; white-space: nowrap; }
.ts-guide-more { font-size: 12px; color: var(--ra-mu); font-weight: 700; }
.ts-guide-banner .ts-guide-list { padding: 0 12px 10px; }
@media (max-width: 760px) { .ts-guide-banner summary { grid-template-columns: 26px minmax(0, 1fr) auto; } .ts-guide-more { display: none; } .ts-guide-banner summary small { display: none; } }

/* Aktuelle Veranstaltung (TS_Event_Context): Chip „📍 …“ in allen App-Köpfen */
.ts-evchip { display: inline-flex; align-items: center; gap: 6px; max-width: 280px; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--ra-ac, #22c55e); background: var(--ra-panel); color: var(--ra-tx); font-size: 13px; white-space: nowrap; cursor: default; list-style: none; }
.ts-evchip::-webkit-details-marker { display: none; }
.ts-evchip b { overflow: hidden; text-overflow: ellipsis; font-weight: 800; }
.ts-evchip-wrap > summary.ts-evchip { cursor: pointer; }
.ts-evchip.is-locked { border-color: var(--ra-line); }
.ts-evchip-lock, .ts-evchip-caret { font-size: 11px; opacity: .8; }
.ts-evchip-menu { min-width: 260px; max-width: 340px; max-height: 60vh; overflow: auto; padding: 8px; }
.ts-evchip-h { margin: 4px 6px 6px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--ra-mu); }
.ts-evchip-item { display: flex; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 8px; color: var(--ra-tx); text-decoration: none; font-size: 14px; }
.ts-evchip-item small { color: var(--ra-mu); flex: 0 0 auto; }
.ts-evchip-item:hover { background: rgba(255, 255, 255, .06); }
.ts-evchip-item.is-current { background: rgba(34, 197, 94, .14); font-weight: 700; }
@media (max-width: 760px) { .ts-evchip { max-width: 150px; padding: 3px 8px; font-size: 12px; } }
.ts-evchip-item { align-items: center; } .ts-evchip-item small { margin-left: 8px; }
.ts-evchip-all { margin-top: 4px; border-top: 1px solid var(--ra-line); border-radius: 0; font-size: 13px; color: var(--ra-mu); }
/* Auswahl: zuletzt genutzte Veranstaltungen mit Kennzeichen */
.ts-evchip-menu { min-width: 320px; max-width: 420px; }
.ts-evchip-h small { text-transform: none; letter-spacing: 0; font-weight: 400; }
.ts-evchip-item { flex-direction: column; align-items: stretch !important; gap: 3px; }
.ts-evchip-name { font-weight: 700; }
.ts-evchip-meta { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.ts-evchip-date { color: var(--ra-mu); font-size: 12px; margin-right: 2px; }
.ts-evtag { padding: 1px 7px; border-radius: 999px; font-size: 11px; font-weight: 700; background: rgba(148, 163, 184, .18); color: var(--ra-mu); }
.ts-evtag.is-arch { background: rgba(245, 158, 11, .2); color: #f59e0b; }
.ts-evtag.is-prac { background: rgba(59, 130, 246, .2); color: #60a5fa; }
.ts-evtag.is-st-active { background: rgba(34, 197, 94, .2); color: #22c55e; }
.ts-evchip-item.is-archived .ts-evchip-name { opacity: .75; }
.ts-evchip-empty { margin: 6px 10px; font-size: 13px; color: var(--ra-mu); }
/* Schnellblick in die Zuschauer-App (Kopfzeile aller Apps, ts_app_switcher) */
.ts-ra a.ts-ra-fanpeek, .ts-appfloat a.ts-ra-fanpeek { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--ra-line); background: var(--ra-panel); color: var(--ra-tx); font-size: 13px; font-weight: 700; white-space: nowrap; text-decoration: none; }
.ts-ra a.ts-ra-fanpeek:hover, .ts-appfloat a.ts-ra-fanpeek:hover { border-color: var(--ra-ac); }
@media (max-width: 760px) { .ts-ra-fanpeek-lbl { display: none; } }
/* Verwaltungs-App: Turnier-Assistent hervorgehoben (TS_Tournament_Wizard) */
.ts-aa-link.is-wizard { margin: 2px 0 6px; border: 1px solid color-mix(in srgb, var(--ra-ac) 45%, transparent); background: color-mix(in srgb, var(--ra-ac) 14%, transparent); font-weight: 700; }
.ts-aa-link.is-wizard.is-active { background: var(--ra-ac); color: #fff !important; }
/* Spielpasskontrolle in der Schiri-App */
.ts-ra-pass { display: flex; flex-direction: column; gap: 12px; max-width: 760px; margin: 0 auto; }
.ts-ra-pass-search { width: 100%; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--ra-line); background: var(--ra-panel); color: var(--ra-tx); font: inherit; font-size: 16px; }
.ts-ra-pass-team h2 { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 0 0 8px; font-size: 16px; }
.ts-ra-pass-count { font-size: 13px; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--ra-line); color: var(--ra-mu); }
.ts-ra-pass-count.is-ok { color: #fff; background: var(--ra-ok); border-color: var(--ra-ok); }
.ts-ra-pass-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ts-ra-pass-list li[hidden], .ts-ra-pass-team[hidden] { display: none; }
.ts-ra-pass-row { position: relative; display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--ra-line); background: var(--ra-bg); cursor: pointer; min-height: 48px; }
.ts-ra-pass-row input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ts-ra-pass-row:has(input:focus-visible) { box-shadow: 0 0 0 3px color-mix(in srgb, var(--ra-ac) 40%, transparent); }
.ts-ra-pass-row.is-on { border-color: var(--ra-ok); background: color-mix(in srgb, var(--ra-ok) 14%, var(--ra-bg)); }
.ts-ra-pass-no { font-weight: 800; text-align: center; color: var(--ra-mu); }
.ts-ra-pass-name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ts-ra-pass-mark { font-size: 20px; }
.ts-ra-muted { color: var(--ra-mu); margin: 0; }
