/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* ===== App Root ===== */

.app-root[b-rav2ew2pbk] {
    display: flex;
    flex-direction: column;
    height: 100vh;
    min-height: 0;
}

/* Weißer Streifen über dem Balken - trägt das User-Kontextmenü (rechts);
   das Wappen ragt links hinein. Höhe = 0.85 × Balken (47px) + ~20px Luft. */
.top-strip[b-rav2ew2pbk] {
    height: 67px;
    flex-shrink: 0;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
    padding: 0 1.5rem;
}

/* Testbetrieb-Hinweis: roter Warntext im weißen Streifen über dem Balken, rechts
   neben dem Wappen (margin-left hält Abstand zum absolut sitzenden Logo). Schaltbar
   über die Config-Sektion „Testhinweis". */
.testhinweis[b-rav2ew2pbk] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    margin-right: auto;
    margin-left: 250px;
    min-width: 0;
    color: #c0281c;
    font-size: 0.9375rem;
    font-weight: var(--font-weight-medium);
    line-height: 1.25;
}

.testhinweis span[b-rav2ew2pbk] {
    overflow: hidden;
    text-overflow: ellipsis;
}

.testhinweis[b-rav2ew2pbk]  svg {
    flex-shrink: 0;
    color: #c0281c;
}

/* ===== Header (HG-Balken, CI-konform) ===== */

.main-header[b-rav2ew2pbk] {
    height: 55px;
    z-index: 20;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.14);
    flex-shrink: 0;
    position: relative;
    overflow: visible;
    background: var(--primary);
    color: #ffffff;
    border-bottom: none;
    padding: 0;
}

/* Actionbar-Inhalte im Balken - eingerückt über die Content-Spalte (Sidebar-Breite). */
.header-actionbar[b-rav2ew2pbk] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1;
    height: 100%;
    min-width: 0;
    padding-left: var(--ab-inset, 2rem);
    padding-right: 2rem;
    position: relative;
    color: #ffffff;
}

/* Hamburger nur auf kleinen Screens (Drawer-Toggle). */
.nav-hamburger[b-rav2ew2pbk] {
    display: none;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border: none;
    background: transparent;
    color: #ffffff;
    cursor: pointer;
    border-radius: var(--radius);
}

.nav-hamburger:hover[b-rav2ew2pbk] {
    background: rgba(255, 255, 255, 0.15);
}

/* ===== Responsiv: < 820px = Sidebar als Off-Canvas-Drawer ===== */
@media (max-width: 820px) {
    .nav-hamburger[b-rav2ew2pbk] {
        display: inline-flex;
    }

    .header-logo[b-rav2ew2pbk] {
        display: none;
    }

    .top-strip[b-rav2ew2pbk] {
        height: 44px;
        padding: 0 1rem;
    }

    /* Kein Wappen mehr → kein Freiraum links nötig. */
    .testhinweis[b-rav2ew2pbk] {
        margin-left: 0;
        font-size: 0.75rem;
    }

    .header-actionbar[b-rav2ew2pbk] {
        padding-left: 1rem;
        padding-right: 1rem;
        overflow-x: auto;
    }

    [b-rav2ew2pbk] .sidebar {
        position: fixed !important;
        top: 0;
        bottom: 0;
        left: 0;
        width: 264px !important;
        z-index: 60 !important;
        transform: translateX(-100%);
        transition: transform 0.2s ease;
    }

    [b-rav2ew2pbk] .sidebar.mobile-open {
        transform: translateX(0);
    }

    [b-rav2ew2pbk] .sidebar-resize-handle {
        display: none !important;
    }

    .nav-overlay[b-rav2ew2pbk] {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.45);
        z-index: 55;
    }
}

/* Wappen (Outline) sitzt auf dem Balken: 3 × Balkenhöhe, ragt 0.85 H nach oben
   in den weißen Streifen und 1.15 H nach unten in den Sidebar-Kopf. */
.header-logo[b-rav2ew2pbk] {
    position: absolute;
    left: 72px;
    top: -50px;
    z-index: 30;
    text-decoration: none;
}

.header-logo-img[b-rav2ew2pbk] {
    height: 165px;
    width: auto;
    image-rendering: optimizeQuality;
    -webkit-font-smoothing: antialiased;
    shape-rendering: geometricPrecision;
}

.header-title[b-rav2ew2pbk] {
    font-size: 0.875rem;
    color: var(--muted-foreground);
    white-space: nowrap;
}

.header-spacer[b-rav2ew2pbk] {
    flex: 1;
}

.header-user[b-rav2ew2pbk] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    padding: 0.375rem 0.5rem;
    border-radius: var(--radius);
    position: relative;
    user-select: none;
}

.header-user:hover[b-rav2ew2pbk] {
    background-color: var(--muted);
}

.header-user-name[b-rav2ew2pbk] {
    font-size: 0.875rem;
    font-weight: var(--font-weight-medium);
}

.dropdown-overlay[b-rav2ew2pbk] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 49;
}

.header-dropdown[b-rav2ew2pbk] {
    position: absolute;
    top: 100%;
    right: 0;
    margin-top: 0.375rem;
    padding: 0.375rem 0;
    background-color: var(--popover);
    color: var(--popover-foreground);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    min-width: 240px;
    z-index: 50;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.14);
}

/* Die Einträge sind gemischt: „Mein Konto" ist ein <a>, „Abmelden" ein <button> (Logout braucht
   ein POST-Form mit Antiforgery-Token). Ohne den Reset unten erbt nur der Button die
   Browser-Defaults und fällt sichtbar aus der Reihe: 2px-Rahmen, grauer Grund, Arial,
   zentriert und nur inhaltsbreit statt über die volle Dropdown-Breite. */
.header-dropdown-item[b-rav2ew2pbk] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.625rem 1.25rem;
    font-family: inherit;
    font-size: 0.875rem;
    line-height: 1.5;
    text-align: left;
    color: var(--foreground);
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.header-dropdown-item:hover[b-rav2ew2pbk] {
    background-color: var(--muted);
    text-decoration: none;
}

.header-dropdown-separator[b-rav2ew2pbk] {
    height: 1px;
    background-color: var(--border);
    margin: 0.25rem 0;
}

.header-dropdown-item-danger[b-rav2ew2pbk] {
    color: var(--destructive);
}

.header-dropdown-item-danger:hover[b-rav2ew2pbk] {
    background-color: #fee2e2;
    color: var(--destructive);
}

/* ===== Layout with sidebar ===== */

[b-rav2ew2pbk] .layout {
    display: flex;
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
}

[b-rav2ew2pbk] .sidebar {
    position: relative;
    z-index: 10;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 2px 0 10px rgba(0, 0, 0, 0.14);
}

.sidebar-header[b-rav2ew2pbk] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0 1rem;
    background-color: transparent;
    border-bottom: none;
    height: 68px;
    min-height: 68px;
    max-height: 68px;
    flex-shrink: 0;
    box-sizing: border-box;
    overflow: hidden;
}

.sidebar-header-collapsed[b-rav2ew2pbk] {
    justify-content: center;
    padding: 1rem 0.5rem;
}

.sidebar-header-collapsed .sidebar-header-label[b-rav2ew2pbk] {
    display: none;
}

.sidebar-header-label[b-rav2ew2pbk] {
    font-size: 0.875rem;
    font-weight: var(--font-weight-medium);
    color: var(--foreground);
}

.sidebar-toggle-btn[b-rav2ew2pbk] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: none;
    background: none;
    color: var(--sidebar-foreground);
    cursor: pointer;
    border-radius: var(--radius);
    transition: background-color 0.15s ease;
    flex-shrink: 0;
}

.sidebar-toggle-btn:hover[b-rav2ew2pbk] {
    background-color: rgba(255, 255, 255, 0.12);
    color: var(--sidebar-foreground);
}

.sidebar-nav[b-rav2ew2pbk] {
    flex: 1;
    overflow-y: auto;
}

/* ===== Sidebar App Info ===== */

.sidebar-app-info[b-rav2ew2pbk] {
    padding: 1rem 1.5rem;
    background-color: transparent;
    border-top: none;
    font-size: 0.6875rem;
    color: rgba(255, 255, 255, 0.6);
    line-height: 1.6;
    flex-shrink: 0;
    overflow: hidden;
}

.sidebar-text[b-rav2ew2pbk] {
    white-space: nowrap;
    overflow: hidden;
    transition: opacity 0.1s ease;
}

.sidebar-version[b-rav2ew2pbk] {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
}

/* ===== Sidebar Resize Handle ===== */

.sidebar-resize-handle[b-rav2ew2pbk] {
    position: absolute;
    top: 0;
    right: 0;
    width: 4px;
    height: 100%;
    cursor: col-resize;
    z-index: 15;
    transition: background-color 0.15s ease;
}

.sidebar-resize-handle:hover[b-rav2ew2pbk] {
    background-color: rgba(12, 93, 166, 0.5);
}

/* ===== Main Content ===== */

.main-content[b-rav2ew2pbk] {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 0;
    min-height: 0;
    background: var(--background);
}

[b-rav2ew2pbk] .action-bar {
    z-index: 5;
    flex-shrink: 0;
}

[b-rav2ew2pbk] .ablage-title {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    justify-content: center;
    align-items: flex-start;
    min-width: 0;
    min-height: 2.5rem;
    flex: 0 1 auto;
    overflow: hidden;
}

[b-rav2ew2pbk] .ablage-title-name {
    font-size: 1.125rem;
    font-weight: var(--font-weight-medium);
    margin: 0;
    padding: 0;
    line-height: 1.2;
    border: none;
    outline: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

[b-rav2ew2pbk] .ablage-title-pfad {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.6875rem;
    color: var(--muted-foreground);
    line-height: 1;
    height: 0.6875rem;
    min-width: 0;
}

[b-rav2ew2pbk] .ablage-title-pfad-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: monospace;
}

[b-rav2ew2pbk] .ablage-pfad-copy {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--muted-foreground);
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 2px;
    flex-shrink: 0;
    height: 0.6875rem;
    min-height: 0;
    overflow: visible;
    line-height: 0;
    transition: color 0.15s ease;
}

[b-rav2ew2pbk] .ablage-pfad-copy:hover {
    color: var(--primary);
}

[b-rav2ew2pbk] .ablage-pfad-copy svg {
    width: 13px;
    height: 13px;
    overflow: visible;
}

[b-rav2ew2pbk] .content-area {
    flex: 1;
    overflow-y: auto;
    padding: 2rem;
    position: relative;
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.nav-menu[b-92ctogsl9f] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    padding: 0.5rem 0;
    min-height: 100%;
}

/* Bereichs-Nav (§3.18): schiebt Exit-Link ans untere Ende */
.nav-bottom[b-92ctogsl9f] {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

[b-92ctogsl9f] .nav-link-exit {
    color: var(--sidebar-foreground);
    opacity: 0.75;
}

[b-92ctogsl9f] .nav-link-exit:hover {
    opacity: 1;
}

/* Icon darf nicht schrumpfen */
[b-92ctogsl9f] .nav-icon {
    flex-shrink: 0;
}

/* Text wird per overflow hidden abgeschnitten wenn Sidebar schrumpft.
   ::deep, damit auch NavLinks in Unterkomponenten (NavSubMenu, NavTreeNode)
   erfasst werden. */
[b-92ctogsl9f] .nav-link-text {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 1;
    transition: opacity 0.15s ease;
}

/* Collapsed: Text unsichtbar, Icons zentriert */
.nav-collapsed[b-92ctogsl9f]  .nav-link-text {
    opacity: 0;
    width: 0;
    overflow: hidden;
}

.nav-collapsed[b-92ctogsl9f]  .nav-link {
    justify-content: center;
    padding-left: 0;
    padding-right: 0;
    gap: 0;
}

/* Separator between Ablagen and admin links */
.nav-separator[b-92ctogsl9f] {
    height: 1px;
    background-color: var(--sidebar-border);
    margin: 0.5rem 1rem;
}

/* Anzahl-Bubble (offene Handlungsbedarf-Fälle) am rechten Rand des Nav-Eintrags */
.nav-badge[b-92ctogsl9f],
[b-92ctogsl9f] .nav-sub-badge {
    margin-left: auto;
    min-width: 1.3rem;
    height: 1.3rem;
    padding: 0 0.4rem;
    border-radius: 0.7rem;
    background: var(--hg-gelb);
    color: #082B54;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Sub-Badge im Untermenü-Kopf: etwas Abstand zum Chevron */
[b-92ctogsl9f] .nav-sub-badge {
    margin-right: 0.35rem;
}

/* ===== Bereichs-Gruppen (Menschen · Spielbetrieb · Verwaltung) ===== */
.nav-group[b-92ctogsl9f] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.nav-group-label[b-92ctogsl9f] {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--sidebar-foreground);
    opacity: 0.5;
    padding: 0.75rem 1rem 0.25rem;
    white-space: nowrap;
    overflow: hidden;
}

/* Untergruppen-Label innerhalb eines NavSubMenu (Mitglieder/Spielbetrieb) – etwas eingerückt, kompakter. */
.nav-sublabel[b-92ctogsl9f] {
    padding: 0.5rem 1rem 0.1rem 1.6rem;
    opacity: 0.4;
}

/* Collapsed: Label-Text weicht einer dünnen Trennlinie (spart Breite). */
.nav-collapsed .nav-group-label[b-92ctogsl9f] {
    height: 0;
    padding: 0;
    margin: 0.5rem 0.75rem;
    border-top: 1px solid var(--sidebar-border);
    color: transparent;
}

/* „geplant"-Eintrag: wie ein Nav-Link, aber deaktiviert (kein Hover, kein Klick). */
.nav-link-planned[b-92ctogsl9f] {
    opacity: 0.4;
    cursor: default;
}

.nav-link-planned:hover[b-92ctogsl9f] {
    background-color: transparent;
    color: var(--sidebar-foreground);
}

.nav-planned-tag[b-92ctogsl9f] {
    margin-left: auto;
    font-size: 0.625rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border: 1px solid var(--sidebar-border);
    border-radius: var(--radius);
    padding: 0 0.3rem;
    line-height: 1.4;
}

.nav-collapsed .nav-planned-tag[b-92ctogsl9f] {
    display: none;
}

/* ===== Nav-SubMenu (flache Untermenue-Gruppe) ===== */

[b-92ctogsl9f] .nav-submenu {
    display: flex;
    flex-direction: column;
}

/* Toggle-only Header (ohne Href) - ganze Zeile klappt auf/zu */
[b-92ctogsl9f] .nav-submenu-header {
    cursor: pointer;
    user-select: none;
}

/* Split-Header (mit Href): Link links + Chevron-Button rechts in einer Zeile */
[b-92ctogsl9f] .nav-submenu-header-row {
    display: flex;
    align-items: stretch;
}

[b-92ctogsl9f] .nav-submenu-header-link {
    flex: 1;
    min-width: 0;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

[b-92ctogsl9f] .nav-submenu-toggle {
    background: none;
    border: none;
    color: var(--sidebar-foreground);
    cursor: pointer;
    padding: 0 0.75rem;
    display: flex;
    align-items: center;
    border-radius: 0 var(--radius) var(--radius) 0;
    transition: background-color 0.15s ease;
    flex-shrink: 0;
}

[b-92ctogsl9f] .nav-submenu-toggle:hover {
    background-color: var(--sidebar-accent);
    color: var(--sidebar-accent-foreground);
}

[b-92ctogsl9f] .nav-submenu-chevron {
    margin-left: auto;
    transition: transform 0.15s ease;
    flex-shrink: 0;
}

[b-92ctogsl9f] .nav-submenu-chevron-open {
    transform: rotate(90deg);
}

/* Aufgeklappter Kinder-Block - dunklerer Hintergrund unterstreicht die Gruppe */
[b-92ctogsl9f] .nav-submenu-children {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    padding: 0.25rem 0;
    background-color: var(--sidebar-submenu);
    border-top: 1px solid var(--sidebar-border);
    border-bottom: 1px solid var(--sidebar-border);
}

/* Kinder eingerueckt - Abstand passt zur Icon-Breite im Header */
[b-92ctogsl9f] .nav-submenu-children .nav-link {
    padding-left: 2.75rem;
    border-radius: 0;
}

/* Collapsed Sidebar: Kinder, Chevron, Toggle-Button ausblenden; Header bleibt als Icon */
.nav-collapsed[b-92ctogsl9f]  .nav-submenu-children,
.nav-collapsed[b-92ctogsl9f]  .nav-submenu-chevron,
.nav-collapsed[b-92ctogsl9f]  .nav-submenu-toggle {
    display: none;
}

.nav-collapsed[b-92ctogsl9f]  .nav-submenu-header-link {
    border-radius: var(--radius);
}

/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-24xfmdo21l],
.components-reconnect-repeated-attempt-visible[b-24xfmdo21l],
.components-reconnect-failed-visible[b-24xfmdo21l],
.components-pause-visible[b-24xfmdo21l],
.components-resume-failed-visible[b-24xfmdo21l],
.components-rejoining-animation[b-24xfmdo21l] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-24xfmdo21l],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-24xfmdo21l],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-24xfmdo21l],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-24xfmdo21l],
#components-reconnect-modal.components-reconnect-retrying[b-24xfmdo21l],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-24xfmdo21l],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-24xfmdo21l],
#components-reconnect-modal.components-reconnect-failed[b-24xfmdo21l],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-24xfmdo21l] {
    display: block;
}


#components-reconnect-modal[b-24xfmdo21l] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-24xfmdo21l 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-24xfmdo21l 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-24xfmdo21l 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-24xfmdo21l]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-24xfmdo21l 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-24xfmdo21l {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-24xfmdo21l {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-24xfmdo21l {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-24xfmdo21l] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-24xfmdo21l] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-24xfmdo21l] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-24xfmdo21l] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-24xfmdo21l] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-24xfmdo21l] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-24xfmdo21l] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-24xfmdo21l 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-24xfmdo21l] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-24xfmdo21l {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Auswertungen/H360Aktivierung.razor.rz.scp.css */
.container-wide[b-256cb8c6mi] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.lauf-stats[b-256cb8c6mi] {
    padding: 1.25rem 1.5rem;
}

.lauf-abschnitt[b-256cb8c6mi] {
    margin: .25rem 0 -.25rem;
    font-size: 1rem;
    font-weight: 600;
}

.stat-row[b-256cb8c6mi] {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.stat[b-256cb8c6mi] {
    flex: 1 1 7rem;
    min-width: 6rem;
    padding: .7rem .9rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--primary) 4%, transparent);
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.stat-num[b-256cb8c6mi] {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    color: var(--primary);
}

.stat-lbl[b-256cb8c6mi] {
    font-size: .78rem;
    color: var(--muted-foreground);
}

.stat-ok[b-256cb8c6mi] {
    background: color-mix(in srgb, #16a34a 10%, transparent);
    border-color: color-mix(in srgb, #16a34a 35%, transparent);
}

.stat-ok .stat-num[b-256cb8c6mi] {
    color: #15803d;
}

.stat-warn[b-256cb8c6mi] {
    background: color-mix(in srgb, #d97706 10%, transparent);
    border-color: color-mix(in srgb, #d97706 35%, transparent);
}

.stat-warn .stat-num[b-256cb8c6mi] {
    color: #b45309;
}

.hinweis-unbekannt[b-256cb8c6mi] {
    display: flex;
    align-items: flex-start;
    gap: .4rem;
    margin: .9rem 0 0;
    color: var(--muted-foreground);
    font-size: .82rem;
}

.num[b-256cb8c6mi] {
    text-align: right;
}

.zell-warn[b-256cb8c6mi] {
    color: #b45309;
    font-weight: 600;
}

.zell-aktion[b-256cb8c6mi] {
    text-align: right;
    white-space: nowrap;
}

/* Steuerleiste: Saison-Auswahl + Option „ohne H360-ID mitlisten". */
.filter-leiste[b-256cb8c6mi] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    padding: .9rem 1.5rem;
}

.filter-leiste .form-label[b-256cb8c6mi] {
    margin: 0;
}

.filter-leiste .form-select[b-256cb8c6mi] {
    width: auto;
    min-width: 11rem;
}

.check-inline[b-256cb8c6mi] {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-size: .88rem;
    cursor: pointer;
}

.check-inline input[b-256cb8c6mi] {
    cursor: pointer;
}
/* /Components/Pages/BenutzerBearbeiten.razor.rz.scp.css */
.form-grid[b-7ri9byl5qv] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.rollen-row[b-7ri9byl5qv] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}
/* /Components/Pages/Datenimport/Dubletten.razor.rz.scp.css */
.container-wide[b-8xmxh4e1qd] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.leiste[b-8xmxh4e1qd] {
    padding: .7rem .9rem;
}

.leiste-text[b-8xmxh4e1qd] {
    font-size: .85rem;
}

.leiste-hinweis[b-8xmxh4e1qd] {
    display: block;
    margin-top: .2rem;
    color: var(--muted-foreground);
    font-size: .8rem;
}

.dub-gruppe[b-8xmxh4e1qd] {
    padding: .9rem 1rem;
}

.dub-kopf[b-8xmxh4e1qd] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: .6rem;
}

.dub-signal[b-8xmxh4e1qd] {
    font-weight: 600;
}

.dub-anzahl[b-8xmxh4e1qd] {
    color: var(--muted-foreground);
    font-size: .82rem;
}

/* Die gewählte Ziel-Zeile hervorheben – sie überlebt den Merge. */
.dub-ziel[b-8xmxh4e1qd] {
    background: color-mix(in srgb, #16a34a 8%, transparent);
}

.num[b-8xmxh4e1qd] {
    text-align: right;
}

.dub-aktion[b-8xmxh4e1qd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .6rem;
    margin-top: .7rem;
    padding-top: .7rem;
    border-top: 1px solid var(--border);
}

.dub-erklaerung[b-8xmxh4e1qd] {
    font-size: .8rem;
    color: var(--muted-foreground);
    max-width: 60ch;
}

.dub-ergebnis[b-8xmxh4e1qd] {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-top: .6rem;
    padding: .5rem .6rem;
    border-radius: var(--radius);
    background: color-mix(in srgb, #16a34a 10%, transparent);
    color: #15803d;
    font-size: .84rem;
}

/* Dreher = Quelldaten-Fehler → deutlicher Hinweis, dass Merge nur das Symptom behebt. */
.dub-quellhinweis[b-8xmxh4e1qd] {
    display: flex;
    align-items: flex-start;
    gap: .4rem;
    margin: 0 0 .6rem;
    padding: .5rem .6rem;
    border-radius: var(--radius);
    background: color-mix(in srgb, #d97706 10%, transparent);
    border: 1px solid color-mix(in srgb, #d97706 30%, transparent);
    font-size: .8rem;
    line-height: 1.4;
}

.dub-quellhinweis code[b-8xmxh4e1qd] {
    font-size: .76rem;
    padding: 0 .2rem;
    border-radius: 3px;
    background: color-mix(in srgb, var(--foreground) 8%, transparent);
}
/* /Components/Pages/Datenimport/HandlungsbedarfListe.razor.rz.scp.css */
.hb-meldung[b-5kyp2x0z5v] {
    margin: 0 0 1rem;
    padding: .55rem .8rem;
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--primary) 10%, transparent);
    color: var(--primary);
    font-size: .9rem;
}

.hb-meldung-fehler[b-5kyp2x0z5v] {
    background: color-mix(in srgb, #dc2626 12%, transparent);
    color: #b91c1c;
}

.hb-leer-gross[b-5kyp2x0z5v] {
    text-align: center;
    color: var(--muted-foreground);
    padding: 2rem 1rem;
}

/* --- Fall-Liste: durchgehende Liste (kein Card-Look), Zeilen per Trennlinie getrennt --- */
.hb-liste[b-5kyp2x0z5v] {
    display: flex;
    flex-direction: column;
}

.hb-fall[b-5kyp2x0z5v] {
    padding: .8rem 1rem;
}

.hb-fall + .hb-fall[b-5kyp2x0z5v] {
    border-top: 1px solid var(--border);
}

.hb-fall-erledigt[b-5kyp2x0z5v] {
    opacity: .65;
}

/* Kopfzeile: zwei 50/50-Spalten - links der Datensatz, rechts die Aktion */
.hb-fall-kopf[b-5kyp2x0z5v] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    align-items: start;
}

@media (max-width: 640px) {
    .hb-fall-kopf[b-5kyp2x0z5v] {
        grid-template-columns: 1fr;
    }
}

.hb-fall-info[b-5kyp2x0z5v] {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    flex-wrap: wrap;
    min-width: 0;
}

.hb-person[b-5kyp2x0z5v] {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-width: 0;
}

.hb-name[b-5kyp2x0z5v] {
    font-weight: 500;
}

.hb-alter[b-5kyp2x0z5v] {
    display: inline-block;
    margin-left: .4rem;
    padding: 0 .4rem;
    border-radius: .7rem;
    background: color-mix(in srgb, var(--primary) 12%, transparent);
    color: var(--primary);
    font-size: .72rem;
    font-weight: 600;
    vertical-align: middle;
    white-space: nowrap;
}

.hb-sub[b-5kyp2x0z5v] {
    color: var(--muted-foreground);
    font-size: .82rem;
}

.hb-sub > span:not(:first-child)[b-5kyp2x0z5v]::before {
    content: " · ";
}

.hb-hinweis[b-5kyp2x0z5v] {
    font-size: .82rem;
    color: #b45309;
}

.hb-golden[b-5kyp2x0z5v] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: .15rem;
    padding: .25rem .5rem;
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--primary) 7%, transparent);
    color: var(--foreground, #1a1a1a);
    font-size: .82rem;
    align-self: flex-start;
    max-width: 100%;
}

.hb-golden strong[b-5kyp2x0z5v] {
    color: var(--primary);
}

/* Aktion: rechte Spalte; Buttons oben, Bestätigen-Zeile darunter */
.hb-fall-aktion[b-5kyp2x0z5v] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .45rem;
}

.hb-aktion-btns[b-5kyp2x0z5v] {
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
    align-items: center;
}

/* gewählte Aktion = HG-gelb markiert (Button bleibt an Ort und Stelle) */
.hb-btn-aktiv[b-5kyp2x0z5v] {
    background: var(--hg-gelb);
    color: #082B54;
    border: 1px solid #e6bb00;
    font-weight: 600;
}

.hb-btn-aktiv:hover[b-5kyp2x0z5v] {
    background: #f2c500;
}

/* Zeile unter den Buttons: Vorschau + Ausführen/Verwerfen */
.hb-bestaetigen[b-5kyp2x0z5v] {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.hb-staged-text[b-5kyp2x0z5v] {
    color: var(--primary);
    font-weight: 500;
    font-size: .85rem;
}

.hb-done[b-5kyp2x0z5v] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-weight: 500;
    color: #15803d;
}

/* --- Overlay-Popover (Picker / Abmelden): wächst NICHT in die Zeilenhöhe --- */
.hb-pop[b-5kyp2x0z5v] {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 30;
    margin-top: .3rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: 0 6px 22px rgba(0, 0, 0, .14);
    padding: .6rem;
    width: min(30rem, 80vw);
    max-width: calc(100vw - 3rem);
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.hb-pop-abmelden[b-5kyp2x0z5v] {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    width: auto;
}

.hb-pop-abmelden .form-label[b-5kyp2x0z5v] {
    margin: 0;
}

.hb-pop-head[b-5kyp2x0z5v] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.hb-suche[b-5kyp2x0z5v] {
    flex: 1 1 8rem;
    min-width: 0;
}

.hb-datum[b-5kyp2x0z5v] {
    max-width: 11rem;
}

.hb-treffer[b-5kyp2x0z5v] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    max-height: 16rem;
    overflow-y: auto;
}

.hb-treffer-item[b-5kyp2x0z5v] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: .45rem .7rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: #fff;
    cursor: pointer;
    text-align: left;
    font: inherit;
}

.hb-treffer-item:hover[b-5kyp2x0z5v] {
    border-color: var(--primary);
    background: color-mix(in srgb, var(--primary) 6%, transparent);
}

.hb-treffer-geb[b-5kyp2x0z5v] {
    color: var(--muted-foreground);
    font-size: .85rem;
    white-space: nowrap;
}

.hb-leer[b-5kyp2x0z5v] {
    color: var(--muted-foreground);
    font-size: .9rem;
}
/* /Components/Pages/Datenimport/ImportHistorie.razor.rz.scp.css */
/* Zählspalten rechtsbündig - Überschrift wie Wert, sonst steht die Zahl unter dem Label in der Luft.
   Gleiches Muster wie in Dubletten.razor.css. */
.num[b-f33d9xv60i] {
    text-align: right;
}

/* „16.07.2026 03:00 Uhr" gehört zusammen - ohne das bricht das „Uhr" allein in die zweite Zeile. */
.zeit[b-f33d9xv60i] {
    white-space: nowrap;
}

/* Handlungsbedarf je Lauf: „offen" (aktionsrelevant) über „erledigt" (Fortschritt) gestapelt -
   zwei kurze Zeilen brauchen weniger Breite als eine lange und bleiben scanbar. */
.hb-zelle[b-f33d9xv60i] {
    line-height: 1.25;
}

.hb-offen[b-f33d9xv60i] {
    font-weight: 600;
    color: #b91c1c;
    white-space: nowrap;
}

/* 0 offen ist der Normalzustand - nicht alarmieren, aber die Zeile parallel halten. */
.hb-offen-keine[b-f33d9xv60i] {
    font-weight: 600;
    color: #16a34a;
    white-space: nowrap;
}

.hb-erledigt[b-f33d9xv60i] {
    font-size: .85em;
    color: var(--text-muted, #6b7280);
    white-space: nowrap;
}

/* Alt-Läufe ohne Attribution: nur der Import-Snapshot, bewusst zurückhaltend. */
.hb-snapshot[b-f33d9xv60i] {
    color: var(--text-muted, #6b7280);
    white-space: nowrap;
}
/* /Components/Pages/Datenimport/ImportStart.razor.rz.scp.css */
.import-page[b-5tqalbqd7u] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: center;
}

.import-card[b-5tqalbqd7u] {
    padding: 1.5rem;
    width: 100%;
    max-width: 820px;
}

.import-domain[b-5tqalbqd7u] {
    width: 100%;
    max-width: 820px;
    margin: .6rem 0 -.25rem;
    font-size: .82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--muted-foreground);
}

.import-domain:first-child[b-5tqalbqd7u] {
    margin-top: 0;
}

.import-h[b-5tqalbqd7u] {
    margin: 0 0 .5rem;
    font-size: 1.15rem;
    font-weight: 600;
}

.import-h3[b-5tqalbqd7u] {
    margin: 0 0 1rem;
    font-size: 1.05rem;
    font-weight: 600;
}

.import-h4[b-5tqalbqd7u] {
    margin: 1.25rem 0 .5rem;
    font-size: .95rem;
    font-weight: 600;
}

.import-hint[b-5tqalbqd7u] {
    color: var(--muted-foreground);
    font-size: .9rem;
    margin: 0 0 1.25rem;
    line-height: 1.5;
}

.import-form[b-5tqalbqd7u] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.import-feld[b-5tqalbqd7u] {
    display: flex;
    flex-direction: column;
    gap: .45rem;
}

/* Select sieht klickbar aus (weißer Hintergrund, eigener Pfeil) statt readonly-grau */
.import-select[b-5tqalbqd7u] {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    background-color: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: .55rem 2.2rem .55rem .75rem;
    font: inherit;
    color: inherit;
    cursor: pointer;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230E55A1' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right .7rem center;
}

.import-select:hover[b-5tqalbqd7u] {
    border-color: color-mix(in srgb, var(--primary) 45%, var(--border));
}

.import-select:focus[b-5tqalbqd7u] {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 15%, transparent);
}

/* Upload: gebrandete Dropzone statt nacktem File-Input */
.import-upload[b-5tqalbqd7u] {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: 1rem 1.1rem;
    border: 1.5px dashed color-mix(in srgb, var(--primary) 35%, var(--border));
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--primary) 3%, transparent);
}

.import-upload-gefuellt[b-5tqalbqd7u] {
    border-style: solid;
    border-color: color-mix(in srgb, var(--primary) 30%, var(--border));
}

.import-upload-icon[b-5tqalbqd7u] {
    color: var(--primary);
    flex-shrink: 0;
}

/* native File-Input-Text ausblenden (wir zeigen eigene Info), Button gebrandet */
.import-upload[b-5tqalbqd7u]  input[type=file] {
    font: inherit;
    color: transparent;
    width: 9.5rem;
    flex-shrink: 0;
}

.import-upload[b-5tqalbqd7u]  input[type=file]::file-selector-button {
    margin: 0;
    border: none;
    background: var(--primary);
    color: #fff;
    padding: .5rem .9rem;
    border-radius: var(--radius);
    cursor: pointer;
    font: inherit;
    font-weight: 500;
}

.import-upload[b-5tqalbqd7u]  input[type=file]::file-selector-button:hover {
    background: color-mix(in srgb, var(--primary) 85%, #000);
}

.import-upload-info[b-5tqalbqd7u] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    color: var(--muted-foreground);
    font-size: .9rem;
}

.import-datei[b-5tqalbqd7u] {
    color: var(--primary);
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.import-datei-meta[b-5tqalbqd7u] {
    font-size: .8rem;
}

/* H360-Konten-Liste */
.import-h360[b-5tqalbqd7u] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.import-h360-konto[b-5tqalbqd7u] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .6rem .85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.import-h360-name[b-5tqalbqd7u] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 600;
}

.import-actions[b-5tqalbqd7u] {
    margin-top: 1rem;
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    flex-wrap: wrap;
}

.import-ok[b-5tqalbqd7u] {
    display: flex;
    align-items: center;
    gap: .4rem;
    color: var(--primary);
    font-weight: 500;
    margin: 1rem 0 0;
}

.stat-row[b-5tqalbqd7u] {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.stat[b-5tqalbqd7u] {
    flex: 1 1 7rem;
    min-width: 6rem;
    padding: .7rem .9rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--primary) 4%, transparent);
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.stat-num[b-5tqalbqd7u] {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    color: var(--primary);
}

.stat-lbl[b-5tqalbqd7u] {
    font-size: .78rem;
    color: var(--muted-foreground);
}

.stat-warn[b-5tqalbqd7u] {
    background: color-mix(in srgb, #d97706 10%, transparent);
    border-color: color-mix(in srgb, #d97706 35%, transparent);
}

.stat-warn .stat-num[b-5tqalbqd7u] {
    color: #b45309;
}

.hb-detail[b-5tqalbqd7u] {
    display: block;
    color: var(--muted-foreground);
    font-size: .82rem;
}

.import-warn[b-5tqalbqd7u] {
    display: flex;
    align-items: center;
    gap: .45rem;
    color: #b45309;
    background: color-mix(in srgb, #d97706 8%, transparent);
    border: 1px solid color-mix(in srgb, #d97706 30%, transparent);
    border-radius: var(--radius);
    padding: .7rem .85rem;
    margin: 0 0 1rem;
}

.import-spiel-stats[b-5tqalbqd7u] {
    margin-top: 1rem;
}
/* /Components/Pages/Datenimport/LaufDetail.razor.rz.scp.css */
.detail-page[b-ztms9r19xr] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.lauf-kopf[b-ztms9r19xr] {
    padding: 1.25rem 1.5rem;
}

.lauf-titel[b-ztms9r19xr] {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1rem;
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--border);
}

.lauf-titel h2[b-ztms9r19xr] {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 600;
}

.lauf-meta[b-ztms9r19xr] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: .4rem 1.25rem;
    margin: 0;
}

.lauf-meta dt[b-ztms9r19xr] {
    color: var(--muted-foreground);
    font-size: .85rem;
}

.lauf-meta dd[b-ztms9r19xr] {
    margin: 0;
}

.lauf-stats[b-ztms9r19xr] {
    padding: 1.25rem 1.5rem;
}

.lauf-abschnitt[b-ztms9r19xr] {
    margin: .25rem 0 -.25rem;
    font-size: 1rem;
    font-weight: 600;
}

.stat-row[b-ztms9r19xr] {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.stat[b-ztms9r19xr] {
    flex: 1 1 7rem;
    min-width: 6rem;
    padding: .7rem .9rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--primary) 4%, transparent);
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.stat-num[b-ztms9r19xr] {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    color: var(--primary);
}

.stat-lbl[b-ztms9r19xr] {
    font-size: .78rem;
    color: var(--muted-foreground);
}

.stat-warn[b-ztms9r19xr] {
    background: color-mix(in srgb, #d97706 10%, transparent);
    border-color: color-mix(in srgb, #d97706 35%, transparent);
}

.stat-warn .stat-num[b-ztms9r19xr] {
    color: #b45309;
}

.lauf-alter[b-ztms9r19xr] {
    display: inline-block;
    margin-left: .4rem;
    padding: 0 .4rem;
    border-radius: .7rem;
    background: color-mix(in srgb, var(--primary) 12%, transparent);
    color: var(--primary);
    font-size: .72rem;
    font-weight: 600;
    vertical-align: middle;
    white-space: nowrap;
}

.lauf-kontakt[b-ztms9r19xr] {
    color: var(--muted-foreground);
    font-size: .8rem;
}
/* /Components/Pages/Datenimport/TeamZuordnung.razor.rz.scp.css */
.tz-page[b-uolnpjwv9u] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.tz-card[b-uolnpjwv9u] {
    padding: 1.25rem 1.5rem;
}

.tz-card-titel[b-uolnpjwv9u] {
    margin: 0 0 .85rem;
    font-size: 1rem;
    font-weight: 600;
}

.tz-saison-feld[b-uolnpjwv9u] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    max-width: 16rem;
    margin: 0 0 1rem;
}

.tz-intro[b-uolnpjwv9u] {
    color: var(--muted-foreground);
    font-size: .9rem;
    margin: 0;
    line-height: 1.5;
}

.tz-empty[b-uolnpjwv9u] {
    color: var(--muted-foreground);
    padding: 1rem 0;
}

.tz-gruppe[b-uolnpjwv9u] {
    color: var(--muted-foreground);
    font-size: .85rem;
}

.tz-meta[b-uolnpjwv9u] {
    display: block;
    color: var(--muted-foreground);
    font-size: .78rem;
    margin-top: .1rem;
}

.tz-select[b-uolnpjwv9u] {
    width: 100%;
    max-width: 26rem;
    appearance: none;
    -webkit-appearance: none;
    background-color: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: .45rem 2rem .45rem .6rem;
    font: inherit;
    color: inherit;
    cursor: pointer;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230E55A1' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right .6rem center;
}

.tz-select:focus[b-uolnpjwv9u] {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 15%, transparent);
}

.tz-neu[b-uolnpjwv9u] {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .5rem;
    padding: .5rem;
    border-left: 2px solid var(--primary);
    background: color-mix(in srgb, var(--primary) 3%, transparent);
    border-radius: 0 var(--radius) var(--radius) 0;
}

.tz-input[b-uolnpjwv9u] {
    flex: 1 1 12rem;
    min-width: 10rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: .45rem .6rem;
    font: inherit;
    color: inherit;
    background-color: #fff;
}

.tz-input:focus[b-uolnpjwv9u] {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 15%, transparent);
}

.tz-art[b-uolnpjwv9u] {
    max-width: 11rem;
    flex: 0 1 11rem;
}

.tz-fehler[b-uolnpjwv9u] {
    color: var(--destructive, #b91c1c);
    font-size: .82rem;
    margin-top: .35rem;
}

.tz-verwaist[b-uolnpjwv9u] {
    margin-top: 1.75rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--border);
}

.tz-verwaist-titel[b-uolnpjwv9u] {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin: 0 0 .3rem;
    font-size: 1rem;
    font-weight: 600;
    color: #b45309;
}

.tz-verwaist-hint[b-uolnpjwv9u] {
    color: var(--muted-foreground);
    font-size: .85rem;
    margin: 0 0 .8rem;
    line-height: 1.45;
}

.tz-titel-neutral[b-uolnpjwv9u] {
    color: var(--foreground);
}

.tz-mannschaft-plain[b-uolnpjwv9u] {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
}

.tz-mannschaft-plain:hover[b-uolnpjwv9u] {
    text-decoration: underline;
}

.tz-mannschaft-link[b-uolnpjwv9u] {
    text-decoration: none;
    cursor: pointer;
}

.tz-mannschaft-link:hover[b-uolnpjwv9u] {
    filter: brightness(0.95);
    text-decoration: underline;
}

.tz-col-aktion[b-uolnpjwv9u] {
    white-space: nowrap;
    text-align: right;
}

.tz-ok[b-uolnpjwv9u] {
    color: var(--primary);
    margin-left: .4rem;
    vertical-align: middle;
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* Start-Dashboard: Kennzahl-Kacheln (verlinkt) + Mannschafts-Tabelle. */

.kpi-grid[b-jpy0w8cayx] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.kpi[b-jpy0w8cayx] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 1rem 1.1rem;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    text-decoration: none;
    color: var(--foreground);
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.kpi:hover[b-jpy0w8cayx] {
    border-color: var(--primary);
    box-shadow: 0 2px 12px rgba(0, 0, 0, .07);
    transform: translateY(-1px);
}

.kpi-icon[b-jpy0w8cayx] {
    color: var(--primary);
    margin-bottom: .4rem;
    line-height: 0;
}

.kpi-icon[b-jpy0w8cayx]  svg {
    width: 1.4rem;
    height: 1.4rem;
}

.kpi-num[b-jpy0w8cayx] {
    font-size: 2.1rem;
    font-weight: 700;
    line-height: 1.05;
    color: var(--primary);
    font-variant-numeric: tabular-nums;
}

.kpi-label[b-jpy0w8cayx] {
    font-size: .85rem;
    color: var(--muted-foreground);
    margin-top: .1rem;
}

.teams-card[b-jpy0w8cayx] {
    padding: 1.25rem;
    overflow: visible; /* Hover-Popover der Kalender-Spalte darf über den Card-Rand hinaus */
}

/* Dünne Kalender-Spalte mit Hover-Popover der Trainingszeiten. */
.th-cal[b-jpy0w8cayx] {
    width: 1%;
}

.cal-cell[b-jpy0w8cayx] {
    position: relative;
    width: 1%;
    white-space: nowrap;
    text-align: center;
}

.cal-link[b-jpy0w8cayx] {
    display: inline-flex;
    color: var(--muted-foreground);
}

.cal-link:hover[b-jpy0w8cayx] {
    color: var(--primary);
}

.cal-pop[b-jpy0w8cayx] {
    display: none;
    position: absolute;
    left: 0;
    top: calc(100% + 4px);
    z-index: 30;
    min-width: 13rem;
    padding: .5rem .65rem;
    background: var(--popover);
    color: var(--popover-foreground);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: 0 6px 22px rgba(0, 0, 0, .15);
    font-weight: 400;
    text-align: left;
}

.cal-cell:hover .cal-pop[b-jpy0w8cayx],
.cal-link:focus-visible ~ .cal-pop[b-jpy0w8cayx] {
    display: block;
}

.cal-pop-title[b-jpy0w8cayx] {
    font-weight: 600;
    font-size: .8rem;
    margin-bottom: .35rem;
}

.cal-pop-empty[b-jpy0w8cayx] {
    font-size: .82rem;
    color: var(--muted-foreground);
}

.cal-pop-row[b-jpy0w8cayx] {
    display: flex;
    gap: .55rem;
    font-size: .82rem;
    line-height: 1.55;
    white-space: nowrap;
}

.cal-pop-day[b-jpy0w8cayx] {
    width: 1.5rem;
    font-weight: 600;
    color: var(--primary);
}

.cal-pop-time[b-jpy0w8cayx] {
    font-variant-numeric: tabular-nums;
}

.cal-pop-hall[b-jpy0w8cayx] {
    margin-left: auto;
    color: var(--muted-foreground);
}

.teams-head[b-jpy0w8cayx] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: .85rem;
}

.teams-head h2[b-jpy0w8cayx] {
    margin: 0;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.saison-chip[b-jpy0w8cayx] {
    display: inline-block;
    padding: .12rem .6rem;
    background: var(--hg-gelb);
    color: #1a1a1a;
    border-radius: 999px;
    font-size: .8rem;
    font-weight: 600;
    line-height: 1.5;
}

/* Chip als Umschalt-Button (Saison-Basis: Kader ↔ Mannschaften). */
.saison-chip-btn[b-jpy0w8cayx] {
    border: none;
    cursor: pointer;
    font-family: inherit;
}

.saison-chip-btn:hover[b-jpy0w8cayx] {
    filter: brightness(.94);
}

.saison-hint[b-jpy0w8cayx] {
    font-size: .78rem;
    font-weight: 400;
    color: var(--muted-foreground);
}

.team-link[b-jpy0w8cayx],
.person-link[b-jpy0w8cayx] {
    color: var(--primary);
    text-decoration: none;
    font-weight: 500;
}

.team-link:hover[b-jpy0w8cayx],
.person-link:hover[b-jpy0w8cayx] {
    text-decoration: underline;
}

.kuerzel[b-jpy0w8cayx] {
    color: var(--muted-foreground);
    margin-left: .4rem;
    font-size: .85rem;
}

.muted[b-jpy0w8cayx] {
    color: var(--muted-foreground);
}

.count-badge[b-jpy0w8cayx] {
    display: inline-block;
    min-width: 1.9rem;
    text-align: center;
    padding: .1rem .55rem;
    border-radius: 999px;
    background: var(--secondary);
    color: var(--secondary-foreground);
    text-decoration: none;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.count-badge:hover[b-jpy0w8cayx] {
    background: var(--primary);
    color: var(--primary-foreground);
}
/* /Components/Pages/MannschaftBearbeiten.razor.rz.scp.css */
.form-grid[b-iuaj1y3ev7] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.chip-row[b-iuaj1y3ev7] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: .75rem;
}

.chip-remove[b-iuaj1y3ev7] {
    border: none;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font-weight: 700;
    margin-left: .35rem;
    padding: 0;
    line-height: 1;
}

.inline-add[b-iuaj1y3ev7] {
    display: flex;
    gap: .5rem;
    align-items: center;
}

.action-group[b-iuaj1y3ev7] {
    display: flex;
    gap: .5rem;
    align-items: center;
}

.text-danger[b-iuaj1y3ev7] {
    color: var(--destructive);
}
/* /Components/Pages/Mannschaften.razor.rz.scp.css */
.karten-aktionen[b-dlfjg3hye7] {
    display: flex;
    gap: .5rem;
    margin-left: auto;
}

h3[b-dlfjg3hye7] {
    margin-top: 1rem;
}

.th-sub[b-dlfjg3hye7] {
    display: block;
    font-weight: 400;
    font-size: .7rem;
    line-height: 1.1;
    color: var(--text-muted, #6b7280);
    white-space: nowrap;
}

.kader-badge[b-dlfjg3hye7] {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

    .kader-badge strong[b-dlfjg3hye7] {
        font-weight: 600;
    }

.training-list[b-dlfjg3hye7] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.training-slot[b-dlfjg3hye7] {
    white-space: nowrap;
    font-size: .85rem;
}

.muted[b-dlfjg3hye7] {
    color: var(--text-muted, #6b7280);
}

.zeile-sub[b-dlfjg3hye7] {
    display: block;
    font-size: .75rem;
    color: var(--text-muted, #6b7280);
    margin-top: .1rem;
}

/* Feste Spaltenverteilung (%): füllt den Kartenbereich immer zu 100% → keine horizontale
   Scrollbar. Inhalte werden über overflow:hidden (unten) auf die Spaltenbreite begrenzt. */
.card:has(.data-table-fixed)[b-dlfjg3hye7] {
    overflow-x: auto;
}
/* /Components/Pages/PersonBearbeiten.razor.rz.scp.css */
.form-grid[b-jkt14zkd2z] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.action-group[b-jkt14zkd2z] {
    display: flex;
    gap: .5rem;
    align-items: center;
}

.text-danger[b-jkt14zkd2z] {
    color: var(--destructive);
}

/* ---- Tab „Herkunft" (Provenienz + Quelldaten aus dem Staging) ---- */
.hk-titel[b-jkt14zkd2z] {
    margin: 1.25rem 0 .5rem;
    font-size: 1rem;
    font-weight: 600;
}

.hk-titel:first-child[b-jkt14zkd2z] {
    margin-top: 0;
}

.hk-leer[b-jkt14zkd2z] {
    color: var(--muted-foreground);
    font-size: .88rem;
}

.hk-quelle[b-jkt14zkd2z] {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: .6rem .75rem;
    margin-bottom: .6rem;
    background: color-mix(in srgb, var(--primary) 3%, transparent);
}

.hk-kopf[b-jkt14zkd2z] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
}

.hk-id[b-jkt14zkd2z] {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.hk-meta[b-jkt14zkd2z] {
    font-size: .78rem;
    color: var(--muted-foreground);
}

.hk-lauf[b-jkt14zkd2z] {
    text-decoration: underline;
}

.hk-roh[b-jkt14zkd2z] {
    margin-top: .5rem;
}

.hk-roh summary[b-jkt14zkd2z] {
    cursor: pointer;
    font-size: .82rem;
    color: var(--muted-foreground);
}

/* Roh-JSON kann breit sein → eigener Scroll-Container, die Seite bleibt ruhig. */
.hk-roh pre[b-jkt14zkd2z] {
    margin: .4rem 0 0;
    padding: .5rem .6rem;
    max-height: 22rem;
    overflow: auto;
    background: var(--background);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    font-size: .76rem;
    line-height: 1.35;
}

/* --- Herkunft-Journal (durchgehende Timeline) --- */
.hk-journal[b-jkt14zkd2z] { list-style: none; margin: 0; padding: 0; }
.hk-journal-eintrag[b-jkt14zkd2z] { display: flex; gap: .7rem; padding: .6rem 0; border-top: 1px solid var(--border); }
.hk-journal-eintrag:first-child[b-jkt14zkd2z] { border-top: none; }
.hk-journal-punkt[b-jkt14zkd2z] { flex: 0 0 auto; width: .7rem; height: .7rem; margin-top: .3rem; border-radius: 50%; background: var(--muted-foreground); }
.hk-journal-punkt.ist-aktuell[b-jkt14zkd2z] { background: #1f8a4c; }
.hk-journal-punkt.ist-aenderung[b-jkt14zkd2z] { background: var(--primary); }
.hk-journal-punkt.ist-quelle[b-jkt14zkd2z] { background: var(--hg-gelb); }
.hk-journal-punkt.ist-antrag[b-jkt14zkd2z] { background: #7c3aed; }
.hk-journal-punkt.ist-anlage[b-jkt14zkd2z] { background: #082B54; }
.hk-journal-inhalt[b-jkt14zkd2z] { flex: 1 1 auto; min-width: 0; }
.hk-journal-kopf[b-jkt14zkd2z] { display: flex; flex-wrap: wrap; gap: .5rem; align-items: baseline; }
.hk-journal-titel[b-jkt14zkd2z] { font-weight: 600; }
.hk-journal-art[b-jkt14zkd2z] { font-size: .68rem; text-transform: uppercase; letter-spacing: .03em; font-weight: 700; color: var(--muted-foreground); background: var(--muted); padding: .05rem .4rem; border-radius: var(--radius); }
.hk-journal-tag[b-jkt14zkd2z] { font-size: .68rem; text-transform: uppercase; letter-spacing: .03em; color: #1f8a4c; font-weight: 700; }
.hk-journal-zeit[b-jkt14zkd2z] { font-size: .78rem; color: color-mix(in srgb, var(--muted-foreground) 75%, var(--card)); }
.hk-journal-detail[b-jkt14zkd2z] { font-size: .88rem; overflow-wrap: anywhere; }
.hk-journal-meta-zeile[b-jkt14zkd2z] { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-top: .2rem; }

.hk-alt[b-jkt14zkd2z] { color: var(--muted-foreground); text-decoration: line-through; }
.hk-leer-wert[b-jkt14zkd2z] { color: var(--muted-foreground); font-style: italic; }
.hk-pfeil[b-jkt14zkd2z] { color: var(--muted-foreground); margin: 0 .25rem; }
.hk-neu[b-jkt14zkd2z] { font-weight: 600; }

/* Weicher Lebenszyklus (ADR-026): Status-Badge + Pin-Control im Detail-Kopf. */
.detail-header-lebenszyklus[b-jkt14zkd2z] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
    margin-top: .6rem;
}

.dhl-hint[b-jkt14zkd2z] {
    font-size: .8rem;
    color: var(--muted-foreground);
}
/* /Components/Pages/Personen.razor.rz.scp.css */
.zeilen-aktionen[b-bkt67algzq] {
    display: flex;
    gap: .5rem;
    justify-content: flex-end;
}
/* /Components/Pages/Spielberechtigungen.razor.rz.scp.css */
.leiste[b-ghxewmyo9g] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .7rem;
    padding: .8rem .9rem;
}

.anzahl-box[b-ghxewmyo9g] {
    display: flex;
    align-items: baseline;
    gap: .35rem;
}

.anzahl-zahl[b-ghxewmyo9g] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--primary);
    font-variant-numeric: tabular-nums;
}

.anzahl-lbl[b-ghxewmyo9g] {
    font-size: .85rem;
    color: var(--muted-foreground);
}

.anzahl-hinweis[b-ghxewmyo9g] {
    font-size: .8rem;
    color: #b45309;
    font-weight: 600;
}

.saison-wahl[b-ghxewmyo9g] {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.saison-wahl label[b-ghxewmyo9g] {
    font-size: .85rem;
    font-weight: 600;
}

.saison-wahl .form-input[b-ghxewmyo9g] {
    max-width: 16rem;
}

/* Kombi-Filter je Quelle – Badges inline hinter der Spaltenüberschrift. */
.th-label-kombi[b-ghxewmyo9g] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .3rem;
}

/* Nur das Label (nicht die Badges) ist sortierbar → Pointer nur dort. */
.th-label-kombi .sortable[b-ghxewmyo9g] {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: .375rem;
}

.th-label-kombi .sortable:hover[b-ghxewmyo9g] {
    color: var(--foreground);
}

.kombi-badge[b-ghxewmyo9g] {
    cursor: pointer;
    user-select: none;
    font-weight: 400;
    font-size: .72rem;
}

.team-zeile[b-ghxewmyo9g] {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Stammverein/Mitgliedschaften: je Mitgliedschaft ein Kasten (Verein · Zeitraum · Status),
   optisch wie die Spielberechtigungs-Chips, aber jeweils auf eigener Zeile (width: fit-content). */
.mg-zeile[b-ghxewmyo9g] {
    display: flex;
    width: fit-content;
    align-items: center;
    flex-wrap: wrap;
    gap: .3rem;
    margin: .12rem 0;
    padding: .1rem .4rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--primary) 3%, transparent);
}

.mg-verein[b-ghxewmyo9g] {
    font-weight: 600;
    font-size: .82rem;
}

.mg-zeit[b-ghxewmyo9g] {
    font-size: .76rem;
    color: var(--muted-foreground);
    font-variant-numeric: tabular-nums;
}

/* Kombi-Zelle: je Spielberechtigung ein Chip, umbrechend. */
.sb-chip[b-ghxewmyo9g] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin: .12rem .3rem .12rem 0;
    padding: .1rem .4rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--primary) 3%, transparent);
    white-space: nowrap;
}

.sb-quelle[b-ghxewmyo9g] {
    font-weight: 600;
    font-size: .82rem;
}

.sb-id[b-ghxewmyo9g] {
    font-size: .82rem;
    color: var(--muted-foreground);
    font-variant-numeric: tabular-nums;
}

.sb-bis[b-ghxewmyo9g] {
    font-size: .76rem;
    color: var(--muted-foreground);
    font-variant-numeric: tabular-nums;
}

.sb-roh[b-ghxewmyo9g] {
    font-size: .74rem;
    color: var(--muted-foreground);
}

/* Mobile: Chips untereinander, damit sie lesbar bleiben. */
@media (max-width: 640px) {
    .sb-chip[b-ghxewmyo9g] {
        display: flex;
        margin: .2rem 0;
    }
}
/* /Components/Pages/Spieltagsplanung/Hallenzeiten.razor.rz.scp.css */
/* Layout-Klassen (hz-*) liegen global in app.css, da sie auch in den Dialog-Komponenten
   (SerieFormDialog/FensterFormDialog) und auf der Serien-Seite verwendet werden.
   Scoped CSS würde komponentenübergreifend nicht greifen. */
/* /Components/Pages/Spieltagsplanung/MannschaftskopplungAbschnitt.razor.rz.scp.css */
/* Diese Sektion ist eine eigene Komponente – die szr-*-Layoutklassen der Regeln-Seite sind dort
   scoped und greifen hier nicht. Die benötigten Regeln daher lokal spiegeln (gleiche Namen, damit
   das Markup unverändert bleibt und zur Regeln-Seite konsistent aussieht). */
.szr-card[b-0famwq0jsj] { padding: 1.25rem 1.5rem; }
.szr-titel[b-0famwq0jsj] { margin: 0 0 .35rem; font-size: 1rem; font-weight: 600; }
.szr-intro[b-0famwq0jsj] { color: var(--muted-foreground); font-size: .9rem; margin: 0 0 1rem; line-height: 1.5; }
.szr-scroll[b-0famwq0jsj] { overflow-x: auto; }
.szr-tab th[b-0famwq0jsj] { white-space: nowrap; }
.szr-leer[b-0famwq0jsj] { color: var(--muted-foreground); font-style: italic; }
.szr-add[b-0famwq0jsj] { margin-top: .9rem; }

.kop-card[b-0famwq0jsj] { margin-top: 1.25rem; }

/* Mannschafts-Badges in der Liste */
.kop-team[b-0famwq0jsj] {
    display: inline-block;
    padding: .1rem .5rem;
    margin: .1rem .25rem .1rem 0;
    border-radius: 999px;
    background: color-mix(in srgb, var(--primary) 10%, var(--card));
    border: 1px solid color-mix(in srgb, var(--primary) 25%, transparent);
    font-size: .82rem;
    white-space: nowrap;
}

/* Regel-Badge (nicht gleichzeitig / zusammenhalten) */
.kop-tag[b-0famwq0jsj] {
    display: inline-block;
    padding: .05rem .5rem;
    border-radius: 4px;
    font-size: .78rem;
    font-weight: 600;
    color: var(--muted-foreground);
    background: color-mix(in srgb, var(--muted) 45%, transparent);
}

.kop-tag-hart[b-0famwq0jsj] {
    color: #b45309;
    background: color-mix(in srgb, #b45309 14%, transparent);
}

.kop-bem[b-0famwq0jsj] { color: var(--muted-foreground); font-size: .85rem; }

.kop-actions[b-0famwq0jsj] { white-space: nowrap; text-align: right; }
.kop-confirm[b-0famwq0jsj] { color: #b91c1c; font-size: .82rem; margin-right: .35rem; }

.kop-icon-btn[b-0famwq0jsj] {
    background: none;
    border: none;
    padding: .2rem;
    cursor: pointer;
    color: var(--muted-foreground);
    border-radius: 4px;
}

.kop-icon-btn:hover[b-0famwq0jsj] { background: var(--muted); color: var(--foreground); }

/* Dialog */
.kop-dialog[b-0famwq0jsj] { max-width: 34rem; width: min(92vw, 34rem); }

.kop-fehler[b-0famwq0jsj] {
    padding: .5rem .7rem;
    margin-bottom: .75rem;
    border-radius: var(--radius);
    background: color-mix(in srgb, #b91c1c 10%, transparent);
    border: 1px solid color-mix(in srgb, #b91c1c 35%, transparent);
    color: #b91c1c;
    font-size: .85rem;
}

.kop-teams[b-0famwq0jsj] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: .1rem .75rem;
    max-height: 14rem;
    overflow-y: auto;
    padding: .5rem .6rem;
    margin-bottom: .9rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.kop-teamwahl[b-0famwq0jsj] { display: inline-flex; align-items: center; gap: .4rem; cursor: pointer; padding: .15rem 0; font-size: .88rem; }

.kop-regeln[b-0famwq0jsj] { display: flex; flex-direction: column; gap: .3rem; margin-bottom: .9rem; }
/* /Components/Pages/Spieltagsplanung/SpieltagsplanungPlanung.razor.rz.scp.css */
.pl-leer[b-z3qdk60jax] {
    padding: 1.5rem;
    color: var(--muted-foreground);
}

.pl-summe[b-z3qdk60jax] {
    padding: 0.85rem 1rem;
    margin-bottom: 0.85rem;
}

/* Card-Kopf: links Kennzahlen + Optionen dicht gestapelt, rechts die Button-Reihen – so entsteht links
   keine vertikale Lücke wegen der Buttons. */
.pl-summe-haupt[b-z3qdk60jax] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 1rem;
}

.pl-summe-links[b-z3qdk60jax] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
}

.pl-summe-info[b-z3qdk60jax] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
}

/* Zwei Button-Reihen rechts: Reihe 1 = Downloads, Reihe 2 = Aktionen (= die kleinen Wochenend-Buttons, für alle). */
.pl-summe-akt[b-z3qdk60jax] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;   /* beide Button-Reihen nach rechts */
    gap: 0.4rem;
}

.pl-summe-reihe[b-z3qdk60jax] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.pl-summe-check[b-z3qdk60jax] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.9rem;
    color: var(--muted-foreground);
}

.pl-probleme[b-z3qdk60jax] {
    padding: 0.6rem 1rem;
    margin-bottom: 0.85rem;
    border-left: 3px solid #b45309;
}

.pl-probleme-kopf[b-z3qdk60jax] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    color: #b45309;
    font-weight: 600;
}

.pl-probleme-tab[b-z3qdk60jax] {
    margin-top: 0.5rem;
}

.pl-highlight td[b-z3qdk60jax] {
    background: color-mix(in srgb, var(--primary) 16%, transparent);
    transition: background 0.4s ease;
}

.pl-tools[b-z3qdk60jax] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.9rem;
    padding: 0.75rem 1rem;
    margin-bottom: 0.6rem;
}

.pl-tools-lbl[b-z3qdk60jax] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 600;
}

.pl-tools-feld[b-z3qdk60jax] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--muted-foreground);
    font-size: 0.9rem;
}

.pl-tools-check[b-z3qdk60jax] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.9rem;
}

.pl-inp-zeit[b-z3qdk60jax] {
    width: 6.5rem;
}

.pl-bericht[b-z3qdk60jax] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem;
    padding: 0.7rem 1rem;
    margin-bottom: 0.85rem;
    border-left: 3px solid var(--primary);
}

.pl-bericht-hin[b-z3qdk60jax] {
    flex-basis: 100%;
    margin: 0.4rem 0 0;
    padding-left: 1.1rem;
    color: #b45309;
    font-size: 0.85rem;
}

.pl-we-vorschlag[b-z3qdk60jax] {
    margin-left: auto;
    padding: 0.25rem 0.5rem;
}

/* Die drei Wochenend-Knoepfe (neu vorschlagen, Spiel erfassen, Vormerkungen loeschen) sind reine
   Icon-Buttons und muessen exakt gleich gross sein. */
.pl-we-clear[b-z3qdk60jax],
.pl-we-erfassen[b-z3qdk60jax] {
    padding: 0.25rem 0.5rem;
    line-height: 1;
}

.pl-intro[b-z3qdk60jax] {
    color: var(--muted-foreground);
    font-size: 0.9rem;
    margin: 0 0 1rem;
}

.pl-we[b-z3qdk60jax] {
    padding: 0.75rem 1rem;
    margin-bottom: 0.85rem;
}

.pl-we-kopf[b-z3qdk60jax] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    cursor: pointer;
    flex-wrap: wrap;
}

.pl-chev[b-z3qdk60jax] {
    transition: transform 0.15s ease;
    color: var(--muted-foreground);
}

.pl-chev-auf[b-z3qdk60jax] {
    transform: rotate(90deg);
}

.pl-we-titel[b-z3qdk60jax] {
    font-weight: 600;
}

.pl-bedarf[b-z3qdk60jax] {
    color: var(--primary);
    font-weight: 600;
}

/* Hallen-Pill im Wochenend-Kopf: Farbkreis = Halle, Pillfarbe = Belegungs-Status. */
.pl-wehalle[b-z3qdk60jax] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 600;
}

/* Farbkreis der Halle (Hintergrund per Inline-Style gesetzt). */
.pl-wehalle-dot[b-z3qdk60jax] {
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
    flex: none;
}

.pl-wehalle-zeit[b-z3qdk60jax] {
    margin-left: 0.35rem;
    font-variant-numeric: tabular-nums;
    opacity: 0.85;
}

/* grau: verfügbar, aber nicht genutzt */
.pl-wehalle-frei[b-z3qdk60jax] {
    color: #475569;
    background: color-mix(in srgb, #64748b 14%, transparent);
}

/* grün: sauber belegt */
.pl-wehalle-ok[b-z3qdk60jax] {
    color: #15803d;
    background: color-mix(in srgb, #15803d 12%, transparent);
}

/* rot: Problem (Spiele außerhalb der Hallenzeit) */
.pl-wehalle-problem[b-z3qdk60jax] {
    color: #b91c1c;
    background: color-mix(in srgb, #dc2626 12%, transparent);
}

.pl-wehalle-problem svg[b-z3qdk60jax] {
    color: #b91c1c;
}

/* Farbpunkt vor dem Hallennamen (wie in der Hallenzeit-Liste). */
.pl-halle-dot[b-z3qdk60jax] {
    display: inline-block;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    flex: none;
}

.pl-fenster-leer[b-z3qdk60jax] {
    color: #b45309;
    background: color-mix(in srgb, #b45309 10%, transparent);
}

.pl-fenster-klick[b-z3qdk60jax] {
    cursor: pointer;
}

.pl-fenster-klick:hover[b-z3qdk60jax] {
    filter: brightness(0.95);
    text-decoration: underline;
}

.pl-span[b-z3qdk60jax] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: var(--muted-foreground);
    font-size: 0.85rem;
    font-variant-numeric: tabular-nums;
}

.pl-hallen[b-z3qdk60jax] {
    color: var(--muted-foreground);
    font-size: 0.85rem;
    max-width: 18rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pl-ohne[b-z3qdk60jax] {
    color: #b45309;
    font-size: 0.85rem;
    font-weight: 600;
}

.pl-noetig[b-z3qdk60jax] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: #b45309;
    background: color-mix(in srgb, #b45309 10%, transparent);
    border-radius: var(--radius);
    padding: 0.1rem 0.45rem;
    font-size: 0.82rem;
    font-weight: 600;
}

.pl-passt[b-z3qdk60jax] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: #15803d;
    font-size: 0.82rem;
    font-weight: 600;
}

.pl-we-tools[b-z3qdk60jax] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin: 0.7rem 0 0.4rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--border);
}

.pl-we-tools-hint[b-z3qdk60jax] {
    color: var(--muted-foreground);
    font-size: 0.82rem;
}

.pl-tag[b-z3qdk60jax] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
    padding: 0.35rem 0;
    font-size: 0.88rem;
    color: var(--muted-foreground);
}

.pl-tag strong[b-z3qdk60jax] {
    color: var(--foreground);
    min-width: 5rem;
}

.pl-tag-zeit[b-z3qdk60jax] {
    color: var(--primary);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.pl-scroll[b-z3qdk60jax] {
    overflow-x: auto;
    margin-top: 0.6rem;
}

.pl-gruppe[b-z3qdk60jax] {
    margin-top: 0.8rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 0.5rem 0.7rem 0.7rem;
}

.pl-gruppe-kopf[b-z3qdk60jax] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding-bottom: 0.15rem;
    cursor: pointer;
}

.pl-gruppe-titel[b-z3qdk60jax] {
    font-weight: 600;
}

.pl-gruppe-anzahl[b-z3qdk60jax] {
    color: var(--muted-foreground);
    font-size: 0.85rem;
}

.pl-fenster[b-z3qdk60jax] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 600;
}

.pl-fenster.hz-status-bestaetigt[b-z3qdk60jax] {
    color: #15803d;
    background: color-mix(in srgb, #15803d 12%, transparent);
}

.pl-fenster.hz-status-angefragt[b-z3qdk60jax] {
    color: #b45309;
    background: color-mix(in srgb, #b45309 12%, transparent);
}

.pl-fenster.hz-status-gewuenscht[b-z3qdk60jax] {
    color: #6b7280;
    background: color-mix(in srgb, #6b7280 14%, transparent);
}

.pl-gruppe-leer[b-z3qdk60jax] {
    padding: 0.6rem 0.2rem 0.2rem;
    color: var(--muted-foreground);
    font-size: 0.88rem;
    font-style: italic;
}

.pl-we-save-bar[b-z3qdk60jax] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.8rem;
}

.pl-gruppe-halle[b-z3qdk60jax] {
    margin-left: auto;
    max-width: 14rem;
}

.pl-gruppe .pl-scroll[b-z3qdk60jax] {
    margin-top: 0.35rem;
}

/* Feste Spaltenbreiten (colgroup) → Inhaltsänderungen (✓/×/Text) lassen die Spalten NICHT mehr neu berechnen. */
.pl-tab[b-z3qdk60jax] {
    table-layout: fixed;
    width: 100%;
}

.pl-tab th[b-z3qdk60jax] {
    white-space: nowrap;
}

/* Eingaben füllen ihre feste Spalte, statt sie zu sprengen. */
.pl-tab .pl-inp[b-z3qdk60jax],
.pl-tab .pl-sel[b-z3qdk60jax] {
    max-width: 100%;
    box-sizing: border-box;
}

/* Lange Namen in fester Spalte umbrechen statt zu überlaufen. */
.pl-tab td[data-label="Gegner"][b-z3qdk60jax],
.pl-tab td[data-label="Wettbewerb"][b-z3qdk60jax],
.pl-tab td[data-label="Mannschaft"][b-z3qdk60jax] {
    overflow-wrap: anywhere;
}

.pl-konflikt td[b-z3qdk60jax] {
    background: color-mix(in srgb, #dc2626 8%, transparent);
}

/* Drag-Griff (Burger) zum Umsortieren der Spiele. */
.pl-griff[b-z3qdk60jax] {
    text-align: center;
    vertical-align: middle;
    padding-left: 0.2rem;
    padding-right: 0.2rem;
}

.pl-griff-anfasser[b-z3qdk60jax] {
    cursor: grab;
    color: var(--muted-foreground);
    font-size: 0.9rem;
    line-height: 1;
    user-select: none;
    display: inline-block;
    padding: 0.15rem 0.1rem;
}

.pl-griff-anfasser:hover[b-z3qdk60jax] {
    color: var(--foreground);
}

.pl-griff-anfasser:active[b-z3qdk60jax] {
    cursor: grabbing;
}

/* Zielzeile beim Drüberziehen markieren. */
.pl-dragover td[b-z3qdk60jax] {
    box-shadow: inset 0 2px 0 0 var(--primary);
}

.pl-zeiten-row td[b-z3qdk60jax] {
    border-bottom: none;
    padding-top: 0.5rem;
}

.pl-warn[b-z3qdk60jax] {
    color: #b45309;
    margin-left: 0.35rem;
    vertical-align: middle;
}

.pl-inp[b-z3qdk60jax],
.pl-sel[b-z3qdk60jax] {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 0.3rem 0.4rem;
    font: inherit;
    background-color: #fff;
    max-width: 100%;
}

/* Zeit-/Datumsfelder brauchen Platz fuer das Uhr-/Kalendersymbol des Browsers - sonst wird die
   Uhrzeit abgeschnitten. Untergrenze deshalb hier, nicht ueber die Spaltenbreite. */
.pl-inp[type="time"][b-z3qdk60jax] {
    min-width: 5.9rem;
}

.pl-sel[b-z3qdk60jax] {
    max-width: 12rem;
}

.pl-inp:focus[b-z3qdk60jax],
.pl-sel:focus[b-z3qdk60jax] {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 15%, transparent);
}

/* Normale Tabellenzelle (NICHT display:flex) – sonst fällt sie aus der Zeilenhöhe und die
   untere Rahmenlinie sitzt höher als der Rest der Zeile. Buttons/Slots werden inline ausgerichtet. */
.pl-akt[b-z3qdk60jax] {
    white-space: nowrap;
    vertical-align: middle;
    min-width: 10.5rem;
}

.pl-akt > *[b-z3qdk60jax] {
    vertical-align: middle;
}

.pl-akt .pl-akt-slot[b-z3qdk60jax],
.pl-akt .pl-ok[b-z3qdk60jax] {
    margin-left: 0.35rem;
}

/* Feste Slots für × und ✓: reservieren immer denselben Platz, egal ob sichtbar → kein Zeilensprung.
   flex: none, damit die leeren Slots als Flex-Items NICHT auf 0 zusammenschrumpfen. */
.pl-akt-slot[b-z3qdk60jax] {
    flex: none;
    display: inline-flex;
    justify-content: center;
    width: 2.25rem;
}

.pl-ok[b-z3qdk60jax] {
    flex: none;
    display: inline-flex;
    justify-content: center;
    width: 1.25rem;
    color: var(--primary);
}

.pl-ok[b-z3qdk60jax] {
    color: var(--primary);
}

/* Schloss an der Ansetzung: offen = unauffaellig, geschlossen = deutlich (die Zeile ist geschuetzt). */
.pl-schloss-zelle[b-z3qdk60jax] {
    text-align: center;
}

.pl-schloss[b-z3qdk60jax] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: none;
    padding: 0.15rem;
    color: var(--muted-foreground);
    opacity: 0.45;
    cursor: pointer;
}

.pl-schloss:hover[b-z3qdk60jax] {
    opacity: 1;
    color: var(--primary);
}

.pl-schloss-zu[b-z3qdk60jax] {
    opacity: 1;
    color: var(--primary);
}

/* Halle eines Koop-Vereins: neutral, kein Mangel - dort buchen wir keine Hallenzeit. */
.pl-fenster-fremd[b-z3qdk60jax] {
    color: #374151;
    background: color-mix(in srgb, #374151 10%, transparent);
}

/* Meldender Verein (Kooperation) in eigener Spalte vor der Mannschaft - so bricht der Name nicht um.
   Farbe kommt aus den Vereins-Stammdaten (VereinBadge), damit HG und MHV auf einen Blick unterscheidbar
   sind wie auf der Übersichtsseite. */
.pl-koop-zelle[b-z3qdk60jax] {
    text-align: right;
    white-space: nowrap;
    padding-right: 0.15rem;
}

/* Loeschen nur fuer von Hand angelegte Spiele - am Zeilenende, damit es nicht zwischen den Daten steht. */
.pl-loesch-zelle[b-z3qdk60jax] {
    text-align: center;
}

.pl-loeschen[b-z3qdk60jax] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: none;
    padding: 0.15rem;
    color: var(--muted-foreground);
    opacity: 0.45;
    cursor: pointer;
    line-height: 1;
}

.pl-loeschen:hover[b-z3qdk60jax] {
    opacity: 1;
}

.pl-loeschen:hover[b-z3qdk60jax] {
    color: #b91c1c;
}

/* Erfassungsformular für Koop-Spiele. */
.pl-manuell[b-z3qdk60jax] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.5rem;
    margin-top: 0.6rem;
    padding: 0.75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

/* Steht in eigener Zeile unter den Feldern - der Unterschied "mit/ohne Anwurfzeit" entscheidet, ob der
   Vorschlag das Spiel anfasst, und das sieht man dem Formular sonst nicht an. */
.pl-manuell-hinweis[b-z3qdk60jax] {
    flex: 1 0 100%;
    font-size: 0.78rem;
    color: var(--muted-foreground);
}

.pl-manuell label[b-z3qdk60jax] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-size: 0.78rem;
    color: var(--muted-foreground);
}

/* Textfelder in der Zeile (Gegner/Wettbewerb bei von Hand erfassten Spielen) fuellen die Spalte. */
.pl-inp-text[b-z3qdk60jax] {
    width: 100%;
    min-width: 6rem;
}

/* H360-Übertragung: Vorschau vor dem Senden. Übersprungene Zeilen bleiben sichtbar - der Grund ist
   die eigentliche Information ("Frist abgelaufen", "keine Halle"). */
.pl-we-h360[b-z3qdk60jax] {
    padding: 0.25rem 0.5rem;
    line-height: 1;
}

.pl-h360-hinweis[b-z3qdk60jax] {
    margin: 0 0 0.6rem;
    color: var(--muted-foreground);
    font-size: 0.88rem;
}

/* Der Nebeneffekt "Ansetzen = Bestätigen" ist von außen nicht erkennbar und nicht zurückzuholen -
   deshalb abgesetzt statt als weiterer grauer Fließtext. */
.pl-h360-warnung[b-z3qdk60jax] {
    padding: 0.5rem 0.65rem;
    border-left: 3px solid #b45309;
    border-radius: var(--radius);
    color: var(--foreground);
    background: color-mix(in srgb, #b45309 8%, transparent);
}

.pl-h360-tab td[b-z3qdk60jax] {
    font-size: 0.88rem;
}

.pl-h360-aus td[b-z3qdk60jax] {
    color: var(--muted-foreground);
}


/* Status der Ansetzung gegenüber H360. Grün erst, wenn H360 bestätigt hat - "gesendet" heißt nur,
   dass wir es abgeschickt haben. */
.vm-status[b-z3qdk60jax] {
    margin-left: 0.35rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    font-size: 0.72rem;
    color: var(--muted-foreground);
    background: color-mix(in srgb, var(--muted-foreground) 12%, transparent);
    white-space: nowrap;
}

.vm-gesendet[b-z3qdk60jax] {
    color: #b45309;
    background: color-mix(in srgb, #b45309 12%, transparent);
}

.vm-bestaetigt[b-z3qdk60jax] {
    color: #15803d;
    background: color-mix(in srgb, #15803d 12%, transparent);
}

.pl-h360-senden[b-z3qdk60jax] {
    text-align: right;
    white-space: nowrap;
}

/* Deckungsgleich mit H360 - bleibt lesbar, tritt aber zurueck, damit die zu sendenden Zeilen
   hervorstechen. */
.pl-h360-gleich td[b-z3qdk60jax] {
    color: var(--muted-foreground);
}

/* Ueber alle Wochenenden sind es 148 Zeilen - die Liste scrollt im Dialog, der Kopf mit dem
   Alles-Haken bleibt stehen. */
.pl-h360-scroll[b-z3qdk60jax] {
    max-height: min(55vh, 32rem);
    overflow-y: auto;
}

.pl-h360-scroll thead th[b-z3qdk60jax] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--card);
}

.pl-h360-wahl[b-z3qdk60jax] {
    width: 2rem;
    text-align: center;
}

.pl-h360-wahl input[b-z3qdk60jax] {
    margin: 0;
    cursor: pointer;
}

/* Hover umfasst Spiel + Notiz (je Spiel ein tbody); die „Zeiten vergeben"-Zeile bekommt keinen Hover. */
.pl-tab tbody.pl-spiel:hover td[b-z3qdk60jax] { background-color: var(--muted); }
.pl-tab .pl-zeiten-row:hover[b-z3qdk60jax] { background-color: transparent; }

/* Interne Notiz: read-only Zeile unter dem Spiel. Eigene Zellen für Spalte 1+2, damit das Icon per
   gleicher Zentrierung wie das Schloss exakt darunter sitzt. Bearbeitung über Stift-Button + Modal. */
.pl-notiz-row > td[b-z3qdk60jax] { padding: .1rem 0 .5rem; border-top: none; vertical-align: middle;
                     background-color: color-mix(in srgb, #ffd000 9%, transparent); }
.pl-notiz-iconzelle[b-z3qdk60jax] { text-align: center; color: var(--muted-foreground); }        /* wie .pl-schloss-zelle */
/* Das Icon ist ein svg in der SvgIcon-Komponente – nur per ::deep erreichbar. */
.pl-notiz-iconzelle[b-z3qdk60jax]  svg { vertical-align: middle; position: relative; left: .35rem; top: .15rem; }
.pl-notiz-textzelle[b-z3qdk60jax] { padding-left: .1rem; }
.pl-notiz-text[b-z3qdk60jax] { color: var(--muted-foreground); font-size: .85rem; font-style: italic; white-space: pre-wrap; position: relative; left: .5rem; top: .15rem; }

.pl-notiz-btn[b-z3qdk60jax] {
    background: none;
    border: 1px solid transparent;
    padding: .35rem;
    cursor: pointer;
    color: var(--muted-foreground);
    border-radius: 0;
    line-height: 1;
}
.pl-notiz-btn:hover[b-z3qdk60jax] { background: var(--muted); color: var(--foreground); }
/* Mild gelb, wenn eine Notiz hinterlegt ist. */
.pl-notiz-btn-voll[b-z3qdk60jax] {
    background: color-mix(in srgb, #ffd000 22%, transparent);
    border-color: color-mix(in srgb, #ffd000 45%, transparent);
    color: #92400e;
}
.pl-notiz-btn-voll:hover[b-z3qdk60jax] { background: color-mix(in srgb, #ffd000 32%, transparent); color: #92400e; }

.pl-notiz-dialog[b-z3qdk60jax] { max-width: 34rem; width: min(92vw, 34rem); }
.pl-notiz-area[b-z3qdk60jax] {
    width: 100%;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: .5rem;
    font: inherit;
    resize: vertical;
    background: var(--background);
}

/* Bemerkung der Hallenzeit als dezent gelbe Notiz über der Spieletabelle. */
.pl-fenster-notiz[b-z3qdk60jax] {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin: .15rem 0 .35rem 1.9rem;
    padding: .3rem .6rem;
    background-color: color-mix(in srgb, #ffd000 9%, transparent);
    border-radius: var(--radius);
    color: var(--muted-foreground);
    font-size: .85rem;
    font-style: italic;
    max-width: 60rem;
}
.pl-fenster-notiz[b-z3qdk60jax]  svg { flex: 0 0 auto; }

/* Fußzeile der Summen-Card: spielfrei-Häkchen links, Planungsbezeichner (nicht gespeichert) rechts. */
.pl-summe-fuss[b-z3qdk60jax] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.2rem;
}
/* Der eigene margin-top des Häkchens würde es im Flex-Row gegen das Bezeichner-Label verschieben. */
.pl-summe-fuss .pl-summe-check[b-z3qdk60jax] {
    margin-top: 0;
}
.pl-summe-bez[b-z3qdk60jax] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.9rem;
    color: var(--muted-foreground);
}
.pl-bez-input[b-z3qdk60jax] {
    width: 11rem;
    height: 1.9rem;
    padding: 0.1rem 0.45rem;
    font-size: 0.85rem;
}

/* H360-Übertragungsstatus als Icon-Button in der Aktionsspalte (hinter dem Notiz-Button). Farbe nach
   Status; Klick öffnet das Übertragungs-Modal mit genau diesem Spiel angehakt. Tooltip = Status-Text. */
.pl-h360-btn[b-z3qdk60jax] {
    padding: .35rem;
    border: none;
    border-radius: 0;
    background: transparent;
    cursor: pointer;
    line-height: 0;
}
.pl-h360-btn:hover[b-z3qdk60jax] { background-color: var(--muted); }
.pl-h360-btn.ab-offen[b-z3qdk60jax] { color: #94a3b8; }     /* offen ggü. H360 (neutral/grau) */
.pl-h360-btn.ab-gesendet[b-z3qdk60jax] { color: #0e55a1; }  /* an H360 gesendet (blau) */
.pl-h360-btn.ab-ok[b-z3qdk60jax] { color: #15803d; }        /* stimmt mit H360 überein (grün) */
.pl-h360-btn.ab-weicht[b-z3qdk60jax] { color: #b91c1c; }    /* weicht von H360 ab (rot) */
.pl-h360-btn[b-z3qdk60jax]  svg { display: block; }

/* Verbindlichkeits-Achse: Schloss = in H360 nicht mehr frei änderbar (Frist/Verband). */
.pl-h360-lock[b-z3qdk60jax] {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    color: var(--muted-foreground);
    margin-left: .1rem;
}

/* Eigene H360-Spalte (Status-Icon), zentriert. */
.pl-h360-th[b-z3qdk60jax] { text-align: center; }
.pl-h360-zelle[b-z3qdk60jax] { text-align: center; }

/* Gegenüberstellung Plan ↔ H360: je Spiel ein tbody mit zwei Zeilen (oben Plan, unten H360). */
.pl-h360-spiel:hover td[b-z3qdk60jax] { background-color: var(--muted); }

/* Checkbox + rowspan-Zellen vertikal mittig über beide Zeilen. */
.pl-h360-spiel td[rowspan][b-z3qdk60jax] { vertical-align: middle; }

/* Quelle-Etikett (Plan / H360) je Zeile. */
.pl-h360-quelle[b-z3qdk60jax] {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--muted-foreground);
    white-space: nowrap;
}
/* H360-Zeile insgesamt dezenter (der importierte Stand). */
.pl-h360-quelle-h360 ~ td[b-z3qdk60jax],
.pl-h360-quelle-h360[b-z3qdk60jax] { color: var(--muted-foreground); }

/* Abweichung zwischen Plan und H360: leicht gelb hinterlegt – gewinnt auch über den Zeilen-Hover. */
.pl-h360-spiel td.pl-h360-diff[b-z3qdk60jax],
.pl-h360-spiel:hover td.pl-h360-diff[b-z3qdk60jax] {
    background-color: color-mix(in srgb, #ffd000 16%, transparent);
}

.pl-h360-nichtgewaehlt[b-z3qdk60jax] { color: var(--muted-foreground); font-style: italic; }

.pl-h360-abruf[b-z3qdk60jax] {
    margin: 0.5rem 0 0;
    font-size: 0.82rem;
    color: var(--muted-foreground);
}

/* Planungsstand-ablegen-Modal: Eingabefelder gestapelt. */
.pl-stand-feld[b-z3qdk60jax] { display: flex; flex-direction: column; gap: 0.25rem; margin-bottom: 0.8rem; }
.pl-stand-feld:last-child[b-z3qdk60jax] { margin-bottom: 0; }
.pl-stand-notiz[b-z3qdk60jax] { resize: vertical; }
/* /Components/Pages/Spieltagsplanung/SpieltagsplanungPruefung.razor.rz.scp.css */
.pr-ok[b-t6fmofzkah] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 1.25rem 1.5rem;
    color: var(--primary);
    font-weight: 500;
}

.pr-intro[b-t6fmofzkah] {
    color: var(--muted-foreground);
    font-size: 0.9rem;
    margin: 0 0 1rem;
}

.pr-gruppe[b-t6fmofzkah] {
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.pr-titel[b-t6fmofzkah] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0 0 0.6rem;
    font-size: 1rem;
    font-weight: 600;
    color: #b45309;
}

.pr-liste[b-t6fmofzkah] {
    margin: 0;
    padding-left: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.9rem;
}
/* /Components/Pages/Spieltagsplanung/SpieltagsplanungSpielplaene.razor.rz.scp.css */
.container-wide[b-xhi47vaz4t] { display: flex; flex-direction: column; gap: 1rem; }

.spl-filter[b-xhi47vaz4t] { padding: 1rem 1.25rem; }
.spl-row[b-xhi47vaz4t] { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem 1rem; }
.spl-field[b-xhi47vaz4t] { display: flex; flex-direction: column; min-width: 0; flex: 0 1 14rem; }
.spl-field .form-input[b-xhi47vaz4t] { max-width: 16rem; }

/* Checkboxen umbrechen in eine eigene Zeile unter die Selects (flex-basis 100%); der PDF-Button
   (order 0, margin-left:auto) bleibt dadurch oben rechts neben den Selects. */
.spl-checks[b-xhi47vaz4t] { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem 1rem; padding-bottom: .35rem;
              flex-basis: 100%; order: 1; }
.spl-check[b-xhi47vaz4t] { display: inline-flex; align-items: center; gap: .4rem; cursor: pointer; white-space: nowrap; }

.spl-pdf[b-xhi47vaz4t] { margin-left: auto; align-self: flex-end; }

.spl-liste[b-xhi47vaz4t] { padding: 1.25rem 1.5rem; }
.spl-scroll[b-xhi47vaz4t] { overflow-x: auto; }
.spl-leer[b-xhi47vaz4t] { color: var(--muted-foreground); font-style: italic; margin: 0; }

/* Tabelle: je Spiel ein tbody (zwei Zeilen – Paarung oben, Wettbewerb als schmale Zeile darunter). */
.spl-tab[b-xhi47vaz4t] { width: 100%; border-collapse: collapse; }
.spl-tab th[b-xhi47vaz4t] {
    text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .02em;
    color: var(--muted-foreground); border-bottom: 1px solid var(--border); padding: .4rem .5rem;
}
.spl-tab td[b-xhi47vaz4t] { padding: .35rem .5rem; vertical-align: top; }
.spl-spiel[b-xhi47vaz4t] { border-bottom: 1px solid var(--border); }
/* Zwei Zeilen je Spiel: Werte oben, Kennzeichnungs-Pillen + Wettbewerb in der zweiten Zeile. An der
   Grundlinie ausrichten, damit der TEXT in der Pille auf derselben Höhe wie der Wettbewerb-Text sitzt
   (der Pillen-Hintergrund ragt nur oben/unten über). */
.spl-r1 > td[b-xhi47vaz4t] { padding-bottom: .1rem; }
.spl-r2 > td[b-xhi47vaz4t] { padding-top: 0; vertical-align: baseline; }
/* Pille inline (nicht inline-block): dann ist ihre Text-Grundlinie die echte Baseline und fluchtet mit
   dem Wettbewerb-Text; der farbige Hintergrund ragt nur minimal über. */
.spl-r2 .spl-pill[b-xhi47vaz4t] { display: inline; vertical-align: baseline; }
.spl-pz[b-xhi47vaz4t] { white-space: nowrap; }

/* Interne Notiz je Spiel (dritte Zeile, wenn eingeschaltet). */
/* Interne Notiz: read-only Zeile unter dem Spiel (dezent gelb); Bearbeitung über Stift-Button + Modal – wie in der Planung. */
.spl-r3 > td.spl-notiz[b-xhi47vaz4t] { padding: .1rem .6rem .5rem 1.4rem; color: var(--muted-foreground);
                         background-color: color-mix(in srgb, #ffd000 9%, transparent); }
.spl-notiz[b-xhi47vaz4t]  svg { vertical-align: middle; margin-right: .45rem; position: relative; top: .05rem; }
.spl-notiz-text[b-xhi47vaz4t] { color: var(--muted-foreground); font-size: .85rem; font-style: italic; white-space: pre-wrap; vertical-align: middle; }

.spl-c-akt[b-xhi47vaz4t] { width: 2.6rem; text-align: center; white-space: nowrap; }
.spl-notiz-btn[b-xhi47vaz4t] {
    background: none;
    border: 1px solid transparent;
    padding: .35rem;
    cursor: pointer;
    color: var(--muted-foreground);
    line-height: 1;
}
.spl-notiz-btn:hover[b-xhi47vaz4t] { background: var(--muted); color: var(--foreground); }
.spl-notiz-btn-voll[b-xhi47vaz4t] { background: color-mix(in srgb, #ffd000 22%, transparent); border-color: color-mix(in srgb, #ffd000 45%, transparent); color: #92400e; }
.spl-notiz-btn-voll:hover[b-xhi47vaz4t] { background: color-mix(in srgb, #ffd000 32%, transparent); color: #92400e; }

.spl-notiz-dialog[b-xhi47vaz4t] { max-width: 34rem; width: min(92vw, 34rem); }
.spl-notiz-area[b-xhi47vaz4t] { width: 100%; border: 1px solid var(--border); border-radius: var(--radius); padding: .5rem; font: inherit; resize: vertical; background: var(--background); }

.spl-wett[b-xhi47vaz4t] { font-size: .88rem; color: var(--muted-foreground); }
.spl-wett-team[b-xhi47vaz4t] { font-weight: 600; color: var(--foreground); }

.spl-c-datum[b-xhi47vaz4t] { width: 8rem; white-space: nowrap; }
.spl-c-zeit[b-xhi47vaz4t] { width: 4.5rem; white-space: nowrap; }
.spl-c-ha[b-xhi47vaz4t] { width: 3rem; text-align: center; }
.spl-c-ort[b-xhi47vaz4t] { width: 18rem; }

/* Wochentag: gleiche Größe wie das Datum (nur dezent grau), damit beide Zellen gleich hoch beginnen
   und die Pille darunter in Datum- und Zeit-Spalte auf einer Linie sitzt. */
.spl-wt[b-xhi47vaz4t] { color: var(--muted-foreground); font-weight: 600; }
.spl-tg[b-xhi47vaz4t] { font-weight: 600; font-variant-numeric: tabular-nums; }
.spl-tz[b-xhi47vaz4t] { font-weight: 600; font-variant-numeric: tabular-nums; }
.spl-entwurf[b-xhi47vaz4t] { color: var(--muted-foreground); font-weight: 500; }
.spl-fehlt[b-xhi47vaz4t] { color: #b45309; }

.spl-pill[b-xhi47vaz4t] {
    display: inline-block;
    padding: .05rem .4rem;
    border-radius: 4px;
    font-size: .72rem;
    font-weight: 600;
    vertical-align: middle;
    white-space: nowrap;
}
.spl-pill-geplant[b-xhi47vaz4t] { color: #374151; background: color-mix(in srgb, var(--muted) 55%, transparent); }
.spl-pill-offen[b-xhi47vaz4t] { color: #92400e; background: color-mix(in srgb, #f59e0b 20%, transparent); }

/* Die eigene HG-Mannschaft in der Heim-/Gast-Paarung hervorheben. */
.spl-wir[b-xhi47vaz4t] { font-weight: 700; }

.spl-ha[b-xhi47vaz4t] {
    display: inline-block;
    width: 1.4rem;
    height: 1.4rem;
    line-height: 1.4rem;
    text-align: center;
    border-radius: 4px;
    font-weight: 700;
    font-size: .78rem;
}

.spl-ha-h[b-xhi47vaz4t] { background: #dbeafe; color: #1e40af; }
.spl-ha-a[b-xhi47vaz4t] { background: #f3e8ff; color: #6b21a8; }

/* Planungsbezeichner: Freitext (nicht gespeichert) neben den PDF-Optionen. Kennzeichnet den Ausdruck. */
.spl-bezeichner[b-xhi47vaz4t] { gap: 0.45rem; }
.spl-bez-input[b-xhi47vaz4t] {
    width: 11rem;
    height: 1.9rem;
    padding: 0.1rem 0.45rem;
    font-size: 0.85rem;
}
/* /Components/Pages/Spieltagsplanung/SpieltagsplanungStaende.razor.rz.scp.css */
/* .card liefert global KEIN Padding/Margin - beides muss die Seite selbst setzen (Haus-Muster). */
.ps-kopf[b-fv21esy3we],
.ps-sichern[b-fv21esy3we],
.ps-liste[b-fv21esy3we],
.ps-restore[b-fv21esy3we] {
    padding: 1.25rem 1.5rem;
    margin-bottom: 1rem;
}

.ps-intro[b-fv21esy3we] {
    color: var(--muted-foreground);
    margin: 0 0 0.9rem;
    max-width: 60rem;
}
.ps-saison[b-fv21esy3we] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    max-width: 20rem;
}
.ps-saison-sel[b-fv21esy3we] {
    max-width: 20rem;
}

.ps-h2[b-fv21esy3we] {
    font-size: 1.05rem;
    margin: 0 0 0.8rem;
}
.ps-anzahl[b-fv21esy3we] {
    color: var(--muted-foreground);
    font-weight: 400;
    font-size: 0.9rem;
}

.ps-form[b-fv21esy3we] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.9rem;
}
.ps-feld[b-fv21esy3we] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 0 1 18rem;
    min-width: 0;
}
.ps-feld-notiz[b-fv21esy3we] {
    flex: 1 1 22rem;
}
.ps-form-akt[b-fv21esy3we] {
    display: flex;
    gap: 0.5rem;
    align-items: flex-end;
}

.ps-scroll[b-fv21esy3we] {
    overflow-x: auto;
}
.ps-tab[b-fv21esy3we] {
    width: 100%;
    border-collapse: collapse;
}
.ps-tab th[b-fv21esy3we] {
    text-align: left;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--muted-foreground);
    border-bottom: 1px solid var(--border);
    padding: 0.4rem 0.6rem;
}
.ps-tab td[b-fv21esy3we] {
    padding: 0.55rem 0.6rem;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}
.ps-notiz-zelle[b-fv21esy3we] {
    color: var(--muted-foreground);
    max-width: 24rem;
}
.ps-c-num[b-fv21esy3we] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.ps-c-akt[b-fv21esy3we] {
    width: 10rem;
    white-space: nowrap;
    text-align: right;
}

.ps-leer[b-fv21esy3we] {
    color: var(--muted-foreground);
    font-style: italic;
    margin: 0;
}
.ps-hinweis[b-fv21esy3we] {
    color: var(--muted-foreground);
    font-size: 0.85rem;
    margin: 0.8rem 0 0;
}
/* Datei-Upload als gestylter Button: nativen Input verstecken, Label als Button.
   ::deep, weil der <input> aus dem InputFile-Kind das Scope-Attribut der Seite nicht trägt. */
.ps-upload[b-fv21esy3we] { cursor: pointer; }
.ps-upload[b-fv21esy3we]  input { display: none; }

.ps-restore-meldung[b-fv21esy3we] {
    margin: 0.8rem 0 0;
    font-size: 0.9rem;
    font-weight: 500;
}
.ps-ok[b-fv21esy3we] { color: #15803d; }
.ps-fehler[b-fv21esy3we] { color: #b91c1c; }

/* ---------- An die Trainer veröffentlichen ----------
   Der Block überträgt den aktuellen Stand an HG.HGSpieltagsplanung. Optisch wie
   die übrigen Karten dieser Seite; abgesetzt ist nur die Vorschauzeile. */

.ps-veroeffentlichen[b-fv21esy3we] {
    padding: 1.25rem 1.5rem;
    margin-bottom: 1rem;
}

.ps-vorschau[b-fv21esy3we] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    padding: 0.625rem 0.875rem;
    margin-bottom: 0.75rem;
    background: var(--background);
    border-left: 3px solid var(--primary);
    font-size: 0.875rem;
}

.ps-vorschau-warn[b-fv21esy3we] {
    color: #854d0e;
}

/* Der Trainer-Bereich verschickt keine Mails - offene Beiträge müssen hier auffallen. */
.ps-warnung[b-fv21esy3we] {
    margin: 0.75rem 0 0;
    padding: 0.625rem 0.875rem;
    background: color-mix(in srgb, var(--hg-gelb) 14%, var(--card));
    border-left: 3px solid var(--hg-gelb);
    font-size: 0.875rem;
}
/* /Components/Pages/Spieltagsplanung/SpielzeitRegeln.razor.rz.scp.css */
/* Cards dieser Seite untereinander auf Abstand halten (der globale .container-wide setzt keinen). */
.container-wide[b-qldtxkize4] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.szr-card[b-qldtxkize4] {
    padding: 1.25rem 1.5rem;
}

.szr-intro[b-qldtxkize4] {
    color: var(--muted-foreground);
    font-size: 0.9rem;
    margin: 0 0 1rem;
    line-height: 1.5;
}

.szr-scroll[b-qldtxkize4] {
    overflow-x: auto;
}

.szr-tab th[b-qldtxkize4] {
    white-space: nowrap;
}

.szr-num[b-qldtxkize4] {
    width: 4.5rem;
    text-align: right;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 0.35rem 0.45rem;
    font: inherit;
}

.szr-zeit[b-qldtxkize4] {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 0.35rem 0.45rem;
    font: inherit;
}

.szr-fenster[b-qldtxkize4] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    white-space: nowrap;
}

.szr-bis[b-qldtxkize4] {
    color: var(--muted-foreground);
}

.szr-tag[b-qldtxkize4] {
    max-width: 5rem;
}

.szr-sel[b-qldtxkize4] {
    max-width: 11rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 0.35rem 0.45rem;
    font: inherit;
    background-color: #fff;
}

.szr-num:focus[b-qldtxkize4],
.szr-zeit:focus[b-qldtxkize4],
.szr-sel:focus[b-qldtxkize4] {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 15%, transparent);
}

.szr-default td[b-qldtxkize4] {
    font-weight: 600;
    background: color-mix(in srgb, var(--primary) 4%, transparent);
}

.szr-akt[b-qldtxkize4] {
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.szr-ok[b-qldtxkize4] {
    color: var(--primary);
}

/* Ebene-Zelle: das Entfernen-x steht neben der Bezeichnung statt darunter.
   BEWUSST ohne white-space: nowrap - das zog die Spalte so weit auf, dass die
   13-spaltige Regeltabelle horizontal scrollen musste. Der Name darf umbrechen,
   das x bleibt als Flex-Item daneben. */
.szr-ebene[b-qldtxkize4] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.szr-del[b-qldtxkize4] {
    margin-left: 0;
    border: none;
    background: transparent;
    color: #b91c1c;
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
    padding: 0 0.2rem;
}

.szr-del:hover[b-qldtxkize4] {
    color: #7f1d1d;
}

.szr-neu[b-qldtxkize4] {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.szr-neu-zeile[b-qldtxkize4] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 0.35rem;
}

.szr-neu-select[b-qldtxkize4] {
    max-width: 20rem;
}

/* Zusätzliche Hallenzeit: Schalter + Präferenzliste */
.szr-titel[b-qldtxkize4] {
    margin: 0 0 .35rem;
    font-size: 1rem;
    font-weight: 600;
}

.szr-check[b-qldtxkize4] {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0 0 .9rem;
    font-size: .9rem;
    cursor: pointer;
}

.szr-check input[b-qldtxkize4] {
    cursor: pointer;
}

.szr-num[b-qldtxkize4] {
    width: 4rem;
}

.szr-leer[b-qldtxkize4] {
    color: var(--muted-foreground);
    font-style: italic;
}

/* Abstand zum Tabellenende, damit der Button nicht am Card-Rand klebt. */
.szr-add[b-qldtxkize4] {
    margin-top: 0.9rem;
}

.szr-notiz[b-qldtxkize4] {
    min-width: 12rem;
}

/* Zeitbedarf-Zelle: Summe (Hallenblock / ab Anwurf) untereinander, darunter die aufklappbaren
   Einzelwerte. Die Details liegen bewusst IN der Zelle statt in eigenen Spalten - so bleibt die
   Tabelle schmal und die Werte stehen bei ihrer Summe. */
.szr-summe-kopf[b-qldtxkize4] {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
}

.szr-block[b-qldtxkize4] {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.szr-block-zahl[b-qldtxkize4] {
    white-space: nowrap;
}

.szr-block-teil[b-qldtxkize4] {
    color: var(--muted-foreground);
    font-size: 0.8rem;
    font-weight: 400;
    white-space: nowrap;
}

.szr-auf[b-qldtxkize4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: none;
    color: var(--muted-foreground);
    cursor: pointer;
    padding: 0;
    margin-top: 0.1rem;
}

.szr-auf:hover[b-qldtxkize4] {
    color: var(--primary);
}

/* Info-Icon an den Spaltenköpfen: ersetzt den früheren Erklärungs-Fließtext über der Tabelle. */
.szr-info[b-qldtxkize4] {
    display: inline-flex;
    vertical-align: middle;
    margin-left: 0.15rem;
    color: var(--muted-foreground);
    cursor: help;
}
/* /Components/Pages/Stammdaten/HalleBearbeiten.razor.rz.scp.css */
/* Formularfelder: Flex-Wrap mit inhaltsgerechten Breiten (kleine Felder wie PLZ/Zuschauer
   wachsen nicht auf volle Breite). Ausreichender Zeilenabstand zwischen den Feldern. */
.hb-fields[b-28ee7i1rcj] { display: flex; flex-wrap: wrap; gap: 1.15rem 1rem; margin-bottom: 1rem; align-items: flex-start; }
.hb-fields .hb-f[b-28ee7i1rcj] { display: flex; flex-direction: column; min-width: 0; }
.hb-f-name[b-28ee7i1rcj] { flex: 1 1 20rem; }
.hb-f-kuerzel[b-28ee7i1rcj] { flex: 0 1 10rem; }
.hb-f-farbe[b-28ee7i1rcj] { flex: 0 1 auto; }
.hb-f-zuschauer[b-28ee7i1rcj] { flex: 0 1 10rem; }
.hb-f-strasse[b-28ee7i1rcj] { flex: 1 1 18rem; }
.hb-f-plz[b-28ee7i1rcj] { flex: 0 1 7rem; }
.hb-f-ort[b-28ee7i1rcj] { flex: 1 1 12rem; }
.hb-f-link[b-28ee7i1rcj] { flex: 1 1 22rem; }
.hb-f-verein[b-28ee7i1rcj] { flex: 0 1 16rem; }
.hb-f-id[b-28ee7i1rcj] { flex: 0 1 12rem; }

/* Detailseite: zentrierte Spalte aus Karten-Boxen. */
.hb-page[b-28ee7i1rcj] { display: flex; flex-direction: column; gap: 1rem; align-items: center; }
.hb-box[b-28ee7i1rcj] { width: 100%; max-width: 820px; }
.detail-box[b-28ee7i1rcj] { width: 100%; max-width: 820px; padding: 1.5rem; }
.detail-box-head[b-28ee7i1rcj] { display: flex; align-items: center; gap: .6rem; padding: 1.1rem 1.5rem; }

.detail-head-swatch[b-28ee7i1rcj] { display: inline-block; width: 16px; height: 16px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .15); flex: 0 0 auto; }
.detail-head-title[b-28ee7i1rcj] { margin: 0; font-size: 1.15rem; font-weight: 600; }

/* Farb-Auswahl im Formular. */
.hb-color-row[b-28ee7i1rcj] { display: flex; align-items: center; gap: .5rem; }
.hb-color-swatch[b-28ee7i1rcj] { width: 2.75rem; height: 2.25rem; padding: 2px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; }
.hb-color-hex[b-28ee7i1rcj] { max-width: 7rem; }
.hb-dot[b-28ee7i1rcj] { display: inline-block; width: 14px; height: 14px; border-radius: 50%; vertical-align: middle; border: 1px solid rgba(0, 0, 0, .15); }

/* Checkbox-Zeilen. */
.hb-checks[b-28ee7i1rcj] { display: flex; flex-direction: column; gap: .4rem; margin-bottom: .85rem; }
.hb-check[b-28ee7i1rcj] { display: flex; gap: .4rem; align-items: center; cursor: pointer; }

.hb-empty[b-28ee7i1rcj] { color: var(--muted-foreground); font-style: italic; margin: 0; }

/* Mehrzeiliges Hinweise-Feld (globale .form-input hat feste height → hier auf auto). */
.halle-hinweise[b-28ee7i1rcj] { height: auto; min-height: 4.5rem; padding: .4rem .75rem; resize: vertical; }

/* Foto-Vorschau im Detail/Formular. */
.halle-foto-preview[b-28ee7i1rcj] {
    display: block;
    margin-top: .5rem;
    height: 9rem;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    border-radius: 6px;
    border: 1px solid var(--border);
}
/* /Components/Pages/Stammdaten/HallenListe.razor.rz.scp.css */
/* Foto-Thumbnail in der Hallenliste. */
.halle-thumb[b-psm0adcpgy] {
    height: 2.4rem;
    width: 3.6rem;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid var(--border);
}
/* /Components/Pages/Stammdaten/VereinBearbeiten.razor.rz.scp.css */
/* Detailseite: zentrierte Spalte aus Karten-Boxen (wie Halle). */
.vb-page[b-tcfomj6pm2] { display: flex; flex-direction: column; gap: 1rem; align-items: center; }
.vb-box[b-tcfomj6pm2] { width: 100%; max-width: 820px; }
.detail-box[b-tcfomj6pm2] { width: 100%; max-width: 820px; padding: 1.5rem; }
.detail-box-head[b-tcfomj6pm2] { display: flex; align-items: center; gap: .6rem; padding: 1.1rem 1.5rem; }
.detail-head-swatch[b-tcfomj6pm2] { display: inline-block; width: 16px; height: 16px; border-radius: 3px; border: 1px solid rgba(0, 0, 0, .15); flex: 0 0 auto; }
.detail-head-title[b-tcfomj6pm2] { margin: 0; font-size: 1.15rem; font-weight: 600; }

/* Formularfelder: Flex-Wrap mit inhaltsgerechten Breiten + ausreichender Zeilenabstand. */
.vb-fields[b-tcfomj6pm2] { display: flex; flex-wrap: wrap; gap: 1.15rem 1rem; margin-bottom: 1rem; align-items: flex-start; }
.vb-fields .vb-f[b-tcfomj6pm2] { display: flex; flex-direction: column; min-width: 0; }
.vb-f-name[b-tcfomj6pm2] { flex: 1 1 20rem; }
.vb-f-kuerzel[b-tcfomj6pm2] { flex: 0 1 10rem; }
.vb-f-farbe[b-tcfomj6pm2] { flex: 0 1 auto; }

.vb-color-row[b-tcfomj6pm2] { display: flex; align-items: center; gap: .5rem; }
.vb-color-swatch[b-tcfomj6pm2] { width: 2.75rem; height: 2.25rem; padding: 2px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; }
.vb-color-hex[b-tcfomj6pm2] { max-width: 7rem; }
.vb-dot[b-tcfomj6pm2] { display: inline-block; width: 14px; height: 14px; border-radius: 3px; vertical-align: middle; border: 1px solid rgba(0, 0, 0, .15); }

/* Checkbox-Zeilen. */
.vb-checks[b-tcfomj6pm2] { display: flex; flex-direction: column; gap: .4rem; }
.vb-check[b-tcfomj6pm2] { display: flex; gap: .4rem; align-items: center; cursor: pointer; }
/* /Components/Pages/Statuspflege.razor.rz.scp.css */
.statuspflege[b-jop2lxuu7e] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* .card liefert KEIN Padding – hier selbst setzen. */
.sp-card[b-jop2lxuu7e] {
    padding: 1.25rem 1.5rem;
}

.sp-lauf[b-jop2lxuu7e] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: #f0fdf4;
    color: #166534;
    border: 1px solid #bbf7d0;
}

.sp-head[b-jop2lxuu7e] {
    margin-bottom: 0.75rem;
}

.sp-head h2[b-jop2lxuu7e] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1.05rem;
    margin: 0 0 0.25rem;
}

.sp-count[b-jop2lxuu7e] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.5rem;
    padding: 0 0.4rem;
    border-radius: 9999px;
    background: var(--muted);
    color: var(--muted-foreground);
    font-size: 0.8rem;
    font-weight: var(--font-weight-medium);
}

.sp-head p[b-jop2lxuu7e] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--muted-foreground);
}

.sp-empty[b-jop2lxuu7e] {
    margin: 0;
    color: var(--muted-foreground);
    font-size: 0.9rem;
}

.sp-actions-col[b-jop2lxuu7e] {
    text-align: right;
    width: 1%;
    white-space: nowrap;
}

.sp-actions[b-jop2lxuu7e] {
    text-align: right;
    white-space: nowrap;
}

.btn-sm[b-jop2lxuu7e] {
    padding: 0.25rem 0.6rem;
    font-size: 0.8rem;
}
/* /Components/Shared/GlobalSuche.razor.rz.scp.css */
/* Globale Suche im weißen top-strip (globale Chrome, neben dem User-Menü). Dropdown = weißes Panel.
   Liegt bewusst NICHT im blauen Balken - der bleibt der seitenbezogenen Actionbar vorbehalten. */

.global-suche[b-k99ujaael3] {
    position: relative;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

/* ===== Eingabefeld ===== */
.gs-box[b-k99ujaael3] {
    position: relative;
    width: 260px;
}

.gs-input-wrap[b-k99ujaael3] {
    position: relative;
    display: flex;
    align-items: center;
}

.gs-input[b-k99ujaael3] {
    width: 100%;
    height: 36px;
    padding: 0 2rem 0 2.1rem;
    border-radius: var(--radius, 8px);
    border: 1px solid #d1d5db;
    background: #f3f4f6;
    color: #1f2733;
    font-size: 0.9rem;
    outline: none;
    transition: background 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
}

.gs-input[b-k99ujaael3]::placeholder {
    color: #9aa4b2;
}

/* Aktiv/fokussiert: solides Weiß + primärer Rahmen und dezenter Ring. */
.gs-input-wrap:focus-within .gs-input[b-k99ujaael3] {
    background: #ffffff;
    border-color: var(--primary, #0e55a1);
    box-shadow: 0 0 0 3px rgba(14, 85, 161, 0.15);
}

/* Icons liegen in der SvgIcon-Kindkomponente → ::deep. */
.gs-input-wrap[b-k99ujaael3]  .gs-input-icon {
    position: absolute;
    left: 0.6rem;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: #6b7280;
}

.gs-clear[b-k99ujaael3] {
    position: absolute;
    right: 0.35rem;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    color: #9aa4b2;
    cursor: pointer;
    padding: 0.2rem;
    border-radius: 999px;
}

.gs-clear:hover[b-k99ujaael3] {
    color: var(--destructive, #d33);
}

/* Mobile-Trigger (Icon) – auf Desktop versteckt. */
.gs-mobile-trigger[b-k99ujaael3] {
    display: none;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    background: transparent;
    color: #374151;
    cursor: pointer;
    border-radius: var(--radius, 8px);
}

.gs-mobile-trigger:hover[b-k99ujaael3] {
    background: rgba(0, 0, 0, 0.06);
}

/* ===== Dropdown (z-Index > Balken (z-20), da top-strip-Geschwister) ===== */
.gs-overlay[b-k99ujaael3] {
    position: fixed;
    inset: 0;
    z-index: 30;
    background: transparent;
}

.gs-dropdown[b-k99ujaael3] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    width: 340px;
    max-height: min(70vh, 460px);
    overflow-y: auto;
    background: #ffffff;
    color: #1f2733;
    border: 1px solid #e5e7eb;
    border-radius: var(--radius, 8px);
    z-index: 40;
    padding: 0.35rem;
}

.gs-status[b-k99ujaael3] {
    padding: 0.7rem 0.75rem;
    color: #6b7280;
    font-size: 0.88rem;
}

.gs-group-head[b-k99ujaael3] {
    padding: 0.5rem 0.6rem 0.25rem;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #9aa4b2;
}

.gs-item[b-k99ujaael3] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    padding: 0.45rem 0.6rem;
    border: none;
    background: transparent;
    text-align: left;
    cursor: pointer;
    border-radius: 6px;
    color: inherit;
}

.gs-item.aktiv[b-k99ujaael3] {
    background: #eef4fc;
}

.gs-item[b-k99ujaael3]  .gs-item-icon {
    color: var(--primary, #0e55a1);
    flex-shrink: 0;
}

.gs-item-text[b-k99ujaael3] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.gs-item-titel[b-k99ujaael3] {
    font-size: 0.9rem;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gs-item-sub[b-k99ujaael3] {
    font-size: 0.78rem;
    color: #6b7280;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ===== Mobile: nur Icon; Suche öffnet als Overlay-Panel ===== */
@media (max-width: 820px) {
    .gs-mobile-trigger[b-k99ujaael3] {
        display: inline-flex;
    }

    .gs-box[b-k99ujaael3] {
        display: none;
    }

    .global-suche.mobile-open .gs-box[b-k99ujaael3] {
        display: block;
        position: fixed;
        left: 8px;
        right: 8px;
        top: 8px;
        width: auto;
        z-index: 60;
    }

    .global-suche.mobile-open .gs-dropdown[b-k99ujaael3] {
        width: auto;
        left: 0;
        right: 0;
    }
}
