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

/* Header über die volle Breite (STANDARDS.md 3.1), darunter Sidebar + Inhalt - Aufbau wie S3.FinCenter.vNext. */
.app-root[b-uojhalsuh1] {
    display: flex;
    flex-direction: column;
    height: 100vh;
    min-height: 0;
}

.app-body[b-uojhalsuh1] {
    display: flex;
    flex-direction: row;
    flex: 1 1 0;
    min-height: 0;
}

/* ===== Header ===== */

/* Über der Sidebar (z-index 30), damit der Schatten des Headers auf die Sidebar fällt. */
.main-header[b-uojhalsuh1] {
    height: 68px;
    z-index: 40;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.14);
    flex-shrink: 0;
    position: relative;
}

/* Logo im Header (Aufbau S3.FinCenter.vNext .header-logo); Höhe 44 px nach corporate-design.md 4a. */
.header-logo[b-uojhalsuh1] {
    display: flex;
    align-items: center;
    /* Abstand Bildmarke - Produktname (corporate-design.md 3d). */
    gap: 1rem;
    /* Ganze Header-Höhe als Klickfläche. */
    align-self: stretch;
    text-decoration: none;
    flex-shrink: 0;
}

.header-logo-img[b-uojhalsuh1] {
    display: block;
    height: 44px;
    width: auto;
}

/* Produktname als Pfadgrafik: 18 px hoch (Versalhöhe 17 px), Bildmarke bleibt mit 44 px das größere Element. */
.header-title-img[b-uojhalsuh1] {
    display: block;
    height: 18px;
    width: auto;
    flex-shrink: 0;
}

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

/* Benutzermenü (.header-user*, .header-dropdown*): global in app.css, damit das Kunden-Theme (Menülinie) greift. */

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

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

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

/* Sidebar-Kopf wie S3.FinCenter.vNext: weißer Streifen mit Beschriftung und Umschalter. */
.sidebar-header[b-uojhalsuh1] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem;
    background-color: #ffffff;
    border-bottom: 1px solid var(--border);
    height: 48px;
    min-height: 48px;
    max-height: 48px;
    flex-shrink: 0;
    box-sizing: border-box;
    overflow: hidden;
}

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

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

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

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

.sidebar-toggle-btn:hover[b-uojhalsuh1] {
    background-color: var(--muted);
    color: var(--foreground);
}

.sidebar-nav[b-uojhalsuh1] {
    flex: 1;
    overflow-y: auto;
    /* Kein waagerechter Rollbalken, wenn ein Eintrag breiter ist als die (eingeklappte) Sidebar. */
    overflow-x: hidden;
}

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

.sidebar-app-info[b-uojhalsuh1] {
    padding: 1rem 1.5rem;
    background-color: var(--card);
    border-top: 1px solid var(--border);
    font-size: 0.6875rem;
    color: var(--muted-foreground);
    line-height: 1.6;
    flex-shrink: 0;
    overflow: hidden;
}

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

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

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

.sidebar-resize-handle[b-uojhalsuh1] {
    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-uojhalsuh1] {
    background-color: color-mix(in srgb, var(--primary) 50%, transparent);
}

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

.main-content[b-uojhalsuh1] {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 0;
    min-height: 0;
}

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

.action-bar-spacer[b-uojhalsuh1] {
    flex: 1;
}

[b-uojhalsuh1] .content-area {
    flex: 1;
    overflow-y: auto;
    padding: 2rem;
    position: relative;
}

/* ===== Bereichs-Modus (STANDARDS.md 3.18) =====
   Für Module ohne Reiter (Administration): Der Sidebar-Kopf nennt den Bereich und trägt die Aktionsfarbe
   statt Weiß (Daniel Simon, 2026-11-10) - kein zusätzlicher Streifen unter dem Kopf. */
.sidebar-header-bereich[b-uojhalsuh1] {
    background-color: var(--primary);
    border-bottom-color: var(--primary);
}

.sidebar-header-bereich .sidebar-header-label[b-uojhalsuh1] {
    color: var(--primary-foreground);
}

.sidebar-header-bereich .sidebar-toggle-btn[b-uojhalsuh1] {
    color: var(--primary-foreground);
}

.sidebar-header-bereich .sidebar-toggle-btn:hover[b-uojhalsuh1] {
    background-color: rgba(255, 255, 255, 0.18);
    color: var(--primary-foreground);
}

/* Schmale Bildschirme (aus KS): Benutzermenü nur mit Symbol, Kopf ohne Überlauf. */
@media (max-width: 700px) {
    .header-user[b-uojhalsuh1] {
        padding: 0.375rem 0.25rem;
    }

    .main-header[b-uojhalsuh1] {
        min-width: 0;
    }

}

/* Eingeklappt: Der Fuß (Name, Version, Copyright) passt nicht in 64 px - ausblenden statt abschneiden
   (S3.FinCenter.vNext). */
.sidebar-collapsed .sidebar-app-info[b-uojhalsuh1] {
    display: none;
}
/* /Components/Layout/ModuleTabs.razor.rz.scp.css */
/* Modul-Reiter im Header (architektur-analyse.md 2.3): inaktiv in der Textfarbe, aktiv in der Primärfarbe mit
   Unterstrich in Stärke der Menülinie (--sebmo-linie, 5 px - corporate-design.md 5b, STANDARDS 3.11), der auf der
   Unterkante des Headers liegt. Grundaufbau (volle Header-Höhe, Icon + Label) aus S3.FinCenter.vNext
   ModuleTabs.razor.css über KS.ProjektCenter; ohne Flächen-Hover. Orange-Text ist hier erlaubt: aktiver Tab auf Weiß. */
.module-tabs[b-xs25957tsm] {
    display: flex;
    align-self: stretch;
    align-items: stretch;
    /* Abstand zum Titel wie S3.FinCenter.vNext. */
    margin-left: 1.75rem;
    gap: 0.25rem;
}

.module-tabs .module-tab[b-xs25957tsm] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    /* Der Unterstrich läuft über die volle Reiterbreite. */
    padding: 0 1.25rem;
    color: var(--foreground);
    font-size: 0.875rem;
    font-weight: var(--font-weight-medium);
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.15s ease;
}

/* Unterstrich in Stärke der Menülinie, bündig auf der Unterkante des Headers. */
.module-tabs .module-tab[b-xs25957tsm]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: var(--sebmo-linie, 2px);
    background: transparent;
    transition: background-color 0.15s ease;
}

.module-tabs .module-tab:hover[b-xs25957tsm] {
    text-decoration: none;
}

.module-tabs .module-tab:hover[b-xs25957tsm]::after {
    background: var(--border);
}

.module-tabs .module-tab.active[b-xs25957tsm] {
    color: var(--primary);
}

.module-tabs .module-tab.active[b-xs25957tsm]::after {
    background: var(--primary);
}

/* Schmale Bildschirme: Modul-Reiter nur mit Symbol, enger. */
@media (max-width: 1100px) {
    .module-tabs .module-tab[b-xs25957tsm] {
        padding: 0 0.75rem;
    }
}

@media (max-width: 700px) {
    .module-tabs .module-tab[b-xs25957tsm] {
        padding: 0 0.75rem;
    }

    .module-tab-label[b-xs25957tsm] {
        display: none;
    }
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.nav-menu[b-yv739i4u01] {
    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-yv739i4u01] {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

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

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

/* Icon darf nicht schrumpfen */
[b-yv739i4u01] .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-yv739i4u01] .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-yv739i4u01]  .nav-link-text {
    opacity: 0;
    width: 0;
    overflow: hidden;
}

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

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

/* ===== Nav-SubMenu (flache Untermenü-Gruppe) ===== */

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

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

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

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

[b-yv739i4u01] .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-yv739i4u01] .nav-submenu-toggle:hover {
    background-color: var(--sidebar-accent);
    color: var(--sidebar-accent-foreground);
}

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

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

/* Aufgeklappter Kinder-Block - dunklerer Hintergrund unterstreicht die Gruppe */
[b-yv739i4u01] .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 eingerückt - Abstand passt zur Icon-Breite im Header */
[b-yv739i4u01] .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-yv739i4u01]  .nav-submenu-children,
.nav-collapsed[b-yv739i4u01]  .nav-submenu-chevron,
.nav-collapsed[b-yv739i4u01]  .nav-submenu-toggle {
    display: none;
}

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


/* ===== Modul-Sidebar (OP-16) ===== */

/* Abschnittstitel innerhalb eines Moduls (Muster S3.FinCenter.vNext, NavMenu.razor.css). */
.nav-section-label[b-yv739i4u01] {
    padding: 0.5rem 1rem 0.35rem;
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--sidebar-foreground, #b0b0b0);
    opacity: 0.7;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nav-collapsed .nav-section-label[b-yv739i4u01] {
    display: none;
}

/* Die Dokumente-Sidebar bleibt beim Modulwechsel im DOM und wird nur ausgeblendet
   (Muster S3.DocCenter, NavMenu.razor.css). */
.nav-modul[b-yv739i4u01] {
    display: contents;
}

.nav-modul-aus[b-yv739i4u01] {
    display: none;
}

/* Eingeklappt: keine Zähler in der Dokumente-Sidebar, nur Icons. */
.nav-collapsed[b-yv739i4u01]  .tree-count {
    display: none;
}

/* Zahl „heute fällig oder überfällig“ an Mein Dashboard und Akut: rote Pille rechts; eingeklappt als kleiner Punkt am Symbol. */
.nav-badge[b-yv739i4u01] {
    margin-left: auto;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.375rem;
    border-radius: 999px;
    background-color: var(--primary);
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: 1.25rem;
    text-align: center;
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
}

.nav-collapsed .nav-badge[b-yv739i4u01] {
    position: absolute;
    margin: 0;
    transform: translate(0.55rem, -0.55rem);
    min-width: 1rem;
    height: 1rem;
    padding: 0 0.25rem;
    font-size: 0.5625rem;
    line-height: 1rem;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-nm30y6u8nv],
.components-reconnect-repeated-attempt-visible[b-nm30y6u8nv],
.components-reconnect-failed-visible[b-nm30y6u8nv],
.components-pause-visible[b-nm30y6u8nv],
.components-resume-failed-visible[b-nm30y6u8nv],
.components-rejoining-animation[b-nm30y6u8nv] {
    display: none;
}

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


#components-reconnect-modal[b-nm30y6u8nv] {
    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-nm30y6u8nv 0.5s both;
    &[open]

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

}

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

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

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

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

    100% {
        opacity: 1;
    }
}

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

    100% {
        opacity: 0;
    }
}

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

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

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

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

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

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

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

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

@keyframes components-rejoining-animation-b-nm30y6u8nv {
    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/AdminGpsPunkte.razor.rz.scp.css */
/* Katalog „GPS-Punkte“: Pfeile für die Reihenfolge (wie AdminRichtlinien), Kürzel in der Form des Kartenmarkers,
   deaktivierte Zeilen gedämpft. Marker in Navy, nie orange (corporate-design.md 5). */
.gp-reihe[b-9nj5f2porh] {
    white-space: nowrap;
}

/* Über dem gestreckten Zeilenlink - wie die übrigen Bedienelemente in klickbaren Zeilen (app.css). */
.gp-pfeil[b-9nj5f2porh] {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
}

.gp-pfeil + .gp-pfeil[b-9nj5f2porh] { margin-left: 0.25rem; }

.gp-inaktiv td[b-9nj5f2porh] { color: var(--muted-foreground); }

.gp-listenhinweis[b-9nj5f2porh] { margin-top: 0.5rem; }

/* Kürzel wie in der Auftragsmaske (GpsPunktKarte): erster aktiver Punkt eckig, alle übrigen rund. */
.gp-kuerzel[b-9nj5f2porh] {
    display: inline-grid;
    place-content: center;
    width: 24px;
    height: 24px;
    border: 2px solid var(--sebmo-navy, #333);
    background-color: var(--card);
    color: var(--sebmo-navy, #333);
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1;
}

.gp-kuerzel-rund[b-9nj5f2porh] { border-radius: 50%; }

.gp-kuerzel-lang[b-9nj5f2porh] {
    font-size: 0.6875rem;
    letter-spacing: -0.03em;
}

.gp-inaktiv .gp-kuerzel[b-9nj5f2porh] {
    border-color: var(--muted-foreground);
    color: var(--muted-foreground);
}
/* /Components/Pages/AdminRichtlinieDetail.razor.rz.scp.css */
/* Richtlinie (Paket 2c): Formular links, PDF-Vorschau rechts; unter 1200 px untereinander. */
.rl-detail[b-jrwjegbs6a] {
    display: grid;
    grid-template-columns: minmax(0, 580px) minmax(0, 1fr);   /* 580 statt 520: Platz für die Fassungstabelle (WM-33) */
    gap: 1.25rem;
    align-items: start;
}

@media (max-width: 1200px) {
    .rl-detail[b-jrwjegbs6a] { grid-template-columns: minmax(0, 1fr); }
}

/* Die Vorschau bleibt beim Scrollen des Formulars im Blick und füllt die Höhe unter der Action-Bar. */
.rl-detail-vorschau[b-jrwjegbs6a] {
    position: sticky;
    top: 0;
}

.rl-vorschau[b-jrwjegbs6a] {
    height: calc(100vh - 270px);
    min-height: 420px;
}

.rl-ersetzen-text[b-jrwjegbs6a] { margin: 0 0 1rem; }

/* Aktuelle Datei der bestehenden Richtlinie. */
.rl-datei[b-jrwjegbs6a] {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--border);
    background: var(--accent);
}

.rl-datei-icon[b-jrwjegbs6a] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    background: var(--card);
    color: var(--accent-foreground);
}

.rl-datei-text[b-jrwjegbs6a] { min-width: 0; }

.rl-datei-name[b-jrwjegbs6a] {
    font-weight: var(--font-weight-medium);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rl-datei-text .form-hinweis[b-jrwjegbs6a] { margin-top: 0.125rem; }

.rl-datei-aktionen[b-jrwjegbs6a] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.625rem;
}

.rl-datei-aktionen .btn-sm[b-jrwjegbs6a] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

/* Fassungen (WM-33) als zweite Karte unter dem Formular (Tabelle: Shared/RichtlinieFassungen). */
.rl-detail-formular[b-jrwjegbs6a] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* Hinweis über der Vorschau, solange eine frühere Fassung gezeigt wird - kühl, kein Orange. */
.rl-vorschau-hinweis[b-jrwjegbs6a] {
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.rl-vorschau-hinweis span[b-jrwjegbs6a] { flex: 1 1 16rem; }

/* Um die Höhe des Hinweises niedriger, damit die Karte weiter ganz unter die Action-Bar passt (sonst rutschte ihr Kopf weg). */
.rl-vorschau-frueher[b-jrwjegbs6a] { height: calc(100vh - 345px); }
/* /Components/Pages/AdminRichtlinien.razor.rz.scp.css */
/* Liste der Richtlinien (Paket 2c): Pfeile für die Reihenfolge der App, deaktivierte Zeilen gedämpft. */
.rl-reihe[b-iuabtkrni0] {
    white-space: nowrap;
}

/* Über dem gestreckten Zeilenlink - wie die übrigen Bedienelemente in klickbaren Zeilen (app.css). */
.rl-pfeil[b-iuabtkrni0] {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
}

.rl-pfeil + .rl-pfeil[b-iuabtkrni0] { margin-left: 0.25rem; }

.rl-inaktiv td[b-iuabtkrni0] { color: var(--muted-foreground); }

.rl-listenhinweis[b-iuabtkrni0] { margin-top: 0.5rem; }
/* /Components/Pages/AdminZuschlagszeitraeume.razor.rz.scp.css */
/* Lage „Sa 22:00 - So 06:00“ mit gleich breiten Ziffern, damit die Uhrzeiten untereinander stehen. */
.zeitraum-lage[b-sqvu96lmvg] {
    font-variant-numeric: tabular-nums;
    margin-right: 0.5rem;
}
/* /Components/Pages/AdminZuschlagszeitraumDetail.razor.rz.scp.css */
/* Überschneidung schon beim Eingeben: in der Farbe der Feldfehler, mit Warndreieck (STANDARDS 3.4, kein Orange). */
.zeitraum-warnung[b-9bjdzjms2m] {
    display: flex;
    align-items: flex-start;
    gap: 0.375rem;
    color: var(--destructive);
}

.zeitraum-warnung[b-9bjdzjms2m]  svg {
    flex-shrink: 0;
    margin-top: 0.125rem;
}
/* /Components/Pages/DispositionAuftraege.razor.rz.scp.css */
/* Hinweis rechts in der Reiterzeile, z. B. für den Baustellenleiter („nur lesend“). */
.tabs-zusatz[b-x9fqe9dtah] {
    margin-left: auto;
    align-self: center;
    padding: 0 0.5rem;
    font-size: 0.8125rem;
    color: var(--muted-foreground);
    white-space: nowrap;
}

/* Bezeichnung mit Marke („GPS fehlt“): Ein langer Name wird gekürzt, die Marke dahinter bleibt stehen - als Teil des
   gekürzten Textes verschwand sie bei langen Bezeichnungen hinter den Auslassungspunkten. */
.auftrag-name[b-x9fqe9dtah] {
    display: flex;
    align-items: center;
    min-width: 0;
}

.auftrag-name-text[b-x9fqe9dtah] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.auftrag-name .badge[b-x9fqe9dtah] {
    flex: none;
}

/* Schmale Fenster (SP-10): Unter 1100 px bleibt der Bezeichnung neben den festen Spalten wenig Breite - zwei Zeilen
   statt einer, wie die Auftragsspalte der Plantafel (.pt-auftrag-name). Die volle Bezeichnung steht im Tooltip. */
@media (max-width: 1100px) {
    .auftrag-name-text[b-x9fqe9dtah] {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        white-space: normal;
    }
}
/* /Components/Pages/DispositionMaschineDetail.razor.rz.scp.css */
/* Pflichtauswahl ohne Wahl: roter Rahmen an den Optionskarten wie am Feld (STANDARDS 3.4). */
.optionen-fehler .option[b-f2w7c3x133] {
    border-color: var(--destructive);
}
/* /Components/Shared/AuftragStatusDialog.razor.rz.scp.css */
.sd-wechsel[b-pj9umz8snn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 1rem;
    color: var(--muted-foreground);
}

.sd-gegenstand[b-pj9umz8snn] {
    margin-left: 0.25rem;
    font-size: 0.8125rem;
}

.sd-gruende p[b-pj9umz8snn] {
    margin: 0;
}

.sd-gruende p + p[b-pj9umz8snn] {
    margin-top: 0.5rem;
}
/* /Components/Shared/AuftragStatusLeiste.razor.rz.scp.css */
/* Lebenszyklus des Auftrags: Schrittfolge links, Statusaktionen rechts. Keine eigenen Statusfarben - Navy für den
   aktuellen Schritt (Markenfläche wie die Sidebar), sonst --muted/--border; Orange bleibt der Primärknopf. */
.lz[b-m10gn3tie8] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1.5rem;
    padding: 0.875rem 1.25rem;
    border-top: 1px solid var(--border);
    background-color: var(--background);
}

.lz-schritte[b-m10gn3tie8] {
    display: flex;
    align-items: center;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lz-schritt[b-m10gn3tie8] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--muted-foreground);
}

/* Verbindungslinie zwischen den Schritten. */
.lz-schritt + .lz-schritt[b-m10gn3tie8]::before {
    content: "";
    display: block;
    width: 2.5rem;
    height: 2px;
    margin: 0 0.75rem;
    background-color: var(--border);
}

.lz-erledigt + .lz-schritt[b-m10gn3tie8]::before {
    background-color: var(--sebmo-navy, #092231);
    opacity: 0.35;
}

.lz-punkt[b-m10gn3tie8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 9999px;
    border: 2px solid var(--border);
    background-color: var(--card);
    font-size: 0.75rem;
    font-weight: var(--font-weight-medium);
    font-variant-numeric: tabular-nums;
}

.lz-erledigt .lz-punkt[b-m10gn3tie8] {
    border-color: #E1E4E6;
    background-color: #E1E4E6;
    color: var(--sebmo-navy, #092231);
}

.lz-aktuell[b-m10gn3tie8] {
    color: var(--foreground);
    font-weight: var(--font-weight-medium);
}

.lz-aktuell .lz-punkt[b-m10gn3tie8] {
    border-color: var(--sebmo-navy, #092231);
    background-color: var(--sebmo-navy, #092231);
    color: #ffffff;
}

.lz-aktionen[b-m10gn3tie8] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.lz-hinweis[b-m10gn3tie8] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--muted-foreground);
}
/* /Components/Shared/Card.razor.rz.scp.css */
.fc-card[b-te5i6zzmoq] {
    display: flex;
    flex-direction: column;
}

.fc-card-header[b-te5i6zzmoq] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border-bottom: 1px solid var(--border);
    font-weight: var(--font-weight-medium);
}

.fc-card-header-spacer[b-te5i6zzmoq] {
    flex: 1;
}

.fc-card-body[b-te5i6zzmoq] {
    padding: 1.25rem;
}

/* Eingeklappt steht nur der Kopf - dann ohne eigene Trennlinie. */
.fc-card-header:last-child[b-te5i6zzmoq] {
    border-bottom: none;
}

/* Titel und Knöpfe im Kopf brechen nicht um; umbrechen darf nur ein Filterblock (.kopf-filter). */
.fc-card-title[b-te5i6zzmoq] {
    white-space: nowrap;
}

.fc-card-header[b-te5i6zzmoq]  .btn {
    white-space: nowrap;
}

/* Schmale Bildschirme: Kartenkopf darf umbrechen (Titel oben, Knöpfe darunter). */
@media (max-width: 700px) {
    .fc-card-header[b-te5i6zzmoq] {
        flex-wrap: wrap;
        row-gap: 0.5rem;
    }
}
/* /Components/Shared/EinsatzWarnDialog.razor.rz.scp.css */
/* Warnliste der künftigen Einsätze (OP-21): Der Zeitraum eines Auftrags bleibt in einer Zeile - lange Auftragsnamen
   brechen stattdessen um. */
.einsatz-zeitraum[b-cibuju0517] {
    white-space: nowrap;
}
/* /Components/Shared/GpsPunktKarte.razor.rz.scp.css */
/* GPS-Punkte: Liste links, kleine Karte mit Ortssuche rechts daneben; unter 900 px Breite des Bausteins die Karte
   unter der Liste. Farbregeln (corporate-design.md 2b, 5): "gewählt" kühl (--accent) mit Linie in --primary wie der
   Sidebar-Indikator, Orange nie als Fläche. Marker in Navy - die Punkte unterscheiden sich durch Form und Kürzel,
   nicht durch Farbe (erste Punktart des Katalogs eckig, alle übrigen rund).
   Was MapLibre und gps-karte.js selbst ins DOM setzen (Marker, Bedienelemente, Attribution, Suchfeld), erreicht nur ::deep. */
.gpk-rahmen[b-e3ieitq6gd] {
    container-type: inline-size;
    margin-top: 0.25rem;
}

.gpk[b-e3ieitq6gd] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 1rem;
    align-items: stretch;
}

.gpk-liste[b-e3ieitq6gd] {
    min-width: 0;
    overflow-x: auto;
}

/* ---------- Liste ---------- */

.gpk-tabelle[b-e3ieitq6gd] {
    width: 100%;
    border: 1px solid var(--border);
}

.gpk-tabelle th[b-e3ieitq6gd],
.gpk-tabelle td[b-e3ieitq6gd] {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.gpk-zeile[b-e3ieitq6gd] {
    cursor: pointer;
}

.gpk-punkt[b-e3ieitq6gd] {
    white-space: nowrap;
}

/* Lange Bezeichnungen aus dem Katalog kürzen, statt die Zahlenfelder aus der Karte zu schieben (volle Bezeichnung im title). */
.gpk-name[b-e3ieitq6gd] {
    display: inline-block;
    max-width: 11rem;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: bottom;
}

.gpk-deaktiviert .gpk-name[b-e3ieitq6gd] {
    color: var(--muted-foreground);
}

/* Die Zeile ist die Klickfläche - das Optionsfeld braucht keine eigene Hover-Fläche und keinen Ausgleich nach links. */
.gpk-punkt .radio-label[b-e3ieitq6gd] {
    margin-left: 0;
    padding: 0 0.25rem 0 0.375rem;
    gap: 0.5rem;
    background-color: transparent;
}

.gpk-tabelle tbody tr.gpk-gewaehlt[b-e3ieitq6gd],
.gpk-tabelle tbody tr.gpk-gewaehlt:hover[b-e3ieitq6gd] {
    background-color: var(--accent);
}

.gpk-gewaehlt .gpk-punkt[b-e3ieitq6gd] {
    box-shadow: inset var(--sebmo-linie, 3px) 0 0 var(--primary);
}

.gpk-gewaehlt .gpk-punkt .radio-label[b-e3ieitq6gd] {
    font-weight: var(--font-weight-medium);
}

/* Kürzel wie der Marker auf der Karte: erste Punktart eckig, übrige rund; gewählt gefüllt. */
.gpk-kuerzel[b-e3ieitq6gd] {
    flex: none;
    display: inline-grid;
    place-content: center;
    width: 22px;
    height: 22px;
    border: 2px solid var(--sebmo-navy, #333);
    background-color: var(--card);
    color: var(--sebmo-navy, #333);
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: 1;
}

.gpk-kuerzel-rund[b-e3ieitq6gd] {
    border-radius: 50%;
}

/* Zwei Zeichen ("P1") passen mit engerer Schrift in dieselbe Fläche. */
.gpk-kuerzel-lang[b-e3ieitq6gd] {
    font-size: 0.625rem;
    letter-spacing: -0.03em;
}

.gpk-gewaehlt .gpk-kuerzel[b-e3ieitq6gd] {
    background-color: var(--sebmo-navy, #333);
    color: #fff;
}

.gpk-tabelle[b-e3ieitq6gd]  .feld-grad {
    width: 7.75rem;
}

.gpk-pruefung[b-e3ieitq6gd] {
    white-space: nowrap;
}

/* Werte einer deaktivierten Punktart entfernen: kleines Quadrat neben der Marke. */
.gpk-entfernen[b-e3ieitq6gd] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    margin-left: 0.375rem;
    padding: 0;
    vertical-align: middle;
}

/* ---------- Karte ---------- */

.gpk-seite[b-e3ieitq6gd] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.gpk-karte[b-e3ieitq6gd] {
    position: relative;
    flex: 1 1 auto;
    min-height: 260px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background-color: var(--muted);
    overflow: hidden;
}

.gpk-flaeche[b-e3ieitq6gd] {
    position: absolute;
    inset: 0;
    font-family: inherit;
}

/* Lade- und Ausfallzustand liegen über der Kartenfläche. */
.gpk-lage[b-e3ieitq6gd] {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    padding: 1.25rem;
    background-color: var(--muted);
    color: var(--muted-foreground);
    font-size: 0.8125rem;
    line-height: 1.4;
    text-align: center;
}

.gpk-fuss[b-e3ieitq6gd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    min-height: 2rem;
    margin-top: 0.375rem;
}

.gpk-fuss-text[b-e3ieitq6gd] {
    font-size: 0.75rem;
    line-height: 1.4;
    color: var(--muted-foreground);
}

.gpk-alle[b-e3ieitq6gd] {
    flex: none;
}

/* ---------- Ortssuche über der Karte (Feld, Trefferliste und Statuszeile baut gps-karte.js) ---------- */

.gpk-suche[b-e3ieitq6gd] {
    position: relative;
    min-height: 4.5rem;          /* Platz halten, bis die Karte steht - sonst springt sie beim Erscheinen des Felds */
    margin-bottom: 0.375rem;
}

/* Abgeschaltet oder Karte nicht erreichbar: kein Feld, kein Platz. */
.gpk-suche-ohne[b-e3ieitq6gd] {
    display: none;
}

.gpk-suche[b-e3ieitq6gd]  .gpk-suche-feld {
    position: relative;
}

.gpk-suche[b-e3ieitq6gd]  .gpk-suche-eingabe {
    width: 100%;
    padding-left: 2rem;
    padding-right: 2rem;
}

/* Lupe als Zeichnung im Hintergrund - kein Bild, keine fremde Quelle. */
.gpk-suche[b-e3ieitq6gd]  .gpk-suche-lupe {
    position: absolute;
    left: 0.625rem;
    top: 50%;
    width: 14px;
    height: 14px;
    transform: translateY(-50%);
    pointer-events: none;
    background-color: var(--muted-foreground);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.6-3.6'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.6-3.6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.gpk-suche[b-e3ieitq6gd]  .gpk-suche-leeren {
    position: absolute;
    right: 0.25rem;
    top: 50%;
    width: 26px;
    height: 26px;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: var(--muted-foreground);
    font-size: 1.125rem;
    line-height: 1;
    cursor: pointer;
}

.gpk-suche[b-e3ieitq6gd]  .gpk-suche-leeren:hover {
    color: var(--foreground);
    background-color: var(--accent);
}

.gpk-suche[b-e3ieitq6gd]  .gpk-suche-leeren:focus-visible {
    outline: 2px solid var(--ring);
    outline-offset: -2px;
}

/* Trefferliste: liegt über der Karte, gehört sichtbar zum Feld. */
.gpk-suche[b-e3ieitq6gd]  .gpk-suche-liste {
    position: absolute;
    z-index: 6;
    left: 0;
    right: 0;
    top: calc(100% + 2px);
    max-height: 264px;
    margin: 0;
    padding: 0.25rem 0;
    overflow-y: auto;
    list-style: none;
    background-color: var(--card);
    border: 1px solid var(--border);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.14);
}

.gpk-suche[b-e3ieitq6gd]  .gpk-suche-treffer {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.4375rem 0.625rem;
    font-size: 0.8125rem;
    line-height: 1.35;
    cursor: pointer;
}

/* Markiert (Tastatur oder Maus): kühle Fläche mit Linie in der Aktionsfarbe - wie die gewählte Zeile der Liste. */
.gpk-suche[b-e3ieitq6gd]  .gpk-suche-aktiv {
    background-color: var(--accent);
    box-shadow: inset var(--sebmo-linie, 3px) 0 0 var(--primary);
}

.gpk-suche[b-e3ieitq6gd]  .gpk-suche-text {
    min-width: 0;
    overflow-wrap: anywhere;
}

.gpk-suche[b-e3ieitq6gd]  .gpk-suche-typ {
    flex: none;
    font-size: 0.6875rem;
    color: var(--muted-foreground);
}

.gpk-suche[b-e3ieitq6gd]  .gpk-suche-status {
    margin-top: 0.25rem;
    font-size: 0.75rem;
    line-height: 1.4;
    color: var(--muted-foreground);
}

/* Fundstelle eines Suchtreffers: ein leerer Ring - kein Punkt des Auftrags, nicht anklickbar. */
.gpk-flaeche[b-e3ieitq6gd]  .gpk-fundstelle {
    width: 22px;
    height: 22px;
    border: 2px solid var(--sebmo-navy, #333);
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.35);
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.85);
    pointer-events: none;
}

/* ---------- MapLibre: Bedienelemente im Hausstil (Radius 0), Attribution klein, aber immer lesbar ---------- */

.gpk-flaeche[b-e3ieitq6gd]  .maplibregl-ctrl-group {
    border-radius: 0;
    box-shadow: 0 0 0 1px var(--border), 0 1px 4px rgba(0, 0, 0, 0.12);
}

.gpk-flaeche[b-e3ieitq6gd]  .maplibregl-ctrl-group button {
    border-radius: 0;
}

.gpk-flaeche[b-e3ieitq6gd]  .maplibregl-ctrl-group button:focus-visible {
    outline: 2px solid var(--ring);
    outline-offset: -2px;
    box-shadow: none;
}

.gpk-flaeche[b-e3ieitq6gd]  .maplibregl-ctrl-attrib {
    padding: 1px 5px;
    background-color: rgba(255, 255, 255, 0.82);
    font-size: 10px;
    line-height: 1.5;
    color: #4d4d4d;
}

.gpk-flaeche[b-e3ieitq6gd]  .maplibregl-ctrl-attrib a {
    color: #4d4d4d;
}

.gpk-flaeche[b-e3ieitq6gd]  .maplibregl-cooperative-gesture-screen {
    padding: 1rem;
    font-size: 0.875rem;
    text-align: center;
}

/* Bearbeitbar: Die Karte nimmt einen Klick an - Fadenkreuz statt Greifhand. */
.gpk-flaeche.gpk-setzbar[b-e3ieitq6gd]  .maplibregl-canvas-container.maplibregl-interactive {
    cursor: crosshair;
}

/* ---------- Marker ---------- */

.gpk-flaeche[b-e3ieitq6gd]  .gpk-marker {
    cursor: pointer;
}

.gpk-flaeche[b-e3ieitq6gd]  .gpk-marker svg {
    display: block;
    overflow: visible;
    transform-origin: 50% 100%;
    transition: transform 0.12s ease;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35));
}

.gpk-flaeche[b-e3ieitq6gd]  .gpk-marker-form {
    fill: #fff;
    stroke: var(--sebmo-navy, #333);
    stroke-width: 2.5;
    stroke-linejoin: round;
}

.gpk-flaeche[b-e3ieitq6gd]  .gpk-marker-text {
    fill: var(--sebmo-navy, #333);
    font-size: 15px;
    font-weight: 700;
    font-family: inherit;
    user-select: none;
}

/* Zwei Zeichen im Marker: kleinere, engere Schrift. */
.gpk-flaeche[b-e3ieitq6gd]  .gpk-marker-text-lang {
    font-size: 11.5px;
    letter-spacing: -0.4px;
}

.gpk-flaeche[b-e3ieitq6gd]  .gpk-marker:hover .gpk-marker-form {
    fill: var(--accent);
}

.gpk-flaeche[b-e3ieitq6gd]  .gpk-marker-gewaehlt svg {
    transform: scale(1.22);
}

.gpk-flaeche[b-e3ieitq6gd]  .gpk-marker-gewaehlt .gpk-marker-form,
.gpk-flaeche[b-e3ieitq6gd]  .gpk-marker-gewaehlt:hover .gpk-marker-form {
    fill: var(--sebmo-navy, #333);
    stroke: #fff;
    stroke-width: 2;
}

.gpk-flaeche[b-e3ieitq6gd]  .gpk-marker-gewaehlt .gpk-marker-text {
    fill: #fff;
}

.gpk-flaeche[b-e3ieitq6gd]  .gpk-marker-ziehbar {
    cursor: grab;
}

.gpk-flaeche[b-e3ieitq6gd]  .gpk-marker-ziehbar:active {
    cursor: grabbing;
}

.gpk-flaeche[b-e3ieitq6gd]  .gpk-marker:focus-visible {
    outline: 2px solid var(--ring);
    outline-offset: 3px;
}

/* ---------- Schmal: Karte unter der Liste ---------- */

@container (max-width: 900px) {
    .gpk[b-e3ieitq6gd] {
        grid-template-columns: minmax(0, 1fr);
    }

    .gpk-karte[b-e3ieitq6gd] {
        flex: none;
        height: 280px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gpk-flaeche[b-e3ieitq6gd]  .gpk-marker svg {
        transition: none;
    }
}
/* /Components/Shared/Kachel.razor.rz.scp.css */
/* Einzelne Kachel der Bereichs-Landing (STANDARDS.md 3.18). Aus Administration.razor.css
   (NCP.BesucherCenter) hierher verschoben, seit die Kachel eine eigene Komponente ist. */

.section-tile[b-79d1s0l1nq] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.05s;
}

.section-tile:hover[b-79d1s0l1nq] {
    border-color: var(--primary);
    box-shadow: 0 2px 8px color-mix(in srgb, var(--primary) 12%, transparent);
    text-decoration: none;
}

.section-tile:active[b-79d1s0l1nq] {
    transform: translateY(1px);
}

.section-tile-icon[b-79d1s0l1nq] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: var(--radius);
    /* Kühl in Navy-Hell statt Primär-Tint: Ein Orange-Tint läse sich wie die Fehlerpille, und Orange ist nie
       Fläche ohne Aktion (corporate-design.md 5). Die Aktion zeigt der orange Rahmen beim Überfahren. */
    background: var(--accent);
    color: var(--accent-foreground);
    flex-shrink: 0;
}

.section-tile-body[b-79d1s0l1nq] {
    flex: 1;
    min-width: 0;
}

.section-tile-title[b-79d1s0l1nq] {
    font-size: 1rem;
    font-weight: var(--font-weight-medium);
    color: var(--foreground);
    margin-bottom: 0.25rem;
}

.section-tile-desc[b-79d1s0l1nq] {
    font-size: 0.875rem;
    color: var(--muted-foreground);
    line-height: 1.4;
}

.section-tile-chevron[b-79d1s0l1nq] {
    color: var(--muted-foreground);
    flex-shrink: 0;
}

.section-tile:hover .section-tile-chevron[b-79d1s0l1nq] {
    color: var(--primary);
}
/* /Components/Shared/PdfHochladen.razor.rz.scp.css */
/* Drop-Zone (STANDARDS.md 3.6). Stile aus KS.ProjektCenter (Shared/DateiAblage.razor.css, dort aus S3.FuhrparkManager,
   Optik S3.ReportCenter .import-bulk-drop). Angepasst an corporate-design.md 2b/5: Flächen kühl (--accent bzw. --muted),
   Orange nur als gestrichelte Kante beim Ziehen, als Hover-Kante und als Fortschrittslinie - nie als Fläche. */
.drop-zone[b-473licake8] { position: relative; }

.datei-ablage[b-473licake8] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.125rem 1.25rem;
    border: 2px dashed var(--border);
    border-radius: var(--radius);
    background: var(--card);
    color: var(--muted-foreground);
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.datei-ablage:hover[b-473licake8] { border-color: color-mix(in srgb, var(--primary) 55%, var(--border)); }

.datei-ablage.drop-zone-active[b-473licake8] {
    border-color: var(--primary);
    background: var(--accent);
}

.datei-ablage.hat-datei[b-473licake8] {
    border-style: solid;
    background: var(--accent);
}

.datei-ablage.is-invalid[b-473licake8] { border-color: var(--destructive); }

.datei-ablage.is-busy[b-473licake8] { cursor: progress; }
.datei-ablage.is-busy:hover[b-473licake8] { border-color: var(--border); }

[b-473licake8] .datei-ablage-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

[b-473licake8] .datei-ablage-input:disabled { cursor: progress; }

/* Tastaturfokus auf dem unsichtbaren Feld an der Zone zeigen. */
.datei-ablage:focus-within[b-473licake8] { outline: 2px solid var(--primary); outline-offset: 2px; }

.datei-ablage-icon[b-473licake8] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: var(--radius);
    background: var(--muted);
    color: var(--accent-foreground);
}

.datei-ablage-text[b-473licake8] { min-width: 0; flex: 1; }

.datei-ablage-titel[b-473licake8] {
    font-weight: var(--font-weight-medium);
    color: var(--foreground);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.datei-ablage-hinweis[b-473licake8] { font-size: 0.8125rem; margin-top: 0.125rem; }

/* „auswählen“ ist ein Link (Aktion) - Orange-Text nur auf Weiß (5c); auf der kühlen Fläche der gewählten Datei Navy. */
.datei-ablage-link[b-473licake8] { color: var(--primary); text-decoration: underline; }
.datei-ablage.hat-datei .datei-ablage-link[b-473licake8] { color: var(--accent-foreground); }

/* Fortschritt: dünne Linie in Orange auf neutraler Spur (Linie, keine Fläche). */
.rl-fortschritt[b-473licake8] {
    position: relative;
    height: 4px;
    margin-top: 0.5rem;
    background: color-mix(in srgb, var(--accent-foreground) 12%, transparent);
    overflow: hidden;
}

.rl-fortschritt-balken[b-473licake8] {
    height: 100%;
    background: var(--primary);
    transition: width 0.15s linear;
}

/* Liegt über dem unsichtbaren Eingabefeld, sonst ginge der Klick an die Dateiauswahl. */
.rl-ablage-abbrechen[b-473licake8] {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}
/* /Components/Shared/PdfViewer.razor.rz.scp.css */
/* PDF-Vorschau (STANDARDS.md 3.16), Stile aus KS.ProjektCenter (Shared/PdfViewer.razor.css). Angepasst: Auswahlfarbe der
   Textebene Navy statt S3-Blau (corporate-design.md 2b: Flächen kühl, kein Orange). */

.pdf-viewer[b-396gx6lf2j] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    background-color: var(--background);
    border: 1px solid var(--border);
}

.pdf-toolbar[b-396gx6lf2j] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    border-bottom: 1px solid var(--border);
    background-color: var(--card);
    flex-shrink: 0;
}

.pdf-page-info[b-396gx6lf2j] {
    font-size: 0.75rem;
    color: var(--muted-foreground);
    white-space: nowrap;
}

.pdf-toolbar-spacer[b-396gx6lf2j] {
    flex: 1;
}

.pdf-container[b-396gx6lf2j] {
    flex: 1 1 0;
    min-height: 0;
    overflow: auto;
    padding: 0.75rem;
    background-color: #808080;
    scrollbar-gutter: stable;
}

/* Space+Drag Pan-Modus */
.pdf-container.pan-ready[b-396gx6lf2j],
.pdf-container.pan-ready *[b-396gx6lf2j] {
    cursor: grab;
    user-select: none;
}

.pdf-container.pan-active[b-396gx6lf2j],
.pdf-container.pan-active *[b-396gx6lf2j] {
    cursor: grabbing !important;
    user-select: none;
}

.pdf-placeholder[b-396gx6lf2j] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    height: 100%;
    color: var(--muted-foreground);
    font-size: 0.875rem;
}

[b-396gx6lf2j] .pdf-loading,
[b-396gx6lf2j] .pdf-error {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    color: #ffffff;
    font-size: 0.875rem;
}

[b-396gx6lf2j] .pdf-error {
    color: var(--destructive);
    background-color: var(--card);
    border-radius: var(--radius);
    margin: 1rem;
}

[b-396gx6lf2j] .pdf-page-wrapper {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    background-color: #ffffff;
    overflow: hidden;
    margin: 0 auto 0.5rem;
}

[b-396gx6lf2j] .pdf-page-wrapper canvas {
    display: block;
}

/* PDF.js textLayer - Positionierung und Selektion */
[b-396gx6lf2j] .textLayer {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;
    opacity: 0.25;
    line-height: 1.0;
}

[b-396gx6lf2j] .textLayer span,
[b-396gx6lf2j] .textLayer br {
    color: transparent;
    position: absolute;
    white-space: pre;
    transform-origin: 0% 0%;
    cursor: text;
}

[b-396gx6lf2j] .textLayer ::selection {
    background: rgba(9, 34, 49, 0.35);
}

/* Knöpfe und Zoom-Auswahl der Leiste (in S3.DocCenter als Inline-Stil). */
.pdf-btn[b-396gx6lf2j] {
    height: 26px;
    min-width: 26px;
    padding: 0 0.4rem;
    font-size: 0.75rem;
}

.pdf-zoom[b-396gx6lf2j] {
    height: 26px;
    padding: 0 0.4rem;
    font-size: 0.75rem;
    width: auto;
    min-width: 110px;
}
/* /Components/Shared/RichtlinieFassungen.razor.rz.scp.css */
/* Fassungen einer Richtlinie (WM-33): zweizeilige Zeilen für die schmale Spalte neben der PDF-Vorschau. */
.rl-fassungen td[b-qztuh1swwk] { vertical-align: middle; }

/* Nummer und darunter die Pille „Gültig“ - nebeneinander wäre die Spalte breiter als nötig. */
.rl-fassung-nr[b-qztuh1swwk] {
    display: block;
    min-width: 1.25rem;
    font-weight: var(--font-weight-medium);
    font-variant-numeric: tabular-nums;
}

.rl-fassung-zeit[b-qztuh1swwk] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.rl-fassung-zeit .text-leise[b-qztuh1swwk],
.rl-fassung-von[b-qztuh1swwk] { font-size: 0.8125rem; }

/* Der Name bricht um statt abgeschnitten zu werden: Fassungen heißen oft gleich bis auf das Ende („… 2026-11.pdf“). */
.rl-fassung-name[b-qztuh1swwk] {
    overflow-wrap: break-word;
    hyphens: auto;
    line-height: 1.3;
}

.rl-fassung-von[b-qztuh1swwk] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rl-fassung-aktionen[b-qztuh1swwk] {
    white-space: nowrap;
    text-align: right;
}

.rl-fassung-knopf[b-qztuh1swwk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
}

.rl-fassung-knopf + .rl-fassung-knopf[b-qztuh1swwk] { margin-left: 0.25rem; }

.rl-fassungen-hinweis[b-qztuh1swwk] { margin: 0.75rem 0 0; }

/* Aktiv-Verlauf (WM-35) unter den Fassungen: gleiche Zeilenform, ohne Aktionen. */
.rl-verlauf td[b-qztuh1swwk] { vertical-align: middle; }

.rl-verlauf-wer[b-qztuh1swwk] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rl-verlauf-zusatz[b-qztuh1swwk] { font-size: 0.8125rem; }
/* /Components/Shared/StatCard.razor.rz.scp.css */
.stat-card[b-234sktqw5e] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem 1.25rem;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    text-decoration: none;
    color: var(--foreground);
    transition: background-color 0.12s ease, border-color 0.12s ease;
}

a.stat-card:hover[b-234sktqw5e] {
    background: var(--secondary);
    border-color: var(--primary);
}

.stat-card-top[b-234sktqw5e] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--muted-foreground);
    font-size: 0.85rem;
}

.stat-card-value[b-234sktqw5e] {
    font-size: 1.6rem;
    font-weight: var(--font-weight-medium);
    line-height: 1.1;
}

.stat-card-hint[b-234sktqw5e] {
    font-size: 0.78rem;
    color: var(--muted-foreground);
}

.stat-card-fuss[b-234sktqw5e] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
}

.stat-card-fuss-rechts[b-234sktqw5e] {
    text-align: right;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.stat-ok .stat-card-value[b-234sktqw5e] {
    color: #166534;
}

.stat-warn .stat-card-value[b-234sktqw5e] {
    color: #854d0e;
}

.stat-bad .stat-card-value[b-234sktqw5e] {
    color: #991b1b;
}
/* /Components/Shared/Wochenleiste.razor.rz.scp.css */
/* Wochenleiste: Band über 7 Tage, Abschnitte in neutralen Navy-Abstufungen (keine Markenfarbe als Fläche). */
.wochenleiste[b-ed8gvw81x6] {
    font-variant-numeric: tabular-nums;
}

.wl-tage[b-ed8gvw81x6] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    margin-bottom: 0.25rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--muted-foreground);
    text-align: center;
}

.wl-band[b-ed8gvw81x6] {
    position: relative;
    height: 2.5rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background-color: var(--card);
}

.wl-tagesgrenze[b-ed8gvw81x6] {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background-color: rgba(9, 34, 49, 0.18);
    z-index: 2;
    pointer-events: none;
}

.wl-abschnitt[b-ed8gvw81x6] {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    /* Weiße Fuge zwischen aneinandergrenzenden Zeiträumen (Ende 06:00 = Beginn 06:00). */
    box-shadow: inset 1px 0 0 var(--card), inset -1px 0 0 var(--card);
    font-size: 0.75rem;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
}

a.wl-abschnitt:hover[b-ed8gvw81x6],
a.wl-abschnitt:focus-visible[b-ed8gvw81x6] {
    filter: brightness(0.92);
    outline: none;
}

.wl-text[b-ed8gvw81x6] {
    padding: 0 0.375rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Abstufungen: Navy-Text auf den hellen (≥ 6,8 : 1), Weiß auf den dunklen (≥ 7,4 : 1). */
.wl-stufe-0[b-ed8gvw81x6] { background-color: #DCE3E8; color: #092231; }
.wl-stufe-1[b-ed8gvw81x6] { background-color: #BCC9D2; color: #092231; }
.wl-stufe-2[b-ed8gvw81x6] { background-color: #93A8B6; color: #092231; }
.wl-stufe-3[b-ed8gvw81x6] { background-color: #3E5A6C; color: #ffffff; }
.wl-stufe-4[b-ed8gvw81x6] { background-color: #092231; color: #ffffff; }

/* Der bearbeitete Zeitraum: orange Kontur (Kante für „gewählt“), keine Fläche. */
.wl-entwurf[b-ed8gvw81x6] {
    position: absolute;
    top: -4px;
    bottom: -4px;
    z-index: 3;
    border: 2px solid var(--primary);
    border-radius: 4px;
    pointer-events: none;
}

.wl-legende[b-ed8gvw81x6] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
    margin-top: 0.625rem;
    font-size: 0.75rem;
    color: var(--muted-foreground);
}

.wl-legende-eintrag[b-ed8gvw81x6] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.wl-muster[b-ed8gvw81x6] {
    display: inline-block;
    width: 0.875rem;
    height: 0.875rem;
    border-radius: 3px;
}

.wl-leer[b-ed8gvw81x6] {
    background-color: var(--card);
    border: 1px solid var(--border);
}

.wl-muster-entwurf[b-ed8gvw81x6] {
    border: 2px solid var(--primary);
}
/* /Components/Shared/WochenzeitEingabe.razor.rz.scp.css */
/* Wochentag und Uhrzeit nebeneinander, auf schmalen Schirmen untereinander (wie .feld-datum-uhrzeit). */
.wochenzeit[b-1wrrvu10tf] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.wochenzeit .wochenzeit-tag[b-1wrrvu10tf] {
    width: auto;
    min-width: 10rem;
}
