
/* =========================================================
 * V11 GLOBALE DESIGNWERTE
 * Diese Variablen sind die zentrale Basis für Theme und
 * künftig auch für die Frontend-Module.
 * ========================================================= */
:root {
    /* Grundfarben */
    --v11-bg: #f3f6fb;
    --v11-surface: #ffffff;
    --v11-surface-2: #f8fafc;
    --v11-ink: #0f172a;
    --v11-muted: #64748b;
    --v11-line: #e2e8f0;
    --v11-brand: #111827;
    --v11-accent: #2563eb;
    --v11-accent-soft: #dbeafe;

    /* Header */
    --v11-header-bg: #111827;
    --v11-header-text: #ffffff;
    --v11-header-muted: #cbd5e1;
    --v11-header-eyebrow: #60a5fa;

    /* Sidebar */
    --v11-sidebar-bg: #111827;
    --v11-sidebar-text: #cbd5e1;
    --v11-sidebar-muted: #94a3b8;
    --v11-sidebar-active: #2563eb;

    /* Schriftgrössen */
    --v11-font-eyebrow: 11px;
    --v11-font-small: 12px;
    --v11-font-nav-child: 12.5px;
    --v11-font-body: 13px;
    --v11-font-nav: 14px;
    --v11-font-section: 20px;
    --v11-font-page-title: 28px;
    --v11-font-brand: 30px;

    /* Radien */
    --v11-radius-control: 8px;
    --v11-radius-nav: 12px;
    --v11-radius-card: 14px;
    --v11-radius-header: 16px;
    --v11-radius: 18px;

    /* Schatten */
    --v11-shadow: 0 10px 30px rgba(15, 23, 42, .08);
}
* { box-sizing: border-box; }
html { background: var(--v11-bg); }
body.v11-app-body, body {
    margin: 0;
    color: var(--v11-ink);
    background: var(--v11-bg);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}
body.v11-app-body a { color: inherit; text-decoration: none; }

.v11-app-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
}
.v11-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 30;
    width: 250px;
    display: flex;
    flex-direction: column;
    padding: 26px 18px 20px;
    color: var(--v11-header-text);
    background: var(--v11-sidebar-bg);
}
.v11-sidebar-brand {
    display: block;
    min-height: 72px;
    padding: 0 12px 24px;
}
.v11-sidebar-club-logo {
    display: block;
    width: auto;
    height: auto;
    max-width: 170px;
    max-height: 72px;
    object-fit: contain;
    object-position: left center;
}
.v11-brand-mark {
    display: block;
    font-size: var(--v11-font-brand);
    line-height: 1;
    font-weight: 850;
    letter-spacing: -.04em;
}
.v11-brand-sub {
    display: block;
    margin-top: 7px;
    color: #94a3b8;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.v11-sidebar-nav {
    display: grid;
    gap: 7px;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 5px;
    scrollbar-width: thin;
    scrollbar-color: rgba(148,163,184,.45) transparent;
}
.v11-sidebar-nav::-webkit-scrollbar {
    width: 6px;
}
.v11-sidebar-nav::-webkit-scrollbar-track {
    background: transparent;
}
.v11-sidebar-nav::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(148,163,184,.35);
}
.v11-sidebar-nav::-webkit-scrollbar-thumb:hover {
    background: rgba(148,163,184,.55);
}
.v11-sidebar-brand {
    flex: 0 0 auto;
}
.v11-sidebar-footer {
    flex: 0 0 auto;
}
.v11-nav-link {
    display: flex;
    align-items: center;
    gap: 13px;
    min-height: 46px;
    padding: 10px 12px;
    border-radius: 12px;
    color: var(--v11-sidebar-text) !important;
    font-size: var(--v11-font-nav);
    font-weight: 650;
    transition: background .15s ease, color .15s ease;
}
.v11-nav-link:hover { color: #fff !important; background: rgba(255,255,255,.07); }
.v11-nav-link.is-active { color: #fff !important; background: var(--v11-sidebar-active); }
.v11-nav-icon { width: 24px; text-align: center; font-size: 17px; }


/* Navigation 0.5.0: Ausklappbereiche und farbige Emoji-Icons. */
.v11-nav-dashboard {
    margin-bottom: 3px;
}
.v11-nav-group {
    display: block;
    border-radius: 12px;
}
.v11-nav-group + .v11-nav-group {
    margin-top: 2px;
}
.v11-nav-group summary {
    list-style: none;
}
.v11-nav-group summary::-webkit-details-marker {
    display: none;
}
.v11-nav-group-summary {
    display: grid;
    grid-template-columns: 24px minmax(0,1fr) 18px;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 9px 11px;
    border-radius: 11px;
    color: var(--v11-sidebar-text);
    font-size: var(--v11-font-body);
    font-weight: 800;
    cursor: pointer;
    user-select: none;
    transition: background .15s ease, color .15s ease;
}
.v11-nav-group-summary:hover {
    color: #fff;
    background: rgba(255,255,255,.07);
}
.v11-nav-group.is-active-group > .v11-nav-group-summary {
    color: #fff;
    background: rgba(37,99,235,.18);
}
.v11-nav-group[open] > .v11-nav-group-summary {
    color: #fff;
}
.v11-nav-group-label {
    min-width: 0;
    line-height: 1.25;
}
.v11-nav-chevron {
    justify-self: end;
    color: var(--v11-sidebar-muted);
    font-size: var(--v11-font-section);
    line-height: 1;
    transform: rotate(0deg);
    transition: transform .15s ease, color .15s ease;
}
.v11-nav-group[open] .v11-nav-chevron {
    color: #fff;
    transform: rotate(90deg);
}
.v11-nav-group-items {
    display: grid;
    gap: 3px;
    padding: 3px 0 5px 15px;
}
.v11-nav-child {
    min-height: 38px;
    gap: 9px;
    padding: 7px 9px;
    border-radius: 9px;
    font-size: var(--v11-font-nav-child);
    font-weight: 650;
    line-height: 1.25;
}
.v11-nav-child .v11-nav-icon {
    width: 22px;
    font-size: 15px;
}
.v11-nav-child.is-active {
    background: var(--v11-sidebar-active);
}
.v11-nav-account-group {
    margin-top: 12px !important;
    padding-top: 10px;
    border-top: 1px solid rgba(148,163,184,.18);
    border-radius: 0;
}

.v11-sidebar-footer {
    margin-top: auto;
    display: grid;
    gap: 7px;
    padding-top: 20px;
}
.v11-sidebar-footer a {
    padding: 10px 12px;
    border-radius: 10px;
    color: #94a3b8 !important;
    font-size: 13px;
}
.v11-sidebar-footer a:hover { color: #fff !important; background: rgba(255,255,255,.06); }

.v11-app-main { grid-column: 2; min-width: 0; }
.v11-topbar {
    position: sticky;
    top: 0;
    z-index: 20;
    min-height: 86px;
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 16px 34px;
    border-bottom: 1px solid rgba(226,232,240,.9);
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(14px);
}
.v11-topbar-title { min-width: 0; }
.v11-topbar-title h1 {
    margin: 2px 0 0;
    font-size: 24px;
    line-height: 1.1;
    letter-spacing: -.025em;
}
.v11-topbar-kicker {
    color: var(--v11-accent);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.v11-menu-toggle {
    display: none;
    width: 42px;
    height: 42px;
    border: 1px solid var(--v11-line);
    border-radius: 11px;
    background: #fff;
    font-size: 20px;
    cursor: pointer;
}
.v11-topbar-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 12px;
}
.v11-user-chip {
    display: flex;
    align-items: center;
    gap: 11px;
}
.v11-notification-bell {
    position: relative;
    display: inline-flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border: 1px solid var(--v11-line);
    border-radius: 11px;
    background: #fff;
    color: #334155 !important;
    text-decoration: none !important;
    font-size: 18px;
}
.v11-notification-bell:hover {
    background: #f8fafc;
}
.v11-notification-bell.has-unread {
    border-color: #bfdbfe;
    background: #eff6ff;
}
.v11-notification-bell strong {
    position: absolute;
    top: -6px;
    right: -6px;
    display: inline-flex;
    min-width: 19px;
    height: 19px;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    border: 2px solid #fff;
    border-radius: 999px;
    background: var(--v11-sidebar-active);
    color: #fff;
    font-size: 9px;
    line-height: 1;
    font-weight: 900;
}
.v11-user-avatar {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    object-fit: contain;
    background: #e2e8f0;
}
.v11-avatar-fallback {
    display: grid;
    place-items: center;
    color: #475569;
    font-weight: 800;
}
.v11-user-chip-copy { display: grid; gap: 2px; }
.v11-user-chip-copy strong { font-size: 13px; }
.v11-user-chip-copy span { color: var(--v11-muted); font-size: 11px; }

.v11-content {
    max-width: 1500px;
    margin: 0 auto;
    padding: 30px 34px 110px;
}
.v11-hero-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
    padding: 28px 30px;
    border-radius: var(--v11-radius);
    color: #fff;
    background: linear-gradient(135deg, #111827 0%, #1e293b 100%);
    box-shadow: var(--v11-shadow);
}
.v11-hero-card h2 {
    margin: 5px 0 8px;
    font-size: clamp(26px, 4vw, 42px);
    line-height: 1;
    letter-spacing: -.04em;
}
.v11-hero-card p {
    max-width: 700px;
    margin: 0;
    color: #cbd5e1;
    line-height: 1.6;
}
.v11-hero-card .v11-eyebrow { color: #93c5fd; }
.v11-hero-avatar {
    width: 90px;
    height: 90px;
    flex: 0 0 auto;
    border: 3px solid rgba(255,255,255,.18);
    border-radius: 50%;
    object-fit: cover;
}
.v11-eyebrow {
    display: inline-block;
    color: var(--v11-accent);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.v11-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}
.v11-stat-card {
    padding: 20px;
    border: 1px solid var(--v11-line);
    border-radius: 15px;
    background: var(--v11-surface);
}
.v11-stat-card span {
    display: block;
    color: var(--v11-muted);
    font-size: 12px;
    font-weight: 650;
}
.v11-stat-card strong {
    display: block;
    margin-top: 7px;
    font-size: var(--v11-font-brand);
    line-height: 1;
    letter-spacing: -.04em;
}

.v11-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(280px, .7fr);
    gap: 16px;
}
.v11-panel {
    padding: 24px;
    border: 1px solid var(--v11-line);
    border-radius: var(--v11-radius);
    background: var(--v11-surface);
    box-shadow: 0 2px 7px rgba(15,23,42,.03);
}
.v11-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}
.v11-panel-head h2 {
    margin: 4px 0 0;
    font-size: 21px;
    letter-spacing: -.025em;
}
.v11-panel-head > a {
    color: var(--v11-accent) !important;
    font-size: 12px;
    font-weight: 750;
}

.v11-event-list { display: grid; }
.v11-event-row {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 16px 2px;
    border-top: 1px solid var(--v11-line);
}
.v11-event-row:first-child { border-top: 0; }
.v11-event-date {
    width: 54px;
    height: 58px;
    display: grid;
    place-content: center;
    text-align: center;
    border-radius: 13px;
    background: #eff6ff;
}
.v11-event-date strong { font-size: 22px; line-height: 1; }
.v11-event-date span {
    margin-top: 3px;
    color: var(--v11-accent);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .08em;
}
.v11-event-copy { min-width: 0; }
.v11-event-copy h3 {
    margin: 5px 0 4px;
    font-size: 15px;
    line-height: 1.35;
}
.v11-event-copy p {
    margin: 2px 0 0;
    color: var(--v11-muted);
    font-size: 12px;
    line-height: 1.4;
}
.v11-event-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    color: var(--v11-muted);
    font-size: 11px;
    font-weight: 650;
}
.v11-type-pill,
.v11-role-pill {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 4px 9px;
    border-radius: 999px;
    color: #1d4ed8;
    background: var(--v11-accent-soft);
    font-size: 10px;
    font-weight: 800;
}
.v11-event-location { color: #475569 !important; }
.v11-score {
    min-width: 52px;
    text-align: right;
    font-size: 18px;
    font-weight: 850;
}
.v11-role-list { display: flex; flex-wrap: wrap; gap: 8px; }
.v11-muted { color: var(--v11-muted); }

.v11-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}
.v11-team-card,
.v11-location-card {
    overflow: hidden;
    border: 1px solid var(--v11-line);
    border-radius: var(--v11-radius);
    background: var(--v11-surface);
    box-shadow: 0 2px 7px rgba(15,23,42,.03);
}
.v11-team-image {
    width: 100%;
    aspect-ratio: 16/9;
    display: block;
    object-fit: cover;
    background: #e2e8f0;
}
.v11-team-image-placeholder {
    display: grid;
    place-items: center;
    font-size: 48px;
}
.v11-team-card-body { padding: 20px; }
.v11-team-card h2,
.v11-location-card h2 {
    margin: 5px 0 8px;
    font-size: 20px;
}
.v11-team-card p,
.v11-location-card p {
    margin: 0;
    color: var(--v11-muted);
    font-size: 13px;
    line-height: 1.5;
}
.v11-location-card {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 22px;
}
.v11-location-icon {
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 13px;
    color: var(--v11-accent);
    background: var(--v11-accent-soft);
    font-size: 22px;
}
.v11-location-card .v11-role-pill { margin-top: 12px; }

.v11-profile-layout {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 20px;
}
.v11-profile-card {
    padding: 30px 24px;
    border: 1px solid var(--v11-line);
    border-radius: var(--v11-radius);
    background: var(--v11-surface);
    text-align: center;
}
.v11-profile-avatar {
    width: 130px;
    height: 130px;
    border-radius: 50%;
    object-fit: cover;
}
.v11-profile-card h2 { margin: 16px 0 4px; }
.v11-profile-card p {
    margin: 0;
    color: var(--v11-muted);
    font-size: 13px;
}
.v11-data-list { margin: 0; display: grid; }
.v11-data-list > div {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 18px;
    padding: 14px 0;
    border-top: 1px solid var(--v11-line);
}
.v11-data-list > div:first-child { border-top: 0; }
.v11-data-list dt {
    color: var(--v11-muted);
    font-size: 12px;
    font-weight: 700;
}
.v11-data-list dd {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
}

.v11-empty-state {
    padding: 34px 20px;
    text-align: center;
    color: var(--v11-muted);
}
.v11-empty-state h2,
.v11-empty-state h3 {
    margin: 9px 0 5px;
    color: var(--v11-ink);
}
.v11-empty-state p {
    margin: 0 auto 18px;
    max-width: 560px;
}
.v11-empty-large {
    min-height: 55vh;
    display: grid;
    place-content: center;
}
.v11-empty-icon { font-size: 34px; }
.v11-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 15px;
    border-radius: 11px;
    font-size: 13px;
    font-weight: 750;
}
.v11-button-primary {
    color: #fff !important;
    background: var(--v11-accent);
}
.v11-mobile-nav { display: none; }

.v11-public-landing {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 30px;
}
.v11-public-card {
    width: min(560px, 100%);
    padding: 42px;
    border: 1px solid var(--v11-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--v11-shadow);
    text-align: center;
}
.v11-public-brand {
    font-size: 46px;
    font-weight: 900;
    letter-spacing: -.06em;
}
.v11-public-card h1 { margin: 10px 0 8px; }
.v11-public-card p {
    margin: 0 0 22px;
    color: var(--v11-muted);
}

@media (max-width: 1120px) {
    .v11-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v11-dashboard-grid,
    .v11-profile-layout { grid-template-columns: 1fr; }
    .v11-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
    .v11-app-shell { display: block; }
    .v11-sidebar {
        transform: translateX(-105%);
        transition: transform .2s ease;
        box-shadow: 18px 0 45px rgba(15,23,42,.2);
    }
    .v11-app-shell.is-menu-open .v11-sidebar { transform: translateX(0); }
    .v11-app-main { min-height: 100vh; }
    .v11-menu-toggle {
        display: inline-grid;
        place-items: center;
    }
    .v11-topbar {
        min-height: 74px;
        padding: 12px 18px;
    }
    .v11-user-chip-copy { display: none; }
    .v11-user-avatar { width: 40px; height: 40px; }
    .v11-content { padding: 22px 16px 100px; }
    .v11-hero-card { padding: 24px; }
    .v11-hero-avatar { width: 70px; height: 70px; }
    .v11-card-grid { grid-template-columns: 1fr; }
    .v11-mobile-nav {
        position: fixed;
        inset: auto 10px 10px;
        z-index: 25;
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: 1fr;
        padding: 8px;
        border: 1px solid var(--v11-line);
        border-radius: 18px;
        background: rgba(255,255,255,.96);
        box-shadow: 0 12px 35px rgba(15,23,42,.18);
        backdrop-filter: blur(14px);
    }
    .v11-mobile-nav a {
        min-width: 0;
        display: grid;
        place-items: center;
        gap: 2px;
        padding: 6px 3px;
        border-radius: 11px;
        color: #64748b !important;
    }
    .v11-mobile-nav a.is-active {
        color: #1d4ed8 !important;
        background: #eff6ff;
    }
    .v11-mobile-nav span { font-size: 18px; line-height: 1; }
    .v11-mobile-nav small {
        overflow: hidden;
        max-width: 100%;
        font-size: 9px;
        font-weight: 750;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}
@media (max-width: 560px) {
    .v11-topbar-title h1 { font-size: 20px; }
    .v11-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }
    .v11-stat-card { padding: 16px; }
    .v11-stat-card strong { font-size: 26px; }
    .v11-hero-card { align-items: flex-start; }
    .v11-hero-avatar { width: 58px; height: 58px; }
    .v11-panel {
        padding: 18px;
        border-radius: 15px;
    }
    .v11-event-row {
        grid-template-columns: 50px minmax(0, 1fr);
        gap: 12px;
    }
    .v11-event-date { width: 48px; height: 52px; }
    .v11-score {
        grid-column: 2;
        text-align: left;
    }
    .v11-data-list > div {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}


/* ---------------------------------------------------------
 * V11 LOGIN
 * --------------------------------------------------------- */
body.v11-login-body {
    min-height: 100vh;
    background: #f3f6fb;
}
body.v11-login-body #wpadminbar { display: none !important; }
html:has(body.v11-login-body) { margin-top: 0 !important; }

.v11-login-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(360px, .9fr) minmax(480px, 1.1fr);
}
.v11-login-brand-panel {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    padding: clamp(40px, 6vw, 84px);
    color: #fff;
    background:
        radial-gradient(circle at 15% 15%, rgba(37,99,235,.55), transparent 32%),
        radial-gradient(circle at 90% 70%, rgba(59,130,246,.24), transparent 34%),
        linear-gradient(145deg, #0f172a 0%, #111827 55%, #1e293b 100%);
}
.v11-login-brand-panel::after {
    content: '';
    position: absolute;
    inset: 0;
    opacity: .18;
    background-image:
        linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
    background-size: 52px 52px;
    mask-image: linear-gradient(to top, #000 0%, transparent 78%);
}
.v11-login-brand-copy {
    position: relative;
    z-index: 1;
    max-width: 620px;
}
.v11-login-brand {
    display: block;
    font-size: clamp(58px, 8vw, 96px);
    line-height: .9;
    font-weight: 900;
    letter-spacing: -.07em;
}
.v11-login-brand-sub {
    display: block;
    margin-top: 12px;
    color: #93c5fd;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}
.v11-login-brand-copy h1 {
    max-width: 640px;
    margin: 50px 0 14px;
    font-size: clamp(30px, 4vw, 54px);
    line-height: 1.03;
    letter-spacing: -.045em;
}
.v11-login-brand-copy p {
    max-width: 540px;
    margin: 0;
    color: #cbd5e1;
    font-size: 16px;
    line-height: 1.7;
}
.v11-login-form-panel {
    display: grid;
    place-items: center;
    padding: 48px;
    background: #f8fafc;
}
.v11-login-card {
    width: min(460px, 100%);
}
.v11-login-card h2 {
    margin: 7px 0 9px;
    color: #0f172a;
    font-size: 34px;
    line-height: 1.08;
    letter-spacing: -.04em;
}
.v11-login-intro {
    margin: 0 0 30px;
    color: #64748b;
    line-height: 1.6;
}
.v11-login-mobile-brand { display: none; }
.v11-login-error {
    margin-bottom: 20px;
    padding: 12px 14px;
    border: 1px solid #fecaca;
    border-radius: 11px;
    color: #991b1b;
    background: #fef2f2;
    font-size: 13px;
    line-height: 1.45;
}
.v11-login-form { display: grid; gap: 18px; }
.v11-login-field label {
    display: block;
    margin-bottom: 7px;
    color: #334155;
    font-size: 13px;
    font-weight: 750;
}
.v11-login-field input[type="text"],
.v11-login-field input[type="password"] {
    width: 100%;
    height: 50px;
    padding: 0 14px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    outline: none;
    color: #0f172a;
    background: #fff;
    font: inherit;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.v11-login-field input:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 4px rgba(37,99,235,.12);
}
.v11-password-wrap { position: relative; }
.v11-password-wrap input { padding-right: 92px !important; }
.v11-password-toggle {
    position: absolute;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    min-width: 72px;
    height: 34px;
    padding: 0 9px;
    border: 0;
    border-radius: 8px;
    color: #475569;
    background: #f1f5f9;
    font-size: 11px;
    font-weight: 750;
    cursor: pointer;
}
.v11-login-remember {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    width: fit-content;
    color: #475569;
    font-size: 13px;
    cursor: pointer;
}
.v11-login-remember input {
    width: 17px;
    height: 17px;
    accent-color: #2563eb;
}
.v11-login-submit {
    height: 52px;
    border: 0;
    border-radius: 12px;
    color: #fff;
    background: var(--v11-sidebar-active);
    box-shadow: 0 8px 20px rgba(37,99,235,.2);
    font: inherit;
    font-weight: 800;
    cursor: pointer;
    transition: transform .15s ease, background .15s ease;
}
.v11-login-submit:hover { background: #1d4ed8; transform: translateY(-1px); }
.v11-login-submit:active { transform: translateY(0); }
.v11-login-help {
    display: grid;
    gap: 6px;
    margin: 24px 0 0;
    color: #94a3b8;
    font-size: 12px;
    line-height: 1.5;
}
.v11-login-help a {
    width: fit-content;
    color: #2563eb;
    font-weight: 800;
    text-decoration: none;
}
.v11-login-help a:hover,
.v11-login-help a:focus {
    color: #1d4ed8;
    text-decoration: underline;
}
.v11-login-help span {
    display: block;
}

@media (max-width: 900px) {
    .v11-login-shell { grid-template-columns: 1fr; }
    .v11-login-brand-panel { display: none; }
    .v11-login-form-panel {
        min-height: 100vh;
        padding: 32px 20px;
    }
    .v11-login-mobile-brand {
        display: grid;
        gap: 3px;
        margin-bottom: 44px;
    }
    .v11-login-mobile-brand span {
        font-size: 42px;
        line-height: 1;
        font-weight: 900;
        letter-spacing: -.06em;
    }
    .v11-login-mobile-brand small {
        color: #2563eb;
        font-size: 10px;
        font-weight: 850;
        letter-spacing: .13em;
        text-transform: uppercase;
    }
}


/* V11 0.3.0 · Passwort-Einladung */
.v11-login-success {
    margin-bottom: 20px;
    padding: 12px 14px;
    border: 1px solid #bbf7d0;
    border-radius: 11px;
    color: #166534;
    background: #f0fdf4;
    font-size: 13px;
    line-height: 1.45;
}
.v11-password-hint {
    margin: -4px 0 0;
    color: #94a3b8;
    font-size: 12px;
    line-height: 1.5;
}
.v11-login-link-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 0 18px;
    border-radius: 12px;
    color: #fff;
    background: var(--v11-sidebar-active);
    text-decoration: none;
    font-weight: 800;
}
.v11-login-link-button:hover {
    color: #fff;
    background: #1d4ed8;
}


/* V11 App 0.4.1: Link zur Spiel-Detailansicht */
.v11-event-row.has-detail-link {
    grid-template-columns: 56px minmax(0,1fr) auto auto;
}

.v11-event-detail-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid #bfdbfe;
    border-radius: 9px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.v11-event-detail-link:hover,
.v11-event-detail-link:focus {
    background: #dbeafe;
    color: #1e40af;
}

@media (max-width: 680px) {
    .v11-event-row.has-detail-link {
        grid-template-columns: 48px minmax(0,1fr) auto;
    }

    .v11-event-row.has-detail-link .v11-event-detail-link {
        grid-column: 2 / -1;
        justify-self: start;
        margin-top: 6px;
    }
}


/* V11 0.4.5 – Mannschaftskader */
.v11-team-card-with-roster {
    overflow: hidden;
}
.v11-team-card-with-roster .v11-team-roster {
    grid-column: 1 / -1;
    border-top: 1px solid var(--v11-line);
    background: #fff;
}
.v11-team-roster-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px 9px;
}
.v11-team-roster-head strong {
    color: #64748b;
    font-size: 11px;
}
.v11-team-roster-list {
    display: grid;
}
.v11-team-roster-person {
    display: grid;
    grid-template-columns: 44px minmax(0,1fr) auto;
    align-items: center;
    gap: 11px;
    padding: 11px 16px;
    border-top: 1px solid #edf2f7;
    color: inherit;
    text-decoration: none;
}
.v11-team-roster-person:first-child {
    border-top: 0;
}
.v11-team-roster-person:hover {
    background: #f8fafc;
}
.v11-team-roster-arrow {
    color: #94a3b8;
    font-size: 23px;
    line-height: 1;
}
.v11-team-roster-avatar {
    display: flex;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 50%;
    background: #e2e8f0;
    color: #334155;
    font-size: 12px;
    font-weight: 900;
}
.v11-team-roster-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.v11-team-roster-copy {
    min-width: 0;
}
.v11-team-roster-copy strong,
.v11-team-roster-copy span {
    display: block;
}
.v11-team-roster-copy strong {
    color: #0f172a;
}
.v11-team-roster-copy span {
    margin-top: 3px;
    color: #64748b;
    font-size: 11px;
}
.v11-team-roster-empty {
    padding: 18px 16px;
    border-top: 1px solid #edf2f7;
    color: #64748b;
    font-size: 12px;
}


/* V11 0.4.10 – Mannschaftszeilen: mehr Platz fürs Bild, kompakter Kader */
.v11-team-row-list {
    display: grid;
    gap: 16px;
}
.v11-team-row {
    display: grid;
    grid-template-columns: minmax(560px, 60%) minmax(0, 40%);
    height: 236px;
    overflow: hidden;
    border: 1px solid var(--v11-line);
    border-radius: var(--v11-radius);
    background: var(--v11-surface);
    box-shadow: 0 2px 7px rgba(15,23,42,.03);
}
.v11-team-row-summary {
    display: grid;
    grid-template-columns: minmax(260px, 48%) minmax(0, 1fr);
    min-width: 0;
    border-right: 1px solid var(--v11-line);
    background: #fff;
}
.v11-team-row-image-wrap {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    background: #e2e8f0;
}
.v11-team-row .v11-team-image {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: contain;
}
.v11-team-row .v11-team-image-placeholder {
    display: grid;
    place-items: center;
    font-size: 48px;
}
.v11-team-row-copy {
    min-width: 0;
    align-self: center;
    padding: 20px;
}
.v11-team-row-copy h2 {
    margin: 6px 0 9px;
    color: #0f172a;
    font-size: 22px;
    line-height: 1.15;
}
.v11-team-row-copy p {
    margin: 0;
    color: var(--v11-muted);
    font-size: 13px;
    line-height: 1.5;
}
.v11-team-row-roster {
    display: grid;
    grid-template-rows: 49px minmax(0, 1fr);
    min-width: 0;
    min-height: 0;
    background: #fff;
}
.v11-team-row-roster .v11-team-roster-head {
    height: 49px;
    padding: 0 16px;
    border-bottom: 1px solid #edf2f7;
}
.v11-team-row-roster-list {
    height: 187px;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 transparent;
}
.v11-team-row-roster-list::-webkit-scrollbar {
    width: 7px;
}
.v11-team-row-roster-list::-webkit-scrollbar-track {
    background: transparent;
}
.v11-team-row-roster-list::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #cbd5e1;
}
.v11-team-row-roster-list .v11-team-roster-person {
    min-height: 62px;
    grid-template-columns: 40px minmax(0,1fr) auto;
    gap: 10px;
    padding: 8px 14px;
}
.v11-team-row-roster-list .v11-team-roster-avatar {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
}
.v11-team-row-roster-empty {
    display: flex;
    min-height: 0;
    align-items: center;
    padding: 18px 16px;
    color: #64748b;
    font-size: 12px;
    line-height: 1.5;
}

@media (max-width: 980px) {
    .v11-team-row {
        grid-template-columns: minmax(500px, 56%) minmax(0, 44%);
    }
    .v11-team-row-summary {
        grid-template-columns: minmax(230px, 48%) minmax(0, 1fr);
    }
}

@media (max-width: 820px) {
    .v11-team-row {
        grid-template-columns: 1fr;
        height: auto;
    }
    .v11-team-row-summary {
        min-height: 165px;
        border-right: 0;
        border-bottom: 1px solid var(--v11-line);
    }
    .v11-team-row-roster-list {
        height: 187px;
    }
}

@media (max-width: 520px) {
    .v11-team-row-summary {
        grid-template-columns: 1fr;
    }
    .v11-team-row-image-wrap {
        height: 180px;
    }
    .v11-team-row-copy {
        padding: 17px 18px;
    }
}


/* V11 0.4.6 – Mannschafts-Personendetail */
.v11-team-person-detail {
    display: grid;
    gap: 16px;
    margin-bottom: 20px;
}
.v11-team-person-back a {
    display: inline-flex;
    align-items: center;
    color: #3157e8;
    text-decoration: none;
    font-size: 12px;
    font-weight: 900;
}
.v11-team-person-back a:hover {
    text-decoration: underline;
}
.v11-team-person-hero {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 22px;
    overflow: hidden;
    border-radius: 16px;
    background: #111827;
    color: #fff;
}
.v11-team-person-avatar {
    display: flex;
    width: 92px;
    height: 92px;
    flex: 0 0 92px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 3px solid rgba(255,255,255,.15);
    border-radius: 50%;
    background: #334155;
    color: #fff;
    font-size: 23px;
    font-weight: 900;
}
.v11-team-person-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.v11-team-person-identity {
    min-width: 0;
}
.v11-team-person-identity .v11-eyebrow {
    color: var(--v11-header-eyebrow);
}
.v11-team-person-identity h2 {
    margin: 4px 0 9px;
    color: #fff;
    font-size: 27px;
}
.v11-team-person-pills {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
}
.v11-team-person-pills span {
    padding: 5px 8px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    color: #e2e8f0;
    font-size: 10px;
    font-weight: 900;
}
.v11-team-person-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 16px;
    align-items: start;
}
.v11-team-person-stat-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 8px;
}
.v11-team-person-stat-grid > div {
    padding: 13px;
    border-radius: 10px;
    background: #f8fafc;
}
.v11-team-person-stat-grid span,
.v11-team-person-stat-grid strong,
.v11-team-person-stat-grid small {
    display: block;
}
.v11-team-person-stat-grid span {
    color: #64748b;
    font-size: 10px;
    font-weight: 800;
}
.v11-team-person-stat-grid strong {
    margin-top: 3px;
    color: #0f172a;
    font-size: 22px;
}
.v11-team-person-stat-grid small {
    margin-top: 3px;
    color: #94a3b8;
    font-size: 9px;
}
.v11-team-person-list {
    display: grid;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}
.v11-team-person-list-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 12px;
    border-top: 1px solid #edf2f7;
}
.v11-team-person-list-row:first-child {
    border-top: 0;
}
.v11-team-person-list-row strong,
.v11-team-person-list-row span,
.v11-team-person-list-row small {
    display: block;
}
.v11-team-person-list-row > div > span {
    margin-top: 3px;
    color: #64748b;
    font-size: 11px;
}
.v11-team-person-list-row > div > small {
    margin-top: 3px;
    color: #475569;
    font-size: 10px;
}
.v11-team-person-private {
    flex: 0 0 auto;
    padding: 4px 7px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #64748b;
    font-size: 9px;
    font-weight: 900;
    text-transform: uppercase;
}
.v11-team-person-empty {
    padding: 18px 0;
    color: #64748b;
    font-size: 12px;
}
.v11-team-person-attendance-summary {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 7px;
    margin-bottom: 12px;
}
.v11-team-person-attendance-summary span {
    padding: 9px;
    border-radius: 9px;
    background: #f8fafc;
    color: #64748b;
    text-align: center;
    font-size: 9px;
    font-weight: 800;
}
.v11-team-person-attendance-summary strong {
    display: block;
    margin-bottom: 2px;
    color: #0f172a;
    font-size: 18px;
}
.v11-team-person-response {
    flex: 0 0 auto;
    padding: 4px 7px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #475569;
    font-size: 9px;
    font-weight: 900;
}
.v11-team-person-response.is-accepted {
    background: #dcfce7;
    color: #166534;
}
.v11-team-person-response.is-declined {
    background: #fee2e2;
    color: #991b1b;
}
.v11-team-person-response.is-maybe,
.v11-team-person-response.is-waitlist {
    background: #fef3c7;
    color: #92400e;
}

@media(max-width:900px) {
    .v11-team-person-grid {
        grid-template-columns: 1fr;
    }
}
@media(max-width:620px) {
    .v11-team-person-hero {
        align-items: flex-start;
        flex-direction: column;
    }
    .v11-team-person-avatar {
        width: 76px;
        height: 76px;
        flex-basis: 76px;
    }
    .v11-team-person-identity h2 {
        font-size: 23px;
    }
    .v11-team-person-stat-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    .v11-team-person-list-row {
        align-items: flex-start;
        flex-direction: column;
    }
    .v11-team-person-response,
    .v11-team-person-private {
        align-self: flex-start;
    }
}

/* Navigation 0.5.3: Schnellzugriff zum Anlegen von Spielen und Terminen. */
.v11-nav-quick-action {
    margin-bottom: 4px;
    border: 1px solid rgba(96,165,250,.28);
    background: rgba(37,99,235,.13);
    color: #dbeafe !important;
    font-weight: 800;
}

.v11-nav-quick-action:hover {
    border-color: rgba(147,197,253,.48);
    background: rgba(37,99,235,.24);
    color: #fff !important;
}


/* Navigation 0.5.4: Kaderplanung fest unter Spielbetrieb einsortiert. */


/* Navigation 0.5.5: Push-Protokoll fest unter Verwaltung einsortiert. */

/* ---------------------------------------------------------
 * V11 0.6.1 · App-Shell, Navigation und kompaktes Dashboard
 * --------------------------------------------------------- */
:root {
    --v11-bg: #f4f5f7;
    --v11-surface: #ffffff;
    --v11-surface-2: #f7f8fa;
    --v11-ink: #18202c;
    --v11-muted: #667085;
    --v11-line: #dde2e8;
    --v11-brand: #172033;
    --v11-accent: #24558f;
    --v11-accent-soft: #eaf0f7;
    --v11-shadow: 0 4px 18px rgba(24, 32, 44, .06);
    --v11-radius: 12px;
    --v11-header-height: 72px;
    --v11-context-width: 224px;
}

body.v11-app-body {
    background: var(--v11-bg);
}

body.v11-menu-open {
    overflow: hidden;
}

.v11-app-shell {
    display: block;
    min-height: 100vh;
}

.v11-global-header {
    position: sticky;
    top: 0;
    z-index: 50;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: stretch;
    min-height: var(--v11-header-height);
    border-bottom: 1px solid var(--v11-line);
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 1px 0 rgba(24, 32, 44, .02);
    backdrop-filter: blur(12px);
}

.v11-header-brand {
    display: flex;
    width: 176px;
    min-width: 176px;
    align-items: center;
    gap: 10px;
    padding: 10px 18px;
    border-right: 1px solid var(--v11-line);
}

.v11-header-club-logo {
    display: block;
    width: auto;
    height: auto;
    max-width: 138px;
    max-height: 48px;
    object-fit: contain;
    object-position: left center;
}

.v11-header-brand-mark {
    color: var(--v11-brand);
    font-size: 26px;
    line-height: 1;
    font-weight: 850;
    letter-spacing: -.045em;
}

.v11-header-brand-name {
    overflow: hidden;
    color: var(--v11-muted);
    font-size: 11px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.v11-main-nav {
    display: flex;
    min-width: 0;
    align-items: stretch;
    padding: 0 12px;
}

.v11-main-nav > a {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: 0 12px;
    color: #4b5563 !important;
    font-size: var(--v11-font-nav-child);
    font-weight: 720;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
    transition: color .15s ease, background .15s ease;
}

.v11-main-nav > a:hover,
.v11-main-nav > a:focus-visible {
    color: var(--v11-ink) !important;
    background: #f8f9fb;
}

.v11-main-nav > a.is-active {
    color: var(--v11-accent) !important;
}

.v11-main-nav > a.is-active::after {
    content: '';
    position: absolute;
    right: 12px;
    bottom: 0;
    left: 12px;
    height: 2px;
    background: var(--v11-accent);
}

.v11-header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 16px 0 8px;
}

.v11-notification-bell {
    width: 38px;
    height: 38px;
    border: 1px solid transparent;
    border-radius: 8px;
    color: #475467 !important;
    background: transparent;
}

.v11-notification-bell:hover,
.v11-notification-bell:focus-visible {
    border-color: var(--v11-line);
    background: #f8f9fb;
}

.v11-notification-bell.has-unread {
    border-color: #c9d8eb;
    background: var(--v11-accent-soft);
}

.v11-notification-bell svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.v11-notification-bell strong {
    top: -5px;
    right: -5px;
    border-color: #fff;
    background: var(--v11-accent);
}

.v11-account-menu {
    position: relative;
}

.v11-account-menu > summary {
    display: flex;
    min-height: 48px;
    align-items: center;
    gap: 9px;
    padding: 5px 7px;
    border-radius: 8px;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.v11-account-menu > summary::-webkit-details-marker {
    display: none;
}

.v11-account-menu > summary:hover,
.v11-account-menu > summary:focus-visible {
    background: #f8f9fb;
}

.v11-account-menu .v11-user-avatar {
    width: 36px;
    height: 36px;
}

.v11-account-copy {
    display: grid;
    gap: 1px;
    max-width: 150px;
}

.v11-account-copy strong,
.v11-account-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.v11-account-copy strong {
    color: var(--v11-ink);
    font-size: 12px;
    font-weight: 760;
}

.v11-account-copy small {
    color: var(--v11-muted);
    font-size: 10px;
}

.v11-account-chevron {
    width: 7px;
    height: 7px;
    margin: 0 3px 3px 1px;
    border-right: 1.5px solid #98a2b3;
    border-bottom: 1.5px solid #98a2b3;
    transform: rotate(45deg);
    transition: transform .15s ease;
}

.v11-account-menu[open] .v11-account-chevron {
    margin-bottom: -3px;
    transform: rotate(225deg);
}

.v11-account-popover {
    position: absolute;
    top: calc(100% + 7px);
    right: 0;
    z-index: 70;
    display: grid;
    width: 210px;
    padding: 7px;
    border: 1px solid var(--v11-line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(24, 32, 44, .14);
}

.v11-account-popover a {
    padding: 9px 10px;
    border-radius: 6px;
    color: #475467 !important;
    font-size: var(--v11-font-nav-child);
    font-weight: 650;
}

.v11-account-popover a:hover,
.v11-account-popover a:focus-visible,
.v11-account-popover a.is-active {
    color: var(--v11-ink) !important;
    background: #f4f6f8;
}

.v11-menu-toggle {
    display: none;
    width: 42px;
    height: 42px;
    align-self: center;
    justify-self: start;
    padding: 10px;
    border: 1px solid var(--v11-line);
    border-radius: 8px;
    background: #fff;
}

.v11-menu-toggle span {
    display: block;
    width: 100%;
    height: 1.5px;
    margin: 4px 0;
    background: #475467;
}

.v11-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-height: calc(100vh - var(--v11-header-height));
}

.v11-workspace.has-context {
    grid-template-columns: var(--v11-context-width) minmax(0, 1fr);
}

.v11-context-sidebar {
    position: sticky;
    top: var(--v11-header-height);
    align-self: start;
    height: calc(100vh - var(--v11-header-height));
    overflow-y: auto;
    padding: 24px 16px;
    border-right: 1px solid var(--v11-line);
    background: #f8f9fb;
}

.v11-context-sidebar-head {
    display: grid;
    gap: 4px;
    padding: 0 8px 16px;
    border-bottom: 1px solid var(--v11-line);
}

.v11-context-sidebar-head span {
    color: #98a2b3;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.v11-context-sidebar-head strong {
    color: var(--v11-brand);
    font-size: 14px;
    line-height: 1.3;
}

.v11-context-nav {
    display: grid;
    gap: 2px;
    padding-top: 14px;
}

.v11-context-nav > a {
    position: relative;
    display: block;
    padding: 9px 10px 9px 13px;
    border-radius: 6px;
    color: #586174 !important;
    font-size: 13px;
    font-weight: 640;
    line-height: 1.35;
    transition: color .15s ease, background .15s ease;
}

.v11-context-nav > a:hover,
.v11-context-nav > a:focus-visible {
    color: var(--v11-ink) !important;
    background: #eef1f4;
}

.v11-context-nav > a.is-active {
    color: var(--v11-accent) !important;
    background: #eaf0f7;
    font-weight: 760;
}

.v11-context-nav > a.is-active::before {
    content: '';
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 0;
    width: 2px;
    border-radius: 2px;
    background: var(--v11-accent);
}

.v11-context-nav > a.v11-context-action {
    margin-bottom: 10px;
    border: 1px solid #cbd5e1;
    color: #344054 !important;
    background: #fff;
    font-weight: 720;
    text-align: center;
}

.v11-context-nav > a.v11-context-action:hover,
.v11-context-nav > a.v11-context-action:focus-visible {
    border-color: #aeb9c6;
    background: #f8f9fb;
}

.v11-app-main {
    grid-column: auto;
    min-width: 0;
    min-height: 0;
}

.v11-content {
    max-width: 1580px;
    margin: 0 auto;
    padding: 28px 32px 80px;
}

.v11-page-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
    padding: 23px 25px;
    border: 0;
    border-radius: 16px;
    color: var(--v11-header-text);
    background: var(--v11-sidebar-bg);
    box-shadow: none;
}

.v11-page-head-copy {
    min-width: 0;
}

.v11-page-head span {
    display: block;
    margin-bottom: 4px;
    color: var(--v11-header-eyebrow);
    font-size: var(--v11-font-eyebrow);
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.v11-page-head h1 {
    margin: 4px 0 4px;
    color: var(--v11-header-text);
    font-size: var(--v11-font-page-title);
    line-height: 1.12;
    letter-spacing: normal;
}

.v11-page-head p {
    max-width: 760px;
    margin: 0;
    color: var(--v11-sidebar-text);
    font-size: var(--v11-font-body);
    line-height: 1.45;
}

.v11-page-head-club {
    display: grid;
    min-width: 220px;
    gap: 4px;
    flex: 0 0 auto;
}

.v11-page-head-club label {
    color: #cbd5e1;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: normal;
    text-transform: none;
}

.v11-page-head-club select {
    min-width: 220px;
    height: 38px;
    padding: 8px 32px 8px 9px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: var(--v11-radius-control);
    color: var(--v11-brand);
    background: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 400;
}

.v11-page-head-club select:focus {
    outline: 2px solid var(--v11-header-eyebrow);
    outline-offset: 2px;
}

.v11-content.is-dashboard {
    padding-top: 24px;
}

.v11-content.is-dashboard .v11-hero-card {
    margin-bottom: 14px;
    padding: 23px 25px;
    border: 0;
    border-radius: 16px;
    color: var(--v11-header-text);
    background: var(--v11-sidebar-bg);
    box-shadow: none;
}

.v11-content.is-dashboard .v11-hero-card h2 {
    margin: 4px 0 4px;
    color: var(--v11-header-text);
    font-size: var(--v11-font-page-title);
    line-height: 1.12;
    letter-spacing: normal;
}

.v11-content.is-dashboard .v11-hero-card p {
    color: var(--v11-sidebar-text);
    font-size: var(--v11-font-body);
    line-height: 1.45;
}

.v11-content.is-dashboard .v11-hero-card .v11-eyebrow {
    color: var(--v11-header-eyebrow);
}

.v11-content.is-dashboard .v11-hero-avatar {
    width: 62px;
    height: 62px;
    border: 1px solid rgba(255,255,255,.18);
}

.v11-content.is-dashboard .v11-stat-grid {
    gap: 10px;
    margin-bottom: 16px;
}

.v11-content.is-dashboard .v11-stat-card {
    padding: 14px 16px;
    border-radius: 10px;
}

.v11-content.is-dashboard .v11-stat-card strong {
    margin-top: 4px;
    font-size: 26px;
}

.v11-dashboard-navigation {
    margin: 18px 0 20px;
}

.v11-dashboard-section-head {
    margin-bottom: 11px;
}

.v11-dashboard-section-head .v11-eyebrow {
    font-size: var(--v11-dashboard-font-eyebrow, 11px);
}

.v11-dashboard-section-head h2 {
    margin: 4px 0 4px;
    font-size: var(--v11-dashboard-font-title, 21px);
    letter-spacing: -.02em;
}

.v11-dashboard-section-head p {
    margin: 0;
    color: var(--v11-dashboard-muted, var(--v11-muted));
    font-size: var(--v11-dashboard-font-help, 13px);
}

.v11-dashboard-nav-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--v11-dashboard-grid-gap, 12px);
    align-items: start;
}

.v11-dashboard-nav-column {
    display: grid;
    min-width: 0;
    gap: var(--v11-dashboard-grid-gap, 12px);
    align-content: start;
}

.v11-dashboard-nav-card {
    min-width: 0;
    padding: var(--v11-dashboard-card-padding-y, 14px) var(--v11-dashboard-card-padding-x, 16px);
    border: 1px solid var(--v11-dashboard-border, var(--v11-line));
    border-radius: var(--v11-dashboard-card-radius, 10px);
    background: var(--v11-dashboard-card-bg, #fff);
}

.v11-dashboard-nav-title {
    display: block;
    padding-bottom: var(--v11-dashboard-title-gap, 9px);
    border-bottom: 1px solid var(--v11-dashboard-divider, #edf0f3);
    color: var(--v11-dashboard-title-color, var(--v11-brand)) !important;
    font-size: var(--v11-dashboard-font-card-title, 14px);
    font-weight: 790;
}

.v11-dashboard-nav-title:hover,
.v11-dashboard-nav-title:focus-visible {
    color: var(--v11-dashboard-hover, var(--v11-accent)) !important;
}

.v11-dashboard-nav-links {
    display: grid;
    gap: 0;
    padding-top: 5px;
}

.v11-dashboard-nav-links a {
    position: relative;
    display: block;
    padding: var(--v11-dashboard-link-padding-y, 5px) 18px var(--v11-dashboard-link-padding-y, 5px) 0;
    color: var(--v11-dashboard-link-color, #586174) !important;
    font-size: var(--v11-dashboard-font-link, var(--v11-font-nav-child));
    font-weight: 610;
    line-height: 1.35;
}

.v11-dashboard-nav-links a::after {
    content: '›';
    position: absolute;
    top: 4px;
    right: 2px;
    color: var(--v11-dashboard-arrow, #a3acb9);
    font-size: var(--v11-dashboard-font-arrow, 15px);
}

.v11-dashboard-nav-links a:hover,
.v11-dashboard-nav-links a:focus-visible {
    color: var(--v11-dashboard-hover, var(--v11-accent)) !important;
}

.v11-mobile-menu[hidden] {
    display: none !important;
}

.v11-mobile-menu {
    position: fixed;
    top: var(--v11-header-height);
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 45;
    overflow-y: auto;
    padding: 18px;
    background: rgba(244, 245, 247, .98);
}

.v11-mobile-menu-inner {
    width: min(760px, 100%);
    margin: 0 auto;
    padding: 8px 0 40px;
}

.v11-mobile-dashboard {
    display: block;
    margin-bottom: 14px;
    padding: 12px 14px;
    border: 1px solid var(--v11-line);
    border-radius: 8px;
    color: var(--v11-brand) !important;
    background: #fff;
    font-size: 14px;
    font-weight: 780;
}

.v11-mobile-dashboard.is-active {
    border-color: #c9d8eb;
    color: var(--v11-accent) !important;
    background: var(--v11-accent-soft);
}

.v11-mobile-menu-group {
    padding: 15px 2px;
    border-bottom: 1px solid var(--v11-line);
}

.v11-mobile-menu-group > strong {
    display: block;
    margin-bottom: 8px;
    color: var(--v11-brand);
    font-size: 13px;
}

.v11-mobile-menu-group > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3px 12px;
}

.v11-mobile-menu-group a {
    padding: 8px 9px;
    border-radius: 6px;
    color: #586174 !important;
    font-size: var(--v11-font-nav-child);
    font-weight: 620;
}

.v11-mobile-menu-group a:hover,
.v11-mobile-menu-group a:focus-visible,
.v11-mobile-menu-group a.is-active {
    color: var(--v11-accent) !important;
    background: #eaf0f7;
}

.v11-mobile-menu-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 18px;
}

.v11-mobile-menu-footer a {
    padding: 9px 11px;
    border: 1px solid var(--v11-line);
    border-radius: 7px;
    color: #586174 !important;
    background: #fff;
    font-size: 12px;
    font-weight: 680;
}

@media (max-width: 1280px) {
    .v11-global-header {
        grid-template-columns: auto auto minmax(0, 1fr) auto;
    }

    .v11-main-nav {
        display: none;
    }

    .v11-menu-toggle {
        display: block;
        margin-left: 12px;
    }

    .v11-header-actions {
        grid-column: 4;
    }
}

@media (max-width: 1080px) {
    .v11-dashboard-nav-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .v11-dashboard-nav-column {
        display: contents;
    }

    .v11-dashboard-nav-card {
        order: var(--v11-dashboard-order);
    }
}

@media (max-width: 980px) {
    .v11-workspace {
        display: block;
    }

    .v11-context-sidebar {
        display: none;
    }

    .v11-content {
        padding: 24px 20px 70px;
    }
}

@media (max-width: 720px) {
    :root {
        --v11-header-height: 64px;
    }

    .v11-header-brand {
        width: 122px;
        min-width: 122px;
        padding: 8px 12px;
    }

    .v11-header-club-logo {
        max-width: 96px;
        max-height: 42px;
    }

    .v11-header-brand-name {
        display: none;
    }

    .v11-header-actions {
        gap: 3px;
        padding-right: 8px;
    }

    .v11-account-copy,
    .v11-account-chevron {
        display: none;
    }

    .v11-account-menu > summary {
        padding: 4px;
    }

    .v11-account-menu .v11-user-avatar {
        width: 34px;
        height: 34px;
    }

    .v11-menu-toggle {
        width: 38px;
        height: 38px;
        margin-left: 8px;
        padding: 8px;
    }

    .v11-notification-bell {
        width: 36px;
        height: 36px;
    }

    .v11-dashboard-nav-grid {
        display: flex;
        flex-direction: column;
    }

    .v11-dashboard-nav-column {
        display: contents;
    }

    .v11-dashboard-nav-card {
        width: 100%;
        padding: 14px;
        order: var(--v11-dashboard-order);
    }

    .v11-dashboard-nav-title {
        padding-bottom: 10px;
    }

    .v11-dashboard-nav-links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        padding-top: 10px;
    }

    .v11-dashboard-nav-links a {
        display: flex;
        min-height: 58px;
        align-items: center;
        padding: 10px 30px 10px 11px;
        border: 1px solid #e3e8ee;
        border-radius: 9px;
        background: #f8fafc;
        color: #3f4859 !important;
        font-size: 13px;
        font-weight: 700;
        line-height: 1.22;
    }

    .v11-dashboard-nav-links a::after {
        top: 50%;
        right: 10px;
        transform: translateY(-50%);
        color: #8e99a8;
        font-size: 18px;
    }

    .v11-dashboard-nav-links a:hover,
    .v11-dashboard-nav-links a:focus-visible {
        border-color: #b8d2ef;
        background: #eef6ff;
        color: var(--v11-accent) !important;
    }

    .v11-mobile-menu-group > div {
        grid-template-columns: 1fr;
    }

    .v11-content {
        padding: 20px 14px 60px;
    }

    .v11-page-head {
        align-items: stretch;
        flex-direction: column;
        gap: 16px;
        padding: 18px;
    }

    .v11-page-head h1 {
        font-size: 22px;
    }

    .v11-page-head-club,
    .v11-page-head-club select {
        width: 100%;
    }

    .v11-content.is-dashboard .v11-hero-card {
        padding: 18px;
    }
}


/* =========================================================
 * V11 App 0.6.17 – Mobile Terminliste
 * Auf der eigenständigen Termine-Seite erhalten Titel, Zeit und Ort
 * auf kleinen Displays wieder die volle Inhaltsbreite. Zusätzliche
 * Spielaktionen dürfen die Termintexte nicht in eine Mini-Spalte drücken.
 * ========================================================= */
@media (max-width: 680px) {
    .v11-content.is-view-kalender .v11-event-row,
    .v11-content.is-view-kalender .v11-event-row.has-detail-link {
        grid-template-columns: 48px minmax(0, 1fr);
        gap: 12px;
        align-items: start;
    }

    .v11-content.is-view-kalender .v11-event-date {
        grid-column: 1;
        grid-row: 1;
    }

    .v11-content.is-view-kalender .v11-event-copy {
        grid-column: 2;
        grid-row: 1;
        width: 100%;
        min-width: 0;
    }

    .v11-content.is-view-kalender .v11-event-meta > span:not(.v11-type-pill) {
        white-space: nowrap;
    }

    .v11-content.is-view-kalender .v11-event-row > :not(.v11-event-date):not(.v11-event-copy) {
        grid-column: 2;
        justify-self: start;
    }

    .v11-content.is-view-kalender .v11-score {
        margin-top: 2px;
        text-align: left;
    }

    .v11-content.is-view-kalender .v11-event-row.has-detail-link .v11-event-detail-link {
        grid-column: 2;
        justify-self: start;
        margin-top: 2px;
    }
}


/* =========================================================
 * V11 App 0.6.18 – Mobile Personenaufnahme
 * Die gemeinsame Aufnahme-/Bearbeitungsmaske bleibt fachlich unverändert,
 * wird auf kleinen Displays aber kompakter und touchfreundlicher.
 * ========================================================= */
@media (max-width: 680px) {
    .v11-content.is-view-person-anlegen .v11-intake-form {
        gap: 12px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-progress:not(.v11-087-section-nav) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-progress:not(.v11-087-section-nav) span {
        display: flex;
        min-width: 0;
        min-height: 40px;
        align-items: center;
        justify-content: center;
        padding: 8px 9px;
        font-size: 11px;
        line-height: 1.2;
        white-space: normal;
    }

    .v11-content.is-view-person-anlegen .v11-intake-card,
    .v11-content.is-view-person-anlegen .v11-intake-submit-card {
        padding: 15px;
        border-radius: 12px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-card-head {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        gap: 10px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-card-head > div {
        min-width: 0;
    }

    .v11-content.is-view-person-anlegen .v11-intake-card-head h3,
    .v11-content.is-view-person-anlegen .v11-intake-submit-card h3 {
        font-size: 19px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-required {
        margin-left: auto;
        white-space: nowrap;
    }

    .v11-content.is-view-person-anlegen .v11-intake-person-grid {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-top: 14px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-photo-box {
        display: grid;
        grid-template-columns: 74px minmax(0, 1fr);
        grid-template-rows: auto auto;
        align-items: center;
        gap: 6px 12px;
        padding: 10px 12px;
        border: 1px solid #e2e8f0;
        border-radius: 11px;
        background: #f8fafc;
    }

    .v11-content.is-view-person-anlegen .v11-intake-photo-preview {
        grid-column: 1;
        grid-row: 1 / 3;
        width: 74px;
        height: 74px;
        font-size: 12px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-upload-button {
        grid-column: 2;
        justify-self: stretch;
        min-height: 42px;
        padding: 8px 10px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-photo-box small {
        grid-column: 2;
        margin: 0;
        font-size: 11px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-grid {
        gap: 10px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-grid input,
    .v11-content.is-view-person-anlegen .v11-intake-grid select,
    .v11-content.is-view-person-anlegen .v11-intake-panel input,
    .v11-content.is-view-person-anlegen .v11-intake-panel select,
    .v11-content.is-view-person-anlegen .v11-intake-panel textarea,
    .v11-content.is-view-person-anlegen .v11-intake-subsection textarea,
    .v11-content.is-view-person-anlegen .v11-intake-login-fields input {
        min-height: 44px;
        font-size: 16px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-grid label,
    .v11-content.is-view-person-anlegen .v11-intake-panel label,
    .v11-content.is-view-person-anlegen .v11-intake-subsection > label,
    .v11-content.is-view-person-anlegen .v11-intake-login-fields label {
        font-size: 13px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-subsection {
        margin-top: 15px;
        padding-top: 14px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-help {
        font-size: 12px;
        line-height: 1.45;
    }

    .v11-content.is-view-person-anlegen .v11-intake-role-group {
        gap: 7px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-check {
        min-height: 42px;
        padding: 9px 11px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-check input,
    .v11-content.is-view-person-anlegen .v11-intake-radio-row input,
    .v11-content.is-view-person-anlegen .v11-intake-login-switch input {
        flex: 0 0 auto;
    }

    .v11-content.is-view-person-anlegen .v11-intake-split {
        gap: 12px;
        margin-top: 14px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-panel {
        padding: 14px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-radio-row label {
        min-height: 40px;
        padding: 8px 10px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-login-switch {
        min-height: 50px;
        padding: 12px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-matrix-wrap {
        max-width: 100%;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-inline: contain;
    }

    .v11-content.is-view-person-anlegen .v11-intake-submit-card {
        gap: 12px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-submit {
        width: 100%;
        min-height: 48px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-progress.v11-087-section-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
    }

    .v11-content.is-view-person-anlegen .v11-087-section-nav button {
        min-height: 40px;
        padding: 8px 9px;
        font-size: 11px;
        line-height: 1.2;
        white-space: normal;
    }
}

@media (max-width: 390px) {
    .v11-content.is-view-person-anlegen .v11-intake-card,
    .v11-content.is-view-person-anlegen .v11-intake-submit-card {
        padding: 13px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-photo-box {
        grid-template-columns: 64px minmax(0, 1fr);
        padding: 9px 10px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-photo-preview {
        width: 64px;
        height: 64px;
    }
}


/* =========================================================
 * V11 App 0.6.19 – Mobile Personenaufnahme, echter Reflow
 * Die Desktop-Matrix wird mobil zu Karten. Keine 900px-Tabelle mehr,
 * keine Pseudo-Tabs und kein horizontaler Formularexodus.
 * ========================================================= */
@media (max-width: 680px) {
    .v11-content.is-view-person-anlegen {
        overflow-x: hidden;
    }

    .v11-content.is-view-person-anlegen .v11-intake-page,
    .v11-content.is-view-person-anlegen .v11-intake-form,
    .v11-content.is-view-person-anlegen .v11-intake-card,
    .v11-content.is-view-person-anlegen .v11-intake-submit-card,
    .v11-content.is-view-person-anlegen .v11-intake-card-head,
    .v11-content.is-view-person-anlegen .v11-intake-person-grid,
    .v11-content.is-view-person-anlegen .v11-intake-fields,
    .v11-content.is-view-person-anlegen .v11-intake-grid,
    .v11-content.is-view-person-anlegen .v11-intake-subsection,
    .v11-content.is-view-person-anlegen .v11-intake-split,
    .v11-content.is-view-person-anlegen .v11-intake-panel,
    .v11-content.is-view-person-anlegen .v11-intake-person-picker,
    .v11-content.is-view-person-anlegen .v11-intake-login-fields {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .v11-content.is-view-person-anlegen .v11-intake-progress:not(.v11-087-section-nav) {
        display: none !important;
    }

    .v11-content.is-view-person-anlegen .v11-intake-grid.two,
    .v11-content.is-view-person-anlegen .v11-intake-grid.address,
    .v11-content.is-view-person-anlegen .v11-intake-split {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .v11-content.is-view-person-anlegen .v11-intake-grid.address .street {
        grid-column: auto !important;
    }

    .v11-content.is-view-person-anlegen .v11-intake-grid label,
    .v11-content.is-view-person-anlegen .v11-intake-panel label,
    .v11-content.is-view-person-anlegen .v11-intake-subsection > label,
    .v11-content.is-view-person-anlegen .v11-intake-login-fields label {
        min-width: 0;
        max-width: 100%;
    }

    .v11-content.is-view-person-anlegen .v11-intake-grid input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    .v11-content.is-view-person-anlegen .v11-intake-grid select,
    .v11-content.is-view-person-anlegen .v11-intake-grid textarea,
    .v11-content.is-view-person-anlegen .v11-intake-panel input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    .v11-content.is-view-person-anlegen .v11-intake-panel select,
    .v11-content.is-view-person-anlegen .v11-intake-panel textarea,
    .v11-content.is-view-person-anlegen .v11-intake-subsection > label > input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    .v11-content.is-view-person-anlegen .v11-intake-subsection > label > select,
    .v11-content.is-view-person-anlegen .v11-intake-subsection > label > textarea,
    .v11-content.is-view-person-anlegen .v11-intake-login-fields input {
        display: block;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box;
    }

    .v11-content.is-view-person-anlegen .v11-intake-role-group {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }

    .v11-content.is-view-person-anlegen .v11-intake-check {
        width: 100%;
        min-width: 0;
    }

    .v11-content.is-view-person-anlegen .v11-intake-radio-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
        gap: 7px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-radio-row label {
        width: 100%;
        min-width: 0;
        min-height: 44px;
        box-sizing: border-box;
    }

    .v11-content.is-view-person-anlegen .v11-intake-person-results,
    .v11-content.is-view-person-anlegen .v11-intake-person-selected {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .v11-content.is-view-person-anlegen .v11-intake-matrix-wrap {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        overflow: visible !important;
        border: 0;
        border-radius: 0;
        background: transparent;
    }

    .v11-content.is-view-person-anlegen .v11-intake-matrix {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        border-collapse: separate;
    }

    .v11-content.is-view-person-anlegen .v11-intake-matrix thead {
        display: none;
    }

    .v11-content.is-view-person-anlegen .v11-intake-matrix tbody {
        display: grid;
        gap: 10px;
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .v11-content.is-view-person-anlegen .v11-intake-matrix tr[data-team-row],
    .v11-content.is-view-person-anlegen .v11-intake-matrix tr[data-location-row] {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        padding: 12px;
        border: 1px solid #e2e8f0;
        border-radius: 11px;
        background: #fff;
        box-sizing: border-box;
    }

    .v11-content.is-view-person-anlegen .v11-intake-matrix tr[data-team-row] > th,
    .v11-content.is-view-person-anlegen .v11-intake-matrix tr[data-location-row] > th {
        display: block;
        grid-column: 1 / -1;
        width: 100%;
        max-width: 100%;
        min-width: 0 !important;
        padding: 0 0 10px !important;
        border: 0 !important;
        border-bottom: 1px solid #e2e8f0 !important;
        text-align: left;
        overflow-wrap: anywhere;
        box-sizing: border-box;
    }

    .v11-content.is-view-person-anlegen .v11-intake-matrix tr[data-team-row] > td,
    .v11-content.is-view-person-anlegen .v11-intake-matrix tr[data-location-row] > td {
        display: block;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        padding: 0 !important;
        border: 0 !important;
        box-sizing: border-box;
    }

    .v11-content.is-view-person-anlegen .v11-intake-matrix tr[data-team-row] > td:not(:last-child) .v11-intake-matrix-check,
    .v11-content.is-view-person-anlegen .v11-intake-matrix tr[data-location-row] > td .v11-intake-matrix-check {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        width: 100%;
        height: auto;
        min-height: 44px;
        gap: 8px;
        margin: 0;
        padding: 8px 10px;
        border: 1px solid #dbeafe;
        border-radius: 9px;
        background: #f8fbff;
        box-sizing: border-box;
    }

    .v11-content.is-view-person-anlegen .v11-intake-matrix-check > span[aria-hidden="true"] {
        display: none;
    }

    .v11-content.is-view-person-anlegen .v11-intake-matrix-check .screen-reader-text {
        position: static !important;
        width: auto !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        clip: auto !important;
        clip-path: none !important;
        overflow: visible !important;
        white-space: normal !important;
        border: 0 !important;
        font-size: 12px;
        font-weight: 800;
        line-height: 1.25;
    }

    .v11-content.is-view-person-anlegen .v11-intake-matrix tr[data-team-row] > td:last-child {
        grid-column: 1 / -1;
        margin-top: 2px;
        padding-top: 10px !important;
        border-top: 1px solid #e2e8f0 !important;
    }

    .v11-content.is-view-person-anlegen .v11-intake-matrix tr[data-team-row] > td:last-child::before {
        content: "Spielerprofil";
        display: block;
        margin-bottom: 8px;
        color: #64748b;
        font-size: 11px;
        font-weight: 900;
        letter-spacing: .03em;
        text-transform: uppercase;
    }

    .v11-content.is-view-person-anlegen .v11-intake-player-profile {
        display: grid !important;
        grid-template-columns: minmax(0, 80px) minmax(0, 1fr);
        gap: 8px !important;
        width: 100%;
        max-width: 100%;
        min-width: 0 !important;
    }

    .v11-content.is-view-person-anlegen .v11-intake-player-profile .v11-intake-shirt {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 40px;
        box-sizing: border-box;
    }

    .v11-content.is-view-person-anlegen .v11-intake-player-profile select {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 40px;
        font-size: 13px;
        box-sizing: border-box;
    }

    .v11-content.is-view-person-anlegen .v11-intake-player-profile select:nth-of-type(2),
    .v11-content.is-view-person-anlegen .v11-intake-player-profile details,
    .v11-content.is-view-person-anlegen .v11-intake-player-profile .v11-intake-leadership {
        grid-column: 1 / -1;
    }

    .v11-content.is-view-person-anlegen .v11-intake-player-profile details,
    .v11-content.is-view-person-anlegen .v11-intake-secondary-grid {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .v11-content.is-view-person-anlegen .v11-intake-leadership {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .v11-content.is-view-person-anlegen .v11-intake-leadership label {
        min-width: 0;
        min-height: 40px;
        padding: 8px 10px;
        border: 1px solid #e2e8f0;
        border-radius: 8px;
        background: #f8fafc;
        box-sizing: border-box;
    }

    .v11-content.is-view-person-anlegen .v11-intake-submit-card {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .v11-content.is-view-person-anlegen .v11-intake-submit-card > div {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .v11-content.is-view-person-anlegen .v11-intake-submit-card p {
        overflow-wrap: anywhere;
    }

    .v11-content.is-view-person-anlegen .v11-intake-submit {
        display: block;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 50px;
        white-space: normal !important;
        line-height: 1.25;
        box-sizing: border-box;
    }
}

@media (max-width: 680px) {
    .v11-content.is-view-person-anlegen .v11-intake-radio-row input[type="radio"],
    .v11-content.is-view-person-anlegen .v11-intake-check input[type="checkbox"],
    .v11-content.is-view-person-anlegen .v11-intake-login-switch input[type="checkbox"],
    .v11-content.is-view-person-anlegen .v11-intake-matrix-check input[type="checkbox"],
    .v11-content.is-view-person-anlegen .v11-intake-secondary-grid input[type="checkbox"],
    .v11-content.is-view-person-anlegen .v11-intake-leadership input[type="checkbox"] {
        flex: 0 0 20px;
        width: 20px !important;
        max-width: 20px !important;
        min-width: 20px !important;
        height: 20px !important;
        min-height: 20px !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .v11-content.is-view-person-anlegen .v11-intake-matrix-check .screen-reader-text {
        min-width: 0 !important;
        overflow-wrap: anywhere !important;
        word-break: break-word;
    }
}


/* =========================================================
 * V11 App 0.6.21 – Mobile Navigation / Admin-Bar-Fix
 * Dashboard: keine doppelte Hamburger-Navigation.
 * Unterseiten: Hamburger bleibt als kompakter Rückweg zum Dashboard.
 * ========================================================= */
@media (max-width: 1280px) {
    .v11-global-header.is-dashboard {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .v11-global-header.is-dashboard .v11-header-actions {
        grid-column: 3;
    }

    .v11-mobile-menu {
        right: auto;
        bottom: auto;
        left: 176px;
        width: min(320px, calc(100vw - 188px));
        padding: 8px;
        overflow: visible;
        border: 1px solid var(--v11-line);
        border-top: 0;
        border-radius: 0 0 10px 10px;
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 12px 28px rgba(24, 32, 44, .12);
    }

    .v11-mobile-menu-inner {
        width: 100%;
        margin: 0;
        padding: 0;
    }

    .v11-mobile-dashboard {
        margin: 0;
        min-height: 44px;
        padding: 11px 13px;
    }
}

@media (max-width: 720px) {
    .v11-mobile-menu {
        left: 122px;
        width: min(230px, calc(100vw - 130px));
    }
}


/* =========================================================
 * V11 App 0.6.21 – Mobile-Menü unter WordPress-Adminbar
 * Das Menü ist fixed und muss bei eingeloggten Systemadmins
 * den WordPress-Adminbar-Offset zusätzlich berücksichtigen.
 * ========================================================= */
@media (max-width: 1280px) {
    body.admin-bar .v11-mobile-menu {
        top: calc(var(--v11-header-height) + 32px);
    }
}

@media (max-width: 782px) {
    body.admin-bar .v11-mobile-menu {
        top: calc(var(--v11-header-height) + 46px);
    }
}

/* =========================================================
 * V11 App 0.6.22 – Mobile Spieltag
 * Terminauswahl bleibt innerhalb des Viewports und scrollt horizontal.
 * Spieltagskader wird auf kleinen Displays wirklich umgebrochen.
 * ========================================================= */
@media (max-width: 700px) {
    .v11-content.is-view-spieltag,
    .v11-content.is-view-spieltag .v11-md-page,
    .v11-content.is-view-spieltag .v11-mdp,
    .v11-content.is-view-spieltag .v11-mdp-form,
    .v11-content.is-view-spieltag .v11-mdp-team,
    .v11-content.is-view-spieltag .v11-mdp-list,
    .v11-content.is-view-spieltag .v11-mdp-player,
    .v11-content.is-view-spieltag .v11-mdp-savebar,
    .v11-content.is-view-spieltag .v11-mdp-start {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box;
    }

    .v11-content.is-view-spieltag {
        overflow-x: hidden;
    }

    .v11-content.is-view-spieltag .v11-md-page {
        overflow-x: hidden;
    }

    .v11-content.is-view-spieltag .v11-md-match-tabs {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 10px 0 14px !important;
        padding: 0 0 6px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-snap-type: x proximity;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        box-sizing: border-box;
    }

    .v11-content.is-view-spieltag .v11-md-match-tabs::-webkit-scrollbar {
        display: none;
    }

    .v11-content.is-view-spieltag .v11-md-match-tabs > * {
        flex: 0 0 124px !important;
        min-width: 124px !important;
        max-width: 124px !important;
        scroll-snap-align: start;
        box-sizing: border-box;
    }

    .v11-content.is-view-spieltag .v11-md-match-tabs > * > a,
    .v11-content.is-view-spieltag .v11-md-match-tabs > a,
    .v11-content.is-view-spieltag .v11-md-match-tabs > button,
    .v11-content.is-view-spieltag .v11-md-match-tabs > * > button {
        display: block;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box;
    }

    .v11-content.is-view-spieltag .v11-mdp {
        gap: 14px !important;
        margin: 12px 0 16px !important;
        padding: 14px !important;
    }

    .v11-content.is-view-spieltag .v11-mdp-head {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
    }

    .v11-content.is-view-spieltag .v11-mdp-status {
        justify-self: start;
    }

    .v11-content.is-view-spieltag .v11-mdp-steps {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 6px !important;
    }

    .v11-content.is-view-spieltag .v11-mdp-steps > div {
        display: grid !important;
        justify-items: center;
        align-content: start;
        gap: 5px !important;
        min-width: 0;
        padding: 8px 5px !important;
        text-align: center;
        line-height: 1.15;
    }

    .v11-content.is-view-spieltag .v11-mdp-steps span {
        overflow-wrap: anywhere;
    }

    .v11-content.is-view-spieltag .v11-mdp-side-statuses {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .v11-content.is-view-spieltag .v11-mdp-side-status {
        min-width: 0;
        grid-template-columns: minmax(0, 1fr) auto !important;
    }

    .v11-content.is-view-spieltag .v11-mdp-team-head {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 7px !important;
        margin-bottom: 10px !important;
    }

    .v11-content.is-view-spieltag .v11-mdp-team-head p {
        width: 100%;
        max-width: 100% !important;
        text-align: left !important;
        overflow-wrap: anywhere;
    }

    .v11-content.is-view-spieltag .v11-mdp-player {
        display: grid !important;
        grid-template-columns: 82px minmax(0, 1fr) !important;
        gap: 9px !important;
        align-items: end !important;
        padding: 11px !important;
    }

    .v11-content.is-view-spieltag .v11-mdp-person {
        grid-column: 1 / -1 !important;
        min-width: 0;
    }

    .v11-content.is-view-spieltag .v11-mdp-person b,
    .v11-content.is-view-spieltag .v11-mdp-person small {
        overflow-wrap: anywhere;
    }

    .v11-content.is-view-spieltag .v11-mdp-player > label {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box;
    }

    .v11-content.is-view-spieltag .v11-mdp-player > label:nth-of-type(1) {
        grid-column: 1 / -1 !important;
    }

    .v11-content.is-view-spieltag .v11-mdp-player > label:nth-of-type(2) {
        grid-column: 1 !important;
    }

    .v11-content.is-view-spieltag .v11-mdp-player > label:nth-of-type(3) {
        grid-column: 2 !important;
    }

    .v11-content.is-view-spieltag .v11-mdp-player select,
    .v11-content.is-view-spieltag .v11-mdp-player input[type="number"] {
        display: block;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 42px !important;
        font-size: 14px;
        box-sizing: border-box;
    }

    .v11-content.is-view-spieltag .v11-mdp-check {
        display: flex !important;
        grid-column: auto !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
        min-width: 0 !important;
        min-height: 44px !important;
        padding: 8px 10px;
        border: 1px solid #dbeafe;
        border-radius: 8px;
        background: #f8fbff;
        box-sizing: border-box;
    }

    .v11-content.is-view-spieltag .v11-mdp-check input[type="checkbox"] {
        flex: 0 0 20px;
        width: 20px !important;
        max-width: 20px !important;
        min-width: 20px !important;
        height: 20px !important;
        min-height: 20px !important;
        margin: 0 !important;
    }

    .v11-content.is-view-spieltag .v11-mdp-check > span {
        font-size: 12px !important;
        color: #334155 !important;
    }

    .v11-content.is-view-spieltag .v11-mdp-savebar,
    .v11-content.is-view-spieltag .v11-mdp-start {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 11px !important;
        align-items: stretch !important;
        padding: 13px !important;
    }

    .v11-content.is-view-spieltag .v11-mdp-savebar > div,
    .v11-content.is-view-spieltag .v11-mdp-start > div,
    .v11-content.is-view-spieltag .v11-mdp-start form {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box;
    }

    .v11-content.is-view-spieltag .v11-mdp-savebar button,
    .v11-content.is-view-spieltag .v11-mdp-start button,
    .v11-content.is-view-spieltag .v11-mdp-start a {
        display: flex !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 46px !important;
        white-space: normal !important;
        text-align: center;
        line-height: 1.2;
        box-sizing: border-box;
    }
}

@media (max-width: 390px) {
    .v11-content.is-view-spieltag .v11-mdp {
        padding: 12px !important;
    }

    .v11-content.is-view-spieltag .v11-md-match-tabs > * {
        flex-basis: 116px !important;
        min-width: 116px !important;
        max-width: 116px !important;
    }

    .v11-content.is-view-spieltag .v11-mdp-player {
        grid-template-columns: 74px minmax(0, 1fr) !important;
    }
}

/* =========================================================
 * V11 App 0.6.23 – Mobile Spieltag: Terminkacheln als Grid
 * Alle sichtbaren Spiele bleiben auf Mobile gleichzeitig erreichbar.
 * Kein angeschnittener horizontaler Slider mehr.
 * ========================================================= */
@media (max-width: 700px) {
    .v11-content.is-view-spieltag .v11-md-match-tabs {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 7px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 10px 0 14px !important;
        padding: 0 !important;
        overflow: visible !important;
        scroll-snap-type: none !important;
        box-sizing: border-box;
    }

    .v11-content.is-view-spieltag .v11-md-match-tabs > * {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        flex: none !important;
        box-sizing: border-box;
    }

    .v11-content.is-view-spieltag .v11-md-match-tabs > * > a,
    .v11-content.is-view-spieltag .v11-md-match-tabs > a,
    .v11-content.is-view-spieltag .v11-md-match-tabs > button,
    .v11-content.is-view-spieltag .v11-md-match-tabs > * > button {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: 100% !important;
        min-height: 54px !important;
        padding-left: 9px !important;
        padding-right: 9px !important;
        white-space: normal !important;
        overflow-wrap: anywhere;
        box-sizing: border-box;
    }
}

@media (max-width: 340px) {
    .v11-content.is-view-spieltag .v11-md-match-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* =========================================================
 * V11 App 0.6.24 – Mobile Live-Cockpit
 * Für Bedienung direkt am Spielfeld: große Ziele, wenig Suchen,
 * Spielstand/Uhr kompakt und Live-Erfassung direkt nach dem Spielkopf.
 * Fachlogik bleibt vollständig in V11 022.
 * ========================================================= */
@media (max-width: 700px) {
    .v11-content.is-view-spiel,
    .v11-content.is-view-spiel .v11-mv-wrap,
    .v11-content.is-view-spiel .v11-mv-hero,
    .v11-content.is-view-spiel .v11-mv-panel,
    .v11-content.is-view-spiel .v11-mv-live-box,
    .v11-content.is-view-spiel .v11-mv-live-form,
    .v11-content.is-view-spiel .v11-mv-more-event-form {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box;
    }

    .v11-content.is-view-spiel .v11-mv-wrap {
        gap: 12px !important;
    }

    .v11-content.is-view-spiel .v11-mv-hero {
        padding: 13px 14px 15px !important;
        border-radius: 14px !important;
    }

    .v11-content.is-view-spiel .v11-mv-meta-top,
    .v11-content.is-view-spiel .v11-mv-location-line {
        gap: 6px !important;
        font-size: 10px !important;
    }

    .v11-content.is-view-spiel .v11-mv-meta-top {
        flex-direction: row !important;
        align-items: center !important;
    }

    .v11-content.is-view-spiel .v11-mv-meta-pills {
        gap: 5px !important;
    }

    .v11-content.is-view-spiel .v11-mv-meta-pills span {
        padding: 4px 7px !important;
        font-size: 9px !important;
    }

    .v11-content.is-view-spiel .v11-mv-scoreboard {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 15px 0 12px !important;
        text-align: center !important;
    }

    .v11-content.is-view-spiel .v11-mv-team,
    .v11-content.is-view-spiel .v11-mv-team-away {
        display: grid !important;
        grid-template-columns: 1fr !important;
        justify-items: center !important;
        align-content: center !important;
        gap: 5px !important;
        min-width: 0 !important;
        text-align: center !important;
    }

    .v11-content.is-view-spiel .v11-mv-team-logo {
        width: 44px !important;
        height: 44px !important;
        flex: 0 0 44px !important;
        border-radius: 11px !important;
    }

    .v11-content.is-view-spiel .v11-mv-team-logo span {
        font-size: 22px !important;
    }

    .v11-content.is-view-spiel .v11-mv-team-kicker {
        font-size: 8px !important;
    }

    .v11-content.is-view-spiel .v11-mv-team h2 {
        display: -webkit-box;
        max-width: 100%;
        margin: 1px 0 0 !important;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        font-size: 12px !important;
        line-height: 1.15 !important;
        overflow-wrap: anywhere;
    }

    .v11-content.is-view-spiel .v11-mv-score {
        display: grid !important;
        justify-items: center !important;
        gap: 7px !important;
        min-width: 88px;
    }

    .v11-content.is-view-spiel .v11-mv-score strong {
        gap: 7px !important;
        font-size: 36px !important;
    }

    .v11-content.is-view-spiel .v11-mv-clock,
    .v11-content.is-view-spiel .v11-mv-clock.is-break {
        min-width: 90px !important;
        padding: 6px 8px !important;
        border-radius: 9px !important;
    }

    .v11-content.is-view-spiel .v11-mv-clock > span {
        font-size: 8px !important;
    }

    .v11-content.is-view-spiel .v11-mv-clock b,
    .v11-content.is-view-spiel .v11-mv-clock.is-break b {
        font-size: 18px !important;
    }

    .v11-content.is-view-spiel .v11-mv-clock small {
        font-size: 7px !important;
    }

    .v11-content.is-view-spiel .v11-mv-match-actions {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: stretch !important;
        gap: 7px !important;
        margin-top: 10px !important;
    }

    .v11-content.is-view-spiel .v11-mv-match-actions > form,
    .v11-content.is-view-spiel .v11-mv-clock-control.is-prominent,
    .v11-content.is-view-spiel .v11-mv-finish-form {
        margin: 0 !important;
    }

    .v11-content.is-view-spiel .v11-mv-clock-control.is-prominent button {
        width: 100% !important;
        min-height: 46px !important;
        padding: 8px 10px !important;
        white-space: normal !important;
        line-height: 1.15 !important;
    }

    .v11-content.is-view-spiel .v11-mv-finish-action {
        min-height: 46px !important;
        padding: 8px 11px !important;
        border: 1px solid #fecaca !important;
        background: #fff !important;
        color: #991b1b !important;
        font-size: 11px !important;
        line-height: 1.15 !important;
    }

    .v11-content.is-view-spiel .v11-mv-live-box {
        padding: 13px !important;
        border: 2px solid #bfdbfe !important;
        border-radius: 14px !important;
        box-shadow: 0 7px 22px rgba(37,99,235,.09) !important;
    }

    .v11-content.is-view-spiel .v11-mv-live-head {
        display: block !important;
    }

    .v11-content.is-view-spiel .v11-mv-live-head > div > span {
        color: #2563eb !important;
        font-size: 9px !important;
    }

    .v11-content.is-view-spiel .v11-mv-live-head h2 {
        margin: 2px 0 0 !important;
        font-size: 19px !important;
    }

    .v11-content.is-view-spiel .v11-mv-live-head p {
        display: none !important;
    }

    .v11-content.is-view-spiel .v11-mv-live-actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        margin-top: 11px !important;
    }

    .v11-content.is-view-spiel .v11-mv-live-actions button {
        position: relative;
        display: grid !important;
        grid-template-columns: auto 1fr !important;
        align-items: center !important;
        justify-items: start !important;
        gap: 8px !important;
        min-width: 0 !important;
        min-height: 70px !important;
        padding: 10px 12px !important;
        border-width: 2px !important;
        border-radius: 12px !important;
        background: #f8fafc !important;
        color: #0f172a !important;
        font-size: 14px !important;
        font-weight: 900 !important;
        letter-spacing: .02em !important;
        text-align: left !important;
        touch-action: manipulation;
    }

    .v11-content.is-view-spiel .v11-mv-live-actions button::before {
        display: grid;
        place-items: center;
        width: 32px;
        height: 32px;
        border-radius: 9px;
        background: #fff;
        font-size: 20px;
        line-height: 1;
        content: '•';
    }

    .v11-content.is-view-spiel .v11-mv-live-actions button[data-v11-live-open="goal"]::before { content: '⚽'; }
    .v11-content.is-view-spiel .v11-mv-live-actions button[data-v11-live-open="substitution"]::before { content: '↕'; }
    .v11-content.is-view-spiel .v11-mv-live-actions button[data-v11-live-open="card"]::before { content: '🟨'; }
    .v11-content.is-view-spiel .v11-mv-live-actions button[data-v11-live-open="more"]::before { content: '•••'; font-size: 12px; }

    .v11-content.is-view-spiel .v11-mv-live-actions button.is-active {
        border-color: #2563eb !important;
        background: #eff6ff !important;
        color: #1d4ed8 !important;
        box-shadow: 0 0 0 2px rgba(37,99,235,.08) !important;
    }

    .v11-content.is-view-spiel .v11-mv-live-form {
        margin-top: 12px !important;
        padding-top: 12px !important;
    }

    .v11-content.is-view-spiel .v11-mv-live-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
    }

    .v11-content.is-view-spiel .v11-mv-live-grid label,
    .v11-content.is-view-spiel .v11-mv-live-grid .is-wide {
        grid-column: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box;
    }

    .v11-content.is-view-spiel .v11-mv-live-grid label > span {
        font-size: 12px !important;
        color: #334155 !important;
    }

    .v11-content.is-view-spiel .v11-mv-live-grid input,
    .v11-content.is-view-spiel .v11-mv-live-grid select {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 50px !important;
        padding: 9px 10px !important;
        font-size: 16px !important;
        box-sizing: border-box;
    }

    .v11-content.is-view-spiel .v11-mobile-native-select {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        min-width: 1px !important;
        min-height: 1px !important;
        margin: -1px !important;
        padding: 0 !important;
        overflow: hidden !important;
        clip: rect(0 0 0 0) !important;
        clip-path: inset(50%) !important;
        border: 0 !important;
        white-space: nowrap !important;
    }

    .v11-content.is-view-spiel .v11-mobile-choice-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
        width: 100%;
        min-width: 0;
    }

    .v11-content.is-view-spiel .v11-mobile-choice-grid.is-three {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .v11-content.is-view-spiel .v11-mobile-choice-grid button {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-width: 0;
        min-height: 48px;
        padding: 8px 7px;
        border: 1px solid #cbd5e1;
        border-radius: 9px;
        background: #fff;
        color: #0f172a;
        font: inherit;
        font-size: 13px;
        font-weight: 800;
        line-height: 1.15;
        text-align: center;
        overflow-wrap: anywhere;
        cursor: pointer;
        touch-action: manipulation;
    }

    .v11-content.is-view-spiel .v11-mobile-choice-grid.is-players button {
        justify-content: flex-start;
        min-height: 54px;
        padding: 8px 10px;
        text-align: left;
    }

    .v11-content.is-view-spiel .v11-mobile-choice-grid button.is-selected {
        border-color: #2563eb;
        background: #dbeafe;
        color: #1e3a8a;
        box-shadow: inset 0 0 0 1px #2563eb;
    }

    .v11-content.is-view-spiel .v11-mobile-choice-grid.is-invalid {
        padding: 4px;
        border: 2px solid #dc2626;
        border-radius: 11px;
        background: #fef2f2;
    }

    .v11-content.is-view-spiel .v11-mobile-auto-minute {
        display: none !important;
    }

    .v11-content.is-view-spiel .v11-mobile-minute-chip {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        margin: 0 0 9px;
        padding: 6px 9px;
        border-radius: 999px;
        background: #eff6ff;
        color: #1d4ed8;
        font-size: 11px;
        font-weight: 900;
    }

    .v11-content.is-view-spiel .v11-mv-save-action {
        position: sticky;
        bottom: 8px;
        z-index: 15;
        display: flex !important;
        width: 100% !important;
        min-height: 56px !important;
        margin-top: 12px !important;
        padding: 10px 14px !important;
        border-radius: 11px !important;
        background: #2563eb !important;
        color: #fff !important;
        font-size: 16px !important;
        font-weight: 900 !important;
        box-shadow: 0 6px 18px rgba(37,99,235,.26) !important;
    }

    .v11-content.is-view-spiel .v11-mv-interrupt-form {
        gap: 8px !important;
        margin-bottom: 12px !important;
        padding: 10px !important;
        border: 1px solid #fed7aa;
        border-radius: 10px;
        background: #fff7ed;
    }

    .v11-content.is-view-spiel .v11-mv-interrupt-form button {
        min-height: 46px !important;
    }

    .v11-content.is-view-spiel .v11-mv-timeline-manage {
        gap: 8px !important;
    }

    .v11-content.is-view-spiel .v11-mv-event-edit,
    .v11-content.is-view-spiel .v11-mv-event-delete button {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 40px !important;
        padding: 8px 10px !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 8px !important;
        background: #fff !important;
        font-size: 11px !important;
    }
}

@media (max-width: 370px) {
    .v11-content.is-view-spiel .v11-mv-scoreboard {
        gap: 5px !important;
    }

    .v11-content.is-view-spiel .v11-mv-team-logo {
        width: 40px !important;
        height: 40px !important;
        flex-basis: 40px !important;
    }

    .v11-content.is-view-spiel .v11-mv-score strong {
        font-size: 32px !important;
    }

    .v11-content.is-view-spiel .v11-mobile-choice-grid.is-three {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


/* =========================================================
 * V11 App 0.6.25 – Personenpicker: bestehende Auswahl kompakt
 * Ist bereits eine V11-Person gewählt, verschwindet das leere
 * Suchfeld. Nach Klick auf × erscheint die Suche wieder.
 * ========================================================= */
.v11-content.is-view-person-anlegen .v11-intake-person-picker:has([data-person-selected]:not([hidden])) > label {
    display: none;
}

/* =========================================================
 * V11 App 0.6.26 – Beziehungen: nicht bedienbare Scope-Zeilen ausblenden
 * Beziehungen außerhalb des sichtbaren Vereinsbereichs bleiben in der DB
 * unverändert erhalten, erscheinen aber nicht mehr als tote Formularzeile.
 * ========================================================= */
.v11-content.is-view-person-anlegen .v11-087-contacts > .v11-087-contact-group:first-child .v11-087-contact-item.is-locked {
    display: none !important;
}

/* =========================================================
 * V11 App 0.6.27 – Beziehungen verständlich beschriften
 * Die eigentliche Umschreibung der Auswahltexte erfolgt in v11-app.js.
 * Werte und Speicherrichtung bleiben unverändert.
 * ========================================================= */

/* V11 App 0.6.28 – Beziehungsdropdown: Observer-Schleife beseitigt. */


/* =========================================================
 * V11 App 0.6.29 – Beziehungsdropdown stabil
 * Keine dynamischen Änderungen mehr an nativen <option>-Texten.
 * Erklärung stattdessen als ruhige Vorschau unter dem Feld.
 * ========================================================= */
.v11-content.is-view-person-anlegen .v11-relation-preview {
    display: block;
    margin-top: 6px;
    color: #64748b;
    font-size: 11px;
    line-height: 1.35;
}


/* =========================================================
 * V11 App 0.6.30 – Beziehungen: logischer eigener Auswahlpicker
 * Das native Select bleibt nur als Speicherkern bestehen.
 * Sichtbar sind vollständige Aussagen mit beiden Personennamen.
 * ========================================================= */
.v11-content.is-view-person-anlegen .v11-relation-native {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.v11-content.is-view-person-anlegen .v11-relation-chooser {
    position: relative;
    width: 100%;
}

.v11-content.is-view-person-anlegen .v11-relation-trigger {
    width: 100%;
    min-height: 40px;
    padding: 8px 34px 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    background: #fff;
    color: #0f172a;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.v11-content.is-view-person-anlegen .v11-relation-trigger::after {
    position: absolute;
    top: 50%;
    right: 12px;
    content: "⌄";
    color: #64748b;
    transform: translateY(-55%);
}

.v11-content.is-view-person-anlegen .v11-relation-panel {
    display: none;
    position: absolute;
    top: calc(100% + 5px);
    left: 0;
    z-index: 120;
    width: 100%;
    max-height: 320px;
    overflow-y: auto;
    padding: 5px;
    border: 1px solid #cbd5e1;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(15,23,42,.16);
}

.v11-content.is-view-person-anlegen .v11-relation-chooser.is-open .v11-relation-panel {
    display: grid;
    gap: 3px;
}

.v11-content.is-view-person-anlegen .v11-relation-choice {
    display: block;
    width: 100%;
    min-height: 38px;
    padding: 8px 10px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #0f172a;
    font: inherit;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
}

.v11-content.is-view-person-anlegen .v11-relation-choice:hover,
.v11-content.is-view-person-anlegen .v11-relation-choice:focus {
    background: #f1f5f9;
}

.v11-content.is-view-person-anlegen .v11-relation-choice.is-active {
    background: #dbeafe;
    color: #1d4ed8;
    font-weight: 800;
}

@media (max-width: 680px) {
    .v11-content.is-view-person-anlegen .v11-relation-trigger,
    .v11-content.is-view-person-anlegen .v11-relation-choice {
        min-height: 44px;
        font-size: 14px;
    }

    .v11-content.is-view-person-anlegen .v11-relation-panel {
        max-height: 55vh;
    }
}


/* =========================================================
 * V11 App 0.6.32 – Spieltag: gespeicherten Kader einklappen
 * Nach erfolgreichem Speichern verschwindet die lange Kaderliste.
 * Der Spielstart bleibt direkt erreichbar; Bearbeiten öffnet sie wieder.
 * ========================================================= */
.v11-mdp-form.is-collapsed {
    display: none !important;
}

.v11-mdp-saved-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border: 1px solid #bbf7d0;
    border-radius: 11px;
    background: #f0fdf4;
}

.v11-mdp-saved-summary > div {
    display: grid;
    gap: 2px;
}

.v11-mdp-saved-summary strong {
    color: #166534;
    font-size: 14px;
}

.v11-mdp-saved-summary span {
    color: #64748b;
    font-size: 12px;
    line-height: 1.4;
}

.v11-mdp-saved-summary button {
    flex: 0 0 auto;
    min-height: 40px;
    padding: 9px 14px;
    border: 1px solid #86efac;
    border-radius: 9px;
    background: #fff;
    color: #166534;
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

.v11-mdp-saved-summary button:hover,
.v11-mdp-saved-summary button:focus {
    background: #dcfce7;
}

@media (max-width: 680px) {
    .v11-mdp-saved-summary {
        align-items: stretch;
        flex-direction: column;
    }

    .v11-mdp-saved-summary button {
        width: 100%;
        min-height: 44px;
    }
}


/* V11 0.6.36 – Komplett bearbeiten: schwebender Speichern-Button */
.v11-person-sticky-save {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 9500;
    padding: 8px;
    border: 1px solid rgba(37,99,235,.18);
    border-radius: 14px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 12px 35px rgba(15,23,42,.18);
    backdrop-filter: blur(8px);
}

.v11-person-sticky-save[hidden] {
    display: none;
}

.v11-person-sticky-save-button {
    min-height: 46px;
    padding: 11px 18px;
    border: 0;
    border-radius: 10px;
    background: #2563eb;
    color: #fff;
    font: inherit;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.v11-person-sticky-save-button:hover,
.v11-person-sticky-save-button:focus {
    background: #1d4ed8;
}

.v11-person-sticky-save-button:disabled {
    cursor: wait;
    opacity: .7;
}

@media (max-width: 700px) {
    .v11-person-sticky-save {
        right: 10px;
        bottom: 10px;
        left: 10px;
    }

    .v11-person-sticky-save-button {
        width: 100%;
        min-height: 50px;
    }
}


/* ---------------------------------------------------------
 * 0.6.43 – Kontextnavigation: geöffnete Gruppe beim Unterpunktwechsel einmalig beibehalten
 * --------------------------------------------------------- */
.v11-context-sections {
    display: grid;
    gap: 6px;
}

.v11-context-section {
    overflow: hidden;
    border: 1px solid #e3e7ed;
    border-radius: 8px;
    background: #fff;
}

.v11-context-section > summary {
    position: relative;
    display: flex;
    min-height: 38px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 10px 9px 12px;
    color: #475467;
    font-size: 12px;
    font-weight: 760;
    line-height: 1.3;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.v11-context-section > summary::-webkit-details-marker {
    display: none;
}

.v11-context-section > summary:hover,
.v11-context-section > summary:focus-visible {
    color: var(--v11-ink);
    background: #f8fafc;
}

.v11-context-section-chevron {
    position: relative;
    flex: 0 0 12px;
    width: 12px;
    height: 12px;
}

.v11-context-section-chevron::before,
.v11-context-section-chevron::after {
    content: '';
    position: absolute;
    top: 5px;
    width: 6px;
    height: 1.5px;
    border-radius: 2px;
    background: #98a2b3;
    transition: transform .16s ease;
}

.v11-context-section-chevron::before {
    left: 0;
    transform: rotate(45deg);
}

.v11-context-section-chevron::after {
    right: 0;
    transform: rotate(-45deg);
}

.v11-context-section[open] .v11-context-section-chevron::before {
    transform: rotate(-45deg);
}

.v11-context-section[open] .v11-context-section-chevron::after {
    transform: rotate(45deg);
}

.v11-context-section-links {
    display: grid;
    gap: 1px;
    padding: 2px 5px 6px;
    border-top: 1px solid #edf0f3;
}

.v11-context-nav a.v11-context-link {
    position: relative;
    display: block;
    padding: 8px 9px 8px 12px;
    border-radius: 5px;
    color: #586174 !important;
    font-size: 12px;
    font-weight: 640;
    line-height: 1.3;
    transition: color .15s ease, background .15s ease;
}

.v11-context-nav a.v11-context-link:hover,
.v11-context-nav a.v11-context-link:focus-visible {
    color: var(--v11-ink) !important;
    background: #eef1f4;
}

.v11-context-nav a.v11-context-link.is-active {
    color: var(--v11-accent) !important;
    background: #eaf0f7;
    font-weight: 760;
}

.v11-context-nav a.v11-context-link.is-active::before {
    content: '';
    position: absolute;
    top: 7px;
    bottom: 7px;
    left: 0;
    width: 2px;
    border-radius: 2px;
    background: var(--v11-accent);
}

.v11-context-section.is-active > summary {
    color: var(--v11-brand);
    background: #f5f8fc;
}


/* =========================================================
 * 0.6.42 – Materialausgabe: Inventar-Button sichtbarer
 * =======================================================*/
.v11-material-actions {
    display:flex;
    justify-content:flex-end;
    margin:0 0 12px;
}

.v11-material-actions .inventory-link {
    align-items:center;
    background:#2563eb;
    border:1px solid #2563eb;
    border-radius:12px;
    box-shadow:0 6px 18px rgba(37,99,235,.18);
    color:#fff !important;
    display:inline-flex;
    font-size:14px;
    font-weight:700;
    gap:8px;
    line-height:1;
    min-height:44px;
    padding:0 18px;
    text-decoration:none;
    transition:background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.v11-material-actions .inventory-link:hover,
.v11-material-actions .inventory-link:focus {
    background:#1d4ed8;
    border-color:#1d4ed8;
    box-shadow:0 10px 24px rgba(37,99,235,.24);
    color:#fff !important;
    text-decoration:none;
}

@media(max-width:640px) {
    .v11-material-actions {
        justify-content:stretch;
    }

    .v11-material-actions .inventory-link {
        justify-content:center;
        width:100%;
    }
}

/* V11 0.6.44 – Personenakte: Aktionsbuttons klar als Primäraktionen darstellen */
.v11-peoplefront-detail-actions > a,
.v11-peoplefront-detail-actions > button {
    background:#3157e8 !important;
    border:1px solid #3157e8 !important;
    color:#fff !important;
    box-shadow:none;
}

.v11-peoplefront-detail-actions > a:hover,
.v11-peoplefront-detail-actions > a:focus,
.v11-peoplefront-detail-actions > button:hover,
.v11-peoplefront-detail-actions > button:focus {
    background:#1d4ed8 !important;
    border-color:#1d4ed8 !important;
    color:#fff !important;
    text-decoration:none;
}

.v11-peoplefront-section-head .v11-peoplefront-coming {
    align-items:center;
    background:#3157e8 !important;
    border:1px solid #3157e8;
    border-radius:8px;
    color:#fff !important;
    display:inline-flex;
    font-size:12px;
    font-weight:800;
    min-height:38px;
    padding:8px 12px;
    text-decoration:none;
}

.v11-peoplefront-section-head .v11-peoplefront-coming:hover,
.v11-peoplefront-section-head .v11-peoplefront-coming:focus {
    background:#1d4ed8 !important;
    border-color:#1d4ed8;
    color:#fff !important;
    text-decoration:none;
}

/* V11 0.6.45 – Termin-Zentrale: klickbare Aktionen klar als Primärbuttons */
.v11-eh .v11-eh-card > span,
.v11-eh .v11-eh-card p a,
.v11-eh .v11-eh-card a:not(.v11-eh-card),
.v11-eh .v11-eh-section-head a {
    align-items: center;
    background: #3157e8 !important;
    border: 1px solid #3157e8 !important;
    border-radius: 8px;
    color: #ffffff !important;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    justify-content: center;
    line-height: 1.1;
    min-height: 34px;
    padding: 0 12px;
    text-decoration: none !important;
    width: max-content;
}

.v11-eh .v11-eh-card > span {
    align-self: end;
}

.v11-eh .v11-eh-card p a,
.v11-eh .v11-eh-card a:not(.v11-eh-card) {
    margin-top: 8px;
}

.v11-eh .v11-eh-card > span:hover,
.v11-eh .v11-eh-card > span:focus,
.v11-eh .v11-eh-card p a:hover,
.v11-eh .v11-eh-card p a:focus,
.v11-eh .v11-eh-card a:not(.v11-eh-card):hover,
.v11-eh .v11-eh-card a:not(.v11-eh-card):focus,
.v11-eh .v11-eh-section-head a:hover,
.v11-eh .v11-eh-section-head a:focus {
    background: #1d4ed8 !important;
    border-color: #1d4ed8 !important;
    color: #ffffff !important;
    text-decoration: none !important;
}


/* =========================================================
 * 0.6.46 – Abwesenheiten & Gastspieler auf Kaderplanungs-Linie
 * - gleiche helle Flächen-/Kartenlogik wie die übrigen Seiten
 * - Primär- und Listenaktionen konsequent blau mit weisser Schrift
 * - Formular-Buttons mit sauberem Abstand unter den Feldern
 * ========================================================= */
.v11-content.is-view-abwesenheiten {
    background: var(--v11-bg);
}

.v11-content.is-view-abwesenheiten .v11-av-card,
.v11-content.is-view-abwesenheiten .v11-av-admin-panel {
    padding: 17px;
    border: 1px solid var(--v11-line);
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 2px 7px rgba(15,23,42,.03);
}

.v11-content.is-view-abwesenheiten .v11-av-card-head h2 {
    margin: 2px 0 0;
    font-size: var(--v11-font-card-title, 22px);
}

.v11-content.is-view-abwesenheiten .v11-av-card-head p,
.v11-content.is-view-abwesenheiten .v11-av-muted,
.v11-content.is-view-abwesenheiten .v11-av-row span,
.v11-content.is-view-abwesenheiten .v11-av-row small,
.v11-content.is-view-abwesenheiten .v11-av-form small {
    color: var(--v11-muted);
}

.v11-content.is-view-abwesenheiten .v11-av-form label {
    color: #334155;
    font-size: var(--v11-font-form-label, 13px);
    font-weight: 900;
}

.v11-content.is-view-abwesenheiten .v11-av-form input,
.v11-content.is-view-abwesenheiten .v11-av-form select,
.v11-content.is-view-abwesenheiten .v11-av-form textarea {
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    color: #0f172a;
    font: inherit;
}

.v11-content.is-view-abwesenheiten .v11-av-form input,
.v11-content.is-view-abwesenheiten .v11-av-form select {
    min-height: 40px;
    padding: 7px 8px;
}

.v11-content.is-view-abwesenheiten .v11-av-form textarea {
    min-height: 78px;
    padding: 9px 10px;
}

.v11-content.is-view-abwesenheiten .v11-av-actions {
    margin-top: 14px;
}

.v11-content.is-view-abwesenheiten .v11-av-actions .v11-button,
.v11-content.is-view-abwesenheiten .v11-av-actions .v11-button-primary,
.v11-content.is-view-abwesenheiten .v11-av-actions button[type="submit"],
.v11-content.is-view-abwesenheiten .v11-av-row-actions .v11-button,
.v11-content.is-view-abwesenheiten .v11-av-row-actions button[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 8px 14px;
    border: 0;
    border-radius: 8px;
    background: #1d4ed8;
    color: #fff !important;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.2;
    box-shadow: none;
    cursor: pointer;
}

.v11-content.is-view-abwesenheiten .v11-av-actions .v11-button:hover,
.v11-content.is-view-abwesenheiten .v11-av-actions .v11-button-primary:hover,
.v11-content.is-view-abwesenheiten .v11-av-actions button[type="submit"]:hover,
.v11-content.is-view-abwesenheiten .v11-av-row-actions .v11-button:hover,
.v11-content.is-view-abwesenheiten .v11-av-row-actions button[type="submit"]:hover,
.v11-content.is-view-abwesenheiten .v11-av-actions .v11-button:focus,
.v11-content.is-view-abwesenheiten .v11-av-actions .v11-button-primary:focus,
.v11-content.is-view-abwesenheiten .v11-av-actions button[type="submit"]:focus,
.v11-content.is-view-abwesenheiten .v11-av-row-actions .v11-button:focus,
.v11-content.is-view-abwesenheiten .v11-av-row-actions button[type="submit"]:focus {
    background: #1e40af;
    color: #fff !important;
}

.v11-content.is-view-abwesenheiten .v11-av-row {
    padding: 13px 14px;
    border: 1px solid var(--v11-line);
    border-radius: 10px;
    background: #fff;
}

.v11-content.is-view-abwesenheiten .v11-av-badge {
    background: #eff6ff;
    color: #1d4ed8;
}

@media (max-width: 900px) {
    .v11-content.is-view-abwesenheiten .v11-av-card,
    .v11-content.is-view-abwesenheiten .v11-av-admin-panel {
        padding: 16px;
    }

    .v11-content.is-view-abwesenheiten .v11-av-actions .v11-button,
    .v11-content.is-view-abwesenheiten .v11-av-actions .v11-button-primary,
    .v11-content.is-view-abwesenheiten .v11-av-actions button[type="submit"] {
        width: 100%;
    }
}


/* =========================================================
 * 0.6.47 – Abwesenheiten: Buttonfarbe + vertikale Ausrichtung
 * ========================================================= */
.v11-content.is-view-abwesenheiten .v11-av-front-grid {
    align-items: stretch;
}

.v11-content.is-view-abwesenheiten .v11-av-front-grid > .v11-av-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.v11-content.is-view-abwesenheiten .v11-av-front-grid > .v11-av-card > .v11-av-form {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
}

.v11-content.is-view-abwesenheiten .v11-av-front-grid > .v11-av-card > .v11-av-form > button[type="submit"] {
    align-self: flex-start;
    margin-top: auto;
    padding-top: 8px;
    background: #1d4ed8 !important;
    border: 0 !important;
    color: #fff !important;
}

.v11-content.is-view-abwesenheiten .v11-av-front-grid > .v11-av-card > .v11-av-form > textarea + button[type="submit"] {
    margin-top: 18px;
}

.v11-content.is-view-abwesenheiten .v11-av-row-actions .v11-button,
.v11-content.is-view-abwesenheiten .v11-av-row-actions button[type="submit"] {
    background: #1d4ed8 !important;
    color: #fff !important;
}

.v11-content.is-view-abwesenheiten .v11-av-front-grid > .v11-av-card > .v11-av-form > button[type="submit"]:hover,
.v11-content.is-view-abwesenheiten .v11-av-front-grid > .v11-av-card > .v11-av-form > button[type="submit"]:focus,
.v11-content.is-view-abwesenheiten .v11-av-row-actions .v11-button:hover,
.v11-content.is-view-abwesenheiten .v11-av-row-actions .v11-button:focus,
.v11-content.is-view-abwesenheiten .v11-av-row-actions button[type="submit"]:hover,
.v11-content.is-view-abwesenheiten .v11-av-row-actions button[type="submit"]:focus {
    background: #1e40af !important;
    color: #fff !important;
}

@media (max-width: 900px) {
    .v11-content.is-view-abwesenheiten .v11-av-front-grid > .v11-av-card > .v11-av-form > button[type="submit"] {
        width: 100%;
    }
}


/* ---------------------------------------------------------
 * 0.6.48 – Kontextnavigation dauerhaft offen
 * Überschriften sind statisch und dunkler; nur der aktive Unterpunkt
 * erhält die farbliche Hervorhebung.
 * --------------------------------------------------------- */
.v11-context-sections {
    display:grid;
    gap:8px;
}

.v11-context-section {
    overflow:hidden;
    border:1px solid #e3e7ed;
    border-radius:8px;
    background:#fff;
}

.v11-context-section-title {
    display:flex;
    min-height:38px;
    align-items:center;
    padding:9px 12px;
    border-bottom:1px solid #edf0f3;
    background:#f5f7fa;
    color:#1f2937;
    font-size:12px;
    font-weight:800;
    line-height:1.3;
}

.v11-context-section-links {
    display:grid;
    gap:1px;
    padding:3px 5px 6px;
    border-top:0;
}

.v11-context-nav a.v11-context-link {
    position:relative;
    display:block;
    padding:8px 9px 8px 12px;
    border-radius:5px;
    color:#667085 !important;
    font-size:12px;
    font-weight:640;
    line-height:1.3;
    transition:color .15s ease,background .15s ease;
}

.v11-context-nav a.v11-context-link:hover,
.v11-context-nav a.v11-context-link:focus-visible {
    color:#344054 !important;
    background:#f3f4f6;
}

.v11-context-nav a.v11-context-link.is-active {
    color:var(--v11-accent) !important;
    background:#eaf0f7;
    font-weight:760;
}

.v11-context-nav a.v11-context-link.is-active::before {
    content:'';
    position:absolute;
    top:7px;
    bottom:7px;
    left:0;
    width:2px;
    border-radius:2px;
    background:var(--v11-accent);
}

/* ---------------------------------------------------------
 * 0.6.50 – Spielbetrieb-Schnellaktion exakt im Primärblau
 * --------------------------------------------------------- */
.v11-context-nav > a.v11-context-action {
    border-color: #1d4ed8;
    background: #1d4ed8;
    color: #fff !important;
    font-weight: 800;
}

.v11-context-nav > a.v11-context-action:hover,
.v11-context-nav > a.v11-context-action:focus-visible {
    border-color: #1d4ed8;
    background: #1d4ed8;
    color: #fff !important;
}


/* ---------------------------------------------------------
 * 0.6.54 – V11 103 Action-Buttons vereinheitlichen
 * Alle echten Aktionen: Primärblau #1D4ED8 + weiße Schrift.
 * Keine nackten blauen Textlinks mehr im Einrichtungsassistenten.
 * --------------------------------------------------------- */
.v11-103-page .v11-103-action,
.v11-103-page .v11-103-textlink,
.v11-103-page .v11-103-card > details > summary,
.v11-103-page .v11-103-new-club > details > summary,
.v11-103-page .v11-103-empty-card > details > summary,
.v11-103-page .v11-103-form button,
.v11-103-page .v11-103-empty-card button,
.v11-103-page .v11-103-club-form button,
.v11-103-page .v11-103-ready a {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:fit-content;
    min-height:38px;
    margin-top:10px;
    padding:8px 13px;
    border:1px solid #1D4ED8 !important;
    border-radius:9px;
    background:#1D4ED8 !important;
    color:#fff !important;
    font-weight:800;
    line-height:1.2;
    text-decoration:none !important;
    cursor:pointer;
    box-sizing:border-box;
}

.v11-103-page .v11-103-card > details > summary,
.v11-103-page .v11-103-new-club > details > summary,
.v11-103-page .v11-103-empty-card > details > summary {
    list-style:none;
}

.v11-103-page .v11-103-card > details > summary::-webkit-details-marker,
.v11-103-page .v11-103-new-club > details > summary::-webkit-details-marker,
.v11-103-page .v11-103-empty-card > details > summary::-webkit-details-marker {
    display:none;
}

.v11-103-page .v11-103-action:hover,
.v11-103-page .v11-103-action:focus-visible,
.v11-103-page .v11-103-textlink:hover,
.v11-103-page .v11-103-textlink:focus-visible,
.v11-103-page .v11-103-card > details > summary:hover,
.v11-103-page .v11-103-card > details > summary:focus-visible,
.v11-103-page .v11-103-new-club > details > summary:hover,
.v11-103-page .v11-103-new-club > details > summary:focus-visible,
.v11-103-page .v11-103-empty-card > details > summary:hover,
.v11-103-page .v11-103-empty-card > details > summary:focus-visible,
.v11-103-page .v11-103-form button:hover,
.v11-103-page .v11-103-form button:focus-visible,
.v11-103-page .v11-103-empty-card button:hover,
.v11-103-page .v11-103-empty-card button:focus-visible,
.v11-103-page .v11-103-club-form button:hover,
.v11-103-page .v11-103-club-form button:focus-visible,
.v11-103-page .v11-103-ready a:hover,
.v11-103-page .v11-103-ready a:focus-visible {
    border-color:#1E40AF !important;
    background:#1E40AF !important;
    color:#fff !important;
}

@media(max-width:560px) {
    .v11-103-page .v11-103-action,
    .v11-103-page .v11-103-textlink,
    .v11-103-page .v11-103-card > details > summary,
    .v11-103-page .v11-103-new-club > details > summary,
    .v11-103-page .v11-103-empty-card > details > summary,
    .v11-103-page .v11-103-form button,
    .v11-103-page .v11-103-empty-card button,
    .v11-103-page .v11-103-club-form button,
    .v11-103-page .v11-103-ready a {
        width:100%;
    }
}


/* ---------------------------------------------------------
 * 0.6.55 – Desktop-Login: neues V11 Markenlogo
 * Logo mittig im linken Markenbereich, Claim bleibt unten.
 * Die Bild-URL selbst wird in PHP dynamisch aus dem Upload-Verzeichnis gebaut.
 * --------------------------------------------------------- */
@media (min-width: 901px) {
    .v11-login-brand-panel.has-v11-logo {
        display:grid;
        grid-template-rows:minmax(0,1fr) auto;
        align-items:stretch;
    }

    .v11-login-brand-panel.has-v11-logo .v11-login-hero-logo {
        position:relative;
        z-index:1;
        display:grid;
        place-items:center;
        min-height:0;
        padding:10px 0 28px;
    }

    .v11-login-brand-panel.has-v11-logo .v11-login-hero-logo img {
        display:block;
        width:clamp(300px,58%,455px);
        max-width:100%;
        height:auto;
        object-fit:contain;
        filter:drop-shadow(0 18px 34px rgba(2,6,23,.30));
    }

    .v11-login-brand-panel.has-v11-logo .v11-login-brand-copy h1 {
        margin-top:0;
    }
}


/* ---------------------------------------------------------
 * 0.6.56 – V11-Produktlogo im App-Header
 * V11-Logo links neben dem Vereinslogo, beide gleichwertig groß.
 * --------------------------------------------------------- */
.v11-header-brand {
    gap:8px;
}

.v11-header-app-logo,
.v11-header-club-logo {
    display:block;
    flex:0 0 48px;
    width:48px;
    height:48px;
    max-width:48px;
    max-height:48px;
    object-fit:contain;
    object-position:center;
}

.v11-header-app-logo {
    border-radius:50%;
}

@media(max-width:720px) {
    .v11-header-brand {
        width:122px;
        min-width:122px;
        gap:6px;
        padding:8px 10px;
    }

    .v11-header-app-logo,
    .v11-header-club-logo {
        flex-basis:42px;
        width:42px;
        height:42px;
        max-width:42px;
        max-height:42px;
    }
}

/* ---------------------------------------------------------
 * 0.6.57 – Mobile/PWA Login: Markenlogo statt Textlogo
 * --------------------------------------------------------- */
@media (max-width: 900px) {
    .v11-login-mobile-brand {
        display: block;
        margin-bottom: 36px;
    }

    .v11-login-mobile-brand img {
        display: block;
        width: clamp(132px, 38vw, 164px);
        max-width: 100%;
        height: auto;
        object-fit: contain;
    }
}
