/* /Components/Layout/AdminBanner.razor.rz.scp.css */
/* Höhe bewusst fest (identisch zu html.has-app-banner in app.css) statt var(--app-banner-h):
   so bleibt der Banner auch sichtbar, wenn die <html>-Klasse mal nicht (mehr) stimmt —
   sonst gäbe es einen 0px-Banner bzw. reservierten Leerraum ohne Inhalt. */
.abanner[b-avrnb8s8uc] {
    /* Eigener Stacking-Context: Seiten wie /dashboard ziehen ihren Inhalt per negativem Margin
       unter Banner + Header — ohne z-index übermalt deren heller Hintergrund den dunklen Banner
       (weiße Schrift auf hellem Grund = scheinbar leerer Streifen über dem Header). */
    position: relative;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    height: calc(40px + env(safe-area-inset-top, 0px));
    padding-top: env(safe-area-inset-top, 0px);
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    text-align: center;
    flex-shrink: 0;
}

.abanner--info[b-avrnb8s8uc] { background: #16181c; }
.abanner--warn[b-avrnb8s8uc] { background: #a15c00; }

.abanner-ic[b-avrnb8s8uc] {
    display: inline-flex;
    align-items: center;
    flex: none;
    opacity: .9;
}

.abanner-text[b-avrnb8s8uc] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 520px) {
    .abanner[b-avrnb8s8uc] {
        height: calc(36px + env(safe-area-inset-top, 0px));
    }
}
/* /Components/Layout/AdminImpersonationBar.razor.rz.scp.css */
.aimp-bar[b-bzhxd4ntl0] {
    position: fixed;
    left: 50%;
    bottom: 18px;
    transform: translateX(-50%);
    z-index: 2600;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px 10px 16px;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .55);
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 13.5px;
    max-width: calc(100vw - 24px);
}

.aimp-ic[b-bzhxd4ntl0] { display: inline-flex; align-items: center; opacity: .85; flex: none; }
.aimp-text[b-bzhxd4ntl0] { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.aimp-text strong[b-bzhxd4ntl0] { font-weight: 800; }

.aimp-form[b-bzhxd4ntl0] { flex: none; margin: 0; }
.aimp-btn[b-bzhxd4ntl0] {
    height: 34px;
    padding: 0 16px;
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 800;
    cursor: pointer;
    transition: background .14s ease;
}
@media (hover: hover) {
    .aimp-btn:hover[b-bzhxd4ntl0] {
        background: #e4e4e7;
    }
}
/* /Components/Layout/AdminMessagePopup.razor.rz.scp.css */
.amsgpop-overlay[b-98xj4halx5] {
    position: fixed;
    inset: 0;
    z-index: 2400;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(22, 24, 28, .4);
    backdrop-filter: blur(3px);
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.amsgpop-card[b-98xj4halx5] {
    width: min(480px, 100%);
    max-height: 82dvh;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .3);
    overflow: hidden;
    animation: amsgpop-pop-b-98xj4halx5 .2s ease;
}
@keyframes amsgpop-pop-b-98xj4halx5 { from { transform: translateY(10px) scale(.98); opacity: 0; } to { transform: none; opacity: 1; } }

.amsgpop-head[b-98xj4halx5] {
    padding: 22px 24px 14px;
    border-bottom: 1px solid #f0f0f2;
}
.amsgpop-badge[b-98xj4halx5] {
    display: inline-block;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #80858d;
    margin-bottom: 8px;
}
.amsgpop-badge--note[b-98xj4halx5] { color: #16a34a; }
.amsgpop-title[b-98xj4halx5] {
    margin: 0;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.01em;
    color: #16181c;
}

.amsgpop-body[b-98xj4halx5] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 18px 24px;
    color: #3c4148;
    font-size: 14.5px;
    line-height: 1.6;
}

.amsgpop-foot[b-98xj4halx5] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 24px 18px;
    border-top: 1px solid #f0f0f2;
}
.amsgpop-count[b-98xj4halx5] { font-size: 12.5px; color: #80858d; font-weight: 600; }
.amsgpop-ok[b-98xj4halx5] {
    margin-left: auto;
    height: 46px;
    padding: 0 28px;
    border: 0;
    border-radius: 12px;
    background: #16181c;
    color: #fff;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background .14s ease;
}
@media (hover: hover) {
    .amsgpop-ok:hover[b-98xj4halx5] {
        background: #26282e;
    }
}
/* /Components/Layout/CommandPalette.razor.rz.scp.css */
/* ================================================================
   Befehlspalette (Strg+K) — monochrom, wie die Header-Dropdowns.
================================================================ */

.cpal[b-7m6vxs9nxz] {
    position: fixed;
    inset: 0;
    z-index: 4000;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    -webkit-font-smoothing: antialiased;
}

.cpal__backdrop[b-7m6vxs9nxz] {
    position: absolute;
    inset: 0;
    border: 0;
    padding: 0;
    background: rgba(22, 24, 28, .28);
    backdrop-filter: blur(2px);
    cursor: default;
    animation: cpal-fade-b-7m6vxs9nxz .14s ease-out;
}

.cpal__panel[b-7m6vxs9nxz] {
    position: relative;
    width: min(560px, calc(100vw - 32px));
    margin: 9vh auto 0;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 18px;
    corner-shape: superellipse(1.2); /* weiche Squircle-Ecken, s. Header */
    box-shadow: 0 40px 80px -32px rgba(0, 0, 0, .45), 0 8px 20px -12px rgba(0, 0, 0, .18);
    overflow: hidden;
    animation: cpal-up-b-7m6vxs9nxz .16s cubic-bezier(.2, .9, .3, 1);
}

/* ---- Suchzeile ---- */
.cpal__search[b-7m6vxs9nxz] {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 14px 16px;
    border-bottom: 1px solid #f0f0f2;
}

.cpal__lupe[b-7m6vxs9nxz] {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    color: #80858d;
}

.cpal__search input[b-7m6vxs9nxz] {
    flex: 1;
    min-width: 0;
    border: 0;
    outline: none;
    background: transparent;
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    color: #16181c;
}

.cpal__search input[b-7m6vxs9nxz]::placeholder {
    color: #a6aab1;
    font-weight: 500;
}

.cpal__kbd[b-7m6vxs9nxz] {
    flex: 0 0 auto;
    padding: 2px 6px;
    border: 1px solid #e4e4e7;
    border-radius: 6px;
    background: #fafafa;
    font-family: inherit;
    font-size: 10.5px;
    font-weight: 700;
    color: #80858d;
    line-height: 1.4;
}

/* ---- Gruppenfilter-Chips (Alt+0–9) ----
   Grid statt Flex: jede Zelle gleich breit (auto-fill hält auch die letzte,
   nicht volle Zeile auf derselben Spaltenbreite). */
.cpal__filters[b-7m6vxs9nxz] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
    gap: 5px;
    padding: 9px 14px;
    border-bottom: 1px solid #f0f0f2;
}

.cpal__chip[b-7m6vxs9nxz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    height: 24px;
    padding: 0 6px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    color: #3c4148;
    font-family: inherit;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    overflow: hidden;
    cursor: pointer;
    transition: background .13s ease, color .13s ease, border-color .13s ease;
}

@media (hover: hover) {
    .cpal__chip:hover[b-7m6vxs9nxz] {
        background: #efeff1;
        color: #16181c;
    }
}

.cpal__chip.is-on[b-7m6vxs9nxz] {
    background: #16181c;
    border-color: #16181c;
    color: #fff;
}

/* kleine Ziffern-Kachel = die Alt-Taste des Chips */
.cpal__chip-num[b-7m6vxs9nxz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 14px;
    height: 14px;
    padding: 0 3px;
    border-radius: 5px;
    background: #efeff1;
    color: #80858d;
    font-size: 9.5px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.cpal__chip.is-on .cpal__chip-num[b-7m6vxs9nxz] {
    background: rgba(255, 255, 255, .18);
    color: #fff;
}

/* ---- Treffer ---- */
.cpal__results[b-7m6vxs9nxz] {
    max-height: min(64vh, 640px);
    overflow-y: auto;
    padding: 8px;
    overscroll-behavior: contain;
}

.cpal__group[b-7m6vxs9nxz] {
    margin: 2px 0 1px;
    padding: 8px 10px 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #a6aab1;
}

.cpal__group:not(:first-child)[b-7m6vxs9nxz] {
    margin-top: 6px;
    padding-top: 10px;
    border-top: 1px solid #f0f0f2;
}

.cpal__row[b-7m6vxs9nxz] {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 40px;
    padding: 8px 10px;
    border-radius: 10px;
    color: #16181c;
    text-decoration: none;
    font-size: 13.5px;
    font-weight: 600;
}

/* Aktiv-Zeile wird über is-active (Tastatur + Mouseenter) geführt,
   nicht über :hover — sonst konkurrieren zwei Markierungen. */
.cpal__row:focus-visible[b-7m6vxs9nxz] {
    color: #16181c;
    text-decoration: none;
    outline: none;
}
@media (hover: hover) {
    .cpal__row:hover[b-7m6vxs9nxz] {
        color: #16181c;
        text-decoration: none;
        outline: none;
    }
}

.cpal__row.is-active[b-7m6vxs9nxz] {
    background: #efeff1;
}

.cpal__icon[b-7m6vxs9nxz] {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #8b9097;
}

.cpal__icon svg[b-7m6vxs9nxz] {
    width: 17px;
    height: 17px;
}

.cpal__row.is-active .cpal__icon[b-7m6vxs9nxz] {
    color: #16181c;
}

.cpal__label[b-7m6vxs9nxz] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cpal__detail[b-7m6vxs9nxz] {
    margin-left: auto;
    padding-left: 12px;
    flex: 0 1 auto;
    max-width: 45%;
    color: #9095a0;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cpal__empty[b-7m6vxs9nxz] {
    padding: 28px 12px;
    text-align: center;
    color: #80858d;
    font-size: 13.5px;
    font-weight: 500;
}

/* ---- Fußzeile ---- */
.cpal__foot[b-7m6vxs9nxz] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 10px 16px;
    border-top: 1px solid #f0f0f2;
    color: #80858d;
    font-size: 11.5px;
    font-weight: 600;
}

.cpal__foot span[b-7m6vxs9nxz] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

@keyframes cpal-fade-b-7m6vxs9nxz {
    from { opacity: 0; }
}

@keyframes cpal-up-b-7m6vxs9nxz {
    from {
        opacity: 0;
        transform: translateY(-8px) scale(.98);
    }
}

@media (prefers-reduced-motion: reduce) {
    .cpal__backdrop[b-7m6vxs9nxz],
    .cpal__panel[b-7m6vxs9nxz] {
        animation: none;
    }
}

/* Handy: Panel höher ansetzen, damit die Bildschirmtastatur Platz hat */
@media (max-width: 520px) {
    .cpal__panel[b-7m6vxs9nxz] {
        margin-top: 8vh;
        width: calc(100vw - 24px);
    }
}
/* /Components/Layout/Header.razor.rz.scp.css */
/* ================================================================
   HEADER — Schwarz-Weiß Redesign
   Weiße Pill-Navigation mittig, runde Icon-Buttons rechts,
   weiße Dropdowns mit abgerundetem Zeiger. Akzent = Schwarz.
================================================================ */

.topbar[b-l04bbodsdm] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
    height: var(--app-topbar-h);
    padding: var(--app-safe-top) 24px 0;
    box-sizing: content-box;
    background: #f5f5f7;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    -webkit-font-smoothing: antialiased;
    flex-shrink: 0;
}

/* Auf der Karte (/dashboard): Header schwebt transparent über der Karte */
.topbar--overlay[b-l04bbodsdm] {
    background: transparent;
    z-index: 1200;
}

/* ---- Mobile: Hamburger + Titel (Desktop ausgeblendet) ---- */
.hburger[b-l04bbodsdm] {
    position: relative;
    display: none;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    cursor: pointer;
    padding: 0;
    box-shadow: 0 6px 18px -12px rgba(0,0,0,.22);
    touch-action: manipulation;
}

.hburger:active[b-l04bbodsdm] {
    background: #16181c;
    color: #fff;
    border-color: #16181c;
}

.hburger svg[b-l04bbodsdm] {
    width: 20px;
    height: 20px;
}

.hburger-dot[b-l04bbodsdm] {
    position: absolute;
    top: 1px;
    right: 1px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #16181c;
    border: 2px solid #f5f5f7;
}

.htitle[b-l04bbodsdm] {
    display: none;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    font-size: 16px;
    color: #16181c;
    white-space: nowrap;
    pointer-events: none;
}

/* Über der Karte (Dashboard-Overlay, transparenter Header) bekommt der Brand-Titel eine weiße
   Pille – sonst läge der dunkle Text im Kompakt-Modus unleserlich direkt auf der Karte. Greift
   nur, wenn der Titel sichtbar ist (Kompakt/≤520px); sonst ist .htitle ohnehin display:none. */
.topbar--overlay .htitle[b-l04bbodsdm] {
    top: 50%;
    transform: translate(-50%, -50%);
    padding: 10px 18px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    box-shadow: 0 8px 24px -12px rgba(0, 0, 0, .25), 0 1px 2px rgba(0, 0, 0, .04);
}

/* ===== Header-Uhr: große Zeit, daneben KW über kurzem Datum, mittig im Header =====
   Sekunden zeigt keine Ziffer, sondern die Linie am Pillenboden (.hclock-sec): sie füllt
   sich in 60 s und ist genau zum Minutenwechsel voll. */
.hclock[b-l04bbodsdm] {
    display: none;
    position: relative;
    align-items: center;
    gap: 12px;
    flex: 0 0 auto;
    /* zusammen mit .htools margin-left:auto → die Uhr landet mittig zwischen Nav-Pille und Tools */
    margin-left: auto;
    /* eigene weiße Pille wie Nav/Tools → über der Karte lesbar und zum Header passend */
    height: 42px;
    padding: 0 16px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    corner-shape: superellipse(1.2); /* weiche Squircle-Ecken, s. .hnav */
    box-shadow: 0 8px 24px -12px rgba(0, 0, 0, .25), 0 1px 2px rgba(0, 0, 0, .04);
    white-space: nowrap;
    font-family: 'Plus Jakarta Sans', -apple-system, "Segoe UI", sans-serif;
}

.hclock-time[b-l04bbodsdm] {
    display: inline-flex;
    align-items: baseline;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    font-size: 19px;
    letter-spacing: .4px;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

/* Eigene Spans, damit headerClock.js Stunde und Minute getrennt hochrollen kann. */
.hclock-hh[b-l04bbodsdm],
.hclock-mm[b-l04bbodsdm] {
    display: inline-block;
}

.hclock-colon[b-l04bbodsdm] {
    padding: 0 1px;
}

/* Haarlinie zwischen Zeit und KW/Datum-Block */
.hclock-div[b-l04bbodsdm] {
    width: 1px;
    height: 22px;
    flex: 0 0 auto;
    background: #ececef;
}

.hclock-stack[b-l04bbodsdm] {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.hclock-kw[b-l04bbodsdm] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .6px;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.hclock-date[b-l04bbodsdm] {
    font-size: 11px;
    font-weight: 600;
    color: #80858d;
    text-transform: capitalize;
    font-variant-numeric: tabular-nums;
}

/* Sekundenlinie: seitlich auf Textbreite eingerückt (sonst würde der Anfang in der runden
   Pillenkappe verschwinden). Der Takt wird per negativem animation-delay aus der echten Uhr
   gesetzt (headerClock.js) – die Linie läuft dadurch phasengleich und driftet nicht. */
.hclock-sec[b-l04bbodsdm] {
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 0;
    height: 2px;
    border-radius: 99px;
    background: #16181c;
    transform: scaleX(0);
    transform-origin: left center;
    animation: hclock-sec-b-l04bbodsdm 60s linear infinite;
}

@keyframes hclock-sec-b-l04bbodsdm {
    from {
        transform: scaleX(0);
    }

    to {
        transform: scaleX(1);
    }
}

/* Nur zeigen, wenn neben Nav-Pille und Tools genug Platz für die Mitte ist. */
@media (min-width: 1200px) {
    .hclock[b-l04bbodsdm] {
        display: flex;
    }
}

/* Kein prefers-reduced-motion-Riegel: die Linie IST die Sekundenanzeige, ein stufiges
   Weiterspringen sah aus wie ein Fehler. Sie läuft daher immer flüssig durch. */

/* ===== Nav-Pill (links) ===== */
.hnavzone[b-l04bbodsdm] {
    flex: 0 1 auto;
    min-width: 0;
    display: flex;
    justify-content: flex-start;
}

.hnav[b-l04bbodsdm] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 2px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    /* Superellipse-Ecken (iOS-„Squircle"): glättet den harten Krümmungssprung, wo
       der Halbkreis in die gerade Kante übergeht. In Browsern ohne corner-shape
       (z. B. ältere Safari/Firefox) fällt es lautlos auf die normale Pille zurück. */
    corner-shape: superellipse(1.2);
    /* Kein Innen-Padding: die Aktiv-/Hover-Pille füllt die Bar voll aus (kein weißer
       Rahmen um den ausgewählten Bereich). Bar bleibt 44px hoch, da die Tabs auf 42px
       wachsen (44 − 2×1px Border). */
    padding: 0;
    box-shadow: 0 8px 24px -12px rgba(0,0,0,.25), 0 1px 2px rgba(0,0,0,.04);
}

.hitem[b-l04bbodsdm] {
    position: relative;
    display: flex;
}

.htab[b-l04bbodsdm] {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 42px;
    padding: 0 15px;
    line-height: 1;
    border: 0;
    border-radius: 999px;
    corner-shape: superellipse(1.2); /* weiche Squircle-Ecken, s. .hnav */
    background: transparent;
    color: #16181c;
    font-family: inherit;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: .01em;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}

@media (hover: hover) {
    .htab:not(.is-active):hover[b-l04bbodsdm] {
        background: #efeff1;
        color: #16181c;
        text-decoration: none;
    }
}

.htab.is-open:not(.is-active)[b-l04bbodsdm] {
    background: #efeff1;
}

/* Ghost-Kopie (weiße Text-Ebene in der schwarzen Aktiv-Pill) erbt nie den Offen-Zustand */
.hnav-ghost .htab.is-open:not(.is-active)[b-l04bbodsdm] {
    background: transparent;
}

/* Aktiv-Pill (morphend) + weiße Text-Kopie (Ghost) statt statischer Aktiv-Färbung */
.hnav-ind[b-l04bbodsdm] {
    position: absolute;
    /* headerNav.js misst die Tab-Positionen ab der Border-Box der .hnav; die
       Aktiv-Pille ist aber absolut positioniert (Ursprung = Padding-Box, 1px
       innerhalb der Border). Ohne Ausgleich säßen Pille UND Ghost-Text 1px zu
       tief/rechts. -1px (= Border-Breite) rückt beide exakt auf die echten Tabs. */
    top: -1px;
    left: -1px;
    height: 42px;
    width: 0;
    overflow: hidden;
    border-radius: 999px;
    corner-shape: superellipse(1.2); /* weiche Squircle-Ecken, s. .hnav */
    background: #16181c;
    z-index: 2;
    opacity: 0;
    pointer-events: none;
    transition: transform .42s cubic-bezier(.66,0,.18,1), width .42s cubic-bezier(.66,0,.18,1), height .42s cubic-bezier(.66,0,.18,1);
}

.hnav-ghost[b-l04bbodsdm] {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 0;
    border: 1px solid transparent;
    pointer-events: none;
    white-space: nowrap;
    transition: transform .42s cubic-bezier(.66,0,.18,1);
}

.hnav-ghost .hitem[b-l04bbodsdm] {
    position: relative;
    display: flex;
}

.hnav-ghost .htab[b-l04bbodsdm] {
    color: #fff;
    background: transparent;
}

.hnav-ghost .hchev[b-l04bbodsdm] {
    color: #fff;
}

.hnav-ghost .htab-dot[b-l04bbodsdm],
.hnav-ghost .hmenu[b-l04bbodsdm],
.hnav-ghost .hmenu-backdrop[b-l04bbodsdm] {
    display: none;
}

/* Chevron folgt der Textfarbe (schwarz/weiß), nicht grau */
.hchev[b-l04bbodsdm] {
    width: 14px;
    height: 14px;
    margin: 0 -4px 0 -2px;
    color: inherit;
    transition: transform .18s ease;
}

.htab.is-open .hchev[b-l04bbodsdm] {
    transform: rotate(180deg);
}

/* Status-/Frist-Punkt am Tab (oben rechts) */
.htab-dot[b-l04bbodsdm] {
    position: absolute;
    top: -2px;
    right: 6px;
    z-index: 3;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #16181c;
    border: 2px solid #fff;
    pointer-events: none;
}

.htab.is-active ~ .htab-dot[b-l04bbodsdm] {
    background: #fff;
    border-color: #16181c;
}

/* ===== Tools (rechts) ===== */
.htools[b-l04bbodsdm] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    /* hält die Tools rechts (vorher über hnavzone:flex:1; jetzt eigenständig, da die Uhr dazwischen liegt) */
    margin-left: auto;
}

.hbtn[b-l04bbodsdm] {
    position: relative;
    width: 44px;
    height: 44px;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    color: #3c4148;
    cursor: pointer;
    padding: 0;
    box-shadow: 0 6px 18px -12px rgba(0,0,0,.22);
    transition: background .15s ease, color .15s ease, border-color .15s ease;
    touch-action: manipulation;
}

.hbtn.is-hot[b-l04bbodsdm] {
    background: #efeff1;
    color: #16181c;
    border-color: #e4e4e7;
}

@media (hover: hover) {
    .hbtn:hover[b-l04bbodsdm] {
        background: #efeff1;
        color: #16181c;
        border-color: #e4e4e7;
    }
}

/* Schwarz erst bei Klick (oder wenn das zugehörige Panel offen ist) */
.hbtn:active[b-l04bbodsdm],
.hbtn.is-on[b-l04bbodsdm] {
    background: #16181c;
    color: #fff;
    border-color: #16181c;
}

.hbtn svg[b-l04bbodsdm] {
    width: 19px;
    height: 19px;
}

.hbtn-dot[b-l04bbodsdm] {
    position: absolute;
    top: 1px;
    right: 1px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #16181c;
    border: 2px solid #fff;
    pointer-events: none;
}

.hbtn:active .hbtn-dot[b-l04bbodsdm],
.hbtn.is-on .hbtn-dot[b-l04bbodsdm] {
    background: #fff;
    border-color: #16181c;
}

.hbtn-wrap[b-l04bbodsdm] {
    position: relative;
    display: inline-flex;
}

/* ---- User-Pill (nur Name) ---- */
.huser[b-l04bbodsdm] {
    display: flex;
    align-items: center;
    gap: 6px;
    height: 44px;
    padding: 4px 6px 4px 4px;
    margin-left: 2px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    corner-shape: superellipse(1.2); /* weiche Squircle-Ecken, s. .hnav */
    box-shadow: 0 6px 18px -12px rgba(0,0,0,.22);
}

.huser-btn[b-l04bbodsdm] {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 0;
    background: transparent;
    cursor: pointer;
    border-radius: 999px;
    padding: 2px 6px 2px 2px;
    font: inherit;
    transition: background .15s ease;
}

@media (hover: hover) {
    .huser-btn:hover[b-l04bbodsdm] {
        background: #efeff1;
    }
}

.havatar[b-l04bbodsdm] {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    flex: 0 0 auto;
    background: #16181c;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    font-size: 15px;
}

.huser-name[b-l04bbodsdm] {
    font-size: 14px;
    font-weight: 700;
    color: #16181c;
    white-space: nowrap;
    max-width: 170px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hlogout-form[b-l04bbodsdm] {
    display: flex;
    margin: 0;
}

.hlogout[b-l04bbodsdm] {
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #3c4148;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
    touch-action: manipulation;
}

@media (hover: hover) {
    .hlogout:hover[b-l04bbodsdm] {
        background: #fbeae8;
        color: #e2483b;
    }
}

.hlogout svg[b-l04bbodsdm] {
    width: 18px;
    height: 18px;
}

/* ===== Dropdown (weiß, mit abgerundetem Zeiger) ===== */
.hmenu-backdrop[b-l04bbodsdm] {
    position: fixed;
    inset: 0;
    z-index: 1999;
    border: 0;
    background: transparent;
    padding: 0;
    cursor: default;
}

.hmenu[b-l04bbodsdm] {
    position: absolute;
    top: calc(100% + 8px);
    z-index: 2000;
    min-width: 250px;
    padding: 8px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    corner-shape: superellipse(1.2); /* weiche Squircle-Ecken, s. .hnav */
    box-shadow: 0 24px 50px -20px rgba(0,0,0,.26), 0 6px 14px -10px rgba(0,0,0,.12);
}

.hmenu--left[b-l04bbodsdm] {
    left: 50%;
    transform: translateX(-50%);
}

.hmenu--right[b-l04bbodsdm] {
    right: 0;
}

/* unsichtbare Hover-Brücke über die Lücke (Hover bleibt beim Weg zum Menü erhalten) */
.hmenu[b-l04bbodsdm]::before {
    content: "";
    position: absolute;
    top: -8px;
    left: 0;
    right: 0;
    height: 8px;
}

/* Kein Zeiger/Caret — abgesetztes Popover, blendet kurz ein */
@keyframes hmenu-fade-b-l04bbodsdm {
    from { opacity: 0; }
}

.hmenu[b-l04bbodsdm] {
    animation: hmenu-fade-b-l04bbodsdm .12s ease-out;
}

@media (prefers-reduced-motion: reduce) {
    .hmenu[b-l04bbodsdm] {
        animation: none;
    }
}

/* ===== Kompakte Dropdown-Variante (Einstellungen, Kunden, Ressourcen,
   Mitarbeiter): kleinere Zeilen,
   Icons ohne Chip, Hairline-Trenner zwischen den Gruppen ===== */
.hmenu--compact[b-l04bbodsdm] {
    /* breit genug für „Kontakte & Baustellen" + Aktiv-Häkchen in EINER Zeile */
    min-width: 248px;
    padding: 6px;
    border-radius: 14px;
}

.hmenu-group[b-l04bbodsdm] {
    margin: 2px 0 1px;
    padding: 6px 9px 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #a6aab1;
}

.hmenu-group:not(:first-child)[b-l04bbodsdm] {
    margin-top: 6px;
    padding-top: 10px;
    border-top: 1px solid #f0f0f2;
}

.hmenu--compact .hmrow[b-l04bbodsdm] {
    min-height: 32px;
    padding: 6px 9px;
    gap: 10px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 600;
    color: #26282d;
}

.hmenu--compact .hmi[b-l04bbodsdm] {
    width: 16px;
    height: 16px;
    border-radius: 0;
    background: transparent;
    color: #8b9097;
}

.hmenu--compact .hmi svg[b-l04bbodsdm] {
    width: 16px;
    height: 16px;
}

.hmenu--compact .hmrow:focus-visible .hmi[b-l04bbodsdm] {
    background: transparent;
    color: #16181c;
}

@media (hover: hover) {
    .hmenu--compact .hmrow:hover .hmi[b-l04bbodsdm] {
        background: transparent;
        color: #16181c;
    }
}

.hmrow[b-l04bbodsdm] {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 44px;
    padding: 10px 11px;
    border: 0;
    border-radius: 13px;
    background: transparent;
    color: #16181c;
    text-decoration: none;
    cursor: pointer;
    text-align: left;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    transition: background .13s ease;
    touch-action: manipulation;
}

.hmrow:focus-visible[b-l04bbodsdm] {
    background: #efeff1;
    /* Zeilen sind echte Links (Strg+Klick → neuer Tab): Bootstraps a:hover-
       Unterstreichung/Farbe hier neutralisieren. */
    color: #16181c;
    text-decoration: none;
    outline: none;
}

@media (hover: hover) {
    .hmrow:hover[b-l04bbodsdm] {
        background: #efeff1;
        /* Zeilen sind echte Links (Strg+Klick → neuer Tab): Bootstraps a:hover-
       Unterstreichung/Farbe hier neutralisieren. */
        color: #16181c;
        text-decoration: none;
        outline: none;
    }
}

.hmi[b-l04bbodsdm] {
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    border-radius: 10px;
    background: #efeff1;
    color: #16181c;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .13s ease, color .13s ease;
}

.hmi svg[b-l04bbodsdm] {
    width: 18px;
    height: 18px;
}

@media (hover: hover) {
    .hmrow:hover .hmi[b-l04bbodsdm] {
        background: #16181c;
        color: #fff;
    }
}

/* Aktuelle Seite im Dropdown: dezente Tönung + Häkchen rechts */
.hmrow.is-active[b-l04bbodsdm],
.hmrow.is-active:focus-visible[b-l04bbodsdm] {
    background: #efeff1;
    font-weight: 700;
}
@media (hover: hover) {
    .hmrow.is-active:hover[b-l04bbodsdm] {
        background: #efeff1;
        font-weight: 700;
    }
}

.hmenu--compact .hmrow.is-active .hmi[b-l04bbodsdm] {
    color: #16181c;
}

@media (hover: hover) {
    .hmenu--compact .hmrow.is-active:hover .hmi[b-l04bbodsdm] {
        color: #16181c;
    }
}

.hmrow.is-active[b-l04bbodsdm]::after {
    content: "";
    width: 15px;
    height: 15px;
    margin-left: auto;
    flex: 0 0 auto;
    background: #16181c;
    -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='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%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='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Sonderfall: Zeile mit Status-Punkt UND Häkchen — Punkt behält den Auto-Abstand,
   das Häkchen rückt mit festem Abstand dahinter. */
.hmrow.is-active:has(.hmrow-dot)[b-l04bbodsdm]::after {
    margin-left: 8px;
}

/* Status-Punkt am Ende einer Dropdown-Zeile (Lager/Werkzeug/Fuhrpark) */
.hmrow-dot[b-l04bbodsdm] {
    margin-left: auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #16181c;
    flex: 0 0 auto;
}

/* ===== Kompakt / Mobile: Topbar reduziert sich auf Hamburger + Titel =====
   .topbar--compact setzt headerNav.js, sobald Inline-Nav + rechte Tools nicht mehr in eine
   Zeile passen. Da die Tab-Anzahl je Berechtigung schwankt, kann das keine feste Breite leisten –
   gemessen wird die tatsächliche Breite. Die ≤520px-Regel ist der Fallback für echte Handys
   (falls JS noch nicht lief); beide erzeugen exakt dieselbe Optik. */
.topbar--compact[b-l04bbodsdm] {
    padding-left: 14px;
    padding-right: 14px;
    gap: 8px;
}

.topbar--compact .hburger[b-l04bbodsdm] {
    display: flex;
}

.topbar--compact .htitle[b-l04bbodsdm] {
    display: block;
}

.topbar--compact .hnavzone[b-l04bbodsdm],
.topbar--compact .htools[b-l04bbodsdm],
.topbar--compact .hclock[b-l04bbodsdm] {
    display: none;
}

/* Uhr ausblenden, wenn sie neben Nav + Tools keinen Platz mehr hätte (headerNav.js misst).
   Höhere Spezifität als die ≥1200px-Media-Query, gewinnt also gegen deren display:flex. */
.topbar--noclock .hclock[b-l04bbodsdm] {
    display: none;
}

@media (max-width: 520px) {
    .topbar[b-l04bbodsdm] {
        padding: var(--app-safe-top) 14px 0;
        gap: 8px;
    }

    .hburger[b-l04bbodsdm] {
        display: flex;
    }

    .htitle[b-l04bbodsdm] {
        display: block;
    }

    .hnavzone[b-l04bbodsdm],
    .htools[b-l04bbodsdm] {
        display: none;
    }
}


/* ================================================================
   MOBILE NAVIGATION — Drawer (nur Handy-Ansicht)
================================================================ */

.mnav[b-l04bbodsdm] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
    height: 100dvh;
    z-index: 3000;
    display: none;
}

/* Drawer sichtbar, sobald der Header kompakt ist (JS) bzw. auf echten Handys (Fallback). */
.topbar--compact ~ .mnav[b-l04bbodsdm] {
    display: block;
}

@media (max-width: 520px) {
    .mnav[b-l04bbodsdm] {
        display: block;
    }
}

.mnav__backdrop[b-l04bbodsdm] {
    position: absolute;
    inset: 0;
    border: none;
    padding: 0;
    /* Etwas kräftigere Abdunkelung ersetzt einen Teil des Blurs — backdrop-filter über der
       Live-Karte (Dashboard) ist auf iPad-GPUs der teuerste Effekt; kleinerer Radius = flüssiger. */
    background: rgba(15, 15, 18, 0.5);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    cursor: pointer;
    /* iOS: kein Mitscrollen der Seite hinter dem Drawer */
    touch-action: none;
    animation: mnavBackdropIn-b-l04bbodsdm 0.2s ease-out;
}

@keyframes mnavBackdropIn-b-l04bbodsdm {
    from { opacity: 0; }
    to { opacity: 1; }
}

.mnav__panel[b-l04bbodsdm] {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(320px, 88vw);
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: #f5f5f7;
    border-right: 1px solid #e4e4e7;
    border-radius: 0 26px 26px 0;
    corner-shape: superellipse(1.2); /* weiche Squircle-Ecken, s. .hnav */
    box-shadow: 24px 0 60px -24px rgba(0, 0, 0, 0.35);
    overscroll-behavior: contain;
    /* vertikal scrollt der Browser; horizontal gehört die Geste dem Swipe-Schließen (headerNav.js) */
    touch-action: pan-y;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    -webkit-font-smoothing: antialiased;
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
    will-change: transform;
    animation: mnavPanelIn-b-l04bbodsdm 0.26s cubic-bezier(0.32, 0.72, 0, 1);
}

@keyframes mnavPanelIn-b-l04bbodsdm {
    from { transform: translateX(-100%); }
    to { transform: translateX(0); }
}

/* Inhalt hebt sich beim Öffnen gestaffelt an — ein orchestrierter Moment statt vieler */
.mnav__head[b-l04bbodsdm],
.mnav__search[b-l04bbodsdm],
.mnav__card[b-l04bbodsdm],
.mnav__foot[b-l04bbodsdm] {
    animation: mnavRise-b-l04bbodsdm 0.34s cubic-bezier(0.22, 0.9, 0.3, 1) backwards;
}

.mnav__head[b-l04bbodsdm] { animation-delay: 0.03s; }
.mnav__search[b-l04bbodsdm] { animation-delay: 0.06s; }
.mnav__cards .mnav__card:nth-child(1)[b-l04bbodsdm] { animation-delay: 0.09s; }
.mnav__cards .mnav__card:nth-child(2)[b-l04bbodsdm] { animation-delay: 0.13s; }
.mnav__foot[b-l04bbodsdm] { animation-delay: 0.15s; }

@keyframes mnavRise-b-l04bbodsdm {
    from { opacity: 0; transform: translateY(8px); }
}

@media (prefers-reduced-motion: reduce) {
    .mnav__panel[b-l04bbodsdm],
    .mnav__backdrop[b-l04bbodsdm],
    .mnav__head[b-l04bbodsdm],
    .mnav__search[b-l04bbodsdm],
    .mnav__card[b-l04bbodsdm],
    .mnav__foot[b-l04bbodsdm] {
        animation: none;
    }
}

/* ---- Kopf: Brand + Datum/KW, Schließen ---- */
.mnav__head[b-l04bbodsdm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: calc(16px + env(safe-area-inset-top, 0px)) 14px 8px 18px;
    flex-shrink: 0;
}

.mnav__brandwrap[b-l04bbodsdm] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.mnav__brand[b-l04bbodsdm] {
    font-family: 'Quicksand', sans-serif;
    color: #16181c;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mnav__date[b-l04bbodsdm] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #80858d;
    font-size: 11.5px;
    font-weight: 600;
    text-transform: capitalize;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.mnav__date-dot[b-l04bbodsdm] {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #cfcfd4;
    flex-shrink: 0;
}

.mnav__close[b-l04bbodsdm] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0;
    color: #16181c;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    cursor: pointer;
    touch-action: manipulation;
    flex-shrink: 0;
}

.mnav__close:active[b-l04bbodsdm] {
    background: #16181c;
    color: #fff;
    border-color: #16181c;
}

/* ---- Scrollbereich: Suche + Karten ---- */
.mnav__scroll[b-l04bbodsdm] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 4px 12px 12px;
}

/* Such-Pill im iOS-Suchfeld-Look — öffnet die Befehlspalette */
.mnav__search[b-l04bbodsdm] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 0 14px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    corner-shape: superellipse(1.2);
    background: #fff;
    color: #80858d;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    cursor: pointer;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    text-align: left;
    touch-action: manipulation;
    flex-shrink: 0;
    transition: background 0.15s ease, transform 0.12s ease;
}

.mnav__search svg[b-l04bbodsdm] {
    color: #3c4148;
    flex-shrink: 0;
}

.mnav__search:active[b-l04bbodsdm] {
    background: #efeff1;
    transform: scale(0.985);
}

/* ---- Karten („inset grouped"): weiße Flächen auf dem grauen Canvas ---- */
.mnav__cards[b-l04bbodsdm] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.mnav__card[b-l04bbodsdm] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 5px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    corner-shape: superellipse(1.2);
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    flex-shrink: 0;
}

/* ---- Zeilen ---- */
.mnav__item[b-l04bbodsdm] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 42px;
    border: 0;
    border-radius: 11px;
    padding: 5px 11px;
    color: #16181c;
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    text-align: left;
    text-decoration: none;
    touch-action: manipulation;
    flex-shrink: 0;
    transition: background 0.13s ease, color 0.13s ease, transform 0.12s ease;
}

/* Hover nur auf echten Pointern — auf iOS bleibt sonst der Hover-Zustand „kleben" */
@media (hover: hover) {
    .mnav__item:hover[b-l04bbodsdm] {
        background: #efeff1;
        text-decoration: none;
    }
}

.mnav__item:focus-visible[b-l04bbodsdm] {
    background: #efeff1;
    text-decoration: none;
    outline: none;
}

/* Nur navigierende Nav-Links (ohne aria-expanded) bekommen das kurze Gedrückt-Feedback.
   Aufklappbare Gruppenzeilen (Kunden, Ressourcen, …) NICHT: kein grauer Blitz beim Antippen
   und kein Scale — das Scale hatte sonst die Connector-Linie mitskaliert und sichtbar nach
   rechts verschoben. */
.mnav__item:not([aria-expanded]):active[b-l04bbodsdm] {
    background: #e7e7ea;
    transform: scale(0.985);
    text-decoration: none;
}

.mnav__item--active[b-l04bbodsdm],
.mnav__item--active:active[b-l04bbodsdm] {
    color: #fff;
    background: #16181c;
    box-shadow: 0 10px 22px -14px rgba(0, 0, 0, 0.5);
}

@media (hover: hover) {
    .mnav__item--active:hover[b-l04bbodsdm] {
        color: #fff;
        background: #16181c;
        box-shadow: 0 10px 22px -14px rgba(0, 0, 0, 0.5);
    }
}

/* Icon wie im Desktop-Dropdown: ohne Chip, grau → dunkel bei Hover/Aktiv.
   Feste Spaltenbreite hält die Labels bündig (Desktop nutzt dafür die .hmi-Breite). */
.mnav__item-icon[b-l04bbodsdm] {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #3c4148;
    transition: color 0.13s ease;
}

.mnav__item-icon svg[b-l04bbodsdm] {
    width: 19px;
    height: 19px;
}

@media (hover: hover) {
    .mnav__item:hover .mnav__item-icon[b-l04bbodsdm] {
        color: #16181c;
    }
}

/* Aufgeklappte Gruppe: Icon dunkel (Desktop-Hover-Grammatik, ohne Chip) */
.mnav__item--open .mnav__item-icon[b-l04bbodsdm] {
    color: #16181c;
}

/* Stammlinie des Baums beginnt an der Unterkante des Gruppen-Icons und überbrückt den
   Spalt zur Unterpunkt-Liste — so „wächst" die Linie sichtbar aus dem Icon (die Liste
   selbst liegt im abgeschnittenen Aufklapp-Container und kann nicht hinaufreichen). */
.mnav__item--open[b-l04bbodsdm]::after {
    content: "";
    position: absolute;
    left: 21px;
    top: 30px;
    bottom: -5px;
    width: 1px;
    background: #d4d4d8;
    pointer-events: none;
}

.mnav__item--active .mnav__item-icon[b-l04bbodsdm] {
    color: #fff;
}

.mnav__item-label[b-l04bbodsdm] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mnav__item-dot[b-l04bbodsdm] {
    width: 9px;
    height: 9px;
    margin-left: auto;
    border-radius: 50%;
    background: #16181c;
    flex-shrink: 0;
}

.mnav__item--active .mnav__item-dot[b-l04bbodsdm] {
    background: #fff;
}

.mnav__chevron[b-l04bbodsdm] {
    margin-left: auto;
    color: #80858d;
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    flex-shrink: 0;
}

/* Punkt + Chevron zusammen: der Punkt übernimmt den Auto-Abstand, das Chevron rückt fest dahinter */
.mnav__item-dot ~ .mnav__chevron[b-l04bbodsdm] {
    margin-left: 8px;
}

.mnav__item--active .mnav__chevron[b-l04bbodsdm] {
    color: #fff;
}

.mnav__item--open .mnav__chevron[b-l04bbodsdm] {
    color: #16181c;
}

.mnav__chevron--open[b-l04bbodsdm] {
    transform: rotate(180deg);
}

/* ---- Unterpunkte: animiertes Aufklappen (Grid-Rows-Technik) + Führungslinie ----
   Der Block ist immer gerendert (inert wenn zu), damit Auf- UND Zuklappen animieren. */
.mnav__sub[b-l04bbodsdm] {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.mnav__sub--open[b-l04bbodsdm] {
    grid-template-rows: 1fr;
}

@media (prefers-reduced-motion: reduce) {
    .mnav__sub[b-l04bbodsdm] {
        transition: none;
    }
}

.mnav__sub-clip[b-l04bbodsdm] {
    overflow: hidden;
    min-height: 0;
    /* Den Layout-/Paint-Aufwand der Höhen-Animation auf diesen Teilbaum begrenzen, statt die
       ganze Seite reflowen zu lassen — das nimmt der grid-Animation auf iPad den Ruckler. */
    contain: layout paint;
}

/* Baum-Connector: eine vertikale Linie sitzt unter der Icon-Mitte der Gruppenzeile
   (x = 21px, entspricht dem Gruppen-Icon-Center) und schickt in jeden Untereintrag
   einen kurzen Ast. Die Linien-Stücke gehören zu den Items selbst (::before = Ast +
   oberer Bogen, ::after = Verlängerung nach unten), damit sie nicht hinter benachbarte
   Item-Hintergründe geraten. */
.mnav__sub-list[b-l04bbodsdm] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-left: 0;
    padding: 2px 2px 4px 0;
}

/* Abschnitts-Label in den Einstellungs-Unterpunkten — wie .hmenu-group im Desktop-Dropdown.
   In die Connector-Spalte eingerückt (padding-left 32), damit der Text rechts der Baumlinie steht. */
.mnav__subgroup[b-l04bbodsdm] {
    position: relative;
    margin: 1px 0;
    padding: 5px 10px 3px 32px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #a6aab1;
}

.mnav__subgroup:not(:first-child)[b-l04bbodsdm] {
    margin-top: 3px;
}

/* Die Stammlinie läuft auch neben den Abschnitts-Labels durch — der Baum bleibt zusammenhängend. */
.mnav__subgroup[b-l04bbodsdm]::before {
    content: "";
    position: absolute;
    left: 21px;
    top: -6px;
    bottom: -6px;
    width: 1px;
    background: #d4d4d8;
    pointer-events: none;
}

/* Unterpunkt-Zeile — wie .hmrow im kompakten Desktop-Dropdown, nur touch-hoch.
   padding-left lässt Platz für die Connector-Spalte (Baumlinie + Ast). */
.mnav__subitem[b-l04bbodsdm] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 38px;
    border: 0;
    border-radius: 10px;
    padding: 5px 10px 5px 32px;
    color: #26282d;
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 13.5px;
    font-weight: 600;
    text-align: left;
    touch-action: manipulation;
    transition: background 0.13s ease, color 0.13s ease, transform 0.12s ease;
}

/* Baum-Stamm: EINE gerade vertikale Linie je Zeile, die den Gap nach oben und unten leicht
   überlappt → über alle Zeilen durchgehend. Einheitlich 1px als Hintergrund; frühere
   border-Linien rundeten auf 1px während parallele background-Linien 1,5px blieben — das ergab
   den doppelten, leicht versetzten Strich. */
.mnav__subitem[b-l04bbodsdm]::before {
    content: "";
    position: absolute;
    left: 21px;
    top: -3px;
    bottom: -3px;
    width: 1px;
    background: #d4d4d8;
    pointer-events: none;
}

/* Letzte Zeile: der Stamm endet an der Ast-Höhe (Mitte) → ergibt ein „└". */
.mnav__subitem:last-child[b-l04bbodsdm]::before {
    bottom: auto;
    height: calc(50% + 3px);
}

/* Ast: eine waagerechte Linie vom Stamm zur Icon-Mitte; kreuzt den Stamm zu „├" bzw. „└". */
.mnav__subitem[b-l04bbodsdm]::after {
    content: "";
    position: absolute;
    left: 21px;
    top: 50%;
    width: 10px;
    height: 1px;
    background: #d4d4d8;
    pointer-events: none;
}

@media (hover: hover) {
    .mnav__subitem:hover[b-l04bbodsdm] {
        background: #efeff1;
        color: #16181c;
    }

    .mnav__subitem:hover .mnav__subitem-icon[b-l04bbodsdm] {
        color: #16181c;
    }
}

.mnav__subitem:focus-visible[b-l04bbodsdm] {
    background: #efeff1;
    color: #16181c;
    outline: none;
}

.mnav__subitem:active[b-l04bbodsdm] {
    background: #e7e7ea;
    transform: scale(0.98);
}

.mnav__subitem:active .mnav__subitem-icon[b-l04bbodsdm] {
    color: #16181c;
}

/* Icon wie im Desktop-Dropdown: 16px, ohne Chip, grau → schwarz bei Hover/Aktiv */
.mnav__subitem-icon[b-l04bbodsdm] {
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #8b9097;
    transition: color 0.13s ease;
}

.mnav__subitem-icon svg[b-l04bbodsdm] {
    width: 16px;
    height: 16px;
}

/* Aktive Seite wie im Desktop-Dropdown: dezente Tönung + Häkchen rechts.
   Das Häkchen liegt als Hintergrundbild rechtsbündig — nicht als ::after, denn das ::after
   ist bereits der waagerechte Connector-Ast; so bleiben Ast UND Häkchen beim aktiven Eintrag. */
.mnav__subitem--active[b-l04bbodsdm],
.mnav__subitem--active:active[b-l04bbodsdm] {
    background-color: #efeff1;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316181c' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 11px center;
    background-size: 15px 15px;
    color: #16181c;
    font-weight: 700;
}
@media (hover: hover) {
    .mnav__subitem--active:hover[b-l04bbodsdm] {
        background-color: #efeff1;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316181c' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 11px center;
        background-size: 15px 15px;
        color: #16181c;
        font-weight: 700;
    }
}

.mnav__subitem--active .mnav__subitem-icon[b-l04bbodsdm] {
    color: #16181c;
}

/* Zeile mit Status-Punkt (Fristen): der Punkt sitzt ganz rechts, das Häkchen rückt davor. */
.mnav__subitem--active:has(.mnav__subitem-dot)[b-l04bbodsdm] {
    background-position: right 28px center;
}

.mnav__subitem-label[b-l04bbodsdm] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Benachrichtigungspunkt am Unterpunkt (z. B. Werkzeug: fällige Fristen) – wie in der
   Desktop-Dropdown-Zeile, hier rechtsbündig im Drawer-Unterpunkt. */
.mnav__subitem-dot[b-l04bbodsdm] {
    width: 8px;
    height: 8px;
    margin-left: auto;
    border-radius: 50%;
    background: #16181c;
    flex-shrink: 0;
}

/* ---- Fuß: Nutzerkarte + Push + Abmelden ---- */
.mnav__foot[b-l04bbodsdm] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px calc(12px + env(safe-area-inset-bottom, 0px));
    flex-shrink: 0;
}

.mnav__user[b-l04bbodsdm] {
    flex: 1;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    corner-shape: superellipse(1.2);
    padding: 7px 10px;
    color: #16181c;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    cursor: pointer;
    font: inherit;
    text-align: left;
    touch-action: manipulation;
    transition: background 0.13s ease, transform 0.12s ease;
}

.mnav__user:active[b-l04bbodsdm] {
    background: #efeff1;
    transform: scale(0.985);
}

.mnav__user-avatar[b-l04bbodsdm] {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 50%;
    color: #fff;
    background: #16181c;
    font-family: 'Quicksand', sans-serif;
    font-size: 15px;
    font-weight: 700;
    object-fit: cover;
}

.mnav__user-text[b-l04bbodsdm] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.mnav__user-name[b-l04bbodsdm] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
}

.mnav__user-sub[b-l04bbodsdm] {
    font-size: 11px;
    font-weight: 600;
    line-height: 1.25;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Push-Button (eigene Komponente) auf die Footer-Höhe der Nachbarn heben */
.mnav__foot[b-l04bbodsdm]  .push-setup--compact {
    width: 52px;
    height: 52px;
}

.mnav__logout-form[b-l04bbodsdm] {
    display: flex;
    margin: 0;
    flex-shrink: 0;
}

.mnav__logout[b-l04bbodsdm] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0;
    color: #e2483b;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    cursor: pointer;
    touch-action: manipulation;
    transition: background 0.13s ease, color 0.13s ease, border-color 0.13s ease;
}

.mnav__logout:active[b-l04bbodsdm] {
    background: #e2483b;
    border-color: #e2483b;
    color: #fff;
}


/* ================================================================
   NOTIFICATIONS — Reject confirmation overlay (viewport-wide)
================================================================ */

.reject-overlay[b-l04bbodsdm] {
    position: fixed;
    inset: 0;
    z-index: 2200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
    animation: rejectOverlayIn-b-l04bbodsdm 0.18s ease-out;
}

@keyframes rejectOverlayIn-b-l04bbodsdm {
    from { opacity: 0; }
    to { opacity: 1; }
}

.reject-overlay__backdrop[b-l04bbodsdm] {
    position: absolute;
    inset: 0;
    border: none;
    padding: 0;
    background: rgba(15, 15, 18, 0.55);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    cursor: pointer;
}

.reject-card[b-l04bbodsdm] {
    position: relative;
    width: min(440px, 100%);
    max-height: calc(100vh - 56px);
    overflow: auto;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 18px;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
    display: flex;
    flex-direction: column;
    animation: rejectCardIn-b-l04bbodsdm 0.2s cubic-bezier(0.34, 1.3, 0.64, 1);
}

@keyframes rejectCardIn-b-l04bbodsdm {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.reject-card__header[b-l04bbodsdm] {
    padding: 18px 20px 0;
}

.reject-card__header span[b-l04bbodsdm] {
    display: block;
    color: #e2483b;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.reject-card__header h2[b-l04bbodsdm] {
    margin: 4px 0 0;
    color: #16181c;
    font-size: 18px;
    font-weight: 800;
}

.reject-card__body[b-l04bbodsdm] {
    padding: 14px 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.reject-summary[b-l04bbodsdm] {
    border-radius: 12px;
    padding: 12px;
    background: #f5f5f7;
}

.reject-summary > strong[b-l04bbodsdm] {
    display: block;
    margin-bottom: 8px;
    color: #16181c;
    font-size: 13px;
    font-weight: 800;
}

.reject-summary__grid[b-l04bbodsdm] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}

.reject-summary__grid > span[b-l04bbodsdm] {
    min-width: 0;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    padding: 8px 10px;
    background: #fff;
}

.reject-summary__grid small[b-l04bbodsdm] {
    display: block;
    margin-bottom: 3px;
    color: #80858d;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.reject-summary__grid strong[b-l04bbodsdm] {
    display: block;
    color: #16181c;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.3;
    white-space: normal;
    overflow-wrap: anywhere;
}

.reject-field span[b-l04bbodsdm] {
    display: block;
    margin-bottom: 6px;
    color: #80858d;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.reject-field textarea[b-l04bbodsdm] {
    width: 100%;
    min-height: 96px;
    border: 1.5px solid #e4e4e7;
    border-radius: 12px;
    padding: 10px 12px;
    color: #16181c;
    background: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    resize: vertical;
    box-sizing: border-box;
}

.reject-field textarea:focus[b-l04bbodsdm] {
    border-color: #16181c;
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.reject-card__actions[b-l04bbodsdm] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 0 20px 18px;
}

.reject-btn[b-l04bbodsdm] {
    min-height: 38px;
    border: none;
    border-radius: 999px;
    padding: 0 18px;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: opacity 0.18s, background 0.18s;
}

.reject-btn--secondary[b-l04bbodsdm] {
    color: #3c4148;
    background: #efeff1;
}

@media (hover: hover) {
    .reject-btn--secondary:hover[b-l04bbodsdm] {
        background: #e4e4e7;
    }
}

.reject-btn--primary[b-l04bbodsdm] {
    color: white;
    background: #e2483b;
}

@media (hover: hover) {
    .reject-btn--primary:hover:not(:disabled)[b-l04bbodsdm] {
        opacity: 0.87;
    }
}

.reject-btn--primary:disabled[b-l04bbodsdm] {
    cursor: not-allowed;
    opacity: 0.5;
}

@media (max-width: 760px) {
    .reject-overlay[b-l04bbodsdm] {
        padding: 16px;
    }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui[b-59p6jvtn19] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-59p6jvtn19] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

/* Auffangnetz der ErrorBoundary: ersetzt die weiße Seite durch eine ruhige Karte. */
.app-fehler[b-59p6jvtn19] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60dvh;
    padding: 24px;
}

.app-fehler-karte[b-59p6jvtn19] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    max-width: 420px;
    padding: 32px 28px;
    text-align: center;
    border: 1px solid #e6e6e9;
    border-radius: 18px;
    background: #fff;
    color: #16181c;
}

.app-fehler-karte svg[b-59p6jvtn19] {
    color: #a1a1aa;
}

.app-fehler-karte h2[b-59p6jvtn19] {
    margin: 0;
    font-size: 17px;
    font-weight: 650;
}

.app-fehler-karte p[b-59p6jvtn19] {
    margin: 0;
    font-size: 14px;
    color: #6b7280;
}

.app-fehler-btn[b-59p6jvtn19] {
    margin-top: 8px;
    padding: 9px 18px;
    border: 0;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

@media (hover: hover) {
    .app-fehler-btn:hover[b-59p6jvtn19] {
        background: #2a2d34;
    }
}
/* /Components/Layout/Notifications/NotificationsListRow.razor.rz.scp.css */
.nd-row[b-wvhyhsm7jh] {
    display: grid;
    grid-template-columns: 32px 1fr auto;
    gap: 10px;
    align-items: center;
    width: 100%;
    padding: 10px 14px;
    border: none;
    border-bottom: 1px solid #e4e4e7;
    border-radius: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
    font: inherit;
    transition: background 0.13s ease, color 0.13s ease;
}

@media (hover: hover) {
    .nd-row:hover[b-wvhyhsm7jh] {
        background: #f7f7f9;
    }
}

/* Auswahl wie in ProjectSetup: grauer Fill + schwarzer Balken links, Text bleibt dunkel */
.nd-row--selected[b-wvhyhsm7jh] {
    background: #efeff1;
    box-shadow: inset 3px 0 0 #16181c;
}
@media (hover: hover) {
    .nd-row--selected:hover[b-wvhyhsm7jh] {
        background: #efeff1;
        box-shadow: inset 3px 0 0 #16181c;
    }
}

.nd-avatar[b-wvhyhsm7jh] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #16181c;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Quicksand', sans-serif;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
}

.nd-row-main[b-wvhyhsm7jh] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.nd-row-title[b-wvhyhsm7jh] {
    font-size: 13px;
    font-weight: 800;
    color: #16181c;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nd-row-meta[b-wvhyhsm7jh] {
    font-size: 11px;
    color: #80858d;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin-top: 1px;
}

.nd-row-side[b-wvhyhsm7jh] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    flex-shrink: 0;
}

.nd-row-time[b-wvhyhsm7jh] {
    font-size: 10px;
    color: #80858d;
    font-weight: 600;
}

/* Status-Punkt — semantisch, aber ruhig (kein lautes iOS-Orange/Grün/Rot) */
.nd-row-dot[b-wvhyhsm7jh] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #a15c00;
}

.nd-row--approved .nd-row-dot[b-wvhyhsm7jh] {
    background: #16a34a;
}

.nd-row--rejected .nd-row-dot[b-wvhyhsm7jh] {
    background: #e2483b;
}
/* /Components/Layout/Notifications/NotificationsModal.razor.rz.scp.css */
/* NotificationsModal scoped CSS — Schwarz-Weiß Redesign (passend zum Header) */

.nd-modal[b-glqlvmiwxv] {
    position: relative;
    display: flex;
    flex-direction: column;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.nd-header[b-glqlvmiwxv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 18px;
    background: #fff;
}

.nd-title[b-glqlvmiwxv] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.nd-title-icon[b-glqlvmiwxv] {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    border-radius: 10px;
    background: #efeff1;
    color: #16181c;
    display: flex;
    align-items: center;
    justify-content: center;
}

.nd-title-back[b-glqlvmiwxv] {
    display: none;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    border: none;
    border-radius: 10px;
    padding: 0;
    background: #efeff1;
    color: #16181c;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

@media (hover: hover) {
    .nd-title-back:hover[b-glqlvmiwxv] {
        background: #16181c;
        color: #fff;
    }
}

.nd-title-text[b-glqlvmiwxv] {
    min-width: 0;
}

.nd-title-text h2[b-glqlvmiwxv] {
    margin: 0;
    color: #16181c;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
}

.nd-title-sub[b-glqlvmiwxv] {
    display: block;
    font-size: 11px;
    color: #80858d;
    font-weight: 600;
    margin-top: 2px;
}

.nd-body[b-glqlvmiwxv] {
    display: grid;
    grid-template-columns: 340px 1fr;
    min-height: 480px;
    height: min(620px, calc(100vh - 220px));
    border-top: 1px solid #e4e4e7;
}

.nd-master[b-glqlvmiwxv] {
    border-right: 1px solid #e4e4e7;
    background: #fff;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.nd-toolbar[b-glqlvmiwxv] {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-shrink: 0;
}

.nd-search[b-glqlvmiwxv] {
    width: 272px;
    max-width: 100%;
    height: 36px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: #f5f5f7;
    border: 1.5px solid transparent;
    border-radius: 10px;
    padding: 0 8px 0 12px;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.nd-search:focus-within[b-glqlvmiwxv],
.nd-search--active[b-glqlvmiwxv] {
    background: #fff;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.1);
}

.nd-search-icon[b-glqlvmiwxv] {
    color: #80858d;
    flex-shrink: 0;
}

.nd-search input[b-glqlvmiwxv] {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    color: #16181c;
}

.nd-search input[b-glqlvmiwxv]::placeholder {
    color: #80858d;
    font-weight: 500;
}

.nd-search-clear[b-glqlvmiwxv] {
    width: 22px;
    height: 22px;
    border: none;
    border-radius: 50%;
    padding: 0;
    background: #efeff1;
    color: #80858d;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.13s ease, color 0.13s ease;
}

@media (hover: hover) {
    .nd-search-clear:hover[b-glqlvmiwxv] {
        background: #16181c;
        color: #fff;
    }
}

.nd-filter-wrap[b-glqlvmiwxv] {
    position: relative;
}

.nd-filter-btn[b-glqlvmiwxv] {
    position: relative;
    width: 36px;
    height: 36px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #fff;
    color: #3c4148;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

@media (hover: hover) {
    .nd-filter-btn:hover[b-glqlvmiwxv] {
        background: #efeff1;
        color: #16181c;
    }
}

.nd-filter-btn--open[b-glqlvmiwxv] {
    background: #16181c;
    color: #fff;
    border-color: #16181c;
}

.nd-filter-dot[b-glqlvmiwxv] {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #16181c;
    border: 2px solid #fff;
}

.nd-filter-btn--open .nd-filter-dot[b-glqlvmiwxv] {
    background: #fff;
    border-color: #16181c;
}

.nd-filter-backdrop[b-glqlvmiwxv] {
    position: fixed;
    inset: 0;
    z-index: 120;
    border: none;
    padding: 0;
    background: transparent;
}

.nd-filter-menu[b-glqlvmiwxv] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 121;
    width: 220px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 6px;
    background: #fff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
}

.nd-filter-option[b-glqlvmiwxv] {
    min-height: 36px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: none;
    border-radius: 10px;
    padding: 0 10px;
    color: #16181c;
    background: transparent;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.13s ease, color 0.13s ease;
}

.nd-filter-option strong[b-glqlvmiwxv] {
    min-width: 28px;
    border-radius: 999px;
    padding: 3px 8px;
    color: #80858d;
    background: #efeff1;
    font-size: 11px;
    text-align: center;
    font-weight: 800;
}

@media (hover: hover) {
    .nd-filter-option:hover[b-glqlvmiwxv] {
        background: #efeff1;
    }
}

.nd-filter-option--active[b-glqlvmiwxv] {
    color: #fff;
    background: #16181c;
}

@media (hover: hover) {
    .nd-filter-option--active:hover[b-glqlvmiwxv] {
        color: #fff;
        background: #16181c;
    }
}

.nd-filter-option--active strong[b-glqlvmiwxv] {
    color: #16181c;
    background: #fff;
}

.nd-error[b-glqlvmiwxv] {
    margin: 10px 12px 0;
    padding: 8px 12px;
    border: 1px solid #f3d0cb;
    border-radius: 10px;
    background: #fbeae8;
    color: #b3392e;
    font-size: 12px;
    font-weight: 700;
}

.nd-list[b-glqlvmiwxv] {
    flex: 1;
    overflow-y: auto;
    padding: 0 0 12px;
}

.nd-section-head[b-glqlvmiwxv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px 8px;
    background: #f5f5f7;
    border-bottom: 1px solid #e4e4e7;
}

.nd-section-head--with-gap[b-glqlvmiwxv] {
    border-top: 1px solid #e4e4e7;
}

.nd-section-label[b-glqlvmiwxv] {
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #80858d;
}

.nd-section-count[b-glqlvmiwxv] {
    font-size: 10px;
    font-weight: 800;
    background: #efeff1;
    color: #3c4148;
    border-radius: 999px;
    padding: 2px 8px;
}

.nd-section-empty[b-glqlvmiwxv] {
    padding: 14px 14px;
    font-size: 12px;
    color: #80858d;
    font-weight: 600;
    font-style: italic;
    border-bottom: 1px solid #e4e4e7;
}

.nd-detail[b-glqlvmiwxv] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    background: #fff;
}

.nd-detail-empty[b-glqlvmiwxv] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 24px;
    text-align: center;
}

.nd-detail-empty-icon[b-glqlvmiwxv] {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    background: #efeff1;
    color: #b8bcc2;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
}

.nd-detail-empty strong[b-glqlvmiwxv] {
    font-size: 14px;
    color: #16181c;
    font-weight: 800;
}

.nd-detail-empty span[b-glqlvmiwxv] {
    font-size: 12px;
    color: #80858d;
}

.nd-detail-head[b-glqlvmiwxv] {
    display: flex;
    align-items: stretch;
    gap: 16px;
    padding: 18px 22px 14px;
    border-bottom: 1px solid #e4e4e7;
}

.nd-detail-head-main[b-glqlvmiwxv] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

/* ===== Mini-Kalender (Zeitraum des Antrags) — kompakt oben rechts ===== */
.nd-cal[b-glqlvmiwxv] {
    flex: 0 0 auto;
    align-self: flex-start;
    width: 172px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 8px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
}

.nd-cal-head[b-glqlvmiwxv] {
    display: grid;
    grid-template-columns: 22px 1fr 22px;
    align-items: center;
    margin-bottom: 6px;
}

.nd-cal-head strong[b-glqlvmiwxv] {
    text-align: center;
    font-size: 11px;
    font-weight: 800;
    color: #16181c;
    text-transform: capitalize;
}

.nd-cal-nav[b-glqlvmiwxv] {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 7px;
    padding: 0;
    background: transparent;
    color: #16181c;
    cursor: pointer;
    transition: background 0.13s ease;
}

@media (hover: hover) {
    .nd-cal-nav:hover[b-glqlvmiwxv] {
        background: #efeff1;
    }
}

.nd-cal-nav svg[b-glqlvmiwxv] {
    width: 14px;
    height: 14px;
}

.nd-cal-nav-spacer[b-glqlvmiwxv] {
    width: 22px;
    height: 22px;
}

.nd-cal-dow[b-glqlvmiwxv] {
    display: grid;
    grid-template-columns: 16px repeat(7, 1fr);
    margin-bottom: 4px;
}

.nd-cal-dow span[b-glqlvmiwxv] {
    text-align: center;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #80858d;
}

.nd-cal-grid[b-glqlvmiwxv] {
    display: grid;
    grid-template-columns: 16px repeat(7, 1fr);
    row-gap: 3px;
    column-gap: 0;
}

/* Kalenderwochen-Spalte (links), dezent in Grau */
.nd-cal-kw[b-glqlvmiwxv],
.nd-cal-dow .nd-cal-kw-head[b-glqlvmiwxv] {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: none;
    color: #aab0b8;
}

.nd-cal-day[b-glqlvmiwxv] {
    position: relative;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    color: #3c4148;
    border-radius: 6px;
}

.nd-cal-day--weekend[b-glqlvmiwxv] {
    color: #aeb2b8;
}

.nd-cal-day--muted[b-glqlvmiwxv] {
    color: #cfd2d6;
}

/* In-Range-Tage bilden einen durchgehenden schwarzen Balken (column-gap:0) */
.nd-cal-day--range[b-glqlvmiwxv] {
    background: #16181c;
    color: #fff;
    font-weight: 800;
    border-radius: 0;
}

.nd-cal-day--range-start[b-glqlvmiwxv] {
    border-top-left-radius: 6px;
    border-bottom-left-radius: 6px;
}

.nd-cal-day--range-end[b-glqlvmiwxv] {
    border-top-right-radius: 6px;
    border-bottom-right-radius: 6px;
}

/* Feiertag: kleiner Punkt unter der Zahl + Hover-Popover mit dem Namen */
.nd-cal-holi[b-glqlvmiwxv] {
    position: absolute;
    left: 50%;
    bottom: 1px;
    transform: translateX(-50%);
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #16181c;
    pointer-events: none;
}

.nd-cal-day--range .nd-cal-holi[b-glqlvmiwxv] {
    background: #fff;
}

.nd-cal-tip[b-glqlvmiwxv] {
    position: absolute;
    bottom: calc(100% + 7px);
    z-index: 60;
    padding: 4px 8px;
    border-radius: 7px;
    background: #16181c;
    color: #fff;
    font-size: 10.5px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.12s ease;
    box-shadow: 0 8px 20px -8px rgba(0, 0, 0, 0.45);
}

/* Öffnungsrichtung je nach Spalte, damit das Popover nicht abgeschnitten wird */
.nd-cal-tip--left[b-glqlvmiwxv] {
    right: 0;
}

.nd-cal-tip--right[b-glqlvmiwxv] {
    left: 0;
}

.nd-cal-tip--center[b-glqlvmiwxv] {
    left: 50%;
    transform: translateX(-50%);
}

@media (hover: hover) {
    .nd-cal-day:hover .nd-cal-tip[b-glqlvmiwxv] {
        opacity: 1;
    }
}

.nd-cal-tip[b-glqlvmiwxv]::after {
    content: "";
    position: absolute;
    top: 100%;
    border: 4px solid transparent;
    border-top-color: #16181c;
}

.nd-cal-tip--left[b-glqlvmiwxv]::after {
    right: 7px;
}

.nd-cal-tip--right[b-glqlvmiwxv]::after {
    left: 7px;
}

.nd-cal-tip--center[b-glqlvmiwxv]::after {
    left: 50%;
    transform: translateX(-50%);
}

.nd-detail-eyebrow[b-glqlvmiwxv] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #80858d;
    margin-bottom: 6px;
}

.nd-badge[b-glqlvmiwxv] {
    font-size: 10px;
    padding: 3px 9px;
    border-radius: 999px;
    letter-spacing: 0.03em;
    font-weight: 800;
}

.nd-badge--pending[b-glqlvmiwxv] {
    background: #f7efe1;
    color: #a15c00;
}

.nd-badge--approved[b-glqlvmiwxv] {
    background: #e9f6ee;
    color: #16a34a;
}

.nd-badge--rejected[b-glqlvmiwxv] {
    background: #fbeae8;
    color: #e2483b;
}

.nd-detail h3[b-glqlvmiwxv] {
    margin: 0;
    font-size: 22px;
    font-weight: 800;
    color: #16181c;
    line-height: 1.15;
    overflow-wrap: break-word;
    word-break: break-word;
}

/* Nutzer-Block sitzt unten in der linken Spalte — Unterkante bündig mit dem Kalender */
.nd-detail-user[b-glqlvmiwxv] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    padding-top: 12px;
}

.nd-avatar[b-glqlvmiwxv] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #16181c;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Quicksand', sans-serif;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
}

.nd-detail-user .nd-avatar[b-glqlvmiwxv] {
    width: 36px;
    height: 36px;
    font-size: 13px;
}

.nd-detail-user-info[b-glqlvmiwxv] {
    line-height: 1.2;
}

.nd-detail-user-info strong[b-glqlvmiwxv] {
    font-size: 13px;
    font-weight: 800;
    color: #16181c;
}

.nd-detail-user-info span[b-glqlvmiwxv] {
    display: block;
    font-size: 11px;
    color: #80858d;
    font-weight: 600;
    margin-top: 2px;
}

.nd-detail-body[b-glqlvmiwxv] {
    flex: 1;
    overflow-y: auto;
    padding: 16px 22px;
}

.nd-detail-grid[b-glqlvmiwxv] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 14px;
}

.nd-detail-cell[b-glqlvmiwxv] {
    background: #f5f5f7;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 10px 12px;
    min-width: 0;
}

.nd-detail-cell--full[b-glqlvmiwxv] {
    grid-column: 1 / -1;
}

.nd-detail-cell small[b-glqlvmiwxv] {
    display: block;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #80858d;
    margin-bottom: 4px;
}

.nd-detail-cell strong[b-glqlvmiwxv] {
    font-size: 14px;
    font-weight: 800;
    color: #16181c;
    word-break: break-word;
}

/* Notiz vom Antragsteller — neutraler Grau-Callout (monochrom) */
.nd-detail-note[b-glqlvmiwxv] {
    background: #f5f5f7;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 10px 12px;
    margin-bottom: 14px;
}

.nd-detail-note small[b-glqlvmiwxv] {
    display: block;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #80858d;
    margin-bottom: 4px;
}

.nd-detail-note p[b-glqlvmiwxv] {
    margin: 0;
    font-size: 13px;
    color: #3c4148;
    line-height: 1.4;
    white-space: pre-wrap;
}

.nd-detail-rejection[b-glqlvmiwxv] {
    background: #fbeae8;
    border: 1px solid #f3d0cb;
    border-radius: 12px;
    padding: 10px 12px;
}

.nd-detail-rejection small[b-glqlvmiwxv] {
    display: block;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #e2483b;
    margin-bottom: 4px;
}

.nd-detail-rejection p[b-glqlvmiwxv] {
    margin: 0;
    font-size: 13px;
    color: #b3392e;
    line-height: 1.4;
    white-space: pre-wrap;
}

.nd-detail-footer[b-glqlvmiwxv] {
    display: flex;
    gap: 10px;
    padding: 14px 22px 18px;
    border-top: 1px solid #e4e4e7;
    background: #fff;
}

.nd-action[b-glqlvmiwxv] {
    flex: 1;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 0 20px;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease;
}

/* Primäre Aktion = Schwarz (kein grüner Akzent mehr) */
.nd-action--approve[b-glqlvmiwxv] {
    border: none;
    background: #16181c;
    color: #fff;
}

@media (hover: hover) {
    .nd-action--approve:hover[b-glqlvmiwxv] {
        background: #26282e;
    }
}

.nd-action--reject[b-glqlvmiwxv] {
    background: #fff;
    color: #3c4148;
    border: 1px solid #e4e4e7;
}

@media (hover: hover) {
    .nd-action--reject:hover[b-glqlvmiwxv] {
        color: #e2483b;
        border-color: #e2483b;
        background: #fbeae8;
    }
}

.nd-detail-decided[b-glqlvmiwxv] {
    padding: 12px 22px 18px;
    border-top: 1px solid #e4e4e7;
    font-size: 12px;
    color: #80858d;
    font-weight: 600;
    text-align: center;
}

.nd-detail-decided strong[b-glqlvmiwxv] {
    color: #3c4148;
    font-weight: 800;
}

@media (max-width: 760px) {
    .nd-header[b-glqlvmiwxv] {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .nd-toolbar[b-glqlvmiwxv] {
        width: 100%;
    }

    .nd-search[b-glqlvmiwxv] {
        width: auto;
        flex: 1;
        min-width: 0;
    }

    .nd-modal--has-selection .nd-title-icon[b-glqlvmiwxv] {
        display: none;
    }

    .nd-modal--has-selection .nd-title-back[b-glqlvmiwxv] {
        display: inline-flex;
    }

    .nd-body[b-glqlvmiwxv] {
        grid-template-columns: 1fr;
        position: relative;
        height: min(620px, calc(100vh - 200px));
    }

    .nd-master[b-glqlvmiwxv] {
        border-right: none;
    }

    .nd-detail-head[b-glqlvmiwxv] {
        flex-direction: column;
    }

    .nd-detail-user[b-glqlvmiwxv] {
        margin-top: 0;
    }

    .nd-cal[b-glqlvmiwxv] {
        width: 100%;
        max-width: 220px;
    }

    .nd-detail[b-glqlvmiwxv] {
        position: absolute;
        inset: 0;
        background: #fff;
        transform: translateX(100%);
        transition: transform 0.2s ease-out;
        pointer-events: none;
        border-left: 1px solid #e4e4e7;
    }

    .nd-body--has-selection .nd-detail[b-glqlvmiwxv] {
        transform: translateX(0);
        pointer-events: auto;
    }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
/* ================================================================
   RECONNECT-MODAL — Schwarz-Weiß Redesign (RUEHL.HUB)
   Verbindungsabbruch des Blazor-Server-Circuits (Deploy/Neustart).
   Sichtbarkeit der Status-Blöcke steuert das Framework über Klassen am <dialog>:
   .components-reconnect-show / -retrying / -failed / -paused / -resume-failed.
================================================================ */

/* ---- Dialog + Backdrop ---- */
#components-reconnect-modal[b-ftkhojyi97] {
    inset: 0;
    margin: auto;
    width: fit-content;
    height: fit-content;
    max-width: 100vw;
    max-height: 100vh;
    padding: 0;
    border: 0;
    background: transparent;
    overflow: visible;
    color: #16181c;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    -webkit-font-smoothing: antialiased;
}

#components-reconnect-modal[b-ftkhojyi97]::backdrop {
    background: rgba(15, 15, 18, .5);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

#components-reconnect-modal[open][b-ftkhojyi97] {
    animation: rc-card-in-b-ftkhojyi97 .42s cubic-bezier(.2, .85, .25, 1) both;
}

#components-reconnect-modal[open][b-ftkhojyi97]::backdrop {
    animation: rc-backdrop-in-b-ftkhojyi97 .3s ease both;
}

@keyframes rc-card-in-b-ftkhojyi97 {
    from { opacity: 0; transform: translateY(16px) scale(.96); }
    to { opacity: 1; transform: none; }
}

@keyframes rc-backdrop-in-b-ftkhojyi97 {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ---- Karte ---- */
.rc-card[b-ftkhojyi97] {
    width: min(92vw, 372px);
    box-sizing: border-box;
    padding: 32px 30px 22px;
    background: #fff;
    border: 1px solid #e8e8eb;
    border-radius: 24px;
    box-shadow: 0 40px 80px -28px rgba(0, 0, 0, .5), 0 12px 28px -16px rgba(0, 0, 0, .22);
    text-align: center;
}

/* ---- Sichtbarkeit je Verbindungs-Status (Standard: verborgen) ---- */
.rc-ping[b-ftkhojyi97],
.rc-badge[b-ftkhojyi97],
.rc-title[b-ftkhojyi97],
.rc-text[b-ftkhojyi97],
.rc-status[b-ftkhojyi97],
.rc-actions[b-ftkhojyi97] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .rc-reconnecting-visible[b-ftkhojyi97],
#components-reconnect-modal.components-reconnect-retrying .rc-reconnecting-visible[b-ftkhojyi97],
#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-ftkhojyi97],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-ftkhojyi97],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-ftkhojyi97],
#components-reconnect-modal.components-reconnect-failed .rc-error-visible[b-ftkhojyi97],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-ftkhojyi97],
#components-reconnect-modal.components-reconnect-resume-failed .rc-error-visible[b-ftkhojyi97],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-ftkhojyi97] {
    display: block;
}

/* ---- Sonar-Indikator (Wiederverbinden) ---- */
.rc-ping[b-ftkhojyi97] {
    position: relative;
    width: 86px;
    height: 86px;
    margin: 0 auto 22px;
}

.rc-ping-ring[b-ftkhojyi97] {
    position: absolute;
    inset: 0;
    margin: auto;
    width: 86px;
    height: 86px;
    border-radius: 50%;
    border: 1.5px solid #16181c;
    opacity: 0;
    animation: rc-ping-b-ftkhojyi97 2s cubic-bezier(0, .2, .8, 1) infinite;
}

.rc-ping-ring:nth-child(2)[b-ftkhojyi97] {
    animation-delay: -1s;
}

@keyframes rc-ping-b-ftkhojyi97 {
    0% { transform: scale(.32); opacity: 0; }
    8% { opacity: .32; }
    100% { transform: scale(1); opacity: 0; }
}

.rc-ping-core[b-ftkhojyi97] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: #16181c;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 14px 28px -12px rgba(22, 24, 28, .65);
}

.rc-ping-core svg[b-ftkhojyi97] {
    width: 26px;
    height: 26px;
}

/* ---- Status-Badge (fehlgeschlagen / pausiert) ---- */
.rc-badge[b-ftkhojyi97] {
    position: relative;
    width: 66px;
    height: 66px;
    margin: 0 auto 22px;
    border-radius: 50%;
}

.rc-badge svg[b-ftkhojyi97] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 30px;
    height: 30px;
}

.rc-badge--error[b-ftkhojyi97] {
    background: #fbeae8;
    color: #e2483b;
}

.rc-badge--pause[b-ftkhojyi97] {
    background: #efeff1;
    color: #16181c;
}

/* ---- Titel + Text ---- */
.rc-title[b-ftkhojyi97] {
    margin: 0 0 9px;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    font-size: 20px;
    letter-spacing: -.01em;
    color: #16181c;
}

.rc-text[b-ftkhojyi97] {
    max-width: 31ch;
    margin: 0 auto 20px;
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1.55;
    color: #80858d;
}

/* ---- Live-Status ---- */
.rc-status[b-ftkhojyi97] {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    color: #16181c;
    letter-spacing: .01em;
}

.rc-dots[b-ftkhojyi97] {
    display: inline-flex;
    gap: 4px;
    margin-right: 8px;
    vertical-align: middle;
}

.rc-dots i[b-ftkhojyi97] {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #16181c;
    animation: rc-dot-b-ftkhojyi97 1.15s ease-in-out infinite;
}

.rc-dots i:nth-child(2)[b-ftkhojyi97] { animation-delay: .16s; }
.rc-dots i:nth-child(3)[b-ftkhojyi97] { animation-delay: .32s; }

@keyframes rc-dot-b-ftkhojyi97 {
    0%, 100% { opacity: .25; transform: translateY(0); }
    50% { opacity: 1; transform: translateY(-3px); }
}

.rc-count[b-ftkhojyi97] {
    display: inline-block;
    min-width: 1.5em;
    margin: 0 1px;
    padding: 1px 8px;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* ---- Aktionen ---- */
.rc-actions[b-ftkhojyi97] {
    margin-top: 2px;
}

.rc-btn[b-ftkhojyi97] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 5px;
    min-height: 42px;
    padding: 0 20px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
    touch-action: manipulation;
}

.rc-btn--primary[b-ftkhojyi97] {
    background: #16181c;
    color: #fff;
}

@media (hover: hover) {
    .rc-btn--primary:hover[b-ftkhojyi97] {
        background: #2c2f36;
    }
}
.rc-btn--primary:active[b-ftkhojyi97] { background: #000; }

.rc-btn--ghost[b-ftkhojyi97] {
    background: #efeff1;
    color: #16181c;
}

@media (hover: hover) {
    .rc-btn--ghost:hover[b-ftkhojyi97] {
        background: #e4e4e7;
    }
}

/* ---- Brand-Fuß ---- */
.rc-brand[b-ftkhojyi97] {
    margin-top: 22px;
    padding-top: 15px;
    border-top: 1px solid #f0f0f3;
    font-family: 'Quicksand', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: #c2c4ca;
}

@media (prefers-reduced-motion: reduce) {
    #components-reconnect-modal[open][b-ftkhojyi97],
    .rc-ping-ring[b-ftkhojyi97],
    .rc-dots i[b-ftkhojyi97] {
        animation: none;
    }
}
/* /Components/Pages/Admin/Admin.razor.rz.scp.css */
/* =====================================================================
   ADMIN — Kommandozentrale (monochrom)
   ===================================================================== */

.adash[b-sglhsts21k] {
    box-sizing: border-box;
    height: calc(100dvh - var(--app-header-h));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #f5f5f7;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #16181c;
}

.adash *[b-sglhsts21k], .adash *[b-sglhsts21k]::before, .adash *[b-sglhsts21k]::after { box-sizing: border-box; }

.adash-scroll[b-sglhsts21k] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 24px clamp(14px, 4vw, 40px) clamp(20px, 4vh, 40px);
}

.adash-inner[b-sglhsts21k] {
    max-width: 1180px;
    margin: 0 auto;
}

/* -- Zugriff verweigert -------------------------------------------------- */
.adash--blocked[b-sglhsts21k] {
    align-items: center;
    justify-content: center;
}
.adash-denied[b-sglhsts21k] {
    text-align: center;
    max-width: 380px;
    padding: 40px 28px;
}
.adash-denied-icon[b-sglhsts21k] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 66px;
    height: 66px;
    border-radius: 20px;
    background: #efeff1;
    color: #16181c;
    margin-bottom: 16px;
}
.adash-denied h1[b-sglhsts21k] { margin: 0 0 8px; font-size: 22px; font-weight: 800; }
.adash-denied p[b-sglhsts21k] { margin: 0; color: #80858d; font-size: 14px; line-height: 1.5; }

/* -- Hero ---------------------------------------------------------------- */
.adash-hero[b-sglhsts21k] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}
.adash-kicker[b-sglhsts21k] {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #80858d;
    margin-bottom: 8px;
}
.adash-hero h1[b-sglhsts21k] {
    margin: 0 0 5px;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: clamp(26px, 4vw, 34px);
    font-weight: 700;
    letter-spacing: -.02em;
}
.adash-hero p[b-sglhsts21k] {
    margin: 0;
    color: #80858d;
    font-size: 14px;
}
.adash-hero-side[b-sglhsts21k] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: none;
}
.adash-flag[b-sglhsts21k] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 13px;
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 700;
}
.adash-flag--warn[b-sglhsts21k] {
    background: #fdf2e0;
    color: #a15c00;
}
.adash-flag-dot[b-sglhsts21k] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
    animation: adash-pulse-b-sglhsts21k 1.8s ease-in-out infinite;
}
@keyframes adash-pulse-b-sglhsts21k { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.adash-hero-log[b-sglhsts21k] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 15px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #e4e4e7;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    color: #16181c;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: background .14s ease;
}
@media (hover: hover) {
    .adash-hero-log:hover[b-sglhsts21k] {
        background: #efeff1;
    }
}

/* -- Schnellzugriff ------------------------------------------------------ */
.adash-quick[b-sglhsts21k] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 18px;
}
.adash-q[b-sglhsts21k] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    padding: 16px 16px 15px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid #e4e4e7;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    transition: background .14s ease, transform .12s ease, box-shadow .14s ease;
}
@media (hover: hover) {
    .adash-q:hover[b-sglhsts21k] {
        background: #fbfbfc;
        transform: translateY(-1px);
        box-shadow: 0 10px 26px -14px rgba(0, 0, 0, .28);
    }
}
.adash-q:active[b-sglhsts21k] { transform: translateY(0); }
.adash-q-ic[b-sglhsts21k] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: #16181c;
    color: #fff;
    margin-bottom: 10px;
}
.adash-q-lb[b-sglhsts21k] { font-size: 15px; font-weight: 800; letter-spacing: -.01em; }
.adash-q-sub[b-sglhsts21k] { font-size: 12px; color: #80858d; font-weight: 500; }

/* -- Bento --------------------------------------------------------------- */
.adash-bento[b-sglhsts21k] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    align-items: start;
}
.adash-col[b-sglhsts21k] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

/* -- Undo-Stack (verzögerte Aktionen) ----------------------------------- */
.adash-undo-stack[b-sglhsts21k] {
    position: fixed;
    left: 50%;
    bottom: 24px;
    transform: translateX(-50%);
    z-index: 2050;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: min(440px, calc(100vw - 28px));
}
.adash-undo[b-sglhsts21k] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 15px;
    border-radius: 14px;
    background: #16181c;
    color: #fff;
    box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .5);
    overflow: hidden;
    animation: adash-undo-in-b-sglhsts21k .2s ease;
}
@keyframes adash-undo-in-b-sglhsts21k { from { transform: translateY(10px); opacity: 0; } to { transform: none; opacity: 1; } }
.adash-undo-spin[b-sglhsts21k] {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2.5px solid rgba(255, 255, 255, .28);
    border-top-color: #fff;
    animation: adash-spin-b-sglhsts21k 1s linear infinite;
    flex: none;
}
@keyframes adash-spin-b-sglhsts21k { to { transform: rotate(360deg); } }
.adash-undo-text[b-sglhsts21k] { flex: 1 1 auto; min-width: 0; line-height: 1.25; }
.adash-undo-text strong[b-sglhsts21k] { display: block; font-size: 13.5px; font-weight: 700; }
.adash-undo-text span[b-sglhsts21k] { font-size: 11.5px; color: rgba(255, 255, 255, .6); }
.adash-undo-btn[b-sglhsts21k] {
    flex: none;
    height: 32px;
    padding: 0 14px;
    border-radius: 9px;
    border: 0;
    background: #fff;
    color: #16181c;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 800;
    cursor: pointer;
    transition: background .14s ease;
}
@media (hover: hover) {
    .adash-undo-btn:hover[b-sglhsts21k] {
        background: #e4e4e7;
    }
}
.adash-undo-bar[b-sglhsts21k] {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 3px;
    width: 100%;
    background: rgba(255, 255, 255, .55);
    transform-origin: left;
    animation: adash-undo-shrink-b-sglhsts21k 30s linear forwards;
}
@keyframes adash-undo-shrink-b-sglhsts21k { from { transform: scaleX(1); } to { transform: scaleX(0); } }

/* ---- Responsive -------------------------------------------------------- */
@media (max-width: 1080px) {
    .adash-bento[b-sglhsts21k] { grid-template-columns: repeat(2, 1fr); }
    .adash-bento .adash-col:nth-child(3)[b-sglhsts21k] { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
    .adash-quick[b-sglhsts21k] { grid-template-columns: repeat(2, 1fr); }
    .adash-bento[b-sglhsts21k] { grid-template-columns: 1fr; }
    .adash-bento .adash-col:nth-child(3)[b-sglhsts21k] { grid-column: auto; }
    .adash-hero[b-sglhsts21k] { flex-direction: column; align-items: flex-start; gap: 14px; }
    .adash-hero-side[b-sglhsts21k] { width: 100%; }
}
@media (max-width: 420px) {
    .adash-quick[b-sglhsts21k] { grid-template-columns: 1fr; }
}
/* /Components/Pages/Admin/AdminChanges.razor.rz.scp.css */
/* =====================================================================
   ADMIN — Aktivitäts-Chronik
   ===================================================================== */

.adm[b-ujcn2tq5ls] {
    --c-new: #1a7f43;   --bg-new: #e7f7ed;
    --c-edit: #a15c00;  --bg-edit: #fdf2e0;
    --c-del: #c0362c;   --bg-del: #fdeceb;
    --c-ok: #1a7f43;    --bg-ok: #e7f7ed;
    --c-req: #145da0;   --bg-req: #eaf1fb;
    --c-warn: #a15c00;  --bg-warn: #fdf2e0;
    --c-muted: #6b7280; --bg-muted: #f1f2f4;

    box-sizing: border-box;
    height: calc(100dvh - var(--app-header-h));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #f5f5f7;
    padding: 22px clamp(14px, 4vw, 40px) 0;
    font: 14px/1.45 -apple-system, "Segoe UI", system-ui, sans-serif;
    color: #1d1d1f;
}

.adm *[b-ujcn2tq5ls], .adm *[b-ujcn2tq5ls]::before, .adm *[b-ujcn2tq5ls]::after { box-sizing: border-box; }

/* In der Flex-Spalte volle Breite halten (sonst schrumpfen sie durch margin:auto) */
.adm-hero[b-ujcn2tq5ls],
.adm-stats[b-ujcn2tq5ls],
.adm-bar[b-ujcn2tq5ls],
.adm-message[b-ujcn2tq5ls] { width: 100%; }

/* -- Hero --------------------------------------------------------------- */
.adm-hero[b-ujcn2tq5ls] {
    max-width: 920px;
    margin: 0 auto 18px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}
.adm-back[b-ujcn2tq5ls] {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 4px;
    padding: 8px 14px 8px 12px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #e4e4e7;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    color: #16181c;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: background .14s ease, transform .14s ease;
}
@media (hover: hover) {
    .adm-back:hover[b-ujcn2tq5ls] {
        background: #efeff1;
    }
}
.adm-back:active[b-ujcn2tq5ls] { transform: translateY(1px); }
.adm-kicker[b-ujcn2tq5ls] {
    display: inline-block;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #007aff;
    background: #eaf2ff;
    padding: 3px 10px;
    border-radius: 999px;
}
.adm-hero h1[b-ujcn2tq5ls] {
    margin: 9px 0 4px;
    font-size: 27px;
    font-weight: 850;
    letter-spacing: -.02em;
}
.adm-hero p[b-ujcn2tq5ls] {
    margin: 0;
    color: #6b7280;
    font-size: 13.5px;
}

/* -- Übersicht ---------------------------------------------------------- */
.adm-stats[b-ujcn2tq5ls] {
    max-width: 920px;
    margin: 0 auto 16px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
/* -- Toolbar ------------------------------------------------------------ */
.adm-bar[b-ujcn2tq5ls] {
    max-width: 920px;
    margin: 0 auto 14px;
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
}
.adm-search[b-ujcn2tq5ls] {
    flex: 1 1 240px;
    display: flex;
    align-items: center;
    gap: 8px;
    height: 38px;
    padding: 0 12px;
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 11px;
    color: #9aa0a6;
}
.adm-search:focus-within[b-ujcn2tq5ls] { border-color: #007aff; box-shadow: 0 0 0 3px rgba(0, 122, 255, .12); }
.adm-search input[b-ujcn2tq5ls] {
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    font: inherit;
    font-size: 13.5px;
    color: #1d1d1f;
    min-width: 0;
}
.adm-search-clear[b-ujcn2tq5ls] {
    border: 0; background: #eef0f3; color: #6b7280;
    width: 22px; height: 22px; border-radius: 50%;
    display: grid; place-items: center; cursor: pointer; padding: 0;
}
@media (hover: hover) {
    .adm-search-clear:hover[b-ujcn2tq5ls] {
        background: #e2e5e9;
        color: #1d1d1f;
    }
}

.adm-filter-btn[b-ujcn2tq5ls] {
    display:inline-flex; align-items:center; gap:7px; height:38px; padding:0 13px;
    border:1px solid #e3e6ea; border-radius:11px; background:#fff; color:#3a3f45;
    font:inherit; font-size:13px; font-weight:800; cursor:pointer;
}
@media (hover: hover) {
    .adm-filter-btn:hover[b-ujcn2tq5ls] {
        border-color:#c7d6ea;
        color:#145da0;
    }
}
.adm-filter-btn .adm-filter-name[b-ujcn2tq5ls] { color:#007aff; }

.adm-info-btn[b-ujcn2tq5ls] {
    height:38px; width:38px; border-radius:11px;
    border: 1px solid #e3e6ea;
    background: #fff;
    color: #6b7280;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}
@media (hover: hover) {
    .adm-info-btn:hover[b-ujcn2tq5ls] {
        border-color: #007aff;
        color: #007aff;
    }
}

.adm-message[b-ujcn2tq5ls] {
    max-width: 920px;
    margin: 0 auto 14px;
    padding: 11px 14px;
    border-radius: 11px;
    background: var(--bg-del);
    color: var(--c-del);
    font-size: 13px;
    font-weight: 600;
}

/* -- Feed --------------------------------------------------------------- */
.adm-feed[b-ujcn2tq5ls] {
    max-width: 920px;
    margin: 0 auto;
    width: 100%;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding-bottom: 36px;
}

.adm-day[b-ujcn2tq5ls] {
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #9aa0a6;
    margin: 18px 4px 9px;
}
.adm-day:first-child[b-ujcn2tq5ls] { margin-top: 2px; }

.adm-row[b-ujcn2tq5ls] {
    position: relative;
    background: #fff;
    border: 1px solid #eceef1;
    border-radius: 14px;
    margin-bottom: 10px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 6px 16px rgba(0, 0, 0, .04);
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
@media (hover: hover) {
    .adm-row:hover[b-ujcn2tq5ls] {
        transform: translateY(-1px);
        border-color: #e0e4ea;
        box-shadow: 0 2px 4px rgba(0, 0, 0, .05), 0 12px 26px rgba(0, 0, 0, .07);
    }
}
.adm-row[b-ujcn2tq5ls]::before {
    content: "";
    position: absolute;
    left: 0; top: 10px; bottom: 10px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--c-muted);
}
.adm-row--new[b-ujcn2tq5ls]::before { background: var(--c-new); }
.adm-row--edit[b-ujcn2tq5ls]::before { background: var(--c-edit); }
.adm-row--del[b-ujcn2tq5ls]::before { background: var(--c-del); }
.adm-row--ok[b-ujcn2tq5ls]::before { background: var(--c-ok); }
.adm-row--req[b-ujcn2tq5ls]::before { background: var(--c-req); }
.adm-row--warn[b-ujcn2tq5ls]::before { background: var(--c-warn); }

.adm-row-main[b-ujcn2tq5ls] {
    width: 100%;
    border: 0;
    background: transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 13px 14px 13px 17px;
    text-align: left;
    font: inherit;
}

.adm-ic[b-ujcn2tq5ls] {
    flex: 0 0 auto;
    width: 38px; height: 38px;
    border-radius: 11px;
    display: grid; place-items: center;
    color: #5a6066;
    background: #f1f2f4;
}
.adm-ic--customers[b-ujcn2tq5ls] { background: #eef4ff; color: #2563cc; }
.adm-ic--sites[b-ujcn2tq5ls] { background: #fff3e8; color: #b96a16; }
.adm-ic--contacts[b-ujcn2tq5ls] { background: #e3f7f5; color: #0f968e; }
.adm-ic--offers[b-ujcn2tq5ls] { background: #f0ecff; color: #6b4ed8; }
.adm-ic--measurements[b-ujcn2tq5ls] { background: #e8f6ff; color: #1184c2; }
.adm-ic--calendar[b-ujcn2tq5ls] { background: #fdeefc; color: #b840a8; }
.adm-ic--users[b-ujcn2tq5ls] { background: #eafaf0; color: #1a7f43; }
.adm-ic--departments[b-ujcn2tq5ls] { background: #eef0ff; color: #4f56d8; }
.adm-ic--time[b-ujcn2tq5ls] { background: #eef6ff; color: #2563cc; }
.adm-ic--requests[b-ujcn2tq5ls] { background: #fff6e6; color: #a97400; }
.adm-ic--support[b-ujcn2tq5ls] { background: #eaf2ff; color: #007aff; }
.adm-ic--master[b-ujcn2tq5ls] { background: #eef0f3; color: #5a6066; }
.adm-ic--login[b-ujcn2tq5ls] { background: #eafaf0; color: #1a7f43; }

.adm-row-text[b-ujcn2tq5ls] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.adm-row-title[b-ujcn2tq5ls] { font-size: 14.5px; font-weight: 800; color: #1d1d1f; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.adm-row-sub[b-ujcn2tq5ls] { font-size: 12.5px; color: #8a8f98; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.adm-row-meta[b-ujcn2tq5ls] { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
.adm-badge[b-ujcn2tq5ls] {
    font-size: 10px; font-weight: 850; letter-spacing: .02em;
    padding: 3px 9px; border-radius: 999px;
    color: var(--c-muted); background: var(--bg-muted);
}
.adm-badge--new[b-ujcn2tq5ls] { color: var(--c-new); background: var(--bg-new); }
.adm-badge--edit[b-ujcn2tq5ls] { color: var(--c-edit); background: var(--bg-edit); }
.adm-badge--del[b-ujcn2tq5ls] { color: var(--c-del); background: var(--bg-del); }
.adm-badge--ok[b-ujcn2tq5ls] { color: var(--c-ok); background: var(--bg-ok); }
.adm-badge--req[b-ujcn2tq5ls] { color: var(--c-req); background: var(--bg-req); }
.adm-badge--warn[b-ujcn2tq5ls] { color: var(--c-warn); background: var(--bg-warn); }
.adm-when[b-ujcn2tq5ls] { font-size: 11px; font-weight: 650; color: #aeb3b9; white-space: nowrap; }

.adm-chev[b-ujcn2tq5ls] {
    flex: 0 0 auto;
    width: 28px; height: 28px;
    border-radius: 8px;
    color: #c2c7cd;
    display: grid; place-items: center;
    transition: transform .18s ease, color .14s, background .14s;
}
@media (hover: hover) {
    .adm-row-main:hover .adm-chev[b-ujcn2tq5ls] {
        color: #8a8f98;
        background: #f1f4f8;
    }
}
.adm-row.is-open .adm-chev[b-ujcn2tq5ls] { transform: rotate(180deg); color: #007aff; background: #eaf2ff; }

/* -- Expand ------------------------------------------------------------- */
.adm-exp[b-ujcn2tq5ls] {
    padding: 4px 16px 16px 68px;
    border-top: 1px solid #f3f4f6;
    margin-top: -1px;
    animation: adm-fade-b-ujcn2tq5ls .16s ease;
}
@keyframes adm-fade-b-ujcn2tq5ls { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: none; } }

.adm-exp-grid[b-ujcn2tq5ls] {
    margin: 10px 0 0;
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 6px 16px;
    font-size: 13px;
}
.adm-exp-grid dt[b-ujcn2tq5ls] { color: #9aa0a6; font-weight: 700; }
.adm-exp-grid dd[b-ujcn2tq5ls] { margin: 0; color: #3a3f45; font-weight: 600; word-break: break-word; }

.adm-exp-actions[b-ujcn2tq5ls] { margin-top: 12px; }
.adm-open[b-ujcn2tq5ls] {
    display: inline-flex; align-items: center; gap: 7px;
    height: 34px; padding: 0 14px;
    border: 1px solid rgba(0, 122, 255, .42);
    border-radius: 10px;
    background: #f0f7ff; color: #007aff;
    font: inherit; font-size: 13px; font-weight: 800; cursor: pointer;
}
@media (hover: hover) {
    .adm-open:hover[b-ujcn2tq5ls] {
        background: #e2efff;
    }
}

/* -- Sentinel / empty --------------------------------------------------- */
.adm-sentinel[b-ujcn2tq5ls] {
    text-align: center;
    padding: 18px 0 6px;
    color: #aeb3b9;
    font-size: 12px;
    font-weight: 600;
}
.adm-empty[b-ujcn2tq5ls] {
    text-align: center;
    padding: 60px 20px;
    display: flex; flex-direction: column; gap: 6px;
    color: #8a8f98;
}
.adm-empty strong[b-ujcn2tq5ls] { font-size: 16px; color: #3a3f45; }

/* -- Kein Zugriff ------------------------------------------------------- */
.adm--blocked[b-ujcn2tq5ls] { display: grid; place-items: center; }
.adm-denied[b-ujcn2tq5ls] { text-align: center; max-width: 380px; }
.adm-denied-icon[b-ujcn2tq5ls] {
    width: 64px; height: 64px; margin: 0 auto 14px;
    border-radius: 18px; display: grid; place-items: center;
    background: var(--bg-del, #fdeceb); color: var(--c-del, #c0362c);
}
.adm-denied h1[b-ujcn2tq5ls] { margin: 0 0 6px; font-size: 22px; font-weight: 850; }
.adm-denied p[b-ujcn2tq5ls] { margin: 0; color: #6b7280; }

/* -- Info-Popup --------------------------------------------------------- */
.adm-info-overlay[b-ujcn2tq5ls] {
    position: fixed; inset: 0; z-index: 1000;
    display: grid; place-items: center;
    padding: 20px;
}
.adm-info-backdrop[b-ujcn2tq5ls] {
    position: absolute; inset: 0;
    border: 0; padding: 0;
    background: rgba(17, 20, 24, .42);
    backdrop-filter: blur(2px);
    cursor: pointer;
}
.adm-info-card[b-ujcn2tq5ls] {
    position: relative;
    width: min(520px, 100%);
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .28);
    overflow: hidden;
    animation: adm-pop-b-ujcn2tq5ls .18s ease;
}
@keyframes adm-pop-b-ujcn2tq5ls { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }
.adm-info-head[b-ujcn2tq5ls] {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 18px;
    border-bottom: 1px solid #ececf0;
}
.adm-info-head h2[b-ujcn2tq5ls] { margin: 0; font-size: 16px; font-weight: 850; }
.adm-info-close[b-ujcn2tq5ls] {
    border: 0; background: #f1f2f4; color: #6b7280;
    width: 30px; height: 30px; border-radius: 9px;
    display: grid; place-items: center; cursor: pointer;
}
@media (hover: hover) {
    .adm-info-close:hover[b-ujcn2tq5ls] {
        background: #e2e5e9;
        color: #1d1d1f;
    }
}
.adm-info-body[b-ujcn2tq5ls] { padding: 16px 18px 20px; font-size: 13.5px; color: #4a4f55; }
.adm-info-body p[b-ujcn2tq5ls] { margin: 0 0 12px; }
.adm-info-body ul[b-ujcn2tq5ls] { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 9px; }
.adm-info-body li[b-ujcn2tq5ls] { line-height: 1.5; }
.adm-info-body strong[b-ujcn2tq5ls] { color: #1d1d1f; }

/* -- Responsiv ---------------------------------------------------------- */
@media (max-width: 620px) {
    .adm-stats[b-ujcn2tq5ls] { grid-template-columns: 1fr; }
    .adm-search[b-ujcn2tq5ls] { flex: 1 1 120px; min-width: 0; }
    .adm-row-meta[b-ujcn2tq5ls] { display: none; }
    .adm-exp[b-ujcn2tq5ls] { padding-left: 15px; }

    /* Auf dem Handy scrollt die ganze Seite statt eines winzigen Inner-Scroll-Feldes:
       so ist die Chronik vollständig nutzbar, nicht nur der letzte Streifen unten. */
    .adm[b-ujcn2tq5ls] {
        height: auto;
        min-height: calc(100dvh - var(--app-header-h));
        overflow: visible;
        padding-bottom: 16px;
    }
    .adm-feed[b-ujcn2tq5ls] {
        flex: 0 0 auto;
        overflow-y: visible;
    }
}
/* /Components/Pages/Admin/AdminFilterPopup.razor.rz.scp.css */
/* =====================================================================
   AdminFilterPopup — scoped styles (prefix: fp-)
   ===================================================================== */

/* -- Overlay ------------------------------------------------------------ */
.fp-overlay[b-miju5id5zu] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    padding: 20px;
}

.fp-backdrop[b-miju5id5zu] {
    position: absolute;
    inset: 0;
    background: rgba(17, 20, 24, .42);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    border: none;
    cursor: default;
}

/* -- Card --------------------------------------------------------------- */
.fp-card[b-miju5id5zu] {
    position: relative;
    z-index: 1;
    width: min(360px, 100%);
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .18);
    display: flex;
    flex-direction: column;
    font: 14px/1.45 -apple-system, "Segoe UI", system-ui, sans-serif;
    color: #1d1d1f;
    animation: fp-enter-b-miju5id5zu .18s ease-out both;
}

.fp-card *[b-miju5id5zu] {
    box-sizing: border-box;
}

@keyframes fp-enter-b-miju5id5zu {
    from {
        opacity: 0;
        transform: scale(.96) translateY(6px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* -- Header ------------------------------------------------------------- */
.fp-head[b-miju5id5zu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 16px 12px;
    border-bottom: 1px solid #f0f0f2;
}

.fp-title[b-miju5id5zu] {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -.01em;
    color: #1d1d1f;
}

.fp-close[b-miju5id5zu] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: none;
    background: #f1f2f4;
    border-radius: 50%;
    color: #6b7280;
    cursor: pointer;
    padding: 0;
    transition: background .12s, color .12s;
}

@media (hover: hover) {
    .fp-close:hover[b-miju5id5zu] {
        background: #e4e5e9;
        color: #1d1d1f;
    }
}

/* -- Body --------------------------------------------------------------- */
.fp-body[b-miju5id5zu] {
    padding: 14px 14px 10px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* "Alle" — full-width tile */
.fp-tile--alle[b-miju5id5zu] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1.5px solid #e8e9ed;
    border-radius: 10px;
    background: #fafafa;
    cursor: pointer;
    transition: border-color .12s, background .12s;
    text-align: left;
}

@media (hover: hover) {
    .fp-tile--alle:hover[b-miju5id5zu] {
        background: #f0f5ff;
        border-color: #b8d0ff;
    }
}

.fp-tile--alle.fp-tile--active[b-miju5id5zu] {
    border-color: #007aff;
    background: #eaf2ff;
}

.fp-tile--alle .fp-label[b-miju5id5zu] {
    font-size: 13.5px;
    font-weight: 600;
    color: #1d1d1f;
}

/* Grid of area tiles */
.fp-grid[b-miju5id5zu] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
    gap: 8px;
}

/* Individual area tile */
.fp-tile[b-miju5id5zu] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 10px 6px 8px;
    border: 1.5px solid #e8e9ed;
    border-radius: 10px;
    background: #fafafa;
    cursor: pointer;
    transition: border-color .12s, background .12s;
    text-align: center;
}

@media (hover: hover) {
    .fp-tile:hover[b-miju5id5zu] {
        background: #f0f5ff;
        border-color: #b8d0ff;
    }
}

.fp-tile.fp-tile--active[b-miju5id5zu] {
    border-color: #007aff;
    background: #eaf2ff;
}

/* Icon box */
.fp-icon[b-miju5id5zu] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 9px;
    flex-shrink: 0;
}

.fp-tile--alle .fp-icon[b-miju5id5zu] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
}

/* Area label */
.fp-label[b-miju5id5zu] {
    font-size: 11.5px;
    font-weight: 500;
    color: #374151;
    line-height: 1.2;
    word-break: break-word;
}

/* -- Footer ------------------------------------------------------------- */
.fp-foot[b-miju5id5zu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px 14px;
    border-top: 1px solid #f0f0f2;
    gap: 10px;
}

/* Toggle row */
.fp-toggle[b-miju5id5zu] {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.fp-toggle-label[b-miju5id5zu] {
    font-size: 13px;
    font-weight: 500;
    color: #374151;
    user-select: none;
}

/* Pill switch */
.fp-switch[b-miju5id5zu] {
    position: relative;
    width: 38px;
    height: 22px;
    border-radius: 11px;
    border: none;
    background: #d1d5db;
    cursor: pointer;
    padding: 0;
    transition: background .18s;
    flex-shrink: 0;
}

.fp-switch--on[b-miju5id5zu] {
    background: #007aff;
}

.fp-switch-thumb[b-miju5id5zu] {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .18);
    transition: transform .18s;
}

.fp-switch--on .fp-switch-thumb[b-miju5id5zu] {
    transform: translateX(16px);
}

/* Done button */
.fp-done[b-miju5id5zu] {
    padding: 7px 18px;
    border: none;
    border-radius: 8px;
    background: #007aff;
    color: #fff;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    transition: background .12s;
    flex-shrink: 0;
}

@media (hover: hover) {
    .fp-done:hover[b-miju5id5zu] {
        background: #0066d6;
    }
}

.fp-done:active[b-miju5id5zu] {
    background: #0052b3;
}
/* /Components/Pages/Admin/AdminStatCard.razor.rz.scp.css */
/* =====================================================================
   AdminStatCard — compact "Variant B" stat card (scoped CSS)
   All class names are prefixed sc- to avoid collisions.
   ===================================================================== */

.sc-card[b-16o138j0pe] {
    width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 4px;
    background: #fff;
    border: 1px solid #ececf0;
    border-radius: 14px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .04);
    padding: 14px 16px;
    font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
    position: relative;
    overflow: visible;
}

/* Warn variant */
.sc-card--warn[b-16o138j0pe] {
    border-color: #f3c6c1;
    background: #fff7f6;
}

/* -- Top row (label + timeframe picker) --------------------------------- */
.sc-top[b-16o138j0pe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 2px;
}

/* -- Label --------------------------------------------------------------- */
.sc-label[b-16o138j0pe] {
    font-size: 12px;
    font-weight: 600;
    color: #8a8f98;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* -- Big number ---------------------------------------------------------- */
.sc-num[b-16o138j0pe] {
    font-size: 30px;
    font-weight: 850;
    letter-spacing: -.02em;
    line-height: 1.1;
    color: #1d1d1f;
}

.sc-num--warn[b-16o138j0pe] {
    color: #c0362c;
}

/* -- Trend delta --------------------------------------------------------- */
.sc-delta[b-16o138j0pe] {
    display: flex;
    align-items: center;
    gap: 3px;
    font-size: 12px;
    font-weight: 700;
    color: #1a7f43;
    flex-wrap: wrap;
    line-height: 1.3;
}

.sc-delta--down[b-16o138j0pe] {
    color: #c0362c;
}

.sc-delta-arrow[b-16o138j0pe] {
    font-size: 10px;
    line-height: 1;
}

.sc-delta-suffix[b-16o138j0pe] {
    font-size: 11px;
    font-weight: 600;
    color: #8a8f98;
    margin-left: 1px;
}

/* -- Sparkline ----------------------------------------------------------- */
.sc-spark[b-16o138j0pe] {
    display: block;
    width: 100%;
    height: 36px;
    margin-top: 0;
}

.sc-line[b-16o138j0pe] { stroke: #007aff; }
.sc-spark--warn .sc-line[b-16o138j0pe] { stroke: #c0362c; }
.sc-line-prev[b-16o138j0pe] { stroke: #c8ccd2; }

/* -- Timeframe picker ---------------------------------------------------- */
.sc-tf[b-16o138j0pe] {
    position: relative;
    flex: 0 0 auto;
}

.sc-tf-trigger[b-16o138j0pe] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 24px;
    padding: 0 8px;
    border: 1px solid #e3e6ea;
    border-radius: 8px;
    background: #f8f9fa;
    color: #5a6066;
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color .13s, background .13s;
}

@media (hover: hover) {
    .sc-tf-trigger:hover[b-16o138j0pe] {
        border-color: #c7d6ea;
        background: #f0f4f8;
        color: #145da0;
    }
}

.sc-chev[b-16o138j0pe] {
    transition: transform .15s ease;
    color: #9aa0a6;
    flex-shrink: 0;
}

.sc-chev--open[b-16o138j0pe] {
    transform: rotate(180deg);
}

/* Transparent full-screen backdrop to close menu on outside click */
.sc-backdrop[b-16o138j0pe] {
    position: fixed;
    inset: 0;
    z-index: 90;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: default;
}

.sc-tf-menu[b-16o138j0pe] {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 100;
    list-style: none;
    margin: 0;
    padding: 4px;
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 11px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .11);
    min-width: 100px;
    animation: sc-fade-b-16o138j0pe .13s ease;
}

@keyframes sc-fade-b-16o138j0pe {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: none; }
}

.sc-tf-menu li[b-16o138j0pe] {
    margin: 0;
    padding: 0;
}

.sc-tf-opt[b-16o138j0pe] {
    display: block;
    width: 100%;
    padding: 6px 10px;
    border: 0;
    background: transparent;
    border-radius: 8px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    color: #3a3f45;
    text-align: left;
    cursor: pointer;
    transition: background .1s;
    white-space: nowrap;
}

@media (hover: hover) {
    .sc-tf-opt:hover[b-16o138j0pe] {
        background: #f0f4f8;
        color: #145da0;
    }
}

.sc-tf-opt--on[b-16o138j0pe] {
    color: #007aff;
    background: #f0f7ff;
}

/* -- Hover overlay (per-bucket tooltips) -------------------------------- */
.sc-chart[b-16o138j0pe] {
    position: relative;
    margin-top: 6px;
}

.sc-hover[b-16o138j0pe] {
    position: absolute;
    inset: 0;
}

.sc-col[b-16o138j0pe] {
    position: absolute;
    top: 0;
    bottom: 0;
}

.sc-col[b-16o138j0pe]::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 1px;
    transform: translateX(-50%);
    background: #007aff;
    opacity: 0;
}

.sc-card--warn .sc-col[b-16o138j0pe]::before { background: #c0362c; }
@media (hover: hover) {
    .sc-col:hover[b-16o138j0pe]::before {
        opacity: .16;
    }
}
@media (hover: hover) {
    .sc-col:hover[b-16o138j0pe] {
        z-index: 20;
    }
}

.sc-dot[b-16o138j0pe] {
    position: absolute;
    left: 50%;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #007aff;
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .06);
    transform: translate(-50%, -50%);
    opacity: 0;
    pointer-events: none;
}

.sc-card--warn .sc-dot[b-16o138j0pe] { background: #c0362c; }
.sc-dot--prev[b-16o138j0pe] { background: #c8ccd2; }
@media (hover: hover) {
    .sc-col:hover .sc-dot[b-16o138j0pe] {
        opacity: 1;
    }
}

.sc-tip[b-16o138j0pe] {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 7px);
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
    padding: 6px 9px;
    border-radius: 9px;
    background: #007aff;
    color: #fff;
    white-space: nowrap;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .22);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 50;
}

.sc-card--warn .sc-tip[b-16o138j0pe] { background: #c0362c; }

.sc-tip[b-16o138j0pe]::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: #007aff;
}

.sc-card--warn .sc-tip[b-16o138j0pe]::after { border-top-color: #c0362c; }

@media (hover: hover) {
    .sc-col:hover .sc-tip[b-16o138j0pe] {
        opacity: 1;
        visibility: visible;
    }
}

.sc-tip-label[b-16o138j0pe] { font-size: 11px; font-weight: 800; }
.sc-tip-val[b-16o138j0pe] { font-size: 11px; font-weight: 600; color: rgba(255, 255, 255, .92); }
.sc-tip-prev[b-16o138j0pe] { font-size: 10.5px; font-weight: 600; color: rgba(255, 255, 255, .78); }
.sc-tip-prevdate[b-16o138j0pe] { opacity: .8; }
/* /Components/Pages/Admin/Cards/AdminHealthCard.razor.rz.scp.css */
.achp-gauges[b-pq78iyz3tk] { display: flex; flex-direction: column; gap: 10px; margin-bottom: 4px; }
.achp-gauge-top[b-pq78iyz3tk] {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    margin-bottom: 5px;
}
.achp-gauge-top span[b-pq78iyz3tk] { color: #80858d; font-weight: 600; }
.achp-gauge-top b[b-pq78iyz3tk] { font-weight: 700; }
.achp-bar[b-pq78iyz3tk] {
    height: 8px;
    border-radius: 999px;
    background: #efeff1;
    overflow: hidden;
}
.achp-bar-fill[b-pq78iyz3tk] {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: #16181c;
    transition: width .5s ease;
}
.achp-bar-fill--warn[b-pq78iyz3tk] { background: #a15c00; }
.achp-bar-fill--danger[b-pq78iyz3tk] { background: #e2483b; }

.achp-backup[b-pq78iyz3tk] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #f0f0f2;
}
/* /Components/Pages/Admin/Cards/AdminMaintenanceCard.razor.rz.scp.css */
.acmt-features[b-2bkuxch9c9] { border-top: 1px solid #f0f0f2; margin-top: 4px; padding-top: 4px; }

.acmt-features-head[b-2bkuxch9c9] {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    padding: 12px 2px;
    background: none;
    border: 0;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
}
.acmt-features-head .ac-switch-title[b-2bkuxch9c9] { flex: 0 0 auto; }
.acmt-chev[b-2bkuxch9c9] { margin-left: auto; color: #80858d; transition: transform .18s ease; }
.acmt-chev--open[b-2bkuxch9c9] { transform: rotate(180deg); }

.acmt-features-body[b-2bkuxch9c9] {
    padding-left: 2px;
    animation: acmt-slide-b-2bkuxch9c9 .18s ease;
}
@keyframes acmt-slide-b-2bkuxch9c9 { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

.acmt-times[b-2bkuxch9c9] {
    border-top: 1px solid #f0f0f2;
    margin-top: 4px;
    padding-top: 4px;
}
.acmt-time[b-2bkuxch9c9] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 2px;
    border-top: 1px solid #f0f0f2;
}
.acmt-time:first-child[b-2bkuxch9c9] { border-top: 0; }
.acmt-time .ac-switch-text[b-2bkuxch9c9] { flex: 1 1 auto; min-width: 0; }
.acmt-num[b-2bkuxch9c9] {
    flex: none;
    width: 92px;
    text-align: center;
    padding: 8px 6px;
}
/* /Components/Pages/Admin/Cards/AdminSecurityCard.razor.rz.scp.css */
.acsec-add[b-8s1vf6h3dc] {
    display: flex;
    gap: 8px;
    margin-bottom: 4px;
}
.acsec-add .ac-input[b-8s1vf6h3dc] { flex: 1 1 auto; }

.acsec-sub[b-8s1vf6h3dc] {
    margin: 12px 0 2px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #80858d;
}
/* /Components/Pages/Admin/Modals/AdminDataModal.razor.rz.scp.css */
.amd-card[b-00e93y15al] { height: min(86dvh, 860px); }

/* Mobiles Vollflächen-Sheet: die feste Kartenhöhe würde das globale 100dvh aus admin-dash.css
   überstimmen (Scoped-CSS-Spezifität) → unten bliebe ein Streifen frei. */
@media (max-width: 560px) {
    .amd-card[b-00e93y15al] { height: 100dvh; }
}

.amd-usage[b-00e93y15al] { display: flex; flex-direction: column; gap: 11px; margin-bottom: 6px; }
.amd-usage-top[b-00e93y15al] {
    display: flex;
    justify-content: space-between;
    font-size: 12.5px;
    margin-bottom: 5px;
}
.amd-usage-top span[b-00e93y15al] { font-weight: 700; }
.amd-usage-top b[b-00e93y15al] { color: #80858d; font-weight: 600; }
.amd-usage-bar[b-00e93y15al] {
    height: 8px;
    border-radius: 999px;
    background: #efeff1;
    overflow: hidden;
}
.amd-usage-bar span[b-00e93y15al] { display: block; height: 100%; border-radius: 999px; background: #16181c; transition: width .4s ease; }

.amd-subhead[b-00e93y15al] {
    margin: 18px 0 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #80858d;
}

/* -- DB-Browser -- */
.amd-lock[b-00e93y15al] {
    text-align: center;
    padding: 36px 20px;
    max-width: 380px;
    margin: 0 auto;
}
.amd-lock-ic[b-00e93y15al] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 18px;
    background: #efeff1;
    color: #16181c;
    margin-bottom: 14px;
}
.amd-lock p[b-00e93y15al] { color: #80858d; font-size: 13.5px; line-height: 1.5; margin: 0 0 18px; }

.amd-db-toolbar[b-00e93y15al] { margin-bottom: 12px; }
.amd-db-toolbar .ac-select[b-00e93y15al] { max-width: 320px; }

.amd-db-scroll[b-00e93y15al] {
    overflow: auto;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #fff;
    max-height: 52dvh;
}
.amd-db-table[b-00e93y15al] {
    border-collapse: collapse;
    font-size: 12px;
    width: max-content;
    min-width: 100%;
}
.amd-db-table th[b-00e93y15al], .amd-db-table td[b-00e93y15al] {
    border-bottom: 1px solid #f0f0f2;
    border-right: 1px solid #f0f0f2;
    padding: 7px 10px;
    text-align: left;
    white-space: nowrap;
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
}
.amd-db-table th[b-00e93y15al] {
    position: sticky;
    top: 0;
    background: #f7f7f9;
    font-weight: 700;
    color: #3c4148;
}
@media (hover: hover) {
    .amd-db-table tbody tr:hover td[b-00e93y15al] {
        background: #fbfbfc;
    }
}

.amd-db-pager[b-00e93y15al] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-top: 12px;
    font-size: 12.5px;
    color: #80858d;
    font-weight: 600;
}
/* /Components/Pages/Admin/Modals/AdminMessagesModal.razor.rz.scp.css */
.amsg-typebar[b-phr9ydqd9y] { margin-bottom: 16px; }

.amsg-hint[b-phr9ydqd9y] {
    padding: 12px 14px;
    margin-bottom: 14px;
    border-radius: 12px;
    background: #f7f7f9;
    color: #3c4148;
    font-size: 12.5px;
    line-height: 1.5;
}
.amsg-hint strong[b-phr9ydqd9y] { color: #16181c; }

.amsg-note[b-phr9ydqd9y] {
    margin-top: 8px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #fdf2e0;
    color: #a15c00;
    font-size: 12.5px;
    font-weight: 600;
}
/* /Components/Pages/Admin/Modals/AdminRolesMatrixModal.razor.rz.scp.css */
.armx-body[b-aqj6vywwmy] { display: flex; flex-direction: column; }

.armx-scroll[b-aqj6vywwmy] {
    overflow: auto;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    background: #fff;
}

.armx-table[b-aqj6vywwmy] {
    border-collapse: separate;
    border-spacing: 0;
    font-size: 13px;
    width: max-content;
    min-width: 100%;
}

.armx-table th[b-aqj6vywwmy], .armx-table td[b-aqj6vywwmy] { border-bottom: 1px solid #f0f0f2; }

.armx-corner[b-aqj6vywwmy], .armx-rowhead[b-aqj6vywwmy] {
    position: sticky;
    left: 0;
    z-index: 2;
    background: #fff;
    text-align: left;
    font-weight: 700;
    padding: 10px 14px;
    white-space: nowrap;
    border-right: 1px solid #e4e4e7;
}
.armx-corner[b-aqj6vywwmy] {
    z-index: 3;
    top: 0;
    color: #80858d;
    font-size: 11px;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.armx-col[b-aqj6vywwmy] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f7f7f9;
    padding: 10px 8px;
    height: 118px;
    vertical-align: bottom;
}
.armx-col span[b-aqj6vywwmy] {
    display: inline-block;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: 12px;
    font-weight: 700;
    color: #3c4148;
    white-space: nowrap;
}

.armx-inactive[b-aqj6vywwmy] {
    display: inline-block;
    margin-left: 6px;
    font-size: 10px;
    font-weight: 700;
    color: #80858d;
    background: #efeff1;
    padding: 1px 6px;
    border-radius: 999px;
}

.armx-cell[b-aqj6vywwmy] {
    text-align: center;
    padding: 8px;
    color: #16181c;
}
.armx-cell--on[b-aqj6vywwmy] { background: #f2fbf5; color: #16a34a; }

@media (hover: hover) {
    .armx-table tbody tr:hover .armx-rowhead[b-aqj6vywwmy],
    .armx-table tbody tr:hover .armx-cell[b-aqj6vywwmy] {
        background: #f7f7f9;
    }
}
@media (hover: hover) {
    .armx-table tbody tr:hover .armx-cell--on[b-aqj6vywwmy] {
        background: #eaf7ee;
    }
}

.armx-note[b-aqj6vywwmy] {
    margin: 12px 2px 0;
    font-size: 12px;
    color: #80858d;
}
/* /Components/Pages/Admin/Modals/AdminUsersModal.razor.rz.scp.css */
.amu-card[b-6lezlfsvyt] { height: min(88dvh, 900px); }

/* Mobiles Vollflächen-Sheet: die feste Kartenhöhe würde das globale 100dvh aus admin-dash.css
   überstimmen (Scoped-CSS-Spezifität) → unten bliebe ein Streifen frei. */
@media (max-width: 560px) {
    .amu-card[b-6lezlfsvyt] { height: 100dvh; }
}

.amu-split[b-6lezlfsvyt] {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    grid-template-columns: 280px 1fr;
}

.amu-side[b-6lezlfsvyt] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    border-right: 1px solid #e4e4e7;
    background: #fbfbfc;
}

.amu-search[b-6lezlfsvyt] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 12px;
    padding: 0 12px;
    height: 40px;
    border-radius: 11px;
    border: 1px solid #e4e4e7;
    background: #fff;
    color: #80858d;
}
.amu-search input[b-6lezlfsvyt] {
    flex: 1 1 auto;
    border: 0;
    outline: none;
    background: none;
    font: inherit;
    font-size: 13.5px;
    color: #16181c;
}

.amu-list[b-6lezlfsvyt] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    list-style: none;
    margin: 0;
    padding: 0 8px 12px;
}
.amu-li[b-6lezlfsvyt] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 9px 10px;
    border: 0;
    border-radius: 11px;
    background: none;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
}
@media (hover: hover) {
    .amu-li:hover[b-6lezlfsvyt] {
        background: #efeff1;
    }
}
.amu-li--on[b-6lezlfsvyt] { background: #16181c; }
@media (hover: hover) {
    .amu-li--on:hover[b-6lezlfsvyt] {
        background: #26282e;
    }
}
.amu-li--on .amu-li-name[b-6lezlfsvyt], .amu-li--on .amu-li-sub[b-6lezlfsvyt] { color: #fff; }
.amu-li--on .amu-li-sub[b-6lezlfsvyt] { opacity: .7; }
.amu-li-text[b-6lezlfsvyt] { flex: 1 1 auto; min-width: 0; }
.amu-li-name[b-6lezlfsvyt] { display: block; font-size: 13.5px; font-weight: 700; color: #16181c; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.amu-li-sub[b-6lezlfsvyt] { display: block; font-size: 11.5px; color: #80858d; }

.amu-main[b-6lezlfsvyt] {
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    padding: 18px;
}

.amu-section-title[b-6lezlfsvyt] {
    margin: 18px 0 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #80858d;
}

/* -- Detail -- */
.amu-back[b-6lezlfsvyt] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px 6px 8px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    font: inherit;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    margin-bottom: 14px;
}
@media (hover: hover) {
    .amu-back:hover[b-6lezlfsvyt] {
        background: #efeff1;
    }
}

.amu-userhead[b-6lezlfsvyt] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}
.amu-avatar[b-6lezlfsvyt] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: #16181c;
    color: #fff;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    font-size: 19px;
    flex: none;
}
.amu-userhead-text[b-6lezlfsvyt] { flex: 1 1 auto; min-width: 0; }
.amu-userhead-text h3[b-6lezlfsvyt] { margin: 0; font-size: 18px; font-weight: 800; }
.amu-userhead-text span[b-6lezlfsvyt] { font-size: 12.5px; color: #80858d; }

.amu-actions[b-6lezlfsvyt] { display: flex; flex-wrap: wrap; gap: 8px; }
.amu-selfnote[b-6lezlfsvyt] {
    padding: 12px 14px;
    border-radius: 12px;
    background: #f7f7f9;
    color: #80858d;
    font-size: 12.5px;
}

/* -- Heatmap -- */
.amu-heat-grid[b-6lezlfsvyt] {
    display: grid;
    grid-template-columns: 30px repeat(24, 1fr);
    gap: 3px;
    align-items: center;
}
.amu-heat-day[b-6lezlfsvyt] { font-size: 11px; font-weight: 700; color: #80858d; }
.amu-heat-cell[b-6lezlfsvyt] {
    aspect-ratio: 1;
    border-radius: 3px;
    min-height: 12px;
    cursor: pointer;
}
@media (hover: hover) {
    .amu-heat-cell:hover[b-6lezlfsvyt] {
        outline: 2px solid #16181c;
        outline-offset: -1px;
    }
}
.amu-heat-hours[b-6lezlfsvyt] {
    display: grid;
    grid-template-columns: 30px repeat(24, 1fr);
    margin-top: 5px;
    font-size: 10px;
    color: #80858d;
    font-weight: 600;
}

@media (max-width: 640px) {
    .amu-split[b-6lezlfsvyt] { grid-template-columns: 1fr; }
    .amu-side--collapsed[b-6lezlfsvyt] { display: none; }
    .amu-heat-cell[b-6lezlfsvyt] { min-height: 9px; }
}
/* /Components/Pages/Admin/Shared/AdminReAuthDialog.razor.rz.scp.css */
.rad-overlay[b-ox6x4abgne] {
    position: fixed;
    inset: 0;
    z-index: 2200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.rad-backdrop[b-ox6x4abgne] {
    position: absolute;
    inset: 0;
    border: 0;
    padding: 0;
    background: rgba(22, 24, 28, .38);
    backdrop-filter: blur(3px);
    cursor: pointer;
}

.rad-card[b-ox6x4abgne] {
    position: relative;
    width: min(400px, 100%);
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .26), 0 6px 14px -10px rgba(0, 0, 0, .12);
    padding: 26px 24px 22px;
    text-align: center;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    animation: rad-pop-b-ox6x4abgne .16s ease;
}

@keyframes rad-pop-b-ox6x4abgne {
    from { transform: translateY(6px) scale(.98); opacity: 0; }
    to { transform: none; opacity: 1; }
}

.rad-icon[b-ox6x4abgne] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 15px;
    background: #efeff1;
    color: #16181c;
    margin-bottom: 12px;
}

.rad-title[b-ox6x4abgne] {
    margin: 0 0 5px;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: -.01em;
    color: #16181c;
}

.rad-text[b-ox6x4abgne] {
    margin: 0 0 16px;
    font-size: 13.5px;
    line-height: 1.5;
    color: #80858d;
}

.rad-input[b-ox6x4abgne] {
    width: 100%;
    height: 46px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 0 14px;
    font-size: 15px;
    font-family: inherit;
    color: #16181c;
    background: #fff;
    text-align: center;
    letter-spacing: .12em;
    transition: border-color .14s ease, box-shadow .14s ease;
}

.rad-input[b-ox6x4abgne]::placeholder { letter-spacing: normal; color: #80858d; }
.rad-input:focus[b-ox6x4abgne] {
    outline: none;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}
.rad-input--err[b-ox6x4abgne] {
    border-color: #e2483b;
    box-shadow: 0 0 0 3px rgba(226, 72, 59, .13);
}

.rad-err[b-ox6x4abgne] {
    display: block;
    margin-top: 8px;
    font-size: 12.5px;
    font-weight: 600;
    color: #e2483b;
}

.rad-actions[b-ox6x4abgne] {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}

.rad-btn[b-ox6x4abgne] {
    flex: 1;
    height: 44px;
    border-radius: 12px;
    border: 1px solid transparent;
    font-size: 14px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    transition: background .14s ease, transform .1s ease, opacity .14s ease;
}

.rad-btn--ghost[b-ox6x4abgne] {
    background: #fff;
    border-color: #e4e4e7;
    color: #16181c;
}
@media (hover: hover) {
    .rad-btn--ghost:hover[b-ox6x4abgne] {
        background: #efeff1;
    }
}

.rad-btn--go[b-ox6x4abgne] {
    background: #16181c;
    color: #fff;
}
@media (hover: hover) {
    .rad-btn--go:hover[b-ox6x4abgne] {
        background: #26282e;
    }
}
.rad-btn--go:disabled[b-ox6x4abgne] { opacity: .45; cursor: default; }

.rad-btn--danger[b-ox6x4abgne] { background: #e2483b; }
@media (hover: hover) {
    .rad-btn--danger:hover[b-ox6x4abgne] {
        background: #cf3d31;
    }
}

.rad-btn:active[b-ox6x4abgne] { transform: translateY(1px); }
/* /Components/Pages/Admin/Shared/AdminTimePicker.razor.rz.scp.css */
.atp[b-evutc4qzrg] { position: relative; display: inline-block; font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }

.atp-btn[b-evutc4qzrg] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 34px;
    padding: 0 12px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #fff;
    color: #16181c;
    font: inherit;
    font-size: 13.5px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    cursor: pointer;
    transition: background .14s ease, border-color .14s ease;
}
@media (hover: hover) {
    .atp-btn:hover[b-evutc4qzrg] {
        background: #efeff1;
    }
}
.atp-btn--open[b-evutc4qzrg] { border-color: #16181c; box-shadow: 0 0 0 3px rgba(22, 24, 28, .12); }
.atp-btn svg[b-evutc4qzrg] { color: #80858d; flex: none; }
.atp-empty[b-evutc4qzrg] { color: #80858d; }

.atp-backdrop[b-evutc4qzrg] {
    position: fixed;
    inset: 0;
    z-index: 40;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: default;
}

.atp-pop[b-evutc4qzrg] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 41;
    padding: 12px;
    border: 1px solid #e4e4e7;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 14px 34px -16px rgba(0, 0, 0, .3);
    animation: atp-in-b-evutc4qzrg .14s ease;
}
@keyframes atp-in-b-evutc4qzrg { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

.atp-steppers[b-evutc4qzrg] {
    display: flex;
    align-items: center;
    gap: 8px;
}
.atp-stepper[b-evutc4qzrg] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.atp-stepper button[b-evutc4qzrg] {
    width: 40px;
    height: 30px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    background: #fff;
    color: #16181c;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}
@media (hover: hover) {
    .atp-stepper button:hover[b-evutc4qzrg] {
        background: #efeff1;
    }
}
.atp-stepper span[b-evutc4qzrg] {
    font-size: 20px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    padding: 2px 0;
}
.atp-colon[b-evutc4qzrg] { font-size: 20px; font-weight: 800; align-self: center; padding-bottom: 2px; }

.atp-foot[b-evutc4qzrg] {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}
.atp-foot-btn[b-evutc4qzrg] {
    flex: 1;
    height: 32px;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #16181c;
    font: inherit;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
}
@media (hover: hover) {
    .atp-foot-btn:hover[b-evutc4qzrg] {
        background: #efeff1;
    }
}
.atp-foot-btn--primary[b-evutc4qzrg] { background: #16181c; color: #fff; border-color: #16181c; }
@media (hover: hover) {
    .atp-foot-btn--primary:hover[b-evutc4qzrg] {
        background: #26282e;
    }
}
/* /Components/Pages/Admin/Wartung.razor.rz.scp.css */
.wart[b-25pvn5sx19] {
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: #f5f5f7;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #16181c;
}

.wart-card[b-25pvn5sx19] {
    width: min(440px, 100%);
    text-align: center;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 22px;
    box-shadow: 0 24px 50px -24px rgba(0, 0, 0, .22);
    padding: 40px 32px 34px;
}

.wart-ic[b-25pvn5sx19] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    border-radius: 20px;
    background: #16181c;
    color: #fff;
    margin-bottom: 18px;
}

.wart-kicker[b-25pvn5sx19] {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #80858d;
    margin-bottom: 6px;
}

.wart-card h1[b-25pvn5sx19] {
    margin: 0 0 12px;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -.02em;
}

.wart-text[b-25pvn5sx19] {
    margin: 0 0 24px;
    font-size: 14.5px;
    line-height: 1.55;
    color: #3c4148;
}

.wart-retry[b-25pvn5sx19] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 46px;
    padding: 0 24px;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: background .14s ease;
}
@media (hover: hover) {
    .wart-retry:hover[b-25pvn5sx19] {
        background: #26282e;
    }
}
/* /Components/Pages/Buchhaltung/Buchhaltung.razor.rz.scp.css */
.buch-page[b-sjjt8z6pae] {
    --accent: #16181c;
    --accent-soft: #efeff1;
    --ink: #16181c;
    --muted: #80858d;
    --line: #e4e4e7;
    --card: #ffffff;
    --bg: #f5f5f7;
    --pos: #16a34a;
    --neg: #e2483b;
    --zero: #80858d;

    /* Höhe der sticky Monats-Kopfzeile (13px Padding oben/unten + 16px Zeile + 1px Linie) –
       Offset, unter dem die zweite sticky Kopfzeile der Tages-Tabelle andockt. */
    --buch-head-h: 43px;

    /* 100dvh statt 100vh (100vh bleibt Fallback): auf iPad/iOS ist 100vh die große
       Viewport-Höhe — sonst ließe sich der Header um die Safari-Leiste wegscrollen. */
    height: calc(100vh - var(--app-header-h));
    height: calc(100dvh - var(--app-header-h));
    padding: 24px 28px 18px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    color: var(--ink);
    background: var(--bg);
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* Hintergrund läuft randlos durch (wie auf den übrigen Seiten, #f5f5f7); der Inhalt
   bleibt aber zentriert und auf Lesebreite begrenzt. */
.buch-page > *[b-sjjt8z6pae] {
    width: 100%;
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
}

/* -- Kopf (wie die übrigen Mitarbeiter-Seiten) --------------------------- */
.buch-top[b-sjjt8z6pae] {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px 24px;
    margin-bottom: 16px;
}

.buch-kicker[b-sjjt8z6pae] {
    display: block;
    font-size: 0.74rem;
    font-weight: 800;
    text-transform: uppercase;
    color: #80858d;
}

.buch-top__title h1[b-sjjt8z6pae] {
    margin: 3px 0 0;
    color: #16181c;
    font-size: 1.72rem;
    font-weight: 800;
}

.buch-top__tools[b-sjjt8z6pae] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;
}

.buch-monthpick[b-sjjt8z6pae] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* -- Umschalter Uhrzeit-Format / Dezimalstunden -------------------------- */
.buch-fmt[b-sjjt8z6pae] {
    display: inline-flex;
    align-items: center;
    padding: 3px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--card);
}

.buch-fmt__btn[b-sjjt8z6pae] {
    border: 0;
    border-radius: 7px;
    padding: 5px 11px;
    background: transparent;
    color: var(--ink);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    cursor: pointer;
}

.buch-fmt__btn.is-active[b-sjjt8z6pae] {
    background: #16181c;
    color: #fff;
    cursor: default;
}

@media (hover: hover) {
    .buch-fmt__btn:not(.is-active):hover[b-sjjt8z6pae] {
        background: var(--accent-soft);
        color: var(--accent);
    }
}

/* Hinweis, wenn eine (Auto-)Aktualisierung fehlgeschlagen ist – Stand evtl. veraltet. */
.buch-staleness[b-sjjt8z6pae] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    padding: 9px 14px;
    border: 1px solid #f0c9c4;
    border-radius: 10px;
    background: #fbeae8;
    color: #b42318;
    font-size: 0.9rem;
    font-weight: 600;
}

.buch-staleness svg[b-sjjt8z6pae] {
    flex: 0 0 auto;
}

.buch-staleness span[b-sjjt8z6pae] {
    flex: 1 1 auto;
}

.buch-staleness__retry[b-sjjt8z6pae] {
    flex: 0 0 auto;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    background: #fff;
    color: #b42318;
    padding: 4px 12px;
    font-weight: 700;
    font-size: 0.86rem;
    cursor: pointer;
}

@media (hover: hover) {
    .buch-staleness__retry:hover[b-sjjt8z6pae] {
        background: #fbeae8;
    }
}

.buch-arrow[b-sjjt8z6pae] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--card);
    color: var(--ink);
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease, color .12s ease;
}

@media (hover: hover) {
    .buch-arrow:hover[b-sjjt8z6pae] {
        background: var(--accent-soft);
        border-color: var(--accent);
        color: var(--accent);
    }
}

/* -- Monats-Kontextleiste (Monat + Feiertage) ---------------------------- */
.buch-summary[b-sjjt8z6pae] {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 18px;
    padding: 12px 18px;
    margin-bottom: 14px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: 0 6px 18px -12px rgba(0,0,0,.22);
}

.buch-summary__month[b-sjjt8z6pae] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2px 0 2px 14px;
    border-left: 3px solid var(--accent);
    margin-right: auto;
}

.buch-summary__name[b-sjjt8z6pae] {
    font-size: 18px;
    font-weight: 700;
    text-transform: capitalize;
}

.buch-summary__count[b-sjjt8z6pae] {
    font-size: 13px;
    color: var(--muted);
}

.buch-holidays[b-sjjt8z6pae] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.buch-holidays__label[b-sjjt8z6pae] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted);
}

.buch-chip[b-sjjt8z6pae] {
    font-size: 12.5px;
    color: #3c4148;
    background: #efeff1;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 4px 11px;
}

.buch-chip strong[b-sjjt8z6pae] {
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}

/* -- Haupttabelle (einziger Scrollbereich) ------------------------------- */
.buch-tablewrap[b-sjjt8z6pae] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    background: var(--card);
    border: 1px solid var(--line);
    border-bottom: none;
    border-radius: 16px 16px 0 0;
}

/* Auszahlung: echte Werte betont (Handlungsposten fürs Lohnbüro); ohne Wert greift buch-soft.
   Rückbuchungen (Minus im Lösch-Monat) zusätzlich rot. */
.buch-payout[b-sjjt8z6pae] { font-weight: 650; }
.buch-payout--neg[b-sjjt8z6pae] { color: var(--neg); }

.buch-table[b-sjjt8z6pae] {
    width: 100%;
    min-width: 940px;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 14.5px;
}

.buch-table thead th[b-sjjt8z6pae] {
    position: sticky;
    top: 0;
    z-index: 2;
    text-align: left;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--muted);
    padding: 13px 16px;
    line-height: 16px; /* feste Zeilenhöhe, damit --buch-head-h stimmt */
    border-bottom: 1px solid var(--line);
    background: #f7f7f8;
    white-space: nowrap;
}

.buch-table .num[b-sjjt8z6pae] {
    width: 120px;
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1;
    white-space: nowrap;
}

.buch-th-name[b-sjjt8z6pae],
.buch-td-name[b-sjjt8z6pae] {
    position: sticky;
    left: 0;
    background: var(--card);
    z-index: 1;
}

.buch-table thead th.buch-th-name[b-sjjt8z6pae] {
    background: #f7f7f8;
    z-index: 3;
}

/* Zeile mit offenem Hinweis-Popover: Namensspalte (eigener Stacking-Context) über
   Tabellenkopf und alle anderen Zeilen heben, damit das Popover nicht verdeckt wird. */
.buch-row--alert .buch-td-name[b-sjjt8z6pae] {
    z-index: 40;
}

.buch-row > td[b-sjjt8z6pae] {
    padding: 12px 16px;
    border-bottom: 1px solid var(--line);
    vertical-align: middle;
}

.buch-row[b-sjjt8z6pae] {
    cursor: pointer;
    transition: background .1s ease;
}

@media (hover: hover) {
    .buch-row:hover > td[b-sjjt8z6pae],
    .buch-row:hover .buch-td-name[b-sjjt8z6pae] {
        background: #efeff1;
    }
}

.buch-row.is-open > td[b-sjjt8z6pae] {
    background: var(--accent-soft);
    border-bottom-color: transparent;
}

.buch-row.is-open .buch-td-name[b-sjjt8z6pae] {
    background: var(--accent-soft);
}

.buch-row:focus-visible[b-sjjt8z6pae] {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

.buch-td-name[b-sjjt8z6pae] {
    display: flex;
    align-items: center;
    gap: 9px;
    font-weight: 600;
    min-width: 220px;
}

.buch-chev[b-sjjt8z6pae] {
    display: inline-flex;
    color: var(--muted);
    transition: transform .15s ease, color .15s ease;
}

.buch-row.is-open .buch-chev[b-sjjt8z6pae] {
    transform: rotate(90deg);
    color: var(--accent);
}

.buch-name[b-sjjt8z6pae] {
    white-space: nowrap;
}

.buch-pnr[b-sjjt8z6pae] {
    font-size: 12px;
    font-weight: 600;
    color: var(--muted);
    font-variant-numeric: tabular-nums;
}

/* Deaktiviertes Konto mit Auszahlungs-/Antrags-Aktivität im Monat (z. B. Ausgeschiedener). */
.buch-inaktiv[b-sjjt8z6pae] {
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--muted);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 1px 7px;
    white-space: nowrap;
}

/* -- Hinweis auf offenen Antrag: pulsierendes Ausrufezeichen + Popover ---- */
.buch-alert-wrap[b-sjjt8z6pae] {
    position: relative;
    display: inline-flex;
}

.buch-alert[b-sjjt8z6pae] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: #ca8a04;
    cursor: pointer;
    transform-origin: center center;
    animation: buch-alert-pulse-b-sjjt8z6pae 1.2s ease-in-out infinite;
}

.buch-alert:focus-visible[b-sjjt8z6pae] {
    color: #a16207;
    outline: none;
}

@media (hover: hover) {
    .buch-alert:hover[b-sjjt8z6pae] {
        color: #a16207;
        outline: none;
    }
}

.buch-alert svg[b-sjjt8z6pae] {
    width: 20px;
    height: 20px;
}

@keyframes buch-alert-pulse-b-sjjt8z6pae {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.3); }
    100% { transform: scale(1); }
}

.buch-alert-pop[b-sjjt8z6pae] {
    position: absolute;
    top: 30px;
    left: 0;
    z-index: 30;
    width: min(320px, 72vw);
    border: 1.5px solid #fadf86;
    border-radius: 14px;
    padding: 13px 34px 13px 14px;
    color: #6b4e09;
    background: #fefae3;
    box-shadow: 0 14px 34px rgba(202, 138, 4, .2);
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.4;
    white-space: normal;
    text-transform: none;
    letter-spacing: normal;
    cursor: default;
}

.buch-alert-pop strong[b-sjjt8z6pae] {
    color: #4d3905;
    font-weight: 750;
}

.buch-alert-close[b-sjjt8z6pae] {
    position: absolute;
    top: 5px;
    right: 8px;
    border: none;
    background: transparent;
    color: #b08008;
    font-size: 19px;
    line-height: 1;
    padding: 2px;
    cursor: pointer;
}

.buch-soll[b-sjjt8z6pae] { color: #3c4148; }
.buch-soft[b-sjjt8z6pae] { color: #3c4148; }
.buch-diff[b-sjjt8z6pae] { font-weight: 700; }

.is-pos[b-sjjt8z6pae] { color: var(--pos); }
.is-neg[b-sjjt8z6pae] { color: var(--neg); }
.is-zero[b-sjjt8z6pae] { color: var(--zero); }

/* -- Tagesdetail (ausgewogene Spaltenbreiten) ---------------------------- */
.buch-detailrow > td[b-sjjt8z6pae] {
    padding: 0 14px 14px;
    background: var(--accent-soft);
    border-bottom: 1px solid var(--line);
}

.buch-daytable[b-sjjt8z6pae] {
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--card);
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    /* Kein overflow:hidden – das würde die sticky Kopfzeile brechen;
       die Rundung liegt stattdessen auf den Eckzellen. */
    font-size: 13.5px;
}

.buch-daytable thead th:first-child[b-sjjt8z6pae] { border-top-left-radius: 11px; }
.buch-daytable thead th:last-child[b-sjjt8z6pae] { border-top-right-radius: 11px; }
.buch-daytable tbody tr:last-child td:first-child[b-sjjt8z6pae] { border-bottom-left-radius: 11px; }
.buch-daytable tbody tr:last-child td:last-child[b-sjjt8z6pae] { border-bottom-right-radius: 11px; }

.buch-daytable th:nth-child(1)[b-sjjt8z6pae], .buch-daytable td:nth-child(1)[b-sjjt8z6pae] { width: 11%; }  /* Tag */
.buch-daytable th:nth-child(2)[b-sjjt8z6pae], .buch-daytable td:nth-child(2)[b-sjjt8z6pae] { width: 22%; }  /* Zeiten */
.buch-daytable th:nth-child(3)[b-sjjt8z6pae], .buch-daytable td:nth-child(3)[b-sjjt8z6pae] { width: 10%; }  /* Pause */
.buch-daytable th:nth-child(4)[b-sjjt8z6pae], .buch-daytable td:nth-child(4)[b-sjjt8z6pae] { width: 11%; }  /* Ist */
.buch-daytable th:nth-child(5)[b-sjjt8z6pae], .buch-daytable td:nth-child(5)[b-sjjt8z6pae] { width: 11%; }  /* Soll */
.buch-daytable th:nth-child(6)[b-sjjt8z6pae], .buch-daytable td:nth-child(6)[b-sjjt8z6pae] { width: 12%; }  /* Saldo */
.buch-daytable th:nth-child(7)[b-sjjt8z6pae], .buch-daytable td:nth-child(7)[b-sjjt8z6pae] { width: 19%; }  /* Hinweis */
.buch-daytable th:nth-child(8)[b-sjjt8z6pae], .buch-daytable td:nth-child(8)[b-sjjt8z6pae] { width: 4%; }   /* Bearbeiten */

.buch-daytable thead th[b-sjjt8z6pae] {
    /* Klebt beim Scrollen im aufgeklappten Tagesbereich direkt unter der
       Monats-Kopfzeile – so passen die sichtbaren Spaltentitel immer zum Inhalt. */
    position: sticky;
    top: var(--buch-head-h);
    z-index: 1;
    text-align: left;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--muted);
    padding: 9px 14px;
    background: #f5f5f7;
    border-bottom: 1px solid #e4e4e7;
    white-space: nowrap;
}

.buch-daytable .num[b-sjjt8z6pae] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1;
    white-space: nowrap;
}

.buch-daytable tbody td[b-sjjt8z6pae] {
    padding: 8px 14px;
    border-bottom: 1px solid #efeff1;
    vertical-align: middle;
}

.buch-daytable tbody tr:last-child td[b-sjjt8z6pae] {
    border-bottom: none;
}

.buch-dayrow--muted td[b-sjjt8z6pae] {
    color: var(--muted);
    background: #fafafa;
}

/* Tages-Saldo behält seine Ampelfarbe auch in gedämpften (Abwesenheits-)Zeilen. */
.buch-daytable td.is-pos[b-sjjt8z6pae] { color: var(--pos); }
.buch-daytable td.is-neg[b-sjjt8z6pae] { color: var(--neg); }
.buch-daytable td.is-zero[b-sjjt8z6pae] { color: var(--zero); }

.buch-day[b-sjjt8z6pae] {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.buch-dow[b-sjjt8z6pae] {
    display: inline-block;
    min-width: 26px;
    font-weight: 700;
    color: var(--ink);
}

.buch-dayrow--muted .buch-dow[b-sjjt8z6pae] {
    color: var(--muted);
}

.buch-times[b-sjjt8z6pae] {
    font-variant-numeric: tabular-nums;
    color: #3c4148;
}

.buch-daynote[b-sjjt8z6pae] {
    display: inline-block;
    font-size: 11.5px;
    font-weight: 600;
    border-radius: 999px;
    padding: 2px 9px;
}

.buch-daynote.is-holiday[b-sjjt8z6pae] { color: #7a3ea0; background: #f3ecfa; }
.buch-daynote.is-leave[b-sjjt8z6pae]   { color: #1d6fb8; background: #e8f1fa; }
.buch-daynote.is-sick[b-sjjt8z6pae]    { color: #b0612a; background: #fbeede; }
.buch-daynote.is-free[b-sjjt8z6pae]    { color: #8a93a3; background: #f0f2f6; }

/* -- Summenleiste (fix ganz unten, außerhalb des Scrollbereichs) --------- */
.buch-totals[b-sjjt8z6pae] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 8px 22px;
    padding: 12px 20px;
    background: #f7f7f8;
    border: 1px solid var(--line);
    border-top: 2px solid #e4e4e7;
    border-radius: 0 0 16px 16px;
}

.buch-totals__title[b-sjjt8z6pae] {
    flex: 0 0 auto;
    margin-right: auto;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--muted);
}

.buch-totals__grid[b-sjjt8z6pae] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 28px;
}

.buch-totals__item[b-sjjt8z6pae] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 78px;
}

.buch-totals__item small[b-sjjt8z6pae] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--muted);
}

.buch-totals__item b[b-sjjt8z6pae] {
    font-size: 16px;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1;
}

/* -- Leerzustand --------------------------------------------------------- */
.buch-empty[b-sjjt8z6pae] {
    flex: 0 0 auto;
    padding: 44px 24px;
    text-align: center;
    color: var(--muted);
    background: var(--card);
    border: 1px dashed var(--line);
    border-radius: 16px;
}

@media (max-width: 640px) {
    .buch-page[b-sjjt8z6pae] {
        padding: 16px 12px;
    }

    /* (2) Kopf gestapelt: Titel in eigener Zeile, darunter Monatswähler links und
       Format-Umschalter rechts. Einzeilig (wie früher) passt seit dem Umschalter
       nicht mehr – Titel + Monatswähler + zwei Format-Knöpfe sind breiter als ein
       Handy-Bildschirm, der Titel würde auf null gequetscht und übermalt. */
    .buch-top[b-sjjt8z6pae] {
        flex-wrap: wrap;
        align-items: flex-start;
        gap: 10px 12px;
        margin-bottom: 14px;
    }

    .buch-top__title[b-sjjt8z6pae] {
        min-width: 0;
        flex: 1 1 100%;
    }

    .buch-top__title h1[b-sjjt8z6pae] {
        font-size: 1.3rem;
    }

    .buch-top__tools[b-sjjt8z6pae] {
        flex: 1 1 100%;
        justify-content: space-between;
    }

    /* Der Monatswähler sitzt mobil LINKS – das Popover der Shared-Komponente ist
       rechts verankert und würde links aus dem Bildschirm ragen (erste Monats-
       Spalte abgeschnitten). Nur hier links verankern; die Komponente selbst und
       ihre anderen Einsatzstellen (Fleet, Werkzeug) bleiben unangetastet. */
    .buch-monthpick[b-sjjt8z6pae]  .myp-pop {
        right: auto;
        left: 0;
    }

    .buch-arrow[b-sjjt8z6pae] {
        width: 30px;
        height: 30px;
    }

    .buch-summary__month[b-sjjt8z6pae] {
        margin-right: 0;
    }

    /* (3) komplette Tabelle horizontal scrollen – Namensspalte nicht links fixieren
       (Kopfzeile bleibt oben sticky) */
    .buch-td-name[b-sjjt8z6pae] {
        position: static;
    }

    .buch-table thead th.buch-th-name[b-sjjt8z6pae] {
        left: auto;
    }

    /* (4) Summenleiste gestapelt als 2-Spalten-Raster */
    .buch-totals[b-sjjt8z6pae] {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .buch-totals__title[b-sjjt8z6pae] {
        margin-right: 0;
    }

    .buch-totals__grid[b-sjjt8z6pae] {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 12px 14px;
    }
}

/* -- Büro-Direktänderungen: klickbare Tageszeilen + Toolbar --------------- */

.buch-detail-toolbar[b-sjjt8z6pae] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 2px 8px;
}

.buch-detail-hint[b-sjjt8z6pae] {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--muted);
}

.buch-toolbar-btn[b-sjjt8z6pae] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--card);
    color: var(--ink);
    padding: 6px 12px;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease;
}

.buch-dayrow--clickable[b-sjjt8z6pae] {
    cursor: pointer;
}

.buch-dayedit[b-sjjt8z6pae] {
    text-align: right;
    white-space: nowrap;
}

.buch-dayedit-btn[b-sjjt8z6pae] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: #c2c6cc;
    cursor: pointer;
    transition: background .12s ease, color .12s ease;
}

.buch-dayedit-btn:focus-visible[b-sjjt8z6pae] {
    outline: 2px solid var(--ink);
    outline-offset: 1px;
    color: var(--ink);
}

@media (hover: hover) {
    .buch-toolbar-btn:hover[b-sjjt8z6pae] {
        background: var(--accent-soft);
    }

    .buch-dayrow--clickable:hover td[b-sjjt8z6pae] {
        background: #f0f0f3;
    }

    .buch-dayrow--clickable:hover .buch-dayedit-btn[b-sjjt8z6pae] {
        color: var(--ink);
    }

    .buch-dayedit-btn:hover[b-sjjt8z6pae] {
        background: #e4e4e7;
        color: var(--ink);
    }
}
/* /Components/Pages/Buchhaltung/BuchhaltungAbwesenheitModal.razor.rz.scp.css */
/* Abwesenheits-Modal (Urlaub/Krank über Zeitraum) – monochrome Optik wie /buchhaltung. */

.bam-head h2[b-tyoljrbw24] {
    margin: 3px 0 0;
    font-size: 1.14rem;
    font-weight: 800;
    color: #16181c;
}

.bam-kicker[b-tyoljrbw24] {
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    color: #80858d;
}

.bam-form[b-tyoljrbw24] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Segment-Umschalter: bestimmt, ob der Zeitraum eingetragen oder geräumt wird. */
.bam-modes[b-tyoljrbw24] {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #f5f5f7;
    align-self: flex-start;
}

.bam-mode[b-tyoljrbw24] {
    border: none;
    border-radius: 999px;
    background: transparent;
    color: #4b4f55;
    padding: 6px 16px;
    font-size: 0.85rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .12s ease, color .12s ease;
}

.bam-mode--active[b-tyoljrbw24] {
    background: #16181c;
    color: #fff;
}

.bam-mode:focus-visible[b-tyoljrbw24] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .16);
}

@media (hover: hover) {
    .bam-mode:not(.bam-mode--active):hover[b-tyoljrbw24] {
        background: #e4e4e7;
        color: #16181c;
    }
}

.bam-field[b-tyoljrbw24] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 0.8rem;
    font-weight: 700;
    color: #80858d;
    min-width: 0;
}

.bam-field textarea[b-tyoljrbw24] {
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 8px 11px;
    font: inherit;
    font-weight: 600;
    color: #16181c;
    background: #fff;
    resize: none;
    min-height: 56px;
}

.bam-field textarea:focus[b-tyoljrbw24] {
    outline: none;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

/* Pflichtfeld fehlt (nach Eintragen-Klick) – gleiche Optik wie field-input--error im Kontakt-Modal. */
.bam-field textarea.bam-input--error[b-tyoljrbw24] {
    border-color: #e2483b !important;
    background: #fbeae8 !important;
    box-shadow: 0 0 0 3px rgba(226, 72, 59, .16) !important;
}

.bam-banner[b-tyoljrbw24] {
    padding: 8px 12px;
    border: 1px solid #ecd9a8;
    border-radius: 10px;
    background: #fdf6e3;
    color: #8a6d1a;
    font-size: 0.84rem;
    font-weight: 600;
    line-height: 1.4;
}

.bam-range[b-tyoljrbw24] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.bam-halves[b-tyoljrbw24] {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.bam-check[b-tyoljrbw24] {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 0.86rem;
    font-weight: 600;
    color: #16181c;
    cursor: pointer;
}

.bam-check input[b-tyoljrbw24] {
    accent-color: #16181c;
}

/* „Was passiert"-Zeile: die eine Stelle, die vor dem Eintragen die Wirkung zusammenfasst –
   deshalb mit schwarzer Kante deutlich stärker als ein normaler Hinweis. */
.bam-preview[b-tyoljrbw24] {
    padding: 9px 12px;
    border-left: 3px solid #16181c;
    border-radius: 6px 11px 11px 6px;
    background: #efeff1;
    color: #16181c;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.45;
}

.bam-preview--problem[b-tyoljrbw24] {
    border-left-color: #b42318;
    background: #fbeae8;
    color: #b42318;
}

.bam-btn[b-tyoljrbw24] {
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    padding: 8px 16px;
    font-size: 0.86rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease;
}

.bam-btn:focus-visible[b-tyoljrbw24] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .16);
}

.bam-btn--primary[b-tyoljrbw24] {
    background: #16181c;
    border-color: #16181c;
    color: #fff;
}

.bam-btn--danger[b-tyoljrbw24] {
    background: #e2483b;
    border-color: #e2483b;
    color: #fff;
}

@media (hover: hover) {
    .bam-btn:hover[b-tyoljrbw24] {
        background: #efeff1;
    }

    .bam-btn--primary:hover[b-tyoljrbw24] {
        background: #26282e;
    }

    .bam-btn--danger:hover[b-tyoljrbw24] {
        background: #c93a2e;
    }
}

/* IconSelect-Trigger auf Formularbreite bringen (Standard-Muster: Wrapper + ::deep). */
.bam-selectwrap[b-tyoljrbw24]  .iconsel-trigger {
    width: 100%;
}

@media (max-width: 480px) {
    .bam-range[b-tyoljrbw24] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Buchhaltung/BuchhaltungTagModal.razor.rz.scp.css */
/* Tages-Detail-Modal der Buchhaltung – monochrome Optik. Aufbau: Übersicht in zwei ruhigen
   Gruppen, jede Aktion als eigener Schritt mit Kontextzeile („Bisher …" / „Wird entfernt …"),
   damit die Wirkung einer Änderung vor dem Speichern sichtbar ist. */

.btm-head h2[b-hqadk5ibtg] {
    margin: 3px 0 0;
    font-size: 1.18rem;
    font-weight: 800;
    color: #16181c;
}

.btm-kicker[b-hqadk5ibtg] {
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #80858d;
}

/* -- Hinweisbänder (kompakt, oberhalb des Inhalts) ------------------------ */

.btm-banner[b-hqadk5ibtg] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    padding: 8px 12px;
    border-radius: 10px;
    font-size: 0.84rem;
    font-weight: 600;
    line-height: 1.4;
}

/* Standard = neutraler Hinweis (Vormonat). Fehler laufen als Toast. */
.btm-banner[b-hqadk5ibtg] {
    border: 1px solid #ecd9a8;
    background: #fdf6e3;
    color: #8a6d1a;
}

/* Folgenschwere Aktion (laufender Block wird entfernt): deutlich kräftigeres Orange,
   damit sich die Warnung vom harmlosen Vormonats-Hinweis abhebt. */
.btm-banner--warn[b-hqadk5ibtg] {
    border-color: #f0c08f;
    background: #fdeedd;
    color: #b45309;
    font-weight: 700;
}

/* -- Übersicht: Gruppen ---------------------------------------------------- */

.btm-section + .btm-section[b-hqadk5ibtg] {
    margin-top: 20px;
}

.btm-section-head[b-hqadk5ibtg] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #80858d;
}

.btm-empty[b-hqadk5ibtg] {
    padding: 12px 14px;
    border: 1px dashed #e4e4e7;
    border-radius: 12px;
    color: #80858d;
    font-size: 0.9rem;
}

.btm-entries[b-hqadk5ibtg] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.btm-entry[b-hqadk5ibtg] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 14px;
    border: 1px solid #e4e4e7;
    border-radius: 13px;
    background: #fff;
}

/* Laufender Block: schwarze Kante links als „live"-Signal. */
.btm-entry--running[b-hqadk5ibtg] {
    border-left: 3px solid #16181c;
    padding-left: 12px;
}

.btm-entry-main[b-hqadk5ibtg] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.btm-entry-main strong[b-hqadk5ibtg] {
    font-size: 0.98rem;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.btm-entry-main small[b-hqadk5ibtg] {
    color: #80858d;
    font-size: 0.82rem;
}

.btm-entry-locked[b-hqadk5ibtg] {
    color: #b42318 !important;
    font-weight: 600;
}

.btm-entry-actions[b-hqadk5ibtg] {
    display: flex;
    gap: 6px;
    flex: 0 0 auto;
}

.btm-absences[b-hqadk5ibtg] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.btm-absence[b-hqadk5ibtg] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.btm-absence-chip[b-hqadk5ibtg] {
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 0.84rem;
    font-weight: 700;
    border: 1px solid #e4e4e7;
    background: #efeff1;
    color: #16181c;
}

.btm-absence-chip--frei[b-hqadk5ibtg] {
    background: #eef2fb;
    border-color: #cfd9ef;
    color: #2f4b8f;
}

.btm-absence-chip--sick[b-hqadk5ibtg] {
    background: #fbeae8;
    border-color: #f0c9c4;
    color: #b42318;
}

/* Eintragen-Buttons stehen unter den vorhandenen Chips, damit „was ist" und
   „was kann ich hinzufügen" nicht in einer Zeile vermischt werden. */
.btm-absence-add[b-hqadk5ibtg] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.btm-absences:empty[b-hqadk5ibtg] {
    display: none;
}

.btm-absences:empty + .btm-absence-add[b-hqadk5ibtg] {
    margin-top: 0;
}

/* -- Aktions-Schritte ------------------------------------------------------ */

.btm-form[b-hqadk5ibtg] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.btm-form-title[b-hqadk5ibtg] {
    font-size: 1rem;
    font-weight: 800;
    color: #16181c;
}

/* Kontextzeile: was liegt vor bzw. was verschwindet. */
.btm-context[b-hqadk5ibtg] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 9px 12px;
    border-radius: 11px;
    background: #efeff1;
}

.btm-context small[b-hqadk5ibtg] {
    flex: 0 0 auto;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #80858d;
}

.btm-context span[b-hqadk5ibtg] {
    font-size: 0.92rem;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.btm-context--danger[b-hqadk5ibtg] {
    background: #fbeae8;
}

.btm-context--danger small[b-hqadk5ibtg] {
    color: #b42318;
}

.btm-times[b-hqadk5ibtg] {
    display: flex;
    gap: 14px;
}

.btm-field[b-hqadk5ibtg] {
    display: flex;
    flex-direction: column;
    gap: 5px;
    font-size: 0.78rem;
    font-weight: 700;
    color: #80858d;
}

.btm-field--full[b-hqadk5ibtg] {
    width: 100%;
}

.btm-field textarea[b-hqadk5ibtg] {
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 8px 11px;
    font: inherit;
    font-weight: 600;
    color: #16181c;
    background: #fff;
    resize: none;
    min-height: 56px;
}

.btm-field textarea:focus[b-hqadk5ibtg] {
    outline: none;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

/* Pflichtfeld fehlt (nach Speichern-Klick) – gleiche Optik wie field-input--error im Kontakt-Modal. */
.btm-field textarea.btm-input--error[b-hqadk5ibtg] {
    border-color: #e2483b !important;
    background: #fbeae8 !important;
    box-shadow: 0 0 0 3px rgba(226, 72, 59, .16) !important;
}

.btm-hint[b-hqadk5ibtg] {
    padding: 8px 12px;
    border-radius: 11px;
    background: #f5f5f7;
    color: #4b4f55;
    font-size: 0.84rem;
    line-height: 1.45;
}

.btm-breaks-head[b-hqadk5ibtg] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
    font-size: 0.78rem;
    font-weight: 700;
    color: #80858d;
}

.btm-breaks-empty[b-hqadk5ibtg] {
    font-size: 0.84rem;
    color: #80858d;
}

.btm-break-row[b-hqadk5ibtg] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.btm-break-sep[b-hqadk5ibtg] {
    color: #80858d;
}

.btm-break-remove[b-hqadk5ibtg] {
    width: 28px;
    height: 28px;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #80858d;
    font-size: 0.95rem;
    line-height: 1;
    cursor: pointer;
}

/* -- Buttons -------------------------------------------------------------- */

.btm-btn[b-hqadk5ibtg] {
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    padding: 8px 16px;
    font-size: 0.86rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease, color .12s ease;
}

.btm-btn:disabled[b-hqadk5ibtg] {
    opacity: .45;
    cursor: not-allowed;
}

.btm-btn--ghost[b-hqadk5ibtg] {
    background: transparent;
}

.btm-btn--primary[b-hqadk5ibtg] {
    background: #16181c;
    border-color: #16181c;
    color: #fff;
}

.btm-btn--danger[b-hqadk5ibtg] {
    background: #e2483b;
    border-color: #e2483b;
    color: #fff;
}

.btm-btn--danger-ghost[b-hqadk5ibtg] {
    color: #b42318;
    border-color: #f0c9c4;
}

.btm-btn:focus-visible[b-hqadk5ibtg] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .16);
}

@media (hover: hover) {
    .btm-btn:not(:disabled):hover[b-hqadk5ibtg] {
        background: #efeff1;
    }

    .btm-btn--primary:not(:disabled):hover[b-hqadk5ibtg] {
        background: #26282e;
    }

    .btm-btn--danger:not(:disabled):hover[b-hqadk5ibtg] {
        background: #c93a2e;
    }

    .btm-btn--danger-ghost:not(:disabled):hover[b-hqadk5ibtg] {
        background: #fbeae8;
    }

    .btm-break-remove:hover[b-hqadk5ibtg] {
        background: #efeff1;
        color: #16181c;
    }
}

@media (max-width: 560px) {
    .btm-times[b-hqadk5ibtg] {
        flex-direction: column;
    }

    .btm-entry[b-hqadk5ibtg] {
        flex-direction: column;
        align-items: stretch;
    }

    .btm-entry-actions[b-hqadk5ibtg] {
        justify-content: flex-end;
    }
}
/* /Components/Pages/Buchhaltung/BuchhaltungTimePicker.razor.rz.scp.css */
/* Uhrzeit-Picker der Buchhaltung – monochrome Optik, Bedienung wie die Zeitliste
   des Termin-Pickers (scrollbare Liste, gewählter Wert schwarz). */

.btp[b-lzijl6585f] {
    position: relative;
    display: inline-flex;
}

.btp--disabled[b-lzijl6585f] {
    opacity: .5;
}

.btp-field[b-lzijl6585f] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 96px;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    background: #fff;
    color: #80858d;
    padding: 8px 12px;
    cursor: pointer;
    transition: border-color .12s ease, box-shadow .12s ease, background .12s ease;
}

.btp-field strong[b-lzijl6585f] {
    font-size: 0.95rem;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.btp-field--empty strong[b-lzijl6585f] {
    color: #80858d;
    font-weight: 600;
}

.btp-field:focus-visible[b-lzijl6585f] {
    outline: none;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

/* Pflichtfeld fehlt (nach Speichern-Klick) – gleiche Optik wie field-input--error im Kontakt-Modal. */
.btp-field--invalid[b-lzijl6585f] {
    border-color: #e2483b !important;
    background: #fbeae8 !important;
    box-shadow: 0 0 0 3px rgba(226, 72, 59, .16) !important;
}

@media (hover: hover) {
    .btp-field:not(:disabled):hover[b-lzijl6585f] {
        background: #efeff1;
    }
}

.btp-popup[b-lzijl6585f] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 40;
    width: 118px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .26), 0 6px 14px -10px rgba(0, 0, 0, .12);
    padding: 6px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.btp-list[b-lzijl6585f] {
    max-height: 216px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
    scrollbar-width: thin;
}

.btp-option[b-lzijl6585f] {
    flex: 0 0 auto;
    border: none;
    border-radius: 9px;
    background: transparent;
    color: #16181c;
    font-size: 0.9rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    padding: 6px 10px;
    cursor: pointer;
    text-align: center;
}

.btp-option--selected[b-lzijl6585f] {
    background: #16181c;
    color: #fff;
    font-weight: 700;
}

.btp-option:focus-visible[b-lzijl6585f] {
    outline: 2px solid #16181c;
    outline-offset: -2px;
}

@media (hover: hover) {
    .btp-option:not(.btp-option--selected):hover[b-lzijl6585f] {
        background: #efeff1;
    }
}

.btp-clear[b-lzijl6585f] {
    flex: 0 0 auto;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #16181c;
    font-size: 0.82rem;
    font-weight: 700;
    padding: 6px 10px;
    cursor: pointer;
}

@media (hover: hover) {
    .btp-clear:hover[b-lzijl6585f] {
        background: #efeff1;
    }
}
/* /Components/Pages/Calc/AbschnittPopover.razor.rz.scp.css */
/* Abschnitt-Popover (Punkt 27) — Karte wie das PDF-Menü der Seitenleiste (Radius, Schatten,
   Einblend-Animation), Felder wie die Dialog-Pillen (.lpe-menge-feld). */

.abp[b-295ooii5f4] {
    position: fixed;
    z-index: 301;
    max-width: calc(100vw - 16px);
    padding: 12px 14px 14px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    box-shadow: 0 24px 50px -20px rgba(0,0,0,.26), 0 6px 14px -10px rgba(0,0,0,.12);
    display: flex;
    flex-direction: column;
    gap: 6px;
    animation: abpIn-b-295ooii5f4 0.16s cubic-bezier(0.34, 1.3, 0.64, 1);
}

@keyframes abpIn-b-295ooii5f4 {
    from { opacity: 0; transform: translateY(-6px) scale(0.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    .abp[b-295ooii5f4] { animation: none; }
}

.abp-kopf[b-295ooii5f4] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    margin-bottom: 6px;
}

.abp-titel[b-295ooii5f4] {
    font-size: 14px;
    font-weight: 800;
    color: #16181c;
}

.abp-sub[b-295ooii5f4] {
    font-size: 11.5px;
    font-weight: 600;
    color: #80858d;
}

.abp-label[b-295ooii5f4] {
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #80858d;
}

/* -- Felder ------------------------------------------------------------- */
.abp-feld[b-295ooii5f4] {
    display: flex;
    align-items: center;
    padding: 0 12px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
}

.abp-feld:focus-within[b-295ooii5f4] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.abp-feld input[b-295ooii5f4] {
    width: 100%;
    padding: 8px 0;
    border: none;
    outline: none;
    background: transparent;
    font-family: inherit;
    font-size: 13.5px;
    font-weight: 750;
    color: #16181c;
}

.abp-feld input[b-295ooii5f4]::placeholder {
    color: #a3a8b0;
    font-weight: 600;
}

/* Fehlt etwas beim Klick auf „Anlegen": roter Rahmen, kein Text (Elias). Rot schlägt den Fokus. */
.abp-feld.abp-feld--fehler[b-295ooii5f4],
.abp-feld.abp-feld--fehler:focus-within[b-295ooii5f4] {
    border-color: #d92d20;
    box-shadow: 0 0 0 3px rgba(217, 45, 32, 0.14);
}

.abp-bereich[b-295ooii5f4] {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    margin-top: 4px;
}

.abp-bereich-feld[b-295ooii5f4] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1 1 0;
    min-width: 0;
}

.abp-feld--zahl[b-295ooii5f4] {
    padding: 0 8px;
}

.abp-feld--zahl input[b-295ooii5f4] {
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.abp-strich[b-295ooii5f4] {
    padding-bottom: 10px;
    font-size: 14px;
    font-weight: 700;
    color: #80858d;
}

.abp-leer[b-295ooii5f4] {
    margin: 4px 0 0;
    font-size: 11.5px;
    font-weight: 600;
    color: #8a8f98;
}

/* -- Knöpfe (Maße wie settings-btn, 32 px hoch fürs iPad) ---------------- */
.abp-aktionen[b-295ooii5f4] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 10px;
}

.abp-btn[b-295ooii5f4] {
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 750;
    cursor: pointer;
    touch-action: manipulation;
}

.abp-btn--ghost[b-295ooii5f4] {
    border: 1px solid #e4e4e7;
    background: #fff;
    color: #16181c;
}

.abp-btn--primary[b-295ooii5f4] {
    border: 1px solid #16181c;
    background: #16181c;
    color: #fff;
}

@media (hover: hover) {
    .abp-btn--ghost:hover[b-295ooii5f4] { border-color: #16181c; }
    .abp-btn--primary:hover[b-295ooii5f4] { background: #2a2d33; border-color: #2a2d33; }
}
/* /Components/Pages/Calc/ArbeitsanweisungModal.razor.rz.scp.css */
/* ---------------------------------------------------------------------------
   ArbeitsanweisungModal.razor.css
   --------------------------------------------------------------------------- */

/* -- Backdrop ---------------------------------------------------------------- */
.aa-backdrop[b-thr3zdzg3g] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 1100;
    animation: aa-fade-in-b-thr3zdzg3g 0.18s ease;
}

/* -- Shell ------------------------------------------------------------------- */
.aa-shell[b-thr3zdzg3g] {
    position: fixed;
    inset: 0;
    z-index: 1101;
    display: flex;
    flex-direction: column;
    background: #f5f5f7;
    animation: aa-slide-up-b-thr3zdzg3g 0.22s cubic-bezier(0.32, 0.72, 0, 1);
    overflow: hidden;
}

@media (min-width: 680px) {
    /* Zentrierung über inset+margin statt transform: ein persistentes transform würde
       die Karte zum Bezugsrahmen für position:fixed machen (IconSelect-Menü) und es
       zusammen mit overflow:hidden clippen. */
    .aa-shell[b-thr3zdzg3g] {
        inset: 0;
        margin: auto;
        width: min(96vw, 1120px);
        height: fit-content;
        max-height: min(94vh, 800px);
        border-radius: 16px;
        box-shadow: 0 24px 50px -20px rgba(0,0,0,.26), 0 6px 14px -10px rgba(0,0,0,.12);
        animation: aa-pop-in-b-thr3zdzg3g 0.24s cubic-bezier(0.32, 0.72, 0, 1);
    }
}

@keyframes aa-fade-in-b-thr3zdzg3g {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes aa-slide-up-b-thr3zdzg3g {
    from {
        transform: translateY(100%);
    }

    to {
        transform: translateY(0);
    }
}

@keyframes aa-pop-in-b-thr3zdzg3g {
    from {
        opacity: 0;
        transform: scale(0.97);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* -- Floating Close-Button · immer ganz oben rechts im Viewport -------------- */
.aa-close-floating[b-thr3zdzg3g] {
    position: fixed;
    top: 18px;
    right: 18px;
    z-index: 1200;
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1.5px solid rgba(255, 255, 255, 0.45);
    cursor: pointer;
    padding: 0;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: background 0.18s, border-color 0.18s, transform 0.15s;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.22);
}

    @media (hover: hover) {
        .aa-close-floating:hover[b-thr3zdzg3g] {
            background: rgba(226, 72, 59, 0.85);
            border-color: rgba(226, 72, 59, 0.6);
            color: white;
        }
    }

    .aa-close-floating:active[b-thr3zdzg3g] {
        transform: scale(0.94);
    }

/* -- Header (wie "Neue Position" modal-header) ------------------------------- */
.aa-header[b-thr3zdzg3g] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 20px 12px;
    background: white;
    border-bottom: 1px solid #e4e4e7;
    flex-shrink: 0;
}

.aa-header-icon[b-thr3zdzg3g] {
    width: 30px;
    height: 30px;
    background: #efeff1;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #16181c;
    flex-shrink: 0;
}

.aa-header-title[b-thr3zdzg3g] {
    font-size: 15px;
    font-weight: 700;
    color: #16181c;
    letter-spacing: -0.01em;
}

.aa-header-hint[b-thr3zdzg3g] {
    font-size: 11.5px;
    color: #80858d;
    margin-left: auto;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* -- Tabellen-Wrapper ------------------------------------------------------- */
.aa-table-scroll[b-thr3zdzg3g] {
    flex: 1;
    overflow: auto;
    min-height: 0;
}

/* -- Tabelle ---------------------------------------------------------------- */
.aa-table[b-thr3zdzg3g] {
    width: 100%;
    border-collapse: collapse;
    background: white;
    min-width: 400px;
}

/* -- Kopfzeile mit Checkboxen ----------------------------------------------- */
.aa-thead-checkrow th[b-thr3zdzg3g] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f5f5f7;
    border-bottom: 1.5px solid #e4e4e7;
    padding: 6px 6px;
    white-space: nowrap;
}

.aa-th-rowcheck[b-thr3zdzg3g] {
    width: 40px;
    text-align: center;
}

.aa-th-colcheck[b-thr3zdzg3g] {
    vertical-align: middle;
}

/* Spaltenbreiten passend zum Inhalt */
.aa-thc-pos[b-thr3zdzg3g] {
    width: 44px;
}

.aa-thc-erp[b-thr3zdzg3g] {
    width: 56px;
}

.aa-thc-desc[b-thr3zdzg3g] {
    min-width: 120px;
}

.aa-thc-qty[b-thr3zdzg3g] {
    width: 120px;
}

.aa-thc-matCost[b-thr3zdzg3g] {
    width: 90px;
}

.aa-thc-waste[b-thr3zdzg3g] {
    width: 76px;
}

.aa-thc-auxCost[b-thr3zdzg3g] {
    width: 84px;
}

.aa-thc-laborCost[b-thr3zdzg3g] {
    width: 84px;
}

.aa-thc-markup[b-thr3zdzg3g] {
    width: 76px;
}

.aa-thc-unitPrice[b-thr3zdzg3g] {
    width: 90px;
}

.aa-thc-profit[b-thr3zdzg3g] {
    width: 82px;
}

.aa-thc-total[b-thr3zdzg3g] {
    width: 90px;
    text-align: right;
}

/* Ausgegraut statt weggeklappt */
.aa-col--dim[b-thr3zdzg3g] {
    opacity: 0.28;
    pointer-events: none;
}

/* Checkbox-Zelle in Kopfzeile: Checkbox + Label übereinander */
.aa-col-check-cell[b-thr3zdzg3g] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
}

.aa-col-check-label[b-thr3zdzg3g] {
    font-size: 9.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #80858d;
    text-align: center;
}

/* -- Daten-Zeilen ----------------------------------------------------------- */
.aa-table tbody td[b-thr3zdzg3g] {
    border-bottom: 1px solid #efeff1;
    vertical-align: middle;
    padding: 0;
}

.aa-table tbody tr:last-child td[b-thr3zdzg3g] {
    border-bottom: none;
}

@media (hover: hover) {
    .aa-table tbody tr:hover td[b-thr3zdzg3g] {
        background: #f7f7f8;
    }
}

/* Ausgeblendete Zeilen */
.aa-row--hidden td[b-thr3zdzg3g] {
    opacity: 0.35;
}

.aa-row--hidden .aa-input[b-thr3zdzg3g] {
    background: transparent !important;
    color: #80858d !important;
}

/* -- Einheitliche Checkbox -------------------------------------------------- */
.aa-chk-label[b-thr3zdzg3g] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 6px;
}

    .aa-chk-label input[type="checkbox"][b-thr3zdzg3g] {
        display: none;
    }

.aa-chk-face[b-thr3zdzg3g] {
    width: 20px;
    height: 20px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.14s;
    flex-shrink: 0;
}

.aa-chk--on[b-thr3zdzg3g] {
    background: #16a34a;
    color: white;
}

.aa-chk--partial[b-thr3zdzg3g] {
    background: #a15c00;
    color: white;
}

.aa-chk--off[b-thr3zdzg3g] {
    background: #e4e4e7;
    color: #e2483b;
}

/* Zeilen-Checkbox-Zellen */
.aa-td-rowcheck[b-thr3zdzg3g] {
    width: 40px;
    text-align: center;
    padding: 0 !important;
}

/* -- Datenzellen ------------------------------------------------------------ */
.aa-td-pos[b-thr3zdzg3g] {
    width: 52px;
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    color: #80858d;
    padding: 0 4px !important;
}

.aa-td-erp[b-thr3zdzg3g] {
    width: 64px;
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    color: #80858d;
    padding: 0 4px !important;
}

.aa-td-desc[b-thr3zdzg3g] {
    padding: 3px 4px !important;
}

.aa-td-qty[b-thr3zdzg3g] {
    width: 130px;
}

.aa-td-price[b-thr3zdzg3g] {
    width: 110px;
}

.aa-td-total[b-thr3zdzg3g] {
    width: 100px;
    text-align: right;
    padding: 0 8px !important;
    font-size: 12px;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.aa-td-total--dim[b-thr3zdzg3g] {
    opacity: 0.35;
}

/* -- Inputs ----------------------------------------------------------------- */
.aa-input[b-thr3zdzg3g] {
    border: 1px solid transparent;
    padding: 7px 7px;
    border-radius: 6px;
    font-family: inherit;
    font-size: 12.5px;
    background: transparent;
    color: #16181c;
    width: 100%;
    box-sizing: border-box;
    -webkit-appearance: none;
    transition: border-color 0.14s, background 0.14s;
}

    .aa-input:focus[b-thr3zdzg3g] {
        border-color: #16181c;
        background: #efeff1;
        outline: none;
    }

    .aa-input:disabled[b-thr3zdzg3g] {
        cursor: not-allowed;
        color: #80858d;
    }

.aa-input--desc[b-thr3zdzg3g] {
    min-width: 120px;
}

.aa-input--num[b-thr3zdzg3g] {
    text-align: right;
    width: 70px;
    font-variant-numeric: tabular-nums;
}

/* Mengen-Zelle */
.aa-qty-wrap[b-thr3zdzg3g] {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 2px 4px 2px 2px;
}

/* Einheit je Zeile: kompakter IconSelect (Optik = iconsel--compact) */
.aa-qty-wrap[b-thr3zdzg3g]  .iconsel {
    width: 64px;
    flex: 0 0 auto;
}

/* -- Footer ------------------------------------------------------------------ */
.aa-footer[b-thr3zdzg3g] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 14px 20px;
    background: white;
    border-top: 1px solid #e4e4e7;
    flex-shrink: 0;
}

.aa-btn-preview[b-thr3zdzg3g] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 11px 22px;
    border-radius: 999px;
    border: none;
    background: #16181c;
    color: white;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s, transform 0.1s;
    box-shadow: 0 6px 18px -12px rgba(0,0,0,.22);
}

    @media (hover: hover) {
        .aa-btn-preview:hover[b-thr3zdzg3g] {
            background: #26282e;
            transform: translateY(-1px);
        }
    }

    .aa-btn-preview:active[b-thr3zdzg3g] {
        transform: translateY(0);
    }

    .aa-btn-preview:disabled[b-thr3zdzg3g] {
        background: #c6c9ce;
        box-shadow: none;
        cursor: not-allowed;
        transform: none;
    }

/* -- Lade-Spinner ------------------------------------------------------------ */
.aa-spinner[b-thr3zdzg3g] {
    width: 15px;
    height: 15px;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: white;
    border-radius: 50%;
    animation: aa-spin-b-thr3zdzg3g 0.7s linear infinite;
    flex-shrink: 0;
}

@keyframes aa-spin-b-thr3zdzg3g {
    to {
        transform: rotate(360deg);
    }
}

.aa-td-num[b-thr3zdzg3g] {
    width: 90px;
    padding: 2px 4px !important;
}

/* -- NumPad Overlay ----------------------------------------------------------- */
.aa-np-overlay[b-thr3zdzg3g] {
    position: fixed;
    inset: 0;
    z-index: 1300;
}

/* NumPad Popup über dem Modal */
.aa-np-popup[b-thr3zdzg3g] {
    z-index: 1301 !important;
}

/* Numpad side-modal */
.numpad-modal[b-thr3zdzg3g] {
    position: fixed;
    right: calc(50% + 320px + 12px); /* rechts neben modal-window (max-width 640px · Hälfte 320px) */
    background: white;
    border-radius: 16px;
    box-shadow: 0 24px 50px -20px rgba(0,0,0,.26), 0 6px 14px -10px rgba(0,0,0,.12);
    width: 220px;
    height: 288px;
    overflow: hidden;
    z-index: 1301;
}

/* -- Mobile ------------------------------------------------------------------ */
@media (max-width: 679px) {
    .aa-header-hint[b-thr3zdzg3g] {
        display: none;
    }

    .aa-close-floating[b-thr3zdzg3g] {
        top: 12px;
        right: 12px;
    }
}


/* Schmale Scrollleiste — Werte 1:1 aus dem Aufmaß (.am-tree & Co.) */
.aa-table-scroll[b-thr3zdzg3g] {
    scrollbar-width: thin;                 /* Firefox */
    scrollbar-color: #c6c9ce transparent;  /* Daumen · Spur */
}

.aa-table-scroll[b-thr3zdzg3g]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.aa-table-scroll[b-thr3zdzg3g]::-webkit-scrollbar-track {
    background: transparent;
}

.aa-table-scroll[b-thr3zdzg3g]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .aa-table-scroll[b-thr3zdzg3g]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}
/* /Components/Pages/Calc/Aufmass.razor.rz.scp.css */
/* ---------------------------------------------------------------------------
   Aufmass.razor.css · Komplett-Redesign (monochrom)
   Struktur-Baum (Bereiche/Etagen) · Raum-Editor · persistentes Numpad-Dock
   --------------------------------------------------------------------------- */

.am-root[b-z5ejr1h3p4] {
    box-sizing: border-box;
    height: calc(100dvh - var(--app-header-h));
    background: #f5f5f7;
    padding: 12px;
    overflow: hidden;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #16181c;
}

/* -- Grundlayout: Struktur | Editor | Dock ---------------------------------- */
.am-layout[b-z5ejr1h3p4] {
    height: 100%;
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr) 300px;
    grid-template-areas: "struktur main dock";
    gap: 12px;
}

.am-layout--dock-left[b-z5ejr1h3p4] {
    grid-template-columns: 300px minmax(0, 1fr) 280px;
    grid-template-areas: "dock main struktur";
}

.am-card[b-z5ejr1h3p4] {
    background: white;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0,0,0,.22);
}

/* -- Leerzustand ------------------------------------------------------------ */
.am-empty-page[b-z5ejr1h3p4] {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: #80858d;
}

/* ===========================================================================
   STRUKTUR-KARTE
   =========================================================================== */
.am-struktur[b-z5ejr1h3p4] {
    grid-area: struktur;
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow: hidden;
    min-height: 0;
}

.am-struktur-top[b-z5ejr1h3p4] {
    flex-shrink: 0;
}

.am-struktur-baum[b-z5ejr1h3p4] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.am-struktur-header[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 10px;
    flex-shrink: 0;
}

.am-struktur-title[b-z5ejr1h3p4] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.am-struktur-title-main[b-z5ejr1h3p4] {
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.am-struktur-title-sub[b-z5ejr1h3p4] {
    font-size: 11px;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.am-struktur-actions[b-z5ejr1h3p4] {
    display: flex;
    gap: 6px;
    padding: 0 10px 10px;
    flex-shrink: 0;
}

.am-uebersicht-btn[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 10px;
    padding: 9px 11px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: white;
    color: #16181c;
    font: inherit;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.14s;
    flex-shrink: 0;
}
.am-uebersicht-btn--on[b-z5ejr1h3p4] {
    background: #16181c;
    border-color: #16181c;
    color: white;
}
.am-uebersicht-sum[b-z5ejr1h3p4] {
    margin-left: auto;
    font-size: 11px;
    font-weight: 700;
    color: #80858d;
    font-variant-numeric: tabular-nums;
}

.am-uebersicht-btn--on .am-uebersicht-sum[b-z5ejr1h3p4] {
    color: rgba(255, 255, 255, 0.65);
}

/* -- Baum-Suche --------------------------------------------------------------- */
.am-tree-search[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 10px 10px 0;
    padding: 0 10px;
    height: 34px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #f5f5f7;
    color: #80858d;
    flex-shrink: 0;
}

    .am-tree-search:focus-within[b-z5ejr1h3p4] {
        border-color: #16181c;
        background: white;
    }

    .am-tree-search input[b-z5ejr1h3p4] {
        flex: 1;
        min-width: 0;
        border: none;
        background: none;
        font: inherit;
        font-size: 12.5px;
        font-weight: 600;
        color: #16181c;
        outline: none;
    }

        .am-tree-search input[b-z5ejr1h3p4]::placeholder {
            color: #80858d;
            font-weight: 500;
        }

.am-tree-search-clear[b-z5ejr1h3p4] {
    width: 20px;
    height: 20px;
    border: none;
    border-radius: 999px;
    background: #e4e4e7;
    color: #3c4148;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
}

/* -- Baum -------------------------------------------------------------------- */
/* -- Schmale, dezente Scrollbars für alle Scroll-Bereiche (wie /bahnen) ------- */

.am-tree[b-z5ejr1h3p4],
.am-editor-scroll[b-z5ejr1h3p4],
.am-ueb-scroll[b-z5ejr1h3p4],
.am-dock[b-z5ejr1h3p4],
.am-quelle-list[b-z5ejr1h3p4] {
    scrollbar-width: thin;                 /* Firefox */
    scrollbar-color: #c6c9ce transparent;  /* Daumen · Spur (Spur = Hintergrund darunter) */
}

.am-tree[b-z5ejr1h3p4]::-webkit-scrollbar,
.am-editor-scroll[b-z5ejr1h3p4]::-webkit-scrollbar,
.am-ueb-scroll[b-z5ejr1h3p4]::-webkit-scrollbar,
.am-dock[b-z5ejr1h3p4]::-webkit-scrollbar,
.am-quelle-list[b-z5ejr1h3p4]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.am-tree[b-z5ejr1h3p4]::-webkit-scrollbar-track,
.am-editor-scroll[b-z5ejr1h3p4]::-webkit-scrollbar-track,
.am-ueb-scroll[b-z5ejr1h3p4]::-webkit-scrollbar-track,
.am-dock[b-z5ejr1h3p4]::-webkit-scrollbar-track,
.am-quelle-list[b-z5ejr1h3p4]::-webkit-scrollbar-track {
    background: transparent;
}

.am-tree[b-z5ejr1h3p4]::-webkit-scrollbar-thumb,
.am-editor-scroll[b-z5ejr1h3p4]::-webkit-scrollbar-thumb,
.am-ueb-scroll[b-z5ejr1h3p4]::-webkit-scrollbar-thumb,
.am-dock[b-z5ejr1h3p4]::-webkit-scrollbar-thumb,
.am-quelle-list[b-z5ejr1h3p4]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .am-tree[b-z5ejr1h3p4]::-webkit-scrollbar-thumb:hover,
    .am-editor-scroll[b-z5ejr1h3p4]::-webkit-scrollbar-thumb:hover,
    .am-ueb-scroll[b-z5ejr1h3p4]::-webkit-scrollbar-thumb:hover,
    .am-dock[b-z5ejr1h3p4]::-webkit-scrollbar-thumb:hover,
    .am-quelle-list[b-z5ejr1h3p4]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

.am-tree[b-z5ejr1h3p4] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    padding: 8px 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.am-tree-group-label[b-z5ejr1h3p4] {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #80858d;
    padding: 8px 4px 4px;
}

.am-tree-bereich[b-z5ejr1h3p4] {
    margin-top: 6px;
}

/* Räume innerhalb eines Bereichs eine Ebene einrücken (inkl. Drag-Grip);
   Breite mitkürzen, damit kein horizontaler Scrollbalken entsteht */
.am-tree-bereich .am-tree-raum[b-z5ejr1h3p4] {
    margin-left: 18px;
    width: calc(100% - 18px);
}

.am-tree-bereich .am-tree-empty[b-z5ejr1h3p4] {
    padding-left: 44px;
}

.am-tree-bereich-row[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 2px 0;
}

.am-tree-collapse[b-z5ejr1h3p4] {
    width: 24px;
    height: 28px;
    border: none;
    background: none;
    color: #80858d;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
}

    .am-tree-collapse svg[b-z5ejr1h3p4] {
        transition: transform 0.15s;
    }

.am-chev-open[b-z5ejr1h3p4] {
    transform: rotate(90deg);
}

.am-tree-bereich-name[b-z5ejr1h3p4] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 6px;
    border: none;
    background: none;
    font: inherit;
    font-size: 12.5px;
    font-weight: 800;
    color: #16181c;
    cursor: pointer;
    text-align: left;
    padding: 4px 2px;
    white-space: nowrap;
    overflow: hidden;
}

.am-tree-bereich-meta[b-z5ejr1h3p4] {
    font-size: 10.5px;
    font-weight: 600;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.am-tree-mini[b-z5ejr1h3p4] {
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 7px;
    background: none;
    color: #80858d;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.13s, color 0.13s;
}
/* Mini-Aktionen auf der aktiven (schwarzen) Raum-Zeile */
.am-tree-mini--onblack[b-z5ejr1h3p4] {
    color: rgba(255, 255, 255, 0.65);
    margin-right: 2px;
}
.am-tree-raum[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 36px;
    border-radius: 10px;
    color: #16181c;
    transition: background 0.13s;
}
.am-tree-drag[b-z5ejr1h3p4] {
    width: 26px;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9aa0a8;
    cursor: grab;
    touch-action: none;
    flex-shrink: 0;
}

    /* Punkte deutlicher sichtbar (Inline-Größe wird von CSS überschrieben) */
    .am-tree-drag svg[b-z5ejr1h3p4] {
        width: 17px;
        height: 17px;
    }

    .am-tree-drag:active[b-z5ejr1h3p4] {
        cursor: grabbing;
    }

.am-tree-raum--active .am-tree-drag[b-z5ejr1h3p4] {
    color: rgba(255, 255, 255, 0.5);
}

.am-tree-raum-btn[b-z5ejr1h3p4] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    border: none;
    background: none;
    color: inherit;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    text-align: left;
    padding: 6px 10px 6px 0;
}

/* Raum mit ungültigem Ansatz: rote Markierung im Baum */
.am-tree-raum--error[b-z5ejr1h3p4] {
    box-shadow: inset 0 0 0 1.5px #e2483b;
}

/* Eingeklappter Bereich mit ungültigen Räumen: rote Markierung */
.am-tree-bereich-row--error[b-z5ejr1h3p4] {
    box-shadow: inset 0 0 0 1.5px #e2483b;
    border-radius: 10px;
}

/* Drop-Ziel-Markierung beim Ziehen eines Raums */
.am-drop-over[b-z5ejr1h3p4] {
    background: #efeff1 !important;
    outline: 1.5px dashed #16181c;
    outline-offset: -1px;
    border-radius: 8px;
}

/* Einfüge-Marker beim Umsortieren (obere/untere Hälfte der Ziel-Zeile) */
.am-drop-before[b-z5ejr1h3p4] {
    box-shadow: inset 0 2.5px 0 0 #16181c;
}

.am-drop-after[b-z5ejr1h3p4] {
    box-shadow: inset 0 -2.5px 0 0 #16181c;
}

.am-tree-raum--active[b-z5ejr1h3p4] {
    background: #16181c;
    color: white;
}
.am-tree-raum-name[b-z5ejr1h3p4] {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.am-tree-raum-badge[b-z5ejr1h3p4] {
    font-size: 10.5px;
    font-weight: 700;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
}

.am-tree-raum--active .am-tree-raum-badge[b-z5ejr1h3p4] {
    color: rgba(255, 255, 255, 0.7);
}

.am-tree-empty[b-z5ejr1h3p4] {
    font-size: 11.5px;
    color: #80858d;
    padding: 4px 10px 6px 26px;
}

.am-tree-empty--big[b-z5ejr1h3p4] {
    padding: 24px 12px;
    text-align: center;
    line-height: 1.6;
}

/* ===========================================================================
   BUTTONS / GEMEINSAM
   =========================================================================== */
.am-btn[b-z5ejr1h3p4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: white;
    color: #16181c;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.14s, color 0.14s, border-color 0.14s;
    touch-action: manipulation;
}
.am-btn--primary[b-z5ejr1h3p4] {
    background: #16181c;
    border-color: #16181c;
    color: white;
}
.am-btn--danger[b-z5ejr1h3p4] {
    background: #e2483b;
    border-color: #e2483b;
    color: white;
}
    .am-btn--danger:disabled[b-z5ejr1h3p4] {
        background: #c6c9ce;
        border-color: #c6c9ce;
        cursor: not-allowed;
        filter: none;
    }

.am-btn--grow[b-z5ejr1h3p4] {
    flex: 1;
}

.am-icon-btn[b-z5ejr1h3p4] {
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: white;
    color: #3c4148;
    cursor: pointer;
    padding: 0;
    transition: background 0.14s, color 0.14s, border-color 0.14s;
    touch-action: manipulation;
}
.am-icon-btn--on[b-z5ejr1h3p4] {
    background: #16181c !important;
    border-color: #16181c !important;
    color: white !important;
}

.am-chip-btn[b-z5ejr1h3p4] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 28px;
    padding: 0 11px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: white;
    color: #16181c;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.13s;
    flex-shrink: 0;
}
.am-chip-btn--primary[b-z5ejr1h3p4] {
    background: #16181c;
    border-color: #16181c;
    color: white;
}
.am-preset-chip[b-z5ejr1h3p4] {
    display: inline-flex;
    align-items: center;
    height: 26px;
    padding: 0 10px;
    border: none;
    border-radius: 999px;
    background: #efeff1;
    color: #16181c;
    font: inherit;
    font-size: 11.5px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.13s, color 0.13s;
}

/* Stift zum Bearbeiten der Schnell-Vorlagen */
.am-preset-edit[b-z5ejr1h3p4] {
    width: 26px;
    height: 26px;
    border: none;
    border-radius: 999px;
    background: none;
    color: #80858d;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.13s, color 0.13s;
}

/* Zeile im Vorlagen-Editor-Modal */
.am-preset-edit-row[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

    .am-preset-edit-row .am-text-input[b-z5ejr1h3p4] {
        flex: 1;
        min-width: 0;
    }

/* Raum-Quelle-Picker im Neuer-Raum-Modal („Maße übernehmen von …") */
.am-quelle-head[b-z5ejr1h3p4] {
    margin-top: 16px;
    margin-bottom: 8px;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #80858d;
}

    .am-quelle-head span[b-z5ejr1h3p4] {
        font-weight: 600;
        text-transform: none;
        letter-spacing: 0;
    }

.am-quelle-list[b-z5ejr1h3p4] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 230px;
    overflow-y: auto;
    padding-right: 2px;
}

.am-quelle-sep[b-z5ejr1h3p4] {
    font-size: 10.5px;
    font-weight: 700;
    color: #a2a6ad;
    padding: 6px 2px 2px;
}

.am-quelle-card[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    text-align: left;
    padding: 9px 12px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: white;
    cursor: pointer;
    transition: border-color 0.13s, background 0.13s;
}

.am-quelle-card--offen[b-z5ejr1h3p4] {
    border-color: #d4d4d8;
    background: #fafafa;
}

.am-quelle-card--on[b-z5ejr1h3p4] {
    border-color: #16181c;
    background: #16181c;
    color: white;
}

.am-quelle-check[b-z5ejr1h3p4] {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    border-radius: 999px;
    border: 1.5px solid #d4d4d8;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #16181c;
}

.am-quelle-card--on .am-quelle-check[b-z5ejr1h3p4] {
    background: white;
    border-color: white;
}

.am-quelle-body[b-z5ejr1h3p4] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.am-quelle-name[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.am-quelle-tag[b-z5ejr1h3p4] {
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 2px 6px;
    border-radius: 999px;
    background: #efeff1;
    color: #80858d;
}

.am-quelle-card--on .am-quelle-tag[b-z5ejr1h3p4] {
    background: rgba(255, 255, 255, 0.2);
    color: white;
}

.am-quelle-meta[b-z5ejr1h3p4] {
    font-size: 11.5px;
    font-weight: 600;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.am-quelle-card--on .am-quelle-meta[b-z5ejr1h3p4] {
    color: rgba(255, 255, 255, 0.7);
}
/* ===========================================================================
   HAUPTBEREICH / RAUM-EDITOR
   =========================================================================== */
.am-main[b-z5ejr1h3p4] {
    grid-area: main;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.am-select-hint[b-z5ejr1h3p4] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: #80858d;
    text-align: center;
    padding: 24px;
}

    .am-select-hint svg[b-z5ejr1h3p4] {
        color: #c6c9ce;
    }

.am-editor-scroll[b-z5ejr1h3p4] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-bottom: 2px;
}

/* -- Messkarten ---------------------------------------------------------------- */
.am-mess-card[b-z5ejr1h3p4] {
    flex-shrink: 0;
}

.am-mess-head[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 14px;
    border-bottom: 1px solid #efeff1;
}

.am-mess-title[b-z5ejr1h3p4] {
    font-size: 13px;
    font-weight: 800;
}

.am-mess-total[b-z5ejr1h3p4] {
    flex: 1;
    font-size: 13px;
    font-weight: 800;
    color: #80858d;
    font-variant-numeric: tabular-nums;
}

.am-mess-presets[b-z5ejr1h3p4] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 10px 14px 0;
}

.am-mess-body[b-z5ejr1h3p4] {
    padding: 10px 14px 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.am-empty-add[b-z5ejr1h3p4] {
    border: 1.5px dashed #e4e4e7;
    border-radius: 10px;
    background: none;
    color: #80858d;
    font: inherit;
    font-size: 12.5px;
    font-weight: 700;
    padding: 12px;
    cursor: pointer;
    transition: border-color 0.14s, color 0.14s, background 0.14s;
}
.am-notiz[b-z5ejr1h3p4] {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #f5f5f7;
    padding: 9px 11px;
    font: inherit;
    font-size: 13px;
    color: #16181c;
    resize: vertical;
    min-height: 44px;
}

    .am-notiz:focus[b-z5ejr1h3p4] {
        outline: none;
        border-color: #16181c;
        background: white;
    }

    .am-notiz[b-z5ejr1h3p4]::placeholder {
        color: #80858d;
    }

/* -- Eingabe-Zeilen -------------------------------------------------------------- */
.am-row[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    gap: 7px;
}

.am-sign[b-z5ejr1h3p4] {
    height: 34px;
    width: 34px;
    display: grid;
    place-items: center;
    border: none;
    border-radius: 10px;
    background: #efeff1;
    color: #80858d;
    font: inherit;
    font-size: 18px;
    font-weight: 800;
    line-height: 0;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.13s, color 0.13s;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}
.am-sign--minus[b-z5ejr1h3p4] {
    background: #fbeae8;
    color: #e2483b;
}
.am-field[b-z5ejr1h3p4] {
    height: 42px;
    width: 104px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    padding: 0 10px;
    font: inherit;
    font-size: 15px;
    font-weight: 700;
    color: #16181c;
    background: white;
    text-align: right;
    font-variant-numeric: tabular-nums;
    box-sizing: border-box;
    cursor: pointer;
    -webkit-appearance: none;
    transition: border-color 0.13s, box-shadow 0.13s;
}

    .am-field[b-z5ejr1h3p4]::placeholder {
        color: #c6c9ce;
        font-size: 12px;
        font-weight: 600;
    }

    .am-field:focus[b-z5ejr1h3p4] {
        outline: none;
    }

.am-field--active[b-z5ejr1h3p4] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.am-field--formel[b-z5ejr1h3p4] {
    min-width: 0;
    text-align: left;
}

/* Ungültiger Ansatz (nur im Ruhezustand — während der Eingabe nicht nörgeln) */
.am-field--error[b-z5ejr1h3p4] {
    border-color: #e2483b;
    background: #fbeae8;
}

.am-result[b-z5ejr1h3p4] {
    min-width: 92px;
    text-align: right;
    font-size: 14px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    margin-left: auto;
}

.am-result--minus[b-z5ejr1h3p4] {
    color: #e2483b;
}

/* Formel (noch) nicht auswertbar — z. B. offene Klammer während des Tippens */
.am-result--invalid[b-z5ejr1h3p4] {
    color: #c6c9ce;
}

.am-del[b-z5ejr1h3p4] {
    width: 32px;
    height: 32px;
    border: none;
    border-radius: 8px;
    background: none;
    color: #c6c9ce;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.13s, color 0.13s;
}
/* Sonstiges: Formel-Feld linksbündig (Breite über den Wrapper: Titel 30 / Formel 70) */
.am-field--stueckformel[b-z5ejr1h3p4] {
    text-align: left;
}

.am-result--stueck[b-z5ejr1h3p4] {
    min-width: 48px;
    margin-left: 0;
    color: #16181c;
}

/* -- Feld mit innenliegendem Label („Formel", „Titel", „Einheit") ---------------- */
.am-fieldwrap[b-z5ejr1h3p4] {
    position: relative;
    flex-shrink: 0;
}

.am-fieldwrap--grow[b-z5ejr1h3p4] {
    flex: 1;
    min-width: 0;
}

.am-fieldwrap--titel[b-z5ejr1h3p4] {
    flex: 3;
    min-width: 0;
}

.am-fieldwrap--formel7[b-z5ejr1h3p4] {
    flex: 7;
    min-width: 0;
}

    .am-fieldwrap input[b-z5ejr1h3p4] {
        width: 100%;
    }

.am-fieldlabel[b-z5ejr1h3p4] {
    position: absolute;
    top: 7px;
    left: 12px;
    font-size: 8.5px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #a2a6ad;
    pointer-events: none;
    z-index: 1;
    line-height: 1;
}

/* Felder mit Label: höher + Text nach unten versetzt */
.am-fieldwrap .am-field[b-z5ejr1h3p4],
.am-fieldwrap .am-label-input[b-z5ejr1h3p4] {
    height: 52px;
    padding-top: 16px;
}

.am-label-input[b-z5ejr1h3p4] {
    flex: 1;
    min-width: 0;
    height: 42px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    padding: 0 12px;
    font: inherit;
    font-size: 13.5px;
    font-weight: 600;
    color: #16181c;
    background: white;
    box-sizing: border-box;
}

    .am-label-input[b-z5ejr1h3p4]::placeholder {
        color: #c6c9ce;
    }

    .am-label-input:focus[b-z5ejr1h3p4] {
        outline: none;
        border-color: #16181c;
        box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
    }

/* Einheit-Auswahl: Shared IconSelect, kompakt eingepasst (Label liegt über dem Trigger) */
.am-unitwrap[b-z5ejr1h3p4] {
    position: relative;
    width: 84px;
    flex-shrink: 0;
}

    .am-unitwrap .am-fieldlabel[b-z5ejr1h3p4] {
        left: 12px;
    }

    .am-unitwrap[b-z5ejr1h3p4]  .iconsel-trigger {
        min-height: 52px;
        padding: 16px 9px 0 12px;
        gap: 4px;
        border-radius: 10px;
        background: white;
        font-size: 12.5px;
        font-weight: 700;
    }

    .am-unitwrap--plain[b-z5ejr1h3p4]  .iconsel-trigger {
        min-height: 42px;
        padding: 0 9px 0 12px;
    }

/* -- Rechteck-Turbo ------------------------------------------------------------- */
.am-turbo[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1.5px dashed #16181c;
    border-radius: 10px;
    background: #efeff1;
    color: #16181c;
    font: inherit;
    font-size: 12.5px;
    font-weight: 600;
    padding: 10px 12px;
    cursor: pointer;
    text-align: left;
    transition: background 0.14s, border-style 0.14s;
}
    .am-turbo b[b-z5ejr1h3p4] {
        font-weight: 800;
    }

/* -- Summen-Leiste ---------------------------------------------------------------- */
.am-sumbar[b-z5ejr1h3p4] {
    display: flex;
    align-items: stretch;
    padding: 8px 6px;
    flex-shrink: 0;
    overflow-x: auto;
    scrollbar-width: none;
}

    .am-sumbar[b-z5ejr1h3p4]::-webkit-scrollbar {
        display: none;
    }

.am-sum-block[b-z5ejr1h3p4] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 2px 14px;
    flex-shrink: 0;
}

.am-sum-label[b-z5ejr1h3p4] {
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #80858d;
    white-space: nowrap;
}

.am-sum-val[b-z5ejr1h3p4] {
    font-size: 13px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.am-sum-block--total[b-z5ejr1h3p4] {
    background: #16181c;
    border-radius: 10px;
    color: white;
    margin-left: auto;
    padding: 6px 14px;
}

    .am-sum-block--total .am-sum-label[b-z5ejr1h3p4] {
        color: rgba(255, 255, 255, 0.6);
    }

.am-sum-sep[b-z5ejr1h3p4] {
    width: 1px;
    background: #e4e4e7;
    margin: 4px 0;
    flex-shrink: 0;
}

/* ===========================================================================
   ÜBERSICHT
   =========================================================================== */
.am-uebersicht[b-z5ejr1h3p4] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.am-ueb-header[b-z5ejr1h3p4] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 14px 16px;
    border-bottom: 1px solid #efeff1;
    flex-shrink: 0;
}

.am-ueb-title[b-z5ejr1h3p4] {
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 18px;
    font-weight: 700;
}

.am-ueb-meta[b-z5ejr1h3p4] {
    font-size: 12px;
    font-weight: 600;
    color: #80858d;
}

.am-ueb-scroll[b-z5ejr1h3p4] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.am-ueb-table[b-z5ejr1h3p4] {
    width: 100%;
    border-collapse: collapse;
}

    .am-ueb-table th[b-z5ejr1h3p4] {
        position: sticky;
        top: 0;
        background: #f5f5f7;
        color: #80858d;
        font-size: 10px;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: 0.06em;
        text-align: left;
        padding: 8px 16px;
        border-bottom: 1.5px solid #e4e4e7;
        z-index: 1;
    }

    .am-ueb-table td[b-z5ejr1h3p4] {
        padding: 9px 16px;
        border-bottom: 1px solid #efeff1;
        font-size: 13px;
    }

.am-ueb-num[b-z5ejr1h3p4] {
    text-align: right !important;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.am-ueb-row[b-z5ejr1h3p4] {
    cursor: pointer;
    transition: background 0.12s;
}
.am-ueb-name[b-z5ejr1h3p4] {
    font-weight: 600;
}

.am-ueb-group td[b-z5ejr1h3p4] {
    background: #f5f5f7;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #16181c;
    padding: 7px 16px;
}

.am-ueb-subtotal td[b-z5ejr1h3p4] {
    font-weight: 800;
    font-size: 12.5px;
    color: #16181c;
    background: #fafafa;
}

.am-ueb-table tfoot td[b-z5ejr1h3p4] {
    font-weight: 800;
    font-size: 13.5px;
    background: #16181c;
    color: white;
    border-bottom: none;
    position: sticky;
    bottom: 0;
}

/* ===========================================================================
   NUMPAD-DOCK
   =========================================================================== */
.am-dock[b-z5ejr1h3p4] {
    grid-area: dock;
    display: flex;
    flex-direction: column;
    padding: 12px;
    gap: 10px;
    align-self: start;
    max-height: 100%;
    overflow-y: auto;
}

.am-dock-grip[b-z5ejr1h3p4] {
    cursor: grab;
    touch-action: none;
}

    .am-dock-grip:active[b-z5ejr1h3p4] {
        cursor: grabbing;
    }

.am-dock--idle .am-dock-grid[b-z5ejr1h3p4] {
    opacity: 0.45;
    pointer-events: none;
}

.am-dock-head-btns[b-z5ejr1h3p4] {
    display: flex;
    gap: 4px;
}

.am-dock-head[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.am-dock-label[b-z5ejr1h3p4] {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #80858d;
}

.am-dock-display[b-z5ejr1h3p4] {
    min-height: 46px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #f5f5f7;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 6px 12px;
    font-size: 19px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    word-break: break-all;
    text-align: right;
    line-height: 1.2;
    box-sizing: border-box;
}

/* Anklickbare Ziffern/Zeichen in der Dock-Anzeige (Marke setzen) */
.am-dock-ch[b-z5ejr1h3p4] {
    display: inline-block;
    padding: 3px 1px;
    cursor: text;
    -webkit-tap-highlight-color: transparent;
}

/* Leerraum links der Formel = Marke an den Anfang */
.am-dock-slot[b-z5ejr1h3p4] {
    flex: 1 1 auto;
    align-self: stretch;
    cursor: text;
}

.am-dock-placeholder[b-z5ejr1h3p4] {
    color: #c6c9ce;
}

/* Live-Ergebnis unter der Dock-Anzeige */
.am-dock-live[b-z5ejr1h3p4] {
    text-align: right;
    font-size: 12px;
    font-weight: 700;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    margin-top: -4px;
    padding-right: 2px;
}

.am-dock-live--invalid[b-z5ejr1h3p4] {
    color: #e2483b;
}

/* Einfügemarke in der Dock-Anzeige */
.am-dock-caret[b-z5ejr1h3p4] {
    display: inline-block;
    width: 2px;
    height: 1.05em;
    margin: 0;
    background: #16181c;
    vertical-align: -0.12em;
    animation: am-caret-blink-b-z5ejr1h3p4 1.1s steps(1) infinite;
}

@keyframes am-caret-blink-b-z5ejr1h3p4 {
    50% { opacity: 0; }
}

.am-dock-grid[b-z5ejr1h3p4] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 5px;
    transition: opacity 0.15s;
}

.am-key[b-z5ejr1h3p4] {
    height: 50px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: white;
    color: #16181c;
    font: inherit;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
    padding: 0;
    transition: background 0.1s;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}
    .am-key:active[b-z5ejr1h3p4] {
        background: #e4e4e7;
    }

.am-key--fn[b-z5ejr1h3p4] {
    background: #efeff1;
    font-size: 16px;
}

.am-key--weiter[b-z5ejr1h3p4] {
    grid-column: span 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    background: #16181c;
    border-color: #16181c;
    color: white;
    font-size: 14px;
    font-weight: 800;
}

    .am-key--weiter:active[b-z5ejr1h3p4] {
        background: #26282e;
    }
    /* „gesperrte" Taste: nur optisch ausgegraut, aber KLICKBAR bleiben — sonst gehen
       Tipps auf noch-nicht-freigeschaltete Buttons (Server-Roundtrip-Latenz) verloren.
       FieldKey verwirft ungültige Tasten serverseitig. */
    .am-key--off[b-z5ejr1h3p4] {
        opacity: 0.35;
    }

/* ===========================================================================
   PDF-MENÜ + PREVIEW (monochrom)
   =========================================================================== */
.pdf-menu-backdrop[b-z5ejr1h3p4] {
    position: fixed;
    inset: 0;
    z-index: 300;
}

.pdf-menu-popover[b-z5ejr1h3p4] {
    position: fixed;
    z-index: 301;
    background: white;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 24px 50px -20px rgba(0,0,0,.26), 0 6px 14px -10px rgba(0,0,0,.12);
    min-width: 230px;
    overflow: hidden;
    padding: 6px;
}

.pdf-menu-item[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 44px;
    padding: 9px 10px;
    background: none;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    transition: background 0.13s;
}
.pdf-menu-icon[b-z5ejr1h3p4] {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #efeff1;
    color: #16181c;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.13s, color 0.13s;
}
.pdf-menu-text[b-z5ejr1h3p4] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.pdf-menu-label[b-z5ejr1h3p4] {
    font-size: 13.5px;
    font-weight: 700;
    color: #16181c;
    line-height: 1.2;
}

.pdf-menu-desc[b-z5ejr1h3p4] {
    font-size: 11px;
    color: #80858d;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pdf-menu-divider[b-z5ejr1h3p4] {
    height: 1px;
    background: #efeff1;
    margin: 2px 10px;
}

/* Die PDF-Vorschau läuft über die Shared-Komponente AppLightbox. */

/* ===========================================================================
   MODALS
   =========================================================================== */
.am-modal-backdrop[b-z5ejr1h3p4] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 16px;
}

.am-modal[b-z5ejr1h3p4] {
    width: 100%;
    max-width: 420px;
    background: white;
    border-radius: 16px;
    box-shadow: 0 24px 50px -20px rgba(0,0,0,.26), 0 6px 14px -10px rgba(0,0,0,.12);
    overflow: hidden;
}

.am-modal-head[b-z5ejr1h3p4] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 15px 18px 12px;
    font-size: 15px;
    font-weight: 800;
    border-bottom: 1px solid #efeff1;
}

/* -- Lösch-Karte (wie ProjectSetup) ---------------------------------------- */
.am-delete-card[b-z5ejr1h3p4] {
    position: relative;
    width: min(420px, 100%);
    overflow: hidden;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    background: white;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
}

.am-delete-header[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 18px 20px;
    border-bottom: 1px solid #e4e4e7;
}

.am-delete-icon[b-z5ejr1h3p4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    border-radius: 10px;
    background: #fbeae8;
    color: #e2483b;
}

.am-delete-header h2[b-z5ejr1h3p4] {
    margin: 0;
    color: #16181c;
    font-size: 16px;
    font-weight: 800;
}

.am-delete-body[b-z5ejr1h3p4] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 20px;
}

.am-delete-subject[b-z5ejr1h3p4] {
    margin: 0;
    color: #16181c;
    font-size: 15px;
    font-weight: 800;
    word-break: break-word;
}

.am-delete-cascade[b-z5ejr1h3p4] {
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #f0d9a8;
    border-radius: 11px;
    background: #fdf6e8;
    color: #8a5a00;
    font-size: 12.5px;
    font-weight: 650;
    line-height: 1.4;
}

.am-delete-timer[b-z5ejr1h3p4] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 4px 0 2px;
}

.am-delete-ring[b-z5ejr1h3p4] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: conic-gradient(#16181c calc(var(--pct, 0) * 1%), #efeff1 0);
}

    .am-delete-ring[b-z5ejr1h3p4]::before {
        content: "";
        position: absolute;
        inset: 5px;
        border-radius: 50%;
        background: white;
    }

    .am-delete-ring span[b-z5ejr1h3p4] {
        position: relative;
        color: #16181c;
        font-size: 20px;
        font-weight: 800;
        font-variant-numeric: tabular-nums;
    }

.am-delete-hint[b-z5ejr1h3p4] {
    color: #80858d;
    font-size: 13px;
    font-weight: 650;
}

.am-delete-actions[b-z5ejr1h3p4] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 20px;
    border-top: 1px solid #e4e4e7;
    background: #f5f5f7;
}

.am-modal-head-sub[b-z5ejr1h3p4] {
    font-size: 11.5px;
    font-weight: 600;
    color: #80858d;
}

.am-modal-body[b-z5ejr1h3p4] {
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.am-modal-hint[b-z5ejr1h3p4] {
    margin: 0;
    font-size: 12px;
    color: #80858d;
}

.am-modal-chips[b-z5ejr1h3p4] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.am-modal-foot[b-z5ejr1h3p4] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 18px 16px;
}

.am-text-input[b-z5ejr1h3p4] {
    height: 42px;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 0 12px;
    font: inherit;
    font-size: 14px;
    color: #16181c;
    background: white;
    box-sizing: border-box;
    width: 100%;
}

    .am-text-input[b-z5ejr1h3p4]::placeholder {
        color: #80858d;
    }

    .am-text-input:focus[b-z5ejr1h3p4] {
        outline: none;
        border-color: #16181c;
        box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
    }

.am-dup-row[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 13.5px;
    font-weight: 600;
}

.am-dup-stepper[b-z5ejr1h3p4] {
    display: flex;
    align-items: center;
    gap: 10px;
}

    .am-dup-stepper .am-btn[b-z5ejr1h3p4] {
        width: 38px;
        padding: 0;
    }

.am-dup-count[b-z5ejr1h3p4] {
    min-width: 32px;
    text-align: center;
    font-size: 17px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

/* ===========================================================================
   RESPONSIVE
   =========================================================================== */
@media (max-width: 1180px) {
    .am-layout[b-z5ejr1h3p4] {
        grid-template-columns: 240px minmax(0, 1fr) 260px;
    }

    .am-layout--dock-left[b-z5ejr1h3p4] {
        grid-template-columns: 260px minmax(0, 1fr) 240px;
    }
}

/* Tablet hochkant / Handy: Struktur oben, Dock unten fixiert */
@media (max-width: 899px) {
    .am-root[b-z5ejr1h3p4] {
        overflow-y: auto;
        height: auto;
        min-height: calc(100dvh - var(--app-header-h));
        padding-bottom: 300px; /* Platz für das fixierte Dock */
    }

    .am-layout[b-z5ejr1h3p4],
    .am-layout--dock-left[b-z5ejr1h3p4] {
        display: flex;
        flex-direction: column;
        height: auto;
    }

    .am-struktur[b-z5ejr1h3p4] {
        max-height: 300px;
    }

    .am-main[b-z5ejr1h3p4] {
        overflow: visible;
    }

    .am-editor-scroll[b-z5ejr1h3p4] {
        overflow: visible;
    }

    .am-dock[b-z5ejr1h3p4] {
        position: fixed;
        left: 12px;
        right: 12px;
        bottom: 12px;
        z-index: 500;
        max-height: none;
        align-self: auto;
        transform: none !important; /* Drag-Offset gilt nur im Desktop-Layout */
        box-shadow: 0 8px 24px -12px rgba(0,0,0,.25), 0 1px 2px rgba(0,0,0,.04);
    }

    .am-dock-grip[b-z5ejr1h3p4] {
        display: none;
    }

    .am-key[b-z5ejr1h3p4] {
        height: 46px;
    }

    .am-dock-display[b-z5ejr1h3p4] {
        min-height: 40px;
        font-size: 17px;
    }
}

/* ===========================================================================
   HOVER — nur auf echten Hover-Geraeten (verhindert Sticky-Hover auf iOS/Touch)
   =========================================================================== */
@media (hover: hover) {
    .am-uebersicht-btn:hover[b-z5ejr1h3p4] {
            background: #efeff1;
        }

    .am-uebersicht-btn--on:hover[b-z5ejr1h3p4] {
            background: #26282e;
        }

    .am-tree-mini:hover[b-z5ejr1h3p4] {
            background: #efeff1;
            color: #16181c;
        }

    .am-tree-mini--danger:hover[b-z5ejr1h3p4] {
        background: #fbeae8;
        color: #e2483b;
    }

    .am-tree-mini--onblack:hover[b-z5ejr1h3p4] {
            background: rgba(255, 255, 255, 0.18);
            color: white;
        }

    .am-tree-mini--onblack-danger:hover[b-z5ejr1h3p4] {
        background: rgba(226, 72, 59, 0.85);
        color: white;
    }

    .am-tree-raum:hover[b-z5ejr1h3p4] {
            background: #efeff1;
        }

    .am-tree-raum--active:hover[b-z5ejr1h3p4] {
            background: #26282e;
        }

    .am-btn:hover[b-z5ejr1h3p4] {
            background: #efeff1;
        }

    .am-btn--primary:hover[b-z5ejr1h3p4] {
            background: #26282e;
        }

    .am-btn--danger:hover[b-z5ejr1h3p4] {
            filter: brightness(0.95);
        }

    .am-icon-btn:hover[b-z5ejr1h3p4] {
            background: #efeff1;
            color: #16181c;
        }

    .am-chip-btn:hover[b-z5ejr1h3p4] {
            background: #efeff1;
        }

    .am-chip-btn--primary:hover[b-z5ejr1h3p4] {
            background: #26282e;
        }

    .am-preset-chip:hover[b-z5ejr1h3p4] {
            background: #16181c;
            color: white;
        }

    .am-preset-edit:hover[b-z5ejr1h3p4] {
        background: #efeff1;
        color: #16181c;
    }

    .am-empty-add:hover[b-z5ejr1h3p4] {
            border-color: #16181c;
            color: #16181c;
            background: #f7f7f8;
        }

    .am-sign:hover[b-z5ejr1h3p4] {
            background: #16181c;
            color: white;
        }

    .am-sign--minus:hover[b-z5ejr1h3p4] {
            background: #e2483b;
            color: white;
        }

    .am-del:hover[b-z5ejr1h3p4] {
            background: #fbeae8;
            color: #e2483b;
        }

    .am-turbo:hover[b-z5ejr1h3p4] {
            background: #e4e4e7;
            border-style: solid;
        }

    .am-ueb-row:hover td[b-z5ejr1h3p4] {
            background: #f7f7f8;
        }

    .am-key:hover[b-z5ejr1h3p4] {
            background: #efeff1;
        }

    .am-key--weiter:hover[b-z5ejr1h3p4] {
            background: #26282e;
        }

    .pdf-menu-item:hover[b-z5ejr1h3p4] {
            background: #efeff1;
        }

    .pdf-menu-item:hover .pdf-menu-icon[b-z5ejr1h3p4] {
        background: #16181c;
        color: white;
    }

    .am-quelle-card:hover[b-z5ejr1h3p4] {
        border-color: #c6c9ce;
        background: #f7f7f8;
    }

    .am-quelle-card--on:hover[b-z5ejr1h3p4] {
        border-color: #16181c;
        background: #26282e;
    }
}
/* /Components/Pages/Calc/AufmassMengePicker.razor.rz.scp.css */
/* --------------------------------------------------------------
   AufmassMengePicker · Scoped Component Styles
   Monochrom (neues Design): Header schwarz wie das Positions-Modal,
   Hover grau, Auswahl/Summe schwarz — Struktur analog zu den
   Material-/Lohn-Pickern.
-------------------------------------------------------------- */

.amp-panel[b-fpf4n1k5o8] {
    display: flex;
    flex-direction: column;
    height: 100%;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    border-radius: 16px;
    overflow: hidden;
    position: relative;
    width: 100%;
}

/* -- Header --------------------------------------------------- */
.amp-header[b-fpf4n1k5o8] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px 13px;
    background: #16181c;
    flex-shrink: 0;
}

.amp-header-icon[b-fpf4n1k5o8] {
    /* Nacktes Icon — kein Kasten (gilt im ganzen Wizard und in allen Pickern) */
    width: 20px;
    height: 20px;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.amp-header-title-group[b-fpf4n1k5o8] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1;
    min-width: 0;
}

.amp-header-label[b-fpf4n1k5o8] {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.amp-header-title[b-fpf4n1k5o8] {
    font-size: 13px;
    font-weight: 700;
    color: white;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.amp-back-btn[b-fpf4n1k5o8] {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: transparent;
    border: none;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.15s;
}

    @media (hover: hover) {
        .amp-back-btn:hover[b-fpf4n1k5o8] {
            background: rgba(255, 255, 255, 0.14);
        }
    }

.amp-unit-badge[b-fpf4n1k5o8] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    padding: 3px 9px;
    border-radius: 20px;
    flex-shrink: 0;
    white-space: nowrap;
    background: #efeff1;
    color: #16181c;
}

/* Badge im (schwarzen) Header: weiß, damit sie sich abhebt */
.amp-header .amp-unit-badge[b-fpf4n1k5o8] {
    background: white;
}

/* -- Hint Bar ------------------------------------------------- */
.amp-hint-bar[b-fpf4n1k5o8] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    background: #f5f5f7;
    border-bottom: 1px solid #e4e4e7;
    font-size: 11px;
    color: #80858d;
    flex-shrink: 0;
}

    .amp-hint-bar strong[b-fpf4n1k5o8] {
        color: #16181c;
        font-weight: 700;
    }

    .amp-hint-bar svg[b-fpf4n1k5o8] {
        color: #80858d;
        flex-shrink: 0;
    }

/* -- Scroll Container ----------------------------------------- */
.amp-scroll[b-fpf4n1k5o8] {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    background: white;
}

/* -- Empty State ---------------------------------------------- */
.amp-empty[b-fpf4n1k5o8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 36px 20px;
    color: #80858d;
    text-align: center;
}

    .amp-empty svg[b-fpf4n1k5o8] {
        color: #c0c3c9;
    }

    .amp-empty p[b-fpf4n1k5o8] {
        margin: 0;
        font-size: 13px;
        font-weight: 500;
    }

/* -- Aufmaß Row (Stage 0) ------------------------------------- */
.amp-aufmass-row[b-fpf4n1k5o8] {
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    padding: 11px 14px;
    background: none;
    border: none;
    border-bottom: 1px solid #f2f2f4;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    transition: background 0.14s;
}

    .amp-aufmass-row:last-child[b-fpf4n1k5o8] {
        border-bottom: none;
    }

    @media (hover: hover) {
        .amp-aufmass-row:hover[b-fpf4n1k5o8] {
            background: #efeff1;
        }
    }

.amp-aufmass-row-icon[b-fpf4n1k5o8] {
    width: 22px;
    height: 22px;
    color: #3c4148;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.amp-aufmass-row-body[b-fpf4n1k5o8] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.amp-aufmass-row-title[b-fpf4n1k5o8] {
    font-size: 13px;
    font-weight: 700;
    color: #16181c;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.amp-aufmass-row-meta[b-fpf4n1k5o8] {
    font-size: 11px;
    color: #80858d;
    font-weight: 500;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.amp-chevron[b-fpf4n1k5o8] {
    color: #c0c3c9;
    flex-shrink: 0;
}

/* -- Modus-Auswahl Rows (Stage 1) ----------------------------- */
.amp-mode-row[b-fpf4n1k5o8] {
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    padding: 11px 14px;
    background: none;
    border: none;
    border-bottom: 1px solid #f2f2f4;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    transition: background 0.14s;
}

    .amp-mode-row:last-child[b-fpf4n1k5o8] {
        border-bottom: none;
    }

    @media (hover: hover) {
        .amp-mode-row:hover:not(:disabled)[b-fpf4n1k5o8] {
            background: #efeff1;
        }
    }

    .amp-mode-row:disabled[b-fpf4n1k5o8],
    .amp-mode-row--disabled[b-fpf4n1k5o8] {
        opacity: 0.38;
        cursor: not-allowed;
    }

.amp-mode-row-icon[b-fpf4n1k5o8] {
    width: 22px;
    height: 22px;
    color: #3c4148;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.amp-mode-row-body[b-fpf4n1k5o8] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.amp-mode-row-title[b-fpf4n1k5o8] {
    font-size: 13px;
    font-weight: 700;
    color: #16181c;
}

.amp-mode-row-meta[b-fpf4n1k5o8] {
    font-size: 11px;
    color: #80858d;
    font-weight: 500;
}

/* -- Room Row (Stage 2 · Fläche/Umfang) ---------------------- */
.amp-room-row[b-fpf4n1k5o8] {
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    padding: 11px 14px;
    background: none;
    border: none;
    border-bottom: 1px solid #f2f2f4;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    transition: background 0.14s;
}

    .amp-room-row:last-child[b-fpf4n1k5o8] {
        border-bottom: none;
    }

    @media (hover: hover) {
        .amp-room-row:hover:not(.amp-room-row--selected)[b-fpf4n1k5o8] {
            background: #efeff1;
        }
    }

.amp-room-row--selected[b-fpf4n1k5o8] {
    background: #efeff1;
}

    @media (hover: hover) {
        .amp-room-row--selected:hover[b-fpf4n1k5o8] {
            background: #e7e7ea;
        }
    }

.amp-room-row--zero[b-fpf4n1k5o8] {
    opacity: 0.45;
}

.amp-room-check[b-fpf4n1k5o8] {
    width: 20px;
    height: 20px;
    border-radius: 6px;
    border: 1.5px solid #c0c3c9;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.14s, border-color 0.14s;
    color: white;
}

.amp-room-row--selected .amp-room-check[b-fpf4n1k5o8] {
    background: #16181c;
    border-color: #16181c;
}

.amp-room-body[b-fpf4n1k5o8] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    flex: 1;
    min-width: 0;
}

.amp-room-name[b-fpf4n1k5o8] {
    font-size: 13px;
    font-weight: 700;
    color: #16181c;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.amp-room-metrics[b-fpf4n1k5o8] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
}

.amp-metric[b-fpf4n1k5o8] {
    font-size: 11px;
    color: #80858d;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    transition: color 0.14s, font-weight 0.14s;
}

.amp-metric--active[b-fpf4n1k5o8] {
    color: #16181c;
    font-weight: 700;
}

.amp-metric-sep[b-fpf4n1k5o8] {
    font-size: 11px;
    color: #c0c3c9;
}

.amp-room-selected-val[b-fpf4n1k5o8] {
    font-size: 12px;
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
    white-space: nowrap;
}

/* -- Sonstiges-Eintrags-Rows (Stage 2 · Sonstiges) ----------- */
.amp-stueck-row[b-fpf4n1k5o8] {
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    padding: 11px 14px;
    background: none;
    border: none;
    border-bottom: 1px solid #f2f2f4;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    transition: background 0.14s;
}

    .amp-stueck-row:last-child[b-fpf4n1k5o8] {
        border-bottom: none;
    }

    @media (hover: hover) {
        .amp-stueck-row:hover:not(.amp-stueck-row--selected)[b-fpf4n1k5o8] {
            background: #efeff1;
        }
    }

.amp-stueck-row--selected[b-fpf4n1k5o8] {
    background: #efeff1;
}

    @media (hover: hover) {
        .amp-stueck-row--selected:hover[b-fpf4n1k5o8] {
            background: #e7e7ea;
        }
    }

/* Radio-style check circle */
.amp-stueck-check[b-fpf4n1k5o8] {
    width: 20px;
    height: 20px;
    border-radius: 10px;
    border: 1.5px solid #c0c3c9;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.14s, border-color 0.14s;
    color: white;
}

.amp-stueck-row--selected .amp-stueck-check[b-fpf4n1k5o8] {
    background: #16181c;
    border-color: #16181c;
}

.amp-stueck-body[b-fpf4n1k5o8] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.amp-stueck-raum[b-fpf4n1k5o8] {
    font-size: 10px;
    font-weight: 600;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}

.amp-stueck-label[b-fpf4n1k5o8] {
    font-size: 13px;
    font-weight: 700;
    color: #16181c;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.amp-stueck-badge[b-fpf4n1k5o8] {
    display: flex;
    align-items: baseline;
    gap: 3px;
    flex-shrink: 0;
    background: #efeff1;
    border-radius: 20px;
    padding: 3px 9px;
}

.amp-stueck-badge-num[b-fpf4n1k5o8] {
    font-size: 14px;
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.01em;
}

.amp-stueck-badge-unit[b-fpf4n1k5o8] {
    font-size: 11px;
    font-weight: 600;
    color: #80858d;
}

/* -- Bereichs-Gruppierung (Etagen) --------------------------------------- */
.amp-group-row[b-fpf4n1k5o8] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px 4px;
}

.amp-group-name[b-fpf4n1k5o8] {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.amp-group-sum[b-fpf4n1k5o8] {
    margin-left: auto;
    font-size: 10.5px;
    font-weight: 700;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.amp-group-all[b-fpf4n1k5o8] {
    height: 22px;
    padding: 0 10px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: white;
    color: #16181c;
    font: inherit;
    font-size: 10.5px;
    font-weight: 800;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.13s, color 0.13s;
}

    @media (hover: hover) {
        .amp-group-all:hover[b-fpf4n1k5o8] {
            background: #16181c;
            border-color: #16181c;
            color: white;
        }
    }

/* -- Summen-Leiste --------------------------------------------
   Leer: neutral grau · mit Auswahl: schwarz (aktiv = schwarz,
   wie der Modal-Header) */
.amp-sum-bar[b-fpf4n1k5o8] {
    padding: 11px 14px;
    border-top: 1px solid #e4e4e7;
    flex-shrink: 0;
    transition: background 0.2s;
}

.amp-sum-bar--empty[b-fpf4n1k5o8] {
    background: #f5f5f7;
}

.amp-sum-bar--active[b-fpf4n1k5o8] {
    background: #16181c;
    border-top-color: #16181c;
}

.amp-sum-hint[b-fpf4n1k5o8] {
    font-size: 11px;
    color: #80858d;
    font-weight: 500;
    display: block;
    text-align: center;
}

.amp-sum-content[b-fpf4n1k5o8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

/* Inhalt existiert nur bei aktiver (schwarzer) Leiste → weiß */
.amp-sum-left[b-fpf4n1k5o8] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.8);
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

    .amp-sum-left svg[b-fpf4n1k5o8] {
        flex-shrink: 0;
    }

.amp-sum-value[b-fpf4n1k5o8] {
    display: flex;
    align-items: baseline;
    gap: 3px;
    flex-shrink: 0;
}

.amp-sum-number[b-fpf4n1k5o8] {
    font-size: 18px;
    font-weight: 800;
    color: white;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}

.amp-sum-unit[b-fpf4n1k5o8] {
    font-size: 12px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.65);
}


/* Schmale Scrollleiste — Werte 1:1 aus dem Aufmaß (.am-tree & Co.) */
.amp-scroll[b-fpf4n1k5o8] {
    scrollbar-width: thin;                 /* Firefox */
    scrollbar-color: #c6c9ce transparent;  /* Daumen · Spur */
}

.amp-scroll[b-fpf4n1k5o8]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.amp-scroll[b-fpf4n1k5o8]::-webkit-scrollbar-track {
    background: transparent;
}

.amp-scroll[b-fpf4n1k5o8]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .amp-scroll[b-fpf4n1k5o8]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

/* Fußzeile leer: Brotkrume der Schritte — der aktuelle in Tinte, Chevron-SVGs dazwischen
   (gleiche Werte in allen vier Pickern) */
.amp-crumb[b-fpf4n1k5o8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    max-width: 100%;
    min-width: 0;
    font-size: 11px;
    font-weight: 600;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
}

.amp-crumb-step[b-fpf4n1k5o8] {
    overflow: hidden;
    text-overflow: ellipsis;
}

.amp-crumb-step--on[b-fpf4n1k5o8] {
    color: #16181c;
    font-weight: 700;
}

.amp-crumb-chev[b-fpf4n1k5o8] {
    flex: none;
    color: #c0c3c9;
}
/* /Components/Pages/Calc/Bahnen.razor.rz.scp.css */
/* ===========================================================================
   /bahnen — Bahnen-Rechner (Zuschnittoptimierung), monochromes Design wie /aufmass
   =========================================================================== */

.bp-root[b-2b2hxjyrt2] {
    height: calc(100dvh - var(--app-header-h));
    background: #f5f5f7;
    padding: 12px;
    overflow: hidden;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #16181c;
}

.bp-layout[b-2b2hxjyrt2] {
    height: 100%;
    display: grid;
    grid-template-columns: 400px minmax(0, 1fr) 216px;
    grid-template-areas: "side main dock";
    gap: 12px;
}

.bp-card[b-2b2hxjyrt2] {
    background: white;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

/* -- Schmale, dezente Scrollbars für alle Scroll-Bereiche der Seite ---------- */

.bp-side-scroll[b-2b2hxjyrt2],
.bp-main-scroll[b-2b2hxjyrt2],
.bp-plan-chips[b-2b2hxjyrt2],
.bp-table-scroll[b-2b2hxjyrt2],
.bp-dock[b-2b2hxjyrt2],
.bp-modal-body[b-2b2hxjyrt2] {
    scrollbar-width: thin;                 /* Firefox */
    scrollbar-color: #c6c9ce transparent;  /* Daumen · Spur (Spur = Hintergrund darunter) */
}

.bp-side-scroll[b-2b2hxjyrt2]::-webkit-scrollbar,
.bp-main-scroll[b-2b2hxjyrt2]::-webkit-scrollbar,
.bp-plan-chips[b-2b2hxjyrt2]::-webkit-scrollbar,
.bp-table-scroll[b-2b2hxjyrt2]::-webkit-scrollbar,
.bp-dock[b-2b2hxjyrt2]::-webkit-scrollbar,
.bp-modal-body[b-2b2hxjyrt2]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.bp-side-scroll[b-2b2hxjyrt2]::-webkit-scrollbar-track,
.bp-main-scroll[b-2b2hxjyrt2]::-webkit-scrollbar-track,
.bp-plan-chips[b-2b2hxjyrt2]::-webkit-scrollbar-track,
.bp-table-scroll[b-2b2hxjyrt2]::-webkit-scrollbar-track,
.bp-dock[b-2b2hxjyrt2]::-webkit-scrollbar-track,
.bp-modal-body[b-2b2hxjyrt2]::-webkit-scrollbar-track {
    background: transparent;
}

.bp-side-scroll[b-2b2hxjyrt2]::-webkit-scrollbar-thumb,
.bp-main-scroll[b-2b2hxjyrt2]::-webkit-scrollbar-thumb,
.bp-plan-chips[b-2b2hxjyrt2]::-webkit-scrollbar-thumb,
.bp-table-scroll[b-2b2hxjyrt2]::-webkit-scrollbar-thumb,
.bp-dock[b-2b2hxjyrt2]::-webkit-scrollbar-thumb,
.bp-modal-body[b-2b2hxjyrt2]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .bp-side-scroll[b-2b2hxjyrt2]::-webkit-scrollbar-thumb:hover,
    .bp-main-scroll[b-2b2hxjyrt2]::-webkit-scrollbar-thumb:hover,
    .bp-plan-chips[b-2b2hxjyrt2]::-webkit-scrollbar-thumb:hover,
    .bp-table-scroll[b-2b2hxjyrt2]::-webkit-scrollbar-thumb:hover,
    .bp-dock[b-2b2hxjyrt2]::-webkit-scrollbar-thumb:hover,
    .bp-modal-body[b-2b2hxjyrt2]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

/* -- Eingabe-Spalte -------------------------------------------------------- */

.bp-side[b-2b2hxjyrt2] {
    grid-area: side;
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.bp-side-scroll[b-2b2hxjyrt2] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-bottom: 2px;
}

.bp-head[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    flex-shrink: 0;
}

.bp-head-title[b-2b2hxjyrt2] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.bp-head-main[b-2b2hxjyrt2] {
    font-size: 15px;
    font-weight: 800;
}

.bp-head-sub[b-2b2hxjyrt2] {
    font-size: 11px;
    font-weight: 600;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bp-icon-btn[b-2b2hxjyrt2] {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: white;
    color: #3c4148;
    cursor: pointer;
    transition: background .14s, color .14s;
    touch-action: manipulation;
}

.bp-icon-btn:disabled[b-2b2hxjyrt2] {
    opacity: .4;
    cursor: default;
}

/* -- Plan-Leiste ------------------------------------------------------------ */

.bp-planbar[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    flex-shrink: 0;
}

.bp-plan-chips[b-2b2hxjyrt2] {
    flex: 1;
    min-width: 0;
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding-bottom: 4px; /* Luft zwischen Chips und Scrollbar */
    -webkit-overflow-scrolling: touch;
}

.bp-plan-chip[b-2b2hxjyrt2] {
    height: 30px;
    padding: 0 12px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: white;
    color: #16181c;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: background .14s, color .14s, border-color .14s;
    touch-action: manipulation;
}

.bp-plan-chip--on[b-2b2hxjyrt2] {
    background: #16181c;
    border-color: #16181c;
    color: white;
}

.bp-plan-chip--new[b-2b2hxjyrt2] {
    border-style: dashed;
    color: #80858d;
}

.bp-plan-actions[b-2b2hxjyrt2] {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}

.bp-mini[b-2b2hxjyrt2] {
    width: 28px;
    height: 28px;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: #80858d;
    cursor: pointer;
    transition: background .14s, color .14s;
    touch-action: manipulation;
}

/* Trefferflächen kleiner Icon-Buttons unsichtbar auf >= 40px vergrößern (Touch) */
.bp-mini[b-2b2hxjyrt2]::after,
.bp-del[b-2b2hxjyrt2]::after,
.bp-seam[b-2b2hxjyrt2]::after {
    content: "";
    position: absolute;
    inset: -6px;
}

/* -- Karten: Rollen / Bahnen / Einstellungen -------------------------------- */

.bp-mess-card[b-2b2hxjyrt2] {
    flex-shrink: 0;
}

.bp-mess-head[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px 10px;
}

.bp-mess-title[b-2b2hxjyrt2] {
    font-size: 14px;
    font-weight: 800;
}

.bp-mess-total[b-2b2hxjyrt2] {
    font-size: 12px;
    font-weight: 700;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    margin-right: auto;
}

.bp-chip-btn[b-2b2hxjyrt2] {
    height: 28px;
    padding: 0 11px;
    display: inline-flex;
    align-items: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: white;
    color: #16181c;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: background .14s, color .14s;
    touch-action: manipulation;
}

.bp-chip-btn--primary[b-2b2hxjyrt2] {
    background: #16181c;
    border-color: #16181c;
    color: white;
}

.bp-mess-body[b-2b2hxjyrt2] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 0 14px 14px;
}

.bp-row[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Bahn-Position: Nr und Buttons mittig über beide Zeilen (Bezeichnung + Länge/Anzahl) */
.bp-bahn[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 10px;
    border-bottom: 1px solid #efeff1;
}

.bp-bahn:last-child[b-2b2hxjyrt2] {
    padding-bottom: 0;
    border-bottom: none;
}

.bp-bahn-main[b-2b2hxjyrt2] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.bp-bahn-actions[b-2b2hxjyrt2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.bp-fieldwrap[b-2b2hxjyrt2] {
    position: relative;
}

.bp-fieldwrap--grow[b-2b2hxjyrt2] {
    flex: 1;
    min-width: 0;
}

.bp-fieldwrap--len .bp-field[b-2b2hxjyrt2] {
    width: 92px;
}

.bp-fieldwrap--anz .bp-field[b-2b2hxjyrt2] {
    width: 64px;
}

.bp-fieldlabel[b-2b2hxjyrt2] {
    position: absolute;
    top: 7px;
    left: 12px;
    font-size: 8.5px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #a2a6ad;
    pointer-events: none;
    white-space: nowrap;
}

.bp-field[b-2b2hxjyrt2] {
    height: 52px;
    padding: 16px 10px 0;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: white;
    color: #16181c;
    font: inherit;
    font-size: 15px;
    font-weight: 700;
    text-align: right;
    font-variant-numeric: tabular-nums;
    cursor: pointer;
}

.bp-field[b-2b2hxjyrt2]::placeholder {
    color: #c6c9ce;
    font-size: 12px;
    font-weight: 600;
}

.bp-field:focus[b-2b2hxjyrt2] {
    outline: none;
}

.bp-field--active[b-2b2hxjyrt2] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.bp-field--error[b-2b2hxjyrt2] {
    border-color: #e2483b;
    background: #fbeae8;
}

.bp-label-input[b-2b2hxjyrt2] {
    width: 100%;
    height: 52px;
    padding: 16px 12px 0;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: white;
    color: #16181c;
    font: inherit;
    font-size: 13.5px;
    font-weight: 600;
}

.bp-label-input:focus[b-2b2hxjyrt2] {
    outline: none;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.bp-rowmeta[b-2b2hxjyrt2] {
    flex: 1;
    min-width: 0;
    font-size: 12px;
    font-weight: 700;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
    overflow: hidden;
}

.bp-bahn-nr[b-2b2hxjyrt2] {
    width: 74px;
    flex-shrink: 0;
    font-size: 10.5px;
    font-weight: 800;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

.bp-seam[b-2b2hxjyrt2] {
    width: 34px;
    height: 34px;
    position: relative;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 10px;
    background: #efeff1;
    color: #80858d;
    cursor: pointer;
    transition: background .14s, color .14s;
    touch-action: manipulation;
}

.bp-seam--on[b-2b2hxjyrt2] {
    background: #16181c;
    color: white;
}

.bp-del[b-2b2hxjyrt2] {
    width: 30px;
    height: 30px;
    position: relative;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: #c6c9ce;
    cursor: pointer;
    transition: background .14s, color .14s;
    touch-action: manipulation;
}

/* „Ändern": Bahn aus dem Raum neu berechnen (öffnet den Raum-Import nur für diesen Raum) */
.bp-edit[b-2b2hxjyrt2] {
    width: 34px;
    height: 34px;
    position: relative;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 10px;
    background: #efeff1;
    color: #80858d;
    cursor: pointer;
    transition: background .14s, color .14s;
    touch-action: manipulation;
}

@media (hover: hover) {
    .bp-edit:hover[b-2b2hxjyrt2] {
        background: #e4e4e7;
        color: #16181c;
    }
}

.bp-edit[b-2b2hxjyrt2]::after {
    content: "";
    position: absolute;
    inset: -6px;
}

.bp-empty-add[b-2b2hxjyrt2] {
    border: 1.5px dashed #e4e4e7;
    border-radius: 10px;
    background: transparent;
    color: #80858d;
    font: inherit;
    font-size: 12.5px;
    font-weight: 700;
    padding: 12px;
    cursor: pointer;
    transition: background .14s, border-color .14s, color .14s;
    touch-action: manipulation;
}

.bp-turbo[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
    gap: 7px;
    border: 1.5px dashed #16181c;
    border-radius: 10px;
    background: #efeff1;
    color: #16181c;
    font: inherit;
    font-size: 12.5px;
    font-weight: 700;
    padding: 10px 12px;
    cursor: pointer;
    transition: background .14s;
    touch-action: manipulation;
    text-align: left;
}

.bp-settings[b-2b2hxjyrt2] {
    gap: 10px;
}

.bp-setting[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.bp-setting-label[b-2b2hxjyrt2] {
    flex: 1;
    min-width: 0;
    font-size: 12.5px;
    font-weight: 700;
    color: #3c4148;
}

.bp-setting-sub[b-2b2hxjyrt2] {
    display: block;
    margin-top: 2px;
    font-size: 10.5px;
    font-weight: 600;
    color: #a2a6ad;
    line-height: 1.35;
}

/* -- Ergebnis ---------------------------------------------------------------- */

.bp-main[b-2b2hxjyrt2] {
    grid-area: main;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.bp-main-scroll[b-2b2hxjyrt2] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-bottom: 2px;
}

.bp-stats[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px 22px;
    padding: 14px 16px;
}

.bp-stat[b-2b2hxjyrt2] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.bp-stat-label[b-2b2hxjyrt2] {
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #80858d;
}

.bp-stat-val[b-2b2hxjyrt2] {
    font-size: 15px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.bp-badge[b-2b2hxjyrt2] {
    margin-left: auto;
    padding: 5px 12px;
    border-radius: 999px;
    background: #efeff1;
    color: #16181c;
    font-size: 11.5px;
    font-weight: 800;
}

.bp-badge--ok[b-2b2hxjyrt2] {
    background: #16181c;
    color: white;
}

.bp-stats-hint[b-2b2hxjyrt2] {
    flex-basis: 100%;
    font-size: 11.5px;
    font-weight: 600;
    color: #80858d;
    line-height: 1.45;
}

.bp-warncard[b-2b2hxjyrt2] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 14px;
    border-color: #f0d9a8;
    background: #fdf6e8;
}

.bp-warnrow[b-2b2hxjyrt2] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12.5px;
    font-weight: 600;
    color: #8a5a00;
}

.bp-warnrow svg[b-2b2hxjyrt2] {
    flex-shrink: 0;
    margin-top: 1px;
}

.bp-cutcard[b-2b2hxjyrt2] {
    flex-shrink: 0;
}

.bp-cutlist[b-2b2hxjyrt2] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 2px 14px 16px;
}

.bp-roll-head[b-2b2hxjyrt2] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 5px;
}

.bp-roll-name[b-2b2hxjyrt2] {
    font-size: 12.5px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.bp-roll-rest[b-2b2hxjyrt2] {
    font-size: 11.5px;
    font-weight: 700;
    color: #80858d;
    font-variant-numeric: tabular-nums;
}

/* Bestell-Hinweis: so lang muss die Rolle mindestens sein (Länge − Rest) */
.bp-roll-need[b-2b2hxjyrt2] {
    font-size: 11.5px;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.bp-bar[b-2b2hxjyrt2] {
    display: flex;
    height: 40px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #16181c;
    background: white;
    min-width: 90px;
}

.bp-seg[b-2b2hxjyrt2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
    overflow: hidden;
    border-right: 1px solid #16181c;
    background: white;
}

.bp-seg:last-child[b-2b2hxjyrt2] {
    border-right: none;
}

.bp-seg-nr[b-2b2hxjyrt2] {
    font-size: 10.5px;
    font-weight: 800;
    white-space: nowrap;
}

.bp-seg-len[b-2b2hxjyrt2] {
    font-size: 9px;
    font-weight: 700;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.bp-seg--rest[b-2b2hxjyrt2] {
    background: repeating-linear-gradient(135deg, #efeff1, #efeff1 5px, #f7f7f8 5px, #f7f7f8 10px);
    border-right: none;
}

.bp-table-scroll[b-2b2hxjyrt2] {
    overflow-x: auto;
    padding: 0 14px 14px;
}

.bp-table[b-2b2hxjyrt2] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
}

.bp-table th[b-2b2hxjyrt2] {
    text-align: left;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #80858d;
    padding: 6px 8px;
    border-bottom: 1px solid #e4e4e7;
    white-space: nowrap;
}

.bp-table td[b-2b2hxjyrt2] {
    padding: 8px;
    border-bottom: 1px solid #efeff1;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.bp-table .bp-num[b-2b2hxjyrt2] {
    text-align: right;
    white-space: nowrap;
}

.bp-tr--warn td[b-2b2hxjyrt2] {
    color: #8a5a00;
}

.bp-td-warn[b-2b2hxjyrt2] {
    color: #8a5a00;
}

/* -- Numpad-Dock -------------------------------------------------------------- */

.bp-dock[b-2b2hxjyrt2] {
    grid-area: dock;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
    align-self: start;
    max-height: 100%;
    overflow-y: auto;
}

.bp-dock--idle .bp-dock-pad[b-2b2hxjyrt2],
.bp-dock--idle .bp-key-weiter[b-2b2hxjyrt2] {
    opacity: .45;
    pointer-events: none;
}

.bp-dock-head[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
}

.bp-dock-label[b-2b2hxjyrt2] {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #80858d;
}

.bp-dock-display[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    min-height: 46px;
    padding: 0 12px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #f5f5f7;
    font-size: 19px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.bp-dock-placeholder[b-2b2hxjyrt2] {
    color: #c6c9ce;
}

.bp-dock-unit[b-2b2hxjyrt2] {
    font-size: 12px;
    font-weight: 700;
    color: #80858d;
}

/* AppNumPad (Shared) auf die monochrome Optik dieser Seite bringen */
.bp-dock-pad[b-2b2hxjyrt2]  .app-numpad,
.bp-modal-pad[b-2b2hxjyrt2]  .app-numpad {
    padding: 0;
    gap: 5px;
    background: transparent;
}

.bp-dock-pad[b-2b2hxjyrt2]  .app-numpad__key,
.bp-modal-pad[b-2b2hxjyrt2]  .app-numpad__key {
    aspect-ratio: 1 / 1; /* quadratische Tasten — Breite ergibt sich aus der Dock-Spalte */
    height: auto;
    font-size: 18px;
    font-weight: 700;
    font-family: inherit;
    background: white;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    color: #16181c;
}

.bp-dock-pad[b-2b2hxjyrt2]  .app-numpad__key:active,
.bp-modal-pad[b-2b2hxjyrt2]  .app-numpad__key:active {
    background: #e4e4e7;
    transform: none;
}

.bp-dock-pad[b-2b2hxjyrt2]  .app-numpad__key--secondary,
.bp-modal-pad[b-2b2hxjyrt2]  .app-numpad__key--secondary {
    background: #efeff1;
}

.bp-key-weiter[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 50px;
    border: 1px solid #16181c;
    border-radius: 10px;
    background: #16181c;
    color: white;
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    transition: background .14s;
    touch-action: manipulation;
}

/* -- Leere Zustände ------------------------------------------------------------ */

.bp-empty-page[b-2b2hxjyrt2] {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: #80858d;
    font-size: 14px;
    font-weight: 600;
}

.bp-hint[b-2b2hxjyrt2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 32px 20px;
    text-align: center;
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
}

.bp-hint--main[b-2b2hxjyrt2] {
    flex: 1;
    min-height: 0;
}

.bp-hint svg[b-2b2hxjyrt2] {
    color: #c6c9ce;
}

.bp-btn[b-2b2hxjyrt2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: white;
    color: #16181c;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background .14s, color .14s, border-color .14s;
    touch-action: manipulation;
}

.bp-btn--primary[b-2b2hxjyrt2] {
    background: #16181c;
    border-color: #16181c;
    color: white;
}

.bp-btn--danger[b-2b2hxjyrt2] {
    background: #e2483b;
    border-color: #e2483b;
    color: white;
}

.bp-btn--danger:disabled[b-2b2hxjyrt2] {
    background: #c6c9ce;
    border-color: #c6c9ce;
    cursor: default;
}

/* -- Modals ---------------------------------------------------------------------- */

.bp-modal-backdrop[b-2b2hxjyrt2] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 16px;
}

.bp-modal[b-2b2hxjyrt2] {
    width: 100%;
    max-width: 460px;
    max-height: 86dvh;
    display: flex;
    flex-direction: column;
    background: white;
    border-radius: 16px;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .26), 0 6px 14px -10px rgba(0, 0, 0, .12);
}

.bp-modal-head[b-2b2hxjyrt2] {
    padding: 15px 18px 12px;
    font-size: 15px;
    font-weight: 800;
    border-bottom: 1px solid #efeff1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.bp-modal-head-sub[b-2b2hxjyrt2] {
    font-size: 11.5px;
    font-weight: 600;
    color: #80858d;
}

.bp-modal-body[b-2b2hxjyrt2] {
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow-y: auto;
    min-height: 0;
}

.bp-modal-hint[b-2b2hxjyrt2] {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    color: #80858d;
    line-height: 1.5;
}

.bp-modal-foot[b-2b2hxjyrt2] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 18px 16px;
}

.bp-text-input[b-2b2hxjyrt2] {
    height: 42px;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 0 12px;
    font: inherit;
    font-size: 14px;
    color: #16181c;
}

.bp-text-input:focus[b-2b2hxjyrt2] {
    outline: none;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

/* Vorlagen-Dropdown im Entwurf-Dialog (IconSelect-Wrapper) */
.bp-vorlage-select[b-2b2hxjyrt2]  .iconsel-trigger {
    height: 42px;
    border-radius: 11px;
}

/* Rollenbreite-Zeile im Entwurf-Dialog */
.bp-breite-row[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
    gap: 9px;
}

.bp-breite-label[b-2b2hxjyrt2] {
    font-size: 12.5px;
    font-weight: 600;
    color: #3c4148;
}

/* Anker fürs Numpad-Popover */
.bp-breite-feld[b-2b2hxjyrt2] {
    position: relative;
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 9px;
}

.bp-text-input--breite[b-2b2hxjyrt2] {
    width: 88px;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.bp-breite-einheit[b-2b2hxjyrt2] {
    font-size: 12.5px;
    font-weight: 700;
    color: #80858d;
}

/* Numpad als Popover unterm Breite-Feld (Tasten-Optik wie das Seiten-Dock).
   Der Entwurf-Dialog gibt dafür sein Body-Clipping frei — er scrollt ohnehin nie. */
.bp-modal--entwurf .bp-modal-body[b-2b2hxjyrt2] {
    overflow: visible;
}

.bp-modal-pad[b-2b2hxjyrt2] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 40;
    width: 206px;
    padding: 10px;
    background: white;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .30), 0 4px 12px -8px rgba(0, 0, 0, .14);
}

.bp-vorlage-add[b-2b2hxjyrt2] {
    align-self: flex-start;
}

.bp-check[b-2b2hxjyrt2] {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 12.5px;
    font-weight: 600;
    color: #3c4148;
    cursor: pointer;
}

.bp-check input[b-2b2hxjyrt2] {
    margin-top: 2px;
    width: 16px;
    height: 16px;
    accent-color: #16181c;
}

.bp-modal--breit[b-2b2hxjyrt2] {
    max-width: 580px;
}

.bp-raum[b-2b2hxjyrt2] {
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 10px 12px 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: background .14s, border-color .14s;
}

.bp-raum--done[b-2b2hxjyrt2] {
    background: #f7f7f8;
}

.bp-raum-head[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.bp-raum-name[b-2b2hxjyrt2] {
    font-size: 13px;
    font-weight: 800;
}

.bp-raum-check[b-2b2hxjyrt2] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 9px;
    border-radius: 999px;
    background: #16181c;
    color: white;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.bp-raum-mass[b-2b2hxjyrt2] {
    margin-left: auto;
    font-size: 12px;
    font-weight: 700;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* -- Verlegerichtungs-Kacheln mit Mini-Skizze --------------------------------- */

.bp-varianten[b-2b2hxjyrt2] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.bp-varianten--single[b-2b2hxjyrt2] {
    grid-template-columns: 1fr;
}

.bp-variante[b-2b2hxjyrt2] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    padding: 14px 10px 11px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: white;
    color: #16181c;
    font: inherit;
    cursor: pointer;
    transition: background .14s, border-color .14s;
    touch-action: manipulation;
}

.bp-variante:active[b-2b2hxjyrt2] {
    background: #efeff1;
}

.bp-variante-badge[b-2b2hxjyrt2] {
    position: absolute;
    top: -8px;
    right: 10px;
    padding: 2px 8px;
    border-radius: 999px;
    background: #16181c;
    color: white;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

/* Häkchen sitzt an der Variante, die tatsächlich übernommen wurde (links, „sparsamer" bleibt rechts) */
.bp-variante-badge--done[b-2b2hxjyrt2] {
    right: auto;
    left: 10px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    text-transform: none;
    letter-spacing: 0;
    font-size: 10px;
}

.bp-variante-count[b-2b2hxjyrt2] {
    font-size: 13px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.bp-variante-sub[b-2b2hxjyrt2] {
    font-size: 10.5px;
    font-weight: 700;
    color: #80858d;
    font-variant-numeric: tabular-nums;
}

/* Mini-Verlegeskizze: Raum-Rechteck, gestrichelte Nähte, Pfeil = Bahnrichtung */
.bp-var-diagramm[b-2b2hxjyrt2] {
    position: relative;
    display: block;
    border: 1.5px solid #16181c;
    border-radius: 5px;
    background: white;
    overflow: hidden;
    flex-shrink: 0;
}

.bp-var-strips[b-2b2hxjyrt2] {
    position: absolute;
    inset: 0;
    display: flex;
}

.bp-var-strips--col[b-2b2hxjyrt2] {
    flex-direction: column;
}

.bp-var-strips--row[b-2b2hxjyrt2] {
    flex-direction: row;
}

.bp-var-strip[b-2b2hxjyrt2] {
    flex: 1;
}

.bp-var-strips--col .bp-var-strip + .bp-var-strip[b-2b2hxjyrt2] {
    border-top: 1.5px dashed #a2a6ad;
}

.bp-var-strips--row .bp-var-strip + .bp-var-strip[b-2b2hxjyrt2] {
    border-left: 1.5px dashed #a2a6ad;
}

.bp-var-arrow[b-2b2hxjyrt2] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #3c4148;
}

.bp-var-arrow svg[b-2b2hxjyrt2] {
    background: white;
    border-radius: 4px;
    padding: 1px;
}

/* -- Lösch-Dialog mit Timer-Ring -------------------------------------------------- */

.bp-delete-card[b-2b2hxjyrt2] {
    width: min(420px, 100%);
    background: white;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .26), 0 6px 14px -10px rgba(0, 0, 0, .12);
}

.bp-delete-header[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 18px 20px 0;
}

.bp-delete-header h2[b-2b2hxjyrt2] {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
}

.bp-delete-icon[b-2b2hxjyrt2] {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: #fbeae8;
    color: #e2483b;
    flex-shrink: 0;
}

.bp-delete-body[b-2b2hxjyrt2] {
    padding: 12px 20px 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.bp-delete-subject[b-2b2hxjyrt2] {
    margin: 0;
    font-size: 14px;
    font-weight: 800;
}

.bp-delete-cascade[b-2b2hxjyrt2] {
    margin: 0;
    padding: 8px 10px;
    border: 1px solid #f0d9a8;
    border-radius: 10px;
    background: #fdf6e8;
    color: #8a5a00;
    font-size: 12px;
    font-weight: 600;
}

.bp-delete-timer[b-2b2hxjyrt2] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.bp-delete-ring[b-2b2hxjyrt2] {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: conic-gradient(#16181c calc(var(--pct, 0) * 1%), #efeff1 0);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    flex-shrink: 0;
}

.bp-delete-ring[b-2b2hxjyrt2]::before {
    content: "";
    position: absolute;
    inset: 5px;
    border-radius: 50%;
    background: white;
}

.bp-delete-ring span[b-2b2hxjyrt2] {
    position: relative;
    font-size: 20px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.bp-delete-hint[b-2b2hxjyrt2] {
    font-size: 12px;
    font-weight: 600;
    color: #80858d;
}

.bp-delete-actions[b-2b2hxjyrt2] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 20px 16px;
    background: #f5f5f7;
}

/* Die PDF-Vorschau läuft über die Shared-Komponente AppLightbox. */

/* -- Hover nur auf echten Pointern (kein Sticky-Hover auf iOS) --------------------- */

@media (hover: hover) {
    .bp-icon-btn:hover:not(:disabled)[b-2b2hxjyrt2] {
        background: #efeff1;
        color: #16181c;
    }

    .bp-plan-chip:hover:not(.bp-plan-chip--on)[b-2b2hxjyrt2] {
        background: #efeff1;
    }

    .bp-mini:hover[b-2b2hxjyrt2] {
        background: #efeff1;
        color: #16181c;
    }

    .bp-mini--danger:hover[b-2b2hxjyrt2] {
        background: #fbeae8;
        color: #e2483b;
    }

    .bp-chip-btn:hover:not(.bp-chip-btn--primary)[b-2b2hxjyrt2] {
        background: #efeff1;
    }

    .bp-chip-btn--primary:hover[b-2b2hxjyrt2] {
        background: #26282e;
    }

    .bp-seam:hover:not(.bp-seam--on)[b-2b2hxjyrt2] {
        background: #16181c;
        color: white;
    }

    .bp-del:hover[b-2b2hxjyrt2] {
        background: #fbeae8;
        color: #e2483b;
    }

    .bp-empty-add:hover[b-2b2hxjyrt2] {
        background: #efeff1;
        border-color: #c6c9ce;
        color: #16181c;
    }

    .bp-turbo:hover[b-2b2hxjyrt2] {
        background: #e4e4e7;
    }

    .bp-btn:hover:not(.bp-btn--primary):not(.bp-btn--danger)[b-2b2hxjyrt2] {
        background: #efeff1;
    }

    .bp-btn--primary:hover[b-2b2hxjyrt2] {
        background: #26282e;
    }

    .bp-btn--danger:hover:not(:disabled)[b-2b2hxjyrt2] {
        filter: brightness(.95);
    }

    .bp-key-weiter:hover[b-2b2hxjyrt2] {
        background: #26282e;
    }

    .bp-dock-pad[b-2b2hxjyrt2]  .app-numpad__key:hover {
        background: #efeff1;
    }

    .bp-plan-chip--new:hover[b-2b2hxjyrt2] {
        color: #16181c;
        border-color: #c6c9ce;
    }

    .bp-variante:hover[b-2b2hxjyrt2] {
        border-color: #16181c;
        background: #f7f7f8;
    }
}

/* -- Breakpoints -------------------------------------------------------------------- */

@media (max-width: 1180px) {
    .bp-layout[b-2b2hxjyrt2] {
        grid-template-columns: 350px minmax(0, 1fr) 196px;
    }
}

@media (max-width: 899px) {
    .bp-root[b-2b2hxjyrt2] {
        height: auto;
        min-height: calc(100dvh - var(--app-header-h));
        overflow-y: auto;
        padding-bottom: 400px; /* volle Höhe des fixierten Docks (~370px) + Luft */
    }

    .bp-layout[b-2b2hxjyrt2] {
        display: flex;
        flex-direction: column;
        height: auto;
    }

    .bp-side[b-2b2hxjyrt2],
    .bp-side-scroll[b-2b2hxjyrt2],
    .bp-main[b-2b2hxjyrt2],
    .bp-main-scroll[b-2b2hxjyrt2] {
        overflow: visible;
        min-height: 0;
    }

    .bp-dock[b-2b2hxjyrt2] {
        position: fixed;
        left: 12px;
        right: 12px;
        bottom: 12px;
        z-index: 500;
        max-height: none;
        overflow: visible;
        box-shadow: 0 8px 24px -12px rgba(0, 0, 0, .25), 0 1px 2px rgba(0, 0, 0, .04);
    }

    /* Fixiertes Dock in voller Breite: quadratische Tasten wären riesig — feste Höhe */
    .bp-dock-pad[b-2b2hxjyrt2]  .app-numpad__key {
        aspect-ratio: auto;
        height: 46px;
    }

    .bp-key-weiter[b-2b2hxjyrt2] {
        height: 46px;
    }
}

/* /Components/Pages/Calc/DescriptionPickerPanel.razor.rz.scp.css */
/* --------------------------------------------------------------
   DescriptionPickerPanel · Scoped Component Styles
   Monochrom (neues Design): Hover grau, Auswahl grau + Haken —
   gleiche Grammatik wie IconSelect.
-------------------------------------------------------------- */

.desc-picker[b-n7zhhimbwl] {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: white;
    border-radius: 16px;
    overflow: hidden;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* -- Search Header -------------------------------------------------------- */
.desc-picker-header[b-n7zhhimbwl] {
    padding: 10px 12px 8px;
    background: #f5f5f7;
    border-bottom: 1px solid #e4e4e7;
    flex-shrink: 0;
}

.desc-picker-search-wrap[b-n7zhhimbwl] {
    display: flex;
    align-items: center;
    background: white;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 0 10px;
    gap: 6px;
    transition: border-color 0.18s, box-shadow 0.18s;
}

    .desc-picker-search-wrap:focus-within[b-n7zhhimbwl] {
        border-color: #16181c;
        box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
    }

.desc-picker-search-icon[b-n7zhhimbwl] {
    color: #80858d;
    flex-shrink: 0;
}

.desc-picker-search[b-n7zhhimbwl] {
    flex: 1;
    border: none;
    background: transparent;
    padding: 9px 0;
    font-size: 14px;
    color: #16181c;
    font-family: inherit;
    outline: none;
    min-width: 0;
}

    .desc-picker-search[b-n7zhhimbwl]::placeholder {
        color: #80858d;
    }

.desc-picker-clear[b-n7zhhimbwl] {
    background: #efeff1;
    border: none;
    color: #3c4148;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    font-size: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    font-family: inherit;
    transition: background 0.15s, color 0.15s;
}

    @media (hover: hover) {
        .desc-picker-clear:hover[b-n7zhhimbwl] {
            background: #16181c;
            color: white;
        }
    }

/* -- List ----------------------------------------------------------------- */
.desc-picker-list[b-n7zhhimbwl] {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    background: white;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}

.desc-picker-item[b-n7zhhimbwl] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 11px 14px;
    background: white;
    border: none;
    border-bottom: 1px solid #f2f2f4;
    text-align: left;
    font-family: inherit;
    font-size: 13px;
    color: #16181c;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.1s;
    line-height: 1.35;
}

    .desc-picker-item:last-child[b-n7zhhimbwl] {
        border-bottom: none;
    }

    .desc-picker-item:active[b-n7zhhimbwl] {
        background: #efeff1;
    }

    @media (hover: hover) {
        .desc-picker-item:hover[b-n7zhhimbwl] {
            background: #efeff1;
        }
    }

.desc-picker-item--selected[b-n7zhhimbwl] {
    background: #efeff1;
}

    @media (hover: hover) {
        .desc-picker-item--selected:hover[b-n7zhhimbwl] {
            background: #e7e7ea;
        }
    }

.desc-picker-item-body[b-n7zhhimbwl] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.desc-picker-item-text[b-n7zhhimbwl] {
    min-width: 0;
    font-weight: 700;
    word-break: break-word;
}

/* -- Werte: feste Paare statt Chip-Wolke ---------------------------------- */
.desc-picker-item-kopf[b-n7zhhimbwl] {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.dpw[b-n7zhhimbwl] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(74px, 1fr));
    gap: 4px 8px;
    margin-top: 2px;
}

.dpw-feld[b-n7zhhimbwl] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.dpw-wert[b-n7zhhimbwl] {
    font-size: 12px;
    font-weight: 750;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dpw-name[b-n7zhhimbwl] {
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #a3a8b0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dpw-feld--warn .dpw-wert[b-n7zhhimbwl] {
    color: #b45309;
}

/* -- Bereichs-Auswahl (IconSelect) ---------------------------------------- */
.desc-picker-bereich[b-n7zhhimbwl] {
    margin-top: 8px;
}

/* Größe am Einsatzort setzen, nicht am Bauteil.
   Höhe kommt aus IconSelect (min-height: 40px) — eine height-Angabe hier bliebe
   wirkungslos, weil min-height gewinnt. */
.desc-picker-bereich[b-n7zhhimbwl]  .iconsel-trigger {
    border-radius: 10px;
    font-size: 12.5px;
}

.desc-picker-alle[b-n7zhhimbwl] {
    margin-top: 2px;
    padding: 6px 12px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    color: #16181c;
    cursor: pointer;
}

.desc-picker-check[b-n7zhhimbwl] {
    color: #16181c;
    flex-shrink: 0;
}

/* -- Empty State ---------------------------------------------------------- */
.desc-picker-empty[b-n7zhhimbwl] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 36px 20px;
    color: #80858d;
    font-size: 11px;
    text-align: center;
}

    .desc-picker-empty svg[b-n7zhhimbwl] {
        color: #c0c3c9;
    }

/* -- ERP Badge (local redefinition for scoping) --------------------------- */
.erp-badge[b-n7zhhimbwl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    padding: 2px 6px;
    background: #efeff1;
    color: #16181c;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    flex-shrink: 0;
    letter-spacing: 0.02em;
}

.erp-badge-list[b-n7zhhimbwl] {
    font-size: 11px;
}


/* Schmale Scrollleiste — Werte 1:1 aus dem Aufmaß (.am-tree & Co.) */
.desc-picker-list[b-n7zhhimbwl] {
    scrollbar-width: thin;                 /* Firefox */
    scrollbar-color: #c6c9ce transparent;  /* Daumen · Spur */
}

.desc-picker-list[b-n7zhhimbwl]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.desc-picker-list[b-n7zhhimbwl]::-webkit-scrollbar-track {
    background: transparent;
}

.desc-picker-list[b-n7zhhimbwl]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .desc-picker-list[b-n7zhhimbwl]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

/* -- Kopf (nur im Wizard, ShowHead) — Werte 1:1 aus AufmassMengePicker .amp-header ------ */
.desc-picker-head[b-n7zhhimbwl] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px 13px;
    background: #16181c;
    flex-shrink: 0;
}

.desc-picker-head-icon[b-n7zhhimbwl] {
    width: 20px;
    height: 20px;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.desc-picker-head-title-group[b-n7zhhimbwl] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1;
    min-width: 0;
}

.desc-picker-head-label[b-n7zhhimbwl] {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.desc-picker-head-title[b-n7zhhimbwl] {
    font-size: 13px;
    font-weight: 700;
    color: white;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Fußzeile leer: Brotkrume der Schritte — der aktuelle in Tinte, Chevron-SVGs dazwischen
   (gleiche Werte in allen vier Pickern) */
.desc-picker-crumb[b-n7zhhimbwl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    max-width: 100%;
    min-width: 0;
    font-size: 11px;
    font-weight: 600;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
}

.desc-picker-crumb-step[b-n7zhhimbwl] {
    overflow: hidden;
    text-overflow: ellipsis;
}

.desc-picker-crumb-step--on[b-n7zhhimbwl] {
    color: #16181c;
    font-weight: 700;
}

.desc-picker-crumb-chev[b-n7zhhimbwl] {
    flex: none;
    color: #c0c3c9;
}

/* -- Fußzeile (nur im Wizard, ShowFrame) — Werte 1:1 aus MaterialKostenPicker .mkp-sum-* ------ */
.desc-picker-sum-bar[b-n7zhhimbwl] {
    padding: 10px 14px;
    border-top: 1px solid #e4e4e7;
    flex-shrink: 0;
    transition: background 0.2s;
}

.desc-picker-sum-bar--empty[b-n7zhhimbwl] {
    background: #f5f5f7;
}

.desc-picker-sum-bar--active[b-n7zhhimbwl] {
    background: #16181c;
    border-top-color: #16181c;
}

.desc-picker-sum-hint[b-n7zhhimbwl] {
    font-size: 11px;
    color: #80858d;
    font-weight: 500;
    display: block;
    text-align: center;
}

.desc-picker-sum-left[b-n7zhhimbwl] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.8);
    min-width: 0;
}

.desc-picker-sum-name[b-n7zhhimbwl] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* /Components/Pages/Calc/LeistungspaketEinfuegen.razor.rz.scp.css */
/* Leistungspaket einfügen — Werte 1:1 aus „Positionen übernehmen" (.ueb-*), damit sich
   beide Wege in die Kalkulation exakt gleich anfühlen. */

.lpe-head[b-u4pycartfo] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.lpe-head-ico[b-u4pycartfo] {
    /* Nacktes Icon — kein Kasten (Regel für die ganze App) */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    color: #16181c;
}

.lpe-head-text[b-u4pycartfo] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.lpe-head-text h2[b-u4pycartfo] {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: #16181c;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lpe-head-text span[b-u4pycartfo] {
    font-size: 12px;
    font-weight: 600;
    color: #80858d;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* -- Zurück ------------------------------------------------------------- */
.lpe-schritte[b-u4pycartfo] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.lpe-zurueck[b-u4pycartfo] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 30px;
    padding: 0 11px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    color: #16181c;
    cursor: pointer;
}

@media (hover: hover) {
    .lpe-zurueck:hover[b-u4pycartfo] {
        background: #f4f4f6;
        border-color: #cfd0d3;
    }
}

/* Fester Rahmen: die Dialoghöhe ändert sich weder mit der Zeilenzahl noch beim
   Schrittwechsel (gleiche Werte wie .ueb-inhalt). */
.lpe-inhalt[b-u4pycartfo] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    /* dvh statt vh: auf iOS rechnet vh immer mit ausgeblendeter Safari-Leiste — mit
       eingeblendeter Leiste wäre der Dialog rund 50 px zu hoch für den Bildschirm. */
    height: clamp(280px, 52dvh, 460px);
}

/* -- Leiste über der Tabelle -------------------------------------------- */
.lpe-leiste[b-u4pycartfo] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.lpe-leiste-label[b-u4pycartfo] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #80858d;
}

.lpe-leiste-hinweis[b-u4pycartfo] {
    font-size: 12px;
    font-weight: 600;
    color: #8a8f98;
}

.lpe-bereich[b-u4pycartfo] {
    width: 220px;
}

.lpe-bereich[b-u4pycartfo]  .iconsel-trigger {
    min-height: 32px;
    border-radius: 999px;
    font-size: 12px;
    background: #fff;
}

.lpe-menge-feld[b-u4pycartfo] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0 12px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
}

.lpe-menge-feld:focus-within[b-u4pycartfo] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.lpe-menge-feld input[b-u4pycartfo] {
    width: 84px;
    padding: 8px 0;
    border: none;
    outline: none;
    background: transparent;
    font-family: inherit;
    font-size: 14px;
    font-weight: 800;
    color: #16181c;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.lpe-menge-feld span[b-u4pycartfo] {
    font-size: 12.5px;
    font-weight: 700;
    color: #80858d;
}

/* -- Tabelle (Werte aus .ueb-tabelle) ----------------------------------- */
.lpe-tabelle-wrap[b-u4pycartfo] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    scrollbar-width: thin;
    scrollbar-color: #c6c9ce transparent;
}

.lpe-tabelle-wrap[b-u4pycartfo]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.lpe-tabelle-wrap[b-u4pycartfo]::-webkit-scrollbar-track {
    background: transparent;
}

.lpe-tabelle-wrap[b-u4pycartfo]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .lpe-tabelle-wrap[b-u4pycartfo]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

.lpe-tabelle[b-u4pycartfo] {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    color: #16181c;
    font-size: 12px;
    table-layout: fixed;
}

.lpe-tabelle th[b-u4pycartfo] {
    position: sticky;
    top: 0;
    z-index: 1;
    height: 32px;
    border-bottom: 1px solid #e4e4e7;
    background: #f5f5f7;
    color: #6f747d;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.lpe-tabelle th[b-u4pycartfo],
.lpe-tabelle td[b-u4pycartfo] {
    padding: 7px 10px;
    vertical-align: middle;
}

.lpe-tabelle td[b-u4pycartfo] {
    border-bottom: 1px solid #ededf2;
    color: #6f747d;
    font-weight: 600;
    line-height: 1.3;
}

.lpe-tabelle tbody tr[b-u4pycartfo] {
    background: #fff;
    cursor: pointer;
    transition: background 0.15s;
}

.lpe-tabelle tbody tr:last-child td[b-u4pycartfo] {
    border-bottom: none;
}

@media (hover: hover) {
    .lpe-tabelle tbody tr:hover[b-u4pycartfo] {
        background: #f7f7f9;
    }
}

/* Paketliste: Paket | Enthält | Menge in | Bereich */
.lpe-tabelle th:nth-child(1)[b-u4pycartfo],
.lpe-tabelle td:nth-child(1)[b-u4pycartfo] {
    width: 42%;
}

.lpe-tabelle th:nth-child(2)[b-u4pycartfo],
.lpe-tabelle td:nth-child(2)[b-u4pycartfo] {
    width: 20%;
}

.lpe-tabelle th:nth-child(3)[b-u4pycartfo],
.lpe-tabelle td:nth-child(3)[b-u4pycartfo] {
    width: 16%;
}

.lpe-tabelle th:nth-child(4)[b-u4pycartfo],
.lpe-tabelle td:nth-child(4)[b-u4pycartfo] {
    width: 22%;
}

/* Vorschau: Beschreibung | Menge | €/Einheit | Gesamt */
.lpe-tabelle--zeilen th:nth-child(1)[b-u4pycartfo],
.lpe-tabelle--zeilen td:nth-child(1)[b-u4pycartfo] {
    width: 46%;
}

.lpe-tabelle--zeilen th:nth-child(2)[b-u4pycartfo],
.lpe-tabelle--zeilen td:nth-child(2)[b-u4pycartfo] {
    width: 18%;
    text-align: right;
}

.lpe-tabelle--zeilen th:nth-child(3)[b-u4pycartfo],
.lpe-tabelle--zeilen td:nth-child(3)[b-u4pycartfo] {
    width: 18%;
    text-align: right;
}

.lpe-tabelle--zeilen th:nth-child(4)[b-u4pycartfo],
.lpe-tabelle--zeilen td:nth-child(4)[b-u4pycartfo] {
    width: 18%;
    text-align: right;
}

/* Die Vorschau ist zum Lesen da — kein Zeiger, kein Hover-Wechsel */
.lpe-tabelle--zeilen tbody tr[b-u4pycartfo] {
    cursor: default;
}

@media (hover: hover) {
    .lpe-tabelle--zeilen tbody tr:hover[b-u4pycartfo] {
        background: #fff;
    }
}

.lpe-titel-cell[b-u4pycartfo] {
    overflow: hidden;
}

.lpe-titel[b-u4pycartfo] {
    color: #16181c;
    font-weight: 750;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lpe-weg[b-u4pycartfo] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lpe-zahl[b-u4pycartfo] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.lpe-zahl--summe[b-u4pycartfo] {
    color: #16181c;
    font-weight: 800;
}

.lpe-leer[b-u4pycartfo] {
    margin: 16px 0 0;
    padding: 0 12px;
    font-size: 12.5px;
    font-weight: 600;
    color: #8a8f98;
}

/* Pille an der Beschreibung (Werte aus .ueb-typ--klein) */
.lpe-pille[b-u4pycartfo] {
    display: inline-flex;
    align-items: center;
    min-height: 18px;
    margin-left: 6px;
    padding: 0 6px;
    border-radius: 999px;
    background: #efeff1;
    color: #16181c;
    font-family: 'JetBrains Mono', ui-monospace, 'SF Mono', monospace;
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: -0.02em;
    white-space: nowrap;
}

.lpe-pille--warn[b-u4pycartfo] {
    background: #fdf6e8;
    color: #7a5a1a;
}

/* Paket ohne Positionen bzw. gelöschte Voreinstellung: sichtbar, aber nicht wählbar */
.lpe-row--leer[b-u4pycartfo],
.lpe-row--fehlt[b-u4pycartfo] {
    cursor: default;
    opacity: 0.55;
}

@media (hover: hover) {
    .lpe-row--leer:hover[b-u4pycartfo],
    .lpe-row--fehlt:hover[b-u4pycartfo] {
        background: #fff;
    }
}

/* -- Ergebniszeile ------------------------------------------------------ */
.lpe-ergebnis[b-u4pycartfo] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    flex: none;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f5f5f7;
}

.lpe-ergebnis-label[b-u4pycartfo] {
    font-size: 12.5px;
    font-weight: 700;
    color: #6f747d;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lpe-ergebnis-summe[b-u4pycartfo] {
    flex: none;
    font-size: 15px;
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
/* /Components/Pages/Calc/LohnKostenPicker.razor.rz.scp.css */
/* --------------------------------------------------------------
   LohnKostenPicker · Scoped Component Styles
   Monochrom (neues Design): Header schwarz wie das Positions-Modal,
   Hover grau, Auswahl/Summe schwarz — Struktur analog zu
   MaterialKostenPicker.
-------------------------------------------------------------- */

.lkp-panel[b-vgpye9pgr8] {
    display: flex;
    flex-direction: column;
    height: 100%;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    border-radius: 16px;
    overflow: hidden;
    width: 100%;
}

/* -- Header --------------------------------------------------- */
.lkp-header[b-vgpye9pgr8] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px 13px;
    background: #16181c;
    flex-shrink: 0;
}

.lkp-header-icon[b-vgpye9pgr8] {
    /* Nacktes Icon — kein Kasten (gilt im ganzen Wizard und in allen Pickern) */
    width: 20px;
    height: 20px;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.lkp-back-btn[b-vgpye9pgr8] {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: transparent;
    border: none;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.15s;
}

    @media (hover: hover) {
        .lkp-back-btn:hover[b-vgpye9pgr8] {
            background: rgba(255, 255, 255, 0.14);
        }
    }

.lkp-header-title-group[b-vgpye9pgr8] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1;
    min-width: 0;
}

.lkp-header-label[b-vgpye9pgr8] {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lkp-header-title[b-vgpye9pgr8] {
    font-size: 13px;
    font-weight: 700;
    color: white;
}

/* -- Suchleiste ----------------------------------------------- */
.lkp-search-bar[b-vgpye9pgr8] {
    padding: 10px 12px 8px;
    background: #f5f5f7;
    border-bottom: 1px solid #e4e4e7;
    flex-shrink: 0;
}

.lkp-search-wrap[b-vgpye9pgr8] {
    display: flex;
    align-items: center;
    background: white;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 0 10px;
    gap: 6px;
    transition: border-color 0.18s, box-shadow 0.18s;
}

    .lkp-search-wrap:focus-within[b-vgpye9pgr8] {
        border-color: #16181c;
        box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
    }

.lkp-search-icon[b-vgpye9pgr8] {
    color: #80858d;
    flex-shrink: 0;
}

.lkp-search-input[b-vgpye9pgr8] {
    flex: 1;
    border: none;
    background: transparent;
    padding: 9px 0;
    font-size: 14px;
    color: #16181c;
    font-family: inherit;
    outline: none;
    min-width: 0;
}

    .lkp-search-input[b-vgpye9pgr8]::placeholder {
        color: #80858d;
    }

.lkp-search-clear[b-vgpye9pgr8] {
    background: #efeff1;
    border: none;
    color: #3c4148;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    font-size: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    font-family: inherit;
    transition: background 0.15s, color 0.15s;
}

    @media (hover: hover) {
        .lkp-search-clear:hover[b-vgpye9pgr8] {
            background: #16181c;
            color: white;
        }
    }

/* -- Scroll-Container ----------------------------------------- */
.lkp-scroll[b-vgpye9pgr8] {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    background: white;
}

/* -- Leer-Zustand --------------------------------------------- */
.lkp-empty[b-vgpye9pgr8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 36px 20px;
    color: #80858d;
    text-align: center;
}

    .lkp-empty svg[b-vgpye9pgr8] {
        color: #c0c3c9;
    }

    .lkp-empty p[b-vgpye9pgr8] {
        margin: 0;
        font-size: 13px;
        font-weight: 600;
        color: #3c4148;
    }

    .lkp-empty span[b-vgpye9pgr8] {
        font-size: 11px;
        color: #80858d;
    }

/* -- Zeilen allgemein ----------------------------------------- */
.lkp-row[b-vgpye9pgr8] {
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    padding: 11px 14px;
    background: none;
    border: none;
    border-bottom: 1px solid #f2f2f4;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    transition: background 0.14s;
}

    .lkp-row:last-child[b-vgpye9pgr8] {
        border-bottom: none;
    }

    @media (hover: hover) {
        .lkp-row:hover[b-vgpye9pgr8] {
            background: #efeff1;
        }
    }

/* -- Dienstleister Zeilen ------------------------------------- */
.lkp-row-icon[b-vgpye9pgr8] {
    width: 22px;
    height: 22px;
    color: #3c4148;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.lkp-row-body[b-vgpye9pgr8] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.lkp-row-breadcrumb[b-vgpye9pgr8] {
    font-size: 10px;
    font-weight: 600;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    letter-spacing: 0.01em;
}

.lkp-row-title[b-vgpye9pgr8] {
    font-size: 13px;
    font-weight: 700;
    color: #16181c;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lkp-row-meta[b-vgpye9pgr8] {
    font-size: 11px;
    color: #80858d;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}

.lkp-chevron[b-vgpye9pgr8] {
    color: #c0c3c9;
    flex-shrink: 0;
}

/* -- Kategorie Zeilen ----------------------------------------- */
.lkp-row--kategorie[b-vgpye9pgr8] {
    padding: 10px 14px;
}

/* -- Suchergebnis-Zeilen (haben Breadcrumb, daher align: start) -- */
.lkp-row--search-result[b-vgpye9pgr8] {
    align-items: flex-start;
}

    .lkp-row--search-result .lkp-kategorie-check[b-vgpye9pgr8] {
        margin-top: 3px;
    }

    .lkp-row--search-result .lkp-cost-badge[b-vgpye9pgr8] {
        align-self: center;
    }

.lkp-row--selected[b-vgpye9pgr8] {
    background: #efeff1;
}

    @media (hover: hover) {
        .lkp-row--selected:hover[b-vgpye9pgr8] {
            background: #e7e7ea;
        }
    }

.lkp-kategorie-check[b-vgpye9pgr8] {
    width: 20px;
    height: 20px;
    border-radius: 6px;
    border: 1.5px solid #c0c3c9;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.14s, border-color 0.14s;
    color: white;
}

.lkp-row--selected .lkp-kategorie-check[b-vgpye9pgr8] {
    background: #16181c;
    border-color: #16181c;
}

/* -- Kosten-Badge ---------------------------------------------- */
.lkp-cost-badge[b-vgpye9pgr8] {
    font-size: 11px;
    font-weight: 700;
    color: #80858d;
    background: #efeff1;
    border-radius: 20px;
    padding: 3px 9px;
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    transition: background 0.14s, color 0.14s;
    align-self: center;
}

.lkp-cost-badge--selected[b-vgpye9pgr8] {
    color: white;
    background: #16181c;
}

/* -- Summen-Leiste --------------------------------------------
   Leer: neutral grau · mit Auswahl: schwarz (aktiv = schwarz,
   wie der Modal-Header) */
.lkp-sum-bar[b-vgpye9pgr8] {
    padding: 10px 14px;
    border-top: 1px solid #e4e4e7;
    flex-shrink: 0;
    transition: background 0.2s;
}

.lkp-sum-bar--empty[b-vgpye9pgr8] {
    background: #f5f5f7;
}

.lkp-sum-bar--active[b-vgpye9pgr8] {
    background: #16181c;
    border-top-color: #16181c;
}

.lkp-sum-hint[b-vgpye9pgr8] {
    font-size: 11px;
    color: #80858d;
    font-weight: 500;
    display: block;
    text-align: center;
}

.lkp-sum-content[b-vgpye9pgr8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

/* Inhalt existiert nur bei aktiver (schwarzer) Leiste → weiß */
.lkp-sum-left[b-vgpye9pgr8] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.8);
    flex: 1;
    min-width: 0;
}

    .lkp-sum-left svg[b-vgpye9pgr8] {
        flex-shrink: 0;
    }

.lkp-sum-kategorie-name[b-vgpye9pgr8] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lkp-sum-value[b-vgpye9pgr8] {
    display: flex;
    align-items: baseline;
    gap: 3px;
    flex-shrink: 0;
}

.lkp-sum-number[b-vgpye9pgr8] {
    font-size: 18px;
    font-weight: 800;
    color: white;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}

.lkp-sum-unit[b-vgpye9pgr8] {
    font-size: 12px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.65);
}


/* Schmale Scrollleiste — Werte 1:1 aus dem Aufmaß (.am-tree & Co.) */
.lkp-scroll[b-vgpye9pgr8] {
    scrollbar-width: thin;                 /* Firefox */
    scrollbar-color: #c6c9ce transparent;  /* Daumen · Spur */
}

.lkp-scroll[b-vgpye9pgr8]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.lkp-scroll[b-vgpye9pgr8]::-webkit-scrollbar-track {
    background: transparent;
}

.lkp-scroll[b-vgpye9pgr8]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .lkp-scroll[b-vgpye9pgr8]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

/* Fußzeile leer: Brotkrume der Schritte — der aktuelle in Tinte, Chevron-SVGs dazwischen
   (gleiche Werte in allen vier Pickern) */
.lkp-crumb[b-vgpye9pgr8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    max-width: 100%;
    min-width: 0;
    font-size: 11px;
    font-weight: 600;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
}

.lkp-crumb-step[b-vgpye9pgr8] {
    overflow: hidden;
    text-overflow: ellipsis;
}

.lkp-crumb-step--on[b-vgpye9pgr8] {
    color: #16181c;
    font-weight: 700;
}

.lkp-crumb-chev[b-vgpye9pgr8] {
    flex: none;
    color: #c0c3c9;
}
/* /Components/Pages/Calc/MaterialKostenPicker.razor.rz.scp.css */
/* --------------------------------------------------------------
   MaterialKostenPicker · Scoped Component Styles
   Monochrom (neues Design): Header schwarz wie das Positions-Modal,
   Hover grau, Auswahl/Summe schwarz — Struktur analog zu
   AufmassMengePicker.
-------------------------------------------------------------- */

.mkp-panel[b-umx8we9qcj] {
    display: flex;
    flex-direction: column;
    height: 100%;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    border-radius: 16px;
    overflow: hidden;
    width: 100%;
}

/* -- Header --------------------------------------------------- */
.mkp-header[b-umx8we9qcj] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px 13px;
    background: #16181c;
    flex-shrink: 0;
}

.mkp-header-icon[b-umx8we9qcj] {
    /* Nacktes Icon — kein Kasten (gilt im ganzen Wizard und in allen Pickern) */
    width: 20px;
    height: 20px;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.mkp-back-btn[b-umx8we9qcj] {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: transparent;
    border: none;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.15s;
}

    @media (hover: hover) {
        .mkp-back-btn:hover[b-umx8we9qcj] {
            background: rgba(255, 255, 255, 0.14);
        }
    }

.mkp-header-title-group[b-umx8we9qcj] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1;
    min-width: 0;
}

.mkp-header-label[b-umx8we9qcj] {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mkp-header-title[b-umx8we9qcj] {
    font-size: 13px;
    font-weight: 700;
    color: white;
}

/* -- Suchleiste ----------------------------------------------- */
.mkp-search-bar[b-umx8we9qcj] {
    padding: 10px 12px 8px;
    background: #f5f5f7;
    border-bottom: 1px solid #e4e4e7;
    flex-shrink: 0;
}

.mkp-search-wrap[b-umx8we9qcj] {
    display: flex;
    align-items: center;
    background: white;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 0 10px;
    gap: 6px;
    transition: border-color 0.18s, box-shadow 0.18s;
}

    .mkp-search-wrap:focus-within[b-umx8we9qcj] {
        border-color: #16181c;
        box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
    }

.mkp-search-icon[b-umx8we9qcj] {
    color: #80858d;
    flex-shrink: 0;
}

.mkp-search-input[b-umx8we9qcj] {
    flex: 1;
    border: none;
    background: transparent;
    padding: 9px 0;
    font-size: 14px;
    color: #16181c;
    font-family: inherit;
    outline: none;
    min-width: 0;
}

    .mkp-search-input[b-umx8we9qcj]::placeholder {
        color: #80858d;
    }

.mkp-search-clear[b-umx8we9qcj] {
    background: #efeff1;
    border: none;
    color: #3c4148;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    font-size: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    font-family: inherit;
    transition: background 0.15s, color 0.15s;
}

    @media (hover: hover) {
        .mkp-search-clear:hover[b-umx8we9qcj] {
            background: #16181c;
            color: white;
        }
    }

/* -- Scroll-Container ----------------------------------------- */
.mkp-scroll[b-umx8we9qcj] {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    background: white;
}

/* -- Leer-Zustand --------------------------------------------- */
.mkp-empty[b-umx8we9qcj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 36px 20px;
    color: #80858d;
    text-align: center;
}

    .mkp-empty svg[b-umx8we9qcj] {
        color: #c0c3c9;
    }

    .mkp-empty p[b-umx8we9qcj] {
        margin: 0;
        font-size: 13px;
        font-weight: 600;
        color: #3c4148;
    }

    .mkp-empty span[b-umx8we9qcj] {
        font-size: 11px;
        color: #80858d;
    }

/* -- Zeilen allgemein ----------------------------------------- */
.mkp-row[b-umx8we9qcj] {
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    padding: 11px 14px;
    background: none;
    border: none;
    border-bottom: 1px solid #f2f2f4;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    transition: background 0.14s;
}

    .mkp-row:last-child[b-umx8we9qcj] {
        border-bottom: none;
    }

    @media (hover: hover) {
        .mkp-row:hover[b-umx8we9qcj] {
            background: #efeff1;
        }
    }

/* -- Hersteller / Kategorie Zeilen --------------------------- */
.mkp-row-icon[b-umx8we9qcj] {
    width: 22px;
    height: 22px;
    color: #3c4148;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.mkp-row-body[b-umx8we9qcj] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.mkp-row-breadcrumb[b-umx8we9qcj] {
    font-size: 10px;
    font-weight: 600;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    letter-spacing: 0.01em;
}

.mkp-row-title[b-umx8we9qcj] {
    font-size: 13px;
    font-weight: 700;
    color: #16181c;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mkp-row-meta[b-umx8we9qcj] {
    font-size: 11px;
    color: #80858d;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}

.mkp-chevron[b-umx8we9qcj] {
    color: #c0c3c9;
    flex-shrink: 0;
}

/* -- Produkt-Zeilen ------------------------------------------- */
.mkp-row--produkt[b-umx8we9qcj] {
    padding: 10px 14px;
}

/* -- Suchergebnis-Zeilen (haben Breadcrumb, daher etwas mehr Abstand) -- */
.mkp-row--search-result[b-umx8we9qcj] {
    align-items: flex-start;
    padding: 10px 14px;
}

    .mkp-row--search-result .mkp-product-check[b-umx8we9qcj] {
        margin-top: 3px;
    }

.mkp-row--selected[b-umx8we9qcj] {
    background: #efeff1;
}

    @media (hover: hover) {
        .mkp-row--selected:hover[b-umx8we9qcj] {
            background: #e7e7ea;
        }
    }

.mkp-product-check[b-umx8we9qcj] {
    width: 20px;
    height: 20px;
    border-radius: 6px;
    border: 1.5px solid #c0c3c9;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.14s, border-color 0.14s;
    color: white;
}

.mkp-row--selected .mkp-product-check[b-umx8we9qcj] {
    background: #16181c;
    border-color: #16181c;
}

/* -- Kosten-Badge ---------------------------------------------- */
.mkp-cost-badge[b-umx8we9qcj] {
    font-size: 11px;
    font-weight: 700;
    color: #80858d;
    background: #efeff1;
    border-radius: 20px;
    padding: 3px 9px;
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    transition: background 0.14s, color 0.14s;
    align-self: center;
}

.mkp-cost-badge--selected[b-umx8we9qcj] {
    color: white;
    background: #16181c;
}

/* -- Summen-Leiste --------------------------------------------
   Leer: neutral grau · mit Auswahl: schwarz (aktiv = schwarz,
   wie der Modal-Header) */
.mkp-sum-bar[b-umx8we9qcj] {
    padding: 10px 14px;
    border-top: 1px solid #e4e4e7;
    flex-shrink: 0;
    transition: background 0.2s;
}

.mkp-sum-bar--empty[b-umx8we9qcj] {
    background: #f5f5f7;
}

.mkp-sum-bar--active[b-umx8we9qcj] {
    background: #16181c;
    border-top-color: #16181c;
}

.mkp-sum-hint[b-umx8we9qcj] {
    font-size: 11px;
    color: #80858d;
    font-weight: 500;
    display: block;
    text-align: center;
}

.mkp-sum-content[b-umx8we9qcj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

/* Inhalt existiert nur bei aktiver (schwarzer) Leiste → weiß */
.mkp-sum-left[b-umx8we9qcj] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.8);
    flex: 1;
    min-width: 0;
}

    .mkp-sum-left svg[b-umx8we9qcj] {
        flex-shrink: 0;
    }

.mkp-sum-product-name[b-umx8we9qcj] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mkp-sum-value[b-umx8we9qcj] {
    display: flex;
    align-items: baseline;
    gap: 3px;
    flex-shrink: 0;
}

.mkp-sum-number[b-umx8we9qcj] {
    font-size: 18px;
    font-weight: 800;
    color: white;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}

.mkp-sum-unit[b-umx8we9qcj] {
    font-size: 12px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.65);
}

/* --------------------------------------------------------------
   Verbrauch-Popup
-------------------------------------------------------------- */

.mkp-popup-backdrop[b-umx8we9qcj] {
    position: absolute;
    inset: 0;
    background: rgba(22, 24, 28, 0.35);
    border-radius: 16px;
    z-index: 10;
}

.mkp-popup[b-umx8we9qcj] {
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 12px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
    z-index: 11;
    overflow: hidden;
    animation: mkp-popup-in-b-umx8we9qcj 0.18s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes mkp-popup-in-b-umx8we9qcj {
    from {
        opacity: 0;
        transform: translateY(12px) scale(0.97);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* -- Popup Header --------------------------------------------- */
.mkp-popup-header[b-umx8we9qcj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px 10px;
    background: #f5f5f7;
    border-bottom: 1px solid #e4e4e7;
}

.mkp-popup-header-left[b-umx8we9qcj] {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    color: #16181c;
    flex: 1;
}

.mkp-popup-title-group[b-umx8we9qcj] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.mkp-popup-title[b-umx8we9qcj] {
    font-size: 13px;
    font-weight: 700;
    color: #16181c;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}

.mkp-popup-subtitle[b-umx8we9qcj] {
    font-size: 11px;
    font-weight: 500;
    color: #80858d;
    display: block;
}

.mkp-popup-close[b-umx8we9qcj] {
    width: 26px;
    height: 26px;
    border-radius: 7px;
    border: none;
    background: #efeff1;
    color: #3c4148;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    padding: 0;
    transition: background 0.14s, color 0.14s;
}

    @media (hover: hover) {
        .mkp-popup-close:hover[b-umx8we9qcj] {
            background: #16181c;
            color: white;
        }
    }

/* -- Hint ----------------------------------------------------- */
.mkp-popup-hint[b-umx8we9qcj] {
    margin: 0;
    padding: 8px 14px 4px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #80858d;
}

/* -- Optionen-Liste ------------------------------------------- */
.mkp-popup-options[b-umx8we9qcj] {
    display: flex;
    flex-direction: column;
    max-height: 220px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
}

.mkp-popup-option[b-umx8we9qcj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 14px;
    background: none;
    border: none;
    border-bottom: 1px solid #f2f2f4;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    transition: background 0.12s;
}

    .mkp-popup-option:last-child[b-umx8we9qcj] {
        border-bottom: none;
    }

    @media (hover: hover) {
        .mkp-popup-option:hover[b-umx8we9qcj] {
            background: #efeff1;
        }
    }

    .mkp-popup-option:active[b-umx8we9qcj] {
        background: #e7e7ea;
    }

/* Min-/Max-Verbrauch semantisch markiert (ruhige Statusfarben) */
.mkp-popup-option--first .mkp-popup-option-val[b-umx8we9qcj] {
    color: #16a34a;
}

.mkp-popup-option--last .mkp-popup-option-val[b-umx8we9qcj] {
    color: #e2483b;
}

.mkp-popup-option-val[b-umx8we9qcj] {
    font-size: 15px;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    display: flex;
    align-items: baseline;
    gap: 3px;
}

.mkp-popup-option-unit[b-umx8we9qcj] {
    font-size: 11px;
    font-weight: 500;
    color: #80858d;
}

.mkp-popup-option-cost[b-umx8we9qcj] {
    font-size: 12px;
    font-weight: 700;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}


/* --------------------------------------------------------------
   Multiplikator-Popup
-------------------------------------------------------------- */

.mkp-mult-body[b-umx8we9qcj] {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mkp-mult-formula[b-umx8we9qcj] {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #efeff1;
    border-radius: 12px;
    padding: 10px 14px;
    flex-wrap: wrap;
}

.mkp-mult-base[b-umx8we9qcj],
.mkp-mult-result[b-umx8we9qcj] {
    font-size: 16px;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.mkp-mult-op[b-umx8we9qcj],
.mkp-mult-eq[b-umx8we9qcj] {
    font-size: 18px;
    font-weight: 700;
    color: #80858d;
}

.mkp-mult-input[b-umx8we9qcj] {
    width: 72px;
    border: 2px solid #16181c;
    border-radius: 8px;
    padding: 5px 8px;
    font-size: 16px;
    font-weight: 700;
    color: #16181c;
    font-family: inherit;
    font-variant-numeric: tabular-nums;
    text-align: center;
    background: white;
    outline: none;
    transition: box-shadow 0.15s;
}

    .mkp-mult-input:focus[b-umx8we9qcj] {
        box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
    }

.mkp-mult-cost-preview[b-umx8we9qcj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
    background: #f5f5f7;
    border-radius: 10px;
}

.mkp-mult-cost-label[b-umx8we9qcj] {
    font-size: 12px;
    font-weight: 600;
    color: #80858d;
}

.mkp-mult-cost-value[b-umx8we9qcj] {
    font-size: 15px;
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.mkp-mult-confirm[b-umx8we9qcj] {
    background: #16181c;
    color: white;
    border: none;
    border-radius: 10px;
    padding: 11px 0;
    font-size: 14px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.15s;
}

    @media (hover: hover) {
        .mkp-mult-confirm:hover[b-umx8we9qcj] {
            background: #26282e;
        }
    }

    .mkp-mult-confirm:active[b-umx8we9qcj] {
        background: #101216;
    }


/* Schmale Scrollleiste — Werte 1:1 aus dem Aufmaß (.am-tree & Co.) */
.mkp-scroll[b-umx8we9qcj],
.mkp-popup-options[b-umx8we9qcj] {
    scrollbar-width: thin;                 /* Firefox */
    scrollbar-color: #c6c9ce transparent;  /* Daumen · Spur */
}

.mkp-scroll[b-umx8we9qcj]::-webkit-scrollbar,
.mkp-popup-options[b-umx8we9qcj]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.mkp-scroll[b-umx8we9qcj]::-webkit-scrollbar-track,
.mkp-popup-options[b-umx8we9qcj]::-webkit-scrollbar-track {
    background: transparent;
}

.mkp-scroll[b-umx8we9qcj]::-webkit-scrollbar-thumb,
.mkp-popup-options[b-umx8we9qcj]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .mkp-scroll[b-umx8we9qcj]::-webkit-scrollbar-thumb:hover,
    .mkp-popup-options[b-umx8we9qcj]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

/* Fußzeile leer: Brotkrume der Schritte — der aktuelle in Tinte, Chevron-SVGs dazwischen
   (gleiche Werte in allen vier Pickern) */
.mkp-crumb[b-umx8we9qcj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    max-width: 100%;
    min-width: 0;
    font-size: 11px;
    font-weight: 600;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
}

.mkp-crumb-step[b-umx8we9qcj] {
    overflow: hidden;
    text-overflow: ellipsis;
}

.mkp-crumb-step--on[b-umx8we9qcj] {
    color: #16181c;
    font-weight: 700;
}

.mkp-crumb-chev[b-umx8we9qcj] {
    flex: none;
    color: #c0c3c9;
}
/* /Components/Pages/Calc/MaterialTauschen.razor.rz.scp.css */
/* Material tauschen — Werte 1:1 vom Leistungspaket-Dialog (.lpe-*), damit sich alle
   Dialoge der Kalkulation gleich anfühlen. */

.mtd-head[b-1ewn250a3j] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.mtd-head-ico[b-1ewn250a3j] {
    /* Nacktes Icon — kein Kasten (Regel für die ganze App) */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    color: #16181c;
}

.mtd-head-text[b-1ewn250a3j] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.mtd-head-text h2[b-1ewn250a3j] {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: #16181c;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mtd-head-text span[b-1ewn250a3j] {
    font-size: 12px;
    font-weight: 600;
    color: #80858d;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* -- Zurück + gewähltes Material ----------------------------------------- */
.mtd-schritte[b-1ewn250a3j] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    margin-bottom: 12px;
}

.mtd-zurueck[b-1ewn250a3j] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex: none;
    min-height: 30px;
    padding: 0 11px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    color: #16181c;
    cursor: pointer;
}

@media (hover: hover) {
    .mtd-zurueck:hover[b-1ewn250a3j] {
        background: #f4f4f6;
        border-color: #cfd0d3;
    }
}

.mtd-von[b-1ewn250a3j] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
    font-weight: 700;
    color: #6f747d;
}

/* Anker für das Picker-Popover */
.mtd-inhalt[b-1ewn250a3j] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    /* dvh statt vh: auf iOS rechnet vh immer mit ausgeblendeter Safari-Leiste — mit
       eingeblendeter Leiste wäre der Dialog rund 50 px zu hoch für den Bildschirm. */
    height: clamp(280px, 52dvh, 460px);
}

/* Der Lager-Picker als Popover ÜBER der Liste — rechtsbündig wie die Seitenleiste des
   Wizards, die Liste bleibt links sichtbar. Schatten-Werte 1:1 aus .aufmass-picker-side. */
.mtd-picker-pop[b-1ewn250a3j] {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 5;
    display: flex;
    flex-direction: column;
    width: min(340px, 100%);
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
    overflow: hidden;
}

/* Kopfzeile: für welches Material der Ersatz gewählt wird */
.mtd-pick-kopf[b-1ewn250a3j] {
    flex: none;
    display: flex;
    align-items: baseline;
    gap: 6px;
    min-width: 0;
    padding: 10px 14px;
    border-bottom: 1px solid #f0f0f2;
    font-size: 11.5px;
    font-weight: 650;
    color: #80858d;
    white-space: nowrap;
}

.mtd-pick-kopf strong[b-1ewn250a3j] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 12px;
    font-weight: 800;
    color: #16181c;
}

/* Der Picker füllt den Rest; position:relative, weil sein Verbrauchs-Popup absolut
   positioniert ist und am nächsten positionierten Vorfahren ankert. */
.mtd-pick-body[b-1ewn250a3j] {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

/* Verwendungs-Spalte: Zahl links, Pfeil als Klick-Hinweis rechts */
.mtd-verwendet[b-1ewn250a3j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.mtd-verwendet svg[b-1ewn250a3j] {
    flex: none;
    color: #a2a6ad;
}

/* -- Wechsel-Zeile (A → B) ------------------------------------------------ */
.mtd-wechsel[b-1ewn250a3j] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex: none;
}

.mtd-wechsel svg[b-1ewn250a3j] {
    flex: none;
    color: #80858d;
}

.mtd-wechsel-teil[b-1ewn250a3j] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12.5px;
    font-weight: 700;
    color: #6f747d;
}

.mtd-wechsel-teil--neu[b-1ewn250a3j] {
    color: #16181c;
    font-weight: 800;
}

/* -- Tabelle -------------------------------------------------------------- */
.mtd-tabelle-wrap[b-1ewn250a3j] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    scrollbar-width: thin;
    scrollbar-color: #c6c9ce transparent;
}

.mtd-tabelle-wrap[b-1ewn250a3j]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.mtd-tabelle-wrap[b-1ewn250a3j]::-webkit-scrollbar-track {
    background: transparent;
}

.mtd-tabelle-wrap[b-1ewn250a3j]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .mtd-tabelle-wrap[b-1ewn250a3j]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

.mtd-tabelle[b-1ewn250a3j] {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    color: #16181c;
    font-size: 12px;
    table-layout: fixed;
}

.mtd-tabelle th[b-1ewn250a3j] {
    position: sticky;
    top: 0;
    z-index: 1;
    height: 32px;
    border-bottom: 1px solid #e4e4e7;
    background: #f5f5f7;
    color: #6f747d;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.mtd-tabelle th[b-1ewn250a3j],
.mtd-tabelle td[b-1ewn250a3j] {
    padding: 7px 10px;
    vertical-align: middle;
}

.mtd-tabelle td[b-1ewn250a3j] {
    border-bottom: 1px solid #ededf2;
    color: #6f747d;
    font-weight: 600;
    line-height: 1.3;
}

.mtd-tabelle tbody tr[b-1ewn250a3j] {
    background: #fff;
    cursor: pointer;
    transition: background 0.15s;
}

.mtd-tabelle tbody tr:last-child td[b-1ewn250a3j] {
    border-bottom: none;
}

@media (hover: hover) {
    .mtd-tabelle tbody tr:hover[b-1ewn250a3j] {
        background: #f7f7f9;
    }
}

/* Artikelliste: Material | Verwendet in */
.mtd-tabelle th:nth-child(1)[b-1ewn250a3j],
.mtd-tabelle td:nth-child(1)[b-1ewn250a3j] {
    width: 60%;
}

/* Vorschau: Position | Menge | bisher | neu — zum Lesen, kein Zeiger */
.mtd-tabelle--vorschau tbody tr[b-1ewn250a3j] {
    cursor: default;
}

@media (hover: hover) {
    .mtd-tabelle--vorschau tbody tr:hover[b-1ewn250a3j] {
        background: #fff;
    }
}

.mtd-tabelle--vorschau th:nth-child(1)[b-1ewn250a3j],
.mtd-tabelle--vorschau td:nth-child(1)[b-1ewn250a3j] {
    width: 48%;
}

.mtd-tabelle--vorschau th:nth-child(2)[b-1ewn250a3j],
.mtd-tabelle--vorschau td:nth-child(2)[b-1ewn250a3j],
.mtd-tabelle--vorschau th:nth-child(3)[b-1ewn250a3j],
.mtd-tabelle--vorschau td:nth-child(3)[b-1ewn250a3j],
.mtd-tabelle--vorschau th:nth-child(4)[b-1ewn250a3j],
.mtd-tabelle--vorschau td:nth-child(4)[b-1ewn250a3j] {
    text-align: right;
}

.mtd-titel-cell[b-1ewn250a3j] {
    overflow: hidden;
}

.mtd-titel[b-1ewn250a3j] {
    color: #16181c;
    font-weight: 750;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mtd-zahl[b-1ewn250a3j] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.mtd-zahl--neu[b-1ewn250a3j] {
    color: #16181c;
    font-weight: 800;
}

/* Ausgelassene Zeile (Ersatz schon enthalten) bleibt lesbar, tritt aber sichtbar zurück —
   gleicher Wert wie .pfl-row--aus im Preise-Dialog */
.mtd-row--aus td[b-1ewn250a3j] {
    opacity: 0.45;
}

.mtd-delta[b-1ewn250a3j] {
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.mtd-delta--plus[b-1ewn250a3j] {
    color: #a15c07;
}

.mtd-delta--minus[b-1ewn250a3j] {
    color: #1d7a46;
}

/* Pille an der Beschreibung (Werte aus .lpe-pille) */
.mtd-pille[b-1ewn250a3j] {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    min-height: 18px;
    margin-left: 6px;
    padding: 0 6px;
    border-radius: 999px;
    background: #efeff1;
    color: #16181c;
    font-family: 'JetBrains Mono', ui-monospace, 'SF Mono', monospace;
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: -0.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mtd-pille--warn[b-1ewn250a3j] {
    background: #fdf6e8;
    color: #7a5a1a;
}

.mtd-leer[b-1ewn250a3j] {
    margin: 16px 0 0;
    padding: 0 12px;
    font-size: 12.5px;
    font-weight: 600;
    color: #8a8f98;
}

/* Sagt, was zu tun ist — ersetzt Tooltip und Hover-Hervorhebung (auf dem iPad beides tot). */
.mtd-anleitung[b-1ewn250a3j] {
    margin: 0 0 10px;
    padding: 0 2px;
    font-size: 12px;
    font-weight: 600;
    color: #6f747d;
}

/* -- Ergebniszeile -------------------------------------------------------- */
.mtd-ergebnis[b-1ewn250a3j] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    flex: none;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f5f5f7;
}

.mtd-ergebnis-label[b-1ewn250a3j] {
    font-size: 12.5px;
    font-weight: 700;
    color: #6f747d;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mtd-ergebnis-summe[b-1ewn250a3j] {
    flex: none;
    display: inline-flex;
    align-items: baseline;
    gap: 7px;
    font-size: 15px;
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.mtd-ergebnis-summe svg[b-1ewn250a3j] {
    align-self: center;
    color: #80858d;
}

.mtd-ergebnis-summe .mtd-delta[b-1ewn250a3j] {
    font-size: 12px;
}
/* /Components/Pages/Calc/NachkalkUebersicht.razor.rz.scp.css */
/* ==============================================================
   Nachkalkulations-Übersicht /nachkalkulation (monochromes Design)
   ============================================================== */

/* Vollhöhen-Shell unter dem Header mit eigenem Scrollbereich — gleiches Muster
   und derselbe graue Grund wie die Settings-Seiten, damit die weißen Karten
   zum Header-Band passen. */
.nku-page[b-qsqwy9wsm9] {
    height: calc(100vh - var(--app-header-h));
    height: calc(100dvh - var(--app-header-h));
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 22px 20px 48px;
    background: #f5f5f7;
    color: #16181c;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.nku-inner[b-qsqwy9wsm9] {
    max-width: 1220px;
    margin: 0 auto;
}

/* -- Kopf ---------------------------------------------------------------- */
.nku-head[b-qsqwy9wsm9] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px 16px;
    margin-bottom: 12px;
}

.nku-kicker[b-qsqwy9wsm9] {
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6f747d;
}

.nku-titel[b-qsqwy9wsm9] {
    margin: 2px 0 0;
    font-size: 1.5rem;
    font-weight: 850;
    color: #16181c;
}

/* Kennzahlen-Info im Kopf (ersetzt Erklär-Tooltips an den Zeilen). */
.nku-info-wrap[b-qsqwy9wsm9] {
    position: relative;
}

.nku-info-trigger[b-qsqwy9wsm9] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1.5px solid #e4e4e7;
    background: #ffffff;
    border-radius: 999px;
    padding: 7px 13px;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 700;
    color: #6f747d;
    cursor: pointer;
}

@media (hover: hover) {
    .nku-info-trigger:hover[b-qsqwy9wsm9] {
        background: #f7f7f9;
        color: #16181c;
    }
}

.nku-info-trigger.is-open[b-qsqwy9wsm9] {
    border-color: #16181c;
    background: #16181c;
    color: #ffffff;
}

.nku-info-popover[b-qsqwy9wsm9] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 90;
    width: min(460px, calc(100vw - 40px));
    padding: 14px 16px;
    background: #ffffff;
    border: 1.5px solid #e4e4e7;
    border-radius: 14px;
    box-shadow: 0 18px 42px rgba(28, 28, 30, 0.16);
}

.nku-info-popover p[b-qsqwy9wsm9] {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 500;
    color: #3c4148;
    line-height: 1.55;
}

.nku-info-popover p + p[b-qsqwy9wsm9] {
    margin-top: 8px;
}

.nku-info-popover strong[b-qsqwy9wsm9] {
    color: #16181c;
}

/* -- Werkzeugzeile: Suche + Sortier-/Filter-Popover ----------------------- */
.nku-toolbar[b-qsqwy9wsm9] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
}

/* Suchfeld — Werte 1:1 wie .lg-search im Lager, damit beide gleich aussehen. */
.nku-suche[b-qsqwy9wsm9] {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 240px;
    min-width: 200px;
    max-width: 420px;
    height: 40px;
    padding: 0 10px 0 36px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    transition: border-color 0.15s, box-shadow 0.15s;
}

.nku-suche:focus-within[b-qsqwy9wsm9] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.nku-suche > svg[b-qsqwy9wsm9] {
    position: absolute;
    left: 11px;
    color: #80858d;
    pointer-events: none;
}

.nku-suche input[b-qsqwy9wsm9] {
    flex: 1 1 auto;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    font: inherit;
    font-size: 0.92rem;
    color: #16181c;
}

.nku-suche input[b-qsqwy9wsm9]::placeholder {
    color: #9aa0a8;
}

/* Sortier-/Filter-Popover — EXAKT die Optik von /lager (Klassen und Werte 1:1
   aus Lager.razor.css übernommen, scoped auf diese Seite). */
.sort-filter-wrap[b-qsqwy9wsm9] {
    position: relative;
    flex: 0 0 auto;
}

.btn-sort-filter[b-qsqwy9wsm9] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    min-width: 40px;
    height: 40px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #fff;
    color: #3c4148;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    padding: 0;
    cursor: pointer;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

@media (hover: hover) {
    .btn-sort-filter:hover[b-qsqwy9wsm9] {
        border-color: #e4e4e7;
        background: #efeff1;
        color: #16181c;
    }
}

.btn-sort-filter--open[b-qsqwy9wsm9],
.btn-sort-filter--active[b-qsqwy9wsm9] {
    border-color: #16181c;
    background: #16181c;
    color: #fff;
}

@media (hover: hover) {
    .btn-sort-filter--open:hover[b-qsqwy9wsm9],
    .btn-sort-filter--active:hover[b-qsqwy9wsm9] {
        border-color: #26282e;
        background: #26282e;
        color: #fff;
    }
}

/* Zähler-Badge am Filterknopf — zeigt, wie viele Filter gerade greifen. */
.btn-sort-filter-count[b-qsqwy9wsm9] {
    position: absolute;
    top: -5px;
    right: -5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border: 2px solid #fff;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    font-size: 9.5px;
    font-weight: 900;
    font-style: normal;
    font-variant-numeric: tabular-nums;
    box-sizing: content-box;
}

.lgf-popover[b-qsqwy9wsm9] {
    position: absolute;
    top: 48px;
    right: 0;
    z-index: 80;
    display: flex;
    flex-direction: column;
    width: min(360px, calc(100vw - 24px));
    max-width: calc(100vw - 24px);
    max-height: min(560px, calc(100dvh - 24px));
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 18px 52px rgba(28,28,30,0.18);
    overflow: hidden;
}

.lgf-scroll[b-qsqwy9wsm9] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #c6c9ce transparent;
}

.lgf-scroll[b-qsqwy9wsm9]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.lgf-scroll[b-qsqwy9wsm9]::-webkit-scrollbar-track {
    background: transparent;
}

.lgf-scroll[b-qsqwy9wsm9]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .lgf-scroll[b-qsqwy9wsm9]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

.lgf-group[b-qsqwy9wsm9] {
    padding: 10px 12px;
    border-bottom: 1px solid #ededf2;
}

.lgf-label[b-qsqwy9wsm9] {
    margin-bottom: 7px;
    color: #80858d;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.lgf-pills[b-qsqwy9wsm9] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.lgf-pill[b-qsqwy9wsm9] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 26px;
    padding: 0 10px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    color: #16181c;
    text-align: left;
    cursor: pointer;
}

@media (hover: hover) {
    .lgf-pill:hover[b-qsqwy9wsm9] {
        background: #efeff1;
    }
}

.lgf-pill--on[b-qsqwy9wsm9] {
    background: #16181c;
    color: #fff;
    border-color: #16181c;
}

/* Aktive Pille dunkel halten — sonst überdeckt der helle Hover die weiße Schrift. */
@media (hover: hover) {
    .lgf-pill--on:hover[b-qsqwy9wsm9] {
        background: #000;
        color: #fff;
        border-color: #000;
    }
}

.lgf-pill:focus-visible[b-qsqwy9wsm9] {
    outline: 2px solid #16181c;
    outline-offset: 2px;
}

/* Richtungspfeil nur an der aktiven Sortier-Pille — er zeigt, was der nächste Klick umdreht. */
.lgf-arrow[b-qsqwy9wsm9] {
    flex: 0 0 auto;
    margin-right: -1px;
}

.lgf-dot[b-qsqwy9wsm9] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
    background: #b4b9c0;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

/* Gehören zum kopierten Lager-Block (dort rot = Negativbestand, gelb = Mindestbestand):
   bewusst mit übernommen, damit die Kopie 1:1 bleibt. */
.lgf-dot--neg[b-qsqwy9wsm9] { background: #d92d20; }
.lgf-dot--warn[b-qsqwy9wsm9] { background: #e9a53a; }

.lgf-count[b-qsqwy9wsm9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: #efeff1;
    color: #52525b;
    font-size: 9.5px;
    font-weight: 800;
    font-style: normal;
    font-variant-numeric: tabular-nums;
}

.lgf-pill--on .lgf-count[b-qsqwy9wsm9] {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}

.lgf-foot[b-qsqwy9wsm9] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    border-top: 1px solid #ededf2;
    background: #fff;
}

.lgf-reset[b-qsqwy9wsm9] {
    border: 0;
    background: transparent;
    color: #80858d;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}

.lgf-done[b-qsqwy9wsm9] {
    height: 30px;
    padding: 0 14px;
    border: 1px solid #16181c;
    border-radius: 8px;
    background: #16181c;
    color: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

/* -- Leer-/Fehlerzustände ------------------------------------------------ */
.nku-leer[b-qsqwy9wsm9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 60px 24px;
    text-align: center;
    background: #ffffff;
    border: 1.5px solid #e4e4e7;
    border-radius: 14px;
    color: #3c4148;
}

.nku-leer strong[b-qsqwy9wsm9] {
    color: #16181c;
    font-weight: 800;
}

.nku-leer span[b-qsqwy9wsm9] {
    font-size: 0.85rem;
    font-weight: 500;
    color: #6f747d;
}

.nku-leer--liste[b-qsqwy9wsm9] {
    border: 0;
    padding: 40px 24px;
}

/* -- Hinweis auf fehlende Stundensätze ----------------------------------- */
/* Gleiche Karte wie sonst auf der Seite, nur als Zeile mit Warnzeichen — ohne den
   Hinweis liest man 0 € Lohn als Tatsache. */
.nku-warnung[b-qsqwy9wsm9] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 14px;
    padding: 12px 16px;
    background: #ffffff;
    border: 1.5px solid #e4e4e7;
    border-radius: 14px;
}

.nku-warnung > svg[b-qsqwy9wsm9] {
    flex: 0 0 auto;
    margin-top: 1px;
    color: #c0392b;
}

.nku-warnung-text[b-qsqwy9wsm9] {
    min-width: 0;
}

.nku-warnung-text p[b-qsqwy9wsm9] {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 500;
    color: #3c4148;
    line-height: 1.5;
}

.nku-warnung-text p + p[b-qsqwy9wsm9] {
    margin-top: 5px;
}

.nku-warnung-text strong[b-qsqwy9wsm9] {
    font-weight: 800;
    color: #16181c;
}

/* -- Firmen-Summe (Ergebnis-Rechnung wie im Baustellen-Tab) -------------- */
.nku-summe[b-qsqwy9wsm9] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1.35fr) auto minmax(0, 1.15fr);
    gap: 18px;
    align-items: start;
    margin-bottom: 14px;
    background: #ffffff;
    border: 1.5px solid #e4e4e7;
    border-radius: 14px;
    padding: 16px 18px;
}

.nku-summe-seg[b-qsqwy9wsm9] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.nku-summe-label[b-qsqwy9wsm9] {
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6f747d;
}

.nku-summe-value[b-qsqwy9wsm9] {
    font-size: 1.3rem;
    font-weight: 850;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.nku-summe-value--db[b-qsqwy9wsm9] {
    font-size: 1.65rem;
    line-height: 1.15;
}

.nku-summe-sub[b-qsqwy9wsm9] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #6f747d;
    line-height: 1.45;
}

.nku-summe-op[b-qsqwy9wsm9] {
    padding-top: 21px;
    font-size: 1.05rem;
    font-weight: 800;
    color: #b6bac0;
    user-select: none;
}

.nku-pos[b-qsqwy9wsm9] { color: #1e7d45; }
.nku-neg[b-qsqwy9wsm9] { color: #c0392b; }

/* -- Monats-Verlauf ------------------------------------------------------ */
.nku-chart[b-qsqwy9wsm9] {
    margin-bottom: 14px;
    background: #ffffff;
    border: 1.5px solid #e4e4e7;
    border-radius: 14px;
    padding: 12px 16px 10px;
}

.nku-chart-kopf[b-qsqwy9wsm9] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
}

.nku-chart-titel[b-qsqwy9wsm9] {
    font-size: 0.8rem;
    font-weight: 750;
    color: #16181c;
}

.nku-zeitraum[b-qsqwy9wsm9] {
    display: inline-flex;
    padding: 2px;
    border: 1.5px solid #e4e4e7;
    border-radius: 999px;
    background: #ffffff;
}

.nku-zeitraum-btn[b-qsqwy9wsm9] {
    border: 0;
    background: transparent;
    border-radius: 999px;
    padding: 4px 11px;
    font-size: 0.72rem;
    font-weight: 750;
    color: #6f747d;
    cursor: pointer;
    white-space: nowrap;
}

.nku-zeitraum-btn.is-active[b-qsqwy9wsm9] {
    background: #16181c;
    color: #ffffff;
}

/* Monats-Chips: Klick klappt die Aufteilung des Monats nach Baustellen auf. */
.nku-monate[b-qsqwy9wsm9] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.nku-monat-chip[b-qsqwy9wsm9] {
    border: 1.5px solid #e4e4e7;
    background: #ffffff;
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #6f747d;
    cursor: pointer;
    font-variant-numeric: tabular-nums;
}

@media (hover: hover) {
    .nku-monat-chip:hover[b-qsqwy9wsm9] {
        background: #f7f7f9;
    }
}

.nku-monat-chip.is-active[b-qsqwy9wsm9] {
    border-color: #16181c;
    background: #16181c;
    color: #ffffff;
}

.nku-monat-detail[b-qsqwy9wsm9] {
    margin-top: 10px;
    padding: 10px 12px;
    background: #f7f7f9;
    border: 1px solid #ececee;
    border-radius: 12px;
}

.nku-monat-detail-titel[b-qsqwy9wsm9] {
    display: block;
    margin-bottom: 6px;
    font-size: 0.76rem;
    font-weight: 800;
    color: #16181c;
}

.nku-monat-zeile[b-qsqwy9wsm9] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 3px 0;
    font-size: 0.8rem;
    font-weight: 600;
    color: #3c4148;
}

.nku-monat-betrag[b-qsqwy9wsm9] {
    font-variant-numeric: tabular-nums;
    color: #16181c;
    font-weight: 750;
    white-space: nowrap;
}

.nku-monat-leer[b-qsqwy9wsm9] {
    font-size: 0.78rem;
    font-weight: 500;
    color: #8a8f98;
}

/* -- Jahresbilanz -------------------------------------------------------- */
.nku-jahre[b-qsqwy9wsm9] {
    margin-bottom: 14px;
    background: #ffffff;
    border: 1.5px solid #e4e4e7;
    border-radius: 14px;
    padding: 12px 16px 10px;
}

/* Kopf der Jahres-Tabelle: Titel + Hinweis, dass hier VOLLE Kalenderjahre stehen —
   der Zeitraum-Schalter des Diagramms wirkt bewusst nicht auf diese Tabelle. */
.nku-jahre-kopf[b-qsqwy9wsm9] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 10px;
}

.nku-jahre-hinweis[b-qsqwy9wsm9] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #8a8f98;
}

.nku-jahr-zeile[b-qsqwy9wsm9] {
    display: grid;
    grid-template-columns: 64px repeat(5, minmax(90px, 1fr));
    gap: 12px;
    align-items: center;
    padding: 6px 0;
    border-top: 1px solid #f0f0f2;
    font-size: 0.84rem;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.nku-jahr-zeile--kopf[b-qsqwy9wsm9] {
    margin-top: 6px;
    border-top: 0;
    padding: 4px 0;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6f747d;
}

.nku-jahr-gesamt[b-qsqwy9wsm9] {
    font-weight: 850;
}

/* -- Listen (Baustellen / Kunden) ---------------------------------------- */
.nku-liste[b-qsqwy9wsm9] {
    background: #ffffff;
    border: 1.5px solid #e4e4e7;
    border-radius: 14px;
    padding: 6px 16px 10px;
}

.nku-liste-kopf[b-qsqwy9wsm9],
.nku-zeile[b-qsqwy9wsm9] {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) 84px minmax(88px, auto) minmax(88px, auto) minmax(125px, auto) minmax(115px, auto) minmax(110px, 1fr) 56px;
    gap: 13px;
    align-items: center;
}

.nku-liste-kopf--kunden[b-qsqwy9wsm9],
.nku-zeile--kunden[b-qsqwy9wsm9] {
    grid-template-columns: minmax(0, 1.7fr) minmax(90px, auto) minmax(125px, auto) minmax(115px, auto) minmax(130px, 1fr) 56px;
}

.nku-liste-kopf[b-qsqwy9wsm9] {
    padding: 10px 0 8px;
    border-bottom: 1px solid #e4e4e7;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6f747d;
}

.nku-kopf-abw[b-qsqwy9wsm9] {
    text-align: center;
}

.nku-zeile[b-qsqwy9wsm9] {
    width: 100%;
    padding: 10px 0;
    border: 0;
    border-top: 1px solid #f0f0f2;
    background: transparent;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.nku-zeile:first-of-type[b-qsqwy9wsm9] {
    border-top: 0;
}

@media (hover: hover) {
    .nku-zeile:hover[b-qsqwy9wsm9] {
        background: #f7f7f9;
    }
}

.nku-bs[b-qsqwy9wsm9] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.nku-bs-name[b-qsqwy9wsm9] {
    font-size: 0.88rem;
    font-weight: 750;
    color: #16181c;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nku-bs-meta[b-qsqwy9wsm9] {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    font-size: 0.74rem;
    font-weight: 600;
    color: #6f747d;
}

.nku-bs-kunde[b-qsqwy9wsm9] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Status als farbige Pille (Statusfarbe wie überall in der App). */
.nku-status[b-qsqwy9wsm9] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    color: #ffffff;
    font-size: 0.68rem;
    font-weight: 750;
    white-space: nowrap;
}

/* Mini-Kostenkurve (kumulierte Monatswerte) je Zeile. */
.nku-spark[b-qsqwy9wsm9] {
    height: 24px;
}

.nku-spark svg[b-qsqwy9wsm9] {
    width: 100%;
    height: 100%;
}

.nku-spark polyline[b-qsqwy9wsm9] {
    fill: none;
    stroke: #6f747d;
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}

.nku-r[b-qsqwy9wsm9] {
    text-align: right;
}

.nku-geld[b-qsqwy9wsm9] {
    font-size: 0.84rem;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.nku-std[b-qsqwy9wsm9] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    font-size: 0.82rem;
    font-weight: 750;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.nku-std em[b-qsqwy9wsm9],
.nku-kosten em[b-qsqwy9wsm9],
.nku-marge[b-qsqwy9wsm9] {
    font-style: normal;
    font-size: 0.72rem;
    font-weight: 600;
    color: #8a8f98;
}

/* Stunden ohne hinterlegten Stundensatz: stehen mit 0 € im Ist-Lohn. */
.nku-std em.nku-ohne-satz[b-qsqwy9wsm9] {
    color: #c0392b;
    font-weight: 700;
}

.nku-kosten[b-qsqwy9wsm9] {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.nku-prognose.nku-neg[b-qsqwy9wsm9] {
    color: #c0392b;
}

.nku-db[b-qsqwy9wsm9] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    font-weight: 800;
}

/* ±Plan: zwei Halbseiten um die Nulllinie — unter Plan wächst grün nach links,
   über Plan rot nach rechts; ab 50 % Abweichung ist die Halbseite voll. */
.nku-abw[b-qsqwy9wsm9] {
    display: flex;
    align-items: center;
    height: 10px;
    border-radius: 999px;
    background: #efeff1;
    overflow: hidden;
}

.nku-abw-half[b-qsqwy9wsm9] {
    position: relative;
    flex: 1 1 50%;
    height: 100%;
    display: flex;
    justify-content: flex-end;
}

.nku-abw-half--rechts[b-qsqwy9wsm9] {
    justify-content: flex-start;
    border-left: 2px solid #ffffff;
}

.nku-abw-fill[b-qsqwy9wsm9] {
    height: 100%;
}

.nku-abw-fill--unter[b-qsqwy9wsm9] {
    background: #1e7d45;
    border-radius: 999px 0 0 999px;
}

.nku-abw-fill--ueber[b-qsqwy9wsm9] {
    background: #c0392b;
    border-radius: 0 999px 999px 0;
}

.nku-abw-text[b-qsqwy9wsm9] {
    font-size: 0.8rem;
    font-weight: 750;
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    color: #6f747d;
}

/* -- Responsive ---------------------------------------------------------- */
@media (max-width: 1150px) {
    .nku-summe[b-qsqwy9wsm9] {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .nku-summe-op[b-qsqwy9wsm9] {
        display: none;
    }

    /* Sparkline + Umsatz-Spalte weglassen — Kosten/DB/±Plan tragen die Aussage. */
    .nku-liste-kopf:not(.nku-liste-kopf--kunden) > span:nth-child(2)[b-qsqwy9wsm9],
    .nku-liste-kopf:not(.nku-liste-kopf--kunden) > span:nth-child(4)[b-qsqwy9wsm9],
    .nku-spark[b-qsqwy9wsm9],
    .nku-umsatz[b-qsqwy9wsm9] {
        display: none;
    }

    .nku-liste-kopf:not(.nku-liste-kopf--kunden)[b-qsqwy9wsm9],
    .nku-zeile:not(.nku-zeile--kunden)[b-qsqwy9wsm9] {
        grid-template-columns: minmax(0, 1.5fr) minmax(88px, auto) minmax(125px, auto) minmax(115px, auto) minmax(110px, 1fr) 56px;
    }
}

@media (max-width: 640px) {
    .nku-page[b-qsqwy9wsm9] {
        padding: 16px 12px 32px;
    }

    .nku-liste-kopf[b-qsqwy9wsm9] {
        display: none;
    }

    /* Zeile als kleiner Stapel: oben Name + DB, dann Kosten, dann Balken + Prozent. */
    .nku-zeile[b-qsqwy9wsm9],
    .nku-zeile--kunden[b-qsqwy9wsm9] {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "bs   db"
            "kost kost"
            "abw  text";
        gap: 6px 10px;
    }

    .nku-bs[b-qsqwy9wsm9] { grid-area: bs; }
    .nku-db[b-qsqwy9wsm9] { grid-area: db; text-align: right; }
    .nku-kosten[b-qsqwy9wsm9] { grid-area: kost; flex-direction: row; flex-wrap: wrap; gap: 6px; align-items: baseline; text-align: left; }
    .nku-abw[b-qsqwy9wsm9] { grid-area: abw; }
    .nku-abw-text[b-qsqwy9wsm9] { grid-area: text; }

    .nku-std[b-qsqwy9wsm9] {
        display: none;
    }
}

/* -- Mobil: Sortier-/Filter-Popover als Sheet am unteren Bildrand — Werte 1:1 aus
   Lager.razor.css (@media max-width: 600px), damit sich das Popover auf dem Handy
   genauso verhält wie im Lager. Absolut unter der Toolbar verankert liefe es unten
   aus dem Bild: .nku-page hat feste Höhe mit eigenem Scrollbereich, die Fußleiste
   (Zurücksetzen/Fertig) wäre kaum erreichbar. position:fixed bricht aus dem
   Scrollbereich aus, die Unterkante sitzt fest am Viewport, der Inhalt scrollt
   darüber. */
@media (max-width: 600px) {
    .nku-toolbar[b-qsqwy9wsm9] { position: relative; }
    .sort-filter-wrap[b-qsqwy9wsm9] { position: static; }

    .lgf-popover[b-qsqwy9wsm9] {
        position: fixed;
        top: auto;
        left: 12px;
        right: 12px;
        bottom: max(12px, env(safe-area-inset-bottom));
        width: auto;
        max-width: none;
        max-height: min(560px, calc(100dvh - var(--app-header-h) - 24px));
    }
}
/* /Components/Pages/Calc/PapierkorbDialog.razor.rz.scp.css */
/* Papierkorb (Punkt 30) — Werte 1:1 vom Preise-Dialog (.pfl-*), damit sich alle Dialoge
   der Kalkulation gleich anfühlen. */

.ppk-head[b-1wvrvdzfp0] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.ppk-head-ico[b-1wvrvdzfp0] {
    /* Nacktes Icon — kein Kasten (Regel für die ganze App) */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    color: #16181c;
}

.ppk-head-text[b-1wvrvdzfp0] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ppk-head-text h2[b-1wvrvdzfp0] {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: #16181c;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ppk-head-text span[b-1wvrvdzfp0] {
    font-size: 12px;
    font-weight: 600;
    color: #80858d;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ppk-inhalt[b-1wvrvdzfp0] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    /* dvh statt vh: auf iOS rechnet vh immer mit ausgeblendeter Safari-Leiste — mit
       eingeblendeter Leiste wäre der Dialog rund 50 px zu hoch für den Bildschirm. */
    height: clamp(240px, 46dvh, 420px);
}

/* -- Tabelle ------------------------------------------------------------- */
.ppk-tabelle-wrap[b-1wvrvdzfp0] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    scrollbar-width: thin;
    scrollbar-color: #c6c9ce transparent;
}

.ppk-tabelle-wrap[b-1wvrvdzfp0]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.ppk-tabelle-wrap[b-1wvrvdzfp0]::-webkit-scrollbar-track {
    background: transparent;
}

.ppk-tabelle-wrap[b-1wvrvdzfp0]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .ppk-tabelle-wrap[b-1wvrvdzfp0]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

.ppk-tabelle[b-1wvrvdzfp0] {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    color: #16181c;
    font-size: 12px;
    table-layout: fixed;
}

.ppk-tabelle th[b-1wvrvdzfp0] {
    position: sticky;
    top: 0;
    z-index: 1;
    height: 32px;
    border-bottom: 1px solid #e4e4e7;
    background: #f5f5f7;
    color: #6f747d;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.ppk-tabelle th[b-1wvrvdzfp0],
.ppk-tabelle td[b-1wvrvdzfp0] {
    padding: 7px 10px;
    vertical-align: middle;
}

.ppk-tabelle td[b-1wvrvdzfp0] {
    border-bottom: 1px solid #ededf2;
    color: #6f747d;
    font-weight: 600;
    line-height: 1.3;
}

.ppk-tabelle tbody tr[b-1wvrvdzfp0] {
    background: #fff;
}

.ppk-tabelle tbody tr:last-child td[b-1wvrvdzfp0] {
    border-bottom: none;
}

/* Spalten: Pos | Position | Gesamt | Gelöscht | Wiederherstellen */
.ppk-tabelle th:nth-child(1)[b-1wvrvdzfp0],
.ppk-tabelle td:nth-child(1)[b-1wvrvdzfp0] {
    width: 44px;
}

.ppk-tabelle th:nth-child(3)[b-1wvrvdzfp0],
.ppk-tabelle td:nth-child(3)[b-1wvrvdzfp0] {
    width: 96px;
}

.ppk-tabelle th:nth-child(4)[b-1wvrvdzfp0],
.ppk-tabelle td:nth-child(4)[b-1wvrvdzfp0] {
    width: 132px;
}

.ppk-tabelle th:nth-child(5)[b-1wvrvdzfp0],
.ppk-tabelle td:nth-child(5)[b-1wvrvdzfp0] {
    width: 138px;
    text-align: right;
}

.ppk-zahl-head[b-1wvrvdzfp0] {
    text-align: right;
}

.ppk-zahl[b-1wvrvdzfp0] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ppk-titel-cell[b-1wvrvdzfp0] {
    overflow: hidden;
}

.ppk-titel[b-1wvrvdzfp0] {
    display: block;
    color: #16181c;
    font-weight: 750;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ppk-sub[b-1wvrvdzfp0] {
    display: block;
    font-size: 10.5px;
    font-weight: 600;
    color: #8a8f98;
    white-space: nowrap;
}

.ppk-wann[b-1wvrvdzfp0] {
    white-space: nowrap;
}

/* Wiederherstellen als kleine Pille — bequem antippbar (32 px), ohne die Zeile aufzublasen */
.ppk-btn[b-1wvrvdzfp0] {
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid #16181c;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.14s, color 0.14s;
}

@media (hover: hover) {
    .ppk-btn:hover[b-1wvrvdzfp0] {
        background: #16181c;
        color: #fff;
    }
}

.ppk-leer[b-1wvrvdzfp0] {
    margin: 16px 0 0;
    padding: 0 12px;
    font-size: 12.5px;
    font-weight: 600;
    color: #8a8f98;
}

.ppk-fussnote[b-1wvrvdzfp0] {
    margin: 0;
    padding: 0 2px;
    font-size: 11.5px;
    font-weight: 600;
    color: #8a8f98;
}

/* Zweiter Klick auf „Papierkorb leeren": die Frage steht sichtbar am Knopf */
.ppk-leeren--sicher[b-1wvrvdzfp0] {
    color: #b42318;
    border-color: #b42318;
}
/* /Components/Pages/Calc/PositionenUebernehmen.razor.rz.scp.css */
/* Positionen übernehmen — Tabellen-Optik 1:1 von der Dokumenten-Liste in
   /project-setup (.documents-table), damit sich der Dialog wie ein bekannter
   Teil der App anfühlt und nicht wie ein eigener Bau. */

.ueb-head[b-xrr0uk0yv2] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.ueb-head-ico[b-xrr0uk0yv2] {
    /* Nacktes Icon — kein Kasten (Regel für die ganze App) */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    color: #16181c;
}

.ueb-head-text[b-xrr0uk0yv2] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ueb-head-text h2[b-xrr0uk0yv2] {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: #16181c;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ueb-head-text span[b-xrr0uk0yv2] {
    font-size: 12px;
    font-weight: 600;
    color: #80858d;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* -- Suche ------------------------------------------------------------- */
.ueb-suche[b-xrr0uk0yv2] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #fff;
    color: #80858d;
}

.ueb-suche input[b-xrr0uk0yv2] {
    flex: 1 1 auto;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    color: #16181c;
}

.ueb-leer[b-xrr0uk0yv2] {
    margin: 16px 0 0;
    font-size: 12.5px;
    font-weight: 600;
    color: #8a8f98;
}

/* -- Schritte: zurück und direktes Springen ----------------------------- */
.ueb-schritte[b-xrr0uk0yv2] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.ueb-zurueck[b-xrr0uk0yv2] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 30px;
    padding: 0 11px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    color: #16181c;
    cursor: pointer;
}

@media (hover: hover) {
    .ueb-zurueck:hover[b-xrr0uk0yv2] {
        background: #f4f4f6;
        border-color: #cfd0d3;
    }
}

/* Inhalts-Rahmen mit FESTER Höhe — jeder Schritt füllt denselben Kasten.
   Damit ändert sich die Dialoghöhe weder mit der Zeilenzahl noch mit den
   Häkchen noch beim Wechsel zwischen den Schritten. */
.ueb-inhalt[b-xrr0uk0yv2] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    /* dvh statt vh: auf iOS rechnet vh immer mit ausgeblendeter Safari-Leiste — mit
       eingeblendeter Leiste wäre der Dialog rund 50 px zu hoch für den Bildschirm. */
    height: clamp(280px, 52dvh, 460px);
}

/* -- Tabelle (Werte aus .documents-table) ------------------------------- */
.ueb-tabelle-wrap[b-xrr0uk0yv2] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    /* schmale Scrollleiste — Werte 1:1 aus dem Aufmaß (.am-tree & Co.) */
    scrollbar-width: thin;
    scrollbar-color: #c6c9ce transparent;
}

.ueb-tabelle-wrap[b-xrr0uk0yv2]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.ueb-tabelle-wrap[b-xrr0uk0yv2]::-webkit-scrollbar-track {
    background: transparent;
}

.ueb-tabelle-wrap[b-xrr0uk0yv2]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .ueb-tabelle-wrap[b-xrr0uk0yv2]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

.ueb-tabelle[b-xrr0uk0yv2] {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    color: #16181c;
    font-size: 12px;
    table-layout: fixed;
}

.ueb-tabelle th[b-xrr0uk0yv2] {
    position: sticky;
    top: 0;
    z-index: 1;
    height: 32px;
    border-bottom: 1px solid #e4e4e7;
    background: #f5f5f7;
    color: #6f747d;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.ueb-tabelle th[b-xrr0uk0yv2],
.ueb-tabelle td[b-xrr0uk0yv2] {
    padding: 7px 10px;
    vertical-align: middle;
}

.ueb-tabelle td[b-xrr0uk0yv2] {
    border-bottom: 1px solid #ededf2;
    color: #6f747d;
    font-weight: 600;
    line-height: 1.3;
}

.ueb-tabelle tbody tr[b-xrr0uk0yv2] {
    background: #fff;
    cursor: pointer;
    transition: background 0.15s;
}

.ueb-tabelle tbody tr:last-child td[b-xrr0uk0yv2] {
    border-bottom: none;
}

@media (hover: hover) {
    .ueb-tabelle tbody tr:hover[b-xrr0uk0yv2] {
        background: #f7f7f9;
    }
}

/* Spaltenbreiten in Prozent, damit sie zusammen genau aufgehen — bei table-layout:fixed
   verteilt der Browser sonst den Rest gleichmäßig und der Titel bleibt zu schmal.
   Quellen-Liste: Typ | Titel | Weg | Positionen | Summe | Geändert | Von */
.ueb-tabelle th:nth-child(1)[b-xrr0uk0yv2],
.ueb-tabelle td:nth-child(1)[b-xrr0uk0yv2] {
    width: 10%;
}

.ueb-tabelle th:nth-child(2)[b-xrr0uk0yv2],
.ueb-tabelle td:nth-child(2)[b-xrr0uk0yv2] {
    width: 25%;
}

.ueb-tabelle th:nth-child(3)[b-xrr0uk0yv2],
.ueb-tabelle td:nth-child(3)[b-xrr0uk0yv2] {
    width: 24%;
}

.ueb-tabelle th:nth-child(4)[b-xrr0uk0yv2],
.ueb-tabelle td:nth-child(4)[b-xrr0uk0yv2] {
    width: 8%;
    text-align: right;
}

.ueb-tabelle th:nth-child(5)[b-xrr0uk0yv2],
.ueb-tabelle td:nth-child(5)[b-xrr0uk0yv2] {
    width: 13%;
    text-align: right;
}

.ueb-tabelle th:nth-child(6)[b-xrr0uk0yv2],
.ueb-tabelle td:nth-child(6)[b-xrr0uk0yv2] {
    width: 10%;
    white-space: nowrap;
}

.ueb-tabelle th:nth-child(7)[b-xrr0uk0yv2],
.ueb-tabelle td:nth-child(7)[b-xrr0uk0yv2] {
    width: 10%;
}

/* Zeilen-Tabelle: Haken | Beschreibung | Menge | €/Einheit | Gesamt */
.ueb-tabelle--zeilen th:nth-child(1)[b-xrr0uk0yv2],
.ueb-tabelle--zeilen td:nth-child(1)[b-xrr0uk0yv2] {
    width: 5%;
}

.ueb-tabelle--zeilen th:nth-child(2)[b-xrr0uk0yv2],
.ueb-tabelle--zeilen td:nth-child(2)[b-xrr0uk0yv2] {
    width: 45%;
}

.ueb-tabelle--zeilen th:nth-child(3)[b-xrr0uk0yv2],
.ueb-tabelle--zeilen td:nth-child(3)[b-xrr0uk0yv2] {
    width: 15%;
    text-align: right;
}

.ueb-tabelle--zeilen th:nth-child(4)[b-xrr0uk0yv2],
.ueb-tabelle--zeilen td:nth-child(4)[b-xrr0uk0yv2] {
    width: 17%;
    text-align: right;
}

.ueb-tabelle--zeilen th:nth-child(5)[b-xrr0uk0yv2],
.ueb-tabelle--zeilen td:nth-child(5)[b-xrr0uk0yv2] {
    width: 18%;
    text-align: right;
}

.ueb-titel-cell[b-xrr0uk0yv2] {
    overflow: hidden;
}

.ueb-titel[b-xrr0uk0yv2] {
    color: #16181c;
    font-weight: 750;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ueb-weg[b-xrr0uk0yv2],
.ueb-von[b-xrr0uk0yv2],
.ueb-datum[b-xrr0uk0yv2] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ueb-zahl[b-xrr0uk0yv2] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ueb-zahl--summe[b-xrr0uk0yv2] {
    color: #16181c;
    font-weight: 800;
}

.ueb-alt[b-xrr0uk0yv2] {
    margin-right: 5px;
    color: #a3a8b0;
    font-weight: 600;
    text-decoration: line-through;
}

/* Typ-Pille (Werte aus .document-type) */
.ueb-typ[b-xrr0uk0yv2] {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    border-radius: 999px;
    background: #efeff1;
    color: #16181c;
    font-family: 'JetBrains Mono', ui-monospace, 'SF Mono', monospace;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: -0.02em;
    padding: 0 9px;
    white-space: nowrap;
}

.ueb-typ--entwurf[b-xrr0uk0yv2] {
    background: #fdf6e8;
    color: #7a5a1a;
}

.ueb-typ--auftrag[b-xrr0uk0yv2] {
    background: #eaf7ee;
    color: #157f3c;
}

.ueb-typ--klein[b-xrr0uk0yv2] {
    min-height: 18px;
    margin-left: 6px;
    padding: 0 6px;
    font-size: 9.5px;
}

/* Angebot ohne Positionen: sichtbar, aber nicht wählbar */
.ueb-row--leer[b-xrr0uk0yv2] {
    cursor: default;
    opacity: 0.5;
}

@media (hover: hover) {
    .ueb-row--leer:hover[b-xrr0uk0yv2] {
        background: #fff;
    }
}

.ueb-row--on[b-xrr0uk0yv2] {
    background: #fafafb;
}

/* „Weitere laden" als letzte Zeile IN der Liste */
.ueb-mehr-row td[b-xrr0uk0yv2] {
    padding: 0;
    background: #fff;
}

.ueb-mehr-row[b-xrr0uk0yv2] {
    cursor: default;
}

@media (hover: hover) {
    .ueb-mehr-row:hover[b-xrr0uk0yv2] {
        background: #fff;
    }
}

.ueb-mehr[b-xrr0uk0yv2] {
    display: block;
    width: 100%;
    padding: 10px;
    border: none;
    background: transparent;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 800;
    color: #16181c;
    cursor: pointer;
}

@media (hover: hover) {
    .ueb-mehr:hover:not(:disabled)[b-xrr0uk0yv2] {
        background: #f4f4f6;
    }
}

.ueb-mehr:disabled[b-xrr0uk0yv2] {
    color: #a3a8b0;
    cursor: default;
}

/* -- Leiste über der Zeilen-Tabelle ------------------------------------ */
.ueb-leiste[b-xrr0uk0yv2] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ueb-leiste-btn[b-xrr0uk0yv2] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    color: #16181c;
    cursor: pointer;
}

@media (hover: hover) {
    .ueb-leiste-btn:hover[b-xrr0uk0yv2] {
        background: #f4f4f6;
        border-color: #cfd0d3;
    }
}

.ueb-anpassen[b-xrr0uk0yv2] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.ueb-anpassen label[b-xrr0uk0yv2] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #80858d;
}

.ueb-anpassen-feld[b-xrr0uk0yv2] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 0 10px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
}

.ueb-anpassen-feld input[b-xrr0uk0yv2] {
    width: 56px;
    padding: 6px 0;
    border: none;
    outline: none;
    background: transparent;
    font-family: inherit;
    font-size: 13px;
    font-weight: 800;
    color: #16181c;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.ueb-anpassen-feld span[b-xrr0uk0yv2] {
    font-size: 12px;
    font-weight: 700;
    color: #80858d;
}

/* Eingabe außerhalb des Rahmens: sichtbar machen, statt still mit 0 % weiterzurechnen. */
.ueb-anpassen-feld--warn[b-xrr0uk0yv2] {
    border-color: #d8a25a;
    background: #fdf7ee;
}

.ueb-anpassen-hinweis[b-xrr0uk0yv2] {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    font-weight: 600;
    color: #a15c07;
}

/* Haken-Spalte */
.ueb-haken-cell[b-xrr0uk0yv2] {
    text-align: center;
}

.ueb-haken[b-xrr0uk0yv2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border: 1.5px solid #c9cbd2;
    border-radius: 5px;
    background: #fff;
    color: #fff;
}

.ueb-haken--on[b-xrr0uk0yv2] {
    background: #16181c;
    border-color: #16181c;
}

/* -- Ergebniszeile (über den Knöpfen, nicht in der Knopfleiste) --------- */
.ueb-ergebnis[b-xrr0uk0yv2] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    flex: none;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f5f5f7;
}

.ueb-ergebnis-label[b-xrr0uk0yv2] {
    font-size: 12.5px;
    font-weight: 700;
    color: #6f747d;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* nowrap: sonst bricht die Zeile beim Ab-/Anwählen um und der Dialog wird höher */
.ueb-ergebnis-summe[b-xrr0uk0yv2] {
    flex: none;
    font-size: 15px;
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* -- Handy: Karten statt Tabellen ------------------------------------------
   Der Dialog ist dort eine ganze Seite; die Tabellen (7 bzw. 5 Spalten) sind aus und
   dieselben Daten stehen als Karten-Zeilen. Desktop: Karten aus, Tabellen wie gehabt. */
.ueb-karten[b-xrr0uk0yv2] {
    display: none;
}

@media (max-width: 760px) {
    .ueb-inhalt[b-xrr0uk0yv2] {
        height: auto;
    }

    .ueb-tabelle-wrap[b-xrr0uk0yv2] {
        display: none;
    }

    .ueb-karten[b-xrr0uk0yv2] {
        display: flex;
        flex-direction: column;
        border: 1px solid #e4e4e7;
        border-radius: 12px;
        background: #fff;
        overflow: hidden;
    }

    /* Karte = Pille/Haken · Titel · Summe, darunter (eingerückt) Weg und Meta */
    .ueb-karte[b-xrr0uk0yv2] {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        column-gap: 10px;
        row-gap: 3px;
        align-items: center;
        width: 100%;
        padding: 11px 14px;
        border: none;
        border-bottom: 1px solid #efeff1;
        border-radius: 0;
        background: #fff;
        color: #16181c;
        font-family: inherit;
        font-size: 13px;
        text-align: left;
        cursor: pointer;
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
        transition: none;
    }

        .ueb-karte:last-child[b-xrr0uk0yv2] {
            border-bottom: none;
        }

        .ueb-karte:active[b-xrr0uk0yv2] {
            background: #f5f5f7;
        }

    .ueb-karte--leer[b-xrr0uk0yv2] {
        opacity: 0.5;
    }

    .ueb-karte--on[b-xrr0uk0yv2] {
        background: #f5f5f7;
    }

    .ueb-karte-titel[b-xrr0uk0yv2] {
        min-width: 0;
        font-weight: 700;
        line-height: 1.3;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        word-break: break-word;
    }

    .ueb-karte-summe[b-xrr0uk0yv2] {
        font-weight: 700;
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
        text-align: right;
    }

    .ueb-karte-weg[b-xrr0uk0yv2],
    .ueb-karte-meta[b-xrr0uk0yv2] {
        grid-column: 2 / 4;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 12px;
        color: #3c4148;
    }

    .ueb-karte-meta[b-xrr0uk0yv2] {
        font-size: 11.5px;
        color: #80858d;
        font-variant-numeric: tabular-nums;
    }

    .ueb-karte .ueb-typ--klein[b-xrr0uk0yv2] {
        margin-left: 6px;
    }

    .ueb-karten .ueb-mehr[b-xrr0uk0yv2] {
        margin: 10px auto;
    }
}
/* /Components/Pages/Calc/PreiseAktualisieren.razor.rz.scp.css */
/* Preise aktualisieren — Werte 1:1 vom Leistungspaket-Dialog (.lpe-*), damit sich alle
   Dialoge der Kalkulation gleich anfühlen. */

.pfl-head[b-aaymhjbot6] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.pfl-head-ico[b-aaymhjbot6] {
    /* Nacktes Icon — kein Kasten (Regel für die ganze App) */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    color: #16181c;
}

.pfl-head-text[b-aaymhjbot6] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.pfl-head-text h2[b-aaymhjbot6] {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: #16181c;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pfl-head-text span[b-aaymhjbot6] {
    font-size: 12px;
    font-weight: 600;
    color: #80858d;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pfl-inhalt[b-aaymhjbot6] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    /* dvh statt vh: auf iOS rechnet vh immer mit ausgeblendeter Safari-Leiste — mit
       eingeblendeter Leiste wäre der Dialog rund 50 px zu hoch für den Bildschirm. */
    height: clamp(280px, 52dvh, 460px);
}

/* -- Tabelle ------------------------------------------------------------- */
.pfl-tabelle-wrap[b-aaymhjbot6] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    scrollbar-width: thin;
    scrollbar-color: #c6c9ce transparent;
}

.pfl-tabelle-wrap[b-aaymhjbot6]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.pfl-tabelle-wrap[b-aaymhjbot6]::-webkit-scrollbar-track {
    background: transparent;
}

.pfl-tabelle-wrap[b-aaymhjbot6]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .pfl-tabelle-wrap[b-aaymhjbot6]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

.pfl-tabelle[b-aaymhjbot6] {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    color: #16181c;
    font-size: 12px;
    table-layout: fixed;
}

.pfl-tabelle th[b-aaymhjbot6] {
    position: sticky;
    top: 0;
    z-index: 1;
    height: 32px;
    border-bottom: 1px solid #e4e4e7;
    background: #f5f5f7;
    color: #6f747d;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.pfl-tabelle th[b-aaymhjbot6],
.pfl-tabelle td[b-aaymhjbot6] {
    padding: 7px 10px;
    vertical-align: middle;
}

.pfl-tabelle td[b-aaymhjbot6] {
    border-bottom: 1px solid #ededf2;
    color: #6f747d;
    font-weight: 600;
    line-height: 1.3;
}

.pfl-tabelle tbody tr[b-aaymhjbot6] {
    background: #fff;
    cursor: pointer;
    transition: background 0.15s;
}

.pfl-tabelle tbody tr:last-child td[b-aaymhjbot6] {
    border-bottom: none;
}

@media (hover: hover) {
    .pfl-tabelle tbody tr:hover[b-aaymhjbot6] {
        background: #f7f7f9;
    }
}

/* Spalten: Haken | Position | bisher | heute | Änderung */
.pfl-tabelle th:nth-child(1)[b-aaymhjbot6],
.pfl-tabelle td:nth-child(1)[b-aaymhjbot6] {
    width: 36px;
}

.pfl-tabelle th:nth-child(2)[b-aaymhjbot6],
.pfl-tabelle td:nth-child(2)[b-aaymhjbot6] {
    width: 46%;
}

.pfl-tabelle th:nth-child(3)[b-aaymhjbot6],
.pfl-tabelle td:nth-child(3)[b-aaymhjbot6],
.pfl-tabelle th:nth-child(4)[b-aaymhjbot6],
.pfl-tabelle td:nth-child(4)[b-aaymhjbot6],
.pfl-tabelle th:nth-child(5)[b-aaymhjbot6],
.pfl-tabelle td:nth-child(5)[b-aaymhjbot6] {
    text-align: right;
}

.pfl-zahl-head[b-aaymhjbot6] {
    text-align: right;
}

.pfl-check-cell[b-aaymhjbot6] {
    text-align: center;
}

/* Häkchen bequem antippbar, ohne die Zeile aufzublasen */
.pfl-check[b-aaymhjbot6] {
    width: 16px;
    height: 16px;
    accent-color: #16181c;
    cursor: pointer;
}

.pfl-titel-cell[b-aaymhjbot6] {
    overflow: hidden;
}

.pfl-titel[b-aaymhjbot6] {
    color: #16181c;
    font-weight: 750;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pfl-zahl[b-aaymhjbot6] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.pfl-zahl--neu[b-aaymhjbot6] {
    color: #16181c;
    font-weight: 800;
}

/* Abgewählte Zeile bleibt lesbar, tritt aber sichtbar zurück */
.pfl-row--aus td[b-aaymhjbot6] {
    opacity: 0.45;
}

.pfl-delta[b-aaymhjbot6] {
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.pfl-delta--plus[b-aaymhjbot6] {
    color: #a15c07;
}

.pfl-delta--minus[b-aaymhjbot6] {
    color: #1d7a46;
}

/* Pille an der Beschreibung (Werte aus .lpe-pille) */
.pfl-pille[b-aaymhjbot6] {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    min-height: 18px;
    margin-left: 6px;
    padding: 0 6px;
    border-radius: 999px;
    background: #efeff1;
    color: #16181c;
    font-family: 'JetBrains Mono', ui-monospace, 'SF Mono', monospace;
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: -0.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pfl-pille--lohn[b-aaymhjbot6] {
    background: #e8edf5;
}

.pfl-pille--warn[b-aaymhjbot6] {
    background: #fdf6e8;
    color: #7a5a1a;
}

.pfl-leer[b-aaymhjbot6] {
    margin: 16px 0 0;
    padding: 0 12px;
    font-size: 12.5px;
    font-weight: 600;
    color: #8a8f98;
}

.pfl-fussnote[b-aaymhjbot6] {
    margin: 0;
    padding: 0 2px;
    font-size: 11.5px;
    font-weight: 600;
    color: #8a8f98;
}

/* -- Ergebniszeile -------------------------------------------------------- */
.pfl-ergebnis[b-aaymhjbot6] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    flex: none;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f5f5f7;
}

.pfl-ergebnis-label[b-aaymhjbot6] {
    font-size: 12.5px;
    font-weight: 700;
    color: #6f747d;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pfl-ergebnis-summe[b-aaymhjbot6] {
    flex: none;
    display: inline-flex;
    align-items: baseline;
    gap: 7px;
    font-size: 15px;
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.pfl-ergebnis-summe svg[b-aaymhjbot6] {
    align-self: center;
    color: #80858d;
}

.pfl-ergebnis-summe .pfl-delta[b-aaymhjbot6] {
    font-size: 12px;
}
/* /Components/Pages/Calc/ProjectCalculator.razor.rz.scp.css */
/* Modal & Wizard */
.modal-backdrop[b-vfqv77bsv6] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(8px);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100;
}

/* Wrapper zentriert das Fenster — alle Wizard-Teile wohnen jetzt IM Fenster */
.modal-stack[b-vfqv77bsv6] {
    position: relative;
    /* 1040 statt 960: neben Leiste, NumPad und Picker-Spalte braucht die Zeilenliste
       (Materialnamen) Platz in der Mitte */
    width: min(96vw, 1040px);
    z-index: 2;
}

.modal-window[b-vfqv77bsv6] {
    position: relative;
    z-index: 2;
    width: 100%;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 0 0 1px rgba(255,255,255,0.12), 0 8px 20px rgba(0,0,0,0.22), 0 28px 60px rgba(0,0,0,0.38);
}

/* Modal-Header */
.modal-header[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 20px 13px;
    background: #16181c;
}

.modal-header-icon[b-vfqv77bsv6] {
    /* Nacktes Icon — kein Kasten (Regel für den ganzen Wizard und alle Picker) */
    width: 20px;
    height: 20px;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.modal-title[b-vfqv77bsv6] {
    flex: 1;
    color: white;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.modal-header-step[b-vfqv77bsv6] {
    font-size: 11px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.65);
    letter-spacing: 0.03em;
    white-space: nowrap;
}

/* NumPad-Schalter im Kopf: Chip mit Zustand — an = weiß, aus = durchscheinend */
.modal-header-np[b-vfqv77bsv6] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 12px 0 10px;
    border: none;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    color: white;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    margin-right: 6px;
    transition: none;
}

    @media (hover: hover) {
        .modal-header-np:hover[b-vfqv77bsv6] {
            background: rgba(255, 255, 255, 0.22);
        }
    }

.modal-header-np--on[b-vfqv77bsv6] {
    background: #fff;
    color: #16181c;
}

    @media (hover: hover) {
        .modal-header-np--on:hover[b-vfqv77bsv6] {
            background: #e4e4e7;
        }
    }

/* Die Aktion des Schritts im Kopf: weiße Pille auf Schwarz — Weiter, auf dem letzten
   Schritt Hinzufügen/Speichern. Ersetzt die Fußzeile. */
.modal-header-go[b-vfqv77bsv6] {
    height: 32px;
    padding: 0 16px;
    border: none;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    margin-left: 6px;
    transition: none;
}

    @media (hover: hover) {
        .modal-header-go:hover[b-vfqv77bsv6] {
            background: #e4e4e7;
        }
    }

    .modal-header-go:active[b-vfqv77bsv6] {
        transform: scale(0.96);
    }

/* Schließen-Knopf im schwarzen Kopf (ersetzt den frei schwebenden ×-Knopf) */
.modal-header-close[b-vfqv77bsv6] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: none;
    background: transparent;
    color: white;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
    margin-left: 4px;
    transition: none;
}

    @media (hover: hover) {
        .modal-header-close:hover[b-vfqv77bsv6] {
            background: rgba(226, 72, 59, 0.85);
        }
    }

    .modal-header-close:active[b-vfqv77bsv6] {
        transform: scale(0.94);
    }

/* --------------------------------------------------------------
   Fensterkörper: Schritt-Leiste links · Inhalt · Picker-Spalte
-------------------------------------------------------------- */
.modal-body[b-vfqv77bsv6] {
    display: flex;
    align-items: stretch;
    background: white;
    /* FESTE Höhe über alle Schritte (Elias: „immer eine feste Höhe") — Inhalt, Leiste
       und Panels scrollen innen; auf niedrigen Bildschirmen gedeckelt. */
    height: min(540px, calc(100dvh - 110px));
}

/* Schritt-Leiste links im Fenster.
   Zustands-Grammatik: offen = grauer Kreis + graues Label · fertig = schwarzer
   Haken-Kreis + Label und Wert in Tinte · aktiv = schwarze Pille. Leere Werte
   nehmen keinen Platz weg (":empty"), damit keine Phantom-Lücken entstehen. */
.wiz-rail[b-vfqv77bsv6] {
    flex: 0 0 176px;
    width: 176px;
    border-right: 1px solid #e4e4e7;
    padding: 10px 8px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    background: white;
    overflow-y: auto;
}

.wiz-rail-step[b-vfqv77bsv6] {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    column-gap: 9px;
    align-items: center;
    padding: 8px 9px;
    border-radius: 10px;
    border: none;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    min-width: 0;
    min-height: 38px;
    /* Schritte teilen sich die ganze Höhe des Körpers — keine Leere unter dem letzten Schritt */
    flex: 1 1 0;
    transition: none;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

    @media (hover: hover) {
        .wiz-rail-step:hover:not(.wiz-rail-step--active)[b-vfqv77bsv6] {
            background: #efeff1;
        }
    }

.wiz-rail-num[b-vfqv77bsv6] {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1px solid #e4e4e7;
    background: white;
    color: #80858d;
    font-size: 10px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    grid-row: span 2;
}

.wiz-rail-label[b-vfqv77bsv6] {
    font-size: 12px;
    font-weight: 600;
    color: #80858d;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.wiz-rail-value[b-vfqv77bsv6] {
    font-size: 12px;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
    min-width: 0;
}

    .wiz-rail-value:empty[b-vfqv77bsv6] {
        display: none;
    }

.wiz-rail-step--filled .wiz-rail-num[b-vfqv77bsv6] {
    background: #16181c;
    border-color: #16181c;
    color: white;
}

/* Fertig: Titel zurückhaltend grau, die EINGABE darunter ist das Schwarze — so liest man
   auf einen Blick, was man eingetragen hat, nicht wie der Schritt heißt. */
.wiz-rail-step--filled .wiz-rail-label[b-vfqv77bsv6] {
    color: #80858d;
    font-weight: 600;
}

.wiz-rail-step--active[b-vfqv77bsv6] {
    background: #16181c;
}

    .wiz-rail-step--active .wiz-rail-label[b-vfqv77bsv6] {
        /* Aktiv: Titel gedämpft, Wert weiß — dieselbe Hierarchie wie bei den fertigen Schritten */
        color: rgba(255, 255, 255, 0.62);
        font-weight: 600;
    }

    .wiz-rail-step--active .wiz-rail-value[b-vfqv77bsv6] {
        color: white;
    }

    .wiz-rail-step--active .wiz-rail-num[b-vfqv77bsv6] {
        background: white;
        border-color: white;
        color: #16181c;
    }

/* Handy-Segment-Leiste — am Desktop aus, Werte im ≤699-Block */
.wiz-segs[b-vfqv77bsv6] {
    display: none;
}

/* Inhalt: oben-bündig und linksbündig — der Wert steht auf jedem Schritt an derselben
   Stelle (nichts springt beim Durchklicken); rechts daneben das NumPad. Wird der Inhalt
   höher als der Körper (lange Materialliste), scrollt er innen. */
.modal-content[b-vfqv77bsv6] {
    flex: 1 1 auto;
    min-width: 0;
    padding: 24px 24px 22px;
    text-align: left;
    background: white;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}

.wiz-row[b-vfqv77bsv6] {
    display: flex;
    flex-flow: row nowrap;
    align-items: flex-start;
    gap: 18px;
    width: 100%;
}

.wiz-content-main[b-vfqv77bsv6] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

/* Kicker = Name des Schritts („Materialkosten je m²") — klein über dem Wert */
.wiz-kick[b-vfqv77bsv6] {
    display: block;
    margin-bottom: 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #80858d;
}

/* Der Wert: groß in Quicksand wie die Summen der Kalkulationskarte und der Übersicht —
   dieselbe Schrift für die Zahl, die man eingibt, und die, die dabei herauskommt. Kein
   Kasten: Zahl, Strich-Cursor, Einheit, darunter eine Haarlinie. */
.wiz-val[b-vfqv77bsv6] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    min-height: 58px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e4e4e7;
    outline: none;
    cursor: default;
    user-select: none;
    -webkit-user-select: none;
}

    .wiz-val:focus-visible[b-vfqv77bsv6] {
        border-bottom-color: #16181c;
    }

.wiz-val-num[b-vfqv77bsv6] {
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 46px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.wiz-val--leer .wiz-val-num[b-vfqv77bsv6] {
    color: #b9bdc2;
}

/* Cursor hinter der Zahl — sagt „hier landet die Eingabe"; blinkt nur, wo Bewegung erlaubt ist */
.wiz-val-caret[b-vfqv77bsv6] {
    flex: none;
    width: 2px;
    height: 34px;
    margin-left: -4px;
    border-radius: 1px;
    background: #16181c;
    align-self: center;
}

@media (prefers-reduced-motion: no-preference) {
    .wiz-val-caret[b-vfqv77bsv6] {
        animation: wiz-caret-b-vfqv77bsv6 1.1s steps(1) infinite;
    }

    @keyframes wiz-caret-b-vfqv77bsv6 {
        50% {
            opacity: 0;
        }
    }
}

.wiz-val-unit[b-vfqv77bsv6] {
    flex: none;
    font-size: 20px;
    font-weight: 600;
    color: #80858d;
}

/* Schritt 2: Einheit als Auswahl an der Stelle der Einheit */
.wiz-val-unitsel[b-vfqv77bsv6] {
    flex: none;
    align-self: center;
}

    .wiz-val-unitsel[b-vfqv77bsv6]  .iconsel-trigger {
        min-height: 32px;
        height: 32px;
        padding: 0 8px 0 12px;
        border: 1px solid #e4e4e7;
        border-radius: 999px;
        background: #fff;
        font-size: 15px;
        font-weight: 700;
        color: #16181c;
    }

/* Schritt 1: Beschreibung als dieselbe große Zeile — Text statt Zahl */
.wiz-text[b-vfqv77bsv6] {
    display: block;
    box-sizing: border-box;
    width: 100%;
    /* genau drei Zeilen (em: gilt auch für die kleinere Handy-Schrift) + Abstand/Haarlinie */
    height: calc(3 * 1.25em + 10px);
    resize: none;
    overflow-y: auto;
    padding: 0 0 8px;
    border: none;
    border-bottom: 1px solid #e4e4e7;
    border-radius: 0;
    background: transparent;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.25;
    color: #16181c;
    outline: none;
}

    .wiz-text[b-vfqv77bsv6]::placeholder {
        color: #b9bdc2;
        font-weight: 600;
    }

    .wiz-text:focus[b-vfqv77bsv6] {
        border-bottom-color: #16181c;
        box-shadow: none;
    }

/* Zeilenliste unter der Haarlinie: eine Zeile je Ding, getrennt durch feine Striche —
   keine Kästen, keine Pillen. Knöpfe und Anzeigen teilen sich dieselbe Zeile. */
.wiz-lines[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
}

.wiz-line[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 44px;
    padding: 0 2px;
    border: none;
    border-bottom: 1px solid #efeff1;
    border-radius: 0;
    background: transparent;
    color: #16181c;
    font-family: inherit;
    font-size: 13.5px;
    font-weight: 600;
    text-align: left;
    cursor: default;
    transition: none;
}

.wiz-line--btn[b-vfqv77bsv6] {
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

    @media (hover: hover) {
        .wiz-line--btn:hover[b-vfqv77bsv6] {
            background: #f5f5f7;
        }
    }

    .wiz-line--btn:focus-visible[b-vfqv77bsv6] {
        outline: 2px solid #16181c;
        outline-offset: -2px;
    }

/* Zweizeilige Einträge (Gebinde, Festpreis-Hinweis) */
.wiz-line--two[b-vfqv77bsv6] {
    align-items: flex-start;
    padding-top: 10px;
    padding-bottom: 10px;
}

.wiz-line-stack[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.wiz-line-ico[b-vfqv77bsv6] {
    flex: none;
    width: 18px;
    display: inline-flex;
    justify-content: center;
    color: #3c4148;
}

.wiz-line-text[b-vfqv77bsv6] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wiz-line-sub[b-vfqv77bsv6] {
    font-size: 11.5px;
    font-weight: 500;
    color: #80858d;
    white-space: normal;
}

.wiz-line-val[b-vfqv77bsv6] {
    flex: none;
    font-size: 13.5px;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.wiz-line-chev[b-vfqv77bsv6] {
    flex: none;
    color: #80858d;
}

/* „Material zusammen" — Summenzeile wie in der Übersicht: Strich davor, grau beschriftet */
.wiz-line--summe[b-vfqv77bsv6] {
    border-top: 1px solid #e4e4e7;
    margin-top: -1px;
    min-height: 40px;
}

    .wiz-line--summe .wiz-line-text[b-vfqv77bsv6] {
        color: #80858d;
    }

/* „Aus …"-Zeilen öffnen den Picker als Blatt — nur, wenn die Picker-Spalte fehlt (≤ 999 px) */
.wiz-line.wiz-pickbtn[b-vfqv77bsv6] {
    display: none;
}

/* Materialzeilen: die aktive (NumPad und Picker bearbeiten sie) trägt den Punkt */
.wiz-matzeilen[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
    max-height: min(32dvh, 230px);
    overflow-y: auto;
    overflow-x: hidden;
}

.wiz-mat[b-vfqv77bsv6] {
    flex-shrink: 0;
    color: #3c4148;
}

.wiz-mat-dot[b-vfqv77bsv6] {
    flex: none;
    width: 8px;
    height: 8px;
    margin: 0 5px;
    border-radius: 50%;
    border: 1.5px solid #c9cbd2;
    background: #fff;
}

.wiz-mat--aktiv[b-vfqv77bsv6] {
    color: #16181c;
    font-weight: 700;
}

    .wiz-mat--aktiv .wiz-mat-dot[b-vfqv77bsv6] {
        background: #16181c;
        border-color: #16181c;
    }

.wiz-mat-weg[b-vfqv77bsv6] {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 999px;
    color: #80858d;
}

    @media (hover: hover) {
        .wiz-mat-weg:hover[b-vfqv77bsv6] {
            background: #16181c;
            color: #fff;
        }
    }

/* Gebinde-Schalter als Zeile mit Kästchen */
.wiz-geb-box[b-vfqv77bsv6] {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    margin: 2px 1px 0;
    border: 1.5px solid #c9cbd2;
    border-radius: 5px;
    background: #fff;
    color: #fff;
}

.wiz-geb--on .wiz-geb-box[b-vfqv77bsv6] {
    background: #16181c;
    border-color: #16181c;
}

/* Kompaktes NumPad neben dem Feld (Desktop/iPad) */
/* NumPad neben dem Wert — auf Abruf (Kopf-Schalter, Wahl im Browser gespeichert).
   Optik 1:1 das NumPad-Popup aus dem Lager (.np-popup in settings.css + AppNumPad-
   Standardtasten): weiße Karte, 1,5-px-Haarlinie, Radius 18, weicher Schatten. Nur die
   feste Höhe (288) fehlt — die Tasten würden 4 px über den Rand laufen. */
.wiz-np[b-vfqv77bsv6] {
    flex: 0 0 220px;
    width: 220px;
    margin: 14px 0 0;
    background: white;
    border: 1.5px solid #e4e4e7;
    border-radius: 18px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
    padding: 0 0 4px;
    display: flex;
    flex-direction: column;
}

/* Picker als feste Spalte rechts im Fenster.
   position:relative, weil die Popups der Picker (z. B. das Verbrauchs-Popup des
   MaterialKostenPickers) absolut positioniert sind und am nächsten positionierten
   Vorfahren ankern — ohne das wäre das .modal-window der Anker und das Popup spannte
   über das ganze Fenster. Dieselbe Begründung wie bei .mtd-pick-body in MaterialTauschen. */
.wiz-pickcol[b-vfqv77bsv6] {
    position: relative;
    flex: 0 0 288px;
    width: 288px;
    border-left: 1px solid #e4e4e7;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
    background: white;
}

    /* Die Panels sind eigenständige Karten (Radius 16) — in der Spalte laufen sie bündig */
    .wiz-pickcol[b-vfqv77bsv6]  .mkp-panel,
    .wiz-pickcol[b-vfqv77bsv6]  .lkp-panel,
    .wiz-pickcol[b-vfqv77bsv6]  .amp-panel,
    .wiz-pickcol[b-vfqv77bsv6]  .desc-picker {
        flex: 1 1 auto;
        min-height: 0;
        height: auto;
        border-radius: 0;
    }

/* Den „Aus …"-Knopf, der den Picker als Blatt öffnet, schaltet die Regel weiter oben
   bei .wiz-line.wiz-pickbtn (aus, sobald die Picker-Spalte da ist). */
/* NumPad-Dock — nur am Handy, Werte im ≤699-Block */
.wiz-dock[b-vfqv77bsv6] {
    display: none;
}

/* Buttons.
   Ausgenommen sind die .settings-btn der AppModal-Dialoge: die bringen ihre Maße
   (Höhe 38, Radius 11, Rahmen 1,5 px, Gewicht 700) aus settings.css mit, und diese
   nackte Regel hat sie geschlagen — Blazor macht daraus button[b-…], also eine Klasse
   mehr als das globale .settings-btn. Die Ausnahme steht in :where(), das trägt keine
   Spezifität bei: für alle anderen Knöpfe der Seite bleibt die Regel exakt so stark
   wie vorher. */
button:not(:where(.settings-btn))[b-vfqv77bsv6] {
    padding: 12px 24px;
    border-radius: 999px;
    border: none;
    font-weight: 600;
    transition: 0.2s;
    cursor: pointer;
}

.btn-success[b-vfqv77bsv6] {
    background: #16181c;
    color: white;
}

    @media (hover: hover) {
        .btn-success:hover[b-vfqv77bsv6] {
            background: #26282e;
        }
    }

/* Picker als Blatt von unten (Handy/schmale Fenster) */
.wiz-sheet-dim[b-vfqv77bsv6] {
    position: fixed;
    inset: 0;
    z-index: 220;
    background: rgba(0, 0, 0, 0.4);
}

.wiz-sheet[b-vfqv77bsv6] {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 221;
    /* Schwarz wie der Panel-Kopf darunter — der Griff sitzt auf dem Kopf, nicht auf einem weißen Streifen */
    background: #16181c;
    border-radius: 18px 18px 0 0;
    box-shadow: 0 -18px 40px -18px rgba(0, 0, 0, 0.35);
    height: min(560px, 74dvh);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

    .wiz-sheet[b-vfqv77bsv6]  .mkp-panel,
    .wiz-sheet[b-vfqv77bsv6]  .lkp-panel,
    .wiz-sheet[b-vfqv77bsv6]  .amp-panel,
    .wiz-sheet[b-vfqv77bsv6]  .desc-picker {
        flex: 1 1 auto;
        min-height: 0;
        height: auto;
        border-radius: 0;
    }

.wiz-sheet-grip[b-vfqv77bsv6] {
    width: 40px;
    height: 4px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.35);
    margin: 8px auto 6px;
    flex-shrink: 0;
}

@media (prefers-reduced-motion: no-preference) {
    .wiz-sheet[b-vfqv77bsv6] {
        animation: wiz-sheet-up-b-vfqv77bsv6 0.22s cubic-bezier(0.3, 1.1, 0.5, 1);
    }

    @keyframes wiz-sheet-up-b-vfqv77bsv6 {
        from {
            transform: translateY(40px);
            opacity: 0;
        }
    }
}

/* Schmale Fenster (u. a. iPad hochkant): Picker-Spalte weicht dem „Aus …"-Knopf + Blatt */
@media (max-width: 999px) {
    .wiz-pickcol[b-vfqv77bsv6] {
        display: none;
    }

    .wiz-line.wiz-pickbtn[b-vfqv77bsv6] {
        display: flex;
    }
}

/* Handy: Wizard als ganze Seite — Segment-Leiste im Kopf, Inhalt scrollt, NumPad-Dock unten */
@media (max-width: 699px) {
    .modal-backdrop[b-vfqv77bsv6] {
        align-items: stretch;
        justify-content: stretch;
    }

    .modal-stack[b-vfqv77bsv6] {
        width: 100%;
    }

    .modal-window[b-vfqv77bsv6] {
        border-radius: 0;
        height: 100dvh;
        display: flex;
        flex-direction: column;
    }

    .wiz-segs[b-vfqv77bsv6] {
        display: block;
        background: #16181c;
        padding: 0 14px 10px;
        flex-shrink: 0;
    }

    .wiz-seg-row[b-vfqv77bsv6] {
        display: flex;
        gap: 4px;
    }

    .wiz-seg[b-vfqv77bsv6] {
        flex: 1 1 auto;
        min-width: 0;
        height: 22px;
        padding: 0;
        border: none;
        border-radius: 0;
        background: transparent;
        cursor: pointer;
        display: flex;
        align-items: center;
        transition: none;
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
    }

        .wiz-seg span[b-vfqv77bsv6] {
            display: block;
            width: 100%;
            height: 4px;
            border-radius: 999px;
            background: rgba(255, 255, 255, 0.22);
        }

    .wiz-seg--done span[b-vfqv77bsv6] {
        background: rgba(255, 255, 255, 0.55);
    }

    .wiz-seg--on span[b-vfqv77bsv6] {
        background: white;
        height: 6px;
    }

    .wiz-seg-lbl[b-vfqv77bsv6] {
        display: flex;
        justify-content: space-between;
        gap: 10px;
        margin-top: 6px;
        font-size: 10.5px;
        font-weight: 700;
        color: rgba(255, 255, 255, 0.8);
    }

    .wiz-seg-val[b-vfqv77bsv6] {
        color: rgba(255, 255, 255, 0.5);
        font-weight: 600;
        font-variant-numeric: tabular-nums;
    }

    .wiz-rail[b-vfqv77bsv6] {
        display: none;
    }

    .modal-body[b-vfqv77bsv6] {
        flex: 1 1 auto;
        min-height: 0;
        display: flex;
        flex-direction: column;
    }

    .modal-content[b-vfqv77bsv6] {
        display: block;
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        padding: 20px 16px;
    }

    .wiz-np[b-vfqv77bsv6] {
        display: none;
    }

    .wiz-val-num[b-vfqv77bsv6] {
        font-size: 38px;
    }

    .wiz-text[b-vfqv77bsv6] {
        font-size: 21px;
    }

    /* Kopf: die Segmente zeigen den Fortschritt, „Schritt x / 8" wäre doppelt */
    .modal-header-step[b-vfqv77bsv6] {
        display: none;
    }

    /* „Als Voreinstellung speichern" gibt es am Handy bewusst nicht. Das „button" davor
       ist nötig, weil die Basisregel .wiz-quickadd { display: flex } weiter unten in der
       Datei steht und bei gleicher Spezifität sonst gewinnen würde. */
    button.wiz-quickadd[b-vfqv77bsv6] {
        display: none;
    }

    .wiz-dock[b-vfqv77bsv6] {
        display: block;
        background: white;
        border-top: 1px solid #e4e4e7;
        padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px));
        flex-shrink: 0;
    }

        .wiz-dock[b-vfqv77bsv6]  .app-numpad {
            padding: 0;
        }
}

/* Table description cell */
.table-desc-wrap:focus-within .table-desc-input[b-vfqv77bsv6] {
    border-color: #16181c !important;
    background: #efeff1 !important;
}

.table-desc-wrap:focus-within .desc-pick-trigger[b-vfqv77bsv6] {
    border-color: #16181c;
    background: #efeff1;
    color: #16181c;
}

/* -- Table Picker Popover ------------------------------------------------ */
/* Kein Klick-Fänger mehr: Beide Popover dieser Seite schließen über
   popoverFlip.watchOutside, damit der Klick daneben sein Ziel direkt erreicht. */
.table-picker-popover[b-vfqv77bsv6] {
    position: fixed;
    z-index: 401;
    background: white;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 24px 50px -20px rgba(0,0,0,.26), 0 6px 14px -10px rgba(0,0,0,.12);
    width: min(284px, calc(100vw - 16px));
    height: min(400px, calc(100dvh - 80px));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: popover-in-b-vfqv77bsv6 0.18s cubic-bezier(0.34, 1.4, 0.64, 1);
}

@keyframes popover-in-b-vfqv77bsv6 {
    from {
        opacity: 0;
        transform: scale(0.92) translateY(-6px);
    }

    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* -- Quick-Add-Bestätigung & Tabellen-Vergleich (Inhalte im AppModal;
      Kopf-Icon/-Text und Chips kommen aus den globalen vst-Klassen) ------- */
.vgl-head[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.vgl-chips[b-vfqv77bsv6] {
    margin: 2px 0 4px;
}

.vgl-hint[b-vfqv77bsv6] {
    font-size: 12.5px;
    color: #80858d;
    line-height: 1.5;
    margin: 10px 0 0;
}

.vgl-erp[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-top: 16px;
    font-size: 12px;
    font-weight: 600;
    color: #3c4148;
}

    .vgl-erp input[b-vfqv77bsv6] {
        width: 100%;
        font-size: 15px;
        font-weight: 600;
        padding: 11px 14px;
        border: 1.5px solid #e4e4e7;
        border-radius: 10px;
        font-family: inherit;
        background: #f5f5f7;
        box-sizing: border-box;
    }

        .vgl-erp input:focus[b-vfqv77bsv6] {
            outline: none;
            border-color: #16181c;
            background: #efeff1;
        }

/* Vergleichstabelle Aktuell → Neu */
.vgl-table[b-vfqv77bsv6] {
    margin-top: 12px;
    border: 1px solid #efeff1;
    border-radius: 12px;
    overflow: hidden;
}

.vgl-row[b-vfqv77bsv6] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 8px;
    align-items: center;
    padding: 8px 14px;
    font-size: 13px;
}

    .vgl-row + .vgl-row[b-vfqv77bsv6] {
        border-top: 1px solid #f2f2f4;
    }

.vgl-row--head[b-vfqv77bsv6] {
    background: #f7f7f8;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #80858d;
}

.vgl-cell-label[b-vfqv77bsv6] {
    font-weight: 700;
    color: #16181c;
}

.vgl-cell-old[b-vfqv77bsv6] {
    color: #80858d;
    text-decoration: line-through;
    text-decoration-color: #c0c3c9;
    font-variant-numeric: tabular-nums;
}

.vgl-cell-new[b-vfqv77bsv6] {
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

/* Zeilen ohne tatsächliche Änderung: neutral darstellen */
.vgl-row--same .vgl-cell-old[b-vfqv77bsv6] {
    text-decoration: none;
}

.vgl-row--same .vgl-cell-new[b-vfqv77bsv6] {
    font-weight: 600;
    color: #80858d;
}

/* -- PDF-Menü Dropdown ---------------------------------------------------- */
.pdf-menu-backdrop[b-vfqv77bsv6] {
    position: fixed;
    inset: 0;
    z-index: 300;
}

.pdf-menu-popover[b-vfqv77bsv6] {
    position: fixed;
    z-index: 301;
    background: white;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 24px 50px -20px rgba(0,0,0,.26), 0 6px 14px -10px rgba(0,0,0,.12);
    min-width: 210px;
    overflow: hidden;
    animation: pdfMenuIn-b-vfqv77bsv6 0.16s cubic-bezier(0.34, 1.3, 0.64, 1);
}

@keyframes pdfMenuIn-b-vfqv77bsv6 {
    from {
        opacity: 0;
        transform: translateY(-6px) scale(0.96);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.pdf-menu-item[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 13px 16px;
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    transition: background 0.14s;
    border-radius: 0;
}

    @media (hover: hover) {
        .pdf-menu-item:hover[b-vfqv77bsv6] {
            background: #f5f5f7;
        }
    }

    .pdf-menu-item:active[b-vfqv77bsv6] {
        background: #ececf0;
    }

.pdf-menu-icon[b-vfqv77bsv6] {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.pdf-menu-icon--angebot[b-vfqv77bsv6] {
    background: #efeff1;
    color: #16181c;
}

.pdf-menu-icon--kalk[b-vfqv77bsv6] {
    background: #efeff1;
    color: #16181c;
}

.pdf-menu-icon--aa[b-vfqv77bsv6] {
    background: #efeff1;
    color: #16181c;
}

.pdf-menu-text[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.pdf-menu-label[b-vfqv77bsv6] {
    font-size: 14px;
    font-weight: 700;
    color: #16181c;
    line-height: 1.2;
}

.pdf-menu-desc[b-vfqv77bsv6] {
    font-size: 11px;
    color: #80858d;
    font-weight: 500;
}

.pdf-menu-divider[b-vfqv77bsv6] {
    height: 1px;
    background: #efeff1;
    margin: 0 12px;
}

/* Die PDF-Vorschau läuft über die Shared-Komponente AppLightbox. */

/* --------------------------------------------------------------
   Schritt 8 · Übersicht als Rechenweg
   Links die Kalkulation je Einheit mit Rechenzeichen-Spalte (+ / =), rechts das
   Ergebnis der ganzen Position im Grau der Kalkulationskarte. Auf die FESTE
   Körperhöhe ausgelegt: die Breite trägt statt der Höhe, nichts scrollt.
-------------------------------------------------------------- */

/* Übersicht: über die ganze Inhaltsbreite (kein NumPad, kein Picker); linksbündig ist
   der Inhalt schon über .modal-content */
.wiz-content-main--wide[b-vfqv77bsv6] {
    width: 100%;
}

.ue[b-vfqv77bsv6] {
    width: 100%;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}

/* -- Kopf: Beschreibung + Herkunfts-Chips ---------------------- */
.ue-head[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 13px 18px 12px;
    background: #efeff1;
    border-bottom: 1px solid #e4e4e7;
}

.ue-desc[b-vfqv77bsv6] {
    font-size: 14.5px;
    font-weight: 700;
    color: #16181c;
    line-height: 1.3;
    word-break: break-word;
    /* Deckel: höchstens drei Zeilen, der Rest endet mit … (die Karte muss in den Körper passen) */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ue-desc--leer[b-vfqv77bsv6] {
    color: #80858d;
    font-weight: 600;
}

.ue-chips[b-vfqv77bsv6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.ue-chip[b-vfqv77bsv6] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    max-width: 100%;
    min-height: 24px;
    padding: 0 9px 0 7px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

    .ue-chip svg[b-vfqv77bsv6] {
        flex-shrink: 0;
        color: #80858d;
    }

/* „+N weitere" — dieselbe Pille, aber als Knopf erkennbar (schwarzer Rand) */
.ue-chip--mehr[b-vfqv77bsv6] {
    padding: 0 10px;
    border-color: #16181c;
    font-family: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: none;
}

@media (hover: hover) {
    .ue-chip--mehr:hover[b-vfqv77bsv6] {
        background: #16181c;
        color: #fff;
    }
}

/* -- Körper: Rechenweg | Ergebnis ------------------------------ */
.ue-body[b-vfqv77bsv6] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(220px, 38%, 276px);
}

.ue-kick[b-vfqv77bsv6] {
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #80858d;
}

.ue-ledger[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
    padding: 12px 18px 14px;
}

    /* Kicker bündig mit der Label-Spalte (hinter der Rechenzeichen-Spalte) */
    .ue-ledger .ue-kick[b-vfqv77bsv6] {
        margin-bottom: 4px;
        padding-left: 24px;
    }

/* Zeile = Rechenzeichen · Label · Betrag. Das Rechenzeichen ist die Grammatik
   der Übersicht: man liest sie wie das Kalkulationsschema auf Papier. */
.ue-row[b-vfqv77bsv6] {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr) auto;
    column-gap: 8px;
    align-items: baseline;
    min-height: 29px;
}

.ue-op[b-vfqv77bsv6] {
    font-size: 13px;
    font-weight: 700;
    color: #80858d;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.ue-lbl[b-vfqv77bsv6] {
    display: flex;
    align-items: baseline;
    /* Wird es eng (iPad hochkant), rutscht die Prozent-/Festpreis-Marke unter das Label */
    flex-wrap: wrap;
    gap: 0 6px;
    min-width: 0;
    font-size: 13px;
    font-weight: 600;
    color: #3c4148;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Prozentsatz bzw. Ziel neben dem Label — die Vorgabe, aus der der Betrag folgt */
.ue-sub[b-vfqv77bsv6] {
    font-size: 11px;
    font-weight: 700;
    color: #80858d;
}

.ue-val[b-vfqv77bsv6] {
    font-size: 13px;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* „=“-Zeilen: Strich davor, Label und Betrag in Tinte */
.ue-row--summe[b-vfqv77bsv6] {
    margin-top: 3px;
    padding-top: 3px;
    border-top: 1px solid #e4e4e7;
}

    .ue-row--summe .ue-op[b-vfqv77bsv6],
    .ue-row--summe .ue-lbl[b-vfqv77bsv6] {
        color: #16181c;
        font-weight: 750;
    }

    .ue-row--summe .ue-val[b-vfqv77bsv6] {
        font-size: 14px;
        font-weight: 800;
    }

.ue-row--preis .ue-val[b-vfqv77bsv6] {
    font-size: 15px;
}

/* Aufschlag stammt aus einem Festpreis */
.ue-fest-tag[b-vfqv77bsv6] {
    padding: 1px 6px;
    border: 1px solid #e4e4e7;
    border-radius: 4px;
    background: #fff;
    color: #80858d;
    font-size: 8.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Ergebnis-Spalte: Grau wie der Summenfuß der Kalkulationskarte, Preis in Quicksand */
.ue-total[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    padding: 16px 20px;
    background: #f5f5f7;
    border-left: 1px solid #e4e4e7;
    min-width: 0;
}

.ue-price[b-vfqv77bsv6] {
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 31px;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.1;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Menge × Preis je Einheit — die Brücke zwischen linker und rechter Spalte */
.ue-formel[b-vfqv77bsv6] {
    font-size: 11.5px;
    font-weight: 600;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ue-total-rows[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
    margin-top: 12px;
    padding-top: 8px;
    border-top: 1px solid #e4e4e7;
}

.ue-trow[b-vfqv77bsv6] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    min-height: 26px;
}

    .ue-trow .ue-lbl[b-vfqv77bsv6] {
        font-size: 12px;
    }

    .ue-trow .ue-val[b-vfqv77bsv6] {
        font-size: 12.5px;
    }

/* Einzige Farben im Block: Verlust rot, Marge unter dem Ziel wie in der Kalkulationskarte */
.ue-val--neg[b-vfqv77bsv6] {
    color: #e2483b;
}

.ue-val--warn[b-vfqv77bsv6] {
    color: #a15c00;
}

/* Handy: Spalten untereinander, der Inhalt darf dort scrollen */
@media (max-width: 699px) {
    .ue-body[b-vfqv77bsv6] {
        grid-template-columns: minmax(0, 1fr);
    }

    .ue-total[b-vfqv77bsv6] {
        border-left: none;
        border-top: 1px solid #e4e4e7;
    }
}

/* --------------------------------------------------------------
   TABELLEN-NUMPAD POPUP  (identisch mit Aufmass)
   Ohne Klick-Fänger: geschlossen wird über popoverFlip.watchOutside, damit der
   Klick daneben (z. B. auf den Festpreis-Löser) sein Ziel auch wirklich erreicht.
-------------------------------------------------------------- */
.np-popup[b-vfqv77bsv6] {
    position: fixed;
    z-index: 301;
    background: white;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 24px 50px -20px rgba(0,0,0,.26), 0 6px 14px -10px rgba(0,0,0,.12);
    padding: 0 0 4px;
    display: flex;
    flex-direction: column;
    animation: np-in-b-vfqv77bsv6 0.15s cubic-bezier(0.34,1.3,0.64,1);
    width: 220px;
    height: 288px;
}

@keyframes np-in-b-vfqv77bsv6 {
    from {
        opacity: 0;
        transform: scale(0.92);
        transform-origin: center;
    }

    to {
        opacity: 1;
        transform: scale(1);
        transform-origin: center;
    }
}

/* Tabellen-Inputs die numpad-gesteuert sind · wie seg-input in Aufmass */
.table-input.num[b-vfqv77bsv6] {
    cursor: pointer;
}

    .table-input.num:focus[b-vfqv77bsv6] {
        outline: 2px solid #16181c;
        outline-offset: -1px;
        background: #efeff1;
    }

/* ----------------------------------------------------------------
   NEUES SIDEBAR-LAYOUT
---------------------------------------------------------------- */

/* Root-Container · volle Höhe abzgl. Topbar */
.calc-root[b-vfqv77bsv6] {
    /* 100dvh statt 100vh (100vh bleibt Fallback): auf iPad/iOS ist 100vh die große
       Viewport-Höhe — sonst ließe sich der Header um die Safari-Leiste wegscrollen. */
    height: calc(100vh - var(--app-header-h));
    height: calc(100dvh - var(--app-header-h));
    display: flex;
    flex-direction: column;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    background: #f5f5f7;
    overflow: hidden;
}

/* 2-Spalten Grid: feste Sidebar links, Tabelle rechts */
.calc-layout[b-vfqv77bsv6] {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: 260px 1fr;
    grid-template-rows: 1fr;
    overflow: hidden;
    padding: 12px;
    gap: 12px;
}

/* -- Sidebar · schwebende Karte (wie table-card) ------------ */
.calc-sidebar[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
    background: white;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0,0,0,.22);
    align-self: start;
    max-height: 100%;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    gap: 0;
}

/* Die Karten behalten ihre Höhe — wird die Leiste zu lang, scrollt SIE (schmale
   Leiste, s. u.). Ohne das staucht Flexbox erst die Kinder zusammen, bevor der
   Container überhaupt anfängt zu scrollen. */
.calc-sidebar > *[b-vfqv77bsv6] {
    flex-shrink: 0;
}

/* Luft am unteren Ende, sonst klebt die letzte Karte beim Scrollen an der Kante */
.calc-sidebar > :last-child[b-vfqv77bsv6] {
    margin-bottom: 12px;
}

/* Header: Back-Button + Titel + PDF (exakt wie Aufmaß) */
.csb-header[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 10px;
    background: white;
    /* Eigene runde Ecken oben: ohne Clipping der Leiste (Handy, overflow visible) würde das
       weiße Kopf-Rechteck die Rundung der Karte überdecken */
    border-radius: 16px 16px 0 0;
    flex-shrink: 0;
}

.csb-back-btn[b-vfqv77bsv6] {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: white;
    border: 1px solid #e4e4e7;
    color: #3c4148;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    touch-action: manipulation;
    padding: 0;
}

    .csb-back-btn svg[b-vfqv77bsv6],
    .csb-back-btn path[b-vfqv77bsv6] {
        stroke: currentColor;
    }

    @media (hover: hover) {
        .csb-back-btn:hover[b-vfqv77bsv6] {
            background: #efeff1;
            border-color: #16181c;
            color: #16181c;
        }
    }

.csb-title-group[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1;
    min-width: 0;
}

.csb-title-main[b-vfqv77bsv6] {
    font-size: 13px;
    font-weight: 700;
    color: #16181c;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.csb-title-sub[b-vfqv77bsv6] {
    font-size: 11px;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.csb-pdf-btn[b-vfqv77bsv6] {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: white;
    border: 1px solid #e4e4e7;
    color: #80858d;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    touch-action: manipulation;
    padding: 0;
}

    .csb-pdf-btn svg[b-vfqv77bsv6],
    .csb-pdf-btn path[b-vfqv77bsv6],
    .csb-pdf-btn rect[b-vfqv77bsv6] {
        stroke: currentColor;
    }

    @media (hover: hover) {
        .csb-pdf-btn:hover[b-vfqv77bsv6] {
            background: #efeff1;
            border-color: #16181c;
            color: #16181c;
        }
    }

.csb-pdf-btn--active[b-vfqv77bsv6] {
    background: #16181c !important;
    border-color: #16181c !important;
    color: white !important;
}

/* Neue-Position-Button. Keine Trennlinie mehr darunter — die Karten der Leiste
   folgen alle im gleichen 10-px-Takt, der Abstand trennt genug. */
.csb-add-wrap[b-vfqv77bsv6] {
    padding: 1px 12px 0;
}

.csb-add-btn[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 13px 16px;
    background: #16181c;
    color: white;
    border: none;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.18s, transform 0.12s;
    touch-action: manipulation;
}

    @media (hover: hover) {
        .csb-add-btn:hover[b-vfqv77bsv6] {
            background: #26282e;
        }
    }

    .csb-add-btn:active[b-vfqv77bsv6] {
        transform: scale(0.97);
    }

/* Kalkulationsschema — grauer Kopf (Label + Vergleichen-Knopf), dann Material + Lohn =
   Selbstkosten, Gewinn, Marge, unten der Verkaufspreis als graue Summenzeile; Kopf und Fuß
   laufen dank overflow:hidden bis an die runden Ecken. Gleiche Karte wie die Listen: 1 px
   Rahmen, Radius 12. Im Vergleichs-Modus ersetzt die Gegenüberstellung den Körper. */
.csb-kalk[b-vfqv77bsv6] {
    margin: 10px 12px 0;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.csb-kalk-zeile[b-vfqv77bsv6] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    min-height: 30px;
    padding: 0 12px;
}

/* Selbstkosten = Summe der beiden Zeilen darüber: feiner Strich davor */
.csb-kalk-zeile--summe[b-vfqv77bsv6] {
    margin-top: 3px;
    padding-top: 4px;
    border-top: 1px solid #efeff1;
}

.csb-kalk-lbl[b-vfqv77bsv6] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    min-width: 0;
    font-size: 12px;
    font-weight: 650;
    color: #3c4148;
    white-space: nowrap;
}

/* „Ziel 50 %" neben der Marge — die Vorgabe, an der die Zahl gemessen wird */
.csb-kalk-ziel[b-vfqv77bsv6] {
    font-size: 10.5px;
    font-weight: 700;
    color: #80858d;
}

.csb-kalk-wert[b-vfqv77bsv6] {
    font-size: 12.5px;
    font-weight: 750;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Einzige Farbe im Block: Marge unter dem Ziel */
.csb-kalk-wert--warn[b-vfqv77bsv6] {
    color: #a15c00;
}

/* Summenzeile — Fuß der Karte im selben Grau wie der Kopf (Kopf und Fuß rahmen die
   Zahlen ein), Label als derselbe Versalien-Kicker, die Zahl schwarz und groß. */
.csb-kalk-total[b-vfqv77bsv6] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 2px 10px;
    margin-top: 6px;
    padding: 8px 12px 9px;
    background: #efeff1;
    color: #16181c;
}

.csb-kalk-total-lbl[b-vfqv77bsv6] {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #80858d;
}

/* Die Summe in Quicksand — wie der Hero-Preis im Wizard-Abschluss */
.csb-kalk-total-wert[b-vfqv77bsv6] {
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.1;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.csb-kpi-empty[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 24px 16px;
    color: #c6c9ce;
    text-align: center;
    font-size: 12px;
    font-weight: 500;
}

/* -- Hauptbereich: Tabelle ---------------------------------- */
.calc-main[b-vfqv77bsv6] {
    flex: 1;
    min-width: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

/* Tabellen-Karten: Der Rahmen liegt NICHT mehr auf .table-card, sondern auf den Zellen —
   so kann jede Gruppe (Abschnitt bzw. Positionen ohne Abschnitt) eine eigene Karte mit
   runden Ecken sein, mit Lücke dazwischen; die Spaltenköpfe hängen nur an der ersten
   Karte (Punkt 27, Elias: „sozusagen drei Tabellen, aber nur oben die Überschrift").
   Kanten per inset-Schatten, nicht per Rahmen (verschöbe die Spalten); border-collapse:
   separate, damit Zellen runde Ecken haben dürfen. */
.table-card[b-vfqv77bsv6] {
    min-width: 680px; /* horizontales Scrollen auf sehr kleinen Screens */
}

/* Kompakte Tabellen-Styles */
table[b-vfqv77bsv6] {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

th[b-vfqv77bsv6] {
    background: #f5f5f7;
    color: #80858d;
    padding: 8px 5px;
    text-align: center;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 0;
    white-space: nowrap;
    /* Die Spaltenköpfe sind eine eigene Karte: Ober- und Unterkante auf jeder Zelle */
    box-shadow: inset 0 1px 0 #e4e4e7, inset 0 -1px 0 #e4e4e7;
}

thead th:first-child[b-vfqv77bsv6] {
    border-radius: 14px 0 0 14px;
    box-shadow: inset 1px 0 0 #e4e4e7, inset 0 1px 0 #e4e4e7, inset 0 -1px 0 #e4e4e7;
}

thead th:last-child[b-vfqv77bsv6] {
    border-radius: 0 14px 14px 0;
    box-shadow: inset -1px 0 0 #e4e4e7, inset 0 1px 0 #e4e4e7, inset 0 -1px 0 #e4e4e7;
}

td[b-vfqv77bsv6] {
    background: #fff;
    border-bottom: 1px solid #efeff1;
    vertical-align: middle;
    padding: 0;
}

tbody tr:last-child td[b-vfqv77bsv6] {
    border-bottom: none;
}

@media (hover: hover) {
    tbody tr:hover td[b-vfqv77bsv6] {
        background: #f7f7f8;
    }
}

/* Linke/rechte Kante jeder Karte (jede Zeile außer der Lücke) */
tbody tr:not(.calc-gruppe-luecke) td:first-child[b-vfqv77bsv6] {
    box-shadow: inset 1px 0 0 #e4e4e7;
}

tbody tr:not(.calc-gruppe-luecke) td:last-child[b-vfqv77bsv6] {
    box-shadow: inset -1px 0 0 #e4e4e7;
}

/* Oberkante einer weiteren Karte (Gruppen nach der ersten — die erste hängt an den Spaltenköpfen) */
tbody tr.gr-top td[b-vfqv77bsv6] {
    box-shadow: inset 0 1px 0 #e4e4e7;
}

tbody tr.gr-top td:first-child[b-vfqv77bsv6] {
    border-top-left-radius: 14px;
    box-shadow: inset 1px 0 0 #e4e4e7, inset 0 1px 0 #e4e4e7;
}

tbody tr.gr-top td:last-child[b-vfqv77bsv6] {
    border-top-right-radius: 14px;
    box-shadow: inset -1px 0 0 #e4e4e7, inset 0 1px 0 #e4e4e7;
}

/* Unterkante jeder Karte */
tbody tr.gr-bottom td[b-vfqv77bsv6] {
    border-bottom: 0;
    box-shadow: inset 0 -1px 0 #e4e4e7;
}

tbody tr.gr-bottom td:first-child[b-vfqv77bsv6] {
    border-bottom-left-radius: 14px;
    box-shadow: inset 1px 0 0 #e4e4e7, inset 0 -1px 0 #e4e4e7;
}

tbody tr.gr-bottom td:last-child[b-vfqv77bsv6] {
    border-bottom-right-radius: 14px;
    box-shadow: inset -1px 0 0 #e4e4e7, inset 0 -1px 0 #e4e4e7;
}

/* Lücke vor jeder Karte (auch vor der ersten, unter den Spaltenköpfen) und nach einem
   Abschnitt am Listenende: immer 18 px Luft — keine Kanten, kein Hover. Beim Ziehen
   (tbody.calc-dragging) erscheint IN der Lücke das flache Ablagefeld „ohne Abschnitt"
   (14 px, ragt nirgends hinein) — die Tabelle wird dabei nicht höher, sonst tauchte beim
   Ziehen eine Scrollleiste auf. */
tbody tr.calc-gruppe-luecke td:first-child[b-vfqv77bsv6],
tbody tr.calc-gruppe-luecke:hover td:first-child[b-vfqv77bsv6],
tbody tr.calc-drop-nach td:first-child[b-vfqv77bsv6],
tbody tr.calc-drop-nach:hover td:first-child[b-vfqv77bsv6] {
    position: relative;
    height: 18px;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.calc-drop-feld[b-vfqv77bsv6] {
    display: none;
    position: absolute;
    left: 8px;
    right: 8px;
    top: 2px;
    bottom: 2px;
    z-index: 2;
    align-items: center;
    justify-content: center;
    border: 1px dashed #b8bcc4;
    border-radius: 8px;
    background: transparent;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.01em;
    color: #80858d;
    pointer-events: auto;
}

tbody.calc-dragging .calc-drop-feld[b-vfqv77bsv6] {
    display: flex;
}

/* Beim Drüberziehen: Feld wird dunkel */
tbody tr.drag-over-feld .calc-drop-feld[b-vfqv77bsv6] {
    border: 1.5px solid #16181c;
    background: #efeff1;
    color: #16181c;
}

/* Ausgeschlossene Zeile: Inhalt blass, die Kartenkante bleibt (deshalb nicht die Randzellen) */
.row-excluded td:not(:first-child):not(:last-child)[b-vfqv77bsv6] {
    opacity: 0.45;
}

.row-excluded .btn-delete[b-vfqv77bsv6] {
    opacity: 0.45;
}

/* Spaltenbreiten + Zentrierung: Drag- / Bearbeiten- / Inkl-Spalten */
.drag-handle-th[b-vfqv77bsv6],
.drag-handle-cell[b-vfqv77bsv6],
.clone-position-th[b-vfqv77bsv6],
.clone-position-cell[b-vfqv77bsv6],
.include-th[b-vfqv77bsv6],
.include-cell[b-vfqv77bsv6] {
    width: 30px;
    min-width: 30px;
    max-width: 30px;
    padding: 0 !important;
    text-align: center;
}

.drag-handle-cell[b-vfqv77bsv6],
.clone-position-cell[b-vfqv77bsv6],
.include-cell[b-vfqv77bsv6] {
    vertical-align: middle;
}

.drag-handle-cell[b-vfqv77bsv6],
.clone-position-cell[b-vfqv77bsv6] {
    line-height: 0;
}

.col-pos[b-vfqv77bsv6] {
    width: 30px;
}

.col-desc[b-vfqv77bsv6] {
    min-width: 120px;
}

.col-qty[b-vfqv77bsv6] {
    width: 90px;
}

.col-num[b-vfqv77bsv6] {
    width: 68px;
}

.col-total[b-vfqv77bsv6] {
    width: 76px;
}

.col-del[b-vfqv77bsv6] {
    width: 32px;
}

.cell-pos[b-vfqv77bsv6] {
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    color: #80858d;
    padding: 0 4px;
}

.del-cell[b-vfqv77bsv6] {
    text-align: center;
}

/* Trennlinien */
.col-divider-right[b-vfqv77bsv6] {
    border-right: 1.5px solid #d4d4d8 !important;
}

.col-divider-left[b-vfqv77bsv6] {
    border-left: 1.5px solid #d4d4d8 !important;
}

/* Drag Handle */
.drag-handle-cell[b-vfqv77bsv6] {
    cursor: grab;
    text-align: center;
    user-select: none;
    touch-action: none;
    -webkit-user-select: none;
    vertical-align: middle;
}

    .drag-handle-cell:active[b-vfqv77bsv6] {
        cursor: grabbing;
    }

.drag-handle[b-vfqv77bsv6] {
    opacity: 0.3;
    transition: opacity 0.15s;
    color: #80858d;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
}

@media (hover: hover) {
    .drag-handle-cell:hover .drag-handle[b-vfqv77bsv6] {
        opacity: 0.8;
    }
}

.calc-drag-handle[b-vfqv77bsv6] {
    cursor: grab;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    touch-action: none;
    -webkit-user-select: none;
    user-select: none;
    padding: 0;
    border-radius: 6px;
    transition: background 0.15s;
}

    .calc-drag-handle:active[b-vfqv77bsv6] {
        cursor: grabbing;
        color: #16181c !important;
    }

@media (hover: hover) {
    .drag-handle-cell:hover .calc-drag-handle[b-vfqv77bsv6] {
        background: rgba(22, 24, 28, 0.06);
    }
}

.clone-position-btn[b-vfqv77bsv6] {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 1px solid #e4e4e7;
    border-radius: 6px;
    color: #80858d;
    cursor: pointer;
    transition: background 0.14s, color 0.14s, border-color 0.14s;
    padding: 0;
}

    @media (hover: hover) {
        .clone-position-btn:hover[b-vfqv77bsv6] {
            background: #efeff1;
            border-color: #16181c;
            color: #16181c;
        }
    }

/* -- Drag & Drop (Bedienphysik) --------------------------------------------
   Ablage-Linie: 2 px dunkel genau an der Kante, an der die Zeile landet — oben (davor) oder
   unten (danach). Kein Grauton mehr auf der Zielzeile, die Kartenkanten bleiben stehen
   (Schatten-Listen). tr-Rahmen zeichnen bei border-collapse: separate nichts, daher auf den
   Zellen; gleiche Spezifität wie die Kantenregeln, steht später ⇒ gewinnt. */
tbody tr.drag-over td[b-vfqv77bsv6] {
    box-shadow: inset 0 2px 0 #16181c;
}

tbody tr.drag-over td:first-child[b-vfqv77bsv6] {
    box-shadow: inset 1px 0 0 #e4e4e7, inset 0 2px 0 #16181c;
}

tbody tr.drag-over td:last-child[b-vfqv77bsv6] {
    box-shadow: inset -1px 0 0 #e4e4e7, inset 0 2px 0 #16181c;
}

tbody tr.drag-over-unten td[b-vfqv77bsv6] {
    box-shadow: inset 0 -2px 0 #16181c;
}

tbody tr.drag-over-unten td:first-child[b-vfqv77bsv6] {
    box-shadow: inset 1px 0 0 #e4e4e7, inset 0 -2px 0 #16181c;
}

tbody tr.drag-over-unten td:last-child[b-vfqv77bsv6] {
    box-shadow: inset -1px 0 0 #e4e4e7, inset 0 -2px 0 #16181c;
}

/* Die Überschrift als Drop-Ziel steht weiter unten (nach der gr-top-Regel) */

/* Die gezogene Zeile bleibt als blasser Platzhalter stehen */
tbody tr.drag-source td:not(:first-child):not(:last-child)[b-vfqv77bsv6] {
    opacity: 0.35;
}

/* Ghost: die Zeile selbst (Klon) folgt dem Zeiger — angehoben (Schatten, Ecken), leicht
   durchscheinend, damit die Ablage-Linie darunter sichtbar bleibt. Liegt fest im Viewport,
   nimmt keinen Platz weg (keine Scrollleiste). */
.calc-drag-ghost[b-vfqv77bsv6] {
    position: fixed;
    z-index: 9999;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    opacity: 0.86;
    box-shadow: 0 14px 34px -10px rgba(0, 0, 0, 0.38), 0 2px 8px rgba(0, 0, 0, 0.14), 0 0 0 1px #d4d4d8;
    pointer-events: none;
    will-change: top;
    animation: calcGhostLift-b-vfqv77bsv6 0.14s ease-out;
}

@keyframes calcGhostLift-b-vfqv77bsv6 {
    from { opacity: 0.4; scale: 0.985; }
    to { opacity: 0.86; scale: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .calc-drag-ghost[b-vfqv77bsv6] { animation: none; }
}

.calc-drag-ghost tbody tr td[b-vfqv77bsv6],
.calc-drag-ghost tbody tr td:first-child[b-vfqv77bsv6],
.calc-drag-ghost tbody tr td:last-child[b-vfqv77bsv6] {
    border-bottom: 0;
    box-shadow: none;
}

/* -- Abschnitte mit Zwischensumme (Punkt 27) ------------------------------
   Überschrift vor der ersten, Zwischensumme nach der letzten Position eines Abschnitts.
   Beides sind volle Tabellenzeilen (colspan) — Flexbox nur im inneren div, nie auf der td.
   Optik wie ein Dokument, nicht wie ein Kasten: eine dunkle Linie ÜBER der Überschrift und
   eine dunkle Linie UNTER der Zwischensumme rahmen den Abschnitt; dazwischen bleiben die
   Zeilen weiß und ruhig, Zeilen außerhalb sehen aus wie immer. (Der schwarze Balken links
   und die grauen Bänder waren Elias zu schwer — 2026-08-16.) */
.calc-abschnitt-row td[b-vfqv77bsv6] {
    padding: 0;
    background: #f5f5f7;
    border-bottom: 1px solid #e4e4e7;
}

/* Die Überschrift ist EINE Zelle (colspan) — sie trägt beide Kartenkanten; als Kopf einer
   weiteren Karte (gr-top) auch die Oberkante mit runden Ecken. */
tbody tr.calc-abschnitt-row td:first-child[b-vfqv77bsv6] {
    box-shadow: inset 1px 0 0 #e4e4e7, inset -1px 0 0 #e4e4e7;
}

tbody tr.calc-abschnitt-row.gr-top td:first-child[b-vfqv77bsv6] {
    border-top-left-radius: 14px;
    border-top-right-radius: 14px;
    box-shadow: inset 1px 0 0 #e4e4e7, inset -1px 0 0 #e4e4e7, inset 0 1px 0 #e4e4e7;
}

@media (hover: hover) {
    tbody tr.calc-abschnitt-row:hover td[b-vfqv77bsv6] {
        background: #f5f5f7;
    }
}

.calc-abschnitt[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 36px;
    padding: 0 8px 0 12px;
}

/* Kicker in der Optik der Spaltenköpfe — sagt, was die Zeile ist */
.calc-abschnitt-kicker[b-vfqv77bsv6] {
    flex: none;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #80858d;
}

/* Der Titel ist direkt hier änderbar: ruhig wie Text, beim Fokus wie die Tabellenfelder */
.calc-abschnitt-titel[b-vfqv77bsv6] {
    flex: 1 1 auto;
    min-width: 80px;
    max-width: 420px;
    padding: 5px 7px;
    border: 1px solid transparent;
    border-radius: 5px;
    background: transparent;
    font-family: inherit;
    font-size: 13px;
    font-weight: 800;
    color: #16181c;
    -webkit-appearance: none;
    text-overflow: ellipsis;
}

.calc-abschnitt-titel[b-vfqv77bsv6]::placeholder {
    color: #a3a8b0;
    font-weight: 700;
}

.calc-abschnitt-titel:focus[b-vfqv77bsv6] {
    border-color: #16181c;
    background: #efeff1;
    outline: none;
}

/* Abschnitt ohne Titel: roter Rahmen zeigt, was noch fehlt — beim Tippen (Fokus) wieder dunkel */
.calc-abschnitt-titel.calc-abschnitt-titel--fehlt:not(:focus)[b-vfqv77bsv6] {
    border-color: #d92d20;
    box-shadow: 0 0 0 3px rgba(217, 45, 32, 0.12);
}

.calc-abschnitt-anzahl[b-vfqv77bsv6] {
    flex: none;
    margin-left: auto;
    font-size: 11px;
    font-weight: 650;
    color: #8a8f98;
    white-space: nowrap;
}

/* Auflösen: kleiner, echter Knopf (helle Pille) — 30 px hoch, damit er auf dem iPad treffbar bleibt */
.calc-abschnitt-aufloesen[b-vfqv77bsv6] {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 30px;
    padding: 0 11px;
    border: 1px solid #d4d4d8;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    touch-action: manipulation;
    transition: background 0.14s, border-color 0.14s;
}

@media (hover: hover) {
    .calc-abschnitt-aufloesen:hover[b-vfqv77bsv6] {
        border-color: #16181c;
        background: #f5f5f7;
    }
}

/* Zwischensumme: Gewinn und Summe stehen in ihren Spalten (Gew. / Ges.); die dunkle Linie
   darunter schließt den Abschnitt ab (bei direkt folgendem Abschnitt fällt sie mit dessen
   oberer Linie zusammen — border-collapse). */
.calc-zwischensumme-row td[b-vfqv77bsv6] {
    background: #fff;
    border-top: 1px solid #e4e4e7;
}

@media (hover: hover) {
    tbody tr.calc-zwischensumme-row:hover td[b-vfqv77bsv6] {
        background: #fff;
    }
}

.calc-zwischensumme-label[b-vfqv77bsv6] {
    padding: 7px 8px;
    text-align: right;
    font-size: 11px;
    font-weight: 700;
    color: #6f747d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.calc-zwischensumme-gewinn[b-vfqv77bsv6] {
    font-weight: 700;
}

.calc-zwischensumme-wert[b-vfqv77bsv6] {
    font-weight: 800;
}

/* Überschrift (eine Zelle) als Drop-Ziel: Linie unten, beide Kanten bleiben — steht NACH der
   gr-top-Regel der Überschrift, damit sie beim Drüberziehen gewinnt. */
tbody tr.calc-abschnitt-row.drag-over-unten td:first-child[b-vfqv77bsv6],
tbody tr.calc-abschnitt-row.gr-top.drag-over-unten td:first-child[b-vfqv77bsv6] {
    box-shadow: inset 1px 0 0 #e4e4e7, inset -1px 0 0 #e4e4e7, inset 0 -2px 0 #16181c;
}

/* Tabellen-Inputs */
.table-input[b-vfqv77bsv6] {
    border: 1px solid transparent;
    padding: 6px 5px;
    border-radius: 5px;
    width: 100%;
    box-sizing: border-box;
    font-family: inherit;
    font-size: 12px;
    background: transparent;
    -webkit-appearance: none;
    transition: border-color 0.15s, background 0.15s;
    color: #16181c;
}

    .table-input:focus[b-vfqv77bsv6] {
        border-color: #16181c;
        background: #efeff1;
        outline: none;
    }

    .table-input.num[b-vfqv77bsv6] {
        text-align: right;
        font-variant-numeric: tabular-nums;
        font-size: 12px;
        width: 100%;
        padding-right: 6px;
    }

.table-desc-input[b-vfqv77bsv6] {
    min-width: 80px;
}

.table-desc-td[b-vfqv77bsv6] {
    padding: 0 2px;
}

.table-desc-wrap[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 0 2px;
}

.desc-pick-trigger[b-vfqv77bsv6] {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 1px solid #e4e4e7;
    border-radius: 6px;
    color: #80858d;
    cursor: pointer;
    transition: background 0.14s, color 0.14s, border-color 0.14s;
    padding: 0;
}

    @media (hover: hover) {
        .desc-pick-trigger:hover[b-vfqv77bsv6] {
            background: #efeff1;
            border-color: #16181c;
            color: #16181c;
        }
    }

/* Einheit-Zelle */
.unit-cell[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 2px 4px 2px 2px;
}

    .unit-cell .table-input[b-vfqv77bsv6] {
        width: 48px;
    }

/* Einheit in der Tabellenzelle: kompakter IconSelect (Optik = iconsel--compact) */
.unit-cell[b-vfqv77bsv6]  .iconsel {
    display: inline-block;
    vertical-align: middle;
    width: 64px;
}

/* Inkl/Exkl Toggle */
.drag-handle-cell .calc-drag-handle[b-vfqv77bsv6],
.clone-position-cell .clone-position-btn[b-vfqv77bsv6],
.include-cell .include-toggle[b-vfqv77bsv6] {
    margin: 0 auto;
}

.drag-handle-cell .calc-drag-handle[b-vfqv77bsv6] {
    width: 24px;
    height: 24px;
}

.include-toggle[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 6px;
}

    .include-toggle input[type="checkbox"][b-vfqv77bsv6] {
        display: none;
    }

.include-toggle-face[b-vfqv77bsv6] {
    width: 18px;
    height: 18px;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.14s, border-color 0.14s;
    flex-shrink: 0;
}

.include-toggle-face--on[b-vfqv77bsv6] {
    background: #16a34a;
    color: white;
}

.include-toggle-face--off[b-vfqv77bsv6] {
    background: #e4e4e7;
    color: #e2483b;
}

/* Ergebnis-Zellen */
.total-text[b-vfqv77bsv6] {
    font-size: 12px;
    font-weight: 700;
    color: #16181c;
    text-align: right;
    padding: 6px 6px;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.margin-text[b-vfqv77bsv6] {
    font-size: 12px;
    font-weight: 600;
    color: #16a34a;
    text-align: right;
    padding: 6px 6px;
    font-variant-numeric: tabular-nums;
}

/* Löschen-Button in Tabelle */
.btn-delete[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    color: #d4d4d8;
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 6px;
    transition: color 0.14s, background 0.14s;
    font-family: inherit;
    margin: 0 auto;
}

    @media (hover: hover) {
        .btn-delete:hover[b-vfqv77bsv6] {
            color: #e2483b;
            background: #fbeae8;
        }
    }

/* Leerer Tabellenzustand */
.table-empty-state[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 48px 24px;
    color: #80858d;
    text-align: center;
    /* Eigene Karte unter den Spaltenköpfen (der Kartenrahmen liegt sonst auf den Zellen) */
    margin-top: 18px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
}

    .table-empty-state svg[b-vfqv77bsv6] {
        color: #d4d4d8;
    }

    .table-empty-state p[b-vfqv77bsv6] {
        margin: 0;
        font-size: 14px;
        font-weight: 500;
    }

/* -- Responsive --------------------------------------------- */

/* iPad Landscape / Desktop: volle Sidebar */
@media (min-width: 900px) {
    .calc-layout[b-vfqv77bsv6] {
        grid-template-columns: 248px 1fr;
    }
}

/* iPad Portrait: schmalere Sidebar */
@media (min-width: 600px) and (max-width: 899px) {
    .calc-layout[b-vfqv77bsv6] {
        grid-template-columns: 200px 1fr;
    }

    .csb-add-btn[b-vfqv77bsv6] {
        font-size: 13px;
        padding: 11px 12px;
    }

    .csb-kalk-wert[b-vfqv77bsv6] {
        font-size: 12px;
    }

    .csb-kalk-total-wert[b-vfqv77bsv6] {
        font-size: 17px;
    }
}

/* Handy-Liste und Leiste gibt es nur unter 700 px */
.cm-list[b-vfqv77bsv6],
.cm-bar[b-vfqv77bsv6] {
    display: none;
}

/* Handy (< 700 px, gleiche Grenze wie der Wizard): EINE Seite, die als Ganzes scrollt —
   Kopf, Kalkulationskarte und die weiteren Wege aus der Seitenleiste, darunter die
   Positionen als Karten-Liste; „Neue Position" klebt als schwarze Leiste unten.
   Die Tabelle (680 px breit) ist hier aus. */
@media (max-width: 699px) {
    .calc-layout[b-vfqv77bsv6] {
        display: flex;
        flex-direction: column;
        gap: 10px;
        padding: 10px 10px 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .calc-sidebar[b-vfqv77bsv6] {
        flex: none;
        max-height: none;
        overflow: visible;
        align-self: stretch;
    }

    /* Der große Knopf wandert in die Leiste unten; die weiteren Wege bleiben als Zeilen */
    .csb-add-btn[b-vfqv77bsv6] {
        display: none;
    }

    .csb-add-wrap[b-vfqv77bsv6] {
        padding-top: 0;
    }

    .calc-main[b-vfqv77bsv6] {
        flex: none;
        overflow: visible;
        min-width: 0;
    }

    .table-card[b-vfqv77bsv6] {
        display: none;
    }

    .cm-list[b-vfqv77bsv6] {
        display: flex;
        flex-direction: column;
        gap: 10px;
        padding-bottom: 10px;
    }

    .cm-empty[b-vfqv77bsv6] {
        padding: 28px 16px;
        text-align: center;
        font-size: 13px;
        color: #80858d;
    }

    .cm-gruppe[b-vfqv77bsv6] {
        display: flex;
        flex-direction: column;
        gap: 6px;
    }

    /* Abschnitt: Kopfzeile über der Karte, Zwischensumme darunter — wie im Kunden-PDF.
       Die Kopfzeile ist dieselbe wie in der Tabelle (.calc-abschnitt, dort oben definiert);
       hier bekommt sie nur den Zuschnitt der Karten-Liste. Der rote Rahmen am Titelfeld
       zeigt den fehlenden Titel — deshalb braucht die Zeile keine eigene rote Schrift mehr. */
    .cm-abschnitt[b-vfqv77bsv6] {
        padding: 2px 6px 0;
    }

    .cm-abschnitt .calc-abschnitt[b-vfqv77bsv6] {
        flex-wrap: wrap;
        gap: 4px 8px;
        min-height: 0;
        padding: 0;
    }

    /* Klickziele mindestens 32 px; der Titel darf die ganze Breite nehmen, der Knopf rutscht
       auf schmalen Geräten in die zweite Reihe und bleibt dort rechtsbündig. */
    .cm-abschnitt .calc-abschnitt-titel[b-vfqv77bsv6] {
        min-width: 120px;
        max-width: none;
        min-height: 32px;
    }

    .cm-abschnitt .calc-abschnitt-aufloesen[b-vfqv77bsv6] {
        min-height: 32px;
        margin-left: auto;
    }

    .cm-karte[b-vfqv77bsv6] {
        background: #fff;
        border: 1px solid #e4e4e7;
        border-radius: 14px;
        overflow: hidden;
    }

    /* Zeile = Nummer · Beschreibung (max. 2 Zeilen) + „Menge × Preis" · Gesamt */
    .cm-pos[b-vfqv77bsv6] {
        display: grid;
        grid-template-columns: 26px minmax(0, 1fr) auto;
        column-gap: 10px;
        align-items: center;
        width: 100%;
        min-height: 56px;
        padding: 10px 14px 10px 12px;
        border: none;
        border-bottom: 1px solid #efeff1;
        border-radius: 0;
        background: transparent;
        color: #16181c;
        font-family: inherit;
        text-align: left;
        cursor: pointer;
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
        transition: none;
    }

        .cm-pos:last-child[b-vfqv77bsv6] {
            border-bottom: none;
        }

        .cm-pos:active[b-vfqv77bsv6] {
            background: #f5f5f7;
        }

    .cm-pos-nr[b-vfqv77bsv6] {
        font-size: 11px;
        font-weight: 700;
        color: #80858d;
        font-variant-numeric: tabular-nums;
        text-align: right;
    }

    .cm-pos-body[b-vfqv77bsv6] {
        display: flex;
        flex-direction: column;
        gap: 2px;
        min-width: 0;
    }

    .cm-pos-desc[b-vfqv77bsv6] {
        font-size: 13.5px;
        font-weight: 600;
        line-height: 1.3;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        word-break: break-word;
    }

    .cm-pos-meta[b-vfqv77bsv6] {
        font-size: 11.5px;
        font-weight: 500;
        color: #80858d;
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .cm-pos-sum[b-vfqv77bsv6] {
        font-size: 14px;
        font-weight: 700;
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
    }

    /* Ausgeschlossen: gedimmt, Betrag durchgestrichen — zählt nicht zur Summe */
    .cm-pos--aus .cm-pos-desc[b-vfqv77bsv6],
    .cm-pos--aus .cm-pos-meta[b-vfqv77bsv6],
    .cm-pos--aus .cm-pos-nr[b-vfqv77bsv6] {
        color: #b9bdc2;
    }

    .cm-pos--aus .cm-pos-sum[b-vfqv77bsv6] {
        color: #b9bdc2;
        text-decoration: line-through;
    }

    .cm-zwischensumme[b-vfqv77bsv6] {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        gap: 10px;
        padding: 0 14px;
        font-size: 12px;
        font-weight: 600;
        color: #80858d;
    }

        .cm-zwischensumme strong[b-vfqv77bsv6] {
            font-size: 13px;
            font-weight: 800;
            color: #16181c;
            font-variant-numeric: tabular-nums;
        }

    /* Leiste unten: klebt am unteren Rand der scrollenden Seite, Rand zu Rand */
    .cm-bar[b-vfqv77bsv6] {
        display: block;
        position: sticky;
        bottom: 0;
        margin: 0 -10px;
        padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
        background: rgba(245, 245, 247, 0.92);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
        border-top: 1px solid #e4e4e7;
    }

    .cm-bar-btn[b-vfqv77bsv6] {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        width: 100%;
        min-height: 50px;
        padding: 0 20px;
        border: none;
        border-radius: 999px;
        background: #16181c;
        color: #fff;
        font-family: inherit;
        font-size: 15px;
        font-weight: 700;
        cursor: pointer;
        touch-action: manipulation;
        transition: none;
    }

        .cm-bar-btn:active[b-vfqv77bsv6] {
            transform: scale(0.98);
        }
}

/* -- Kopf der Kalkulationskarte — flacher grauer Streifen (Füllgrau der App), Label als
   Versalien-Kicker; rechts der kleine Knopf „Vergleichen" (nur Symbol, weiße Pille mit
   Haarlinie wie die Symbol-Knöpfe im Leistenkopf, sieht in beiden Ansichten gleich aus).
   Das Label sagt, worin man steht („Kalkulation" / „Vergleich"). */
.csb-kalk-head[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 5px 4px 12px;
    background: #efeff1;
    color: #16181c;
}

.csb-kalk-head-lbl[b-vfqv77bsv6] {
    flex: 1;
    min-width: 0;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.csb-kalk-vgl-btn[b-vfqv77bsv6] {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    padding: 0;
    border: 1px solid #e4e4e7;
    border-radius: 6px;
    background: #fff;
    color: #3c4148;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    touch-action: manipulation;
}

@media (hover: hover) {
    .csb-kalk-vgl-btn:hover[b-vfqv77bsv6] {
        border-color: #16181c;
        color: #16181c;
    }
}

.csb-kalk-vgl-btn:active[b-vfqv77bsv6] {
    background: #16181c;
    border-color: #16181c;
    color: #fff;
}

.csb-kalk-vgl-btn:focus-visible[b-vfqv77bsv6] {
    outline: 2px solid #16181c;
    outline-offset: 1px;
}

/* Beide Ansichten im selben Raster-Feld: die Karte ist so hoch wie die höhere, die
   inaktive bleibt unsichtbar an Ort und Stelle — beim Umschalten verrutscht nichts.
   Die Zeilenmaße beider Ansichten sind so abgestimmt, dass sie (Desktop) gleich hoch sind. */
.csb-kalk-stapel[b-vfqv77bsv6] {
    display: grid;
}

.csb-kalk-ansicht[b-vfqv77bsv6] {
    grid-area: 1 / 1;
    min-width: 0;
}

.csb-kalk-ansicht--weg[b-vfqv77bsv6] {
    visibility: hidden;
}

/* Kalkulations-Ansicht: Zeilen oben, Summenbalken als letzte Zeile */
.csb-kalk-ansicht--kalk[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
}

.csb-kalk-body[b-vfqv77bsv6] {
    flex: 1 1 auto;
    padding-top: 6px;
}

/* Vergleichs-Ansicht: Basis-Zeile, Gegenüberstellung, Hinweise rücken selbst um 12 px ein
   (die Karte hat keine Polsterung). */
.csb-vgl-body[b-vfqv77bsv6] {
    padding: 6px 0 8px;
}

/* Gegenüberstellung Kalkulation | Referenz — drei Spalten: Kennzahl, eigener Wert, Median
   der fertigen Baustellen; darunter je Kennzahl eine Messstrecke (Strich = Referenz in der
   Mitte, Punkt = diese Kalkulation). Farbregel: nur wo „höher" wirklich besser ist (Marge,
   Erlös) — grün darüber, amber darunter; Kosten neutral. */
.csb-vgl[b-vfqv77bsv6] {
    display: grid;
    /* Zahlen nie abschneiden — die Beschriftung gibt nach (Ellipse); große Beträge
       kommen ohne Nachkommastellen (VglZeileFuerAnzeige), damit das nicht passiert. */
    grid-template-columns: minmax(0, 1fr) max-content max-content;
    column-gap: 8px;
    align-items: baseline;
    padding: 0 12px;
}

/* Spaltenkopf zweizeilig: Name + Basis (m² bzw. Anzahl Baustellen) */
.csb-vgl-kopf[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    padding-bottom: 4px;
    font-size: 10.5px;
    font-weight: 700;
    color: #80858d;
    white-space: nowrap;
}

.csb-vgl-kopf--zahl[b-vfqv77bsv6] {
    text-align: right;
}

.csb-vgl-kopf-sub[b-vfqv77bsv6] {
    min-height: 12px;
    font-size: 9.5px;
    font-weight: 600;
    color: #a3a8b0;
    font-variant-numeric: tabular-nums;
}

.csb-vgl-lbl[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    min-height: 28px;
    min-width: 0;
    font-size: 12px;
    font-weight: 650;
    color: #3c4148;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Kennzahl ohne Gegenstück in der Kalkulation: Beschriftung nimmt die Kalkulations-Spalte mit */
.csb-vgl-lbl--breit[b-vfqv77bsv6] {
    grid-column: 1 / 3;
}

.csb-vgl-mein[b-vfqv77bsv6] {
    text-align: right;
    font-size: 12.5px;
    font-weight: 750;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.csb-vgl-mein.csb-vgl--gut[b-vfqv77bsv6] {
    color: #157f3c;
}

.csb-vgl-mein.csb-vgl--unter[b-vfqv77bsv6] {
    color: #7a5a1a;
}

.csb-vgl-ref[b-vfqv77bsv6] {
    text-align: right;
    font-size: 12.5px;
    font-weight: 650;
    color: #3c4148;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.csb-vgl-skala[b-vfqv77bsv6] {
    grid-column: 1 / -1;
    position: relative;
    height: 10px;
    margin: -1px 0 7px;
}

.csb-vgl-skala-linie[b-vfqv77bsv6] {
    position: absolute;
    top: 4px;
    left: 0;
    right: 0;
    height: 2px;
    border-radius: 999px;
    background: #ededf2;
}

/* Die Strecke zwischen Referenz und eigenem Wert ist der Abstand */
.csb-vgl-skala-spanne[b-vfqv77bsv6] {
    position: absolute;
    top: 4px;
    height: 2px;
    border-radius: 999px;
    background: #c9cbd2;
}

.csb-vgl-skala-spanne.csb-vgl--gut[b-vfqv77bsv6] {
    background: #9dd3b1;
}

.csb-vgl-skala-spanne.csb-vgl--unter[b-vfqv77bsv6] {
    background: #e3c48a;
}

.csb-vgl-skala-median[b-vfqv77bsv6] {
    position: absolute;
    top: 0;
    left: calc(50% - 1px);
    width: 2px;
    height: 10px;
    border-radius: 999px;
    background: #a3a8b0;
}

.csb-vgl-skala-punkt[b-vfqv77bsv6] {
    position: absolute;
    top: 1px;
    width: 8px;
    height: 8px;
    margin-left: -4px;
    border-radius: 50%;
    background: #16181c;
    box-shadow: 0 0 0 2px #fff;
}

.csb-vgl-skala-punkt.csb-vgl--gut[b-vfqv77bsv6] {
    background: #157f3c;
}

.csb-vgl-skala-punkt.csb-vgl--unter[b-vfqv77bsv6] {
    background: #b45309;
}

.csb-nkref-hinweis[b-vfqv77bsv6] {
    margin: 6px 12px 2px;
    font-size: 11.5px;
    font-weight: 500;
    color: #80858d;
    line-height: 1.45;
}

/* Wiederholen nach einem gescheiterten Vergleich — weiß mit Haarlinie wie die
   übrigen Nebenknöpfe der Karte, 32 px hoch (iPad). */
.csb-nkref-retry[b-vfqv77bsv6] {
    margin: 2px 12px 8px;
    min-height: 32px;
    padding: 0 12px;
    border-radius: 8px;
    background: white;
    border: 1px solid #e4e4e7;
    color: #3c4148;
    font-size: 11.5px;
    font-weight: 600;
    cursor: pointer;
    touch-action: manipulation;
    transition: background 0.15s, border-color 0.15s;
}

@media (hover: hover) {
    .csb-nkref-retry:hover[b-vfqv77bsv6] {
        background: #f6f6f7;
        border-color: #d4d4d8;
    }
}

/* ----------------------------------------------------------------
   P0/P1 · Hinweis ohne Angebot, Preis-Werkzeuge, Festpreis, Gebinde
----------------------------------------------------------------- */

/* Kein Angebot geöffnet → nichts wird gespeichert */
.calc-nosave-banner[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 8px;
    padding: 9px 14px;
    border: 1px solid #e8c48a;
    background: #fdf6e8;
    border-radius: 10px;
    font-size: 12.5px;
    font-weight: 600;
    color: #7a5a1a;
}

.calc-nosave-banner svg[b-vfqv77bsv6] {
    flex: none;
}

.calc-nosave-btn[b-vfqv77bsv6] {
    margin-left: auto;
    flex: none;
    padding: 5px 12px;
    border: none;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 700;
    cursor: pointer;
}

/* Werkzeuge (Ziel-Preis, Punkt 37/38, Papierkorb) — EINE Karte, Zeilen in der Optik der
   Hinzufügen-Liste (.csb-add-alt-btn wird direkt wiederverwendet, Werte 1:1). */
.csb-tools[b-vfqv77bsv6] {
    margin: 10px 12px 0;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.csb-tools > * + *[b-vfqv77bsv6] {
    border-top: 1px solid #f0f0f2;
}

/* Zähler rechts in der Zeile („Papierkorb 1", „Preise nachziehen 4") — statt eines
   erklärenden Untertitels. Amber = hier gibt es etwas zu tun. */
.csb-row-zahl[b-vfqv77bsv6] {
    flex: none;
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 7px;
    border-radius: 999px;
    background: #efeff1;
    color: #16181c;
    font-size: 11px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.csb-row-zahl--warn[b-vfqv77bsv6] {
    background: #fdf6e8;
    color: #7a5a1a;
}

/* Festpreis-Zelle (€/Einheit).
   WICHTIG: display:flex gehört ins innere div, NICHT auf die <td> — eine Tabellenzelle
   mit display:flex verliert ihr Zellen-Verhalten, benachbarte Flex-Zellen landen dann
   in EINER anonymen Zelle und die ganze Spaltenausrichtung verrutscht. */
/* Beide Spalten tragen einen kleinen Zusatzknopf und bekommen dafür Breite —
   ohne das schrumpft das Zahlenfeld auf ein paar Pixel zusammen. */
.col-mat[b-vfqv77bsv6] {
    /* Material-Knopf (max. 92 px) + Abstand + Zahlenfeld — sonst schrumpft die Zahl weg */
    width: 152px;
}

.col-price[b-vfqv77bsv6] {
    width: 92px;
}

/* Nur Zeilen MIT Festpreis brauchen Platz für den Aufheben-Knopf: Die Tabelle
   verteilt ihre Breite selbst (table-layout: auto), eine reine Wunschbreite an der
   Spalte wird bei Platzmangel ignoriert — dann schnitt „1.234,56" ab. min-width an
   der Zelle setzt sich durch, und ohne Festpreis bleibt die Spalte schmal wie bisher. */
td.price-cell:has(.fest-loesen)[b-vfqv77bsv6] {
    min-width: 112px;
}

.price-cell[b-vfqv77bsv6] {
    padding: 0 2px;
    white-space: nowrap;
}

.price-cell-wrap[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 2px;
}

.price-cell .table-input[b-vfqv77bsv6] {
    text-align: right;
    font-weight: 700;
    min-width: 0;
}

.table-input--fest[b-vfqv77bsv6] {
    background: #eef2ff;
    border-color: #c7d2fe;
    font-weight: 800;
}

/* Aus dem Festpreis abgeleiteter Aufschlag: sichtbar „nicht selbst gesetzt" */
.table-input--abgeleitet[b-vfqv77bsv6] {
    color: #7a7f88;
    font-style: italic;
}

/* Festpreis aufheben. 32×32 px: auf dem iPad war der frühere 15-px-Punkt nicht
   treffbar — ein Fehltipp landete im Preisfeld und setzte prompt den nächsten Festpreis. */
.fest-loesen[b-vfqv77bsv6] {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: none;
    border-radius: 999px;
    background: #c7d2fe;
    color: #1e2a5a;
    cursor: pointer;
}

/* Gebinde-Chip in der Material-Zelle — links neben dem Betrag, nicht darüber.
   Flexbox wieder nur im inneren div (siehe Hinweis bei .price-cell). */
.mat-cell[b-vfqv77bsv6] {
    padding: 0 2px;
    white-space: nowrap;
}

.mat-cell-wrap[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 2px;
}

/* Die Zahl hat Vorrang: Sie behält ihre Breite, der Gebinde-Knopf daneben
   schrumpft und schneidet seinen Text ab. */
/* 64px reichen gemessen auch für „98.765,43" — darunter geht das Feld nie,
   der Knopf daneben schrumpft stattdessen. */
.mat-cell .table-input[b-vfqv77bsv6] {
    flex: 1 0 64px;
    min-width: 64px;
}

/* Gebinde-Knopf: beschriftet („Eimer" / „2 Eimer"), nicht abgekürzt. Die Erklärung
   steckt im Popover, nicht im Tooltip. Höhe = die 26 px des Einheiten-Dropdowns
   (.iconsel--compact) in der Nachbarzelle — gleiche Reihe, gleiche Höhe. */
.geb-chip[b-vfqv77bsv6] {
    /* Darf schrumpfen, damit die Zahl daneben lesbar bleibt — nie unter die
       Antippgröße, dann wird stattdessen der Text abgeschnitten. */
    flex: 0 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-width: 44px;
    /* Gemessen mit der echten Schrift (10,5 px/700): „3 Materialien" 82,6 px,
       zweistellig 87,8 px, „Großgebinde" 86,3 px — darunter würde abgeschnitten. */
    max-width: 92px;
    min-height: 26px;
    padding: 2px 8px;
    border: 1px solid #d4d6dc;
    border-radius: 6px;
    background: #fff;
    font-family: inherit;
    font-size: 10.5px;
    font-weight: 700;
    color: #6f747d;
    cursor: pointer;
    white-space: nowrap;
}

/* Die Gebinde-Anzahl wird nie abgeschnitten — sie ist die eigentliche Aussage */
.geb-chip-zahl[b-vfqv77bsv6] {
    flex: none;
    font-size: 12px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

/* Lange Gebinde-Namen („Großgebinde") laufen nicht über, sie enden mit … */
.geb-chip-text[b-vfqv77bsv6] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.geb-chip--on[b-vfqv77bsv6] {
    background: #16181c;
    border-color: #16181c;
    color: #fff;
}

@media (hover: hover) {
    .geb-chip:hover[b-vfqv77bsv6] {
        border-color: #16181c;
    }
}

/* Popover mit der Rechnung */
.geb-pop[b-vfqv77bsv6] {
    /* Startpunkt kommt vom Klick, wird aber so weit nach oben gezogen, dass immer
       mindestens ~260 px Platz bleiben — sonst klebt das Popover am unteren Rand.
       Die Höhe ergibt sich aus demselben Wert, die Liste darin scrollt. */
    --pop-top-c: max(8px, min(var(--pop-top, 8px), calc(100dvh - 260px)));
    /* Achtung: max-height rechnet hier mit border-box (kommt global aus Bootstrap) —
       ohne das kämen Polsterung und Rahmen obendrauf und das Popover stünde wieder
       unten über den Rand hinaus. */
    position: fixed;
    top: var(--pop-top-c);
    left: var(--pop-left, 8px);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    width: 268px;
    max-height: calc(100dvh - var(--pop-top-c) - 12px);
    padding: 14px;
    border: 1px solid #e3e4e8;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.16);
}

.geb-pop-head[b-vfqv77bsv6] {
    flex: none;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-bottom: 10px;
    border-bottom: 1px solid #f0f0f2;
}

.geb-pop-titel[b-vfqv77bsv6] {
    font-size: 13.5px;
    font-weight: 800;
    color: #16181c;
}

.geb-pop-sub[b-vfqv77bsv6] {
    font-size: 11.5px;
    font-weight: 600;
    color: #8a8f98;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.geb-pop-rechnung[b-vfqv77bsv6] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 10px 0;
}

.geb-pop-zeile[b-vfqv77bsv6] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    font-size: 11.5px;
    font-weight: 600;
    color: #80858d;
}

.geb-pop-zeile strong[b-vfqv77bsv6] {
    font-size: 12px;
    font-weight: 800;
    color: #16181c;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.geb-pop-zeile--preis[b-vfqv77bsv6] {
    padding-top: 8px;
    border-top: 1px solid #f0f0f2;
}

.geb-pop-zeile em[b-vfqv77bsv6] {
    display: block;
    font-size: 10.5px;
    font-style: normal;
    font-weight: 600;
    color: #8a8f98;
}

.geb-pop-text[b-vfqv77bsv6] {
    margin: 0 0 12px;
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1.5;
    color: #8a8f98;
}

.geb-pop-btn[b-vfqv77bsv6] {
    flex: none;
    width: 100%;
    min-height: 40px;
    border: 1px solid #16181c;
    border-radius: 999px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.geb-pop-btn--an[b-vfqv77bsv6] {
    background: #16181c;
    color: #fff;
}

.geb-pop-btn--aus[b-vfqv77bsv6] {
    background: #fff;
    color: #16181c;
}

/* Stückliste im Popover: eine Zeile je Material, darunter die Summe */
.mat-pop-liste[b-vfqv77bsv6] {
    /* Nur die Liste scrollt — Kopf, Summe und der Knopf darunter bleiben stehen. */
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px 0;
}

.mat-pop-zeile[b-vfqv77bsv6] {
    /* Der Block behält seine Höhe; eng wird die Liste, die ihn scrollt. */
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-bottom: 10px;
    border-bottom: 1px solid #f0f0f2;
}

.mat-pop-zeile:last-child[b-vfqv77bsv6] {
    padding-bottom: 0;
    border-bottom: none;
}

.mat-pop-kopf[b-vfqv77bsv6] {
    display: flex;
    /* Preis und × bleiben oben stehen, auch wenn der Name zwei Zeilen braucht */
    align-items: flex-start;
    gap: 8px;
}

/* Lange Artikelnamen dürfen zwei Zeilen nehmen, danach wird gekürzt — sonst wächst
   die Zeile bei „WAKOL › WAKOL D 965 Fixierdispersion" unkontrolliert. */
.mat-pop-name[b-vfqv77bsv6] {
    flex: 1 1 auto;
    min-width: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1.3;
    color: #16181c;
}

.mat-pop-preis[b-vfqv77bsv6] {
    flex: none;
    font-size: 12.5px;
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.mat-pop-weg[b-vfqv77bsv6] {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid #e3e4e8;
    border-radius: 999px;
    background: #fff;
    color: #80858d;
    cursor: pointer;
}

@media (hover: hover) {
    .mat-pop-weg:hover[b-vfqv77bsv6] {
        border-color: #16181c;
        color: #16181c;
    }
}

.mat-pop-summe[b-vfqv77bsv6] {
    flex: none;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
    padding-top: 10px;
    border-top: 1px solid #f0f0f2;
    font-size: 12px;
    font-weight: 700;
    color: #80858d;
}

/* Im Übersicht-Popover ist die Summe die letzte Zeile — dort ohne Abstand nach unten */
.mat-pop-summe:last-child[b-vfqv77bsv6] {
    margin-bottom: 0;
}

.mat-pop-summe strong[b-vfqv77bsv6] {
    font-size: 13px;
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

/* Umschalter Aufschlag ↔ Marge im Dialog */
.preis-modus[b-vfqv77bsv6] {
    display: flex;
    gap: 4px;
    padding: 3px;
    margin-bottom: 12px;
    background: #f0f0f2;
    border-radius: 999px;
}

.preis-modus-btn[b-vfqv77bsv6] {
    flex: 1 1 0;
    padding: 7px 10px;
    border: none;
    border-radius: 999px;
    background: transparent;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    color: #6f747d;
    cursor: pointer;
}

.preis-modus-btn--on[b-vfqv77bsv6] {
    background: #fff;
    color: #16181c;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
}

/* Zweiter, untergeordneter Umschalter (Ziel-Preis-Dialog): kompakter als der obere,
   damit die Rangfolge der beiden Wege sichtbar bleibt. Die Klasse stand im Markup,
   ohne dass es je eine Regel dazu gab. Knöpfe bleiben bei 32 px Höhe (iPad). */
.preis-modus--klein[b-vfqv77bsv6] {
    margin-bottom: 8px;
    max-width: 240px;
}

.preis-modus--klein .preis-modus-btn[b-vfqv77bsv6] {
    min-height: 32px;
    padding: 5px 8px;
    font-size: 11px;
}

/* Zielsumme abrunden */
.zielpreis-runden[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    font-size: 11.5px;
    font-weight: 600;
    color: #80858d;
}

.zielpreis-runden button[b-vfqv77bsv6] {
    padding: 4px 10px;
    border: 1px solid #e3e4e8;
    border-radius: 999px;
    background: #fff;
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 700;
    color: #16181c;
    cursor: pointer;
}

.vgl-hint--warn[b-vfqv77bsv6] {
    color: #b45309;
}

/* ----------------------------------------------------------------
   P3 · Zweiter Weg, Zeilen anzulegen (der Dialog bringt seine eigene CSS mit)
----------------------------------------------------------------- */
/* Zwei weitere Wege, Zeilen anzulegen — EINE eingefasste Liste unter dem Hauptknopf
   statt konkurrierender Pillen: volle Zeilenbreite (Beschriftung + Antippfläche),
   Trennlinie dazwischen, Icons ruhig grau. */
.csb-add-alt[b-vfqv77bsv6] {
    margin-top: 8px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

/* DIE Zeile der Seitenleiste — Hinzufügen-Wege, Werkzeuge und Papierkorb teilen sich diese Maße. */
.csb-add-alt-btn[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 38px;
    padding: 0 12px;
    border: none;
    /* Die globale button-Regel der Seite macht jede Zeile zur 999px-Pille — dann
       trifft das Hover-Grau die runden Ecken der Karte nicht. Eckig lassen: die
       Karte (overflow: hidden) schneidet oben/unten selbst auf ihren Radius zu. */
    border-radius: 0;
    background: transparent;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 700;
    color: #16181c;
    text-align: left;
    cursor: pointer;
    touch-action: manipulation;
    /* Listen-Hover ohne Übergang — sofortige Farbe fühlt sich nicht „laggy" an */
}

.csb-add-alt-btn + .csb-add-alt-btn[b-vfqv77bsv6] {
    border-top: 1px solid #f0f0f2;
}

.csb-add-alt-btn svg[b-vfqv77bsv6] {
    flex: 0 0 auto;
    color: #80858d;
}

@media (hover: hover) {
    .csb-add-alt-btn:hover[b-vfqv77bsv6] {
        background: #f4f4f6;
    }
}

.csb-add-alt-btn:active[b-vfqv77bsv6],
.csb-add-alt-btn--aktiv[b-vfqv77bsv6] {
    background: #efeff1;
}


/* Schmale Scrollleiste — Werte 1:1 aus dem Aufmaß (.am-tree & Co.) */
.calc-sidebar[b-vfqv77bsv6],
.calc-main[b-vfqv77bsv6],
.table-card[b-vfqv77bsv6],
.wiz-matzeilen[b-vfqv77bsv6],
.mat-pop-liste[b-vfqv77bsv6] {
    scrollbar-width: thin;                 /* Firefox */
    scrollbar-color: #c6c9ce transparent;  /* Daumen · Spur */
}

.calc-sidebar[b-vfqv77bsv6]::-webkit-scrollbar,
.calc-main[b-vfqv77bsv6]::-webkit-scrollbar,
.table-card[b-vfqv77bsv6]::-webkit-scrollbar,
.wiz-matzeilen[b-vfqv77bsv6]::-webkit-scrollbar,
.mat-pop-liste[b-vfqv77bsv6]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.calc-sidebar[b-vfqv77bsv6]::-webkit-scrollbar-track,
.calc-main[b-vfqv77bsv6]::-webkit-scrollbar-track,
.table-card[b-vfqv77bsv6]::-webkit-scrollbar-track,
.wiz-matzeilen[b-vfqv77bsv6]::-webkit-scrollbar-track,
.mat-pop-liste[b-vfqv77bsv6]::-webkit-scrollbar-track {
    background: transparent;
}

.calc-sidebar[b-vfqv77bsv6]::-webkit-scrollbar-thumb,
.calc-main[b-vfqv77bsv6]::-webkit-scrollbar-thumb,
.table-card[b-vfqv77bsv6]::-webkit-scrollbar-thumb,
.wiz-matzeilen[b-vfqv77bsv6]::-webkit-scrollbar-thumb,
.mat-pop-liste[b-vfqv77bsv6]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .calc-sidebar[b-vfqv77bsv6]::-webkit-scrollbar-thumb:hover,
    .calc-main[b-vfqv77bsv6]::-webkit-scrollbar-thumb:hover,
    .table-card[b-vfqv77bsv6]::-webkit-scrollbar-thumb:hover,
    .wiz-matzeilen[b-vfqv77bsv6]::-webkit-scrollbar-thumb:hover,
    .mat-pop-liste[b-vfqv77bsv6]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

/* -- Aufmaß-Knopf + -Popover (Punkt 10): Menge aus dem Aufmaß ---------------- */

/* Nur-Symbol-Knopf in der Beschreibungs-Zelle, Bauart 1:1 wie .desc-pick-trigger
   daneben (24 px, gleicher Rahmen) — die beiden sollen als Paar lesen. Das Lineal
   ist etwas größer gezeichnet als das Listen-Symbol, damit man es sofort erkennt. */
.herkunft-chip[b-vfqv77bsv6] {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid #e4e4e7;
    border-radius: 6px;
    background: none;
    color: #80858d;
    cursor: pointer;
    transition: background 0.14s, color 0.14s, border-color 0.14s;
}

@media (hover: hover) {
    .herkunft-chip:hover[b-vfqv77bsv6] {
        background: #efeff1;
        border-color: #16181c;
        color: #16181c;
    }
}

/* Platzhalter, wenn die Zeile keinen Aufmaß-Bezug hat: nimmt den Platz ein, zeigt nichts */
.herkunft-chip--platz[b-vfqv77bsv6] {
    visibility: hidden;
    pointer-events: none;
}

/* Abweichung zum Aufmaß-Stand: Amber, wie die Preis-nachziehen-Meldung */
.herkunft-chip--warn[b-vfqv77bsv6] {
    border-color: #ecd9a8;
    background: #fdf6e8;
    color: #7a5a1a;
}

/* Popover: etwas breiter als das Gebinde-Popover (Raumliste + zwei Wertspalten) */
.herkunft-pop[b-vfqv77bsv6] {
    width: 292px;
}

/* Die Quelle („Aufmaß EG + OG · 3 Räume") steht im Kopf und darf umbrechen —
   ein abgeschnittener Aufmaß-Titel wäre hier die halbe Information. */
.herkunft-pop .geb-pop-sub[b-vfqv77bsv6] {
    white-space: normal;
}

/* Nur der Inhalt scrollt — Kopf bleibt stehen (gleiche Regel wie .mat-pop-liste).
   Kein gap: die Rechnung bringt ihre eigene Polsterung mit. */
.hk-scroll[b-vfqv77bsv6] {
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    scrollbar-width: thin;
    scrollbar-color: #c6c9ce transparent;
}

.hk-scroll > .geb-pop-text[b-vfqv77bsv6] {
    margin: 10px 0 2px;
}

.hk-scroll[b-vfqv77bsv6]::-webkit-scrollbar {
    width: 7px;
}

.hk-scroll[b-vfqv77bsv6]::-webkit-scrollbar-track {
    background: transparent;
}

.hk-scroll[b-vfqv77bsv6]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

.hk-ok[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    color: #2e7d4f;
}

/* Schritt 8: Hinzufügen/Speichern groß am unteren Rand des Inhalts (margin-top:auto
   drückt ihn im Flex-Spalten-Inhalt nach unten; schwarz wie „Neue Position" in der Leiste) */
.wiz-cta[b-vfqv77bsv6] {
    margin-top: auto;
    width: 100%;
    min-height: 52px;
    padding: 0 24px;
    border: none;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    flex-shrink: 0;
    transition: none;
    touch-action: manipulation;
}

    @media (hover: hover) {
        .wiz-cta:hover[b-vfqv77bsv6] {
            background: #26282e;
        }
    }

    .wiz-cta:active[b-vfqv77bsv6] {
        transform: scale(0.99);
    }

/* „Als Voreinstellung speichern" — Leiste ganz unten im Inhalt, Rand zu Rand (hebt den
   Innenabstand des Inhalts auf), auf jedem Schritt; unter dem großen Speichern-Knopf. */
.wiz-quickadd[b-vfqv77bsv6] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-shrink: 0;
    margin: auto -24px -22px;
    min-height: 48px;
    padding: 0 16px;
    border: none;
    border-top: 1px solid #e4e4e7;
    border-radius: 0;
    background: #f5f5f7;
    color: #16181c;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: none;
    touch-action: manipulation;
}

    /* Steht der große Knopf (Schritt 8) darüber, drückt ER nach unten — die Leiste folgt mit Abstand */
    .wiz-cta + .wiz-quickadd[b-vfqv77bsv6] {
        margin-top: 16px;
    }

    @media (hover: hover) {
        .wiz-quickadd:hover[b-vfqv77bsv6] {
            background: #efeff1;
        }
    }

/* Schritt 1: Zeile und Spalte nehmen die ganze Höhe, das Textfeld wächst mit */
.wiz-row--fill[b-vfqv77bsv6] {
    flex: 1 1 auto;
    min-height: 0;
}

    .wiz-row--fill .wiz-content-main[b-vfqv77bsv6] {
        align-self: stretch;
        min-height: 0;
    }

    .wiz-row--fill .wiz-text[b-vfqv77bsv6] {
        flex: 1 1 auto;
        height: auto;
        min-height: calc(3 * 1.25em + 10px);
    }
/* /Components/Pages/Calc/ProjectSetup.razor.rz.scp.css */
/* --------------------------------------------------------------
   CRM-ARBEITSOBERFLÄCHE
-------------------------------------------------------------- */
.project-crm[b-9u9gcmqnqe] {
    --crm-bg: #f5f5f7;
    --crm-panel: #ffffff;
    --crm-panel-soft: #f7f7f9;
    --crm-line: #e4e4e7;
    --crm-line-strong: #d4d4d8;
    --crm-text: #16181c;
    --crm-muted: #3c4148;
    --crm-faint: #80858d;
    --crm-accent: #16181c;
    --crm-accent-soft: #efeff1;
    --crm-danger: #e2483b;
    --crm-danger-soft: #fbeae8;
    --crm-success: #16a34a;
    --crm-success-soft: #eaf7ee;
    --crm-header-height: var(--app-header-h);
    --crm-top-gap: 8px;
    height: calc(100dvh - var(--crm-header-height));
    padding: var(--crm-top-gap) 24px var(--crm-top-gap);
    background: var(--crm-bg);
    color: var(--crm-text);
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.crm-grid[b-9u9gcmqnqe] {
    display: flex;
    align-items: stretch;
    max-width: 1680px;
    height: calc(100dvh - var(--crm-header-height) - var(--crm-top-gap) - var(--crm-top-gap));
    min-height: 0;
    margin: 0 auto;
    /* Dock + Dokumente sind zwei frei stehende Karten – kein gemeinsamer Rahmen mehr. */
}

/* ---- Frei stehendes Dock (Kunden + Baustellen), einklappbar ---- */
.crm-dock[b-9u9gcmqnqe] {
    position: relative;
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: clamp(480px, 40vw, 540px);
    min-height: 0;
    overflow: visible;
    margin-right: 16px;
}

.crm-panel[b-9u9gcmqnqe] {
    min-width: 0;
    background: var(--crm-panel);
}

.crm-sidebar[b-9u9gcmqnqe] {
    display: flex;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
}


/* Listen-Karte: nur Kunden + Baustellen bekommen Rahmen + Radius (Toolbar steht frei darüber). */
.crm-dock-lists[b-9u9gcmqnqe] {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid var(--crm-line);
    border-radius: 18px;
    background: var(--crm-panel);
    box-shadow: 0 18px 40px -24px rgba(0, 0, 0, 0.22), 0 2px 6px -3px rgba(0, 0, 0, 0.05);
}

.crm-documents[b-9u9gcmqnqe] {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    flex-direction: column;
    overflow: visible;
    border: 1px solid var(--crm-line);
    border-radius: 18px;
    background: var(--crm-panel);
    box-shadow: 0 18px 40px -24px rgba(0, 0, 0, 0.22), 0 2px 6px -3px rgba(0, 0, 0, 0.05);
}

.crm-combined-toolbar[b-9u9gcmqnqe] {
    position: relative;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    /* freistehend: kein Rahmen, kein Karten-Hintergrund, Aktionen mittig über der Listen-Karte */
}

.crm-combined-toolbar .crm-search[b-9u9gcmqnqe] {
    flex: 0 1 260px;
    min-width: 0;
}

.crm-combined-toolbar .sort-filter-wrap[b-9u9gcmqnqe] {
    width: 38px;
    min-width: 38px;
}

.crm-combined-toolbar .btn-sort-filter[b-9u9gcmqnqe] {
    width: 38px;
    min-width: 38px;
    height: 38px;
    border-radius: 999px;
}

.crm-mobile-back[b-9u9gcmqnqe] {
    display: none;
}

.crm-search[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid var(--crm-line);
    border-radius: 999px;
    background: #fff;
    color: var(--crm-faint);
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}

.crm-search:focus-within[b-9u9gcmqnqe] {
    border-color: #16181c;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.crm-search input[b-9u9gcmqnqe] {
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--crm-text);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
}

.crm-search input[b-9u9gcmqnqe]::placeholder {
    color: var(--crm-faint);
    font-weight: 400;
}

.crm-search-clear[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--crm-faint);
    cursor: pointer;
    font: inherit;
    font-size: 16px;
    line-height: 1;
}

.crm-search-clear:focus-visible[b-9u9gcmqnqe] {
    background: #efeff1;
    color: var(--crm-text);
    outline: none;
}

@media (hover: hover) {
    .crm-search-clear:hover[b-9u9gcmqnqe] {
        background: #efeff1;
        color: var(--crm-text);
        outline: none;
    }
}

.crm-add-button[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    grid-column: 1 / -1;
    min-height: 36px;
    border: 1px solid var(--crm-accent);
    border-radius: 999px;
    background: var(--crm-accent);
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    font-weight: 750;
    line-height: 1;
    transition: background 0.15s, border-color 0.15s, transform 0.12s, box-shadow 0.15s;
}

@media (hover: hover) {
    .crm-add-button:hover[b-9u9gcmqnqe],
    .project-crm .btn-primary:hover[b-9u9gcmqnqe] {
        background: #26282e;
        border-color: #26282e;
        box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
        opacity: 1;
        transform: translateY(-1px);
    }
}

.crm-add-button:active[b-9u9gcmqnqe],
.project-crm .btn-primary:active[b-9u9gcmqnqe] {
    transform: translateY(0);
}

.crm-combined-toolbar .crm-add-button[b-9u9gcmqnqe] {
    grid-column: auto;
    min-height: 38px;
    padding: 0 12px;
    white-space: nowrap;
}

.crm-combined-toolbar .crm-add-button:disabled[b-9u9gcmqnqe] {
    border-color: var(--crm-line-strong);
    background: #f2f2f4;
    color: var(--crm-faint);
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

.crm-create-button[b-9u9gcmqnqe] {
    min-width: 82px;
}

/* „Kontakte"-Knopf (Adressbuch): Outline-Variante des Neu-Knopfs. Der eigene
   Hover gewinnt bei gleicher Spezifität gegen den grauen .crm-add-button-Hover,
   weil diese Regeln später in der Datei stehen. */
.crm-kontakte-button[b-9u9gcmqnqe] {
    border-color: var(--crm-line-strong);
    background: #fff;
    color: var(--crm-text);
}

@media (hover: hover) {
    .crm-kontakte-button:hover[b-9u9gcmqnqe] {
        border-color: #16181c;
        background: #16181c;
        color: #fff;
    }
}

.crm-kontakte-button:focus-visible[b-9u9gcmqnqe],
.crm-kontakte-button--open[b-9u9gcmqnqe] {
    border-color: #16181c;
    background: #16181c;
    color: #fff;
}

.crm-list[b-9u9gcmqnqe] {
    display: flex;
    min-height: 0;
    flex: 1;
    flex-direction: column;
    gap: 6px;
    overflow-y: auto;
    padding: 9px;
}

/* Baustellen-Gesamtliste und Kontakte-Panel-Liste werden mit <Virtualize> gerendert
   (Lazy Rendering bei vielen Zeilen). Dafür Block-Layout statt Flex/Gap, damit die
   Virtualize-Platzhalter korrekt messen. */
.crm-list--baustellen[b-9u9gcmqnqe],
.kp-list[b-9u9gcmqnqe] {
    display: block;
    gap: 0;
}

.crm-list--baustellen .crm-list-row[b-9u9gcmqnqe],
.kp-list .crm-list-row[b-9u9gcmqnqe] {
    margin-bottom: 6px;
}

.crm-list--baustellen .crm-list-row:last-child[b-9u9gcmqnqe],
.kp-list .crm-list-row:last-child[b-9u9gcmqnqe] {
    margin-bottom: 0;
}

.crm-list-row[b-9u9gcmqnqe] {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: stretch;
    flex-shrink: 0;
    overflow: hidden;
    border: 1px solid var(--crm-line);
    border-radius: 10px;
    background: #fff;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
    touch-action: manipulation;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.crm-list-row *[b-9u9gcmqnqe],
.document-row *[b-9u9gcmqnqe] {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
}

@media (hover: hover) {
    .crm-list-row:hover[b-9u9gcmqnqe] {
        border-color: #dcdce0;
        background: #f7f7f9;
    }
}

.crm-list-row.is-active[b-9u9gcmqnqe],
.crm-list-row--jobsite.is-active[b-9u9gcmqnqe] {
    background: var(--crm-accent-soft);
    border-color: #16181c;
}

.crm-list-row.is-active[b-9u9gcmqnqe]::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    width: 3px;
    background: #16181c;
}

.crm-list-main[b-9u9gcmqnqe] {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 4px;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font: inherit;
    padding: 10px 8px 10px 10px;
    text-align: left;
}

.crm-row-title[b-9u9gcmqnqe],
.crm-row-sub[b-9u9gcmqnqe],
.crm-row-meta[b-9u9gcmqnqe] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.crm-row-title-wrap[b-9u9gcmqnqe] {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 7px;
}


/* Abgeleitetes „Kunde"-Badge: Kontakt hat mindestens einen beauftragten Vorgang */
.crm-kunde-badge[b-9u9gcmqnqe] {
    flex: 0 0 auto;
    padding: 2px 7px;
    border-radius: 999px;
    background: #16181c;
    color: #ffffff;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.3;
}

.crm-row-title[b-9u9gcmqnqe] {
    color: var(--crm-text);
    font-size: 13px;
    font-weight: 750;
    line-height: 1.25;
}

.crm-row-sub[b-9u9gcmqnqe] {
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 550;
    line-height: 1.25;
}

.crm-row-meta[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--crm-faint);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.25;
    font-variant-numeric: tabular-nums;
}

.crm-row-meta span[b-9u9gcmqnqe] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Kontaktname auf den breiten Karten der Baustellen-Gesamtliste */
.crm-row-kontakt[b-9u9gcmqnqe] {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 4px;
    color: var(--crm-muted);
    font-weight: 700;
}

.crm-row-kontakt svg[b-9u9gcmqnqe] {
    flex: 0 0 auto;
}

.crm-row-actions[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: 32px;
    grid-template-rows: repeat(2, 32px);
    align-content: center;
    gap: 2px;
    padding: 6px 6px 6px 0;
}

.crm-icon-button[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    min-width: 32px;
    min-height: 32px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--crm-faint);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.crm-icon-button:focus-visible[b-9u9gcmqnqe] {
    background: var(--crm-accent-soft);
    color: var(--crm-accent);
    outline: none;
}

@media (hover: hover) {
    .crm-icon-button:hover[b-9u9gcmqnqe] {
        background: var(--crm-accent-soft);
        color: var(--crm-accent);
        outline: none;
    }
}

.crm-icon-button--danger:focus-visible[b-9u9gcmqnqe] {
    background: var(--crm-danger-soft);
    color: var(--crm-danger);
}

@media (hover: hover) {
    .crm-icon-button--danger:hover[b-9u9gcmqnqe] {
        background: var(--crm-danger-soft);
        color: var(--crm-danger);
    }
}

.crm-icon-button--success:focus-visible[b-9u9gcmqnqe] {
    background: var(--crm-success-soft);
    color: var(--crm-success);
}

@media (hover: hover) {
    .crm-icon-button--success:hover[b-9u9gcmqnqe] {
        background: var(--crm-success-soft);
        color: var(--crm-success);
    }
}

.crm-status-badge[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    max-width: 100%;
    padding: 2px 9px;
    border: 1px solid color-mix(in srgb, var(--baustellen-status-color, var(--crm-accent)) 20%, #e4e4e7);
    border-radius: 999px;
    background: color-mix(in srgb, var(--baustellen-status-color, var(--crm-accent)) 9%, #ffffff);
    color: color-mix(in srgb, var(--baustellen-status-color, var(--crm-accent)) 70%, #1b241e);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
}

.crm-status-badge i[b-9u9gcmqnqe] {
    width: 7px;
    height: 7px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--baustellen-status-color, var(--crm-accent));
}

.crm-empty[b-9u9gcmqnqe] {
    display: flex;
    min-height: 260px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 26px 18px;
    color: var(--crm-muted);
    text-align: center;
}

.crm-empty strong[b-9u9gcmqnqe] {
    color: var(--crm-text);
    font-size: 14px;
    font-weight: 750;
    line-height: 1.25;
}

.crm-empty span[b-9u9gcmqnqe] {
    max-width: 34rem;
    font-size: 13px;
    font-weight: 550;
    line-height: 1.45;
}

.crm-empty--compact[b-9u9gcmqnqe] {
    min-height: 180px;
}

/* „Filter zurücksetzen" im Leerzustand, wenn aktive Filter die Liste geleert haben */
.crm-empty-reset[b-9u9gcmqnqe] {
    margin-top: 2px;
    padding: 7px 14px;
    border: 1.5px solid #16181c;
    border-radius: 999px;
    background: #16181c;
    color: #ffffff;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 750;
    transition: background 0.12s, color 0.12s;
}

.crm-empty-reset:focus-visible[b-9u9gcmqnqe] {
    background: #2c2f36;
    border-color: #2c2f36;
    outline: none;
}

@media (hover: hover) {
    .crm-empty-reset:hover[b-9u9gcmqnqe] {
        background: #2c2f36;
        border-color: #2c2f36;
        outline: none;
    }
}

.crm-empty--main[b-9u9gcmqnqe] {
    min-height: 100%;
}

.crm-empty--table[b-9u9gcmqnqe] {
    min-height: 280px;
    border-top: 1px solid var(--crm-line);
}

/* ===== Termine-Tab: tagesbasierte Zeitleiste (Gantt-Stil) + Detailliste ===== */
/* Kompakte Legende links in der Toolbar (auf Höhe von „Termin hinzufügen"). */
.bs-gantt-legend[b-9u9gcmqnqe] {
    grid-area: search;
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    min-width: 0;
}

.bs-legend-item[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: 800;
    color: var(--crm-muted);
    white-space: nowrap;
}

.bs-legend-dot[b-9u9gcmqnqe] {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    flex: 0 0 auto;
}

.bs-legend-dot--past[b-9u9gcmqnqe] {
    background: var(--crm-line-strong);
}

.bs-legend-dot--upcoming[b-9u9gcmqnqe] {
    background: var(--crm-accent);
}

.bs-legend-dot--today[b-9u9gcmqnqe] {
    background: var(--crm-accent);
    box-shadow: 0 0 0 1.5px #fff, 0 0 0 2.5px var(--crm-accent);
}

.bs-termine-scroll[b-9u9gcmqnqe] {
    min-height: 0;
    flex: 1;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 10px 16px 16px;
}

/* -- Zeitleiste -- */
.bs-gantt[b-9u9gcmqnqe] {
    flex: 0 0 auto;
    border: 1px solid var(--crm-line);
    border-radius: 12px;
    background: #fff;
    padding: 10px 14px 14px;
}

.bs-gantt-head[b-9u9gcmqnqe] {
    position: relative;
    height: 16px;
    margin-bottom: 4px;
}

.bs-gantt-tick[b-9u9gcmqnqe] {
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    white-space: nowrap;
    font-size: 10.5px;
    font-weight: 800;
    color: var(--crm-muted);
    text-transform: capitalize;
}

.bs-gantt-body[b-9u9gcmqnqe] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.bs-gantt-row[b-9u9gcmqnqe] {
    position: relative;
    height: 24px;
    border-radius: 6px;
    background: var(--crm-bg);
}

.bs-gantt-bar[b-9u9gcmqnqe] {
    position: absolute;
    top: 0;
    bottom: 0;
    min-width: 10px;
    display: flex;
    align-items: center;
    padding: 0 8px;
    border-radius: 6px;
    overflow: hidden;
}

.bs-gantt-bar span[b-9u9gcmqnqe] {
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bs-gantt-bar--past[b-9u9gcmqnqe] {
    background: var(--crm-line-strong);
}

.bs-gantt-bar--past span[b-9u9gcmqnqe] {
    color: var(--crm-muted);
}

.bs-gantt-bar--upcoming[b-9u9gcmqnqe] {
    background: var(--crm-accent);
}

.bs-gantt-bar--upcoming span[b-9u9gcmqnqe] {
    color: #fff;
}

.bs-gantt-bar--today[b-9u9gcmqnqe] {
    background: var(--crm-accent);
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--crm-accent);
}

.bs-gantt-bar--today span[b-9u9gcmqnqe] {
    color: #fff;
}

.bs-gantt-today-line[b-9u9gcmqnqe] {
    position: absolute;
    top: -2px;
    bottom: -2px;
    width: 0;
    border-left: 2px dashed var(--crm-accent);
    z-index: 3;
    pointer-events: none;
}

.bs-gantt-today-line span[b-9u9gcmqnqe] {
    position: absolute;
    top: -16px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 10px;
    font-weight: 900;
    color: var(--crm-accent);
    background: #fff;
    padding: 0 4px;
}

/* -- Detailliste -- */
.bs-termine-list[b-9u9gcmqnqe] {
    flex: 0 0 auto;
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.bs-termin-item[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid var(--crm-line);
    border-radius: 10px;
    background: #fff;
    padding: 9px 12px;
}

.bs-termin-item--past[b-9u9gcmqnqe] {
    background: var(--crm-bg);
}

.bs-termin-item--clickable[b-9u9gcmqnqe] {
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s, transform 0.05s;
}

@media (hover: hover) {
    .bs-termin-item--clickable:hover[b-9u9gcmqnqe] {
        border-color: var(--crm-accent);
        background: var(--crm-accent-soft);
        box-shadow: 0 2px 10px rgba(22, 24, 28, 0.08);
    }
}

.bs-termin-item--clickable:active[b-9u9gcmqnqe] {
    transform: translateY(1px);
}

/* Dauerhaft sichtbarer Pfeil → signalisiert: Zeile ist anklickbar (springt in den Kalender). */
.bs-termin-go[b-9u9gcmqnqe] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: -2px;
    color: var(--crm-line-strong);
    transition: color 0.15s, transform 0.15s;
}

@media (hover: hover) {
    .bs-termin-item--clickable:hover .bs-termin-go[b-9u9gcmqnqe] {
        color: var(--crm-accent);
        transform: translateX(3px);
    }
}

.bs-termin-date[b-9u9gcmqnqe] {
    flex: 0 0 auto;
    width: 52px;
    height: 52px;
    border-radius: 10px;
    background: var(--crm-accent-soft);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1.05;
}

.bs-termin-date strong[b-9u9gcmqnqe] {
    font-size: 18px;
    font-weight: 900;
    color: var(--crm-accent);
}

.bs-termin-date span[b-9u9gcmqnqe] {
    font-size: 11px;
    font-weight: 800;
    color: var(--crm-muted);
    text-transform: uppercase;
}

.bs-termin-main[b-9u9gcmqnqe] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.bs-termin-title[b-9u9gcmqnqe] {
    font-size: 14px;
    font-weight: 800;
    color: var(--crm-accent);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bs-termin-meta[b-9u9gcmqnqe] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    color: var(--crm-muted);
}

.bs-termin-serie[b-9u9gcmqnqe] {
    font-size: 10.5px;
    font-weight: 900;
    color: var(--crm-accent);
    background: var(--crm-accent-soft);
    border-radius: 999px;
    padding: 1px 7px;
    text-transform: uppercase;
}

.bs-termin-emps[b-9u9gcmqnqe] {
    font-size: 12px;
    color: var(--crm-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bs-termin-phase[b-9u9gcmqnqe] {
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 900;
    border-radius: 999px;
    padding: 3px 10px;
}

.bs-termin-phase--past[b-9u9gcmqnqe] {
    background: var(--crm-accent-soft);
    color: var(--crm-muted);
}

.bs-termin-phase--today[b-9u9gcmqnqe] {
    background: var(--crm-accent);
    color: #fff;
}

.bs-termin-phase--upcoming[b-9u9gcmqnqe] {
    background: var(--crm-accent-soft);
    color: var(--crm-accent);
}

@media (max-width: 560px) {
    .bs-termin-emps[b-9u9gcmqnqe] {
        white-space: normal;
    }

    .bs-termin-phase[b-9u9gcmqnqe] {
        display: none;
    }
}

/* Auf schmalen Displays würden die Monats-/Jahresbeschriftungen überlappen –
   daher die Zeitleiste horizontal scrollbar machen (Kopf + Balken bleiben synchron). */
@media (max-width: 640px) {
    .bs-gantt[b-9u9gcmqnqe] {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .bs-gantt-head[b-9u9gcmqnqe],
    .bs-gantt-body[b-9u9gcmqnqe] {
        min-width: 600px;
    }

    .bs-gantt-tick[b-9u9gcmqnqe] {
        font-size: 10px;
    }
}

/* -- Baustellen-Papierkorb (unter der Liste) ------------------------------- */

.crm-trash[b-9u9gcmqnqe] {
    flex-shrink: 0;
    border-top: 1px solid var(--crm-line);
    background: #fbfbfc;
}

.crm-trash-toggle[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 9px 12px;
    border: 0;
    background: none;
    color: #6b6f76;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}

.crm-trash-toggle em[b-9u9gcmqnqe] {
    margin-left: auto;
    padding: 1px 7px;
    border-radius: 999px;
    background: #eceef1;
    color: #6b6f76;
    font-size: 11px;
    font-style: normal;
    font-weight: 750;
}

.crm-trash-chevron[b-9u9gcmqnqe] {
    flex-shrink: 0;
    transition: transform 0.15s ease;
}

.crm-trash-toggle.is-open .crm-trash-chevron[b-9u9gcmqnqe] {
    transform: rotate(180deg);
}

@media (hover: hover) {
    .crm-trash-toggle:hover[b-9u9gcmqnqe] {
        color: #16181c;
    }
}

.crm-trash-list[b-9u9gcmqnqe] {
    max-height: 220px;
    overflow-y: auto;
    padding: 0 8px 8px;
}

.crm-trash-row[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 10px;
}

.crm-trash-main[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1;
}

.crm-trash-main strong[b-9u9gcmqnqe] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #16181c;
    font-size: 13px;
    font-weight: 700;
}

.crm-trash-main span[b-9u9gcmqnqe] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #8a8d93;
    font-size: 11.5px;
}

.crm-trash-restore[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    padding: 6px 11px;
    border: 1px solid #dcdce0;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: border-color 0.14s, background 0.14s;
}

@media (hover: hover) {
    .crm-trash-row:hover[b-9u9gcmqnqe] {
        background: #f2f2f4;
    }

    .crm-trash-restore:hover[b-9u9gcmqnqe] {
        border-color: #16181c;
    }
}

/* Kopfbereich: gleiche weiße Fläche wie Reiterleiste und Inhalt — getrennt wird nur
   über eine Haarlinie, nicht über einen eigenen Grauton. */
.crm-context[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px 14px;
    padding: 13px 16px 12px;
    border-radius: 17px 17px 0 0;
    border-bottom: 1px solid #f2f2f4;
    background: #fff;
}

.crm-context-title[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.crm-context-title-text[b-9u9gcmqnqe] {
    min-width: 0;
}

/* Baustellen-Foto links neben dem Titel: feste Höhe, Breite nach Seitenverhältnis. */
.bs-ctx-photo-wrap[b-9u9gcmqnqe] {
    position: relative;
    flex: 0 0 auto;
    display: inline-flex;
}

/* verstecktes InputFile (per Label angesprochen) */
.bs-ctx-file-wrap[b-9u9gcmqnqe] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    margin: -1px;
    padding: 0;
    border: 0;
    white-space: nowrap;
    pointer-events: none;
}

.bs-ctx-file-wrap > *[b-9u9gcmqnqe] {
    width: 1px;
    height: 1px;
}

.bs-ctx-photo[b-9u9gcmqnqe] {
    position: relative;
    display: inline-flex;
}

.bs-ctx-photo-view[b-9u9gcmqnqe] {
    position: relative;
    display: inline-flex;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 10px;
    overflow: hidden;
    background: #efeff1;
    box-shadow: 0 0 0 1px #e4e4e7;
    cursor: pointer;
}

.bs-ctx-photo-view img[b-9u9gcmqnqe] {
    display: block;
    height: 40px;
    width: auto;
    max-width: 104px;
    object-fit: cover;
}

.bs-ctx-photo-hint[b-9u9gcmqnqe] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.4);
    color: #fff;
    opacity: 0;
    transition: opacity 0.15s ease;
}

@media (hover: hover) {
    .bs-ctx-photo-view:hover .bs-ctx-photo-hint[b-9u9gcmqnqe] {
        opacity: 1;
    }
}

/* kleines „Ändern"-Label (Kamera) unten rechts auf dem Foto */
.bs-ctx-photo-edit[b-9u9gcmqnqe] {
    position: absolute;
    right: 3px;
    bottom: 3px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 19px;
    height: 19px;
    border-radius: 6px;
    background: rgba(22, 24, 28, 0.9);
    color: #fff;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.15s ease, background 0.15s ease;
}

@media (hover: hover) {
    .bs-ctx-photo:hover .bs-ctx-photo-edit[b-9u9gcmqnqe] {
        opacity: 1;
    }
}

@media (hover: hover) {
    .bs-ctx-photo-edit:hover[b-9u9gcmqnqe] {
        background: #16181c;
    }
}

/* „Foto hinzufügen"-Platzhalter, wenn noch kein Bild hinterlegt ist */
.bs-ctx-photo-add[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1.5px dashed #cfcfd4;
    border-radius: 10px;
    background: #fafafb;
    color: #80858d;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

/* Ohne Foto steht nur das Kamerasymbol — der Beschriftungstext hätte im 40er-Feld
   keinen Platz mehr. */
.bs-ctx-photo-add span[b-9u9gcmqnqe] {
    display: none;
}

@media (hover: hover) {
    .bs-ctx-photo-add:hover[b-9u9gcmqnqe] {
        border-color: #16181c;
        background: #efeff1;
        color: #16181c;
    }
}

.bs-ctx-busy[b-9u9gcmqnqe] {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.72);
    border-radius: 10px;
}

.crm-context-title h2[b-9u9gcmqnqe] {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--crm-text);
    font-family: 'Quicksand', sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
}

/* Adresse und Auftragsnummer unter dem Baustellennamen. */
.crm-context-sub[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 3px 7px;
    margin: 3px 0 0;
    color: var(--crm-faint);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
}

.crm-context-sub-dot[b-9u9gcmqnqe] {
    width: 3px;
    height: 3px;
    flex-shrink: 0;
    border-radius: 50%;
    background: #c4c7cc;
}

.crm-context-actions[b-9u9gcmqnqe] {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

/* ===== Baustellen-Foto: Upload-Feld im Modal ===== */
.bs-photo-field[b-9u9gcmqnqe] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

/* InputFile „visually hidden" (nicht via opacity – sonst öffnet iOS-Safari den Dialog nicht). */
.bs-file-input-wrap[b-9u9gcmqnqe] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    margin: -1px;
    padding: 0;
    border: 0;
    white-space: nowrap;
    pointer-events: none;
}

.bs-file-input-wrap > *[b-9u9gcmqnqe] {
    width: 1px;
    height: 1px;
}

.bs-photo-drop[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    height: 66px;
    padding: 0 0.9rem;
    border: 2px dashed #d4d4d8;
    border-radius: 12px;
    background: #f7f7f8;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}

@media (hover: hover) {
    .bs-photo-drop:hover[b-9u9gcmqnqe] {
        border-color: #16181c;
        background: #efeff1;
    }
}

.bs-photo-drop-ico[b-9u9gcmqnqe] {
    display: grid;
    place-items: center;
    width: 2.6rem;
    height: 2.6rem;
    flex: 0 0 auto;
    border-radius: 10px;
    background: #efeff1;
    color: #16181c;
}

.bs-photo-drop-txt[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.bs-photo-drop-main[b-9u9gcmqnqe] {
    font-weight: 700;
    color: #3c4148;
    font-size: 0.9rem;
}

.bs-photo-drop-hint[b-9u9gcmqnqe] {
    font-size: 0.78rem;
    color: #80858d;
}

.bs-photo-card[b-9u9gcmqnqe] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.8rem;
    height: 66px;
}

.bs-photo-view[b-9u9gcmqnqe] {
    position: relative;
    flex: 0 0 auto;
    width: 98px;
    height: 66px;
    padding: 0;
    border: 0;
    border-radius: 10px;
    overflow: hidden;
    background: #efeff1;
    cursor: pointer;
}

.bs-photo-view--static[b-9u9gcmqnqe] {
    cursor: default;
}

.bs-photo-view img[b-9u9gcmqnqe] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.bs-photo-view-hint[b-9u9gcmqnqe] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    background: rgba(0, 0, 0, 0.42);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    opacity: 0;
    transition: opacity 0.15s ease;
}

@media (hover: hover) {
    .bs-photo-view:hover .bs-photo-view-hint[b-9u9gcmqnqe] {
        opacity: 1;
    }
}

.bs-photo-side[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.45rem;
    min-width: 0;
}

.bs-photo-btn[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.7rem;
    background: #fff;
    border: 1.5px solid #e4e4e7;
    border-radius: 9px;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 700;
    color: #16181c;
    cursor: pointer;
}

@media (hover: hover) {
    .bs-photo-btn:hover[b-9u9gcmqnqe] {
        background: #efeff1;
    }
}

.bs-photo-link[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    font-size: 0.8rem;
    color: #b42318;
    cursor: pointer;
}

@media (hover: hover) {
    .bs-photo-link:hover[b-9u9gcmqnqe] {
        text-decoration: underline;
    }
}

.bs-photo-droptip[b-9u9gcmqnqe] {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: rgba(22, 24, 28, 0.12);
    border: 2px dashed #16181c;
    pointer-events: none;
}

.bs-photo-droptip span[b-9u9gcmqnqe] {
    padding: 0.25rem 0.65rem;
    background: #16181c;
    color: #fff;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 700;
}

/* Drag-Zustand (Klasse von fleetImageDrop.js gesetzt) */
.bs-photo-field.flt-drag .bs-photo-drop[b-9u9gcmqnqe] {
    border-color: #16181c;
    background: #efeff1;
}

.bs-photo-field.flt-drag .bs-photo-droptip[b-9u9gcmqnqe] {
    display: flex;
}

.bs-photo-busy[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.76rem;
    color: #80858d;
}

.bs-spinner[b-9u9gcmqnqe] {
    width: 0.85rem;
    height: 0.85rem;
    border: 2px solid #e4e4e7;
    border-top-color: #16181c;
    border-radius: 50%;
    animation: bs-spin-b-9u9gcmqnqe 0.7s linear infinite;
}

@keyframes bs-spin-b-9u9gcmqnqe {
    to { transform: rotate(360deg); }
}

.bs-photo-err[b-9u9gcmqnqe] {
    font-size: 0.76rem;
    color: #b42318;
}

/* Die Vollbild-Anzeige (Foto, Datei, erzeugte PDF) liegt in der Shared-Komponente
   AppLightbox — hier steht dafür bewusst kein eigenes CSS mehr. */

.crm-info-popover-wrap[b-9u9gcmqnqe] {
    position: relative;
    display: inline-flex;
    min-width: 0;
}

.crm-info-trigger[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 36px;
    border: 1px solid var(--crm-line);
    border-radius: 999px;
    background: #fff;
    color: var(--crm-muted);
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    padding: 0 10px;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.crm-info-trigger:focus-visible[b-9u9gcmqnqe],
.crm-info-trigger.is-open[b-9u9gcmqnqe] {
    border-color: var(--crm-accent);
    background: var(--crm-accent-soft);
    color: var(--crm-accent);
    outline: none;
}

@media (hover: hover) {
    .crm-info-trigger:hover[b-9u9gcmqnqe] {
        border-color: var(--crm-accent);
        background: var(--crm-accent-soft);
        color: var(--crm-accent);
        outline: none;
    }
}

.crm-info-popover[b-9u9gcmqnqe] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 82;
    width: min(420px, calc(100vw - 24px));
    max-height: min(72dvh, 520px);
    overflow: auto;
    border: 1px solid var(--crm-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
}

.crm-info-header[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px;
    border-bottom: 1px solid var(--crm-line);
    background: #fbfbfd;
}

.crm-info-title[b-9u9gcmqnqe] {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.crm-info-title > span[b-9u9gcmqnqe] {
    color: var(--crm-faint);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.06em;
    line-height: 1;
    text-transform: uppercase;
}

.crm-info-title strong[b-9u9gcmqnqe] {
    min-width: 0;
    overflow: hidden;
    color: var(--crm-text);
    font-size: 14px;
    font-weight: 850;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.crm-info-header-actions[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.crm-info-copy[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 32px;
    border: 1px solid var(--crm-line);
    border-radius: 999px;
    background: #fff;
    color: var(--crm-text);
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 850;
    padding: 0 10px;
    white-space: nowrap;
}

.crm-info-copy:focus-visible[b-9u9gcmqnqe] {
    border-color: var(--crm-accent);
    background: var(--crm-accent-soft);
    color: var(--crm-accent);
    outline: none;
}

@media (hover: hover) {
    .crm-info-copy:hover[b-9u9gcmqnqe] {
        border-color: var(--crm-accent);
        background: var(--crm-accent-soft);
        color: var(--crm-accent);
        outline: none;
    }
}

.crm-info-close[b-9u9gcmqnqe] {
    display: none;
    align-items: center;
    justify-content: center;
    width: 32px;
    min-width: 32px;
    height: 32px;
    border: 1px solid var(--crm-line);
    border-radius: 999px;
    background: #fff;
    color: var(--crm-muted);
    cursor: pointer;
}

.crm-info-close:focus-visible[b-9u9gcmqnqe] {
    border-color: #f5bbb4;
    background: var(--crm-danger-soft);
    color: var(--crm-danger);
    outline: none;
}

@media (hover: hover) {
    .crm-info-close:hover[b-9u9gcmqnqe] {
        border-color: #f5bbb4;
        background: var(--crm-danger-soft);
        color: var(--crm-danger);
        outline: none;
    }
}

.crm-info-content[b-9u9gcmqnqe] {
    display: grid;
    gap: 12px;
    padding: 12px;
}

.crm-info-section[b-9u9gcmqnqe] {
    display: grid;
    gap: 8px;
}

.crm-info-section h3[b-9u9gcmqnqe] {
    margin: 0;
    color: var(--crm-text);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 0;
    line-height: 1.2;
}

.crm-info-section dl[b-9u9gcmqnqe] {
    display: grid;
    gap: 1px;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--crm-line);
    border-radius: 9px;
}

.crm-info-section dl div[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: minmax(92px, 0.38fr) minmax(0, 1fr);
    gap: 10px;
    padding: 8px 10px;
    background: #fff;
}

.crm-info-section dl div + div[b-9u9gcmqnqe] {
    border-top: 1px solid #edf0f4;
}

.crm-info-section dt[b-9u9gcmqnqe],
.crm-info-section dd[b-9u9gcmqnqe] {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
    line-height: 1.3;
}

.crm-info-section dt[b-9u9gcmqnqe] {
    color: var(--crm-faint);
    font-size: 11px;
    font-weight: 800;
}

.crm-info-section dd[b-9u9gcmqnqe] {
    color: var(--crm-text);
    font-size: 12px;
    font-weight: 680;
}

.crm-context-menu[b-9u9gcmqnqe] {
    position: fixed;
    --ctx-menu-width: 184px;
    --ctx-menu-height: 154px;
    top: min(var(--ctx-y), calc(100dvh - var(--ctx-menu-height) - 8px));
    left: min(var(--ctx-x), calc(100dvw - var(--ctx-menu-width) - 8px));
    z-index: 2251;
    width: var(--ctx-menu-width);
    max-width: calc(100vw - 16px);
    overflow: visible;
    padding: 4px;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
}

.crm-context-menu button[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 31px;
    border: 0;
    border-radius: 6px;
    padding: 0 8px;
    background: #ffffff;
    color: #16181c;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 730;
    text-align: left;
    white-space: nowrap;
    transition: background 0.12s, color 0.12s;
}

.crm-context-menu button:focus-visible[b-9u9gcmqnqe] {
    background: #efeff1;
    color: #16181c;
    outline: none;
}

@media (hover: hover) {
    .crm-context-menu button:hover[b-9u9gcmqnqe] {
        background: #efeff1;
        color: #16181c;
        outline: none;
    }
}

.crm-context-menu svg[b-9u9gcmqnqe] {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    opacity: 0.82;
}

.crm-context-menu .crm-context-danger[b-9u9gcmqnqe] {
    color: #a33131;
}

.crm-context-menu .crm-context-danger:focus-visible[b-9u9gcmqnqe] {
    background: #fff1f1;
    color: #9f1d1d;
}

@media (hover: hover) {
    .crm-context-menu .crm-context-danger:hover[b-9u9gcmqnqe] {
        background: #fff1f1;
        color: #9f1d1d;
    }
}

.crm-context-menu .crm-context-success[b-9u9gcmqnqe] {
    color: var(--crm-success);
}

.crm-context-menu .crm-context-success:focus-visible[b-9u9gcmqnqe] {
    background: var(--crm-success-soft);
    color: #16762f;
}

@media (hover: hover) {
    .crm-context-menu .crm-context-success:hover[b-9u9gcmqnqe] {
        background: var(--crm-success-soft);
        color: #16762f;
    }
}

.crm-context-menu--document[b-9u9gcmqnqe] {
    /* Breit genug für „Beauftragung zurücknehmen" in einer Zeile; Höhe = größte Variante
       (veröffentlicht, nicht beauftragt: 6 Zeilen + Divider ≈ 203px) — der Viewport-Clamp
       oben rechnet damit, sonst clippt das Menü an unteren Tabellenzeilen. */
    --ctx-menu-width: 246px;
    --ctx-menu-height: 210px;
}

/* Beauftragen/Ablehnen-Bestätigung: kompaktes Popover an der Klickposition.
   Die Auftragsnummer (Mono, tabellarisch) ist das eine laute Element — Label und
   Button bleiben leise. Positionierung/Clamp wie das Kontextmenü. */
.dokument-aktion-popover[b-9u9gcmqnqe] {
    position: fixed;
    --aktion-pop-width: 190px;
    /* Clamp-Höhe = größte Variante (Beauftragen: Label + Nummer + Button) */
    --aktion-pop-height: 120px;
    top: min(var(--ctx-y), calc(100dvh - var(--aktion-pop-height) - 8px));
    left: min(var(--ctx-x), calc(100dvw - var(--aktion-pop-width) - 8px));
    z-index: 2251;
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: var(--aktion-pop-width);
    padding: 12px 12px 10px;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
}

.dokument-aktion-label[b-9u9gcmqnqe] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #a6aab1;
}

.dokument-aktion-nummer[b-9u9gcmqnqe] {
    font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 19px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
    color: #16181c;
    line-height: 1.2;
}

/* Ablehnen-Variante: die Frage ersetzt die Nummer als Hauptinhalt. */
.dokument-aktion-frage[b-9u9gcmqnqe] {
    font-size: 13px;
    font-weight: 730;
    color: #16181c;
    line-height: 1.35;
    margin-bottom: 2px;
}

.dokument-aktion-confirm[b-9u9gcmqnqe] {
    margin-top: 8px;
    padding: 8px 12px;
    border: 0;
    border-radius: 999px;
    background: #16181c;
    color: #ffffff;
    cursor: pointer;
    font: inherit;
    font-size: 12.5px;
    font-weight: 750;
    transition: background 0.12s;
}

.dokument-aktion-confirm:focus-visible[b-9u9gcmqnqe] {
    background: #2c2f36;
    outline: none;
}

@media (hover: hover) {
    .dokument-aktion-confirm:hover[b-9u9gcmqnqe] {
        background: #2c2f36;
        outline: none;
    }
}

.dokument-aktion-confirm--danger[b-9u9gcmqnqe] {
    background: #dc2626;
}

.dokument-aktion-confirm--danger:focus-visible[b-9u9gcmqnqe] {
    background: #b91c1c;
}

@media (hover: hover) {
    .dokument-aktion-confirm--danger:hover[b-9u9gcmqnqe] {
        background: #b91c1c;
    }
}

.crm-context-divider[b-9u9gcmqnqe] {
    height: 1px;
    margin: 4px 2px;
    background: #edf1f5;
}

.crm-context-submenu[b-9u9gcmqnqe] {
    position: relative;
}

.crm-context-submenu-trigger[b-9u9gcmqnqe] {
    justify-content: flex-start;
}

.crm-context-submenu-trigger .crm-context-chevron[b-9u9gcmqnqe] {
    margin-left: auto;
    flex-shrink: 0;
    opacity: 0.58;
}

/* Lange Einträge (z. B. Bahnen-Plan-Namen) mit „…" abschneiden statt das Menü zu sprengen */
.crm-context-submenu-trigger .crm-context-ellipsis[b-9u9gcmqnqe] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
}

.crm-context-submenu-panel[b-9u9gcmqnqe] {
    position: absolute;
    top: -4px;
    left: calc(100% + 4px);
    z-index: 2252;
    display: block;
    visibility: hidden;
    width: 156px;
    padding: 4px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.14);
    opacity: 0;
    pointer-events: none;
    transform: translateX(-2px);
    transition: opacity 0.08s ease, transform 0.08s ease, visibility 0s linear 0.08s;
}

.crm-context-submenu-panel[b-9u9gcmqnqe]::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -8px;
    width: 8px;
}

.crm-context-submenu-panel--actions[b-9u9gcmqnqe] {
    width: 148px;
}

/* Dokument-Menü: PDF-Auswahl etwas breiter, damit Bahnen-Plan-Namen lesbar bleiben —
   überlange Namen schneidet .crm-context-ellipsis mit „…" ab. */
.crm-context-menu--document .crm-context-submenu-panel[b-9u9gcmqnqe] {
    width: 208px;
}

.crm-context-menu--document .crm-context-submenu-panel--actions[b-9u9gcmqnqe] {
    width: 148px;
}

.crm-context-submenu:focus-within > .crm-context-submenu-panel[b-9u9gcmqnqe],
.crm-context-submenu.is-open > .crm-context-submenu-panel[b-9u9gcmqnqe] {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
    transition-delay: 0s;
}

@media (hover: hover) {
    .crm-context-submenu:hover > .crm-context-submenu-panel[b-9u9gcmqnqe] {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        transform: translateX(0);
        transition-delay: 0s;
    }
}

.crm-context-submenu:focus-within > .crm-context-submenu-trigger[b-9u9gcmqnqe],
.crm-context-submenu.is-open > .crm-context-submenu-trigger[b-9u9gcmqnqe] {
    background: #efeff1;
    color: #16181c;
    border-radius: 6px;
}

@media (hover: hover) {
    .crm-context-submenu:hover > .crm-context-submenu-trigger[b-9u9gcmqnqe] {
        background: #efeff1;
        color: #16181c;
        border-radius: 6px;
    }
}

.crm-context-menu--fly-left .crm-context-submenu-panel[b-9u9gcmqnqe] {
    right: calc(100% + 4px);
    left: auto;
    transform: translateX(2px);
}

.crm-context-menu--fly-left .crm-context-submenu-panel[b-9u9gcmqnqe]::before {
    right: -8px;
    left: auto;
    width: 8px;
}

.crm-context-menu--fly-left .crm-context-submenu:focus-within > .crm-context-submenu-panel[b-9u9gcmqnqe],
.crm-context-menu--fly-left .crm-context-submenu.is-open > .crm-context-submenu-panel[b-9u9gcmqnqe] {
    transform: translateX(0);
}

@media (hover: hover) {
    .crm-context-menu--fly-left .crm-context-submenu:hover > .crm-context-submenu-panel[b-9u9gcmqnqe] {
        transform: translateX(0);
    }
}

.crm-context-menu--fly-up .crm-context-submenu-panel[b-9u9gcmqnqe] {
    top: auto;
    bottom: -4px;
}

.documents-workspace[b-9u9gcmqnqe] {
    display: flex;
    container-type: inline-size;
    min-height: 0;
    flex: 1;
    flex-direction: column;
}

.documents-toolbar[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) 38px max-content;
    grid-template-areas: "search sort create";
    position: relative;
    z-index: 18;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--crm-line);
    background: var(--crm-panel);
}

.crm-search--wide[b-9u9gcmqnqe] {
    grid-area: search;
    width: 100%;
    max-width: none;
    min-height: 38px;
    min-width: 0;
}

.documents-toolbar .sort-filter-wrap[b-9u9gcmqnqe] {
    grid-area: sort;
    justify-self: end;
}

.documents-toolbar .sort-filter-wrap[b-9u9gcmqnqe],
.documents-toolbar .btn-sort-filter[b-9u9gcmqnqe] {
    width: 38px;
    min-width: 38px;
    height: 38px;
    border-radius: 999px;
}

.document-create-wrap[b-9u9gcmqnqe] {
    position: relative;
    grid-area: create;
    justify-self: end;
    display: inline-flex;
    min-width: 0;
}

.document-create-button[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    height: 38px;
    white-space: nowrap;
}

.document-create-button--open .document-create-chevron[b-9u9gcmqnqe] {
    transform: rotate(180deg);
}

.document-create-chevron[b-9u9gcmqnqe] {
    transition: transform 0.16s;
}

.document-create-menu[b-9u9gcmqnqe] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 82;
    display: grid;
    width: 246px;
    gap: 4px;
    padding: 6px;
    border: 1px solid var(--crm-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
}

.document-create-option[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    width: 100%;
    min-height: 50px;
    border: 0;
    border-radius: 8px;
    padding: 7px 8px;
    background: transparent;
    color: var(--crm-text);
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.document-create-option:focus-visible[b-9u9gcmqnqe] {
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .document-create-option:hover[b-9u9gcmqnqe] {
        background: #efeff1;
        outline: none;
    }
}

.document-create-icon[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: #efeff1;
    color: #16181c;
    transition: background 0.13s ease, color 0.13s ease;
}

.document-create-icon--aufmass[b-9u9gcmqnqe] {
    background: #efeff1;
    color: #16181c;
}

.document-create-option:focus-visible .document-create-icon[b-9u9gcmqnqe] {
    background: #16181c;
    color: #fff;
}

@media (hover: hover) {
    .document-create-option:hover .document-create-icon[b-9u9gcmqnqe] {
        background: #16181c;
        color: #fff;
    }
}

.document-create-option strong[b-9u9gcmqnqe],
.document-create-option small[b-9u9gcmqnqe] {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.document-create-option strong[b-9u9gcmqnqe] {
    font-size: 13px;
    font-weight: 800;
}

.document-create-option small[b-9u9gcmqnqe] {
    margin-top: 2px;
    color: var(--crm-muted);
    font-size: 11px;
    font-weight: 650;
}

@container (max-width: 520px) {
    .documents-toolbar[b-9u9gcmqnqe] {
        grid-template-columns: minmax(0, 1fr) 38px;
        grid-template-areas:
            "search sort"
            "create create";
    }

    .document-create-wrap[b-9u9gcmqnqe],
    .document-create-button[b-9u9gcmqnqe] {
        width: 100%;
    }

    .document-create-button[b-9u9gcmqnqe] {
        justify-content: center;
    }
}

.project-crm .btn-primary[b-9u9gcmqnqe] {
    min-height: 38px;
    border: 1px solid var(--crm-accent);
    border-radius: 999px;
    background: var(--crm-accent);
    box-shadow: none;
    color: #fff;
    font-size: 13px;
    font-weight: 750;
    padding: 0 12px;
}

.documents-table-wrap[b-9u9gcmqnqe] {
    min-height: 0;
    flex: 1;
    overflow: auto;
}

.documents-table[b-9u9gcmqnqe] {
    width: 100%;
    min-width: 712px;
    border-collapse: separate;
    border-spacing: 0;
    color: var(--crm-text);
    font-size: 12px;
    table-layout: fixed;
}

.documents-table th[b-9u9gcmqnqe] {
    position: sticky;
    top: 0;
    z-index: 1;
    height: 32px;
    border-bottom: 1px solid var(--crm-line);
    background: #f5f5f7;
    color: var(--crm-muted);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.documents-table th[b-9u9gcmqnqe],
.documents-table td[b-9u9gcmqnqe] {
    padding: 7px 10px;
    vertical-align: middle;
}

.documents-table td[b-9u9gcmqnqe] {
    border-bottom: 1px solid #ededf2;
    color: var(--crm-muted);
    font-weight: 600;
    line-height: 1.3;
}

.documents-table tbody tr[b-9u9gcmqnqe] {
    background: #fff;
    cursor: pointer;
    /* Bewusst OHNE Übergang: die Hover-Farbe muss sofort da sein — mit 0,15 s fühlte
       sich die Liste träge an (Elias, 16.08.2026). */
}

@media (hover: hover) {
    .documents-table tbody tr:hover[b-9u9gcmqnqe] {
        background: #f7f7f9;
    }
}

.documents-table th:nth-child(1)[b-9u9gcmqnqe],
.documents-table td:nth-child(1)[b-9u9gcmqnqe] {
    width: 72px;
}

.documents-table th:nth-child(3)[b-9u9gcmqnqe],
.documents-table td:nth-child(3)[b-9u9gcmqnqe] {
    width: 100px;
}

.documents-table th:nth-child(4)[b-9u9gcmqnqe],
.documents-table td:nth-child(4)[b-9u9gcmqnqe] {
    width: 134px;
    white-space: nowrap;
}

.documents-table th:nth-child(5)[b-9u9gcmqnqe],
.documents-table td:nth-child(5)[b-9u9gcmqnqe] {
    width: 88px;
}

.documents-table th:nth-child(6)[b-9u9gcmqnqe],
.documents-table td:nth-child(6)[b-9u9gcmqnqe] {
    /* Platz für bis zu 5 Aktions-Buttons (Beauftragen, Ablehnen, Umbenennen, Kopieren, Löschen) */
    width: 176px;
    text-align: right;
}

.document-type[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    border-radius: 999px;
    background: #efeff1;
    color: #16181c;
    font-family: 'JetBrains Mono', ui-monospace, 'SF Mono', monospace;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: -0.02em;
    padding: 0 9px;
    white-space: nowrap;
}

.document-type--aufmass[b-9u9gcmqnqe] {
    background: #efeff1;
    color: #16181c;
}

/* Beauftragtes Angebot: der Typ selbst wird zum „Auftrag" (schwarz auf weiß gedreht) */
.document-type--auftrag[b-9u9gcmqnqe] {
    background: #16181c;
    color: #ffffff;
}

/* Chat-Datei aus dem Nachrichten-Tab: dezenter Umriss statt Fläche — read-only. */
.document-type--datei[b-9u9gcmqnqe] {
    background: transparent;
    border: 1px dashed #c9c9ce;
    color: var(--crm-muted);
}

/* Öffnen-Link der Chat-Dateien: Anker im Button-Look der Aktionsspalte */
.document-actions a.crm-icon-button[b-9u9gcmqnqe] {
    text-decoration: none;
}

/* Beauftragt-Info kompakt unter dem Geändert-Datum — zwei Mini-Zeilen; Padding und
   Zeilenhöhen so eng, dass die Zeile exakt so hoch bleibt wie die Aktions-Buttons (28px + 2×7px). */
/* Zweizeilige Zellen — Summe/Marge (Punkt 26) und Datum/Beauftragt — nach EINEM Bauplan:
   Hauptzeile 12 px, Unterzeile 9,5 px, gleiche Zeilenhöhen und Polsterung. So sind zwei
   Stapel nebeneinander exakt gleich hoch und stehen auf denselben Linien; ein dritter
   Zeilenumbruch ist bewusst nicht vorgesehen (Volltext im Titel). */
.documents-table td.document-stack-cell[b-9u9gcmqnqe] {
    padding-top: 2px;
    padding-bottom: 2px;
}

.document-stack-main[b-9u9gcmqnqe] {
    display: block;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.document-stack-sub[b-9u9gcmqnqe] {
    display: block;
    font-size: 9.5px;
    line-height: 1.2;
    font-weight: 700;
    color: var(--crm-muted);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.document-summe[b-9u9gcmqnqe] {
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

/* „Beauftragt …" ist eine Aussage, keine Nebenzahl — dunkel wie das Auftrag-Pill. */
.document-beauftragt-note[b-9u9gcmqnqe] {
    color: #16181c;
    letter-spacing: 0.01em;
}

.document-title-cell[b-9u9gcmqnqe] {
    min-width: 0;
}

.document-title-text[b-9u9gcmqnqe] {
    display: block;
    max-width: 100%;
    min-width: 0;
    flex: 0 1 auto;
    overflow: hidden;
    color: var(--crm-text);
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Titel + Zustands-Chips in EINER Zeile (Chips direkt hinter dem Titel) */
.document-title-line[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

/* Zustands-Chips am Dokument: Abgelehnt / Neuere Version */
.document-badge[b-9u9gcmqnqe] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    min-height: 18px;
    border-radius: 999px;
    padding: 0 8px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    white-space: nowrap;
}

.document-badge--abgelehnt[b-9u9gcmqnqe] {
    background: #fbeae8;
    color: #b3261e;
}

.document-badge--version[b-9u9gcmqnqe] {
    background: transparent;
    color: #71717a;
    border: 1px dashed #d4d4d8;
}

@media (hover: hover) {
    .document-row:hover .document-title-text[b-9u9gcmqnqe] {
        color: var(--crm-accent);
    }
}

.document-row[b-9u9gcmqnqe] {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
    touch-action: manipulation;
}

.document-actions[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    white-space: nowrap;
}

.document-actions .crm-icon-button[b-9u9gcmqnqe] {
    width: 28px;
    min-width: 28px;
    min-height: 28px;
    border-radius: 999px;
}

/* Unsichtbarer Platzhalter in Button-Größe: hält fehlende Aktionen als leeren Slot frei,
   damit gleiche Aktionen in allen Zeilen exakt übereinander stehen. */
.document-actions .crm-icon-slot[b-9u9gcmqnqe] {
    display: inline-flex;
    width: 28px;
    min-width: 28px;
    min-height: 28px;
    flex: 0 0 auto;
}

.project-crm .btn-sort-filter[b-9u9gcmqnqe] {
    width: 38px;
    min-width: 38px;
    height: 38px;
    border-radius: 999px;
}

@media (max-width: 1180px) {
    .project-crm[b-9u9gcmqnqe] {
        padding: var(--crm-top-gap) 18px var(--crm-top-gap);
    }

    .crm-dock[b-9u9gcmqnqe] {
        width: clamp(420px, 45vw, 496px);
        grid-template-columns: minmax(198px, 1fr) minmax(198px, 1fr);
    }

    .crm-context[b-9u9gcmqnqe] {
        grid-template-columns: 1fr;
    }

    .crm-context-actions[b-9u9gcmqnqe] {
        justify-content: flex-start;
    }
}

@media (max-width: 900px) {
    .project-crm[b-9u9gcmqnqe] {
        height: calc(100dvh - var(--crm-header-height));
        min-height: calc(100dvh - var(--crm-header-height));
        padding-bottom: 12px;
    }

    .crm-grid[b-9u9gcmqnqe] {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: auto auto minmax(0, 1fr);
        gap: 0;
        height: calc(100dvh - var(--crm-header-height) - var(--crm-top-gap) - 12px);
        min-height: 0;
        overflow: hidden;
        border: 1px solid var(--crm-line);
        border-radius: 10px;
        background: var(--crm-panel);
        box-shadow: 0 18px 40px -24px rgba(0, 0, 0, 0.22), 0 2px 6px -3px rgba(0, 0, 0, 0.05);
    }

    /* Dock + Listen-Karte lösen sich am Handy auf – Inhalte fließen wieder in das Grid (eine Karte). */
    .crm-dock[b-9u9gcmqnqe],
    .crm-dock-lists[b-9u9gcmqnqe] {
        display: contents;
    }

    .crm-combined-toolbar[b-9u9gcmqnqe],
    .crm-sidebar[b-9u9gcmqnqe],
    .crm-documents[b-9u9gcmqnqe] {
        grid-column: 1;
        grid-row: auto;
    }

    /* Toolbar in zwei vollen Zeilen: oben Suche + Filter, unten Kontakte + Neu —
       kein Leerraum neben dem Neu-Knopf. */
    .crm-combined-toolbar[b-9u9gcmqnqe] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 38px;
        grid-row: 1;
        gap: 8px;
        padding: 10px;
        border-top-right-radius: 9px;
        border-bottom: 1px solid var(--crm-line);
        background: #f5f5f7;
    }

    .crm-combined-toolbar .crm-search[b-9u9gcmqnqe] {
        grid-column: 1 / 3;
    }

    .crm-combined-toolbar .sort-filter-wrap[b-9u9gcmqnqe] {
        grid-column: 3;
    }

    .crm-combined-toolbar .crm-kontakte-button[b-9u9gcmqnqe] {
        grid-column: 1;
    }

    .crm-combined-toolbar .crm-create-button[b-9u9gcmqnqe] {
        grid-column: 2 / 4;
    }

    /* Zurück-Balken der Dokumenten-Ansicht (ersetzt die alte Schritt-Leiste) */
    .crm-mobile-back[b-9u9gcmqnqe] {
        display: flex;
        grid-column: 1;
        grid-row: 2;
        align-items: center;
        gap: 8px;
        min-height: 44px;
        padding: 0 12px;
        border: 0;
        border-bottom: 1px solid var(--crm-line);
        background: linear-gradient(180deg, #ffffff 0%, #f8f9fb 100%);
        color: var(--crm-text);
        cursor: pointer;
        font: inherit;
        font-size: 13px;
        font-weight: 800;
        text-align: left;
    }

    .crm-mobile-back:active[b-9u9gcmqnqe] {
        background: #f2f2f4;
    }

    .crm-grid > .crm-sidebar:nth-of-type(1)[b-9u9gcmqnqe] {
        border-bottom-left-radius: 0;
    }

    .crm-sidebar[b-9u9gcmqnqe] {
        max-height: none;
        border-right: 0;
        border-bottom: 0;
    }

    .crm-customers[b-9u9gcmqnqe],
    .crm-documents[b-9u9gcmqnqe] {
        grid-row: 3;
        display: none;
        min-height: 0;
        overflow: hidden;
        border: 0;
        border-radius: 0 0 9px 9px;
        box-shadow: none;
    }

    .crm-grid--mobile-kunden .crm-customers[b-9u9gcmqnqe],
    .crm-grid--mobile-auswahl .crm-documents[b-9u9gcmqnqe] {
        display: flex;
    }

    .crm-list[b-9u9gcmqnqe] {
        max-height: none;
    }

    .crm-documents[b-9u9gcmqnqe] {
        min-height: 0;
        border-radius: 0 0 9px 9px;
    }

    .crm-context[b-9u9gcmqnqe] {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
    }

    .crm-context-actions[b-9u9gcmqnqe] {
        align-items: center;
        flex-direction: row;
        justify-content: flex-end;
    }

    .crm-info-popover[b-9u9gcmqnqe] {
        position: fixed;
        top: calc(var(--crm-header-height) + 12px);
        right: 12px;
        left: 12px;
        width: auto;
        height: auto;
        max-height: calc(100dvh - var(--crm-header-height) - 24px);
        overscroll-behavior: contain;
    }

    .crm-info-close[b-9u9gcmqnqe] {
        display: inline-flex;
    }

    /* Kleines Fenster: Popover fix über die volle Breite, Höhe unter dem Header begrenzt */
    .project-crm .psf-popover[b-9u9gcmqnqe] {
        position: fixed;
        right: 12px;
        left: 12px;
        width: auto;
        max-height: calc(100dvh - var(--crm-header-height) - 24px);
    }
}

@media (max-width: 640px) {
    .project-crm[b-9u9gcmqnqe] {
        padding: var(--crm-top-gap) 12px 12px;
    }

    .crm-create-button[b-9u9gcmqnqe],
    .crm-kontakte-button[b-9u9gcmqnqe] {
        width: auto;
        min-width: 0;
        padding-inline: 10px;
        justify-content: center;
    }

    .documents-toolbar[b-9u9gcmqnqe] {
        padding-inline: 12px;
    }

    .crm-context[b-9u9gcmqnqe] {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        padding-inline: 12px;
    }

    .documents-toolbar[b-9u9gcmqnqe] {
        grid-template-columns: minmax(0, 1fr) 38px auto;
        grid-template-areas: "search sort create";
    }

    .crm-search--wide[b-9u9gcmqnqe] {
        max-width: none;
    }

    .document-create-wrap[b-9u9gcmqnqe] {
        grid-area: create;
        width: auto;
    }

    .document-create-button[b-9u9gcmqnqe] {
        width: auto;
        min-width: 78px;
        justify-content: center;
        padding-inline: 10px;
    }

    .document-create-label[b-9u9gcmqnqe] {
        font-size: 0;
    }

    .document-create-label[b-9u9gcmqnqe]::after {
        content: "Neu";
        font-size: 13px;
    }

    .document-create-menu[b-9u9gcmqnqe] {
        left: auto;
        right: 0;
        width: min(246px, calc(100dvw - 24px));
    }

    .project-crm .btn-primary[b-9u9gcmqnqe] {
        width: 100%;
        justify-content: center;
    }

    .crm-combined-toolbar .crm-create-button[b-9u9gcmqnqe],
    .documents-toolbar .document-create-button[b-9u9gcmqnqe] {
        width: auto;
    }

    .crm-context-actions[b-9u9gcmqnqe] {
        align-items: center;
        flex-direction: row;
        justify-content: flex-end;
    }

    .crm-info-popover-wrap[b-9u9gcmqnqe],
    .crm-info-trigger[b-9u9gcmqnqe] {
        width: auto;
    }

    .crm-info-popover[b-9u9gcmqnqe] {
        right: 12px;
        left: 12px;
        width: auto;
    }

    .crm-info-close[b-9u9gcmqnqe] {
        align-self: flex-start;
        flex: 0 0 32px;
        width: 32px;
        min-width: 32px;
        height: 32px;
    }

    .crm-info-section dl div[b-9u9gcmqnqe] {
        grid-template-columns: 1fr;
        gap: 3px;
    }

    .baustellen-status-picker[b-9u9gcmqnqe],
    .baustellen-status-trigger[b-9u9gcmqnqe] {
        width: auto;
    }

    /* Status-Dropdown und Info-Button nebeneinander auf einer Höhe:
       Status füllt die Zeile, der Info-Button sitzt kompakt rechts daneben. */
    .crm-context[b-9u9gcmqnqe] {
        grid-template-columns: 1fr;
    }

    .crm-context-actions[b-9u9gcmqnqe] {
        flex-direction: row;
        align-items: center;
        justify-content: flex-end;
        gap: 8px;
    }

    .baustellen-status-picker[b-9u9gcmqnqe] {
        flex: 1 1 auto;
        min-width: 0;
    }

    .baustellen-status-trigger[b-9u9gcmqnqe] {
        width: 100%;
    }

    .crm-info-popover-wrap[b-9u9gcmqnqe],
    .crm-info-trigger[b-9u9gcmqnqe] {
        flex: 0 0 auto;
        width: auto;
    }

    .crm-context-title h2[b-9u9gcmqnqe] {
        font-size: 16px;
    }

    .crm-context-menu--document[b-9u9gcmqnqe] {
        --ctx-menu-width: min(246px, calc(100dvw - 16px));
    }

    .crm-context-submenu-panel[b-9u9gcmqnqe],
    .crm-context-menu--fly-left .crm-context-submenu-panel[b-9u9gcmqnqe],
    .crm-context-menu--fly-up .crm-context-submenu-panel[b-9u9gcmqnqe] {
        position: static;
        display: none;
        visibility: visible;
        width: auto;
        margin: 2px 0 2px 22px;
        border: 0;
        border-left: 1px solid #edf1f5;
        border-radius: 0;
        opacity: 1;
        pointer-events: auto;
        box-shadow: none;
        transform: none;
        transition: none;
    }

    .crm-context-submenu-panel[b-9u9gcmqnqe]::before {
        display: none;
    }

    .crm-context-submenu:focus-within > .crm-context-submenu-panel[b-9u9gcmqnqe],
    .crm-context-submenu.is-open > .crm-context-submenu-panel[b-9u9gcmqnqe] {
        display: block;
    }

    @media (hover: hover) {
        .crm-context-submenu:hover > .crm-context-submenu-panel[b-9u9gcmqnqe] {
            display: block;
        }
    }
}

/* -- Search ------------------------ */
.sort-filter-wrap[b-9u9gcmqnqe] {
    position: relative;
    flex-shrink: 0;
}

.btn-sort-filter[b-9u9gcmqnqe] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    min-width: 46px;
    height: 46px;
    border: 1.5px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    color: #3c4148;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    padding: 0;
    cursor: pointer;
    white-space: normal;
    text-align: left;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

    @media (hover: hover) {
        .btn-sort-filter:hover[b-9u9gcmqnqe] {
            border-color: #e4e4e7;
            background: #efeff1;
            color: #16181c;
        }
    }

    /* Schwarz NUR solange das Popover offen ist — aktive Filter zeigt der Zähler. */
    .btn-sort-filter--open[b-9u9gcmqnqe] {
        border-color: #16181c;
        background: #16181c;
        color: #fff;
    }

    @media (hover: hover) {
        .btn-sort-filter--open:hover[b-9u9gcmqnqe] {
            border-color: #26282e;
            background: #26282e;
            color: #fff;
        }
    }

/* Zähler am Filter-Knopf: wie viele Filter sind gerade angewählt */
.btn-sort-filter-count[b-9u9gcmqnqe] {
    position: absolute;
    top: -5px;
    right: -5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border: 2px solid #fff;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    font-size: 9.5px;
    font-weight: 800;
    font-style: normal;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    pointer-events: none;
}

.btn-sort-filter--open .btn-sort-filter-count[b-9u9gcmqnqe] {
    background: #fff;
    color: #16181c;
    border-color: #16181c;
}

/* -- Sortier/Filter-Popover im Kalender-Filter-Stil (Gruppen, Pills, Fußzeile) -- */
.psf-popover[b-9u9gcmqnqe] {
    position: absolute;
    top: 50px;
    z-index: 80;
    display: flex;
    flex-direction: column;
    width: min(340px, calc(100vw - 24px));
    max-height: min(560px, calc(100dvh - 24px));
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 18px 52px rgba(28,28,30,0.18);
    overflow: hidden;
}

.psf-popover--crm[b-9u9gcmqnqe] {
    left: 0;
    right: auto;
}

.psf-popover--documents[b-9u9gcmqnqe] {
    right: 0;
    left: auto;
}

.psf-scroll[b-9u9gcmqnqe] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.psf-group[b-9u9gcmqnqe] {
    padding: 10px 12px;
    border-bottom: 1px solid #ededf2;
}

.psf-label[b-9u9gcmqnqe] {
    margin-bottom: 7px;
    color: #80858d;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.psf-pills[b-9u9gcmqnqe] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.psf-pill[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 26px;
    padding: 0 10px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    color: #16181c;
    cursor: pointer;
}

@media (hover: hover) {
    .psf-pill:hover[b-9u9gcmqnqe] {
        background: #efeff1;
    }
}

.psf-pill--on[b-9u9gcmqnqe] {
    background: #16181c;
    color: #fff;
    border-color: #16181c;
}

/* Aktive Pille dunkel halten — sonst überdeckt der helle Hover die weiße Schrift. */
@media (hover: hover) {
    .psf-pill--on:hover[b-9u9gcmqnqe] {
        background: #000;
        color: #fff;
        border-color: #000;
    }
}

.psf-dot[b-9u9gcmqnqe] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

/* Mini-Zähler an Phase-/Status-Pills: wie viele Baustellen stecken dahinter */
.psf-count[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: #efeff1;
    color: #52525b;
    font-size: 9.5px;
    font-weight: 800;
    font-style: normal;
    font-variant-numeric: tabular-nums;
}

.psf-pill--on .psf-count[b-9u9gcmqnqe] {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}

.psf-check[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    font-size: 13px;
    font-weight: 600;
    color: #16181c;
    cursor: pointer;
}

.psf-check input[b-9u9gcmqnqe] {
    width: 15px;
    height: 15px;
    accent-color: #16181c;
    cursor: pointer;
}

.psf-foot[b-9u9gcmqnqe] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    background: #fff;
}

.psf-reset[b-9u9gcmqnqe] {
    border: 0;
    background: transparent;
    color: #80858d;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}

.psf-done[b-9u9gcmqnqe] {
    height: 30px;
    padding: 0 14px;
    border: 1px solid #16181c;
    border-radius: 8px;
    background: #16181c;
    color: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.date-mode-switch[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    margin-bottom: 8px;
    padding: 3px;
    border-radius: 999px;
    background: #efeff1;
}

.date-mode[b-9u9gcmqnqe] {
    min-height: 26px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #3c4148;
    font: inherit;
    font-size: 11px;
    font-weight: 900;
    cursor: pointer;
}

    .date-mode--active[b-9u9gcmqnqe] {
        background: #fff;
        color: #16181c;
        box-shadow: 0 1px 4px rgba(0,0,0,0.08);
    }

/* --------------------------------------------------------------
   INFO PANELS
-------------------------------------------------------------- */

.info-section[b-9u9gcmqnqe] {
    border-radius: 16px;
    padding: 18px 20px;
}

.baustellen-status-picker[b-9u9gcmqnqe] {
    --baustellen-status-color: #16181c;
    position: relative;
    flex-shrink: 0;
}

.baustellen-status-trigger[b-9u9gcmqnqe] {
    min-width: 150px;
    height: 36px;
    display: grid;
    grid-template-columns: 10px minmax(0, 1fr) 13px;
    align-items: center;
    gap: 7px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0 12px;
    color: #16181c;
    background: #ffffff;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    text-align: left;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.baustellen-status-trigger:disabled[b-9u9gcmqnqe] {
    cursor: not-allowed;
    opacity: 0.56;
}

.baustellen-status-trigger:focus-visible[b-9u9gcmqnqe] {
    color: var(--baustellen-status-color);
    background: color-mix(in srgb, var(--baustellen-status-color) 10%, #ffffff);
    outline: none;
}

@media (hover: hover) {
    .baustellen-status-trigger:hover:not(:disabled)[b-9u9gcmqnqe] {
        color: var(--baustellen-status-color);
        background: color-mix(in srgb, var(--baustellen-status-color) 10%, #ffffff);
        outline: none;
    }
}

.baustellen-status-trigger span:nth-child(2)[b-9u9gcmqnqe],
.baustellen-status-option span:nth-child(2)[b-9u9gcmqnqe] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.baustellen-status-dot[b-9u9gcmqnqe] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--baustellen-status-color);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--baustellen-status-color) 16%, transparent);
}

.baustellen-status-menu[b-9u9gcmqnqe] {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    z-index: 91;
    width: max(190px, 100%);
    /* Kompakt halten (mobile!) — der Auto-Scroll springt beim Öffnen zum gewählten Status. */
    max-height: 340px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    overflow-y: auto;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    padding: 6px;
    background: #ffffff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
}

/* Phasen-Gruppenköpfe im Status-Dropdown — Stil wie die Gruppen im Header-Menü */
.baustellen-status-group[b-9u9gcmqnqe] {
    flex: 0 0 auto;
    margin: 2px 0 -1px;
    padding: 5px 9px 2px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #a6aab1;
}

.baustellen-status-group:not(:first-child)[b-9u9gcmqnqe] {
    margin-top: 5px;
    padding-top: 9px;
    border-top: 1px solid #f0f0f2;
}

.baustellen-status-option[b-9u9gcmqnqe] {
    min-width: 0;
    min-height: 34px;
    display: grid;
    grid-template-columns: 10px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    border: 0;
    border-radius: 8px;
    padding: 0 9px;
    color: #16181c;
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    text-align: left;
}

.baustellen-status-option:focus-visible[b-9u9gcmqnqe],
.baustellen-status-option--active[b-9u9gcmqnqe] {
    color: var(--baustellen-status-color);
    background: color-mix(in srgb, var(--baustellen-status-color) 11%, #ffffff);
    outline: none;
}

@media (hover: hover) {
    .baustellen-status-option:hover[b-9u9gcmqnqe] {
        color: var(--baustellen-status-color);
        background: color-mix(in srgb, var(--baustellen-status-color) 11%, #ffffff);
        outline: none;
    }
}

.chevron[b-9u9gcmqnqe] {
    color: #c7c7cc;
    flex-shrink: 0;
}

.dot[b-9u9gcmqnqe] {
    color: #c7c7cc;
}

/* --------------------------------------------------------------
   MODAL OVERLAY (Formulare + Löschen)
-------------------------------------------------------------- */
.modal-backdrop[b-9u9gcmqnqe] {
    --modal-bg: #f5f5f7;
    --modal-panel: #ffffff;
    --modal-panel-soft: #f7f7f9;
    --modal-line: #e4e4e7;
    --modal-line-strong: #d4d4d8;
    --modal-text: #16181c;
    --modal-muted: #3c4148;
    --modal-faint: #80858d;
    --modal-accent: #16181c;
    --modal-accent-soft: #efeff1;
    --modal-success: #16a34a;
    --modal-success-soft: #eaf7ee;
    --modal-danger: #e2483b;
    --modal-danger-soft: #fbeae8;
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 200;
    padding: 24px;
    background: rgba(28, 28, 30, 0.34);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    animation: backdropIn-b-9u9gcmqnqe 0.16s ease;
}

@keyframes backdropIn-b-9u9gcmqnqe {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.form-modal[b-9u9gcmqnqe] {
    position: relative;
    /* Flex-Spalte: Header/Footer fix, Body scrollt — der Footer bleibt damit auch bei
       langem Inhalt (Schritt „Neuer Kontakt", Bearbeiten mit Kontakt-Sektion) sichtbar. */
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 560px;
    max-height: min(760px, calc(100dvh - var(--app-header-h)));
    overflow: hidden;
    border: 1px solid var(--modal-line);
    border-radius: 16px;
    background: var(--modal-panel);
    color: var(--modal-text);
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    animation: modalSlideIn-b-9u9gcmqnqe 0.18s cubic-bezier(0.32, 0.72, 0, 1);
}

.form-modal--small[b-9u9gcmqnqe] {
    max-width: 430px;
}

/* Kosten-Modal (Nachkalkulation): Datepicker-/Dropdown-Popover dürfen über den
   Modal-Rand hinauswachsen — overflow:hidden am Modal bzw. overflow-y:auto am Body
   würde sie abschneiden (Popover-Clipping ist IMMER ein overflow-Problem, kein
   z-index-Problem). Die Ecken-Rundung übernehmen Header/Footer selbst. */
.form-modal--nkkosten[b-9u9gcmqnqe],
.form-modal--nkkosten .form-modal-body[b-9u9gcmqnqe] {
    overflow: visible;
}

.form-modal--nkkosten .form-modal-body[b-9u9gcmqnqe] {
    max-height: none;
}

.form-modal--nkkosten .form-modal-header[b-9u9gcmqnqe] {
    border-radius: 16px 16px 0 0;
}

.form-modal--nkkosten .form-modal-footer[b-9u9gcmqnqe] {
    border-radius: 0 0 16px 16px;
}

@media (max-width: 700px) {
    .form-modal--nkkosten .form-modal-header[b-9u9gcmqnqe] {
        border-radius: 10px 10px 0 0;
    }

    .form-modal--nkkosten .form-modal-footer[b-9u9gcmqnqe] {
        border-radius: 0 0 10px 10px;
    }
}

.filter-step-list[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding-right: 2px;
}

.filter-step-button[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 34px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #fff;
    color: #16181c;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    padding: 0 12px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

    @media (hover: hover) {
        .filter-step-button:hover[b-9u9gcmqnqe] {
            border-color: #16181c;
            background: #efeff1;
            color: #16181c;
        }
    }

.filter-step-header[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    color: #16181c;
    font-size: 13px;
    font-weight: 900;
}

.filter-back-button[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 28px;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #3c4148;
    font: inherit;
    font-size: 12px;
    font-weight: 900;
    padding: 0 8px 0 6px;
    cursor: pointer;
}

    @media (hover: hover) {
        .filter-back-button:hover[b-9u9gcmqnqe] {
            border-color: #16181c;
            color: #16181c;
        }
    }

.filter-step-list--months[b-9u9gcmqnqe] {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-content: start;
    gap: 6px;
    overflow-x: hidden;
    overflow-y: auto;
}

.filter-step-list--months .filter-all-check[b-9u9gcmqnqe] {
    grid-column: 1 / -1;
}

.filter-all-check[b-9u9gcmqnqe] {
    border: 1px solid #e4e4e7;
    background: #fff;
    border-radius: 9px;
    min-height: 32px;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    color: #16181c;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

    .filter-all-check--active[b-9u9gcmqnqe] {
        border-color: #16181c;
        background: #efeff1;
        color: #16181c;
    }

    @media (hover: hover) {
        .filter-all-check:hover[b-9u9gcmqnqe] {
            border-color: #16181c;
            background: #efeff1;
            color: #16181c;
        }
    }

.filter-all-check[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    gap: 8px;
    padding: 0 12px;
}

    .filter-all-check input[b-9u9gcmqnqe] {
        width: 14px;
        height: 14px;
        accent-color: #16181c;
        flex-shrink: 0;
    }

    .filter-all-check span[b-9u9gcmqnqe] {
        line-height: 1;
    }

.filter-month[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-width: 0;
    min-height: 30px;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #3c4148;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    gap: 6px;
    padding: 0 9px;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.filter-month span[b-9u9gcmqnqe] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

    .filter-month input[b-9u9gcmqnqe] {
        width: 12px;
        height: 12px;
        accent-color: #3c4148;
        flex-shrink: 0;
    }

    @media (hover: hover) {
        .filter-month:hover[b-9u9gcmqnqe] {
            border-color: #d4d4d8;
            background: #efeff1;
            color: #16181c;
        }
    }

    .filter-month--active[b-9u9gcmqnqe] {
        border-color: #16181c;
        background: #efeff1;
        color: #16181c;
    }

@keyframes modalSlideIn-b-9u9gcmqnqe {
    from {
        opacity: 0;
        transform: translateY(14px) scale(0.985);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* -- Modal Header -------------------- */
.form-modal-header[b-9u9gcmqnqe] {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 12px;
    min-height: 64px;
    padding: 16px 58px 15px 20px;
    border-bottom: 1px solid var(--modal-line);
    background: linear-gradient(180deg, var(--modal-panel-soft) 0%, var(--modal-panel) 100%);
}

.form-modal-header-icon[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    background: var(--modal-accent-soft);
    color: var(--modal-accent);
}

.form-modal-header-icon svg[b-9u9gcmqnqe] {
    width: 15px;
    height: 15px;
}

.form-modal-title[b-9u9gcmqnqe] {
    flex: 1;
    min-width: 0;
    margin: 0;
    color: var(--modal-text);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.25;
}

/* -- Schließen-Button oben rechts im Modal -- */
.btn-close-floating[b-9u9gcmqnqe] {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid var(--modal-line);
    border-radius: 999px;
    background: var(--modal-panel);
    color: var(--modal-muted);
    box-shadow: 0 1px 4px rgba(28, 28, 30, 0.06);
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s, transform 0.12s, box-shadow 0.15s;
}

.btn-close-floating svg[b-9u9gcmqnqe] {
    width: 17px;
    height: 17px;
    stroke-width: 2.4;
}

.btn-close-floating:focus-visible[b-9u9gcmqnqe] {
    border-color: var(--modal-line);
    background: #efeff1;
    color: var(--modal-text);
    outline: none;
}

@media (hover: hover) {
    .btn-close-floating:hover[b-9u9gcmqnqe] {
        border-color: var(--modal-line);
        background: #efeff1;
        color: var(--modal-text);
        outline: none;
    }
}

.btn-close-floating:active[b-9u9gcmqnqe] {
    background: #16181c;
    color: #fff;
    border-color: #16181c;
    transform: translateY(1px);
}

/* -- Modal Body ----------------------- */
.form-modal-body[b-9u9gcmqnqe] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 14px;
    min-height: 0;
    max-height: calc(100dvh - 194px);
    overflow-y: auto;
    padding: 20px;
    background: var(--modal-panel);
}

/* -- Modal Footer -------------------- */
.form-modal-footer[b-9u9gcmqnqe] {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 20px;
    border-top: 1px solid var(--modal-line);
    background: var(--modal-panel-soft);
}

/* -- Form Fields ------------------- */
.field-row[b-9u9gcmqnqe] {
    display: grid;
    gap: 12px;
}

    .field-row.two[b-9u9gcmqnqe] {
        grid-template-columns: 1fr 1fr;
    }

@media (max-width: 520px) {
    .field-row.two[b-9u9gcmqnqe] {
        grid-template-columns: 1fr;
    }
}

.field-group[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

    .field-group label[b-9u9gcmqnqe] {
        font-size: 12px;
        font-weight: 750;
        color: var(--modal-muted);
        letter-spacing: 0;
    }

.field-input[b-9u9gcmqnqe] {
    width: 100%;
    box-sizing: border-box;
    min-height: 40px;
    padding: 9px 11px;
    border: 1px solid var(--modal-line);
    border-radius: 11px;
    background: var(--modal-panel-soft);
    color: var(--modal-text);
    font-family: inherit;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.35;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.field-textarea[b-9u9gcmqnqe] {
    min-height: 92px;
    line-height: 1.4;
    /* Kein Resize-Anfasser: sonst lässt sich die Textarea so groß ziehen,
       dass die Modal-Buttons aus dem Sichtfeld geschoben werden. */
    resize: none;
}

.crm-info-multiline[b-9u9gcmqnqe] {
    white-space: pre-line;
}

.field-input[b-9u9gcmqnqe]::placeholder {
    color: var(--modal-faint);
    font-weight: 400;
}

    .field-input:focus[b-9u9gcmqnqe] {
        outline: none;
        border-color: #16181c;
        background: var(--modal-panel);
        box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
    }

.field-input--error[b-9u9gcmqnqe] {
    border-color: var(--modal-danger) !important;
    background: var(--modal-danger-soft) !important;
    box-shadow: 0 0 0 3px rgba(226, 72, 59, 0.16) !important;
}

.field-error[b-9u9gcmqnqe] {
    margin: 0;
    padding: 9px 11px;
    border: 1px solid #ffd7d4;
    border-left: 3px solid var(--modal-danger);
    border-radius: 8px;
    background: var(--modal-danger-soft);
    color: var(--modal-danger);
    font-size: 12px;
    font-weight: 700;
}

/* -- Kunde Chip ------------------- */
.kunde-chip[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    align-self: flex-start;
    max-width: 100%;
    padding: 6px 10px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    background: var(--modal-accent-soft);
    color: var(--modal-accent);
    font-size: 12px;
    font-weight: 750;
}

/* --------------------------------------------------------------
   LÖSCHEN MODAL
-------------------------------------------------------------- */
/* --------------------------------------------------------------
   LÖSCHEN-DIALOG (Stil wie Fuhrpark, neue Farben)
-------------------------------------------------------------- */
.crm-delete-card[b-9u9gcmqnqe] {
    position: relative;
    width: min(420px, 100%);
    overflow: hidden;
    border: 1px solid var(--modal-line);
    border-radius: 16px;
    background: var(--modal-panel);
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    animation: modalSlideIn-b-9u9gcmqnqe 0.18s cubic-bezier(0.32, 0.72, 0, 1);
}

.crm-delete-header[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--modal-line);
}

.crm-delete-icon[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    border-radius: 10px;
    background: var(--modal-danger-soft);
    color: var(--modal-danger);
}

.crm-delete-icon svg[b-9u9gcmqnqe] {
    width: 18px;
    height: 18px;
}

.crm-delete-header h2[b-9u9gcmqnqe] {
    margin: 0;
    color: var(--modal-text);
    font-size: 16px;
    font-weight: 800;
}

.crm-delete-body[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 20px;
}

.crm-delete-subject[b-9u9gcmqnqe] {
    margin: 0;
    color: var(--modal-text);
    font-size: 15px;
    font-weight: 800;
    word-break: break-word;
}

.crm-delete-cascade[b-9u9gcmqnqe] {
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #f0d9a8;
    border-radius: 11px;
    background: #fdf6e8;
    color: #8a5a00;
    font-size: 12.5px;
    font-weight: 650;
    line-height: 1.4;
}

.crm-delete-timer[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 4px 0 2px;
}

.crm-delete-ring[b-9u9gcmqnqe] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: conic-gradient(#16181c calc(var(--pct, 0) * 1%), #efeff1 0);
}

.crm-delete-ring[b-9u9gcmqnqe]::before {
    content: "";
    position: absolute;
    inset: 5px;
    border-radius: 50%;
    background: var(--modal-panel);
}

.crm-delete-ring span[b-9u9gcmqnqe] {
    position: relative;
    color: var(--modal-text);
    font-size: 20px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.crm-delete-hint[b-9u9gcmqnqe] {
    color: var(--modal-muted);
    font-size: 13px;
    font-weight: 650;
}

.crm-delete-actions[b-9u9gcmqnqe] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 20px;
    border-top: 1px solid var(--modal-line);
    background: var(--modal-panel-soft);
}

.delete-subject[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 12px;
    border: 1px solid #ffd7d4;
    border-radius: 8px;
    background: var(--modal-danger-soft);
}

.delete-timer[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* --------------------------------------------------------------
   BUTTONS
-------------------------------------------------------------- */
.btn-primary[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    justify-content: center;
    min-height: 38px;
    padding: 0 16px;
    border: 1px solid var(--modal-accent);
    border-radius: 999px;
    background: var(--modal-accent);
    color: #fff;
    white-space: nowrap;
    font-family: inherit;
    font-size: 13px;
    font-weight: 750;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s, transform 0.12s, box-shadow 0.15s;
}

.btn-primary:focus-visible[b-9u9gcmqnqe] {
    border-color: #26282e;
    background: #26282e;
    outline: none;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    transform: translateY(-1px);
}

@media (hover: hover) {
    .btn-primary:hover[b-9u9gcmqnqe] {
        border-color: #26282e;
        background: #26282e;
        outline: none;
        box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
        transform: translateY(-1px);
    }
}

.btn-primary:active[b-9u9gcmqnqe] {
    transform: translateY(0);
}

.btn-toolbar[b-9u9gcmqnqe] {
    flex-shrink: 0;
}

.btn-success[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    justify-content: center;
    min-height: 38px;
    padding: 0 16px;
    border: 1px solid #16181c;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 750;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, transform 0.12s, box-shadow 0.15s;
}

.btn-success:focus-visible[b-9u9gcmqnqe] {
    border-color: #26282e;
    background: #26282e;
    outline: none;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    transform: translateY(-1px);
}

@media (hover: hover) {
    .btn-success:hover[b-9u9gcmqnqe] {
        border-color: #26282e;
        background: #26282e;
        outline: none;
        box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
        transform: translateY(-1px);
    }
}

.btn-success:active[b-9u9gcmqnqe] {
    transform: translateY(0);
}

.btn-ghost[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid var(--modal-line);
    border-radius: 999px;
    background: var(--modal-panel);
    color: var(--modal-muted);
    font: inherit;
    font-size: 13px;
    font-weight: 750;
    line-height: 1;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s, transform 0.12s;
}

.btn-ghost:focus-visible[b-9u9gcmqnqe] {
    border-color: var(--modal-line-strong);
    background: #efeff1;
    color: var(--modal-text);
    outline: none;
}

@media (hover: hover) {
    .btn-ghost:hover[b-9u9gcmqnqe] {
        border-color: var(--modal-line-strong);
        background: #efeff1;
        color: var(--modal-text);
        outline: none;
    }
}

.btn-ghost:active[b-9u9gcmqnqe] {
    transform: translateY(1px);
}

.btn-delete[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid var(--modal-danger);
    border-radius: 999px;
    background: var(--modal-danger);
    color: #fff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 750;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, transform 0.12s, box-shadow 0.15s;
}

.btn-delete:focus-visible[b-9u9gcmqnqe] {
    border-color: #c5392e;
    background: #c5392e;
    outline: none;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    transform: translateY(-1px);
}

@media (hover: hover) {
    .btn-delete:hover[b-9u9gcmqnqe] {
        border-color: #c5392e;
        background: #c5392e;
        outline: none;
        box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
        transform: translateY(-1px);
    }
}

.btn-delete:active[b-9u9gcmqnqe] {
    transform: translateY(0);
}

.btn-delete--disabled[b-9u9gcmqnqe] {
    border-color: var(--modal-line-strong) !important;
    background: #c7c7cc !important;
    cursor: not-allowed !important;
    transform: none !important;
    opacity: 1 !important;
    box-shadow: none !important;
}

/* --------------------------------------------------------------
   RESPONSIVE
-------------------------------------------------------------- */
@media (max-width: 700px) {

    .sort-filter-wrap[b-9u9gcmqnqe] {
        width: 40px;
        min-width: 40px;
    }

    .btn-sort-filter[b-9u9gcmqnqe] {
        width: 40px;
        min-width: 40px;
        height: 40px;
        border-radius: 999px;
        max-width: 40px;
    }

    .btn-sort-filter svg[b-9u9gcmqnqe] {
        width: 14px;
        height: 14px;
    }

    .crm-combined-toolbar .sort-filter-wrap[b-9u9gcmqnqe],
    .documents-toolbar .sort-filter-wrap[b-9u9gcmqnqe] {
        position: static;
    }

    .project-crm .psf-popover[b-9u9gcmqnqe] {
        position: absolute;
        right: 12px;
        left: 12px;
        width: auto;
        max-height: calc(100dvh - var(--crm-header-height) - 24px);
        margin-top: 0;
        border-radius: 14px;
    }

    .date-mode-switch[b-9u9gcmqnqe] {
        margin-bottom: 6px;
        border-radius: 9px;
    }

    .date-mode[b-9u9gcmqnqe] {
        min-height: 24px;
        border-radius: 7px;
        font-size: 10px;
    }

    .filter-step-list[b-9u9gcmqnqe] {
        gap: 5px;
    }

    .filter-step-button[b-9u9gcmqnqe] {
        min-height: 34px;
        border-radius: 9px;
        padding: 0 8px;
        font-size: 12px;
    }

    .filter-step-header[b-9u9gcmqnqe] {
        gap: 7px;
        margin-bottom: 6px;
        font-size: 11px;
    }

    .filter-back-button[b-9u9gcmqnqe] {
        min-height: 24px;
        border-radius: 8px;
        padding: 0 6px 0 4px;
        font-size: 10px;
    }

    .filter-all-check[b-9u9gcmqnqe] {
        min-height: 34px;
        border-radius: 9px;
        gap: 6px;
        padding: 0 8px;
        font-size: 11px;
    }

    .filter-all-check input[b-9u9gcmqnqe],
    .filter-month input[b-9u9gcmqnqe] {
        width: 12px;
        height: 12px;
    }

    .filter-month[b-9u9gcmqnqe] {
        min-height: 30px;
        border-radius: 8px;
        gap: 5px;
        padding: 0 7px;
        font-size: 10px;
    }

    .filter-step-list--months[b-9u9gcmqnqe] {
        gap: 5px;
    }

    .btn-toolbar[b-9u9gcmqnqe] {
        grid-column: 1 / -1;
        width: 100%;
        justify-content: center;
    }

    .form-modal[b-9u9gcmqnqe] {
        max-height: calc(100dvh - 24px);
        border-radius: 10px;
    }

    .modal-backdrop[b-9u9gcmqnqe] {
        padding: 12px;
    }

    .form-modal-header[b-9u9gcmqnqe] {
        min-height: 58px;
        padding: 14px 54px 13px 16px;
    }

    .form-modal-body[b-9u9gcmqnqe] {
        max-height: calc(100dvh - 174px);
        padding: 16px;
    }

    .form-modal-footer[b-9u9gcmqnqe] {
        align-items: stretch;
        flex-direction: column-reverse;
        padding: 12px 16px;
    }

    .form-modal-footer .btn-primary[b-9u9gcmqnqe],
    .form-modal-footer .btn-success[b-9u9gcmqnqe],
    .form-modal-footer .btn-ghost[b-9u9gcmqnqe],
    .form-modal-footer .btn-delete[b-9u9gcmqnqe] {
        width: 100%;
    }

    .delete-subject[b-9u9gcmqnqe] {
        align-items: flex-start;
        flex-direction: column;
    }

}

/* --------------------------------------------------------------
   WORKSPACE TABS (Dokumente / Nachrichten) — Folder-Tab Style
-------------------------------------------------------------- */
/* Bereichs-Reiter: Symbol + Text auf weißem Grund, der aktive Bereich trägt eine dunkle
   Unterstreichung. Die Leiste gehört optisch zum Inhalt darunter — abgesetzt ist nur der
   graue Baustellen-Kopf darüber. */
.workspace-tab-bar[b-9u9gcmqnqe] {
    flex-shrink: 0;
    display: flex;
    align-items: stretch;
    gap: 7px;
    padding: 0 12px;
    border-bottom: 1px solid #ececee;
    background: #fff;
}

/* Reiter NICHT quetschen, sondern seitwärts scrollen — sonst schrumpfen sie bei mittlerer
   Fensterbreite (iPad quer, schmales Desktop-Fenster) auf „Dokum…", „Ansprechpar…". Am Handy
   galt das schon immer; die Regel steht jetzt für alle Breiten hier. */
.workspace-tab-list[b-9u9gcmqnqe] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: stretch;
    gap: 2px;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.workspace-tab-list[b-9u9gcmqnqe]::-webkit-scrollbar {
    display: none;
}

.workspace-tab[b-9u9gcmqnqe] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    /* Volle Beschriftung behalten — die Leiste scrollt, wenn es eng wird (s. .workspace-tab-list). */
    flex: 0 0 auto;
    min-width: 0;
    margin-bottom: -1px;
    padding: 11px 11px 9px;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    color: #6b6f76;
    cursor: pointer;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0;
    transition: color 0.15s, border-color 0.15s;
}

.workspace-tab svg[b-9u9gcmqnqe] {
    flex-shrink: 0;
}

.workspace-tab span[b-9u9gcmqnqe] {
    white-space: nowrap;
}

.workspace-tab:focus-visible[b-9u9gcmqnqe] {
    color: #16181c;
    outline: 2px solid #16181c;
    outline-offset: -3px;
    border-radius: 6px;
}

@media (hover: hover) {
    .workspace-tab:not(.workspace-tab--active):hover[b-9u9gcmqnqe] {
        color: #16181c;
        border-bottom-color: #d6d7da;
    }
}

.workspace-tab--active[b-9u9gcmqnqe] {
    z-index: 1;
    color: #16181c;
    font-weight: 750;
    border-bottom-color: #16181c;
}

@media (max-width: 760px) {
    .workspace-tab-bar[b-9u9gcmqnqe] {
        padding: 0 10px;
    }

    /* Scrollen statt quetschen gilt inzwischen auf allen Breiten (s. oben) — hier bleibt
       nur, was am Handy zusätzlich enger sein soll. */
    .workspace-tab[b-9u9gcmqnqe] {
        padding: 10px 9px 8px;
        font-size: 0.74rem;
    }
}

/* --------------------------------------------------------------
   ANSPRECHPARTNER (Kontakte je Baustelle)
-------------------------------------------------------------- */
.contacts-toolbar[b-9u9gcmqnqe] {
    flex-shrink: 0;
    display: flex;
    justify-content: flex-end;
    padding: 12px 16px 14px;
}

.contacts-add-button[b-9u9gcmqnqe] {
    white-space: nowrap;
}

.contacts-grid[b-9u9gcmqnqe] {
    min-height: 0;
    flex: 1;
    overflow: auto;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(244px, 1fr));
    gap: 12px;
    align-content: start;
    padding: 2px 16px 14px;
    animation: contacts-fade-b-9u9gcmqnqe 0.32s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes contacts-fade-b-9u9gcmqnqe {
    from { opacity: 0; transform: translateY(7px); }
    to   { opacity: 1; transform: translateY(0); }
}

.contact-card[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px 14px 13px;
    background: #fff;
    border: 1px solid var(--crm-line);
    border-radius: 14px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    transition: border-color 0.16s, box-shadow 0.16s, transform 0.16s;
}

@media (hover: hover) {
    .contact-card:hover[b-9u9gcmqnqe] {
        border-color: #dcdce0;
        box-shadow: 0 8px 24px -12px rgba(0, 0, 0, 0.18);
        transform: translateY(-2px);
    }
}

.contact-card-head[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 11px;
}

.contact-avatar[b-9u9gcmqnqe] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #16181c;
    color: #fff;
    font-family: 'Quicksand', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

/* Avatare einheitlich monochrom: schwarzer Kreis, weiße Initialen (siehe .contact-avatar). */

.contact-id[b-9u9gcmqnqe] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.contact-name[b-9u9gcmqnqe] {
    font-size: 14px;
    font-weight: 650;
    color: var(--crm-text);
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contact-anrede[b-9u9gcmqnqe] {
    font-size: 10.5px;
    font-weight: 650;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--crm-faint);
}

.contact-actions[b-9u9gcmqnqe] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 2px;
}

.contact-card-body[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding-left: 1px;
}

.contact-line[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    max-width: 100%;
    padding: 2px 0;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--crm-muted);
    text-decoration: none;
    transition: color 0.15s;
}

.contact-line svg[b-9u9gcmqnqe] {
    flex-shrink: 0;
    color: var(--crm-faint);
    transition: color 0.15s;
}

.contact-line span[b-9u9gcmqnqe] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

a.contact-line:focus-visible[b-9u9gcmqnqe] {
    color: var(--crm-accent);
    outline: none;
}

@media (hover: hover) {
    a.contact-line:hover[b-9u9gcmqnqe] {
        color: var(--crm-accent);
        outline: none;
    }
}

a.contact-line:focus-visible svg[b-9u9gcmqnqe] {
    color: var(--crm-accent);
}

@media (hover: hover) {
    a.contact-line:hover svg[b-9u9gcmqnqe] {
        color: var(--crm-accent);
    }
}

.contact-line--empty[b-9u9gcmqnqe] {
    color: var(--crm-faint);
    font-weight: 500;
    font-style: italic;
}

@media (max-width: 760px) {
    .contacts-grid[b-9u9gcmqnqe] {
        grid-template-columns: 1fr;
    }
}

/* -- Material / Kosten je Baustelle (nutzt .documents-table) --------------- */
/* Zahlenspalten rechtsbündig; Gesamt-Zeile abgesetzt. */
.documents-table .material-num[b-9u9gcmqnqe] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.documents-table tfoot .material-total-row td[b-9u9gcmqnqe] {
    border-top: 1.5px solid #e4e4e7;
    color: #16181c;
}

/* Materialzeilen sind nicht als Ganzes klickbar (nur der Artikel-Link) -> kein Pointer. */
.documents-table--material tbody tr[b-9u9gcmqnqe] {
    cursor: default;
}

/* Spaltenbreiten: auto-Layout (ohne erzwungene Mindestbreite), damit die Tabelle exakt
   den Container füllt und keine Scrollbar erzeugt. Artikel bekommt den freien Platz,
   die übrigen Spalten nur Inhaltsbreite. */
.documents-table--material[b-9u9gcmqnqe] {
    table-layout: auto;
    min-width: 0;
}

.documents-table--material th:nth-child(1)[b-9u9gcmqnqe],
.documents-table--material td:nth-child(1)[b-9u9gcmqnqe] {     /* Datum + Abstand zum Artikel */
    width: 1%;
    white-space: nowrap;
    padding-right: 1.75rem;
}

.documents-table--material th:nth-child(2)[b-9u9gcmqnqe],
.documents-table--material td:nth-child(2)[b-9u9gcmqnqe] {     /* Artikel – nimmt den freien Platz */
    width: 100%;
}

.documents-table--material th:nth-child(3)[b-9u9gcmqnqe],
.documents-table--material td:nth-child(3)[b-9u9gcmqnqe],      /* Art (Badge) */
.documents-table--material th:nth-child(7)[b-9u9gcmqnqe],
.documents-table--material td:nth-child(7)[b-9u9gcmqnqe],      /* Gebucht von */
.documents-table--material th:nth-child(8)[b-9u9gcmqnqe],
.documents-table--material td:nth-child(8)[b-9u9gcmqnqe] {     /* Aktionen – nur so breit wie nötig */
    width: 1%;
    white-space: nowrap;
}

/* Artikelname als Link (nur mit Lager-Berechtigung gerendert) – blau, unterstrichen. */
.material-artikel-link[b-9u9gcmqnqe] {
    padding: 0;
    border: none;
    background: none;
    font: inherit;
    font-weight: 600;
    color: #145DA0;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    text-align: left;
}

@media (hover: hover) {
    .material-artikel-link:hover[b-9u9gcmqnqe] {
        color: #0f4880;
    }
}

.material-badge[b-9u9gcmqnqe] {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 700;
    border: 1px solid transparent;
    white-space: nowrap;
}

.material-badge--lager[b-9u9gcmqnqe] {
    background: #efeff1;
    color: #3c4148;
    border-color: #e4e4e7;
}

.material-badge--direkt[b-9u9gcmqnqe] {
    background: #e6f0fa;
    color: #145DA0;
    border-color: #c2d8ef;
}

/* Rückgabe ins Lager (Eingang mit Baustelle): Menge/Summe der Zeile sind negativ. */
.material-badge--rueckgabe[b-9u9gcmqnqe] {
    background: #eaf6ee;
    color: #1a7f37;
    border-color: #c6e6d0;
}

/* Storno blockiert: die verantwortlichen Rückgabe-Zeilen pulsieren kurz rot
   (Klasse wird nach 5 s wieder entfernt; der Fade-out kommt aus der transition). */
.documents-table--material tbody tr td[b-9u9gcmqnqe] {
    transition: background 0.5s ease;
}

.material-row--blocker td[b-9u9gcmqnqe] {
    background: #fbeae8;
    animation: materialBlockerPulse-b-9u9gcmqnqe 1s ease 2;
}

@keyframes materialBlockerPulse-b-9u9gcmqnqe {
    50% { background: #f6cfc9; }
}

@media (prefers-reduced-motion: reduce) {
    .material-row--blocker td[b-9u9gcmqnqe] {
        animation: none;
    }
}

/* ==========================================================================
   Kontakte-Panel (Slide-Over): Adressbuch mit Suche, Liste und Detail-Sektion.
   z-Reihenfolge: unter den Modals (200) und dem Kontextmenü (2251).
   ========================================================================== */

.kp-backdrop[b-9u9gcmqnqe] {
    position: fixed;
    inset: 0;
    z-index: 140;
    border: 0;
    padding: 0;
    background: rgba(22, 24, 28, 0.32);
    cursor: default;
}

.kp-panel[b-9u9gcmqnqe] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 150;
    display: flex;
    flex-direction: column;
    width: min(440px, calc(100dvw - 24px));
    background: var(--crm-panel, #fff);
    border-left: 1px solid var(--crm-line);
    box-shadow: -24px 0 60px -30px rgba(0, 0, 0, 0.35);
    /* Bewusst NUR Opacity: ein transform machte das Panel zum Containing Block
       für das fixe Filter-Popover (Mobile) — das klebte dann am Panel statt am Viewport. */
    animation: kp-fade-in-b-9u9gcmqnqe 0.16s ease-out;
}

@keyframes kp-fade-in-b-9u9gcmqnqe {
    from { opacity: 0; }
    to { opacity: 1; }
}

.kp-head[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 16px 16px 10px;
}

.kp-title[b-9u9gcmqnqe] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    min-width: 0;
}

.kp-title h2[b-9u9gcmqnqe] {
    margin: 0;
    font-size: 17px;
    font-weight: 800;
    color: var(--crm-text);
}

.kp-title span[b-9u9gcmqnqe] {
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 650;
    white-space: nowrap;
}

.kp-close[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid var(--crm-line);
    border-radius: 999px;
    background: #fff;
    color: var(--crm-text);
    cursor: pointer;
}

@media (hover: hover) {
    .kp-close:hover[b-9u9gcmqnqe] {
        background: #16181c;
        border-color: #16181c;
        color: #fff;
    }
}

.kp-toolbar[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 16px 10px;
    border-bottom: 1px solid var(--crm-line);
}

.kp-search[b-9u9gcmqnqe] {
    flex: 1 1 auto;
    min-width: 0;
}

.kp-add[b-9u9gcmqnqe] {
    min-height: 38px;
    padding: 0 12px;
    white-space: nowrap;
}

.kp-list[b-9u9gcmqnqe] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 9px 12px;
}

/* Detail-Sektion des gewählten Kontakts (unter der Liste): bewusst deutlich von
   der Liste abgesetzt — kräftige Kante, dunklerer Grund, Schatten nach oben. */
.kp-detail[b-9u9gcmqnqe] {
    flex: 0 0 auto;
    max-height: 44%;
    overflow-y: auto;
    padding: 12px 16px 14px;
    border-top: 1px solid var(--crm-line-strong);
    background: #f1f1f3;
    box-shadow: 0 -12px 24px -18px rgba(0, 0, 0, 0.38);
}

.kp-detail-head[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.kp-detail-title[b-9u9gcmqnqe] {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 1px;
}

.kp-detail-kicker[b-9u9gcmqnqe] {
    color: var(--crm-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.kp-detail-title strong[b-9u9gcmqnqe] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 14px;
    font-weight: 800;
    color: var(--crm-text);
}

.kp-detail-data[b-9u9gcmqnqe] {
    display: grid;
    gap: 4px;
    margin: 0 0 10px;
}

.kp-detail-data > div[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 8px;
    align-items: baseline;
}

.kp-detail-data dt[b-9u9gcmqnqe] {
    color: var(--crm-muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.kp-detail-data dd[b-9u9gcmqnqe] {
    margin: 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 600;
    color: var(--crm-text);
}

.kp-detail-baustellen[b-9u9gcmqnqe] {
    display: grid;
    gap: 6px;
}

.kp-detail-leer[b-9u9gcmqnqe] {
    color: var(--crm-muted);
    font-size: 12.5px;
    font-weight: 600;
}

/* Sprungziel-Zeile: nutzt die Status-Farbvariablen der Baustellen-Karten */
.kp-bs[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 0 12px;
    border: 1px solid var(--crm-line);
    border-radius: 10px;
    background: #fff;
    color: var(--crm-text);
    cursor: pointer;
    font: inherit;
    text-align: left;
}

@media (hover: hover) {
    .kp-bs:hover[b-9u9gcmqnqe] {
        border-color: var(--crm-line-strong);
        background: #f4f4f6;
    }
}

.kp-bs-name[b-9u9gcmqnqe] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 700;
}

.kp-bs-status[b-9u9gcmqnqe] {
    color: var(--crm-muted);
    font-size: 11.5px;
    font-weight: 650;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .kp-panel[b-9u9gcmqnqe] {
        width: 100dvw;
        border-left: 0;
    }
}

/* ==========================================================================
   Baustelle anlegen — Schritt 2 „Kontakt zuordnen" + Kontakt-Sektion (Bearbeiten)
   ========================================================================== */

.bsk-step-badge[b-9u9gcmqnqe] {
    margin-left: auto;
    padding: 3px 9px;
    border-radius: 999px;
    background: var(--modal-panel-soft, #f7f7f9);
    border: 1px solid var(--modal-line, #e4e4e7);
    color: var(--modal-muted, #5f646c);
    font-size: 11px;
    font-weight: 750;
    white-space: nowrap;
}

.bsk-mode-switch[b-9u9gcmqnqe] {
    margin: 2px 0 12px;
}

/* Picker-Suchfeld: eigenständig gestylt, weil im Modal die --crm-*-Variablen
   der Seite nicht gelten (Modals liegen außerhalb von .project-crm). */
.form-modal .bsk-search[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    min-height: 40px;
    margin-bottom: 8px;
    padding: 0 14px;
    border: 1px solid var(--modal-line);
    border-radius: 999px;
    background: var(--modal-panel);
    color: var(--modal-faint);
    transition: border-color 0.15s, box-shadow 0.15s;
}

.form-modal .bsk-search:focus-within[b-9u9gcmqnqe] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.08);
}

.form-modal .bsk-search input[b-9u9gcmqnqe] {
    min-width: 0;
    border: 0;
    outline: none;
    background: transparent;
    color: var(--modal-text);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
}

.form-modal .bsk-search input[b-9u9gcmqnqe]::placeholder {
    color: var(--modal-faint);
    font-weight: 600;
}

.bsk-liste[b-9u9gcmqnqe] {
    display: grid;
    gap: 4px;
    max-height: 300px;
    overflow-y: auto;
    padding: 6px;
    border: 1px solid var(--modal-line, #e4e4e7);
    border-radius: 12px;
    background: var(--modal-panel, #fff);
}

.bsk-liste--error[b-9u9gcmqnqe] {
    border-color: #d43d3d;
}

.bsk-leer[b-9u9gcmqnqe] {
    padding: 14px 10px;
    color: var(--modal-muted, #5f646c);
    font-size: 12.5px;
    font-weight: 600;
    text-align: center;
}

.bsk-option[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-height: 46px;
    padding: 6px 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--modal-text, #16181c);
    cursor: pointer;
    font: inherit;
    text-align: left;
}

@media (hover: hover) {
    .bsk-option:hover[b-9u9gcmqnqe] {
        background: #efeff1;
    }
}

.bsk-option.is-selected[b-9u9gcmqnqe] {
    background: #16181c;
    color: #fff;
}

.bsk-option.is-selected small[b-9u9gcmqnqe] {
    color: rgba(255, 255, 255, 0.72);
}

.bsk-option-text[b-9u9gcmqnqe] {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 2px;
}

.bsk-option-text strong[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 750;
}

.bsk-option-text small[b-9u9gcmqnqe] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--modal-muted, #5f646c);
    font-size: 11.5px;
    font-weight: 600;
}

/* Label-Zeile mit Aktion rechts (z. B. „Adresse der Baustelle übernehmen" überm Straßenfeld) */
.field-label-row[b-9u9gcmqnqe] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}

.bsk-adresse-uebernehmen[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    border: 1px dashed var(--modal-line-strong, #d4d4d8);
    border-radius: 999px;
    background: transparent;
    color: var(--modal-muted, #3c4148);
    cursor: pointer;
    font: inherit;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.4;
    white-space: nowrap;
}

@media (hover: hover) {
    .bsk-adresse-uebernehmen:hover[b-9u9gcmqnqe] {
        border-color: #16181c;
        background: #16181c;
        color: #fff;
    }
}

/* „Mehr laden"-Zeile am Listenende des Kontakt-Pickers */
.bsk-mehr-laden[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    min-height: 44px;
    justify-content: center;
    border: 1px dashed var(--modal-line-strong, #d4d4d8);
    border-radius: 9px;
    background: transparent;
    color: var(--modal-text, #16181c);
    cursor: pointer;
    font: inherit;
    font-size: 12.5px;
    font-weight: 750;
}

.bsk-mehr-laden em[b-9u9gcmqnqe] {
    color: var(--modal-faint, #80858d);
    font-size: 11px;
    font-style: normal;
    font-weight: 650;
}

@media (hover: hover) {
    .bsk-mehr-laden:hover[b-9u9gcmqnqe] {
        border-color: #16181c;
        background: #efeff1;
    }
}

/* Kontakt-Sektion im Bearbeiten-Modal */
.bsk-kontakt-sektion[b-9u9gcmqnqe] {
    padding-top: 10px;
    border-top: 1px solid var(--modal-line, #e4e4e7);
}

.bsk-kontakt-zeile[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    min-height: 42px;
    padding: 6px 12px;
    border: 1px solid var(--modal-line, #e4e4e7);
    border-radius: 12px;
    background: var(--modal-panel-soft, #f7f7f9);
}

.bsk-kontakt-name[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    font-size: 13px;
    font-weight: 750;
    color: var(--modal-text, #16181c);
}

.bsk-kontakt-pending[b-9u9gcmqnqe] {
    color: #a15c00;
    font-size: 11px;
    font-weight: 700;
    font-style: normal;
    white-space: nowrap;
}

.bsk-kontakt-actions[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.bsk-kontakt-btn[b-9u9gcmqnqe] {
    min-height: 32px;
    padding: 0 11px;
    font-size: 12.5px;
}

/* Panel-Filter: gleicher Knopf/Popover-Stil wie die Baustellen-Toolbar,
   nur auf die 38px-Toolbar-Höhe des Panels gebracht und rechtsbündig geöffnet. */
.kp-toolbar .btn-sort-filter[b-9u9gcmqnqe] {
    width: 38px;
    min-width: 38px;
    height: 38px;
    border-radius: 999px;
}

/* Panel-Filter-Popover: gleiches Modifier-Muster wie --crm/--documents; rechtsbündig
   unterm Knopf und ÜBER dem Panel (z 150). */
.psf-popover--kp[b-9u9gcmqnqe] {
    right: 0;
    z-index: 160;
}

/* Kleines Fenster: gleiches Verhalten wie das Baustellen-Filter-Popover — fix,
   fast volle Breite unterm Header, ÜBER dem Panel (das liegt bei z 150). */
@media (max-width: 900px) {
    .project-crm .psf-popover--kp[b-9u9gcmqnqe] {
        position: fixed;
        top: calc(var(--crm-header-height) + 12px);
        right: 12px;
        left: 12px;
        width: auto;
        max-height: calc(100dvh - var(--crm-header-height) - 24px);
        z-index: 260;
    }
}

/* ==========================================================================
   Dateiablage (Dokumente-Tab): Ordnerbaum, Datei-Liste, Verschieben-Dialog
   ========================================================================== */

.dokablage[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* Zieht man Dateien aus dem Betriebssystem über die Ablage, umfasst die Drop-Zone die
   GESAMTE Shell (inkl. Sidebar und Adressleiste) — jeder Ordner darin ist ein Ziel. */
.dokshell.dok-drag-over[b-9u9gcmqnqe] {
    outline: 2px dashed #16181c;
    outline-offset: -6px;
    border-radius: 14px;
    background: #fafafa;
}

.dokablage-file-hidden[b-9u9gcmqnqe] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.dokablage-upload-btn[b-9u9gcmqnqe] {
    cursor: pointer;
}

/* Dateisymbol (Blatt mit Eselsohr) — Form und Farbe liefert das SVG selbst,
   siehe DateiSymbol() im Code-behind. */
.dokfilechip[b-9u9gcmqnqe],
.doklist-chip[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.dokablage-btn[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 38px;
    padding: 0 15px;
    border: 1px solid #dcdce0;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: border-color 0.14s, background 0.14s, transform 0.12s;
}

@media (hover: hover) {
    .dokablage-btn:hover[b-9u9gcmqnqe] {
        border-color: #16181c;
        transform: translateY(-1px);
    }
}

.dokablage-vorlage-hint[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    /* Sitzt im Leer-Zustand mittig unter dem Hinweistext. */
    align-self: center;
    margin-top: 14px;
    padding: 12px 18px;
    border: 1px dashed #cfd0d4;
    border-radius: 12px;
    background: #fafafa;
    color: #16181c;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: border-color 0.14s, background 0.14s;
}

@media (hover: hover) {
    .dokablage-vorlage-hint:hover[b-9u9gcmqnqe] {
        border-color: #16181c;
        background: #f2f2f4;
    }
}

/* -- Verschieben- / Konflikt-Dialog -- */
.dokdlg-overlay[b-9u9gcmqnqe] {
    /* btn-delete & Co. lesen die --modal-*-Variablen, die auf .modal-backdrop
       definiert sind — ohne diese Kopie wäre z. B. der Löschen-Button im
       Weitere-Kosten-Dialog weiß auf weiß (unsichtbar). */
    --modal-danger: #e2483b;
    --modal-danger-soft: #fbeae8;
    --modal-line-strong: #d4d4d8;
    position: fixed;
    inset: 0;
    z-index: 400;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.dokdlg-backdrop[b-9u9gcmqnqe] {
    position: absolute;
    inset: 0;
    border: none;
    background: rgba(20, 22, 26, 0.42);
    backdrop-filter: blur(2px);
    cursor: pointer;
}

.dokdlg-card[b-9u9gcmqnqe] {
    position: relative;
    width: min(460px, 100%);
    max-height: min(70vh, 640px);
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 30px 80px -30px rgba(0, 0, 0, 0.5);
    overflow: hidden;
}

.dokdlg-card--narrow[b-9u9gcmqnqe] {
    width: min(400px, 100%);
}

.dokdlg-head[b-9u9gcmqnqe] {
    padding: 20px 22px 12px;
}

.dokdlg-head h2[b-9u9gcmqnqe] {
    margin: 0 0 4px;
    font-size: 17px;
    font-weight: 800;
    color: #16181c;
}

.dokdlg-sub[b-9u9gcmqnqe] {
    margin: 0;
    font-size: 13px;
    color: #7c7f85;
}

.dokdlg-list[b-9u9gcmqnqe] {
    overflow-y: auto;
    padding: 4px 12px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* Wird noch von der Standardordner-Vorschau genutzt (der Verschieben-Dialog ist entfallen). */
.dokdlg-target-label[b-9u9gcmqnqe] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dokdlg-actions[b-9u9gcmqnqe] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 22px 20px;
    border-top: 1px solid #f0f0f2;
}

.dokdlg-actions--stack[b-9u9gcmqnqe] {
    flex-direction: column;
    border-top: none;
    padding-top: 4px;
}

.dokdlg-actions--stack > button[b-9u9gcmqnqe] {
    width: 100%;
    justify-content: center;
}

/* -- Fix: InputFile ist eine Blazor-Komponente — scoped CSS erreicht ihr <input>
   nur über ::deep. Ohne das stünde das native "Dateien auswählen" sichtbar auf der Seite.
   Das Feld liegt bewusst außerhalb des Toolbar-Buttons (der ist ein <label for="…">),
   damit ein OS-Drop auf einen Ordner auch bei ausgegrauter Toolbar-Aktion hochladen kann. -- */
/* Nicht auf 0×0 zusammenziehen: iOS/iPadOS aktiviert ein Datei-Input über <label for>
   zuverlässiger, wenn es noch eine (winzige) Box hat statt vollständig weggeschnitten
   zu sein. Sichtbar ist es durch opacity:0 trotzdem nicht. */
.dokfileholder[b-9u9gcmqnqe] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.dokfileholder[b-9u9gcmqnqe]  input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.dokablage-upload-btn[b-9u9gcmqnqe] {
    position: relative;
    cursor: pointer;
}

/* Ausgegraute Toolbar-Aktionen (Papierkorb, „Aus dem Chat", aktive Suche): die Toolbar
   behält überall dieselbe Form, nicht Passendes wird nur stummgeschaltet. */
.dokablage-btn:disabled[b-9u9gcmqnqe],
.dokablage-upload-btn:disabled[b-9u9gcmqnqe] {
    opacity: 0.4;
    cursor: not-allowed;
    transform: none;
}

/* ==========================================================================
   Kachel-Raster (Explorer-Optik): Ordner als echte Ordner-Icons im Grid
   ========================================================================== */

.dokgrid[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 8px;
    padding: 4px 0 10px;
}

.doktile[b-9u9gcmqnqe] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 2px;
    padding: 16px 10px 12px;
    border-radius: 14px;
    cursor: pointer;
    transition: background 0.14s, transform 0.1s;
    /* Beim Ziehen soll keine Textmarkierung entstehen (fühlt sich sonst „hakelig" an). */
    user-select: none;
    -webkit-user-select: none;
}

/* Ein Ordner, über den gerade etwas gezogen wird, zeigt sich als Dropzone. */
.doktile--folder.dok-drop-target[b-9u9gcmqnqe] {
    background: #eaf1fb;
    outline: 2px dashed #5b8def;
    outline-offset: -3px;
}

@media (hover: hover) {
    .doktile:hover[b-9u9gcmqnqe] {
        background: #f2f2f4;
    }
}

.doktile-visual[b-9u9gcmqnqe] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 68px;
    margin-bottom: 4px;
}

/* Freie Ordner: klassisches Ordner-Gelb — bewusst die eine Objektfarbe im monochromen UI. */
.doktile--folder .doktile-visual[b-9u9gcmqnqe] {
    color: #f0c04d;
}

.doktile-name[b-9u9gcmqnqe] {
    max-width: 100%;
    font-size: 13px;
    font-weight: 700;
    color: #16181c;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}

.doktile-sub[b-9u9gcmqnqe] {
    max-width: 100%;
    font-size: 11.5px;
    color: #8a8d93;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.doktile--trashed .doktile-visual[b-9u9gcmqnqe],
.doktile--trashed .doktile-name[b-9u9gcmqnqe] {
    opacity: 0.75;
}

.doktile-pin[b-9u9gcmqnqe] {
    position: absolute;
    top: 8px;
    left: 8px;
    display: inline-flex;
    padding: 5px;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    box-shadow: 0 4px 10px -6px rgba(0, 0, 0, 0.4);
}

.doktile-pin svg[b-9u9gcmqnqe] {
    width: 11px;
    height: 11px;
}

.doktile-more[b-9u9gcmqnqe] {
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: #6b6f76;
    cursor: pointer;
    opacity: 0.65;
    transition: background 0.13s, opacity 0.13s, color 0.13s;
}

@media (hover: hover) {
    .doktile-more:hover[b-9u9gcmqnqe] {
        background: #e7e7ea;
        color: #16181c;
        opacity: 1;
    }
}

/* Kachel-/Flächenmenüs stehen fix im Viewport und damit über allem — sonst schnitte
   der scrollende Inhaltsbereich sie an seiner Kante ab. Geschlossen werden sie über
   popoverFlip.watchOutside (Klick daneben wirkt sofort aufs Ziel, kein Backdrop). */
.doktile-menu[b-9u9gcmqnqe] {
    position: absolute;
    top: 36px;
    right: 6px;
    z-index: 95;
    display: flex;
    flex-direction: column;
    min-width: 200px;
    padding: 6px;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 18px 44px -18px rgba(0, 0, 0, 0.38), 0 0 0 1px rgba(0, 0, 0, 0.05);
    cursor: default;
}

.doktile-menu > button[b-9u9gcmqnqe],
.doktile-menu > a[b-9u9gcmqnqe],
.doktile-menu > label[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 9px 12px;
    border: none;
    border-radius: 9px;
    background: none;
    color: #16181c;
    font-family: inherit;
    font-size: 13px;
    font-weight: 650;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.12s;
}

.doktile-menu > button svg[b-9u9gcmqnqe],
.doktile-menu > a svg[b-9u9gcmqnqe],
.doktile-menu > label svg[b-9u9gcmqnqe] {
    flex-shrink: 0;
    color: #6b6f76;
}

.doktile-menu-danger[b-9u9gcmqnqe],
.doktile-menu > .doktile-menu-danger svg[b-9u9gcmqnqe] {
    color: #b3261e !important;
}

@media (hover: hover) {
    .doktile-menu > button:hover[b-9u9gcmqnqe],
    .doktile-menu > a:hover[b-9u9gcmqnqe],
    .doktile-menu > label:hover[b-9u9gcmqnqe] {
        background: #f2f2f4;
    }
}

@media (max-width: 700px) {
    .dokgrid[b-9u9gcmqnqe] {
        grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
    }

    .doktile-visual[b-9u9gcmqnqe] {
        height: 56px;
    }

    .doktile--folder .doktile-visual svg[b-9u9gcmqnqe] {
        width: 52px;
        height: 52px;
    }
}

/* Echte Bild-Vorschau in der Kachel. */
.doktile-thumb[b-9u9gcmqnqe] {
    width: 58px;
    height: 58px;
    border-radius: 14px;
    object-fit: cover;
    background: #eceef1;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.07);
}

/* Farb-Swatches im Ordner-Kachelmenü. */
.doktile-menu-swatches[b-9u9gcmqnqe] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px 12px;
    border-top: 1px solid #f0f0f2;
    border-bottom: 1px solid #f0f0f2;
    margin: 2px 0;
}

.doktile-swatch[b-9u9gcmqnqe] {
    width: 20px;
    height: 20px;
    border: none;
    border-radius: 999px;
    cursor: pointer;
    padding: 0;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12);
    transition: transform 0.1s;
}

.doktile-swatch.is-active[b-9u9gcmqnqe] {
    box-shadow: 0 0 0 2px #16181c;
}

.doktile-swatch--reset[b-9u9gcmqnqe] {
    background: repeating-linear-gradient(45deg, #fff, #fff 3px, #e0e0e3 3px, #e0e0e3 6px);
}

@media (hover: hover) {
    .doktile-swatch:hover[b-9u9gcmqnqe] {
        transform: scale(1.15);
    }
}

.dokvorschau-row[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    font-size: 14px;
    font-weight: 650;
    color: #16181c;
}

/* Die dokdlg-Modals bringen keine --modal-*-Variablen mit (eigener Backdrop),
   daher .btn-primary explizit einfärben — sonst ist er bis zum Hover unsichtbar. */
.dokdlg-card .btn-primary[b-9u9gcmqnqe] {
    background: #16181c;
    border-color: #16181c;
    color: #fff;
}

/* Angebote-Ansicht ohne Trennlinie (einheitlich mit den anderen Ordner-Ansichten). */
.documents-toolbar--noborder[b-9u9gcmqnqe] {
    border-bottom: none;
}

/* Hinweis: Der Drag-Ghost wird in dokDrag.js komplett INLINE gestylt — scoped CSS
   erreicht das direkt an <body> gehängte Element nicht (kein Scope-Attribut). */

/* Leerer Ordner: dezenter Hinweis OHNE Trennlinie darüber. */
.dokablage-empty[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 48px 16px;
    text-align: center;
    color: #8a8d93;
}

.dokablage-empty strong[b-9u9gcmqnqe] {
    font-size: 15px;
    color: #16181c;
}

.dokablage-empty span[b-9u9gcmqnqe] {
    font-size: 13px;
}

/* Gefüllter, farbiger Ordner in der Standardordner-Vorschau. */
.dokvorschau-icon[b-9u9gcmqnqe] {
    display: inline-flex;
    flex-shrink: 0;
}

/* Thumbnails nie nativ draggen lassen (würde den Pointer-Drag per pointercancel abwürgen). */
.doktile img[b-9u9gcmqnqe] {
    -webkit-user-drag: none;
    user-select: none;
    pointer-events: none;
}

/* Inline-Umbenennen in der Kachel (macOS-Stil): das Namensschild wird zum Eingabefeld. */
.doktile-name-input[b-9u9gcmqnqe] {
    width: 100%;
    max-width: 100%;
    padding: 3px 8px;
    border: 1.5px solid #16181c;
    border-radius: 7px;
    background: #fff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    color: #16181c;
    text-align: center;
    line-height: 1.25;
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.08);
}

/* Vorschau-Modal: Kennzeichnung „vorhandener Ordner wird an Vorlagen-Position verschoben". */
.dokvorschau-badge[b-9u9gcmqnqe] {
    margin-left: auto;
    flex-shrink: 0;
    padding: 3px 9px;
    border-radius: 999px;
    background: #f0f0f2;
    color: #7c7f85;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

/* No-Drop-Zone: Systemordner (Angebote/Chat) machen beim Drüberziehen ein
   Halteverbot klar — rotes Verbotsschild-Overlay + roter Rahmen. */
.doktile.dok-drop-forbidden[b-9u9gcmqnqe] {
    outline: 2px dashed #d14343;
    outline-offset: -3px;
    background: #fbeeee;
}

.doktile.dok-drop-forbidden[b-9u9gcmqnqe]::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 5;
    pointer-events: none;
    border-radius: 14px;
    background: rgba(209, 67, 67, 0.10) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d14343' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cline x1='5.2' y1='5.2' x2='18.8' y2='18.8'/%3E%3C/svg%3E") center / 46px no-repeat;
}

/* ==========================================================================
   Datei-Explorer der Dateiablage: Shell (Sidebar + Inhalt), Adressleiste,
   feste Toolbar, Listenansicht, Auswahl und schwebende Aktionsleiste.
   ========================================================================== */

.dokshell[b-9u9gcmqnqe] {
    /* Breite der Sidebar: Vorgabe hier, zur Laufzeit überschreibt dokSidebarResize.js
       den Wert inline am selben Element (Greifer). */
    --doksb-width: 244px;
    display: grid;
    grid-template-columns: var(--doksb-width) minmax(0, 1fr);
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    position: relative;
}

/* -- Greifer für die Sidebar-Breite --------------------------------------- */

.doksb-resize[b-9u9gcmqnqe] {
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(var(--doksb-width) - 4px);
    /* Über der Overlay-Sidebar (60), damit der Greifer dort ebenfalls fassbar ist. */
    z-index: 65;
    width: 9px;
    cursor: col-resize;
    touch-action: none;
}

/* Ohne Mauszeiger braucht der Greifer eine fingergerechte Fläche — die sichtbare
   Linie bleibt gleich dünn, nur der Trefferbereich wächst. */
@media (hover: none) {
    .doksb-resize[b-9u9gcmqnqe] {
        width: 28px;
        left: calc(var(--doksb-width) - 14px);
    }
}

.doksb-resize[b-9u9gcmqnqe]::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    border-radius: 999px;
    background: #ececee;
    transition: width 0.14s ease, background 0.14s ease;
}

@media (hover: hover) {
    .doksb-resize:hover[b-9u9gcmqnqe]::before {
        width: 3px;
        background: #80858d;
    }
}

.dokshell--resizing .doksb-resize[b-9u9gcmqnqe]::before,
.doksb-resize:active[b-9u9gcmqnqe]::before {
    width: 3px;
    background: #16181c;
}

.dokshell--resizing[b-9u9gcmqnqe],
.dokshell--resizing *[b-9u9gcmqnqe] {
    cursor: col-resize !important;
}

/* Ohne stehende Sidebar (zugeklappt oder als Overlay) gibt es nichts zu ziehen. */
.dokshell:not(.dokshell--open) .doksb-resize[b-9u9gcmqnqe] {
    display: none;
}

/* Zugeklappte Sidebar: EINE Spalte. Die ausgeblendete Sidebar fällt per display:none aus
   dem Grid — bliebe die erste Spalte stehen, rutschte der Inhalt hinein und wäre 0 breit. */
.dokshell:not(.dokshell--open)[b-9u9gcmqnqe] {
    grid-template-columns: minmax(0, 1fr);
}

.dokshell:not(.dokshell--open) .doksb[b-9u9gcmqnqe] {
    display: none;
}

/* -- Sidebar -------------------------------------------------------------- */

.doksb[b-9u9gcmqnqe] {
    min-height: 0;
    /* Senkrecht scrollt die ganze Liste; seitwärts NUR der Ordnerbaum (siehe .doksb-tree),
       damit die Systemeinträge oben und unten an ihrem Platz bleiben. */
    overflow-y: auto;
    overflow-x: hidden;
    padding: 10px 8px 14px;
    border-right: 1px solid #ececee;
    /* Kopfbereich, Reiterleiste und Inhalt sind weiß; die Navigationsspalte trägt als
       einzige einen Hauch Grau (#fafafb) — derselbe Ton wie der Foto-Platzhalter. */
    background: #fafafb;
}

.doksb-inner[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.doksb-backdrop[b-9u9gcmqnqe] {
    display: none;
}

.doksb-sep[b-9u9gcmqnqe] {
    height: 1px;
    margin: 8px 6px;
    background: #e8e8ea;
    flex-shrink: 0;
}

/* Systemeinträge (Angebote, Chat, Papierkorb) — gleiche Zeilenoptik wie der Baum. */
.doksb-item[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 10px;
    border: none;
    border-radius: 9px;
    background: none;
    color: #16181c;
    font-family: inherit;
    font-size: 13px;
    font-weight: 650;
    text-align: left;
    cursor: pointer;
    transition: background 0.13s, color 0.13s;
}

/* Aktiver Eintrag: ruhiges graues Feld statt eines schwarzen Blocks — der Kontrast
   soll den Blick führen, nicht die Sidebar dominieren. */
.doksb-item.is-active[b-9u9gcmqnqe],
.doksb-node.is-active[b-9u9gcmqnqe] {
    background: #eceef1;
    color: #16181c;
    font-weight: 750;
}

/* Aktives Symbol kräftiger zeichnen: die dünne Linienführung (1,8) verschwindet sonst
   auf dem grauen Feld fast. CSS schlägt das stroke-width-Attribut des SVG. */
.doksb-item.is-active .doksb-icon[b-9u9gcmqnqe] {
    color: #16181c;
}

.doksb-item.is-active .doksb-icon svg[b-9u9gcmqnqe] {
    stroke-width: 2.3;
}

.doksb-icon[b-9u9gcmqnqe] {
    position: relative;
    display: inline-flex;
    flex-shrink: 0;
    color: #6b6f76;
}

/* Zähler der beiden Systemordner: dieselbe Pille wie der Filter-Zähler oben
   (.btn-sort-filter-count) — schwarz, weißer Ring, Ziffer per Flex zentriert. Sie klebt
   bewusst am SVG statt am Zeilenende: die Namen werden nicht gekürzt, ein rechtsbündiger
   Wert würde bei schmaler Sidebar aus dem Bild scrollen. */
.doksb-count[b-9u9gcmqnqe] {
    position: absolute;
    /* Weit in die Ecke gesetzt: das Symbol ist nur 18px groß und soll unter der Pille
       lesbar bleiben. */
    top: -7px;
    right: -8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border: 2px solid #fff;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    font-size: 9.5px;
    font-weight: 800;
    font-style: normal;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    pointer-events: none;
}

.doksb-icon--folder[b-9u9gcmqnqe] {
    color: #f0c04d;
}

/* Vollständiger Name, kein Kürzen: was nicht in die Breite passt, erreicht man über
   das horizontale Scrollen (wie im Explorer-Baum). */
.doksb-label[b-9u9gcmqnqe] {
    flex: 1 0 auto;
    white-space: nowrap;
}

/* -- Ordnerbaum ----------------------------------------------------------- */

/* Der Baum ist der einzige seitwärts scrollbare Bereich. overflow-y bleibt hidden:
   die Höhe richtet sich nach dem Inhalt, gescrollt wird senkrecht weiterhin die
   ganze Sidebar — sonst gäbe es zwei senkrechte Scrollbalken übereinander. */
.doksb-tree[b-9u9gcmqnqe] {
    overflow-x: auto;
    overflow-y: hidden;
}

/* Innen so breit wie der längste Knoten, mindestens aber so breit wie der Baum —
   dadurch sind alle Baumzeilen gleich breit und wandern beim Scrollen gemeinsam. */
.doksb-treeinner[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    width: max-content;
    min-width: 100%;
}

.doksb-node[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 2px;
    border-radius: 9px;
    /* Einrückung je Ebene; --lvl setzt das Markup pro Knoten. BEWUSST ohne Deckelung:
       der Baum soll auch tief verschachtelt als echter Baum lesbar bleiben — was nicht
       mehr in die Breite passt, erreicht man über das horizontale Scrollen. */
    padding-left: calc(var(--lvl) * 13px);
    transition: background 0.13s, color 0.13s;
    /* Knoten sind Ziehquellen — beim Ziehen soll kein Text markiert werden. */
    user-select: none;
    -webkit-user-select: none;
}

/* Flex-Spalte, damit der Knopf darin die volle Zeilenbreite bekommt — ein <button>
   schrumpft sonst auf seinen Inhalt und bliebe beim Scrollen schmaler als der Baum. */
.doksb-trashwrap[b-9u9gcmqnqe] {
    position: relative;
    display: flex;
    flex-direction: column;
}

.doksb-node.is-active .doksb-nodebtn[b-9u9gcmqnqe] {
    font-weight: 750;
}

.doksb-twist[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 20px;
    height: 26px;
    border: none;
    background: none;
    padding: 0;
    color: #9aa0a8;
    cursor: pointer;
    transition: transform 0.14s;
}

.doksb-twist.is-open[b-9u9gcmqnqe] {
    transform: rotate(90deg);
}

.doksb-twist--none[b-9u9gcmqnqe] {
    cursor: default;
}

.doksb-nodebtn[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 0 auto;
    padding: 7px 10px 7px 2px;
    border: none;
    border-radius: 9px;
    background: none;
    color: inherit;
    font-family: inherit;
    font-size: 13px;
    font-weight: 650;
    text-align: left;
    cursor: pointer;
}

@media (hover: hover) {
    .doksb-item:not(.is-active):hover[b-9u9gcmqnqe],
    .doksb-node:not(.is-active):hover[b-9u9gcmqnqe] {
        background: #f0f0f2;
    }

    .doksb-twist:not(.doksb-twist--none):hover[b-9u9gcmqnqe] {
        color: #16181c;
    }
}

/* Drop-Ziel im Baum — dieselbe neutrale Markierung wie überall, auch am Papierkorb. */
.doksb-node.dok-drop-target[b-9u9gcmqnqe],
.doksb-item.dok-drop-target[b-9u9gcmqnqe] {
    background: #eaf1fb;
    outline: 2px dashed #5b8def;
    outline-offset: -2px;
}

.doksb-item.dok-drop-forbidden[b-9u9gcmqnqe] {
    background: #fbeeee;
    outline: 2px dashed #d14343;
    outline-offset: -2px;
}

/* -- Hauptbereich + Adressleiste ------------------------------------------ */

.dokmain[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
}

.dokaddr[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 10px 12px 6px;
    min-width: 0;
}

.dokaddr-btn[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 8px;
    background: none;
    color: #6b6f76;
    cursor: pointer;
    transition: background 0.13s, color 0.13s;
}

.dokaddr-btn:disabled[b-9u9gcmqnqe] {
    opacity: 0.32;
    cursor: default;
}

@media (hover: hover) {
    .dokaddr-btn:not(:disabled):hover[b-9u9gcmqnqe] {
        background: #f0f0f2;
        color: #16181c;
    }
}

.dokcrumbs[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 1px;
    min-width: 0;
    margin-left: 4px;
    overflow: hidden;
}

.dokcrumb[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    max-width: 220px;
    padding: 4px 8px;
    border: none;
    border-radius: 8px;
    background: none;
    color: #6b6f76;
    font-family: inherit;
    font-size: 13px;
    font-weight: 650;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: background 0.14s, color 0.14s;
}

.dokcrumb--current[b-9u9gcmqnqe] {
    color: #16181c;
    font-weight: 750;
    cursor: default;
}

/* Reiner Hinweis auf ausgelassene Ebenen — nicht anklickbar (dorthin kommt man über
   den Ordnerbaum links). */
.dokcrumb--more[b-9u9gcmqnqe] {
    font-weight: 800;
    letter-spacing: 0.06em;
    cursor: default;
}

.dokcrumb-sep[b-9u9gcmqnqe] {
    flex-shrink: 0;
    color: #c4c7cc;
    font-size: 13px;
    font-weight: 600;
    user-select: none;
}

@media (hover: hover) {
    /* Das „…" bleibt bewusst ohne Hover-Fläche — es soll im Pfad nicht wie eine
       eigene Ebene wirken. */
    .dokcrumb:not(.dokcrumb--current):not(.dokcrumb--more):hover[b-9u9gcmqnqe] {
        background: #f0f0f2;
        color: #16181c;
    }
}

.dokcrumb.dok-drop-target[b-9u9gcmqnqe] {
    background: #eaf1fb;
    outline: 2px dashed #5b8def;
    outline-offset: -1px;
    color: #16181c;
}

/* -- Feste Toolbar -------------------------------------------------------- */

.doktoolbar[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 12px 10px;
    flex-wrap: nowrap;
    min-width: 0;
    /* Eigener Abfragebereich: die Toolbar richtet sich nach IHRER Breite, nicht nach der
       des Fensters — der Inhaltsbereich ist je nach Baustellenliste/Sidebar verschieden
       breit. Bewusst hier und nicht weiter oben: container-type macht ein Element zum
       Bezugsrahmen für position:fixed, und die Kachelmenüs müssen frei im Viewport stehen. */
    container-type: inline-size;
    container-name: doktb;
}

.doktoolbar-search[b-9u9gcmqnqe] {
    flex: 1 1 auto;
    /* Nicht bis zum reinen Lupen-Kreis zusammenschrumpfen. */
    min-width: 148px;
    width: auto;
}

/* -- Enge Toolbar: Aktionen wandern ins ⋯-Menü ---------------------------- */

/* Menü-Einträge, die es nur in der engen Toolbar gibt … Die Selektoren sind bewusst über
   den Elternteil geschrieben: `.doktile-menu > button` bzw. `.dokicon-btn` wären sonst
   spezifischer und würden das Aus- und Einblenden aushebeln. */
.doktile-menu > .doktool-narrow-item[b-9u9gcmqnqe] {
    display: none;
}

/* … und der ⋯-Knopf, der ohne echte Einträge nur als Auffangbecken existiert. */
.doktoolbar > .doktool-morewrap--narrowonly[b-9u9gcmqnqe] {
    display: none;
}

@container doktb (max-width: 640px) {
    .doktoolbar > .doktb-collapsible[b-9u9gcmqnqe] {
        display: none;
    }

    .doktile-menu > .doktool-narrow-item[b-9u9gcmqnqe] {
        display: flex;
    }

    .doktoolbar > .doktool-morewrap--narrowonly[b-9u9gcmqnqe] {
        display: block;
    }
}

/* „Auswählen" ersetzt Strg/Shift-Klick und ergibt nur auf Touch Sinn — auch im Menü. */
@media (hover: hover) {
    .doktool-touch-only[b-9u9gcmqnqe] {
        display: none !important;
    }
}

.dokicon-btn[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    gap: 6px;
    min-width: 38px;
    height: 38px;
    padding: 0 10px;
    border: 1px solid #dcdce0;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: border-color 0.14s, background 0.14s;
}

.dokicon-btn.is-active[b-9u9gcmqnqe] {
    border-color: #16181c;
    background: #16181c;
    color: #fff;
}

@media (hover: hover) {
    .dokicon-btn:hover[b-9u9gcmqnqe] {
        border-color: #16181c;
    }
}

/* Raster/Liste-Umschalter als 2er-Segment. */
.dokviewswitch[b-9u9gcmqnqe] {
    display: inline-flex;
    flex-shrink: 0;
    padding: 3px;
    border: 1px solid #dcdce0;
    border-radius: 999px;
    background: #fff;
}

.dokviewswitch button[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 30px;
    border: none;
    border-radius: 999px;
    background: none;
    color: #8a8d93;
    cursor: pointer;
    transition: background 0.13s, color 0.13s;
}

.dokviewswitch button.is-active[b-9u9gcmqnqe] {
    background: #16181c;
    color: #fff;
}

/* Der Auswählen-Modus ist die Touch-Antwort auf Strg/Shift-Klick — mit Maus unnötig. */
@media (hover: hover) {
    .dokselect-btn[b-9u9gcmqnqe] {
        display: none;
    }
}

.doktool-morewrap[b-9u9gcmqnqe] {
    position: relative;
    flex-shrink: 0;
}

.doktool-menu[b-9u9gcmqnqe] {
    top: 44px;
    right: 0;
}

.dokbg-menu[b-9u9gcmqnqe] {
    z-index: 95;
}

/* -- Inhaltsbereich ------------------------------------------------------- */

.dokablage[b-9u9gcmqnqe] {
    position: relative;
    flex: 1 1 auto;
}

.dokcontent[b-9u9gcmqnqe] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0 12px;
}

/* Platz, damit die schwebende Aktionsleiste keine Zeilen verdeckt. */
.dokcontent--actionbar[b-9u9gcmqnqe] {
    padding-bottom: 78px;
}

/* -- Listenansicht -------------------------------------------------------- */

.doklist[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    padding-bottom: 10px;
}

.doklist-head[b-9u9gcmqnqe],
.doklist-row[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px 190px;
    align-items: center;
    gap: 10px;
}

.doklist--suche .doklist-head[b-9u9gcmqnqe],
.doklist--suche .doklist-row[b-9u9gcmqnqe] {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 110px;
}

.doklist-head[b-9u9gcmqnqe] {
    position: sticky;
    top: 0;
    z-index: 3;
    padding: 8px 10px;
    border-bottom: 1px solid #ececee;
    background: #fff;
    color: #8a8d93;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.doklist-sortbtn[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    justify-self: start;
    padding: 2px 6px;
    margin: -2px -6px;
    border: none;
    border-radius: 6px;
    background: none;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    cursor: pointer;
}

.doklist-sortbtn.is-active[b-9u9gcmqnqe] {
    color: #16181c;
}

.doklist-sortarrow[b-9u9gcmqnqe] {
    display: inline-flex;
}

.doklist-sortarrow svg[b-9u9gcmqnqe] {
    width: 12px;
    height: 12px;
}

@media (hover: hover) {
    .doklist-sortbtn:hover[b-9u9gcmqnqe] {
        background: #f2f2f4;
    }
}

.doklist-row[b-9u9gcmqnqe] {
    position: relative;
    /* Feste Zeilenhöhe: Ordner (kleines Symbol) und Dateien (Vorschau/Typ-Chip) sollen
       exakt gleich hoch sein, sonst wirkt die Liste unruhig. */
    min-height: 46px;
    padding: 7px 10px;
    border-bottom: 1px solid #f4f4f6;
    border-radius: 8px;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
}

@media (hover: hover) {
    .doklist-row:hover[b-9u9gcmqnqe] {
        background: #f7f7f9;
    }
}

.doklist-name[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    font-size: 13.5px;
    font-weight: 650;
    color: #16181c;
}

.doklist-text[b-9u9gcmqnqe] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.doklist-col[b-9u9gcmqnqe] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #8a8d93;
    font-size: 12.5px;
}

.doklist-col--last[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}

.doklist-date[b-9u9gcmqnqe] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.doklist-foldericon[b-9u9gcmqnqe] {
    display: inline-flex;
    flex-shrink: 0;
    color: #f0c04d;
}

.doklist-thumb[b-9u9gcmqnqe] {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    border-radius: 8px;
    object-fit: cover;
    background: #eceef1;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.07);
}

.doklist-pin[b-9u9gcmqnqe] {
    display: inline-flex;
    flex-shrink: 0;
    color: #16181c;
}

.doklist-pin svg[b-9u9gcmqnqe] {
    width: 12px;
    height: 12px;
}

.doklist-more[b-9u9gcmqnqe] {
    position: static;
    width: 26px;
    height: 26px;
    flex-shrink: 0;
}

.doklist-name-input[b-9u9gcmqnqe] {
    flex: 1;
    min-width: 0;
    height: 30px;
    padding: 0 10px;
    border: 1.5px solid #16181c;
    border-radius: 8px;
    background: #fff;
    font-family: inherit;
    font-size: 13.5px;
    font-weight: 650;
    color: #16181c;
    outline: none;
}

.doklist-row.dok-drop-target[b-9u9gcmqnqe] {
    background: #eaf1fb;
    outline: 2px dashed #5b8def;
    outline-offset: -2px;
}

/* Thumbnails nie nativ draggen lassen (würde den Pointer-Drag per pointercancel abwürgen). */
.doklist-row img[b-9u9gcmqnqe] {
    -webkit-user-drag: none;
    user-select: none;
    pointer-events: none;
}

/* -- Auswahl -------------------------------------------------------------- */

.doktile.dok-selected[b-9u9gcmqnqe] {
    background: #e8eaef;
    box-shadow: inset 0 0 0 2px #16181c;
}

.doklist-row.dok-selected[b-9u9gcmqnqe] {
    background: #e8eaef;
    box-shadow: inset 0 0 0 2px #16181c;
}

.dokcheck[b-9u9gcmqnqe] {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: #fff;
    box-shadow: inset 0 0 0 1.5px #c4c7cc;
    color: transparent;
}

.dokcheck.is-on[b-9u9gcmqnqe] {
    background: #16181c;
    box-shadow: none;
    color: #fff;
}

.dokcheck svg[b-9u9gcmqnqe] {
    width: 12px;
    height: 12px;
}

.dokcheck--row[b-9u9gcmqnqe] {
    position: static;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
}

/* -- Schwebende Aktionsleiste --------------------------------------------- */

.dokactionbar[b-9u9gcmqnqe] {
    position: absolute;
    left: 50%;
    bottom: max(16px, env(safe-area-inset-bottom));
    z-index: 50;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    /* Nur Symbole → die Leiste bleibt in jeder Breite einzeilig. */
    flex-wrap: nowrap;
    gap: 4px;
    max-width: calc(100% - 24px);
    padding: 6px 8px 6px 14px;
    border-radius: 999px;
    background: #16181c;
    box-shadow: 0 22px 50px -18px rgba(0, 0, 0, 0.55);
}

.dokactionbar-count[b-9u9gcmqnqe] {
    flex-shrink: 0;
    margin-right: 6px;
    color: #fff;
    font-size: 13px;
    font-weight: 750;
    white-space: nowrap;
}

/* Reine Symbol-Knöpfe: quadratisch, Beschriftung steckt im title. */
.dokactionbar button[b-9u9gcmqnqe],
.dokactionbar a[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    padding: 0;
    border: none;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.13s;
}

.dokactionbar svg[b-9u9gcmqnqe] {
    flex-shrink: 0;
}

/* Endgültig löschen: klares Rot statt eines milchigen Schleiers auf dem dunklen Grund. */
.dokactionbar-danger[b-9u9gcmqnqe] {
    background: #b3261e !important;
    color: #fff !important;
}

.dokactionbar-close[b-9u9gcmqnqe] {
    background: transparent !important;
}

@media (hover: hover) {
    .dokactionbar button:hover[b-9u9gcmqnqe],
    .dokactionbar a:hover[b-9u9gcmqnqe] {
        background: rgba(255, 255, 255, 0.24);
    }

    .dokactionbar-danger:hover[b-9u9gcmqnqe] {
        background: #c62f26 !important;
    }
}

/* -- Schmale Viewports: Sidebar wird zum Overlay --------------------------- */

@media (max-width: 1180px) {
    .dokshell[b-9u9gcmqnqe],
    .dokshell:not(.dokshell--open)[b-9u9gcmqnqe] {
        grid-template-columns: minmax(0, 1fr);
    }

    /* Sidebar liegt hier als Overlay über dem Inhalt — die Breite bleibt aber ziehbar
       (auf iPads ist das der Normalfall, dort gäbe es sonst gar keinen Greifer). */
    .dokshell--open .doksb[b-9u9gcmqnqe] {
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        z-index: 60;
        width: var(--doksb-width);
        border-radius: 0 14px 14px 0;
        box-shadow: 0 24px 60px -20px rgba(0, 0, 0, 0.45);
        background: #fff;
    }

    .dokshell--open .doksb-backdrop[b-9u9gcmqnqe] {
        display: block;
        position: absolute;
        inset: 0;
        z-index: 55;
        border: none;
        background: rgba(20, 22, 26, 0.28);
        cursor: pointer;
    }
}

/* -- Angebote-Spezialansicht innerhalb der Shell -------------------------- */
/* Gleiche Kopfzeilen- und Zeilentypografie wie die Listenansicht der Ablage. Bewusst über
   .dokmain gescoped: im Tab „Entwürfe" bleibt dieselbe Tabelle unverändert dicht. */

.dokmain .documents-toolbar[b-9u9gcmqnqe] {
    padding: 4px 12px 10px;
    background: transparent;
}

.dokmain .documents-table-wrap[b-9u9gcmqnqe] {
    padding: 0 12px;
}

.dokmain .documents-table th[b-9u9gcmqnqe] {
    height: 34px;
    background: #fff;
    border-bottom-color: #ececee;
    color: #8a8d93;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.05em;
}

.dokmain .documents-table th[b-9u9gcmqnqe],
.dokmain .documents-table td[b-9u9gcmqnqe] {
    padding: 9px 10px;
}

.dokmain .documents-table td[b-9u9gcmqnqe] {
    border-bottom-color: #f4f4f6;
    font-size: 12.5px;
}

.dokmain .document-title-text[b-9u9gcmqnqe] {
    font-size: 13.5px;
}

@media (max-width: 860px) {
    /* Mittlere Spalte (Größe bzw. Pfad) weicht — Name und Aktionen bleiben erreichbar. */
    .doklist-head[b-9u9gcmqnqe],
    .doklist-row[b-9u9gcmqnqe],
    .doklist--suche .doklist-head[b-9u9gcmqnqe],
    .doklist--suche .doklist-row[b-9u9gcmqnqe] {
        grid-template-columns: minmax(0, 1fr) 138px;
    }

    .doklist-head > :nth-child(2)[b-9u9gcmqnqe],
    .doklist-row > :nth-child(2)[b-9u9gcmqnqe] {
        display: none;
    }

    .dokactionbar button[b-9u9gcmqnqe],
    .dokactionbar a[b-9u9gcmqnqe] {
        width: 36px;
        height: 36px;
    }
}

/* ==========================================================================
   Schmale Scrollbars fuer ALLE Scrollbereiche dieser Seite (wie in /lager).
   Der Universalselektor traegt das Scope-Attribut dieser Komponente, greift
   also genau auf das Markup von ProjectSetup.razor - inklusive der Modals,
   die ausserhalb von .project-crm gerendert werden.
   ========================================================================== */

*[b-9u9gcmqnqe] {
    scrollbar-width: thin;                 /* Firefox */
    scrollbar-color: #c6c9ce transparent;  /* Daumen - Spur */
}

*[b-9u9gcmqnqe]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

*[b-9u9gcmqnqe]::-webkit-scrollbar-track {
    background: transparent;
}

*[b-9u9gcmqnqe]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    *[b-9u9gcmqnqe]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

/* ==============================================================
   Nachkalkulation-Tab (Soll-Ist je Baustelle)
   ============================================================== */

/* Gepolsterter Rahmen des Tabs (wie .bs-termine-scroll im Termine-Tab) — der
   GANZE Tab scrollt hier, nicht nur die Stundenzuordnungs-Tabelle. */
.nk-scroll[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1;
    overflow: auto;
    padding: 12px 16px 16px;
}

/* Die Tabelle wächst in voller Höhe mit dem Seiten-Scroll mit und behält nur
   ihr horizontales Scrollen für schmale Fenster (min-width der Tabelle). */
.nk-scroll .documents-table-wrap[b-9u9gcmqnqe] {
    flex: 0 0 auto;
}

/* -- Ergebnis-Rechnung: Umsatz − Kosten = Deckungsbeitrag | Stunden ------
   Eine Karte statt vier gleichförmiger — die Rechenzeichen machen den Zusammenhang
   ablesbar, der Deckungsbeitrag trägt die größte Zahl. */
.nk-summe[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1.15fr) auto minmax(0, 0.85fr);
    gap: 18px;
    align-items: start;
    margin-bottom: 16px;
    background: #ffffff;
    border: 1.5px solid #e4e4e7;
    border-radius: 14px;
    padding: 16px 18px;
}

.nk-summe-seg[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.nk-summe-label[b-9u9gcmqnqe] {
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6f747d;
}

.nk-summe-value[b-9u9gcmqnqe] {
    font-size: 1.3rem;
    font-weight: 850;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.nk-summe-value--db[b-9u9gcmqnqe] {
    font-size: 1.65rem;
    line-height: 1.15;
}

.nk-summe-value--muted[b-9u9gcmqnqe] {
    color: #a3a7ae;
}

.nk-summe-sub[b-9u9gcmqnqe] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #6f747d;
    line-height: 1.45;
}

/* Kosten-Aufschlüsselung untereinander: Posten links, Betrag rechts. */
.nk-summe-teilliste[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-width: 220px;
    font-size: 0.75rem;
    font-weight: 600;
    color: #6f747d;
}

.nk-summe-teilliste > span[b-9u9gcmqnqe] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Rechenzeichen zwischen den Geld-Segmenten — sitzen auf Höhe der Zahlen. */
.nk-summe-op[b-9u9gcmqnqe] {
    padding-top: 21px;
    font-size: 1.05rem;
    font-weight: 800;
    color: #b6bac0;
    user-select: none;
}

/* Feiner Steg trennt die Stunden von der Geld-Rechnung. */
.nk-summe-trenner[b-9u9gcmqnqe] {
    width: 1.5px;
    align-self: stretch;
    background: #efeff1;
}

.nk-pos[b-9u9gcmqnqe] { color: #1e7d45; }
.nk-neg[b-9u9gcmqnqe] { color: #c0392b; }

/* -- Soll-Ist-Balken ----------------------------------------------------- */
.nk-bars[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 16px;
    background: #ffffff;
    border: 1.5px solid #e4e4e7;
    border-radius: 14px;
    padding: 14px 16px;
}

.nk-bar-row[b-9u9gcmqnqe] {
    display: grid;
    grid-template-columns: 110px minmax(80px, 1fr) auto minmax(150px, auto);
    gap: 12px;
    align-items: center;
}

.nk-bar-label[b-9u9gcmqnqe] {
    font-size: 0.8rem;
    font-weight: 750;
    color: #16181c;
}

.nk-bar-track[b-9u9gcmqnqe] {
    height: 10px;
    border-radius: 999px;
    background: #efeff1;
    overflow: hidden;
}

.nk-bar-fill[b-9u9gcmqnqe] {
    height: 100%;
    border-radius: 999px;
    background: #1e7d45;
    transition: width 0.35s ease;
}

.nk-bar-fill--over[b-9u9gcmqnqe] {
    background: #c0392b;
}

.nk-bar-vals[b-9u9gcmqnqe] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #6f747d;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.nk-bar-vals strong[b-9u9gcmqnqe] {
    color: #16181c;
    font-weight: 800;
}

.nk-bar-diff[b-9u9gcmqnqe] {
    font-size: 0.78rem;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: right;
}

/* „Weitere Kosten"-Zeile: kein Soll aus der Kalkulation → schraffierter Leer-Track. */
.nk-bar-track--leer[b-9u9gcmqnqe] {
    background: repeating-linear-gradient(45deg, #f5f5f7 0 6px, #ececee 6px 12px);
}

.nk-bar-diff--neutral[b-9u9gcmqnqe] {
    color: #8a8f98;
    font-weight: 600;
}

/* -- Kosten-Verlauf (kumulierte Linie + Soll-Marke) ---------------------- */
.nk-verlauf[b-9u9gcmqnqe] {
    margin-bottom: 16px;
    background: #ffffff;
    border: 1.5px solid #e4e4e7;
    border-radius: 14px;
    padding: 12px 16px 8px;
}

.nk-verlauf-titel[b-9u9gcmqnqe] {
    display: block;
    margin-bottom: 6px;
    font-size: 0.8rem;
    font-weight: 750;
    color: #16181c;
}

/* -- Weitere Kosten (Fremdleistung/Nachunternehmer, Sonstiges) ----------- */
.nk-kosten[b-9u9gcmqnqe] {
    margin-bottom: 16px;
    background: #ffffff;
    border: 1.5px solid #e4e4e7;
    border-radius: 14px;
    padding: 12px 16px 10px;
}

.nk-kosten-head[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.nk-kosten-title[b-9u9gcmqnqe] {
    font-size: 0.8rem;
    font-weight: 750;
    color: #16181c;
}

.nk-kosten-summe[b-9u9gcmqnqe] {
    font-size: 0.8rem;
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.nk-kosten-add[b-9u9gcmqnqe] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1.5px solid #e4e4e7;
    background: #ffffff;
    border-radius: 999px;
    padding: 5px 12px;
    font-size: 0.78rem;
    font-weight: 700;
    color: #16181c;
    cursor: pointer;
}

@media (hover: hover) {
    .nk-kosten-add:hover[b-9u9gcmqnqe] {
        background: #f7f7f9;
    }
}

.nk-kosten-empty[b-9u9gcmqnqe] {
    margin: 0 0 4px;
    font-size: 0.78rem;
    font-weight: 500;
    color: #8a8f98;
}

.nk-kosten-list[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
}

.nk-kosten-row[b-9u9gcmqnqe] {
    display: grid;
    /* Art-Spalte: die Namen sind frei pflegbar („Containerentsorgung") — deshalb wächst die
       Spalte mit dem Inhalt, aber höchstens bis 160px; darüber kürzt die Pille mit „…"
       (voller Name im title-Attribut). Eine feste Breite hat lange Namen abgeschnitten. */
    grid-template-columns: 82px fit-content(160px) minmax(0, 1fr) auto auto;
    gap: 12px;
    align-items: center;
    padding: 7px 0;
    border-top: 1px solid #f0f0f2;
    font-size: 0.8rem;
}

.nk-kosten-row:first-child[b-9u9gcmqnqe] {
    border-top: 0;
}

.nk-kosten-datum[b-9u9gcmqnqe] {
    color: #6f747d;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Block statt inline-flex: nur so greift text-overflow auf dem Text der Pille. */
.nk-kosten-art[b-9u9gcmqnqe] {
    display: block;
    justify-self: start;
    max-width: 100%;
    padding: 3px 9px;
    border-radius: 999px;
    background: #efeff1;
    color: #3c4148;
    font-size: 0.72rem;
    font-weight: 750;
    line-height: 1.5;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nk-kosten-text[b-9u9gcmqnqe] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #16181c;
    font-weight: 600;
}

.nk-kosten-betrag[b-9u9gcmqnqe] {
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: right;
}

.nk-kosten-actions[b-9u9gcmqnqe] {
    display: inline-flex;
    gap: 4px;
}

.nk-kosten-action[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #6f747d;
    cursor: pointer;
}

@media (hover: hover) {
    .nk-kosten-action:hover[b-9u9gcmqnqe] {
        background: #efeff1;
        color: #16181c;
    }

    .nk-kosten-action--delete:hover[b-9u9gcmqnqe] {
        background: #fdecea;
        color: #c0392b;
    }
}

/* Betrag-Feld im Modal: €-Zeichen fest im Eingabefeld */
.nk-kosten-betrag-feld[b-9u9gcmqnqe] {
    position: relative;
    display: flex;
    align-items: center;
}

.nk-kosten-betrag-feld .field-input[b-9u9gcmqnqe] {
    /* Freiraum rechts für das Suffix. Früher fest 30px — das war für das einzelne „€"
       bemessen. Seit hier auch die Einheit der Kostenart steht („Stk", „m²", „Pauschale"),
       muss der Platz mitwachsen, sonst läuft die rechtsbündige Zahl unter das Suffix.
       --nk-suffix = Zeichenzahl des Suffix, wird im Markup gesetzt (Default 1 = „€"). */
    padding-right: calc(18px + var(--nk-suffix, 1) * 0.7em);
    text-align: right;
}

.nk-kosten-euro[b-9u9gcmqnqe] {
    position: absolute;
    right: 11px;
    color: #6f747d;
    font-weight: 700;
    pointer-events: none;
}

/* -- Stundenzuordnung ---------------------------------------------------- */
/* Zeile mit dem Aufklapp-Button links und dem Rechenweise-Info rechts. */
.nk-details-bar[b-9u9gcmqnqe] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.nk-details-toggle[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1.5px solid #e4e4e7;
    background: #ffffff;
    border-radius: 999px;
    padding: 7px 14px;
    font-size: 0.8rem;
    font-weight: 700;
    color: #16181c;
    cursor: pointer;
    margin-bottom: 10px;
}

@media (hover: hover) {
    .nk-details-toggle:hover[b-9u9gcmqnqe] {
        background: #f7f7f9;
    }
}

.nk-details-chev[b-9u9gcmqnqe] {
    transition: transform 0.18s ease;
}

.nk-details-chev--open[b-9u9gcmqnqe] {
    transform: rotate(90deg);
}

/* Rechte Button-Gruppe der Details-Zeile: [Hinweise (n)] [Rechenweise]. */
.nk-bar-right[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.nk-hinweis-badge[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: #8a5a19;
    color: #ffffff;
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1;
}

/* Rechenweise-Info: Trigger-Pille + Popover darunter. */
.nk-info-wrap[b-9u9gcmqnqe] {
    position: relative;
}

.nk-info-trigger[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1.5px solid #e4e4e7;
    background: #ffffff;
    border-radius: 999px;
    padding: 7px 13px;
    font-size: 0.78rem;
    font-weight: 700;
    color: #6f747d;
    cursor: pointer;
}

@media (hover: hover) {
    .nk-info-trigger:hover[b-9u9gcmqnqe] {
        background: #f7f7f9;
        color: #16181c;
    }
}

.nk-info-trigger.is-open[b-9u9gcmqnqe] {
    border-color: #16181c;
    background: #16181c;
    color: #ffffff;
}

.nk-info-popover[b-9u9gcmqnqe] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 60;
    width: min(440px, calc(100vw - 48px));
    padding: 14px 16px;
    background: #ffffff;
    border: 1.5px solid #e4e4e7;
    border-radius: 14px;
    box-shadow: 0 18px 42px rgba(28, 28, 30, 0.14);
}

.nk-info-popover p[b-9u9gcmqnqe] {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 500;
    color: #3c4148;
    line-height: 1.55;
}

.nk-info-popover p + p[b-9u9gcmqnqe] {
    margin-top: 8px;
}

/* Hinweis-Einträge im Hinweise-Modal. */
.nk-hinweis[b-9u9gcmqnqe] {
    padding: 12px 14px;
    background: #f7f7f9;
    border: 1px solid #ececee;
    border-radius: 12px;
}

.nk-hinweis-titel[b-9u9gcmqnqe] {
    margin: 0 0 6px;
    font-size: 0.88rem;
    font-weight: 800;
    color: #16181c;
}

.nk-hinweis-text[b-9u9gcmqnqe] {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 500;
    color: #3c4148;
    line-height: 1.5;
}

.nk-hinweis-liste[b-9u9gcmqnqe] {
    margin: 6px 0 0;
    padding-left: 18px;
    font-size: 0.8rem;
    font-weight: 600;
    color: #16181c;
    line-height: 1.6;
    font-variant-numeric: tabular-nums;
}

.nk-hinweis-tun[b-9u9gcmqnqe] {
    margin: 8px 0 0;
    font-size: 0.8rem;
    font-weight: 500;
    color: #3c4148;
    line-height: 1.5;
}

.nk-hinweis-tun strong[b-9u9gcmqnqe] {
    color: #16181c;
    font-weight: 750;
}

/* Inline-Neuanlage einer Kosten-Art IM Art-Feld (Muster „+ Neue Einheit…" im Lager). */
.nk-neue-art-inline[b-9u9gcmqnqe] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.nk-neue-art-einheit[b-9u9gcmqnqe] {
    min-width: 150px;
}

/* Kleiner Hinweistext unter einem Modal-Feld (z. B. „nichts zählt doppelt"). */
.nk-modal-hint[b-9u9gcmqnqe] {
    margin: 6px 0 0;
    font-size: 0.74rem;
    font-weight: 500;
    color: #80858d;
    line-height: 1.5;
}

/* Hinweis anstelle der Stundenzuordnung, wenn das Recht für die personenbezogene
   Aufschlüsselung fehlt. */
/* Spaltenbreiten wie beim Material: auto-Layout, Termin-Spalte nimmt den freien Platz. */
.documents-table--nachkalk[b-9u9gcmqnqe] {
    table-layout: auto;
    min-width: 0;
}

.documents-table--nachkalk tbody tr[b-9u9gcmqnqe] {
    cursor: default;
}

.documents-table--nachkalk th:nth-child(1)[b-9u9gcmqnqe],
.documents-table--nachkalk td:nth-child(1)[b-9u9gcmqnqe],      /* Tag */
.documents-table--nachkalk th:nth-child(2)[b-9u9gcmqnqe],
.documents-table--nachkalk td:nth-child(2)[b-9u9gcmqnqe] {     /* Mitarbeiter */
    width: 1%;
    white-space: nowrap;
    padding-right: 1.25rem;
}

.documents-table--nachkalk th:nth-child(3)[b-9u9gcmqnqe],
.documents-table--nachkalk td:nth-child(3)[b-9u9gcmqnqe] {     /* Termin – nimmt den freien Platz */
    width: 100%;
}

/* -- Responsive ---------------------------------------------------------- */
@media (max-width: 1100px) {
    /* Gleichung bleibt in Zeile 1, die Stunden rutschen als eigene Zeile darunter. */
    .nk-summe[b-9u9gcmqnqe] {
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1.15fr);
        row-gap: 12px;
    }

    .nk-summe-trenner[b-9u9gcmqnqe] {
        display: none;
    }

    .nk-summe-seg--stunden[b-9u9gcmqnqe] {
        grid-column: 1 / -1;
        border-top: 1px solid #efeff1;
        padding-top: 10px;
    }
}

@media (max-width: 640px) {
    .nk-scroll[b-9u9gcmqnqe] {
        padding: 10px 12px 14px;
    }

    /* Kassenbon-Stapel: Label links, Zahl rechts — alle Beträge an EINER rechten
       Fluchtlinie, der Doppelstrich über dem Deckungsbeitrag ist der Summenstrich.
       Bewusst überall explizite grid-areas + justify-self, damit die Platzierung
       nicht am Auto-Placement hängt. */
    .nk-summe[b-9u9gcmqnqe] {
        display: flex;
        flex-direction: column;
        gap: 0;
        padding: 4px 16px;
    }

    .nk-summe-op[b-9u9gcmqnqe],
    .nk-summe-trenner[b-9u9gcmqnqe] {
        display: none;
    }

    .nk-summe-seg[b-9u9gcmqnqe] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "label value"
            "sub   sub";
        align-items: center;
        column-gap: 12px;
        row-gap: 3px;
        padding: 10px 0;
    }

    .nk-summe-seg + .nk-summe-seg[b-9u9gcmqnqe] {
        border-top: 1px solid #f0f0f2;
    }

    .nk-summe-seg.nk-summe-seg--db[b-9u9gcmqnqe] {
        border-top: 3px double #16181c;
    }

    .nk-summe-seg--stunden[b-9u9gcmqnqe] {
        grid-column: auto;
    }

    .nk-summe-label[b-9u9gcmqnqe] {
        grid-area: label;
    }

    .nk-summe-value[b-9u9gcmqnqe] {
        grid-area: value;
        justify-self: end;
        text-align: right;
        font-size: 1.15rem;
    }

    .nk-summe-value--db[b-9u9gcmqnqe] {
        font-size: 1.35rem;
    }

    .nk-summe-sub[b-9u9gcmqnqe],
    .nk-summe-teilliste[b-9u9gcmqnqe] {
        grid-area: sub;
        max-width: none;
    }

    .nk-bar-row[b-9u9gcmqnqe] {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .nk-bar-diff[b-9u9gcmqnqe] {
        text-align: left;
    }

    /* Kosten-Zeile zweizeilig: oben Beschreibung + Aktionen, unten Datum/Art/Betrag.
       Die Art-Spalte ist auch hier gedeckelt, damit ein langer Art-Name nicht das Datum
       aus der Zeile drückt — gekürzt wird mit „…" (voller Name im title). */
    .nk-kosten-row[b-9u9gcmqnqe] {
        grid-template-columns: minmax(0, 1fr) fit-content(9rem) auto;
        grid-template-areas:
            "text text actions"
            "datum art betrag";
        gap: 4px 10px;
    }

    .nk-kosten-text[b-9u9gcmqnqe] {
        grid-area: text;
        white-space: normal;
    }

    .nk-kosten-datum[b-9u9gcmqnqe] { grid-area: datum; }
    .nk-kosten-art[b-9u9gcmqnqe] { grid-area: art; }
    .nk-kosten-betrag[b-9u9gcmqnqe] { grid-area: betrag; }
    .nk-kosten-actions[b-9u9gcmqnqe] { grid-area: actions; }
}

/* --------------------------------------------------------------
   Veröffentlichen: Rückfrage (bestätigend, nicht warnend)
-------------------------------------------------------------- */
.crm-publish-icon[b-9u9gcmqnqe] {
    background: var(--modal-success-soft);
    color: var(--modal-success);
}

.crm-publish-summe[b-9u9gcmqnqe] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin: 10px 0 2px;
    padding: 10px 12px;
    border: 1px solid var(--modal-line);
    border-radius: 10px;
    background: var(--modal-panel-soft);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--modal-faint);
}

.crm-publish-summe strong[b-9u9gcmqnqe] {
    font-size: 16px;
    font-weight: 800;
    color: var(--modal-text);
    font-variant-numeric: tabular-nums;
}

.btn-publish[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    justify-content: center;
    min-height: 38px;
    padding: 0 16px;
    border: 1px solid var(--modal-accent);
    border-radius: 999px;
    background: var(--modal-accent);
    color: #fff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

@media (hover: hover) {
    .btn-publish:hover[b-9u9gcmqnqe] {
        opacity: 0.9;
    }
}

/* --------------------------------------------------------------
   Neues Angebot: leer oder aus einem bestehenden
-------------------------------------------------------------- */
.start-wahl[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.start-karte[b-9u9gcmqnqe] {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 13px 14px;
    border: 1px solid var(--modal-line);
    border-radius: 12px;
    background: var(--modal-panel);
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}

@media (hover: hover) {
    .start-karte:hover[b-9u9gcmqnqe] {
        border-color: var(--modal-accent);
        background: var(--modal-panel-soft);
    }
}

.start-karte-ico[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--modal-accent-soft);
    color: var(--modal-text);
}

.start-karte-text[b-9u9gcmqnqe] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.start-karte-text strong[b-9u9gcmqnqe] {
    font-size: 13.5px;
    font-weight: 800;
    color: var(--modal-text);
}

.start-karte-text span[b-9u9gcmqnqe] {
    font-size: 12px;
    font-weight: 600;
    color: var(--modal-faint);
}

/* Zurück im Kopf des Anlege-Dialogs (Titel-Schritt → vorheriger Schritt) */
.form-modal-back[b-9u9gcmqnqe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 1px solid var(--modal-line);
    border-radius: 999px;
    background: var(--modal-panel);
    color: var(--modal-text);
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

@media (hover: hover) {
    .form-modal-back:hover[b-9u9gcmqnqe] {
        background: var(--modal-panel-soft);
        border-color: var(--modal-line-strong);
    }
}

/* Titel + Zusatzzeile („7 Positionen übernommen · Summe") */
.form-modal-title-group[b-9u9gcmqnqe] {
    display: flex;
    flex: 1;
    min-width: 0;
    flex-direction: column;
    gap: 1px;
}

.form-modal-title-group .form-modal-title[b-9u9gcmqnqe] {
    flex: none;
}

.form-modal-subtitle[b-9u9gcmqnqe] {
    color: var(--modal-faint);
    font-size: 12px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Pages/Calendar/Calendar.razor.rz.scp.css */
.calendar-page[b-zku8ulalvl],
:root[b-zku8ulalvl] {
    --calendar-z-cell-overlay: 2;
    --calendar-z-appointment: 6;
    --calendar-z-header: 30;
    --calendar-z-now-marker: 40;
    --calendar-z-top-mask: 60;
    --calendar-z-now-label: 65;
    --calendar-z-first-column: 50;
    --calendar-z-first-column-control: 55;
    --calendar-z-first-column-header: 70;
    --calendar-z-control-popover-context: 2302;
    --calendar-z-appointment-panel: 2400;
    --calendar-z-jobsite-panel: 2401;
    --calendar-z-jobsite-menu-backdrop: 2402;
    --calendar-z-jobsite-menu: 2403;
}

/* --jobsite-panel-w / --appt-modal-docked-w / --appt-docked-h stehen GLOBAL in
   wwwroot/app.css :root – Modal + Panel hängen am <body>, ein scoped :root hier
   würde sie NICHT erreichen (Panel wäre dann falsch positioniert/unsichtbar). */

.calendar-page[b-zku8ulalvl] {
    --cal-bg: #f5f5f7;
    --cal-surface: #ffffff;
    --cal-panel: #efeff1;
    --cal-panel-strong: #e7e7ea;
    --cal-line: #e4e4e7;
    --cal-line-soft: #ededf0;
    --cal-text: #16181c;
    --cal-muted: #80858d;
    --cal-accent: #16181c;
    --cal-accent-strong: #16181c;
    --cal-accent-soft: #efeff1;
    --cal-current: #16181c;
    --cal-current-soft: #efeff1;
    --cal-weekend: #e8e8ec;
    --cal-weekend-text: #80858d;
    height: calc(100dvh - var(--app-header-h));
    min-height: 0;
    display: flex;
    /* Zeile statt Spalte: rechts kann das Termin-Panel andocken — der Kalender
       (.calendar-board) staucht sich dann, statt verdeckt zu werden. */
    flex-direction: row;
    overflow: hidden;
    color: var(--cal-text);
    background: var(--cal-bg);
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* Vollbild-Modus (Büro-Monitor): die App-Kopfzeile ist nicht gerendert — der Kalender
   bekommt ihre Höhe dazu. Ein aktives Ankündigungs-Banner (AdminChrome) bleibt im Fluss
   darüber und wird abgezogen. --app-safe-top (Notch/Statusleiste der Standalone-PWA)
   absorbiert sonst der Header — ohne ihn muss die Seite selbst Platz lassen, sonst
   liegt die Toolbar unter der Statusleiste. (Bei aktivem Banner ist --app-safe-top 0,
   der Inset steckt dann im Banner — die Formel stimmt in beiden Fällen.) */
.calendar-page--fullscreen[b-zku8ulalvl] {
    height: calc(100dvh - var(--app-banner-h, 0px) - var(--app-safe-top, 0px));
    padding-top: var(--app-safe-top, 0px);
}

/* Losgelöste, am Body hängende Panels (außerhalb von .calendar-page) auf die
   gleiche UI-Schrift wie der Header bringen. */
.calendar-appointment-preview[b-zku8ulalvl],
.calendar-absence-preview[b-zku8ulalvl],
.calendar-context-menu[b-zku8ulalvl],
.calendar-day-note-popover[b-zku8ulalvl],
.calendar-delete-modal-shell[b-zku8ulalvl],
.calendar-copy-modal-shell[b-zku8ulalvl] {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* Schmale Scrollbar überall auf der Kalenderseite — Board, Termin-Panel, Listen,
   auch in eingebetteten Komponenten (Notiz-Editor, Chat, Datums-Popups). ::deep
   erreicht als attributloser Nachfahren-Selektor JEDES Element unter .calendar-page.
   Die losgelösten Popover (Kontextmenü, Vorschau …) hängen AUSSERHALB davon am Body
   und brauchen dieselbe Regel eigens — sonst zeigen sie die dicke System-Scrollbar. */
.calendar-page[b-zku8ulalvl]  *,
.calendar-context-menu[b-zku8ulalvl]  *,
.calendar-appointment-preview[b-zku8ulalvl]  *,
.calendar-absence-preview[b-zku8ulalvl]  *,
.calendar-day-note-popover[b-zku8ulalvl]  *,
.calendar-delete-modal-shell[b-zku8ulalvl]  *,
.calendar-copy-modal-shell[b-zku8ulalvl]  * {
    scrollbar-width: thin;
    scrollbar-color: #e4e4e7 transparent;
}

.calendar-page[b-zku8ulalvl]  *::-webkit-scrollbar,
.calendar-context-menu[b-zku8ulalvl]  *::-webkit-scrollbar,
.calendar-appointment-preview[b-zku8ulalvl]  *::-webkit-scrollbar,
.calendar-absence-preview[b-zku8ulalvl]  *::-webkit-scrollbar,
.calendar-day-note-popover[b-zku8ulalvl]  *::-webkit-scrollbar,
.calendar-delete-modal-shell[b-zku8ulalvl]  *::-webkit-scrollbar,
.calendar-copy-modal-shell[b-zku8ulalvl]  *::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.calendar-page[b-zku8ulalvl]  *::-webkit-scrollbar-thumb,
.calendar-context-menu[b-zku8ulalvl]  *::-webkit-scrollbar-thumb,
.calendar-appointment-preview[b-zku8ulalvl]  *::-webkit-scrollbar-thumb,
.calendar-absence-preview[b-zku8ulalvl]  *::-webkit-scrollbar-thumb,
.calendar-day-note-popover[b-zku8ulalvl]  *::-webkit-scrollbar-thumb,
.calendar-delete-modal-shell[b-zku8ulalvl]  *::-webkit-scrollbar-thumb,
.calendar-copy-modal-shell[b-zku8ulalvl]  *::-webkit-scrollbar-thumb {
    border-radius: 8px;
    background: #e4e4e7;
}

.calendar-page[b-zku8ulalvl]  *::-webkit-scrollbar-track,
.calendar-context-menu[b-zku8ulalvl]  *::-webkit-scrollbar-track,
.calendar-appointment-preview[b-zku8ulalvl]  *::-webkit-scrollbar-track,
.calendar-absence-preview[b-zku8ulalvl]  *::-webkit-scrollbar-track,
.calendar-day-note-popover[b-zku8ulalvl]  *::-webkit-scrollbar-track,
.calendar-delete-modal-shell[b-zku8ulalvl]  *::-webkit-scrollbar-track,
.calendar-copy-modal-shell[b-zku8ulalvl]  *::-webkit-scrollbar-track {
    background: transparent;
}

.calendar-delete-modal-layer[b-zku8ulalvl] {
    position: fixed;
    inset: 0;
    /* Über dem Termin-Modal (.calendar-appointment-overlay = 2400), aus dem heraus der
       Löschen-Dialog geöffnet wird – sonst geht er im Hintergrund auf. */
    z-index: 2500;
    display: grid;
    place-items: center;
    padding: 18px;
}

.calendar-delete-modal-backdrop[b-zku8ulalvl] {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(15, 23, 42, 0.16);
    backdrop-filter: blur(2px);
    cursor: default;
}

.calendar-delete-modal-shell[b-zku8ulalvl] {
    position: relative;
    width: min(390px, calc(100vw - 28px));
    border: 1px solid rgba(203, 213, 225, 0.82);
    border-radius: 18px;
    padding: 0;
    background: #ffffff;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.18);
    animation: calendar-delete-modal-in-b-zku8ulalvl 240ms cubic-bezier(0.32, 0.72, 0, 1) both;
}

.calendar-delete-modal-core[b-zku8ulalvl] {
    display: flex;
    flex-direction: column;
    gap: 13px;
    border-radius: 18px;
    padding: 16px;
    color: #172033;
    background: #ffffff;
    box-shadow: none;
}

.calendar-delete-modal-head[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.calendar-delete-modal-close[b-zku8ulalvl],
.calendar-delete-modal-cancel[b-zku8ulalvl],
.calendar-delete-modal-confirm[b-zku8ulalvl] {
    border: 0;
    font: inherit;
    cursor: pointer;
    transition:
        transform 260ms cubic-bezier(0.32, 0.72, 0, 1),
        box-shadow 260ms cubic-bezier(0.32, 0.72, 0, 1),
        background 260ms cubic-bezier(0.32, 0.72, 0, 1);
}

.calendar-delete-modal-close[b-zku8ulalvl] {
    width: 30px;
    height: 30px;
    display: inline-grid;
    place-items: center;
    border-radius: 9px;
    color: #3c4148;
    background: transparent;
}

.calendar-delete-modal-close:focus-visible[b-zku8ulalvl] {
    color: #16181c;
    background: #efeff1;
    outline: none;
    transform: translateY(-1px);
}

@media (hover: hover) {
    .calendar-delete-modal-close:hover[b-zku8ulalvl] {
        color: #16181c;
        background: #efeff1;
        outline: none;
        transform: translateY(-1px);
    }
}

.calendar-delete-modal-icon[b-zku8ulalvl] {
    display: none;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 12px;
    color: #9f1239;
    background: #fff1f2;
    box-shadow: none;
}

.calendar-delete-modal-head h2[b-zku8ulalvl] {
    margin: 0;
    color: #16181c;
    font-size: 1.08rem;
    line-height: 1.22;
    font-weight: 900;
    text-wrap: balance;
}

.calendar-delete-modal-summary[b-zku8ulalvl] {
    display: grid;
    gap: 3px;
    border: 1px solid rgba(226, 232, 240, 0.88);
    border-radius: 12px;
    padding: 10px 12px;
    background: #f5f5f7;
}

.calendar-delete-modal-summary span[b-zku8ulalvl] {
    color: #94a3b8;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.calendar-delete-modal-summary strong[b-zku8ulalvl] {
    min-width: 0;
    color: #172033;
    overflow-wrap: anywhere;
    font-size: 0.88rem;
    line-height: 1.25;
    font-weight: 850;
}

.calendar-delete-modal-summary small[b-zku8ulalvl] {
    color: #80858d;
    font-size: 0.74rem;
    font-weight: 700;
}

.calendar-delete-modal-actions[b-zku8ulalvl] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
}

.calendar-delete-modal-cancel[b-zku8ulalvl],
.calendar-delete-modal-confirm[b-zku8ulalvl] {
    min-height: 36px;
    border-radius: 10px;
    padding: 0 12px;
    font-size: 0.82rem;
    font-weight: 850;
}

.calendar-delete-modal-cancel[b-zku8ulalvl] {
    color: #3c4148;
    background: #efeff1;
}

.calendar-delete-modal-confirm[b-zku8ulalvl] {
    color: #ffffff;
    background: #b4232d;
    box-shadow: 0 8px 18px rgba(180, 35, 45, 0.18);
}

.calendar-delete-modal-cancel:focus-visible[b-zku8ulalvl],
.calendar-delete-modal-confirm:focus-visible[b-zku8ulalvl] {
    outline: none;
    transform: translateY(-1px);
}

@media (hover: hover) {
    .calendar-delete-modal-cancel:hover[b-zku8ulalvl],
    .calendar-delete-modal-confirm:hover[b-zku8ulalvl] {
        outline: none;
        transform: translateY(-1px);
    }
}

.calendar-delete-modal-confirm:focus-visible[b-zku8ulalvl] {
    box-shadow: 0 10px 22px rgba(180, 35, 45, 0.22);
}

@media (hover: hover) {
    .calendar-delete-modal-confirm:hover[b-zku8ulalvl] {
        box-shadow: 0 10px 22px rgba(180, 35, 45, 0.22);
    }
}

.calendar-delete-modal-cancel:active[b-zku8ulalvl],
.calendar-delete-modal-confirm:active[b-zku8ulalvl],
.calendar-delete-modal-close:active[b-zku8ulalvl] {
    transform: scale(0.98);
}

@keyframes calendar-delete-modal-in-b-zku8ulalvl {
    from {
        opacity: 0;
        transform: translateY(8px) scale(0.985);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (max-width: 540px) {
    .calendar-delete-modal-layer[b-zku8ulalvl] {
        align-items: end;
        padding: 10px;
    }

    .calendar-delete-modal-shell[b-zku8ulalvl] {
        width: 100%;
        border-radius: 16px;
    }

    .calendar-delete-modal-core[b-zku8ulalvl] {
        border-radius: 16px;
        padding: 14px;
    }

    .calendar-delete-modal-actions[b-zku8ulalvl] {
        grid-template-columns: 1fr;
    }
}

/* Schwebender Aktionsknopf „Termin anlegen" — ersetzt die entfernte Toolbar. Schwebt unten
   rechts über der Kalenderfläche, nimmt keinen Layout-Platz weg und ist immer erreichbar.
   Wird beim Bearbeiten ausgeblendet (dann liegt rechts die Termin-Sidebar). */
.calendar-fab[b-zku8ulalvl] {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1200;
    width: 56px;
    height: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 0;
    color: #ffffff;
    background: #16181c;
    cursor: pointer;
    box-shadow: 0 14px 30px -10px rgba(22, 24, 28, 0.5), 0 4px 10px -6px rgba(22, 24, 28, 0.34);
    transition: background 0.16s, transform 0.12s, box-shadow 0.16s;
}

.calendar-fab:focus-visible[b-zku8ulalvl] {
    background: #26282e;
    transform: translateY(-2px);
    box-shadow: 0 18px 38px -10px rgba(22, 24, 28, 0.55), 0 6px 12px -6px rgba(22, 24, 28, 0.4);
    outline: none;
}

@media (hover: hover) {
    .calendar-fab:hover[b-zku8ulalvl] {
        background: #26282e;
        transform: translateY(-2px);
        box-shadow: 0 18px 38px -10px rgba(22, 24, 28, 0.55), 0 6px 12px -6px rgba(22, 24, 28, 0.4);
        outline: none;
    }
}

.calendar-fab:active[b-zku8ulalvl] {
    transform: translateY(0);
}

.calendar-fab svg[b-zku8ulalvl] {
    width: 24px;
    height: 24px;
}

.calendar-range-controls[b-zku8ulalvl],
.calendar-view-switch[b-zku8ulalvl] {
    height: 38px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border: 1px solid var(--cal-line);
    border-radius: 8px;
    padding: 3px;
    background: var(--cal-surface);
}

.calendar-view-switch[b-zku8ulalvl] {
    gap: 2px;
    padding: 4px;
}

.calendar-icon-btn[b-zku8ulalvl],
.calendar-today-btn[b-zku8ulalvl],
.calendar-view-btn[b-zku8ulalvl] {
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 6px;
    color: var(--cal-text);
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 0.83rem;
    font-weight: 850;
    white-space: nowrap;
    transition: background 0.16s, color 0.16s, box-shadow 0.16s;
}

.calendar-icon-btn[b-zku8ulalvl] {
    width: 30px;
    padding: 0;
}

.calendar-today-btn[b-zku8ulalvl] {
    gap: 7px;
    padding: 0 11px;
    min-width: 126px;
}

.calendar-today-btn--open[b-zku8ulalvl] {
    color: var(--cal-accent);
    background: var(--cal-accent-soft);
}

@media (hover: hover) {
    .calendar-today-btn:hover[b-zku8ulalvl] {
        color: var(--cal-accent);
        background: var(--cal-accent-soft);
    }
}

.calendar-today-btn--open[b-zku8ulalvl] {
    box-shadow: inset 0 0 0 1px rgba(22, 24, 28, 0.22);
}

.calendar-view-btn[b-zku8ulalvl] {
    min-width: 68px;
    padding: 0 10px;
    border-radius: 8px;
    color: #3c4148;
    font-size: 0.78rem;
    letter-spacing: 0;
}

@media (hover: hover) {
    .calendar-icon-btn:hover[b-zku8ulalvl],
    .calendar-view-btn:hover[b-zku8ulalvl] {
        color: var(--cal-accent);
        background: var(--cal-accent-soft);
    }
}

.calendar-view-btn--active[b-zku8ulalvl] {
    color: #ffffff;
    background: #16181c;
    box-shadow: none;
}

@media (hover: hover) {
    .calendar-view-btn--active:hover[b-zku8ulalvl] {
        color: white;
        background: #16181c;
    }
}

.calendar-edit-toggle[b-zku8ulalvl] {
    height: 38px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--cal-line);
    border-radius: 8px;
    padding: 0 11px 0 9px;
    color: var(--cal-muted);
    background: var(--cal-surface);
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 900;
    white-space: nowrap;
    transition: background 0.16s, border-color 0.16s, color 0.16s, box-shadow 0.16s;
}

.calendar-edit-toggle input[b-zku8ulalvl] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.calendar-edit-toggle-box[b-zku8ulalvl] {
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 1px solid #c5c8cd;
    border-radius: 4px;
    background: #ffffff;
    box-shadow: inset 0 1px 1px rgba(22, 24, 28, 0.05);
}

.calendar-edit-toggle-box[b-zku8ulalvl]::before {
    content: "";
    width: 8px;
    height: 5px;
    border-bottom: 2px solid #ffffff;
    border-left: 2px solid #ffffff;
    opacity: 0;
    transform: rotate(-45deg) translate(1px, -1px);
}

.calendar-edit-toggle:focus-within[b-zku8ulalvl] {
    color: var(--cal-accent);
    border-color: rgba(22, 24, 28, 0.34);
    background: var(--cal-accent-soft);
}

@media (hover: hover) {
    .calendar-edit-toggle:hover[b-zku8ulalvl] {
        color: var(--cal-accent);
        border-color: rgba(22, 24, 28, 0.34);
        background: var(--cal-accent-soft);
    }
}

.calendar-edit-toggle--active[b-zku8ulalvl] {
    color: #16181c;
    border-color: rgba(22, 24, 28, 0.38);
    background: #efeff1;
    box-shadow: inset 0 0 0 1px rgba(22, 24, 28, 0.08);
}

.calendar-edit-toggle--active .calendar-edit-toggle-box[b-zku8ulalvl] {
    border-color: #16181c;
    background: #16181c;
}

.calendar-edit-toggle--active .calendar-edit-toggle-box[b-zku8ulalvl]::before {
    opacity: 1;
}

.calendar-view-settings[b-zku8ulalvl] {
    position: relative;
    flex: 1;
    min-width: 0;
}

.calendar-view-settings-trigger[b-zku8ulalvl] {
    width: 100%;
    min-width: 0;
    height: 28px;
    display: grid;
    grid-template-columns: auto auto;
    grid-template-rows: 1fr 1fr;
    align-items: center;
    justify-content: center;
    column-gap: 5px;
    border: none;
    border-radius: 6px;
    padding: 0;
    color: var(--cal-text);
    background: transparent;
    cursor: pointer;
    font: inherit;
    text-align: center;
    transition: background 0.16s ease;
}

.calendar-view-settings-trigger--open[b-zku8ulalvl] {
    background: #efeff1;
}

@media (hover: hover) {
    .calendar-view-settings-trigger:hover[b-zku8ulalvl] {
        background: #efeff1;
    }
}

.calendar-view-settings-trigger span[b-zku8ulalvl],
.calendar-view-settings-trigger strong[b-zku8ulalvl] {
    min-width: 0;
    padding: 0;
    overflow: hidden;
    border-radius: 0;
    color: inherit;
    background: transparent;
    font-weight: 900;
    letter-spacing: 0;
    text-align: center;
    text-overflow: ellipsis;
    text-transform: none;
    white-space: nowrap;
}

.calendar-view-settings-trigger span[b-zku8ulalvl] {
    font-size: 0.68rem;
    font-weight: 850;
    line-height: 1.1;
}

.calendar-view-settings-trigger strong[b-zku8ulalvl] {
    grid-column: 1;
    color: var(--cal-muted);
    font-size: 0.6rem;
    font-weight: 800;
    line-height: 1.1;
}

.calendar-view-settings-trigger svg[b-zku8ulalvl] {
    grid-column: 2;
    grid-row: 1 / span 2;
    color: var(--cal-muted);
    transition: transform 0.18s cubic-bezier(0.32, 0.72, 0, 1);
}

.calendar-view-settings-trigger--open svg[b-zku8ulalvl] {
    transform: rotate(180deg);
}

.calendar-view-settings-popover[b-zku8ulalvl] {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    z-index: 2301;
    width: min(190px, calc(100vw - 28px));
    display: grid;
    gap: 8px;
    border: 1px solid var(--cal-line);
    border-radius: 16px;
    padding: 8px;
    background: #ffffff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
}

.calendar-view-settings-popover[b-zku8ulalvl]::before {
    content: "";
    position: absolute;
    top: -7px;
    left: 22px;
    width: 12px;
    height: 12px;
    border-top: 1px solid var(--cal-line);
    border-left: 1px solid var(--cal-line);
    background: #ffffff;
    pointer-events: none;
    transform: rotate(45deg);
}

.calendar-view-settings-popover .calendar-view-switch[b-zku8ulalvl] {
    width: 100%;
    height: auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 3px;
    border: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.calendar-view-settings-popover .calendar-view-btn[b-zku8ulalvl] {
    width: 100%;
    justify-content: flex-start;
    min-width: 0;
}

.calendar-view-settings-popover .calendar-edit-toggle[b-zku8ulalvl] {
    width: 100%;
    justify-content: flex-start;
}

.calendar-date-picker-wrap[b-zku8ulalvl] {
    position: relative;
    display: inline-flex;
}

.calendar-date-picker[b-zku8ulalvl] {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    z-index: 2301;
    width: min(320px, calc(100vw - 28px));
    max-width: calc(100vw - 28px);
    max-height: min(660px, calc(100vh - 116px));
    display: flex;
    flex-direction: column;
    overflow: visible;
    border: 1px solid var(--cal-line);
    border-radius: 12px;
    background: var(--cal-surface);
    box-shadow: 0 24px 70px rgba(22, 32, 42, 0.2), 0 8px 22px rgba(22, 32, 42, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.calendar-week-corner .calendar-date-picker[b-zku8ulalvl] {
    right: auto;
    left: 0;
}

.calendar-picker-header[b-zku8ulalvl] {
    min-height: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid var(--cal-line-soft);
    border-radius: 12px 12px 0 0;
    padding: 8px;
    background: var(--cal-surface);
}

.calendar-picker-nav[b-zku8ulalvl] {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) 34px;
    align-items: center;
    gap: 8px;
}

.calendar-picker-icon-btn[b-zku8ulalvl] {
    position: relative;
    z-index: 25;
    width: 26px;
    height: 26px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--cal-line);
    border-radius: 999px;
    color: var(--cal-text);
    background: var(--cal-surface);
    cursor: pointer;
    transition: background 0.16s, color 0.16s;
}

@media (hover: hover) {
    .calendar-picker-icon-btn:hover[b-zku8ulalvl] {
        color: var(--cal-accent);
        background: var(--cal-accent-soft);
    }
}

.calendar-picker-icon-btn:focus-visible[b-zku8ulalvl] {
    outline: 2px solid rgba(22, 24, 28, 0.28);
    outline-offset: 2px;
}

.calendar-picker-icon-btn:active[b-zku8ulalvl] {
    transform: translateY(1px);
}

.calendar-picker-title[b-zku8ulalvl] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.calendar-picker-title span[b-zku8ulalvl] {
    color: var(--cal-muted);
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.calendar-picker-shortcuts[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 0;
}

.calendar-picker-title strong[b-zku8ulalvl],
.calendar-picker-title-main[b-zku8ulalvl] {
    color: var(--cal-text);
    font-size: 1.18rem;
    font-weight: 950;
    line-height: 1;
    animation: calendar-picker-in-b-zku8ulalvl 0.12s ease-out;
}

.calendar-picker-title-main[b-zku8ulalvl] {
    border: 0;
    border-radius: 8px;
    padding: 5px 10px;
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 1.18rem;
    font-weight: 950;
    line-height: 1;
    transition: background 0.16s cubic-bezier(0.32, 0.72, 0, 1), color 0.16s cubic-bezier(0.32, 0.72, 0, 1), transform 0.16s cubic-bezier(0.32, 0.72, 0, 1);
}

.calendar-picker-title-main:focus-visible[b-zku8ulalvl] {
    color: var(--cal-accent);
    background: var(--cal-accent-soft);
    outline: none;
}

@media (hover: hover) {
    .calendar-picker-title-main:hover[b-zku8ulalvl] {
        color: var(--cal-accent);
        background: var(--cal-accent-soft);
        outline: none;
    }
}

.calendar-picker-title-main:active[b-zku8ulalvl] {
    transform: translateY(1px);
}

.calendar-picker-title-actions[b-zku8ulalvl] {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    animation: calendar-picker-in-b-zku8ulalvl 0.12s ease-out;
}

.calendar-picker-title-btn[b-zku8ulalvl] {
    min-width: 0;
    max-width: 150px;
    height: 28px;
    border: 0;
    border-radius: 8px;
    padding: 0 9px;
    overflow: hidden;
    color: var(--cal-text);
    background: rgba(255, 255, 255, 0.72);
    cursor: pointer;
    font: inherit;
    font-size: 0.92rem;
    font-weight: 950;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
    box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.26);
    transition: background 0.16s cubic-bezier(0.32, 0.72, 0, 1), color 0.16s cubic-bezier(0.32, 0.72, 0, 1), transform 0.16s cubic-bezier(0.32, 0.72, 0, 1);
}

.calendar-picker-title-btn--year[b-zku8ulalvl] {
    max-width: 76px;
    font-variant-numeric: tabular-nums;
}

.calendar-picker-title-btn:focus-visible[b-zku8ulalvl] {
    color: var(--cal-accent);
    background: var(--cal-accent-soft);
    outline: none;
}

@media (hover: hover) {
    .calendar-picker-title-btn:hover[b-zku8ulalvl] {
        color: var(--cal-accent);
        background: var(--cal-accent-soft);
        outline: none;
    }
}

.calendar-picker-title-btn:active[b-zku8ulalvl] {
    transform: translateY(1px);
}

.calendar-picker-month[b-zku8ulalvl] {
    min-width: 0;
    overflow-y: auto;
    padding: 9px 10px 10px;
    overflow: visible;
    border-radius: 0 0 12px 12px;
    background: var(--cal-surface);
}

@keyframes calendar-picker-in-b-zku8ulalvl {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.calendar-picker-level-actions[b-zku8ulalvl] {
    display: none;
}

.calendar-picker-level-btn[b-zku8ulalvl] {
    height: 27px;
    border: none;
    border-radius: 999px;
    padding: 0 11px;
    color: var(--cal-text);
    background: rgba(255, 255, 255, 0.64);
    cursor: pointer;
    font: inherit;
    font-size: 0.73rem;
    font-weight: 900;
    white-space: nowrap;
    box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.24);
    transition: background 0.16s cubic-bezier(0.32, 0.72, 0, 1), color 0.16s cubic-bezier(0.32, 0.72, 0, 1), transform 0.16s cubic-bezier(0.32, 0.72, 0, 1);
}

.calendar-picker-level-btn--left[b-zku8ulalvl] {
    grid-column: 1;
    justify-self: start;
}

.calendar-picker-level-btn--center[b-zku8ulalvl] {
    grid-column: 2;
    justify-self: center;
}

.calendar-picker-level-btn--right[b-zku8ulalvl] {
    grid-column: 3;
    justify-self: end;
}

@media (hover: hover) {
    .calendar-picker-level-btn:hover[b-zku8ulalvl] {
        color: var(--cal-text);
        background: #ffffff;
    }
}

.calendar-picker-level-btn--primary[b-zku8ulalvl] {
    color: #ffffff;
    background: #16181c;
    box-shadow: 0 7px 14px rgba(22, 24, 28, 0.18);
}

@media (hover: hover) {
    .calendar-picker-level-btn--primary:hover[b-zku8ulalvl] {
        color: #ffffff;
        background: #16181c;
    }
}

.calendar-picker-level-btn:focus-visible[b-zku8ulalvl] {
    outline: 2px solid rgba(22, 24, 28, 0.28);
    outline-offset: 2px;
}

.calendar-picker-level-btn:active[b-zku8ulalvl] {
    transform: translateY(1px);
}

.calendar-picker-weekdays[b-zku8ulalvl],
.calendar-picker-week-row[b-zku8ulalvl],
.calendar-picker-week-button[b-zku8ulalvl] {
    display: grid;
    grid-template-columns: 44px repeat(7, minmax(0, 1fr));
    align-items: center;
}

.calendar-picker-weekdays[b-zku8ulalvl] {
    min-height: 26px;
    border-bottom: 1px solid var(--cal-line-soft);
    color: var(--cal-muted);
    background: var(--cal-surface);
    font-size: 0.64rem;
    font-weight: 950;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-align: center;
}

.calendar-picker-weeks[b-zku8ulalvl] {
    padding: 5px 0 0;
}

.calendar-picker-week-row[b-zku8ulalvl],
.calendar-picker-week-button[b-zku8ulalvl] {
    min-height: 32px;
    border-radius: 8px;
}

.calendar-picker-week-button[b-zku8ulalvl] {
    width: 100%;
    border: none;
    padding: 0;
    color: inherit;
    background: transparent;
    cursor: pointer;
    font: inherit;
    transition: background 0.16s cubic-bezier(0.32, 0.72, 0, 1), box-shadow 0.16s cubic-bezier(0.32, 0.72, 0, 1), color 0.16s cubic-bezier(0.32, 0.72, 0, 1), transform 0.16s cubic-bezier(0.32, 0.72, 0, 1);
}

@media (hover: hover) {
    .calendar-picker-week-button:hover[b-zku8ulalvl] {
        color: var(--cal-text);
        background: #eef2f7;
        box-shadow: none;
    }
}

.calendar-picker-week-button:active[b-zku8ulalvl] {
    transform: translateY(1px);
}

@media (hover: hover) {
    .calendar-picker-week-button:hover .calendar-picker-day--span[b-zku8ulalvl] {
        color: var(--cal-text);
        background: transparent;
    }
}

.calendar-picker-week-button--selected[b-zku8ulalvl] {
    color: #ffffff;
    background: #16181c;
    box-shadow: none;
}

.calendar-picker-week-button--selected .calendar-picker-kw[b-zku8ulalvl],
.calendar-picker-week-button--selected .calendar-picker-day--span[b-zku8ulalvl] {
    color: #ffffff;
}

.calendar-picker-week-button--selected .calendar-picker-day--span[b-zku8ulalvl] {
    background: transparent;
}

.calendar-picker-week-button--today:not(.calendar-picker-week-button--selected) .calendar-picker-kw[b-zku8ulalvl] {
    color: var(--cal-current);
}

.calendar-picker-kw[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    height: 25px;
    margin: 0 4px 0 0;
    border-radius: 7px;
    color: var(--cal-muted);
    font-size: 0.62rem;
    font-weight: 950;
    line-height: 1;
    white-space: nowrap;
}

.calendar-picker-day[b-zku8ulalvl] {
    position: relative;
    height: 25px;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: center;
    width: 25px;
    border: none;
    border-radius: 7px;
    color: var(--cal-text);
    background: transparent;
    font: inherit;
    font-size: 0.74rem;
    font-weight: 850;
    cursor: pointer;
    transition: background 0.16s cubic-bezier(0.32, 0.72, 0, 1), color 0.16s cubic-bezier(0.32, 0.72, 0, 1), box-shadow 0.16s cubic-bezier(0.32, 0.72, 0, 1), transform 0.16s cubic-bezier(0.32, 0.72, 0, 1);
}

@media (hover: hover) {
    button.calendar-picker-day:hover[b-zku8ulalvl] {
        color: var(--cal-text);
        box-shadow: inset 0 0 0 1.5px #16181c;
    }
}

.calendar-picker-day:active[b-zku8ulalvl] {
    transform: translateY(1px);
}

.calendar-picker-day--outside[b-zku8ulalvl] {
    color: #94a3b8;
    background: rgba(241, 245, 249, 0.42);
}

.calendar-picker-day--today:not(.calendar-picker-day--selected)[b-zku8ulalvl] {
    color: var(--cal-current);
    box-shadow: inset 0 0 0 1px rgba(71, 85, 105, 0.3);
}

.calendar-picker-day--selected[b-zku8ulalvl] {
    color: var(--cal-text);
    background: #e4e4e7;
    box-shadow: none;
}

.calendar-picker-week-button--selected .calendar-picker-day--selected[b-zku8ulalvl] {
    background: transparent;
}

.calendar-picker-month-select[b-zku8ulalvl],
.calendar-picker-year-select[b-zku8ulalvl] {
    display: grid;
    gap: 7px;
    padding: 10px;
    background: var(--cal-bg);
}

.calendar-picker-month-select[b-zku8ulalvl] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.calendar-picker-year-select[b-zku8ulalvl] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.calendar-picker-month-btn[b-zku8ulalvl],
.calendar-picker-year-btn[b-zku8ulalvl] {
    min-height: 52px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 4px;
    border: none;
    border-radius: 9px;
    padding: 8px 9px;
    color: var(--cal-text);
    background: var(--cal-surface);
    cursor: pointer;
    font: inherit;
    text-align: left;
    transition: background 0.16s cubic-bezier(0.32, 0.72, 0, 1), color 0.16s cubic-bezier(0.32, 0.72, 0, 1), transform 0.16s cubic-bezier(0.32, 0.72, 0, 1);
}

.calendar-picker-month-btn span[b-zku8ulalvl] {
    color: var(--cal-muted);
    font-size: 0.66rem;
    font-weight: 950;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.calendar-picker-month-btn strong[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    width: 100%;
    color: inherit;
    font-size: 0.82rem;
    font-weight: 950;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-picker-year-btn[b-zku8ulalvl] {
    align-items: center;
    min-height: 50px;
    color: var(--cal-text);
    font-size: 0.95rem;
    font-weight: 950;
    text-align: center;
}

@media (hover: hover) {
    .calendar-picker-month-btn:hover[b-zku8ulalvl],
    .calendar-picker-year-btn:hover[b-zku8ulalvl] {
        color: var(--cal-text);
        background: #eef2f7;
    }
}

.calendar-picker-month-btn:active[b-zku8ulalvl],
.calendar-picker-year-btn:active[b-zku8ulalvl] {
    transform: translateY(1px);
}

.calendar-picker-month-btn--today[b-zku8ulalvl],
.calendar-picker-year-btn--today[b-zku8ulalvl] {
    color: var(--cal-current);
    box-shadow: none;
}

.calendar-picker-month-btn--selected[b-zku8ulalvl],
.calendar-picker-year-btn--selected[b-zku8ulalvl] {
    color: #ffffff;
    background: #16181c;
}

.calendar-picker-month-btn--selected span[b-zku8ulalvl],
.calendar-picker-month-btn--selected strong[b-zku8ulalvl] {
    color: #ffffff;
}

/* ================================================================
   DATEPICKER (neu): Monat/Jahr-Dropdowns, KW-Spalte, Bereichsauswahl
   (Woche/2 Wochen/Monat) + Feiertage. „Heute" liegt außerhalb (.calendar-now-corner).
================================================================ */

.calendar-picker-selects[b-zku8ulalvl] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.calendar-picker-dd[b-zku8ulalvl] {
    position: relative;
    min-width: 0;
    display: inline-flex;
}

.calendar-picker-dd-trigger[b-zku8ulalvl] {
    position: relative;
    z-index: 25;
    min-width: 0;
    max-width: 100%;
    height: 24px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid var(--cal-line);
    border-radius: 999px;
    padding: 0 8px 0 12px;
    color: var(--cal-text);
    background: var(--cal-surface);
    cursor: pointer;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
    transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.calendar-picker-dd--year .calendar-picker-dd-trigger[b-zku8ulalvl] {
    font-variant-numeric: tabular-nums;
}

.calendar-picker-dd-trigger > span[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (hover: hover) {
    .calendar-picker-dd-trigger:hover[b-zku8ulalvl] {
        background: #efeff1;
    }
}

.calendar-picker-dd-trigger--open[b-zku8ulalvl] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.calendar-picker-dd-chev[b-zku8ulalvl] {
    flex: 0 0 auto;
    color: var(--cal-muted);
    transition: transform 0.16s;
}

.calendar-picker-dd-trigger--open .calendar-picker-dd-chev[b-zku8ulalvl] {
    transform: rotate(180deg);
}

.calendar-picker-dd-backdrop[b-zku8ulalvl] {
    position: fixed;
    inset: 0;
    z-index: 20;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: default;
}

.calendar-picker-dd-menu[b-zku8ulalvl] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 30;
    min-width: 100%;
    max-height: min(440px, calc(100vh - 150px));
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 6px;
    border: 1px solid var(--cal-line);
    border-radius: 14px;
    background: var(--cal-surface);
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
}

.calendar-picker-dd-menu--year[b-zku8ulalvl] {
    right: 0;
    left: auto;
    min-width: 100px;
}

.calendar-picker-dd-option[b-zku8ulalvl] {
    flex: 0 0 auto;
    min-height: 28px;
    display: flex;
    align-items: center;
    border: 0;
    border-radius: 8px;
    padding: 0 14px;
    color: var(--cal-text);
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 0.84rem;
    font-weight: 700;
    text-align: left;
    white-space: nowrap;
    transition: background 0.12s, color 0.12s;
}

.calendar-picker-dd--year .calendar-picker-dd-option[b-zku8ulalvl] {
    justify-content: center;
    font-variant-numeric: tabular-nums;
}

.calendar-picker-dd-option:focus-visible[b-zku8ulalvl] {
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .calendar-picker-dd-option:hover[b-zku8ulalvl] {
        background: #efeff1;
        outline: none;
    }
}

.calendar-picker-dd-option--active[b-zku8ulalvl] {
    color: #ffffff;
    background: #16181c;
}

@media (hover: hover) {
    .calendar-picker-dd-option--active:hover[b-zku8ulalvl] {
        color: #ffffff;
        background: #16181c;
    }
}

/* Feiertags-Punkt + dezente Tag-Farben (Name steht im title-Tooltip) */
.calendar-picker-day-num[b-zku8ulalvl] {
    position: relative;
    z-index: 1;
}

.calendar-picker-day-holi[b-zku8ulalvl] {
    position: absolute;
    left: 50%;
    bottom: 1px;
    transform: translateX(-50%);
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #16181c;
    pointer-events: none;
}

/* Feiertags-Tooltip im Picker (custom, wie im Benachrichtigungs-Kalender) */
.calendar-picker-tip[b-zku8ulalvl] {
    position: absolute;
    bottom: calc(100% + 7px);
    z-index: 60;
    padding: 4px 8px;
    border-radius: 7px;
    background: #16181c;
    color: #ffffff;
    font-size: 10.5px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.12s;
    box-shadow: 0 10px 24px -10px rgba(0, 0, 0, 0.45);
}

.calendar-picker-tip--left[b-zku8ulalvl] {
    right: 0;
}

.calendar-picker-tip--right[b-zku8ulalvl] {
    left: 0;
}

.calendar-picker-tip--center[b-zku8ulalvl] {
    left: 50%;
    transform: translateX(-50%);
}

@media (hover: hover) {
    .calendar-picker-day:hover .calendar-picker-tip[b-zku8ulalvl] {
        opacity: 1;
    }
}

.calendar-picker-tip[b-zku8ulalvl]::after {
    content: "";
    position: absolute;
    top: 100%;
    border: 4px solid transparent;
    border-top-color: #16181c;
}

.calendar-picker-tip--left[b-zku8ulalvl]::after {
    right: 7px;
}

.calendar-picker-tip--right[b-zku8ulalvl]::after {
    left: 7px;
}

.calendar-picker-tip--center[b-zku8ulalvl]::after {
    left: 50%;
    transform: translateX(-50%);
}

.calendar-picker-day--selected .calendar-picker-day-holi[b-zku8ulalvl] {
    background: #16181c;
}

.calendar-picker-day--weekend:not(.calendar-picker-day--selected)[b-zku8ulalvl],
.calendar-picker-day--holiday:not(.calendar-picker-day--selected)[b-zku8ulalvl] {
    color: var(--cal-muted);
}

/* Aktuell ausgewählter Bereich: gefülltes graues Band (klar sichtbar) */
.calendar-picker-week-row--in-range[b-zku8ulalvl] {
    background: #e4e4e7;
}

.calendar-picker-week-row--range-start[b-zku8ulalvl] {
    border-top-left-radius: 9px;
    border-top-right-radius: 9px;
}

.calendar-picker-week-row--range-end[b-zku8ulalvl] {
    border-bottom-left-radius: 9px;
    border-bottom-right-radius: 9px;
}

.calendar-picker-week-row--in-range .calendar-picker-kw[b-zku8ulalvl],
.calendar-picker-week-row--in-range .calendar-picker-day:not(.calendar-picker-day--outside)[b-zku8ulalvl] {
    color: var(--cal-text);
}

/* Hover-Vorschau der Woche, wenn wochenweise ausgewählt wird */
.calendar-date-picker--week-select .calendar-picker-week-row[b-zku8ulalvl] {
    cursor: pointer;
}

/* Hover-Vorschau = schwarze Umrandung des Bereichs, der bei Klick gewählt würde —
   klar unterscheidbar vom grau GEFÜLLTEN, aktuell ausgewählten Band. */
@media (hover: hover) {
    .calendar-date-picker--week-select .calendar-picker-week-row:hover[b-zku8ulalvl] {
        border-radius: 9px;
        box-shadow: inset 0 0 0 1.5px #16181c;
    }
}

/* 2 Wochen: gehoverte Zeile + die folgende als ein umrandeter Block */
@media (hover: hover) {
    .calendar-date-picker--weeks-2 .calendar-picker-week-row:hover[b-zku8ulalvl] {
        border-radius: 9px 9px 0 0;
        box-shadow: inset 0 1.5px 0 0 #16181c, inset 1.5px 0 0 0 #16181c, inset -1.5px 0 0 0 #16181c;
    }
}

@media (hover: hover) {
    .calendar-date-picker--weeks-2 .calendar-picker-week-row:hover + .calendar-picker-week-row[b-zku8ulalvl] {
        border-radius: 0 0 9px 9px;
        box-shadow: inset 0 -1.5px 0 0 #16181c, inset 1.5px 0 0 0 #16181c, inset -1.5px 0 0 0 #16181c;
    }
}

/* 4 Wochen: gehoverte Zeile + die folgenden drei */
@media (hover: hover) {
    .calendar-date-picker--weeks-4 .calendar-picker-week-row:hover[b-zku8ulalvl] {
        border-radius: 9px 9px 0 0;
        box-shadow: inset 0 1.5px 0 0 #16181c, inset 1.5px 0 0 0 #16181c, inset -1.5px 0 0 0 #16181c;
    }
}

@media (hover: hover) {
    .calendar-date-picker--weeks-4 .calendar-picker-week-row:hover + .calendar-picker-week-row[b-zku8ulalvl],
    .calendar-date-picker--weeks-4 .calendar-picker-week-row:hover + .calendar-picker-week-row + .calendar-picker-week-row[b-zku8ulalvl] {
        border-radius: 0;
        box-shadow: inset 1.5px 0 0 0 #16181c, inset -1.5px 0 0 0 #16181c;
    }
}

@media (hover: hover) {
    .calendar-date-picker--weeks-4 .calendar-picker-week-row:hover + .calendar-picker-week-row + .calendar-picker-week-row + .calendar-picker-week-row[b-zku8ulalvl] {
        border-radius: 0 0 9px 9px;
        box-shadow: inset 0 -1.5px 0 0 #16181c, inset 1.5px 0 0 0 #16181c, inset -1.5px 0 0 0 #16181c;
    }
}

@media (hover: hover) {
    .calendar-date-picker--week-select button.calendar-picker-day:hover[b-zku8ulalvl] {
        background: transparent;
        box-shadow: none;
    }
}

/* ===== „Heute / Diese Woche / Dieser Monat" oben links (Zeile 1 / Spalte 1) ===== */
.calendar-now-corner[b-zku8ulalvl] {
    grid-row: 1;
    grid-column: 1;
    box-sizing: border-box;
    position: sticky;
    top: 0;
    left: 0;
    z-index: var(--calendar-z-first-column-header, 70);
    min-width: 0;
    height: var(--calendar-now-head-height);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 0;
    border-right: 1px solid var(--cal-line);
    border-bottom: 1px solid var(--cal-line-soft);
    padding: 0 10px;
    color: var(--cal-text);
    background: var(--cal-surface);
    cursor: pointer;
    font: inherit;
    font-size: 0.66rem;
    font-weight: 950;
    letter-spacing: 0.02em;
    white-space: nowrap;
    overflow: hidden;
    transition: background 0.15s ease, color 0.15s ease;
}

.calendar-now-corner > span[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.calendar-now-corner-icon[b-zku8ulalvl] {
    flex: 0 0 auto;
}

.calendar-now-corner:focus-visible[b-zku8ulalvl] {
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .calendar-now-corner:hover[b-zku8ulalvl] {
        background: #efeff1;
        outline: none;
    }
}

.calendar-now-corner:active[b-zku8ulalvl] {
    background: #16181c;
    color: #ffffff;
}

/* Bei offenem Picker/Ansicht-Popover über die Backdrops heben, damit man die
   anderen Bedienelemente direkt anklicken kann (ohne erst zu schließen). */
.calendar-now-corner--raised[b-zku8ulalvl] {
    z-index: 2305;
}

.calendar-week-corner--overlay-open[b-zku8ulalvl],
.calendar-scroller--horizontal .calendar-week-corner--overlay-open[b-zku8ulalvl] {
    z-index: 2304;
}

.calendar-scroller--horizontal .calendar-now-corner[b-zku8ulalvl] {
    z-index: var(--calendar-z-first-column-header, 70);
    box-shadow: 10px 0 18px -18px rgba(15, 23, 42, 0.62), inset -1px 0 0 var(--cal-line);
}

/* Schmale erste Spalte (per JS gesetzt): nur das Icon zeigen */
.calendar-grid--people-compact .calendar-now-corner[b-zku8ulalvl] {
    justify-content: center;
    gap: 0;
    padding: 0 4px;
}

.calendar-grid--people-compact .calendar-now-corner > span[b-zku8ulalvl] {
    display: none;
}

.calendar-board[b-zku8ulalvl] {
    position: relative; /* Bezug für den schwebenden Pin-Schatten (.calendar-pin-edge-shadow) */
    flex: 1;
    min-width: 0; /* darf sich stauchen, wenn rechts das Termin-Panel andockt */
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 10px 12px 12px;
    overflow: hidden;
}

/* Offenes Filter-/Darstellung-/Legende-Popover: das Board-Clipping freigeben, damit das
   Popover über die Kante zum angedockten Termin-Panel ragen darf — overflow:hidden schnitt
   es dort sonst exakt ab (sah aus wie „hinter dem Panel"). Die Z-Ordnung übernehmen
   .calendar-toolbar--popover-raised (1600) und .calendar-appt-panel--behind-popover (1500);
   der eigentliche Kalenderinhalt clippt weiterhin in seinem eigenen .calendar-scroller. */
.calendar-board--popover-open[b-zku8ulalvl] {
    overflow: visible;
}

.calendar-empty[b-zku8ulalvl] {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed var(--cal-line);
    border-radius: 8px;
    color: var(--cal-muted);
    background: var(--cal-surface);
    font-weight: 850;
}

/* --- Werkzeugleiste: Suche + Filter (Hybrid) --- */
.calendar-toolbar[b-zku8ulalvl] {
    position: relative;
    z-index: 80; /* über den Sticky-Köpfen des Grids (max. 70), damit das Filter-Popover sie überlagert */
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

/* Offenes Filter-/Darstellung-/Legende-Popover: die Toolbar auf 1600 heben. Der Wert
   liegt bewusst UNTER den Header-Menüs (.hmenu z 2000), damit die Popover nie den
   App-Header bzw. dessen aufgeklappte Menüs überdecken. pointer-events none/auto,
   damit die leere Toolbar-Fläche darunterliegende Klicks nicht schluckt.
   Auf breiten Fenstern reicht das schon: das Termin-Panel liegt dort bei z 5.
   Erst ab ≤ 1100px wird es fixiert auf 2400 gehoben — nur DORT muss es zusätzlich
   zurücktreten (.calendar-appt-panel--behind-popover, siehe unten beim Panel). */
.calendar-toolbar--popover-raised[b-zku8ulalvl] {
    z-index: 1600;
    pointer-events: none;
}

.calendar-toolbar--popover-raised > *[b-zku8ulalvl] {
    pointer-events: auto;
}

.calendar-search[b-zku8ulalvl] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 32px;
    padding: 0 10px;
    border: 1px solid var(--cal-line);
    border-radius: 9px;
    background: var(--cal-surface);
    flex: 0 1 340px;
    min-width: 230px;
    max-width: 360px;
    color: var(--cal-muted);
}

.calendar-search:focus-within[b-zku8ulalvl] {
    border-color: var(--cal-text);
}

.calendar-search-input[b-zku8ulalvl] {
    border: 0;
    outline: 0;
    background: transparent;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--cal-text);
    width: 100%;
    min-width: 0;
}

.calendar-search-input[b-zku8ulalvl]::placeholder {
    color: var(--cal-muted);
    font-weight: 600;
}

.calendar-search-clear[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: var(--cal-muted);
    cursor: pointer;
    padding: 2px;
    border-radius: 6px;
}

@media (hover: hover) {
    .calendar-search-clear:hover[b-zku8ulalvl] {
        background: var(--cal-panel);
        color: var(--cal-text);
    }
}

/* „Ansicht"-Anker: bündelt Filter, Darstellung und Legende — alle drei Popover hängen
   an diesem einen Wrap; oben im Popover wechselt die Tab-Leiste zwischen ihnen. */
.calendar-more-wrap[b-zku8ulalvl] {
    position: relative;
}

/* Gemeinsame Hülle der drei Ansicht-Popover — die Tab-Leiste oben verbindet sie,
   die Breite darf je Tab unterschiedlich bleiben (Elias' Ansage nach dem Test). */
.calendar-view-popover[b-zku8ulalvl] {
    position: absolute;
    z-index: 201;
    top: calc(100% + 6px);
    left: 0;
    max-width: calc(100vw - 24px);
    /* So hoch, dass die Darstellung möglichst ohne Binnen-Scrollen passt — aber NIE über die
       Fenster-Unterkante hinaus, sonst wäre der Fuß (Zurücksetzen/Fertig) unerreichbar: die
       Seite scrollt nicht und das Board schaltet bei offenem Popover nur auf overflow: visible.
       Ein fester Abzug reicht dafür nicht — wo das Popover anfängt, hängt an Banner, App-Kopf
       UND an der umbrechenden Toolbar (flex-wrap). Deshalb dreifach abgesichert: Kopf/Banner
       konkret abziehen, zusätzlich ein Anteil der Fensterhöhe als Puffer für den Umbruch. */
    max-height: min(
        72dvh,
        calc(100dvh - var(--app-header-h, 56px) - var(--app-banner-h, 0px) - 96px),
        700px);
    display: flex;
    flex-direction: column;
    background: var(--cal-surface);
    border: 1px solid var(--cal-panel-strong);
    border-radius: 12px;
    box-shadow: 0 18px 40px -16px rgba(15, 23, 42, 0.35);
    overflow: hidden;
}

.calendar-filter-popover[b-zku8ulalvl],
.calendar-legend-popover[b-zku8ulalvl] {
    width: 300px;
}

.calendar-darstellung-popover[b-zku8ulalvl] {
    width: 540px;
}

.calendar-view-body[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.calendar-view-popover > .calendar-filter-foot[b-zku8ulalvl] {
    flex: 0 0 auto;
    border-top: 1px solid var(--cal-line-soft);
}

/* Die Foot-Linie übernimmt die Trennung — sonst stünden zwei Striche übereinander. */
.calendar-view-body .calendar-filter-group:last-child[b-zku8ulalvl] {
    border-bottom: none;
}

/* Tab-Leiste im Kopf: ruhige Text-Reiter mit Unterstrich — dieselbe Formsprache wie
   Termin|Notiz|Chat im Termin-Panel, bewusst KEINE Pillen-Leiste (die gehört den
   Einstellungs-Schaltern im Inhalt). Die Reiter/Zähler selbst teilen sich die Regeln
   mit .calendar-appt-tab(-count) weiter unten — EINE Optik, keine driftende Kopie. */
.calendar-view-tabs[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-end;
    gap: 18px;
    padding: 8px 14px 0;
    border-bottom: 1px solid var(--cal-line);
    background: var(--cal-surface);
}

.calendar-filter-trigger[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 32px;
    padding: 0 12px;
    border: 1px solid var(--cal-line);
    border-radius: 9px;
    background: var(--cal-surface);
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--cal-text);
    cursor: pointer;
}

@media (hover: hover) {
    .calendar-filter-trigger:hover[b-zku8ulalvl] {
        background: var(--cal-panel);
    }
}

.calendar-filter-trigger--open[b-zku8ulalvl] {
    border-color: var(--cal-text);
}

.calendar-filter-badge[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--cal-text);
    color: #ffffff;
    font-size: 0.64rem;
    font-weight: 800;
    font-style: normal;
}

.calendar-filter-group[b-zku8ulalvl] {
    padding: 9px 11px;
    border-bottom: 1px solid var(--cal-line-soft);
}

.calendar-filter-label[b-zku8ulalvl] {
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--cal-muted);
    margin-bottom: 7px;
}

.calendar-filter-pills[b-zku8ulalvl] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.calendar-filter-pill[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 26px;
    padding: 0 10px;
    border: 1px solid var(--cal-line);
    border-radius: 999px;
    background: var(--cal-surface);
    font-size: 0.74rem;
    font-weight: 700;
    color: var(--cal-text);
    cursor: pointer;
}

@media (hover: hover) {
    .calendar-filter-pill:hover[b-zku8ulalvl] {
        background: var(--cal-panel);
    }
}

.calendar-filter-pill--on[b-zku8ulalvl] {
    background: var(--cal-text);
    color: #ffffff;
    border-color: var(--cal-text);
}

/* Aktive Pille dunkel halten – sonst überdeckt der helle Hover-Hintergrund die weiße Schrift. */
@media (hover: hover) {
    .calendar-filter-pill--on:hover[b-zku8ulalvl] {
        background: #000000;
        color: #ffffff;
        border-color: #000000;
    }
}

.calendar-filter-dot[b-zku8ulalvl] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.calendar-filter-check[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--cal-text);
    padding: 4px 0;
    cursor: pointer;
}

.calendar-filter-check input[b-zku8ulalvl] {
    width: 15px;
    height: 15px;
    accent-color: var(--cal-text);
    cursor: pointer;
}

/* Option ohne Wirkung (z. B. „Schmale Wochenenden", wenn Wochenenden ganz aus sind). */
.calendar-filter-check--off[b-zku8ulalvl] {
    color: var(--cal-muted);
    cursor: not-allowed;
}

.calendar-filter-check--off input[b-zku8ulalvl] {
    cursor: not-allowed;
}

.calendar-filter-foot[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 9px 11px;
}

.calendar-filter-reset-link[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 0;
    background: transparent;
    color: var(--cal-muted);
    font-size: 0.76rem;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}

/* „Auf Standard zurücksetzen": steht alles auf Werkseinstellung, ist der Knopf nur
   Anzeige — gedimmt, ohne Unterstrich, ohne Klick-Cursor. */
.calendar-filter-reset-link:disabled[b-zku8ulalvl] {
    color: #b6b9bf;
    text-decoration: none;
    cursor: default;
}

.calendar-filter-done[b-zku8ulalvl] {
    border: 1px solid var(--cal-text);
    background: var(--cal-text);
    color: #ffffff;
    height: 30px;
    padding: 0 14px;
    border-radius: 8px;
    font-size: 0.78rem;
    font-weight: 800;
    cursor: pointer;
}

.calendar-toolbar-spacer[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-width: 0;
}

/* Primäre Aktion „Termin anlegen" – rechts in der Werkzeugleiste (ersetzt den früheren FAB). */
.calendar-toolbar-add[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 14px;
    border: 1px solid var(--cal-text);
    border-radius: 9px;
    background: var(--cal-text);
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 800;
    cursor: pointer;
}

@media (hover: hover) {
    .calendar-toolbar-add:hover[b-zku8ulalvl] {
        background: #000000;
        border-color: #000000;
    }
}

/* Schmale Screens: die Toolbar in zwei ruhigen Zeilen ordnen — oben nur die Suche,
   darunter „Ansicht" links und Vollbild + „Termin anlegen" (nur Icon) rechts. */
@media (max-width: 700px) {
    .calendar-search[b-zku8ulalvl] {
        order: 1;
        flex: 1 1 auto;
        min-width: 0;
        max-width: none;
    }

    .calendar-search-more[b-zku8ulalvl] {
        order: 2;
    }

    .calendar-more-wrap[b-zku8ulalvl] {
        order: 3;
    }

    .calendar-presence-wrap[b-zku8ulalvl] {
        order: 4;
    }

    /* Vollbild schiebt sich samt Termin-Knopf an den rechten Rand der zweiten Zeile. */
    .calendar-fullscreen-btn[b-zku8ulalvl] {
        order: 5;
        margin-left: auto;
    }

    .calendar-toolbar-add[b-zku8ulalvl] {
        order: 6;
        width: 36px;
        padding: 0;
        justify-content: center;
    }

    .calendar-toolbar-add span[b-zku8ulalvl] {
        display: none;
    }

    .calendar-toolbar-spacer[b-zku8ulalvl] {
        display: none;
    }
}

/* --- Zeitraumübergreifende Suche: Button + Ergebnis-Modal --- */
.calendar-search-more[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 12px;
    border: 1px solid var(--cal-text);
    border-radius: 9px;
    background: var(--cal-text);
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
}

@media (hover: hover) {
    .calendar-search-more:hover[b-zku8ulalvl] {
        background: #2b2e34;
        border-color: #2b2e34;
    }
}

.calendar-search-modal-head[b-zku8ulalvl] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
}

.calendar-search-modal-kicker[b-zku8ulalvl] {
    display: block;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--cal-muted);
}

.calendar-search-modal-title[b-zku8ulalvl] {
    margin: 2px 0 0;
    font-size: 1.05rem;
    font-weight: 850;
    color: var(--cal-text);
}

.calendar-search-modal-count[b-zku8ulalvl] {
    flex: 0 0 auto;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--cal-muted);
}

.calendar-search-modal-note[b-zku8ulalvl] {
    margin-bottom: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    background: var(--cal-panel);
    color: var(--cal-muted);
    font-size: 0.74rem;
    font-weight: 600;
}

.calendar-search-modal-empty[b-zku8ulalvl] {
    padding: 28px 8px;
    text-align: center;
    color: var(--cal-muted);
    font-weight: 700;
}

.calendar-search-hits[b-zku8ulalvl] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 62vh;
    overflow-y: auto;
}

.calendar-search-hit[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--cal-line);
    border-radius: 10px;
    background: var(--cal-surface);
    text-align: left;
    cursor: pointer;
}

@media (hover: hover) {
    .calendar-search-hit:hover[b-zku8ulalvl] {
        background: var(--cal-panel);
        border-color: var(--cal-panel-strong);
    }
}

.calendar-search-hit--inrange[b-zku8ulalvl] {
    border-color: var(--cal-text);
}

.calendar-search-hit-date[b-zku8ulalvl] {
    flex: 0 0 auto;
    width: 122px;
    font-size: 0.76rem;
    font-weight: 800;
    color: var(--cal-text);
}

.calendar-search-hit-main[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.calendar-search-hit-title[b-zku8ulalvl] {
    font-size: 0.86rem;
    font-weight: 800;
    color: var(--cal-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-search-hit-sub[b-zku8ulalvl] {
    font-size: 0.74rem;
    color: var(--cal-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-search-hit-badges[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: flex;
    gap: 5px;
}

.calendar-search-hit-tag[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
    height: 19px;
    padding: 0 7px;
    border-radius: 999px;
    background: var(--cal-panel);
    color: var(--cal-muted);
    font-size: 0.62rem;
    font-weight: 800;
}

.calendar-search-hit-tag--inrange[b-zku8ulalvl] {
    background: var(--cal-text);
    color: #ffffff;
}

.calendar-search-hit-chev[b-zku8ulalvl] {
    flex: 0 0 auto;
    color: var(--cal-muted);
}

/* Suchtreffer / angesprungener Termin: ECHTER schwarzer Border auf der ::after-Schicht.
   Real-Border ist repaint-stabil – im Gegensatz zu outline (wurde nach Drag verschluckt, kam erst
   beim Fenster-/Tab-Wechsel zurück) und zu box-shadow inset (Paint-Bug bei manchen Chrome-Builds). */
.calendar-appointment--highlighted[b-zku8ulalvl] {
    /* Eigener Stacking-Context, damit der ::after-Ring zuverlässig über die Inhalte gezeichnet wird. */
    isolation: isolate;
}

.calendar-appointment--highlighted[b-zku8ulalvl]::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    border: 2px solid #16181c;
    border-radius: inherit;
    box-sizing: border-box;
    pointer-events: none;
    z-index: 10;
}

.calendar-scroller[b-zku8ulalvl] {
    flex: 1;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    /* Kein smooth-Scroll: das programmatische Zentrieren auf den Anker-Tag (Mehrere
       Wochen / „Heute") und die Lazy-Load-Korrektur sollen sofort springen, nicht
       sichtbar durch den Kalender scrollen (v. a. auf iPhone/iPad). */
    scroll-behavior: auto;
    border: 1px solid var(--cal-line);
    border-radius: 8px;
    background: var(--cal-surface);
    box-shadow: 0 16px 36px rgba(22, 32, 42, 0.08);
}

.calendar-scroller--horizontal[b-zku8ulalvl] {
    overflow-x: auto;
    overscroll-behavior-x: contain;
}

.calendar-scroller--horizontal .calendar-week-corner[b-zku8ulalvl],
.calendar-scroller--horizontal .calendar-corner[b-zku8ulalvl],
.calendar-scroller--horizontal .calendar-group-label[b-zku8ulalvl],
.calendar-scroller--horizontal .calendar-person[b-zku8ulalvl] {
    box-shadow: 10px 0 18px -18px rgba(15, 23, 42, 0.62), inset -1px 0 0 var(--cal-line);
}

.calendar-scroller--horizontal .calendar-week-corner[b-zku8ulalvl] {
    z-index: var(--calendar-z-first-column-header, 70);
}

.calendar-scroller--horizontal .calendar-corner[b-zku8ulalvl] {
    z-index: var(--calendar-z-first-column-header, 70);
}

.calendar-scroller--horizontal .calendar-group-label[b-zku8ulalvl] {
    z-index: var(--calendar-z-first-column, 50);
    background: var(--cal-panel);
    box-shadow: 10px 0 18px -18px rgba(15, 23, 42, 0.62), inset -1px 0 0 var(--cal-line);
}

.calendar-scroller--horizontal .calendar-person[b-zku8ulalvl] {
    z-index: var(--calendar-z-first-column, 50);
    background: var(--cal-surface);
}

.calendar-scroller--horizontal .calendar-week-corner[b-zku8ulalvl],
.calendar-scroller--horizontal .calendar-corner[b-zku8ulalvl] {
    background: var(--cal-surface);
}

.calendar-scroller--horizontal .calendar-week-corner .calendar-date-picker[b-zku8ulalvl] {
    position: fixed;
    top: calc(48px + 70px + var(--calendar-week-head-height));
    left: 18px;
    right: auto;
}

.calendar-scroller--horizontal .calendar-corner .calendar-view-settings-popover[b-zku8ulalvl] {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
}

.calendar-grid[b-zku8ulalvl] {
    --calendar-people-width: clamp(176px, 23vw, 236px);
    --calendar-multiweek-day-width: max(118px, calc((100vw - var(--calendar-people-width) - 48px) / 7));
    --calendar-now-head-height: 28px;
    --calendar-week-head-height: 28px;
    position: relative;
    display: grid;
    grid-template-rows: var(--calendar-now-head-height) var(--calendar-week-head-height) auto;
    width: 100%;
    min-width: 0;
    align-items: stretch;
}

.calendar-grid[b-zku8ulalvl]::before {
    content: "";
    grid-column: 1 / -1;
    grid-row: 1;
    position: sticky;
    top: 0;
    z-index: var(--calendar-z-top-mask, 60);
    background: var(--cal-surface);
    pointer-events: none;
}

.calendar-grid.calendar-grid--resizing[b-zku8ulalvl],
.calendar-grid.calendar-grid--resizing *[b-zku8ulalvl] {
    cursor: col-resize !important;
    user-select: none;
}

.calendar-now-summary[b-zku8ulalvl] {
    position: sticky;
    grid-row: 1;
    top: 0;
    z-index: var(--calendar-z-now-label, 65);
    min-width: 0;
    min-height: var(--calendar-now-head-height);
    overflow: visible;
    pointer-events: none;
}

.calendar-now-summary strong[b-zku8ulalvl] {
    position: absolute;
    bottom: 3px;
    left: var(--calendar-now-position);
    transform: translateX(-50%);
    min-width: 42px;
    border-radius: 999px;
    padding: 2px 8px;
    color: #ffffff;
    background: var(--cal-current);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    text-align: center;
    box-shadow: 0 2px 5px rgba(22, 24, 28, 0.22);
}

.calendar-week-corner[b-zku8ulalvl],
.calendar-week-head[b-zku8ulalvl] {
    grid-row: 2;
    position: sticky;
    top: var(--calendar-now-head-height);
    z-index: var(--calendar-z-header, 30);
    min-width: 0;
    min-height: var(--calendar-week-head-height);
    background: var(--cal-surface);
}

.calendar-week-corner[b-zku8ulalvl] {
    grid-column: 1;
    left: 0;
    z-index: var(--calendar-z-first-column-header, 70);
    display: flex;
    align-items: stretch;
    border-bottom: none;
    background: var(--cal-surface);
}

.calendar-week-corner--overlay-open[b-zku8ulalvl],
.calendar-corner--overlay-open[b-zku8ulalvl],
.calendar-scroller--horizontal .calendar-week-corner--overlay-open[b-zku8ulalvl],
.calendar-scroller--horizontal .calendar-corner--overlay-open[b-zku8ulalvl] {
    z-index: var(--calendar-z-control-popover-context, 2302);
}

.calendar-week-corner .calendar-range-controls[b-zku8ulalvl] {
    width: 100%;
    height: var(--calendar-week-head-height);
    min-width: 0;
    gap: 2px;
    border: 0;
    border-radius: 0;
    padding: 2px 2px;
    background: transparent;
}

.calendar-week-corner .calendar-icon-btn[b-zku8ulalvl] {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    border-radius: 5px;
}

.calendar-week-corner .calendar-date-picker-wrap[b-zku8ulalvl] {
    flex: 1;
    min-width: 0;
}

.calendar-week-corner .calendar-today-btn[b-zku8ulalvl] {
    width: 100%;
    min-width: 0;
    height: 24px;
    gap: 4px;
    padding: 0 6px;
    border-radius: 5px;
    font-size: 0.68rem;
}

.calendar-week-corner .calendar-today-btn svg[b-zku8ulalvl] {
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
}

.calendar-week-corner .calendar-today-btn span[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.calendar-week-head[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid var(--cal-line-soft);
    color: var(--cal-muted);
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-top-left-radius: 6px;
}

.calendar-grid[data-calendar-view="two-weeks"] .calendar-week-head[b-zku8ulalvl],
.calendar-grid[data-calendar-view="month"] .calendar-week-head[b-zku8ulalvl],
.calendar-grid[data-calendar-view="multi-weeks"] .calendar-week-head[b-zku8ulalvl] {
    border-top-right-radius: 6px;
}

.calendar-week-head--current[b-zku8ulalvl] {
    color: var(--cal-text);
    background: #efeff1;
    box-shadow: inset 0 -2px 0 #94a3b8;
}

.calendar-corner[b-zku8ulalvl],
.calendar-day-head[b-zku8ulalvl] {
    grid-row: 3;
    position: sticky;
    top: calc(var(--calendar-now-head-height) + var(--calendar-week-head-height));
    min-width: 0;
    min-height: 48px;
    z-index: var(--calendar-z-header, 30);
    background: var(--cal-surface);
    border-bottom: 1px solid var(--cal-line);
}

.calendar-corner[b-zku8ulalvl] {
    left: 0;
    z-index: var(--calendar-z-first-column-header, 70);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px solid var(--cal-line-soft);
    border-right: 1px solid var(--cal-line);
    padding: 4px 14px 0;
    background: var(--cal-surface);
}

.calendar-week-corner--overlay-open[b-zku8ulalvl],
.calendar-corner--overlay-open[b-zku8ulalvl],
.calendar-scroller--horizontal .calendar-week-corner--overlay-open[b-zku8ulalvl],
.calendar-scroller--horizontal .calendar-corner--overlay-open[b-zku8ulalvl] {
    z-index: var(--calendar-z-control-popover-context, 2302);
}

.calendar-corner > span[b-zku8ulalvl] {
    color: var(--cal-muted);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.calendar-corner > strong[b-zku8ulalvl] {
    min-width: 28px;
    border-radius: 999px;
    padding: 3px 8px;
    color: var(--cal-accent);
    background: var(--cal-accent-soft);
    font-size: 0.76rem;
    font-weight: 950;
    text-align: center;
}

/* ----------------------------------------------------------------
   KOMPAKTMODUS der ersten Spalte (sehr schmal gezogen, < 150px):
   Pfeile fallen weg → nur Kalender-Icon; Ansicht-Dropdown zeigt ein Icon
   statt leerem Text. Wird per JS-Klasse .calendar-grid--people-compact gesetzt.
---------------------------------------------------------------- */

/* Vor-/Zurück-Pfeile ausblenden, Kalender-Icon zentrieren */
.calendar-grid--people-compact .calendar-week-corner .calendar-icon-btn[b-zku8ulalvl] {
    display: none;
}

.calendar-grid--people-compact .calendar-week-corner .calendar-range-controls[b-zku8ulalvl] {
    justify-content: center;
    padding: 2px;
}

.calendar-grid--people-compact .calendar-week-corner .calendar-today-btn[b-zku8ulalvl] {
    justify-content: center;
    gap: 0;
}

.calendar-grid--people-compact .calendar-week-corner .calendar-today-btn span[b-zku8ulalvl] {
    display: none;
}

.calendar-grid--people-compact .calendar-week-corner .calendar-today-btn svg[b-zku8ulalvl] {
    width: 16px;
    height: 16px;
}

/* Ansicht-Dropdown: Texte/Chevron raus, stattdessen ein zentriertes Icon */
.calendar-view-settings-icon[b-zku8ulalvl] {
    display: none;
}

.calendar-grid--people-compact .calendar-corner[b-zku8ulalvl] {
    padding: 0 8px;
}

.calendar-grid--people-compact .calendar-corner .calendar-view-settings-trigger[b-zku8ulalvl] {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    justify-items: center;
    align-items: center;
    column-gap: 0;
    padding: 4px;
}

.calendar-grid--people-compact .calendar-view-settings-trigger > span:not(.calendar-view-settings-icon)[b-zku8ulalvl],
.calendar-grid--people-compact .calendar-view-settings-trigger > strong[b-zku8ulalvl],
.calendar-grid--people-compact .calendar-view-settings-trigger > svg[b-zku8ulalvl] {
    display: none;
}

.calendar-grid--people-compact .calendar-view-settings-trigger .calendar-view-settings-icon[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--cal-muted);
}

.calendar-day-head[b-zku8ulalvl] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    border-right: 1px solid var(--cal-line-soft);
    padding: 0 3px;
    text-align: center;
    /* Container, damit Wochentag/Datum sich an die ECHTE Spaltenbreite anpassen (Ansicht UND
       manuelle Spaltenbreite) — statt „Mo"/„29.06." stumpf zu „M…"/„2…" abzuschneiden. */
    container-type: inline-size;
}

.calendar-day-head--day[b-zku8ulalvl] {
    min-height: 66px;
    align-items: stretch;
    padding: 5px 0 0;
}

.calendar-day-head > span[b-zku8ulalvl] {
    overflow: hidden;
    width: 100%;
    color: var(--cal-text);
    font-size: 0.78rem;
    font-weight: 900;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-day-head > strong[b-zku8ulalvl] {
    display: block;
    overflow: hidden;
    width: 100%;
    color: var(--cal-muted);
    font-size: 0.68rem;
    font-weight: 850;
    line-height: 1.1;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

/* Tagesköpfe sind klickbar (Tages-Notiz) — Zeiger + dezentes Hover als Einladung. */
.calendar-day-head[b-zku8ulalvl] {
    cursor: pointer;
}

@media (hover: hover) {
    .calendar-day-head:hover[b-zku8ulalvl] {
        background: var(--cal-panel);
    }

    .calendar-day-head--weekend:hover[b-zku8ulalvl],
    .calendar-day-head--holiday:hover[b-zku8ulalvl] {
        background: #dfdfe4;
    }
}

/* Vorhandene Tages-Notiz: kleine schwarze Ecke oben rechts (wie ein Kommentar in Excel);
   der Text steht im Tooltip des Kopfes und im Klick-Popover. */
.calendar-day-note-flag[b-zku8ulalvl] {
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 0;
    border-top: 8px solid var(--cal-text);
    border-left: 8px solid transparent;
    pointer-events: none;
}

/* Breite Spalte: volles Datum („29.06."), kurze Tageszahl versteckt. */
.calendar-day-date--short[b-zku8ulalvl] {
    display: none;
}

/* Schmale Spalte: nur die Tageszahl („29") statt eines abgeschnittenen Datums. Schwelle knapp
   über der Breite, ab der „29.06." nicht mehr sauber passt (≈ 4-Wochen-Ansicht). */
@container (max-width: 56px) {
    .calendar-day-date--full[b-zku8ulalvl] {
        display: none;
    }

    .calendar-day-date--short[b-zku8ulalvl] {
        display: inline;
    }

    .calendar-day-head > span[b-zku8ulalvl] {
        font-size: 0.72rem;
    }
}


.calendar-hour-head[b-zku8ulalvl] {
    display: grid;
    grid-template-columns: repeat(24, minmax(0, 1fr));
    align-items: end;
    margin-top: 4px;
    border-top: 1px solid var(--cal-line-soft);
    min-height: 23px;
    color: var(--cal-muted);
    background: rgba(255, 255, 255, 0.5);
}

.calendar-hour-head span[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    border-right: 1px solid var(--cal-line-soft);
    padding: 5px 2px 4px;
    font-size: 0.54rem;
    font-weight: 850;
    line-height: 1;
    text-align: center;
    text-overflow: clip;
    white-space: nowrap;
}

.calendar-hour-head span:last-child[b-zku8ulalvl] {
    border-right: none;
}

.calendar-hour-label--current[b-zku8ulalvl] {
    color: white;
    background: var(--cal-current);
    box-shadow: 0 5px 14px rgba(71, 85, 105, 0.18);
}

.calendar-day-head--current-hour .calendar-hour-head[b-zku8ulalvl] {
    box-shadow: inset 0 -2px 0 rgba(71, 85, 105, 0.2);
}

.calendar-day-head--weekend[b-zku8ulalvl] {
    background: var(--cal-weekend);
    color: var(--cal-weekend-text);
}

/* Feiertage (Hessen) wie Wochenenden dezent grau absetzen; der Feiertagsname steht im title-Tooltip. */
.calendar-day-head--holiday[b-zku8ulalvl] {
    background: var(--cal-weekend);
    color: var(--cal-weekend-text);
}

.calendar-group-label[b-zku8ulalvl] {
    min-width: 0;
    min-height: 25px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--cal-line);
    background: var(--cal-panel);
}

.calendar-group-label[b-zku8ulalvl] {
    position: sticky;
    left: 0;
    z-index: var(--calendar-z-first-column, 50);
    gap: 8px;
    border-right: 1px solid var(--cal-line);
    padding: 0 12px;
    color: var(--cal-text);
}

/* Einziger Farbakzent des Bereichs: ein kleiner runder Punkt in der Bereichsfarbe (statt der
   früheren flächigen Tönung) — passt zum monochromen Kalender wie der Farbstreifen der Termine. */
.calendar-group-label[b-zku8ulalvl]::before {
    content: "";
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--department-color, var(--cal-muted));
}

.calendar-group-label--collapsed[b-zku8ulalvl] {
    border-bottom-color: var(--cal-line);
}

.calendar-group-name[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    flex: 1;
    font-size: 0.69rem;
    font-weight: 950;
    letter-spacing: 0.02em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Pin-Symbol vor dem Bereichsnamen, wenn der Bereich im Kalender angepinnt ist. */
.calendar-group-pin[b-zku8ulalvl] {
    display: inline-flex;
    flex-shrink: 0;
    color: var(--cal-text);
}

/* === Angepinnte Bereiche kleben oben (iOS-Stil) — gesteuert von calendarPinnedSections.js ===
   .calendar-pin-stuck + das inline `top` werden NUR per JS gesetzt; ohne JS greift keine Regel
   → der Kalender rendert ganz normal. Push (Rausschieben) läuft über `top`, NICHT über transform
   (transform auf einem position:sticky-Element bricht das Kleben → Flackern). */
.calendar-time-cell.calendar-pin-stuck[b-zku8ulalvl] {
    position: sticky;
    /* über Terminen (z6), unter dem Tageskopf (z30) → schiebt sich beim Push darunter weg */
    z-index: 22;
}

/* Mehrtägige Balken ragen aus ihrer Startzelle in die Folgezellen. Im gepinnten Zustand ist JEDE
   Zelle ein eigener sticky-Stapelkontext (z22); die in DOM-Reihenfolge späteren, deckend
   hinterlegten Folgezellen übermalen den Überhang sonst → der Balken wird auf ~1 Zelle
   „abgeschnitten". Die Startzelle eines mehrtägigen Termins daher knapp anheben, damit der Balken
   ÜBER den leeren Folgezellen liegt. Bleibt unter Tageskopf (z30) und erster Spalte (z50/z52).
   Das hier ist nur der Boden (ein Balken über leeren Zellen); die FEINE Reihenfolge zwischen
   mehreren mehrtägigen Terminen EINER Zeile (früher-links = höher, sonst „Lücke" wo der nächste
   beginnt) setzt calendarPinnedSections.js per inline z-index (Band 29→24) obendrauf. */
.calendar-time-cell.calendar-pin-stuck:has(> .calendar-appointment--multiday)[b-zku8ulalvl] {
    z-index: 23;
}

.calendar-group-label.calendar-pin-stuck[b-zku8ulalvl],
.calendar-person.calendar-pin-stuck[b-zku8ulalvl] {
    position: sticky;
    /* über der scrollenden ersten Spalte (z50), unter der Tageskopf-Ecke (z70) */
    z-index: 52;
}

/* Die Bereichszeile (Trennzeile + Bereichszellen) ist neutral getönt (--cal-panel) → im geklebten
   Zustand deckend hinterlegen, sonst scheint der scrollende Inhalt durch. */
.calendar-group-label.calendar-pin-stuck[b-zku8ulalvl],
.calendar-time-cell--department.calendar-pin-stuck[b-zku8ulalvl] {
    background: var(--cal-panel);
}

/* Untere Kante des geklebten gepinnten Blocks (unterste Zeile, von JS markiert): nur eine
   etwas kräftigere, durchgehende Trennlinie. Der eigentliche Schatten kommt aus EINEM Element
   (.calendar-grid::after) — NICHT als per-Zelle-box-shadow, weil der seitlich verwischt und an
   jeder Tagesgrenze senkrechte Schattenstreifen erzeugt. */
.calendar-pin-stuck--edge[b-zku8ulalvl] {
    border-bottom-color: var(--cal-line);
}

/* Ein einziger, durchgehender Schatten-Balken über die volle Breite am unteren Rand des
   geklebten Blocks. Liegt als eigenes Element im (nicht scrollenden) .calendar-board; Position
   (top) + Sichtbarkeit werden von calendarPinnedSections.js gesetzt. Bewusst EIN Element statt
   per-Zelle-box-shadow → durchgehend, keine senkrechten Streifen an den Tagesgrenzen. */
.calendar-pin-edge-shadow[b-zku8ulalvl] {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 10px;
    z-index: 51; /* über scrollendem Inhalt inkl. erster Spalte (z50) */
    /* Verlauf statt box-shadow: rendert zuverlässig und verläuft NUR nach unten (kein seitliches
       Verwischen → keine senkrechten Streifen an den Tagesgrenzen). */
    background: linear-gradient(to bottom, rgba(22, 24, 28, 0.22), rgba(22, 24, 28, 0));
    opacity: 0;
    pointer-events: none;
}

.calendar-group-toggle[b-zku8ulalvl] {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    margin-right: -5px;
    border: 0;
    border-radius: 999px;
    padding: 0;
    color: var(--cal-muted);
    background: rgba(255, 255, 255, 0.7);
    cursor: pointer;
    transition: background-color 180ms cubic-bezier(0.32, 0.72, 0, 1), color 180ms cubic-bezier(0.32, 0.72, 0, 1), transform 180ms cubic-bezier(0.32, 0.72, 0, 1);
}

.calendar-group-toggle svg[b-zku8ulalvl] {
    width: 11px;
    height: 11px;
}

.calendar-group-toggle:focus-visible[b-zku8ulalvl] {
    color: white;
    background: var(--cal-text);
    outline: none;
    transform: translateX(1px);
}

@media (hover: hover) {
    .calendar-group-toggle:hover[b-zku8ulalvl] {
        color: white;
        background: var(--cal-text);
        outline: none;
        transform: translateX(1px);
    }
}

.calendar-group-toggle:active[b-zku8ulalvl] {
    transform: translateX(1px) scale(0.94);
}

.calendar-group-toggle svg[b-zku8ulalvl] {
    transform: rotate(90deg);
    transition: transform 220ms cubic-bezier(0.32, 0.72, 0, 1);
}

.calendar-group-label--collapsed .calendar-group-toggle svg[b-zku8ulalvl] {
    transform: rotate(270deg);
}

.calendar-person[b-zku8ulalvl],
.calendar-time-cell[b-zku8ulalvl] {
    min-width: 0;
    min-height: var(--calendar-row-height, 76px);
    border-bottom: 1px solid var(--cal-line-soft);
}

.calendar-person[b-zku8ulalvl] {
    position: sticky;
    left: 0;
    z-index: var(--calendar-z-first-column, 50);
    display: flex;
    align-items: center;
    gap: 10px;
    overflow: hidden;
    border-right: 1px solid var(--cal-line);
    padding: 0 12px;
    background: var(--cal-surface);
}

.calendar-person-avatar[b-zku8ulalvl] {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 50%;
    color: white;
    background: #16181c;
    font-size: 0.76rem;
    font-weight: 950;
}

.calendar-person-text[b-zku8ulalvl] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.calendar-person-text strong[b-zku8ulalvl],
.calendar-person-text small[b-zku8ulalvl] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-person-text strong[b-zku8ulalvl] {
    color: var(--cal-text);
    font-size: 0.84rem;
    font-weight: 900;
    line-height: 1.1;
}

.calendar-person-text small[b-zku8ulalvl] {
    color: var(--cal-muted);
    font-size: 0.68rem;
    font-weight: 750;
    line-height: 1.1;
}

.calendar-time-cell[b-zku8ulalvl] {
    position: relative;
    overflow: visible;
    border-right: 1px solid var(--cal-line-soft);
    background: var(--cal-surface);
}

.calendar-time-cell:not(.calendar-time-cell--department)[b-zku8ulalvl] {
    cursor: pointer;
}

.calendar-time-cell[b-zku8ulalvl]::before {
    display: none;
    content: none;
}

.calendar-time-cell--weekend[b-zku8ulalvl] {
    background: var(--cal-weekend);
}

.calendar-time-cell--holiday[b-zku8ulalvl] {
    background: var(--cal-weekend);
}

.calendar-time-cell--department[b-zku8ulalvl] {
    min-height: 25px;
    border-bottom-color: var(--cal-line);
    background: var(--cal-panel);
}

/* Mitarbeiterspalten-Griff: volle Höhe (Tageskopf bis unten), klebt am Spaltenrand.
   Beim Greifen wird die Linie dicker und schwarz ("anklicken → größer → ziehen"). */
.calendar-column-resize-handle[b-zku8ulalvl] {
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(var(--calendar-people-width) - 4px);
    z-index: var(--calendar-z-first-column-control, 55);
    width: 9px;
    margin: 0;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: col-resize;
    touch-action: none;
}

.calendar-column-resize-handle[b-zku8ulalvl]::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    border-radius: 999px;
    background: var(--cal-line);
    transition: width 0.14s ease, background 0.14s ease, box-shadow 0.14s ease;
}

@media (hover: hover) {
    .calendar-column-resize-handle:hover[b-zku8ulalvl]::before {
        width: 3px;
        background: #80858d;
    }
}

.calendar-grid--resizing .calendar-column-resize-handle[b-zku8ulalvl]::before,
.calendar-column-resize-handle:active[b-zku8ulalvl]::before {
    width: 5px;
    background: #16181c;
    box-shadow: 0 0 0 1px rgba(22, 24, 28, 0.12);
}

.calendar-time-cell--department[b-zku8ulalvl]::before {
    display: none;
    content: none;
}

.calendar-time-cell--department.calendar-time-cell--day[b-zku8ulalvl] {
    background-color: var(--cal-panel);
}

.calendar-time-cell--day[b-zku8ulalvl] {
    background-image: repeating-linear-gradient(
        to right,
        transparent 0,
        transparent calc(100% / 24 - 1px),
        var(--cal-line-soft) calc(100% / 24 - 1px),
        var(--cal-line-soft) calc(100% / 24)
    );
    background-size: 100% 100%;
}

.calendar-time-cell--current-hour[b-zku8ulalvl]::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--calendar-current-hour-start);
    width: var(--calendar-current-hour-width);
    background: rgba(71, 85, 105, 0.08);
    box-shadow: inset 1px 0 0 rgba(71, 85, 105, 0.18), inset -1px 0 0 rgba(71, 85, 105, 0.18);
    pointer-events: none;
}

.calendar-time-slot-grid[b-zku8ulalvl] {
    position: absolute;
    inset: 0;
    z-index: var(--calendar-z-cell-overlay, 2);
    display: grid;
    grid-template-columns: repeat(var(--calendar-slot-count, 96), minmax(0, 1fr));
}

.calendar-time-slot[b-zku8ulalvl] {
    min-width: 0;
    border: none;
    padding: 0;
    background: transparent;
    cursor: pointer;
}

.calendar-time-slot:focus-visible[b-zku8ulalvl],
.calendar-time-slot--drag-target[b-zku8ulalvl] {
    background: rgba(22, 24, 28, 0.07);
    outline: none;
}

@media (hover: hover) {
    .calendar-time-slot:hover[b-zku8ulalvl] {
        background: rgba(22, 24, 28, 0.07);
        outline: none;
    }
}

.calendar-time-cell--drag-target-cell[b-zku8ulalvl] {
    box-shadow: inset 0 0 0 2px rgba(22, 24, 28, 0.2);
}

.calendar-vacation[b-zku8ulalvl] {
    position: absolute;
    /* Wie ein Lane-0-Termin positionieren, damit Termine NICHT mehr darüberliegen,
       sondern in eine neue Lane darunter wandern (Mitarbeiter-Zeile wächst entsprechend). */
    top: 6px;
    left: 4px;
    right: 4px;
    bottom: auto;
    height: calc(var(--calendar-lane-height, 56px) - 4px);
    z-index: var(--calendar-z-cell-overlay, 2);
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* Sanfte Tönung statt Vollfarbe: heller Pastellton der Art-Farbe als Fläche
       (deckend, damit Rasterlinien nicht durchscheinen), dunkle Art-Farben-Schrift,
       feiner getönter Rahmen + Farbkante links wie bei den Termin-Karten. */
    border: 1px solid rgba(22, 163, 74, 0.35);
    border-left: 4px solid #16a34a;
    border-radius: 6px;
    padding: 5px 7px;
    margin: 0;
    color: #166534;
    background: #e4f4ea;
    box-shadow: none;
    font: inherit;
    cursor: pointer;
}

/* Freistellung: bezahlt frei, aber kein Urlaubstag – blau statt grün, damit im Kalender
   sofort erkennbar ist, welche Art der Abwesenheit vorliegt. */
.calendar-vacation--freistellung[b-zku8ulalvl] {
    border-color: rgba(58, 91, 176, 0.35);
    border-left-color: #3a5bb0;
    color: #2f4b8f;
    background: #e7ecf6;
}

/* Offener Antrag („Antrag Urlaub/Freistellung/Krank"): gleiche Art-Farben, aber schraffiert
   und gestrichelt umrandet — auf einen Blick „noch nicht entschieden". */
.calendar-vacation--beantragt[b-zku8ulalvl] {
    border-style: dashed;
    border-left-style: solid;
    background-image: repeating-linear-gradient(-45deg, rgba(22, 163, 74, 0.13) 0 5px, transparent 5px 11px);
}

.calendar-vacation--freistellung.calendar-vacation--beantragt[b-zku8ulalvl] {
    background-image: repeating-linear-gradient(-45deg, rgba(58, 91, 176, 0.13) 0 5px, transparent 5px 11px);
}

/* Hinweis: der Antrags-Modifier für Krank steht bewusst NACH .calendar-sick weiter unten —
   dort deklariert diese Datei die Basis, und bei gleicher Spezifität gewinnt die spätere Regel. */

/* --- Kalender-Präsenz: Toolbar-Avatare + Popover „Gerade im Kalender" ------------- */

.calendar-presence-wrap[b-zku8ulalvl] {
    position: relative;
    display: inline-flex;
}

/* Bewusst NUR die Avatare — kein Pillen-Rahmen, überlappender Stapel wie in Google Docs. */
.calendar-presence-trigger[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: none;
    cursor: pointer;
}

.calendar-presence-trigger:focus-visible[b-zku8ulalvl] {
    outline: 2px solid #16181c;
    outline-offset: 2px;
}

.calendar-presence-stack[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
}

.calendar-presence-avatar[b-zku8ulalvl] {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #16181c;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.02em;
    object-fit: cover;
    box-shadow: 0 0 0 2px var(--cal-surface);
    user-select: none;
}

.calendar-presence-stack .calendar-presence-avatar + .calendar-presence-avatar[b-zku8ulalvl] {
    margin-left: -9px;
}

/* „+N" als eigener Kreis im Stapel. */
.calendar-presence-avatar--mehr[b-zku8ulalvl] {
    background: #ececef;
    color: #4c4d53;
    font-size: 0.66rem;
    font-weight: 800;
}

@media (hover: hover) {
    .calendar-presence-trigger:hover .calendar-presence-avatar[b-zku8ulalvl] {
        box-shadow: 0 0 0 2px var(--cal-panel-strong);
    }
}

.calendar-presence-popover[b-zku8ulalvl] {
    position: absolute;
    z-index: 201;
    top: calc(100% + 8px);
    right: 0;
    width: 264px;
    max-width: calc(100vw - 24px);
    padding: 10px 12px 11px;
    background: var(--cal-surface);
    border: 1px solid var(--cal-panel-strong);
    border-radius: 12px;
    box-shadow: 0 18px 40px -16px rgba(15, 23, 42, 0.35);
}

.calendar-presence-row[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 1px;
}

.calendar-presence-row .calendar-presence-avatar[b-zku8ulalvl] {
    box-shadow: none;
}

.calendar-presence-text[b-zku8ulalvl] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.calendar-presence-text strong[b-zku8ulalvl] {
    font-size: 13px;
    font-weight: 650;
    color: var(--cal-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-presence-text small[b-zku8ulalvl] {
    font-size: 11.5px;
    color: #85868c;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Offen-Anzeige auf der Termin-Karte: Mini-Avatar-Stapel oben rechts (max. 2).
   Kein pointer-events:none — der title-Hinweis braucht den Hover; Klicks bubbeln zum Termin. */
.calendar-appointment-viewer[b-zku8ulalvl] {
    position: absolute;
    top: 3px;
    right: 3px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
}

.calendar-appointment-viewer img[b-zku8ulalvl],
.calendar-appointment-viewer span[b-zku8ulalvl] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #16181c;
    color: #fff;
    font-size: 8px;
    font-weight: 800;
    object-fit: cover;
    box-shadow: 0 0 0 2px #fff, 0 1px 3px rgba(15, 23, 42, 0.35);
}

.calendar-appointment-viewer > * + *[b-zku8ulalvl] {
    margin-left: -5px;
}

/* Offen-Anzeige im Panel: rechts in der Tab-Leiste (feste Höhe — verschiebt beim
   Erscheinen/Verschwinden nie den Panel-Inhalt), grüner Punkt = gerade anwesend. */
.calendar-appt-tabs-viewers[b-zku8ulalvl] {
    margin-left: auto;
    align-self: center;
    display: inline-flex;
    align-items: center;
    padding-bottom: 4px;
}

.calendar-appt-tabs-viewers .calendar-presence-avatar[b-zku8ulalvl] {
    width: 24px;
    height: 24px;
    font-size: 9px;
    box-shadow: 0 0 0 2px var(--cal-surface);
}

.calendar-presence-stack--live[b-zku8ulalvl] {
    position: relative;
}

.calendar-presence-stack--live[b-zku8ulalvl]::after {
    content: "";
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #16a34a;
    box-shadow: 0 0 0 2px var(--cal-surface);
}

.calendar-vacation span[b-zku8ulalvl] {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.7rem;
    font-weight: 900;
    line-height: 1.3; /* Platz für Unterlängen (g, p) — bei 1 schneidet overflow:hidden sie ab */
}

.calendar-sick[b-zku8ulalvl] {
    position: absolute;
    /* Wie ein Lane-0-Termin positionieren, siehe .calendar-vacation. */
    top: 6px;
    left: 4px;
    right: 4px;
    bottom: auto;
    height: calc(var(--calendar-lane-height, 56px) - 4px);
    z-index: calc(var(--calendar-z-cell-overlay, 2) + 1);
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* Gleiche sanfte Tönung wie .calendar-vacation — in Rot. */
    border: 1px solid rgba(220, 38, 38, 0.35);
    border-left: 4px solid #dc2626;
    border-radius: 6px;
    padding: 5px 7px;
    margin: 0;
    color: #b91c1c;
    background: #fbe9e9;
    box-shadow: none;
    font: inherit;
    cursor: pointer;
}

/* Offener Antrag: schraffiert + gestrichelt wie beim Urlaub. MUSS nach .calendar-sick
   stehen — deren Shorthands `border` und `background` würden den Modifier sonst löschen. */
.calendar-sick--beantragt[b-zku8ulalvl] {
    border-style: dashed;
    border-left-style: solid;
    background-image: repeating-linear-gradient(-45deg, rgba(220, 38, 38, 0.11) 0 5px, transparent 5px 11px);
}

.calendar-sick span[b-zku8ulalvl] {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.7rem;
    font-weight: 900;
    line-height: 1.3; /* Platz für Unterlängen wie in .calendar-vacation span */
}

/* -- Abwesenheits-Vorschau: schlankes Info-Popover (bewusst reduzierter als die
   Termin-Vorschau) mit Farb-Akzent je Art (Urlaub grün, Freistellung blau, Krank rot). */
.calendar-absence-preview[b-zku8ulalvl] {
    position: fixed;
    top: var(--preview-y);
    left: clamp(140px, var(--preview-x), calc(100vw - 140px));
    z-index: 2251;
    width: 264px;
    max-width: calc(100vw - 16px);
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 14px 36px rgba(15, 23, 42, 0.2);
    transform: translate(-50%, calc(-100% - 10px));
}

/* Farbkante oben je Abwesenheits-Art – gleiche Formsprache wie die Termin-Vorschau. */
.calendar-absence-preview[b-zku8ulalvl]::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    border-radius: 9px 9px 0 0;
    background: var(--absence-accent, #16181c);
    pointer-events: none;
}

.calendar-absence-preview[b-zku8ulalvl]::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -8px;
    width: 14px;
    height: 14px;
    border-right: 1px solid #e4e4e7;
    border-bottom: 1px solid #e4e4e7;
    background: #ffffff;
    pointer-events: none;
    transform: translateX(-50%) rotate(45deg);
}

.calendar-absence-preview--urlaub[b-zku8ulalvl] { --absence-accent: #16a34a; }
.calendar-absence-preview--freistellung[b-zku8ulalvl] { --absence-accent: #3a5bb0; }
.calendar-absence-preview--krank[b-zku8ulalvl] { --absence-accent: #dc2626; }


.calendar-absence-preview-head[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 11px 12px 9px;
    border-bottom: 1px solid #ececef;
}

.calendar-absence-preview-avatar[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    object-fit: cover;
    background: #16181c;
    color: #ffffff;
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.02em;
}

.calendar-absence-preview-who[b-zku8ulalvl] {
    display: grid;
    gap: 1px;
    flex: 1;
    min-width: 0;
}

.calendar-absence-preview-who strong[b-zku8ulalvl] {
    overflow: hidden;
    color: #16181c;
    font-size: 0.84rem;
    font-weight: 950;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-absence-preview-who small[b-zku8ulalvl] {
    overflow: hidden;
    color: #80858d;
    font-size: 0.7rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-absence-preview-kind[b-zku8ulalvl] {
    flex: 0 0 auto;
    padding: 3px 8px;
    border-radius: 999px;
    background: var(--absence-accent, #16181c);
    color: #ffffff;
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.02em;
}

.calendar-absence-preview-range[b-zku8ulalvl] {
    display: grid;
    gap: 2px;
    padding: 10px 12px 11px;
    border-left: 3px solid var(--absence-accent, #16181c);
    margin: 8px 12px;
    border-radius: 2px;
    background: #f7f7f8;
}

.calendar-absence-preview-range strong[b-zku8ulalvl] {
    color: #16181c;
    font-size: 0.8rem;
    font-weight: 900;
}

.calendar-absence-preview-range small[b-zku8ulalvl] {
    color: #6b7078;
    font-size: 0.7rem;
    font-weight: 800;
}

.calendar-absence-preview-link[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: calc(100% - 24px);
    margin: 0 12px 11px;
    height: 31px;
    border: 1px solid #e4e4e7;
    border-radius: 7px;
    background: #ffffff;
    color: #16181c;
    font-size: 0.73rem;
    font-weight: 850;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.calendar-absence-preview-link:focus-visible[b-zku8ulalvl] {
    border-color: #16181c;
    background: #16181c;
    color: #fff;
    outline: none;
}

@media (hover: hover) {
    .calendar-absence-preview-link:hover[b-zku8ulalvl] {
        border-color: #16181c;
        background: #16181c;
        color: #fff;
    }
}

/* === Tages-Notiz: Bearbeiten-Popover am Tageskopf (fixiert an der Klickposition,
   losgelöst vom Grid — siehe Kommentar an .calendar-absence-preview). === */
.calendar-day-note-popover[b-zku8ulalvl] {
    position: fixed;
    top: min(var(--preview-y), calc(100dvh - 220px));
    left: clamp(140px, var(--preview-x), calc(100vw - 140px));
    transform: translateX(-50%);
    z-index: 2251;
    width: 276px;
    max-width: calc(100vw - 16px);
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 14px 36px rgba(15, 23, 42, 0.2);
    /* Schriftfamilie kommt aus der gemeinsamen Liste der losgelösten Panels (Dateikopf). */
}

.calendar-day-note-head[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 10px 12px 8px;
    color: #16181c;
}

/* Schließen-Kreuz im Kopf: sichtbarer Ausstieg ohne Speichern — Esc und Außenklick
   können es auch, sind aber nicht entdeckbar. */
.calendar-day-note-close[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin-left: 2px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #80858d;
    cursor: pointer;
}

@media (hover: hover) {
    .calendar-day-note-close:hover[b-zku8ulalvl] {
        background: #f2f2f4;
        color: #16181c;
    }
}

.calendar-day-note-head strong[b-zku8ulalvl] {
    font-size: 0.78rem;
    font-weight: 800;
}

.calendar-day-note-head span[b-zku8ulalvl] {
    margin-left: auto;
    color: #80858d;
    font-size: 0.7rem;
    font-weight: 750;
}

.calendar-day-note-input[b-zku8ulalvl] {
    display: block;
    box-sizing: border-box; /* kein globales border-box in der App — sonst liefe die Breite über */
    width: calc(100% - 24px);
    margin: 0 12px;
    padding: 7px 9px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    background: #ffffff;
    resize: none;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.4;
    color: #16181c;
}

.calendar-day-note-input:focus[b-zku8ulalvl] {
    border-color: #16181c;
    outline: none;
}

.calendar-day-note-input[b-zku8ulalvl]::placeholder {
    color: #80858d;
    font-weight: 600;
}

.calendar-day-note-meta[b-zku8ulalvl] {
    padding: 6px 12px 0;
    color: #80858d;
    font-size: 0.64rem;
    font-weight: 650;
}

.calendar-day-note-foot[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    padding: 9px 12px 11px;
}

.calendar-day-note-remove[b-zku8ulalvl] {
    margin-right: auto;
    border: 0;
    background: transparent;
    color: #80858d;
    font-size: 0.73rem;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}

@media (hover: hover) {
    .calendar-day-note-remove:hover[b-zku8ulalvl] {
        color: #16181c;
    }
}

.calendar-day-note-save[b-zku8ulalvl] {
    height: 29px;
    padding: 0 14px;
    border: 1px solid #16181c;
    border-radius: 8px;
    background: #16181c;
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 800;
    cursor: pointer;
}

@media (hover: hover) {
    .calendar-day-note-save:hover[b-zku8ulalvl] {
        background: #2e3238;
    }
}

.calendar-context-menu[b-zku8ulalvl] {
    position: fixed;
    --ctx-menu-width: 184px;
    --ctx-menu-height: 118px;
    top: min(var(--ctx-y), calc(100dvh - var(--ctx-menu-height) - 8px));
    left: min(var(--ctx-x), calc(100dvw - var(--ctx-menu-width) - 8px));
    z-index: 2251;
    width: var(--ctx-menu-width);
    max-width: calc(100vw - 16px);
    overflow: hidden;
    padding: 4px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.16);
}

.calendar-context-menu button:not(.calendar-context-backdrop)[b-zku8ulalvl] {
    width: 100%;
    min-height: 31px;
    display: flex;
    align-items: center;
    gap: 8px;
    border: 0;
    border-radius: 6px;
    padding: 0 8px;
    color: #16181c;
    background: #ffffff;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 730;
    text-align: left;
    white-space: nowrap;
    transition: background 0.12s, color 0.12s;
}

.calendar-context-menu button:focus-visible[b-zku8ulalvl] {
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .calendar-context-menu button:hover[b-zku8ulalvl] {
        color: #16181c;
        background: #efeff1;
        outline: none;
    }
}

.calendar-context-menu svg[b-zku8ulalvl] {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    opacity: 0.82;
}

.calendar-context-series-delete > svg[b-zku8ulalvl] {
    display: none;
}

.calendar-context-series-delete[b-zku8ulalvl]::before {
    content: "";
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' x2='18' y1='12' y2='18'/%3E%3Cline x1='12' x2='18' y1='18' y2='12'/%3E%3Crect width='14' height='14' x='8' y='8' rx='2' ry='2'/%3E%3Cpath d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' x2='18' y1='12' y2='18'/%3E%3Cline x1='12' x2='18' y1='18' y2='12'/%3E%3Crect width='14' height='14' x='8' y='8' rx='2' ry='2'/%3E%3Cpath d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/%3E%3C/svg%3E") center / contain no-repeat;
}

.calendar-context-menu .calendar-context-danger[b-zku8ulalvl] {
    color: #a33131;
}

.calendar-context-menu .calendar-context-danger:focus-visible[b-zku8ulalvl] {
    color: #9f1d1d;
    background: #fff1f1;
}

@media (hover: hover) {
    .calendar-context-menu .calendar-context-danger:hover[b-zku8ulalvl] {
        color: #9f1d1d;
        background: #fff1f1;
    }
}

.calendar-appointment-preview[b-zku8ulalvl] {
    position: fixed;
    top: var(--preview-y);
    left: clamp(170px, var(--preview-x), calc(100vw - 170px));
    z-index: 2251;
    width: 324px;
    max-width: calc(100vw - 16px);
    overflow: visible;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.24);
    transform: translate(-50%, calc(-100% - 10px));
}

/* Farbkante oben in der Terminfarbe (Baustellen-Status bzw. Terminfarbe) – verortet die
   Vorschau sofort beim zugehörigen Balken im Kalender. */
.calendar-appointment-preview[b-zku8ulalvl]::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    border-radius: 9px 9px 0 0;
    background: var(--appt-accent, #16181c);
    pointer-events: none;
}

.calendar-appointment-preview[b-zku8ulalvl]::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -8px;
    width: 14px;
    height: 14px;
    border-right: 1px solid #e4e4e7;
    border-bottom: 1px solid #e4e4e7;
    background: #f5f5f7;
    pointer-events: none;
    transform: translateX(-50%) rotate(45deg);
}

.calendar-appointment-preview-head[b-zku8ulalvl] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    padding: 16px 16px 11px;
    border-bottom: 1px solid #ececef;
}

.calendar-appointment-preview-head-text[b-zku8ulalvl] {
    display: grid;
    gap: 4px;
    flex: 1;
    min-width: 0;
}

.calendar-appointment-preview-eyebrow[b-zku8ulalvl] {
    color: var(--appt-accent, #16181c);
    font-size: 0.62rem;
    font-weight: 900;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.calendar-preview-jobsite-btn[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    background: #fff;
    color: #16181c;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.calendar-preview-jobsite-btn:focus-visible[b-zku8ulalvl] {
    border-color: #16181c;
    background: #16181c;
    color: #fff;
    outline: none;
}

@media (hover: hover) {
    .calendar-preview-jobsite-btn:hover[b-zku8ulalvl] {
        border-color: #16181c;
        background: #16181c;
        color: #fff;
        outline: none;
    }
}

.calendar-preview-jobsite-btn svg[b-zku8ulalvl] {
    width: 15px;
    height: 15px;
}

.calendar-appointment-preview-head strong[b-zku8ulalvl] {
    color: #16181c;
    font-size: 1.02rem;
    font-weight: 950;
    line-height: 1.18;
}

.calendar-appointment-preview-head small[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
    overflow: hidden;
    color: #80858d;
    font-size: 0.74rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-appointment-preview-head small svg[b-zku8ulalvl] {
    flex: 0 0 auto;
}

.calendar-appointment-preview-head small span[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
}

.calendar-appointment-preview-details[b-zku8ulalvl] {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 13px 16px 14px;
}

.calendar-appointment-preview-details div[b-zku8ulalvl] {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
}

.calendar-appointment-preview-details dt[b-zku8ulalvl],
.calendar-appointment-preview-details dd[b-zku8ulalvl] {
    margin: 0;
}

/* Label-Spalte = Icon; der Textname bleibt für Screenreader erhalten. */
.calendar-appointment-preview-details dt[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: #f4f4f6;
    color: #6b7078;
}

.calendar-appointment-preview-details dt span[b-zku8ulalvl] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.calendar-appointment-preview-details dd[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    color: #16181c;
    font-size: 0.79rem;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-appointment-preview-actions[b-zku8ulalvl] {
    display: grid;
    /* max-content als Untergrenze: „Duplizieren" darf nie zu „Duplizier…" abschneiden. */
    grid-template-columns: repeat(3, minmax(max-content, 1fr));
    align-items: center;
    gap: 5px;
    padding: 10px;
    border-top: 1px solid #ececef;
    border-radius: 0 0 9px 9px;
    background: #fafafb;
}

.calendar-preview-action[b-zku8ulalvl] {
    width: 100%;
    min-width: 0;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 0;
    border-radius: 7px;
    padding: 0 6px;
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 0.72rem;
    font-weight: 900;
    transition: background 0.16s, color 0.16s;
}

.calendar-preview-action svg[b-zku8ulalvl] {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
}

.calendar-preview-action span[b-zku8ulalvl] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Sekundär-Aktionen als echte Pill-Buttons (weiße Fläche + Rahmen) — keine nackten
   Textlinks; Bearbeiten bleibt der dunkle Primär-Button. FESTE Farbwerte statt
   var(--cal-*): die Vorschau hängt AUSSERHALB von .calendar-page am Body, dort
   existieren die Seiten-Variablen nicht (Deklaration würde komplett verworfen). */
.calendar-preview-action--danger[b-zku8ulalvl] {
    border: 1px solid #e4e4e7;
    color: #b91c1c;
    background: #ffffff;
}

.calendar-preview-action--danger:focus-visible[b-zku8ulalvl] {
    color: #ffffff;
    background: #dc2626;
    border-color: #dc2626;
    outline: none;
}

@media (hover: hover) {
    .calendar-preview-action--danger:hover[b-zku8ulalvl] {
        color: #ffffff;
        background: #dc2626;
        border-color: #dc2626;
        outline: none;
    }
}

.calendar-preview-action--copy[b-zku8ulalvl] {
    border: 1px solid #e4e4e7;
    color: #3c4148;
    background: #ffffff;
}

.calendar-preview-action--copy:focus-visible[b-zku8ulalvl] {
    color: #16181c;
    background: #e7e7ea;
    outline: none;
}

@media (hover: hover) {
    .calendar-preview-action--copy:hover[b-zku8ulalvl] {
        color: #16181c;
        background: #e7e7ea;
        outline: none;
    }
}

/* Bearbeiten = Primäraktion: standardmäßig gefüllt, Hover hellt leicht auf. */
.calendar-preview-action--edit[b-zku8ulalvl] {
    color: #ffffff;
    background: #16181c;
}

.calendar-preview-action--edit:focus-visible[b-zku8ulalvl] {
    color: #ffffff;
    background: #34383f;
    outline: none;
}

@media (hover: hover) {
    .calendar-preview-action--edit:hover[b-zku8ulalvl] {
        color: #ffffff;
        background: #34383f;
        outline: none;
    }
}

.calendar-appointment[b-zku8ulalvl] {
    position: absolute;
    z-index: var(--calendar-z-appointment, 6);
    box-sizing: border-box;
    container-type: inline-size;
    /* KEINE Mindestbreite in den Wochen-Ansichten: dort ist die Karte exakt so breit
       wie ihre Tagesspalte(n) — ein Minimum ließe sie bei gestauchtem Kalender
       (z. B. offenem Termin-Panel) über ihren Tag hinausragen. */
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    /* Monochrome Karte: weiß mit neutralem Rand. Die Statusfarbe kommt als Balken links (::before). */
    border: 1px solid #e6e7ea;
    border-radius: 10px;
    padding: 0;
    overflow: hidden;
    color: #16181c;
    background: #ffffff;
    cursor: pointer;
    font: inherit;
    text-align: left;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none; /* iPad/iOS Safari: ohne Prefix wird beim Touch-Ziehen Text markiert */
    -webkit-touch-callout: none; /* kein Lupen-/Auswahl-Popover beim Greifen des Rands */
    box-shadow:
        0 1px 1px rgba(15, 23, 42, 0.04),
        0 5px 12px -8px rgba(15, 23, 42, 0.22);
    transition: transform 0.16s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.16s ease, border-color 0.16s ease, background 0.16s ease;
}

/* Nur die Tagesansicht braucht ein Karten-Minimum: dort ist die Breite zeitproportional,
   und ein 15-Minuten-Termin wäre sonst wenige Pixel schmal und nicht mehr greifbar. */
[data-calendar-view="day"] .calendar-appointment[b-zku8ulalvl] {
    min-width: 36px;
}

/* Anzeige-Option „Zeilen abwechselnd hinterlegen": jede zweite Mitarbeiterzeile
   (Namensfeld UND Tageszellen) bekommt einen Hauch Grau — reine Lesehilfe. Die
   Zellen-Grundfarben (Wochenende/Feiertag/Heute) bleiben davon unberührt. */
[data-calendar-zebra="true"] .calendar-person.calendar-row--odd[b-zku8ulalvl],
[data-calendar-zebra="true"] .calendar-time-cell.calendar-row--odd:not(.calendar-time-cell--weekend):not(.calendar-time-cell--holiday):not(.calendar-time-cell--current-hour)[b-zku8ulalvl] {
    background: #fafafb;
}

/* Anzeige-Option „Bereichs-Köpfe schlank": aus der Bereichszeile (25px) wird eine
   dünne Trennlinie mit kleinem Namen — mehr Mitarbeiter gleichzeitig sichtbar. */
[data-calendar-slim-groups="true"] .calendar-group-label[b-zku8ulalvl],
[data-calendar-slim-groups="true"] .calendar-time-cell--department[b-zku8ulalvl] {
    min-height: 17px;
}

[data-calendar-slim-groups="true"] .calendar-group-name[b-zku8ulalvl] {
    font-size: 0.58rem;
}

[data-calendar-slim-groups="true"] .calendar-group-toggle[b-zku8ulalvl] {
    width: 16px;
    height: 16px;
}

[data-calendar-slim-groups="true"] .calendar-group-toggle svg[b-zku8ulalvl],
[data-calendar-slim-groups="true"] .calendar-group-pin svg[b-zku8ulalvl] {
    width: 11px;
    height: 11px;
}

/* Anzeige-Option „Ohne Profilbilder": Mitarbeiterspalte nur mit Namen. */
[data-calendar-no-avatars="true"] .calendar-person-avatar[b-zku8ulalvl] {
    display: none;
}

/* Anzeige-Option „Kompakte Termine": einzeilige Balken (Meta-Zeile weg), flachere
   Abwesenheits-Balken — die Lane-Geometrie (32/37px) rechnet der Server passend. */
[data-calendar-compact="true"] .calendar-appointment-meta[b-zku8ulalvl] {
    display: none;
}

[data-calendar-compact="true"] .calendar-appointment-title-text[b-zku8ulalvl] {
    font-size: 0.72rem;
}

/* Die Höhe der Abwesenheits-Balken folgt seit den Darstellungs-Optionen der Lane-Variable
   (--calendar-lane-height, siehe CalendarGridStyle) — Kompakt/Uhrzeit-aus/Dichte inklusive. */

/* ================================================================
   Darstellungs-Optionen (Runde 2026-07-31): Terminkarten, Raster,
   Verhalten, Stufen. Jede Option hängt an einem data-Attribut des
   .calendar-grid; die Lane-Geometrie rechnet der Server passend.
   ================================================================ */

/* --- „Titel mehrzeilig": 2-Zeilen-Clamp — nur in der normalen Kartenhöhe,
   der einzeilige Kompakt-Modus bleibt einzeilig. --- */
[data-calendar-wrap-titles="true"]:not([data-calendar-compact="true"]) .calendar-appointment-title[b-zku8ulalvl] {
    align-items: flex-start;
}

[data-calendar-wrap-titles="true"]:not([data-calendar-compact="true"]) .calendar-appointment-title-text[b-zku8ulalvl] {
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* --- „Kunde auf der Karte": gedimmter Zusatz hinter dem Titel. --- */
.calendar-appointment-customer[b-zku8ulalvl] {
    flex: 0 1 auto;
    min-width: 24px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #6b7075;
    font-size: 0.66rem;
    font-weight: 650;
}

@container (max-width: 150px) {
    .calendar-appointment-customer[b-zku8ulalvl] {
        display: none;
    }
}

/* --- „Ort auf der Karte": PLZ/Ort gedimmt hinter Titel/Kunde — gleiche Optik wie der Kunde.
   ABER bewusst OHNE dessen min-width: der Ort ist der nachrangigste Zusatz und muss beim
   Flex-Ausgleich zuerst weichen. Mit einem Boden von 24px (wie beim Kunden) bliebe er stehen,
   während der Titel — als einziges Element mit min-width: 0 — auf null zusammenfällt. */
.calendar-appointment-ort[b-zku8ulalvl] {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #6b7075;
    font-size: 0.66rem;
    font-weight: 650;
}

/* Höhere Schwelle als beim Kunden (150px): der Ort ist der VIERTE Anwärter auf dieselbe
   Zeile (Titel, Kunde, ×N, Icons). Ab hier ist die Karte zu schmal für alle vier, und der
   Ort verschwindet zuerst — darunter gilt wieder das für Kunde+Titel austarierte Layout. */
@container (max-width: 210px) {
    .calendar-appointment-ort[b-zku8ulalvl] {
        display: none;
    }
}

/* --- „Personen-Zahl": kleines ×N, rechtsbündig vor den Indikator-Icons. --- */
.calendar-appointment-persons[b-zku8ulalvl] {
    flex: 0 0 auto;
    margin-left: auto;
    color: #7a7f86;
    font-size: 0.62rem;
    font-weight: 750;
    letter-spacing: 0.02em;
}

/* Stehen ×N und Indikator-Icons zusammen, teilt nur EINER den freien Platz auf —
   sonst zögen zwei auto-Margins die Personen-Zahl in die Kartenmitte. */
.calendar-appointment-persons + .calendar-appointment-indicators[b-zku8ulalvl] {
    margin-left: 4px;
}

@container (max-width: 110px) {
    .calendar-appointment-persons[b-zku8ulalvl] {
        display: none;
    }
}

/* --- „Indikator-Icons": Mini-Symbole für Notiz/Chat/Fahrzeug rechts im Titel. --- */
.calendar-appointment-indicators[b-zku8ulalvl] {
    flex: 0 0 auto;
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: #7a7f86;
}

.calendar-appointment-indicators svg[b-zku8ulalvl] {
    width: 11px;
    height: 11px;
    flex: 0 0 auto;
}

@container (max-width: 110px) {
    .calendar-appointment-indicators[b-zku8ulalvl] {
        display: none;
    }
}

/* --- Kontrast-/Beamermodus: kräftigere Linien + Schrift. --- */
.calendar-grid[data-calendar-contrast="true"][b-zku8ulalvl] {
    --cal-line: #8f96a3;
    --cal-line-soft: #b7bdc7;
}

[data-calendar-contrast="true"] .calendar-appointment[b-zku8ulalvl] {
    border-color: #b3b8c0;
}

[data-calendar-contrast="true"] .calendar-appointment-title[b-zku8ulalvl] {
    font-weight: 850;
}

[data-calendar-contrast="true"] .calendar-appointment-meta[b-zku8ulalvl] {
    color: #494e56;
    font-weight: 700;
}

[data-calendar-contrast="true"] .calendar-day-head > span[b-zku8ulalvl] {
    font-weight: 950;
}

[data-calendar-contrast="true"] .calendar-day-head > strong[b-zku8ulalvl],
[data-calendar-contrast="true"] .calendar-person-text small[b-zku8ulalvl] {
    color: #494e56;
}

[data-calendar-contrast="true"] .calendar-week-head[b-zku8ulalvl] {
    color: #494e56;
}

/* --- Zoom-Stufen (nur „Mehrere Wochen"): Tagesspalten schmaler/breiter. --- */
.calendar-grid[data-calendar-zoom="minimal"][b-zku8ulalvl] {
    --calendar-multiweek-day-width: max(64px, calc((100vw - var(--calendar-people-width) - 48px) / 14));
}

.calendar-grid[data-calendar-zoom="narrow"][b-zku8ulalvl] {
    --calendar-multiweek-day-width: max(88px, calc((100vw - var(--calendar-people-width) - 48px) / 10));
}

.calendar-grid[data-calendar-zoom="wide"][b-zku8ulalvl] {
    --calendar-multiweek-day-width: max(150px, calc((100vw - var(--calendar-people-width) - 48px) / 5));
}

/* --- Dichte-Stufen: Schrift + Abstände (die Lane-Höhen skaliert der Server mit). --- */
[data-calendar-density="compact"] .calendar-appointment-title[b-zku8ulalvl] {
    font-size: 0.72rem;
}

[data-calendar-density="compact"] .calendar-appointment-meta[b-zku8ulalvl] {
    font-size: 0.6rem;
}

[data-calendar-density="compact"] .calendar-appointment-content[b-zku8ulalvl] {
    gap: 2px;
    padding: 4px 8px;
}

[data-calendar-density="compact"] .calendar-person-text strong[b-zku8ulalvl] {
    font-size: 0.78rem;
}

[data-calendar-density="compact"] .calendar-person-text small[b-zku8ulalvl] {
    font-size: 0.62rem;
}

[data-calendar-density="compact"] .calendar-day-head > span[b-zku8ulalvl] {
    font-size: 0.72rem;
}

[data-calendar-density="compact"] .calendar-day-head > strong[b-zku8ulalvl] {
    font-size: 0.62rem;
}

[data-calendar-density="compact"] .calendar-vacation span[b-zku8ulalvl],
[data-calendar-density="compact"] .calendar-sick span[b-zku8ulalvl] {
    font-size: 0.64rem;
}

[data-calendar-density="roomy"] .calendar-appointment-title[b-zku8ulalvl] {
    font-size: 0.84rem;
}

[data-calendar-density="roomy"] .calendar-appointment-meta[b-zku8ulalvl] {
    font-size: 0.7rem;
}

[data-calendar-density="roomy"] .calendar-appointment-content[b-zku8ulalvl] {
    gap: 5px;
    padding: 8px 12px;
}

[data-calendar-density="roomy"] .calendar-person-text strong[b-zku8ulalvl] {
    font-size: 0.9rem;
}

[data-calendar-density="roomy"] .calendar-person-text small[b-zku8ulalvl] {
    font-size: 0.72rem;
}

[data-calendar-density="roomy"] .calendar-day-head > span[b-zku8ulalvl] {
    font-size: 0.84rem;
}

[data-calendar-density="roomy"] .calendar-day-head > strong[b-zku8ulalvl] {
    font-size: 0.72rem;
}

/* Farbiger Status-Balken am linken Anfang der Termin-Karte (ersetzt den Status-Punkt).
   Sitzt am Content (nicht an der Karte), damit er bei mehrtägigen Balken in „Mehrere Wochen"
   MIT der klebenden (position: sticky) Beschriftung mitwandert, statt am – ggf. weggescrollten –
   Kartenanfang zurückzubleiben. Eigene abgerundete Ecken links für den overflow:visible-Fall. */
.calendar-appointment-content[b-zku8ulalvl]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    z-index: 1;
    background: var(--appt-color, #16181c);
    border-top-left-radius: 9px;
    border-bottom-left-radius: 9px;
    pointer-events: none;
}

/* --- Status im Kontextmenü ------------------------------------------------- */
/* Erste Zeile des Menüs: aktueller Baustellen-Status; Klick tauscht die Aktionen
   gegen die Status-Auswahl (kein zweites, verschachteltes Popover). */
.calendar-context-status-trigger[b-zku8ulalvl] {
    --jobsite-status-color: #16181c;
    border-bottom: 1px solid var(--cal-line-soft);
}

.calendar-context-status-trigger .calendar-appt-status-dot[b-zku8ulalvl] {
    flex: 0 0 auto;
}

.calendar-context-status-trigger svg:last-child[b-zku8ulalvl] {
    margin-left: auto;
    color: var(--cal-muted);
}

.calendar-context-status-back[b-zku8ulalvl] {
    border-bottom: 1px solid var(--cal-line-soft);
    color: var(--cal-muted);
}

.calendar-context-status-list[b-zku8ulalvl] {
    max-height: min(300px, 50vh);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 4px 0;
}

.calendar-context-status-list .calendar-appt-status-option[b-zku8ulalvl] {
    width: 100%;
}

/* --- Status-Legende in der Toolbar ----------------------------------------- */
/* Legende: Hülle kommt von .calendar-view-popover — hier nur das Innen-Padding des Inhalts. */
.calendar-legend-popover .calendar-view-body[b-zku8ulalvl] {
    padding: 6px 12px 11px;
}

.calendar-legend-title[b-zku8ulalvl] {
    margin-bottom: 4px;
    color: var(--cal-text);
    font-size: 0.78rem;
    font-weight: 800;
}

.calendar-legend-phase[b-zku8ulalvl] {
    margin: 8px 0 3px;
    color: var(--cal-muted);
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.calendar-legend-item[b-zku8ulalvl] {
    --jobsite-status-color: #16181c;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 3px 0;
    color: var(--cal-text);
    font-size: 0.78rem;
    font-weight: 700;
}

.calendar-legend-note[b-zku8ulalvl] {
    margin-top: 9px;
    border-top: 1px solid var(--cal-line-soft);
    padding-top: 7px;
    color: var(--cal-muted);
    font-size: 0.7rem;
    font-weight: 650;
    line-height: 1.35;
}

/* Zweispaltiger Options-Körper der Darstellung: zwei FESTE Spalten-Container
   (links die Häkchen-Gruppen, rechts Raster/Verhalten + die drei Stufen-Schalter
   unten) — so austariert, dass nichts scrollen muss. Füllen und Scrollen (Notnagel
   für kleine Fenster) kommt von der ZUSÄTZLICHEN Klasse .calendar-view-body. */
.calendar-darstellung-body[b-zku8ulalvl] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-content: start;
}

.calendar-darstellung-col[b-zku8ulalvl] {
    min-width: 0;
}

/* Die Spalte streckt sich als Grid-Item auf die Höhe der höheren Nachbarin —
   der Trennstrich läuft also immer durch. */
.calendar-darstellung-col:first-child[b-zku8ulalvl] {
    border-right: 1px solid var(--cal-line-soft);
}

/* Mittlere Viewports (iPad quer, schmales Fenster): das links verankerte Darstellung-
   Popover darf rechts nicht aus dem Bild ragen — erst schmaler zweispaltig, dann einspaltig. */
@media (max-width: 1100px) {
    .calendar-darstellung-popover[b-zku8ulalvl] {
        width: 420px;
    }
}

@media (max-width: 760px) {
    .calendar-darstellung-popover[b-zku8ulalvl] {
        width: 300px;
    }

    .calendar-darstellung-body[b-zku8ulalvl] {
        grid-template-columns: 1fr;
    }

    .calendar-darstellung-col:first-child[b-zku8ulalvl] {
        border-right: none;
    }

    /* Gestapelt folgt unter der letzten linken Gruppe direkt die rechte Spalte —
       der (zweispaltig überflüssige) Trennstrich muss dort wieder her. */
    .calendar-darstellung-col:first-child .calendar-filter-group:last-child[b-zku8ulalvl] {
        border-bottom: 1px solid var(--cal-line-soft);
    }
}

/* Auf schmalen Screens öffnet das Ansicht-Popover als fixiertes Sheet unter dem
   App-Header — links verankerte Popover liefen sonst rechts aus dem Viewport.
   (Steht bewusst NACH den Basisregeln, sonst überschrieben.) */
@media (max-width: 700px) {
    .calendar-view-popover[b-zku8ulalvl] {
        position: fixed;
        top: calc(var(--app-header-h, 56px) + 12px);
        right: 12px;
        left: 12px;
        width: auto;
        max-width: none;
        height: auto;
        max-height: calc(100dvh - var(--app-header-h, 56px) - 24px);
    }

    /* Im Vollbild gibt es keine App-Kopfzeile — das fixierte Sheet rückt nach oben.
       Banner (bleibt im Fluss) und Safe-Area-Inset (ohne Header von niemandem
       absorbiert) müssen weiter freigehalten werden. */
    .calendar-page--fullscreen .calendar-view-popover[b-zku8ulalvl] {
        top: calc(var(--app-banner-h, 0px) + var(--app-safe-top, 0px) + 12px);
        max-height: calc(100dvh - var(--app-banner-h, 0px) - var(--app-safe-top, 0px) - 24px);
    }
}

.calendar-filter-label small[b-zku8ulalvl] {
    margin-left: 4px;
    color: var(--cal-muted);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

/* Dreistufen-Schalter (Zoom/Dichte) im Darstellung-Popover. */
.calendar-seg[b-zku8ulalvl] {
    display: flex;
    gap: 4px;
    padding: 3px;
    border-radius: 8px;
    background: var(--cal-panel);
}

.calendar-seg-btn[b-zku8ulalvl] {
    flex: 1;
    min-width: 0;
    height: 26px;
    border: 0;
    border-radius: 6px;
    padding: 0 4px;
    background: transparent;
    color: var(--cal-text);
    font-size: 0.7rem;
    font-weight: 750;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
}

.calendar-seg-btn--active[b-zku8ulalvl] {
    background: var(--cal-text);
    color: #ffffff;
}

.calendar-seg--off .calendar-seg-btn[b-zku8ulalvl] {
    color: var(--cal-muted);
    cursor: not-allowed;
}

.calendar-seg--off .calendar-seg-btn--active[b-zku8ulalvl] {
    background: var(--cal-line);
    color: #ffffff;
}

@media (hover: hover) {
    .calendar-seg:not(.calendar-seg--off) .calendar-seg-btn:not(.calendar-seg-btn--active):hover[b-zku8ulalvl] {
        background: #e9eaec;
    }
}

/* Zweites Mini-Label innerhalb einer Gruppe (Zoom & Dichte teilen sich eine Spalte). */
.calendar-filter-label--stacked[b-zku8ulalvl] {
    margin-top: 9px;
}

/* --- Vollbild-Knopf rechts in der Toolbar (Büro-Monitor) --- */
.calendar-fullscreen-btn[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid var(--cal-line);
    border-radius: 9px;
    background: var(--cal-surface);
    color: var(--cal-text);
    cursor: pointer;
}

@media (hover: hover) {
    .calendar-fullscreen-btn:hover[b-zku8ulalvl] {
        background: var(--cal-panel);
    }
}

/* === Termin-Panel (rechts angedockter Editor, ersetzt das frühere Modal) ===
   Eine Spalte: Kopf (Titel + Status) → Feldzeilen (Was/Zeit/Team/Fahrzeuge) →
   Notiz|Chat → permanente Aktionsleiste. Auswahl-Listen erscheinen als Ebene
   über der Panelfläche; der Entwurf selbst liegt als Ghost im echten Board. */
.calendar-appt-panel[b-zku8ulalvl] {
    position: relative;
    z-index: 5;
    flex: 0 0 460px;
    width: 460px;
    display: flex;
    flex-direction: column;
    min-height: 0;
    /* Karte in Kalender-Optik: gleicher Rahmen/Radius/Schatten wie .calendar-scroller,
       mit demselben Außenabstand wie das Board-Padding (oben 10, rechts/unten 12). */
    margin: 10px 12px 12px 0;
    border: 1px solid var(--cal-line);
    border-radius: 8px;
    background: var(--cal-surface);
    box-shadow: 0 16px 36px rgba(22, 32, 42, 0.08);
    animation: calendar-appt-panel-in-b-zku8ulalvl 0.34s cubic-bezier(0.32, 0.72, 0, 1) both;
}

@keyframes calendar-appt-panel-in-b-zku8ulalvl {
    from {
        transform: translateX(26px);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* --- Kopf ------------------------------------------------------------------ */
.calendar-appt-panel-head[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 9px;
    border-bottom: 1px solid #e4e4e7;
    border-radius: 7px 7px 0 0; /* folgt der Karten-Rundung (8px − 1px Rahmen) */
    padding: 12px 16px 11px;
    background: linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%);
}

.calendar-appt-panel-head-row[b-zku8ulalvl] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.calendar-appt-panel-head-text[b-zku8ulalvl] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.calendar-appt-panel-head-text h2[b-zku8ulalvl] {
    margin: 0;
    color: #16181c;
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.01em;
}

.calendar-appt-panel-kicker[b-zku8ulalvl] {
    color: #80858d;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.calendar-appt-panel-close[b-zku8ulalvl] {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    display: inline-grid;
    place-items: center;
    border: 0;
    border-radius: 9px;
    color: #3c4148;
    background: transparent;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.calendar-appt-panel-close:focus-visible[b-zku8ulalvl] {
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .calendar-appt-panel-close:hover[b-zku8ulalvl] {
        color: #16181c;
        background: #efeff1;
    }
}

/* --- Rumpf: Feldzeilen + Arbeitsbereich ------------------------------------ */
.calendar-appt-panel-scroll[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    /* Bei Platznot scrollt der Rumpf (Kopf + Aktionsleiste bleiben stehen). Ein nach
       unten ragendes Datums-/Serien-Popup vergrößert einfach den Scrollbereich —
       horizontal ragt keines heraus, es wird also nichts abgeschnitten. */
    overflow-y: auto;
    overscroll-behavior: contain;
}

.calendar-appt-fields[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 16px 10px;
}

/* Eine Feldzeile: zeigt immer den IST-Zustand des Entwurfs; Klick öffnet die
   passende Auswahl-Ebene. Ruhige Karte statt dauerhaft offener Listen. */
.calendar-appt-field[b-zku8ulalvl] {
    position: relative;
    min-height: 52px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #e4e4e7;
    border-radius: 13px;
    padding: 7px 10px;
    background: #ffffff;
}

.calendar-appt-field--btn[b-zku8ulalvl] {
    width: 100%;
    border: 1px solid #e4e4e7;
    cursor: pointer;
    font: inherit;
    text-align: left;
    transition: border-color 0.15s, background 0.15s, transform 0.12s;
}

.calendar-appt-field--btn:focus-visible[b-zku8ulalvl] {
    border-color: #16181c;
    outline: none;
}

@media (hover: hover) {
    .calendar-appt-field--btn:hover:not(:disabled)[b-zku8ulalvl] {
        border-color: #b6b9bf;
        background: #fafafa;
    }
}

.calendar-appt-field--btn:disabled[b-zku8ulalvl] {
    cursor: not-allowed;
    opacity: 0.6;
}

/* Belegt vs. leer auf einen Blick: belegte Zeilen sind solide Karten mit fettem
   Wert; LEERE Zeilen sind gestrichelt, blass und zeigen ein Plus. Die Icons stehen
   bewusst nackt (ohne Kachel) — nur ein dezenter grauer Marker vor dem Label. */
.calendar-appt-field-icon[b-zku8ulalvl] {
    flex: 0 0 auto;
    width: 20px;
    display: inline-grid;
    place-items: center;
    color: #3c4148;
}

.calendar-appt-field--empty[b-zku8ulalvl] {
    border-style: dashed;
    border-color: #d4d4d9;
    background: #fcfcfd;
}

.calendar-appt-field--empty .calendar-appt-field-icon[b-zku8ulalvl] {
    color: #b6b9bf;
}

/* Leere Felder lesen sich bewusst „leicht": normale Schriftstärke statt fett.
   (Selektor muss die Basis `.calendar-appt-field-text strong` überbieten.) */
.calendar-appt-field--empty .calendar-appt-field-text strong[b-zku8ulalvl] {
    color: #80858d;
    font-weight: 500;
}

.calendar-appt-field--empty .calendar-appt-field-label[b-zku8ulalvl] {
    color: #b6b9bf;
}

.calendar-appt-field--empty .calendar-appt-field-chev[b-zku8ulalvl] {
    color: #9a9ea6;
}

@media (hover: hover) {
    .calendar-appt-field--btn.calendar-appt-field--empty:hover:not(:disabled)[b-zku8ulalvl] {
        border-color: #16181c;
        background: #ffffff;
    }
}

.calendar-appt-field--invalid[b-zku8ulalvl],
.calendar-appt-field--empty.calendar-appt-field--invalid[b-zku8ulalvl] {
    border-color: #d92c2c;
}

.calendar-appt-field-text[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.calendar-appt-field-label[b-zku8ulalvl] {
    color: #80858d;
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.calendar-appt-field-text strong[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    color: #16181c;
    font-size: 0.86rem;
    font-weight: 800;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-appt-field-text small[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    color: #80858d;
    font-size: 0.72rem;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-appt-field-chev[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    color: #b6b9bf;
}

.calendar-appt-field-count[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: #16181c;
    color: #ffffff;
    font-size: 0.64rem;
    font-weight: 800;
    font-style: normal;
}

/* „Was"-Zeile mit Baustelle: Hauptfläche (öffnet Auswahl) + Info-Chevron + ✕ */
.calendar-appt-field-main[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.calendar-appt-field-main .calendar-appt-field-text[b-zku8ulalvl] {
    flex: 1 1 auto;
}

.calendar-appt-field-clear[b-zku8ulalvl],
.calendar-appt-field-swap[b-zku8ulalvl] {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    display: inline-grid;
    place-items: center;
    border: 0;
    border-radius: 9px;
    color: #80858d;
    background: transparent;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.calendar-appt-field-clear:focus-visible[b-zku8ulalvl],
.calendar-appt-field-swap:focus-visible[b-zku8ulalvl] {
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .calendar-appt-field-clear:hover[b-zku8ulalvl],
    .calendar-appt-field-swap:hover[b-zku8ulalvl] {
        color: #16181c;
        background: #efeff1;
    }
}

/* Titel-Feld unter der Baustellen-Zeile (Stift-Toggle): eigener Titel, der die
   Anzeige im Kalender überschreibt. */
.calendar-appt-title-edit[b-zku8ulalvl] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.calendar-appt-title-edit span[b-zku8ulalvl] {
    color: #80858d;
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.calendar-appt-title-edit input[b-zku8ulalvl] {
    height: 36px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    padding: 0 10px;
    background: #ffffff;
    color: #16181c;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 700;
}

.calendar-appt-title-edit input:focus-visible[b-zku8ulalvl] {
    border-color: #16181c;
    outline: none;
}

.calendar-appt-title-edit input[b-zku8ulalvl]::placeholder {
    color: #b6b9bf;
    font-weight: 600;
}

.calendar-appt-field-swap--active[b-zku8ulalvl] {
    color: #16181c;
    background: #efeff1;
}

/* --- Freier Termin: Titel-Inline-Feld + Adresse ---------------------------- */
.calendar-appt-custom-title[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.calendar-appt-custom-title input[b-zku8ulalvl] {
    width: 100%;
    border: 0;
    padding: 0;
    background: transparent;
    color: #16181c;
    font: inherit;
    font-size: 0.86rem;
    font-weight: 800;
}

.calendar-appt-custom-title input:focus-visible[b-zku8ulalvl] {
    outline: none;
}

.calendar-appt-custom-title input[b-zku8ulalvl]::placeholder {
    color: #b6b9bf;
    font-weight: 700;
}

.calendar-appt-custom-address[b-zku8ulalvl] {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 8px;
}

.calendar-appt-custom-address label[b-zku8ulalvl] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.calendar-appt-custom-address span[b-zku8ulalvl] {
    color: #80858d;
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.calendar-appt-custom-address input[b-zku8ulalvl] {
    height: 36px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    padding: 0 10px;
    background: #ffffff;
    color: #16181c;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 700;
}

.calendar-appt-custom-address input:focus-visible[b-zku8ulalvl] {
    border-color: #16181c;
    outline: none;
}

.calendar-appt-custom-address input[b-zku8ulalvl]::placeholder {
    color: #b6b9bf;
    font-weight: 600;
}

/* --- Zeit-Zeile: Start | Ende | Ganztägig ---------------------------------- */
.calendar-appt-time-grid[b-zku8ulalvl] {
    position: relative; /* Bezug für die Datums-Popups, siehe unten */
    display: grid;
    /* Start | Dauer | Ende — der Auftrags-Blitz hat seine eigene Zeile darunter. */
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 8px;
}

/* Zweite Zeit-Zeile: Auftrags-Blitz (voll beschriftet) + Ganztägig-Schalter. */
.calendar-appt-turbo-row[b-zku8ulalvl] {
    display: flex;
    align-items: stretch;
    gap: 8px;
}

/* Auftrags-Blitz — gleiche Formsprache wie die „Turbo"-Vorschlagsbuttons im Aufmaß
   (gestrichelter Rahmen = übernimmt einen berechneten Vorschlag). */
.calendar-appt-turbo[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 38px;
    border: 1.5px dashed #16181c;
    border-radius: 10px;
    background: #efeff1;
    color: #16181c;
    cursor: pointer;
}

@media (hover: hover) {
    .calendar-appt-turbo:hover[b-zku8ulalvl] {
        border-style: solid;
        background: #e4e4e7;
    }
}

.calendar-appt-turbo-text[b-zku8ulalvl] {
    overflow: hidden;
    font-size: 0.78rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Der Ganztägig-Schalter zieht auf die Blitz-Höhe auf und teilt sich die Breite der
   rechten Spalte mit „Aus Serie entfernen" in der Zeile darunter — bündige Kante. */
.calendar-appt-turbo-row .calendar-edit-toggle[b-zku8ulalvl] {
    height: auto;
    min-height: 38px;
    flex: 0 0 118px;
    width: 118px;
    justify-content: center;
    padding: 0 6px;
}

/* --- Dauer-Feld zwischen Start und Ende: Termin-Länge in Arbeitstagen. --------------
   Gleiche Feld-Optik wie die Datums-Felder (Label oben, Wert darunter); Klick öffnet
   die Schnellwahl. Das Ende rückt automatisch — nie mehr im Datepicker verlängern. */
.calendar-appt-duration-wrap[b-zku8ulalvl] {
    min-width: 0;
    display: flex;
}

.calendar-appt-duration[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-height: 44px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 2px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    padding: 6px 10px;
    background: #ffffff;
    color: #16181c;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}

.calendar-appt-duration > span[b-zku8ulalvl] {
    color: #80858d;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.calendar-appt-duration > strong[b-zku8ulalvl] {
    font-size: 0.82rem;
    font-weight: 850;
    white-space: nowrap;
}

@media (hover: hover) {
    .calendar-appt-duration:hover[b-zku8ulalvl] {
        border-color: #16181c;
    }
}

.calendar-appt-duration--open[b-zku8ulalvl] {
    border-color: #16181c;
}

/* Kleines Popup unter der Zeit-Zeile — hängt wie die Datums-Popups am Zeilen-Raster
   (position: relative dort), damit es nie aus dem Panel läuft. Außenklick schließt
   über den Outside-Mechanismus des Preview-Moduls (kein Klick-Schlucker). */
.calendar-appt-duration-popup[b-zku8ulalvl] {
    position: absolute;
    top: calc(100% + 7px);
    left: 0;
    right: 0;
    z-index: 2199;
    max-width: 316px;
    margin-inline: auto;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    padding: 10px 12px 9px;
    background: #ffffff;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.22), 0 7px 18px rgba(15, 23, 42, 0.1);
}

.calendar-appt-duration-title[b-zku8ulalvl] {
    margin-bottom: 7px;
    color: #16181c;
    font-size: 0.74rem;
    font-weight: 800;
}

.calendar-appt-duration-shortcuts[b-zku8ulalvl] {
    display: flex;
    gap: 6px;
}

.calendar-appt-duration-shortcut[b-zku8ulalvl] {
    flex: 1 1 0;
    min-width: 0;
    height: 32px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    background: #ffffff;
    color: #16181c;
    font-size: 0.82rem;
    font-weight: 800;
    cursor: pointer;
}

@media (hover: hover) {
    .calendar-appt-duration-shortcut:hover[b-zku8ulalvl] {
        border-color: #16181c;
        background: #efeff1;
    }
}

.calendar-appt-duration-shortcut--active[b-zku8ulalvl] {
    border-color: #16181c;
    background: #16181c;
    color: #ffffff;
}

.calendar-appt-duration-custom[b-zku8ulalvl] {
    display: flex;
    gap: 6px;
    margin-top: 7px;
}

.calendar-appt-duration-custom input[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-width: 0;
    height: 32px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    padding: 0 9px;
    background: #ffffff;
    color: #16181c;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 700;
}

.calendar-appt-duration-custom input:focus[b-zku8ulalvl] {
    border-color: #16181c;
    outline: none;
}

.calendar-appt-duration-custom button[b-zku8ulalvl] {
    flex: 0 0 auto;
    height: 32px;
    padding: 0 12px;
    border: 1px solid #16181c;
    border-radius: 8px;
    background: #16181c;
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 800;
    cursor: pointer;
}

@media (hover: hover) {
    .calendar-appt-duration-custom button:hover[b-zku8ulalvl] {
        background: #2e3238;
    }
}

.calendar-appt-duration-note[b-zku8ulalvl] {
    margin-top: 7px;
    color: #80858d;
    font-size: 0.64rem;
    font-weight: 650;
    line-height: 1.35;
}



/* Datums-Popups im Panel an der GANZEN Zeit-Zeile ausrichten statt am einzelnen Feld:
   Der Picker selbst wird dafür static, sodass das Popup am Raster hängt und exakt dessen
   Breite bekommt — es kann damit weder rechts noch links aus dem Panel ragen. (Der frühere
   `:last-child`-Trick zielte auf den Ende-Picker und lief ins Leere, seit „Ganztägig" das
   letzte Element der Zeile ist.) Panel-Klasse davor = höhere Spezifität als die
   Breitenregeln im Picker selbst. */
.calendar-appt-panel .calendar-appt-time-grid[b-zku8ulalvl]  .calendar-dtp {
    position: static;
}

.calendar-appt-panel .calendar-appt-time-grid[b-zku8ulalvl]  .calendar-dtp-popup {
    left: 0;
    right: auto;
    width: min(392px, 100%); /* natürliche Breite behalten, aber nie breiter als die Zeile */
    max-width: 100%;
}

.calendar-appt-panel .calendar-appt-time-grid[b-zku8ulalvl]  .calendar-dtp--date-only .calendar-dtp-popup {
    width: min(286px, 100%);
}

/* Start-Picker klappt linksbündig, Ende-Picker rechtsbündig an der Zeile auf —
   so sitzt das Popup jeweils unter dem angeklickten Feld, ohne das Panel zu
   verlassen. Der Ende-Picker trägt die Klasse selbst (Class-Parameter) — eine
   nth-child-Adressierung bräche still, sobald jemand die Kinderfolge ändert.
   (.calendar-dtp bleibt im Selektor: gleiche Spezifität wie die Mobile-Regeln unten.) */
.calendar-appt-panel .calendar-appt-time-grid[b-zku8ulalvl]  .calendar-dtp.calendar-dtp--ende .calendar-dtp-popup {
    left: auto;
    right: 0;
}

.calendar-appt-time-row[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.calendar-appt-time-row .calendar-series-head[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-width: 0;
}

/* Serien-Popup im Panel: linksbündig unter der Zeile, auf Panelbreite gedeckelt. */
.calendar-appt-time-row .calendar-series-popup[b-zku8ulalvl] {
    right: auto;
    left: 0;
    width: min(426px, calc(100vw - 32px));
}

/* --- Panel-Tabs: Termin | Notiz | Chat -------------------------------------
   Ruhige Text-Reiter mit Unterstrich direkt unter dem Kopf — bewusst KEINE
   Pillen-Leiste (das Pillen-Muster gehört in dieser App der Navigation im Kopf). */
.calendar-appt-panel-tabs[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-end;
    gap: 20px;
    padding: 8px 16px 0;
    border-bottom: 1px solid #e4e4e7;
    background: #ffffff;
}

/* Eigener Container für die Tabs (role="tablist" duldet nur role="tab"-Kinder) —
   die Reiter selbst sollen weiter wie zuvor nebeneinander liegen. */
.calendar-appt-panel-tablist[b-zku8ulalvl] {
    display: flex;
    align-items: flex-end;
    gap: 20px;
    min-width: 0;
}

/* Nur für Screenreader: sichtbar ist der Avatar-Stapel, vorgelesen wird der Klartext. */
.calendar-visually-hidden[b-zku8ulalvl] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* Gilt auch für die Reiter des Ansicht-Popovers in der Toolbar (.calendar-view-tab). */
.calendar-appt-tab[b-zku8ulalvl],
.calendar-view-tab[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: -1px; /* der aktive Unterstrich liegt AUF der Trennlinie */
    border: 0;
    border-bottom: 2px solid transparent;
    padding: 4px 2px 8px;
    background: transparent;
    color: #80858d;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 800;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
}

.calendar-appt-tab:focus-visible[b-zku8ulalvl],
.calendar-view-tab:focus-visible[b-zku8ulalvl] {
    color: #16181c;
    outline: none;
}

@media (hover: hover) {
    .calendar-appt-tab:not(.calendar-appt-tab--active):hover[b-zku8ulalvl],
    .calendar-view-tab:not(.calendar-view-tab--active):hover[b-zku8ulalvl] {
        color: #16181c;
    }
}

.calendar-appt-tab--active[b-zku8ulalvl],
.calendar-view-tab--active[b-zku8ulalvl] {
    color: #16181c;
    border-bottom-color: #16181c;
}

/* Ungelesen-Zähler am Chat-Tab bzw. Aktive-Filter-Zähler am Filter-Reiter. */
.calendar-appt-tab-count[b-zku8ulalvl],
.calendar-view-tab-count[b-zku8ulalvl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: #efeff1;
    color: #3c4148;
    font-size: 0.6rem;
    font-weight: 800;
    font-style: normal;
    transition: background 0.15s, color 0.15s;
}

.calendar-appt-tab--active .calendar-appt-tab-count[b-zku8ulalvl],
.calendar-view-tab--active .calendar-view-tab-count[b-zku8ulalvl] {
    background: #16181c;
    color: #ffffff;
}

/* Punkt am Notiz-Tab: Termin hat bereits eine Notiz. */
.calendar-appt-tab-dot[b-zku8ulalvl] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #16181c;
}

/* Notiz/Chat füllen die gesamte Panelfläche — der Rumpf scrollt dann nicht,
   Schreibfläche bzw. Nachrichtenverlauf scrollen intern. */
.calendar-appt-panel-scroll--fill[b-zku8ulalvl] {
    overflow: hidden;
}

.calendar-appt-tab-notiz[b-zku8ulalvl],
.calendar-appt-tab-chat[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.calendar-appt-tab-notiz[b-zku8ulalvl] {
    padding: 12px 16px;
}

.calendar-appt-tab-notiz[b-zku8ulalvl]  .rte {
    flex: 1 1 auto;
    min-height: 0;
}

.calendar-appt-tab-notiz[b-zku8ulalvl]  .rte-area {
    flex: 1 1 auto;
    min-height: 72px;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.calendar-appt-tab-chat[b-zku8ulalvl]  .chat {
    flex: 1 1 auto;
    min-height: 0;
}

/* --- Verlauf-Tab: Änderungs-Protokoll (nur Ansicht) ------------------------ */
.calendar-appt-tab-verlauf[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 12px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.calendar-appt-verlauf-leer[b-zku8ulalvl] {
    margin: 8px 2px;
    font-size: 13px;
    color: #6f7076;
}

/* Protokollstrang: die Person ist die Überschrift, ein Strang verbindet die Einträge. */
.calendar-verlauf[b-zku8ulalvl] {
    list-style: none;
    margin: 2px 0 0;
    padding: 0;
}

.calendar-verlauf-eintrag[b-zku8ulalvl] {
    position: relative;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    column-gap: 12px;
    padding-bottom: 18px;
}

.calendar-verlauf-eintrag:last-child[b-zku8ulalvl] {
    padding-bottom: 2px;
}

/* Verbindungslinie zum nächsten Eintrag — macht die Abfolge als einen Strang lesbar. */
.calendar-verlauf-eintrag[b-zku8ulalvl]::before {
    content: "";
    position: absolute;
    left: 13px;
    top: 32px;
    bottom: 2px;
    width: 2px;
    border-radius: 1px;
    background: #e9e9ec;
}

.calendar-verlauf-eintrag:last-child[b-zku8ulalvl]::before {
    display: none;
}

/* Eine Klasse, zwei Gestalten: <img> mit Profilbild oder <span> mit Initialen
   (gleiche Optik wie .calendar-person-avatar auf den Termin-Karten). */
.calendar-verlauf-avatar[b-zku8ulalvl] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #16181c;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.03em;
    object-fit: cover;
    user-select: none;
}

.calendar-verlauf-inhalt[b-zku8ulalvl] {
    min-width: 0;
}

.calendar-verlauf-kopf[b-zku8ulalvl] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    column-gap: 8px;
    row-gap: 2px;
    padding-top: 5px;
}

.calendar-verlauf-kopf strong[b-zku8ulalvl] {
    font-size: 13px;
    font-weight: 650;
    color: #16181c;
    overflow-wrap: anywhere;
}

.calendar-verlauf-kopf time[b-zku8ulalvl] {
    margin-left: auto;
    font-size: 11px;
    color: #85868c;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.calendar-verlauf-badge[b-zku8ulalvl] {
    align-self: center;
    font-style: normal;
    font-size: 9.5px;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #4c4d53;
    border: 1px solid #d9d9de;
    border-radius: 999px;
    padding: 1px 7px 2px;
    white-space: nowrap;
}

/* „Angelegt" ist der Ursprung des Strangs und als einzige Pille gefüllt. */
.calendar-verlauf-badge--start[b-zku8ulalvl] {
    background: #16181c;
    border-color: #16181c;
    color: #fff;
}

/* Diff-Block: Feld-Spalte + Werte, damit das Was ohne Satzlektüre erfassbar ist. */
.calendar-verlauf-diffs[b-zku8ulalvl] {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    column-gap: 10px;
    row-gap: 5px;
    margin-top: 7px;
    padding: 9px 11px 10px;
    background: #f6f6f7;
    border-radius: 9px;
}

.calendar-verlauf-feld[b-zku8ulalvl] {
    font-size: 11px;
    font-weight: 600;
    color: #85868c;
    line-height: 1.5;
    padding-top: 1px;
    overflow-wrap: anywhere;
    hyphens: auto;
}

.calendar-verlauf-werte[b-zku8ulalvl] {
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 8px;
    row-gap: 3px;
    font-size: 12.5px;
    line-height: 1.45;
}

/* Diff-Stapel: neuer Stand (+) oben, alter Stand (−) darunter — eine Zeile je Stand. */
.calendar-verlauf-werte--stapel[b-zku8ulalvl] {
    flex-direction: column;
    align-items: stretch;
}

/* Hängende Einrückung: Folgezeilen umbrechender Werte starten hinter dem Vorzeichen. */
.calendar-verlauf-alt[b-zku8ulalvl],
.calendar-verlauf-neu[b-zku8ulalvl] {
    padding-left: 14px;
    text-indent: -14px;
    overflow-wrap: anywhere;
}

.calendar-verlauf-alt[b-zku8ulalvl] {
    color: #8f9096;
    text-decoration: line-through;
    text-decoration-color: rgba(22, 24, 28, 0.28);
}

.calendar-verlauf-neu[b-zku8ulalvl] {
    color: #16181c;
    font-weight: 600;
}

/* Vorzeichen als inline-block, damit die Streichung der Alt-Zeile es nicht miterfasst. */
.calendar-verlauf-zeichen[b-zku8ulalvl] {
    display: inline-block;
    width: 14px;
    text-indent: 0;
    font-style: normal;
    font-weight: 600;
    color: #9a9ba1;
}

/* Notiz-Stände sind Fließtext: normales Gewicht, eingeklappt auf zwei Zeilen gekürzt. */
.calendar-verlauf-notiz[b-zku8ulalvl] {
    font-weight: 400;
}

.calendar-verlauf-notiz--zu[b-zku8ulalvl] {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.calendar-verlauf-mehr[b-zku8ulalvl] {
    align-self: flex-start;
    margin-top: 1px;
    padding: 0 0 0 14px;
    border: 0;
    background: none;
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    color: #4c4d53;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

@media (hover: hover) {
    .calendar-verlauf-mehr:hover[b-zku8ulalvl] {
        color: #16181c;
    }
}

.calendar-verlauf-mehr:focus-visible[b-zku8ulalvl] {
    outline: 2px solid #16181c;
    outline-offset: 2px;
    border-radius: 4px;
}

.calendar-verlauf-frei[b-zku8ulalvl] {
    grid-column: 1 / -1;
    font-size: 12.5px;
    line-height: 1.45;
    color: #3d3f45;
    overflow-wrap: anywhere;
}

/* --- Auswahl-Ebene (überlagert das Panel) ---------------------------------- */
.calendar-appt-picker[b-zku8ulalvl] {
    position: absolute;
    inset: 0;
    z-index: 40;
    display: flex;
    flex-direction: column;
    border-radius: 7px; /* deckt die Panel-Karte randlos ab, inkl. deren Rundung */
    background: #ffffff;
    animation: calendar-appt-picker-in-b-zku8ulalvl 0.26s cubic-bezier(0.32, 0.72, 0, 1) both;
}

@keyframes calendar-appt-picker-in-b-zku8ulalvl {
    from {
        transform: translateX(18px);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.calendar-appt-picker-head[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid #e4e4e7;
    border-radius: 7px 7px 0 0;
    padding: 11px 16px;
    background: linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%);
}

.calendar-appt-picker-head strong[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    color: #16181c;
    font-size: 0.9rem;
    font-weight: 800;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-appt-picker-back[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 0;
    border-radius: 999px;
    padding: 6px 10px 6px 7px;
    background: transparent;
    color: #3c4148;
    cursor: pointer;
    font: inherit;
    font-size: 0.76rem;
    font-weight: 800;
    transition: background 0.15s, color 0.15s;
}

.calendar-appt-picker-back:focus-visible[b-zku8ulalvl] {
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .calendar-appt-picker-back:hover[b-zku8ulalvl] {
        color: #16181c;
        background: #efeff1;
    }
}

.calendar-appt-picker-done[b-zku8ulalvl] {
    flex: 0 0 auto;
    border: 0;
    border-radius: 999px;
    padding: 7px 14px;
    background: #16181c;
    color: #ffffff;
    cursor: pointer;
    font: inherit;
    font-size: 0.74rem;
    font-weight: 800;
    transition: background 0.15s, transform 0.12s;
}

.calendar-appt-picker-done:focus-visible[b-zku8ulalvl] {
    background: #26282e;
    outline: none;
    transform: translateY(-1px);
}

@media (hover: hover) {
    .calendar-appt-picker-done:hover[b-zku8ulalvl] {
        background: #26282e;
        transform: translateY(-1px);
    }
}

.calendar-appt-picker > .calendar-modal-search[b-zku8ulalvl] {
    margin: 10px 16px 2px;
}

.calendar-appt-picker-body[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 8px 16px 16px;
}

/* Die Gruppen-/Baustellen-Listen füllen im Picker die ganze Ebene —
   die alten (Modal-)Höhendeckel der Listen gelten hier nicht. */
.calendar-appt-picker-body .calendar-modal-employee-list[b-zku8ulalvl],
.calendar-appt-picker-body .calendar-modal-jobsite-list[b-zku8ulalvl] {
    max-height: none;
}

/* „… als freien Termin anlegen" — ständiger erster Eintrag im Was-Picker. */
.calendar-appt-picker-custom[b-zku8ulalvl] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 2px 0 10px;
    border: 1.5px dashed #d4d4d9;
    border-radius: 12px;
    padding: 10px 12px;
    background: #ffffff;
    color: #16181c;
    cursor: pointer;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 750;
    text-align: left;
    transition: border-color 0.15s, background 0.15s;
}

.calendar-appt-picker-custom:focus-visible[b-zku8ulalvl] {
    border-color: #16181c;
    background: #fafafa;
    outline: none;
}

@media (hover: hover) {
    .calendar-appt-picker-custom:hover[b-zku8ulalvl] {
        border-color: #16181c;
        background: #fafafa;
    }
}

.calendar-appt-picker-custom-icon[b-zku8ulalvl] {
    flex: 0 0 auto;
    width: 20px;
    display: inline-grid;
    place-items: center;
    color: #3c4148;
}

/* --- Fuß: permanente Aktionsleiste ----------------------------------------- */
.calendar-appt-panel-foot[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-top: 1px solid #e4e4e7;
    border-radius: 0 0 7px 7px; /* folgt der Karten-Rundung */
    padding: 10px 16px max(12px, env(safe-area-inset-bottom));
    background: #ffffff;
}

.calendar-appt-panel-audit[b-zku8ulalvl] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2px 14px;
    color: #80858d;
    font-size: 0.62rem;
    font-weight: 650;
}

.calendar-appt-panel-audit strong[b-zku8ulalvl] {
    color: #3c4148;
    font-weight: 750;
}

/* Rechtsbündige Reihen wie im früheren Modal-Fuß: Abbrechen · Termin löschen ·
   Duplizieren · Speichern passen in EINE Zeile; bei einer Serie (5 Aktionen) stehen
   „Serie löschen · Termin löschen" in einer eigenen oberen Zeile — statt eines
   zufälligen Flex-Umbruchs. Die Buttons kommen mit width:100% aus ihrer Basis. */
.calendar-appt-panel-foot-actions[b-zku8ulalvl] {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.calendar-appt-foot-row[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 5px;
}

.calendar-appt-panel-foot-actions .calendar-modal-action[b-zku8ulalvl],
.calendar-appt-panel-foot-actions .calendar-modal-save-btn[b-zku8ulalvl] {
    width: auto;
    flex: 0 0 auto;
    padding: 0 8px;
    font-size: 0.72rem;
    white-space: nowrap;
}

.calendar-appt-panel-foot-actions .calendar-modal-save-btn[b-zku8ulalvl] {
    padding: 0 11px;
}

.calendar-appt-panel-foot-actions .calendar-modal-action svg[b-zku8ulalvl] {
    width: 15px;
    height: 15px;
}

.calendar-appt-panel-foot-actions .calendar-modal-save-btn svg[b-zku8ulalvl] {
    width: 16px;
    height: 16px;
}

/* --- Ghost-Entwurf im Board ------------------------------------------------ */
/* Der KARTENRAND selbst wird gestrichelt (statt einer Außen-outline, die von
   Nachbarelementen überdeckt und an Zellrändern abgeschnitten wurde) — dadurch
   sieht jeder Ghost-Balken in jeder Lage identisch aus. Kein Puls (reduced motion). */
.calendar-appointment--draft[b-zku8ulalvl] {
    border: 1.5px dashed #16181c;
    background: #fcfcfd;
    box-shadow: none;
}

/* --- Schmale Fenster: Panel schwebt als Karte über dem Kalender ------------ */
@media (max-width: 1100px) {
    .calendar-appt-panel[b-zku8ulalvl] {
        position: fixed;
        top: calc(var(--app-header-h, 56px) + 10px);
        right: 12px;
        bottom: 12px;
        z-index: var(--calendar-z-appointment-panel, 2400);
        width: min(460px, calc(100% - 24px));
        margin: 0;
        box-shadow: -24px 0 60px -22px rgba(15, 23, 42, 0.45);
    }

    /* Im Vollbild gibt es keine App-Kopfzeile — --app-header-h behält aber seinen vollen
       Wert. Ohne diese Korrektur begänne das Panel eine Kopfzeilen-Höhe zu tief und
       verlöre unten dieselbe Höhe (toter Streifen darüber). Banner + Safe-Area bleiben frei. */
    .calendar-page--fullscreen .calendar-appt-panel[b-zku8ulalvl] {
        top: calc(var(--app-banner-h, 0px) + var(--app-safe-top, 0px) + 10px);
    }

    /* NUR hier nötig: das fixierte Panel liegt auf 2400 und würde ein offenes
       Filter-/Darstellung-/Legende-Popover (Toolbar auf 1600) verdecken. Auf breiten
       Fenstern steht das Panel ohnehin bei z 5 — dort darf diese Regel nicht greifen,
       sie würde es sonst grundlos um ~1500 Ebenen anheben. */
    .calendar-appt-panel.calendar-appt-panel--behind-popover[b-zku8ulalvl] {
        z-index: 1500;
    }
}

/* --- Handy: Vollbild-Sheet, identischer Aufbau ----------------------------- */
@media (max-width: 640px) {
    .calendar-appt-panel[b-zku8ulalvl],
    .calendar-page--fullscreen .calendar-appt-panel[b-zku8ulalvl] {
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        width: 100%;
        margin: 0;
        border: 0;
        border-radius: 0;
        animation: calendar-appt-panel-up-b-zku8ulalvl 0.32s cubic-bezier(0.32, 0.72, 0, 1) both;
    }

    @keyframes calendar-appt-panel-up-b-zku8ulalvl {
        from {
            transform: translateY(4vh);
            opacity: 0;
        }

        to {
            transform: translateY(0);
            opacity: 1;
        }
    }

    .calendar-appt-panel-head[b-zku8ulalvl],
    .calendar-appt-picker-head[b-zku8ulalvl] {
        border-radius: 0;
    }

    .calendar-appt-panel-foot[b-zku8ulalvl] {
        border-radius: 0;
    }

    .calendar-appt-picker[b-zku8ulalvl] {
        border-radius: 0;
    }

    .calendar-appt-custom-address[b-zku8ulalvl],
    .calendar-appt-time-grid[b-zku8ulalvl] {
        grid-template-columns: 1fr;
    }

    /* Dauer-Feld einspaltig in voller Breite; das Popup folgt der Zeilenbreite. */
    .calendar-appt-duration-wrap[b-zku8ulalvl] {
        width: 100%;
    }

    .calendar-appt-duration-popup[b-zku8ulalvl] {
        max-width: none;
    }
}

/* Status-Menü-Backdrop liegt über dem (auf Mobile fixen) Panel. */
.calendar-status-backdrop[b-zku8ulalvl] {
    z-index: var(--calendar-z-jobsite-menu-backdrop, 2402);
}

/* Baustellen-Status im Panel-Kopf: Pill-Trigger + phasengruppiertes
   Menü — gleiche Optik wie das Status-Dropdown an der Baustelle (/calc). */
.calendar-appt-status-picker[b-zku8ulalvl] {
    --jobsite-status-color: #16181c;
    position: relative;
    flex: 0 0 auto;
}

.calendar-appt-status-trigger[b-zku8ulalvl] {
    width: 100%;
    min-width: 0;
    height: 36px;
    display: grid;
    grid-template-columns: 10px minmax(0, 1fr) 13px;
    align-items: center;
    gap: 7px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0 12px;
    color: #16181c;
    background: #ffffff;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    text-align: left;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.calendar-appt-status-trigger:disabled[b-zku8ulalvl] {
    cursor: not-allowed;
    opacity: 0.56;
}

.calendar-appt-status-trigger:focus-visible[b-zku8ulalvl] {
    color: var(--jobsite-status-color);
    background: color-mix(in srgb, var(--jobsite-status-color) 10%, #ffffff);
    outline: none;
}

@media (hover: hover) {
    .calendar-appt-status-trigger:hover:not(:disabled)[b-zku8ulalvl] {
        color: var(--jobsite-status-color);
        background: color-mix(in srgb, var(--jobsite-status-color) 10%, #ffffff);
    }
}

.calendar-appt-status-trigger span:nth-child(2)[b-zku8ulalvl],
.calendar-appt-status-option span:nth-child(2)[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-appt-status-dot[b-zku8ulalvl] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--jobsite-status-color);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--jobsite-status-color) 16%, transparent);
}

.calendar-appt-status-menu[b-zku8ulalvl] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    left: 0;
    z-index: var(--calendar-z-jobsite-menu, 2403);
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: min(340px, calc(100dvh - 300px));
    overflow-y: auto;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    padding: 6px;
    background: #ffffff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
}

/* Phasen-Gruppenköpfe im Status-Menü — Stil wie im /calc-Dropdown. */
.calendar-appt-status-group[b-zku8ulalvl] {
    flex: 0 0 auto;
    margin: 2px 0 -1px;
    padding: 5px 9px 2px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #a6aab1;
}

.calendar-appt-status-group:not(:first-child)[b-zku8ulalvl] {
    margin-top: 5px;
    padding-top: 9px;
    border-top: 1px solid #f0f0f2;
}

.calendar-appt-status-option[b-zku8ulalvl] {
    min-width: 0;
    min-height: 34px;
    display: grid;
    grid-template-columns: 10px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    border: 0;
    border-radius: 8px;
    padding: 0 9px;
    color: #16181c;
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    text-align: left;
}

.calendar-appt-status-option:focus-visible[b-zku8ulalvl],
.calendar-appt-status-option--active[b-zku8ulalvl] {
    color: var(--jobsite-status-color);
    background: color-mix(in srgb, var(--jobsite-status-color) 11%, #ffffff);
    outline: none;
}

@media (hover: hover) {
    .calendar-appt-status-option:hover[b-zku8ulalvl] {
        color: var(--jobsite-status-color);
        background: color-mix(in srgb, var(--jobsite-status-color) 11%, #ffffff);
    }
}

/* Notiz-Tab: Rich-Text-Editor füllt die rechte Modal-Spalte. */
.calendar-appointment--dragging-source[b-zku8ulalvl] {
    opacity: 0.38;
    pointer-events: none;
}

.calendar-appointment-drag-ghost[b-zku8ulalvl] {
    opacity: 0.9;
    box-shadow: 0 16px 28px rgba(15, 23, 42, 0.28);
    transform-origin: 0 0;
}

/* Drag-Resize: Greifer an den Rändern, gedimmter Quellbalken, mitlaufende Dauer-Vorschau. */
.calendar-appointment-grip[b-zku8ulalvl] {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 10px;
    z-index: 7;
    display: none;
    align-items: center;
    justify-content: center;
    cursor: ew-resize;
    touch-action: none;
}

.calendar-appointment-grip--start[b-zku8ulalvl] {
    left: 0;
}

.calendar-appointment-grip--end[b-zku8ulalvl] {
    right: 0;
}

.calendar-appointment-grip[b-zku8ulalvl]::after {
    content: "";
    width: 3px;
    height: 46%;
    min-height: 10px;
    max-height: 20px;
    border-radius: 999px;
    background: var(--appt-color, #16181c);
    opacity: 0;
    transition: opacity 0.12s ease;
}

.calendar-grid[data-calendar-editing="true"] .calendar-appointment[b-zku8ulalvl] {
    cursor: grab;
}

.calendar-grid[data-calendar-editing="true"] .calendar-appointment-grip[b-zku8ulalvl] {
    display: flex;
}

.calendar-grid[data-calendar-editing="true"] .calendar-appointment:focus-within .calendar-appointment-grip[b-zku8ulalvl]::after {
    opacity: 0.6;
}

@media (hover: hover) {
    .calendar-grid[data-calendar-editing="true"] .calendar-appointment:hover .calendar-appointment-grip[b-zku8ulalvl]::after {
        opacity: 0.6;
    }
}

@container (max-width: 30px) {
    .calendar-appointment-grip[b-zku8ulalvl] {
        display: none !important;
    }
}

.calendar-appointment--resizing[b-zku8ulalvl] {
    opacity: 0.45;
    /* Durchklicken erlauben, damit elementFromPoint die Zelle UNTER dem Balken trifft
       (mehrtägige Balken ragen sonst über die Folgetage und verfälschen das Zieldatum). */
    pointer-events: none;
    transform: none;
}

/* .calendar-appointment-resize-preview/-label liegen GLOBAL in wwwroot/app.css –
   die Vorschau wird per JS an document.body gehängt, scoped CSS würde nicht greifen. */

/* Status-Punkt entfällt – die Statusfarbe steckt jetzt im linken Balken (.calendar-appointment::before). */
.calendar-appointment-dot[b-zku8ulalvl] {
    display: none;
}

.calendar-appointment-content[b-zku8ulalvl] {
    position: relative;
    min-width: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    padding: 6px 10px;
    background: transparent;
}

.calendar-appointment-when[b-zku8ulalvl] {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-appointment-title[b-zku8ulalvl] {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    color: #16181c;
    font-size: 0.78rem;
    font-weight: 750;
    line-height: 1.2;
    letter-spacing: -0.012em;
}

/* Titel bleibt EINZEILIG (kein Umbruch) – sonst würden Zeitraum/Tage nach unten aus der
   Karte gedrückt. Der Name darf so breit wie die Karte werden und läuft dann mit „…" aus. */
.calendar-appointment-title-text[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.calendar-appointment-meta[b-zku8ulalvl] {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #6b7075;
    font-size: 0.645rem;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.005em;
    font-variant-numeric: tabular-nums;
}

.calendar-appointment-tags[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.calendar-appointment-tag[b-zku8ulalvl] {
    flex: 0 0 auto;
    border-radius: 6px;
    padding: 1.5px 6px;
    color: #585d64;
    background: #f0f0f2;
    font-size: 0.58rem;
    font-weight: 750;
    line-height: 1.5;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

.calendar-appointment-tag--series[b-zku8ulalvl] {
    color: #6b7075;
    background: #f5f5f7;
    font-weight: 700;
}

.calendar-grid:not([data-calendar-view="day"]) .calendar-appointment[b-zku8ulalvl] {
    min-width: 46px;
}

.calendar-grid:not([data-calendar-view="day"]) .calendar-appointment-content[b-zku8ulalvl] {
    padding: 6px 10px;
}

/* Mehrtägige Balken: die Beschriftung klebt am linken Rand des Sichtfelds (rechts
   neben der Mitarbeiterspalte), damit bei langen Terminen, deren Start nach links
   aus dem Bild gescrollt ist, weiterhin Titel/Infos auf der Karte stehen — wie die
   Beschriftung in Gantt-/Timeline-Ansichten. container-type wird hier abgeschaltet,
   damit position:sticky sauber auf den Scroll-Container (nicht den Balken) bezogen
   wird; die @container-Regeln greifen bei breiten Mehrtages-Balken ohnehin nicht. */
.calendar-grid:not([data-calendar-view="day"]) .calendar-appointment--multiday[b-zku8ulalvl] {
    overflow: visible;
    container-type: normal;
}

.calendar-grid:not([data-calendar-view="day"]) .calendar-appointment--multiday .calendar-appointment-content[b-zku8ulalvl] {
    position: sticky;
    left: calc(var(--calendar-people-width) + 6px);
    width: fit-content;
    max-width: min(100%, 240px);
    /* Schmale Mehrtages-Karten: der unschrumpfbare Tag-Block (z. B. „2 Tage Ganztägig") ragte sonst
       aus der Karte heraus. overflow: hidden schneidet ihn an der Kartenkante ab (das eigene sticky-
       Kleben bleibt davon unberührt – Overflow auf dem Element selbst, nicht auf einem Vorfahren). */
    overflow: hidden;
}

.calendar-grid:not([data-calendar-view="day"]) .calendar-appointment-title[b-zku8ulalvl] {
    font-size: 0.76rem;
}

.calendar-grid[data-calendar-view="day"] .calendar-appointment-content[b-zku8ulalvl] {
    gap: 3px;
    padding: 5px 9px;
}

.calendar-grid[data-calendar-view="day"] .calendar-appointment-title[b-zku8ulalvl] {
    font-size: 0.72rem;
    line-height: 1.18;
}

.calendar-grid[data-calendar-view="day"] .calendar-appointment-meta[b-zku8ulalvl] {
    font-size: 0.58rem;
}

@container (max-width: 190px) {
    .calendar-appointment-content[b-zku8ulalvl] {
        padding-right: 8px;
        padding-left: 8px;
    }
}

@container (max-width: 166px) {
    .calendar-appointment-title[b-zku8ulalvl] {
        font-size: 0.7rem;
    }

    .calendar-appointment-meta[b-zku8ulalvl] {
        font-size: 0.55rem;
    }
}

@container (max-width: 150px) {
    .calendar-appointment-title[b-zku8ulalvl] {
        font-size: 0.68rem;
    }

    .calendar-appointment-tag--series[b-zku8ulalvl] {
        display: none;
    }
}

@container (max-width: 110px) {
    .calendar-appointment-tags[b-zku8ulalvl] {
        display: none;
    }
}

@container (max-width: 82px) {
    .calendar-grid:not([data-calendar-view="day"]) .calendar-appointment-content[b-zku8ulalvl] {
        padding-right: 7px;
        padding-left: 7px;
    }

    .calendar-grid:not([data-calendar-view="day"]) .calendar-appointment-title[b-zku8ulalvl] {
        font-size: 0.68rem;
    }

    .calendar-appointment-meta[b-zku8ulalvl] {
        display: none;
    }
}


.calendar-appointment:active[b-zku8ulalvl] {
    transform: translateY(0);
}

.calendar-now-line[b-zku8ulalvl] {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: var(--calendar-z-now-marker, 40);
    width: 0;
    justify-self: stretch;
    pointer-events: none;
}

.calendar-now-line[b-zku8ulalvl]::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -1px;
    width: 2px;
    background: var(--cal-current);
    /* Klare, schlanke Linie statt breitem Schlagschatten-Halo (wirkte schwer/blau-stichig). */
    box-shadow: 0 0 0 0.5px rgba(255, 255, 255, 0.5);
}

.calendar-sr-only[b-zku8ulalvl] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.calendar-modal-header[b-zku8ulalvl] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
}

.calendar-modal-kicker[b-zku8ulalvl] {
    display: block;
    color: #80858d;
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.calendar-modal-header h2[b-zku8ulalvl] {
    margin: 3px 0 0;
    color: #16181c;
    font-size: 1.34rem;
    font-weight: 950;
    line-height: 1.12;
}

.calendar-modal-header-actions[b-zku8ulalvl] {
    min-width: 0;
    display: flex;
    align-items: stretch;
    justify-content: flex-end;
    gap: 8px;
}

.calendar-edit-scope[b-zku8ulalvl] {
    /* Gleiche Breite wie der Ganztägig-Schalter in der Blitz-Zeile darüber (bündige Kante). */
    width: 118px;
    flex: 0 0 118px;
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    padding: 0 9px;
    color: #16181c;
    background: #efeff1;
    cursor: pointer;
    font: inherit;
    text-align: center;
}

.calendar-edit-scope:focus-visible[b-zku8ulalvl] {
    border-color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .calendar-edit-scope:hover[b-zku8ulalvl] {
        border-color: #16181c;
        background: #efeff1;
        outline: none;
    }
}

.calendar-edit-scope span[b-zku8ulalvl] {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
    color: #16181c;
    font-size: 0.7rem;
    font-weight: 950;
    line-height: 1.12;
}

.calendar-series-head[b-zku8ulalvl] {
    position: relative;
    min-width: 0;
    width: min(300px, 100%);
}

.calendar-series-head-btn[b-zku8ulalvl] {
    width: 100%;
    min-height: 46px;
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    padding: 6px 9px;
    color: #16181c;
    background: #f5f5f7;
    cursor: pointer;
    font: inherit;
    text-align: left;
    transition: background 0.14s, border-color 0.14s, box-shadow 0.14s;
}

.calendar-series-head-btn:focus-visible[b-zku8ulalvl],
.calendar-series-head-btn--open[b-zku8ulalvl] {
    border-color: #16181c;
    background: #efeff1;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.1);
    outline: none;
}

@media (hover: hover) {
    .calendar-series-head-btn:hover[b-zku8ulalvl] {
        border-color: #16181c;
        background: #efeff1;
        box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.1);
        outline: none;
    }
}

.calendar-series-head-btn--active[b-zku8ulalvl] {
    border-color: rgba(22, 24, 28, 0.42);
    background: #efeff1;
}

.calendar-series-popup[b-zku8ulalvl] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 2201;
    width: min(500px, calc(100vw - 32px));
    max-height: min(460px, calc(100vh - 126px));
    display: flex;
    flex-direction: column;
    /* sichtbar, damit das Enddatum-Kalender-Popup nach unten herausragen darf
       (der Serien-Inhalt selbst ist kurz und braucht keinen eigenen Scroll). */
    overflow: visible;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.24), 0 8px 22px rgba(15, 23, 42, 0.1);
}

.calendar-series-popup-head[b-zku8ulalvl] {
    min-height: 46px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 30px;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid #e4e4e7;
    padding: 8px 10px;
    background: #efeff1;
}

.calendar-series-popup-head div[b-zku8ulalvl] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.calendar-series-popup-head span[b-zku8ulalvl],
.calendar-series-popup-head strong[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-series-popup-head span[b-zku8ulalvl] {
    color: #80858d;
    font-size: 0.62rem;
    font-weight: 950;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.calendar-series-popup-head strong[b-zku8ulalvl] {
    color: #16181c;
    font-size: 0.84rem;
    font-weight: 950;
}

.calendar-series-popup-close[b-zku8ulalvl] {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 0;
    border-radius: 7px;
    padding: 0;
    color: #80858d;
    background: transparent;
    cursor: pointer;
    font: inherit;
    transition: background 0.14s, color 0.14s, transform 0.12s;
}

.calendar-series-popup-close:focus-visible[b-zku8ulalvl] {
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .calendar-series-popup-close:hover[b-zku8ulalvl] {
        color: #16181c;
        background: #efeff1;
        outline: none;
    }
}

.calendar-series-popup-close:active[b-zku8ulalvl] {
    transform: translateY(1px);
}

.calendar-series-popup-close svg[b-zku8ulalvl] {
    width: 16px;
    height: 16px;
}

.calendar-status-backdrop[b-zku8ulalvl] {
    position: fixed;
    inset: 0;
    z-index: var(--calendar-z-jobsite-menu-backdrop, 2402);
    border: 0;
    padding: 0;
    background: transparent;
    cursor: default;
}

/* Am Handy: Start/Ende-Picker als zentriertes Sheet (wie der Serien-Datepicker),
   damit der Kalender breiter werden kann als das schmale Feld/Panel – so werden die
   Tage groesser, ohne dass etwas abgeschnitten wird. */
@media (max-width: 560px) {
    .calendar-appt-panel .calendar-appt-time-grid[b-zku8ulalvl]  .calendar-dtp-popup,
    .calendar-appt-panel .calendar-appt-time-grid[b-zku8ulalvl]  .calendar-dtp.calendar-dtp--ende .calendar-dtp-popup {
        position: fixed;
        top: 50%;
        left: 50%;
        right: auto;
        transform: translate(-50%, -50%);
        width: min(440px, calc(100vw - 16px));
        max-width: calc(100vw - 16px);
    }

    .calendar-appt-panel .calendar-appt-time-grid[b-zku8ulalvl]  .calendar-dtp--date-only .calendar-dtp-popup,
    .calendar-appt-panel .calendar-appt-time-grid[b-zku8ulalvl]  .calendar-dtp--date-only.calendar-dtp--ende .calendar-dtp-popup {
        position: fixed;
        top: 50%;
        left: 50%;
        right: auto;
        transform: translate(-50%, -50%);
        width: min(316px, calc(100vw - 16px));
        max-width: calc(100vw - 16px);
    }
}

.calendar-series-toggle[b-zku8ulalvl] {
    width: 100%;
    min-height: 42px;
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    border: none;
    padding: 7px 10px;
    color: #16181c;
    background: transparent;
    cursor: pointer;
    font: inherit;
    text-align: left;
    transition: background 0.14s, color 0.14s;
}

.calendar-series-toggle:focus-visible[b-zku8ulalvl] {
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .calendar-series-toggle:hover[b-zku8ulalvl] {
        color: #16181c;
        background: #efeff1;
        outline: none;
    }
}

.calendar-series-toggle:disabled[b-zku8ulalvl] {
    cursor: default;
}

.calendar-series-toggle:disabled:focus-visible[b-zku8ulalvl] {
    color: #16181c;
    background: transparent;
}

@media (hover: hover) {
    .calendar-series-toggle:disabled:hover[b-zku8ulalvl] {
        color: #16181c;
        background: transparent;
    }
}

.calendar-series-toggle--active[b-zku8ulalvl] {
    color: #16181c;
    background: #efeff1;
}

.calendar-series-icon[b-zku8ulalvl] {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: #16181c;
    background: #efeff1;
}

.calendar-series-toggle-text[b-zku8ulalvl] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.calendar-series-toggle-text strong[b-zku8ulalvl],
.calendar-series-toggle-text small[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-series-toggle-text strong[b-zku8ulalvl] {
    font-size: 0.86rem;
    font-weight: 950;
    line-height: 1.1;
}

.calendar-series-toggle-text small[b-zku8ulalvl],
.calendar-series-preview[b-zku8ulalvl],
.calendar-series-note[b-zku8ulalvl] {
    color: #80858d;
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.2;
}

.calendar-series-panel[b-zku8ulalvl] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    align-items: end;
    padding: 12px;
    overflow: visible;
    background: #ffffff;
}

.calendar-series-popup .calendar-series-panel[b-zku8ulalvl] {
    border-top: 0;
}

.calendar-series-field[b-zku8ulalvl] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.calendar-series-field span[b-zku8ulalvl] {
    color: #80858d;
    font-size: 0.62rem;
    font-weight: 950;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.calendar-series-field select[b-zku8ulalvl],
.calendar-series-field input[b-zku8ulalvl] {
    width: 100%;
    min-width: 0;
    height: 34px;
    border: 1px solid #e4e4e7;
    border-radius: 7px;
    padding: 0 9px;
    color: #16181c;
    background: #ffffff;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 850;
    outline: none;
}

.calendar-series-field select:focus[b-zku8ulalvl],
.calendar-series-field input:focus[b-zku8ulalvl] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

/* Serien-Dropdowns (Wiederholen/Endet) als kompakter IconSelect */
.calendar-series-field[b-zku8ulalvl]  .iconsel-trigger {
    min-height: 34px;
    padding: 0 9px;
    border-radius: 7px;
    background: #ffffff;
    font-size: 13px;
    font-weight: 850;
}

.calendar-series-field--number[b-zku8ulalvl] {
    max-width: none;
}

.calendar-series-field--date[b-zku8ulalvl] {
    max-width: none;
}

/* Serien-Enddatum nutzt denselben Kalender-Picker wie Start/Ende. Trigger
   kompakt wie die Selects (interne Beschriftung aus, externes "Datum"-Label
   bleibt); Popup rechtsbündig unter dem Feld, damit es ins Serien-Popup passt. */
.calendar-series-field--date[b-zku8ulalvl]  .calendar-dtp-field {
    min-height: 34px;
    flex-direction: row;
    align-items: center;
    border-radius: 7px;
    padding: 0 9px;
}

.calendar-series-field--date[b-zku8ulalvl]  .calendar-dtp-field span {
    display: none;
}

.calendar-series-field--date[b-zku8ulalvl]  .calendar-dtp-field strong {
    font-size: 0.82rem;
}

/* Der aufklappbare Kalender liegt im kleinen Serien-Popup; damit unten keine
   Tage abgeschnitten werden, schwebt er als fixes, mittiges Mini-Dialog-Popup
   (position:fixed entkommt dem overflow:hidden des Modals). */
.calendar-series-field--date[b-zku8ulalvl]  .calendar-dtp-popup {
    position: fixed;
    top: 50%;
    left: 50%;
    right: auto;
    transform: translate(-50%, -50%);
}

.calendar-series-weekdays[b-zku8ulalvl] {
    min-width: 0;
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 5px;
    align-items: end;
}

.calendar-series-weekday[b-zku8ulalvl] {
    width: auto;
    height: 34px;
    border: 1px solid #e4e4e7;
    border-radius: 7px;
    color: #3c4148;
    background: #f5f5f7;
    cursor: pointer;
    font: inherit;
    font-size: 0.76rem;
    font-weight: 950;
    transition: background 0.14s, border-color 0.14s, color 0.14s;
}

.calendar-series-weekday:focus-visible[b-zku8ulalvl] {
    border-color: #e4e4e7;
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .calendar-series-weekday:hover[b-zku8ulalvl] {
        border-color: #e4e4e7;
        color: #16181c;
        background: #efeff1;
        outline: none;
    }
}

.calendar-series-weekday--active[b-zku8ulalvl] {
    border-color: #16181c;
    color: #ffffff;
    background: #16181c;
}

.calendar-series-preview[b-zku8ulalvl] {
    grid-column: 1 / -1;
    min-width: 0;
    min-height: 20px;
    display: flex;
    align-items: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-series-note[b-zku8ulalvl] {
    border-top: 1px solid #e4e4e7;
    padding: 0 10px 9px 51px;
}

.calendar-modal-search-clear[b-zku8ulalvl] {
    width: 20px;
    height: 20px;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    border: 0;
    border-radius: 6px;
    padding: 0;
    color: #80858d;
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 900;
    line-height: 1;
}

.calendar-modal-search-clear:focus-visible[b-zku8ulalvl] {
    color: #b91c1c;
    background: #fee2e2;
    outline: none;
}

@media (hover: hover) {
    .calendar-modal-search-clear:hover[b-zku8ulalvl] {
        color: #b91c1c;
        background: #fee2e2;
        outline: none;
    }
}

.calendar-modal-search[b-zku8ulalvl] {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    padding: 0 10px;
    color: #80858d;
    background: #f5f5f7;
}

.calendar-modal-search svg[b-zku8ulalvl] {
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
}

.calendar-modal-search input[b-zku8ulalvl] {
    flex: 1;
    min-width: 0;
    border: none;
    color: #16181c;
    background: transparent;
    font: inherit;
    font-size: 0.84rem;
    outline: none;
}

.calendar-modal-search input[b-zku8ulalvl]::placeholder {
    color: #94a3b8;
}

.calendar-modal-option-list[b-zku8ulalvl],
.calendar-modal-employee-list[b-zku8ulalvl],
.calendar-modal-jobsite-list[b-zku8ulalvl] {
    min-width: 0;
}

.calendar-modal-option-list[b-zku8ulalvl] {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    overflow: hidden;
    background: #ffffff;
}

.calendar-modal-option-list--compact[b-zku8ulalvl] {
    max-height: 170px;
    overflow-y: auto;
}

.calendar-modal-employee-list[b-zku8ulalvl],
.calendar-modal-jobsite-list[b-zku8ulalvl] {
    flex: 1;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    padding-right: 2px;
}

/* Ist eine Baustelle gewählt, endet das Tab-Panel höher und der Ansprechpartner-Bereich
   bekommt darunter ein eigenes, scrollbares Panel mit Rahmen. */
.calendar-modal-tab-panel--with-contacts[b-zku8ulalvl] {
    flex: 1 1 0;
    min-height: 132px;
}

.calendar-modal-contacts[b-zku8ulalvl] {
    flex: 1 1 0;
    min-height: 148px;
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
    animation: calendar-contacts-open-b-zku8ulalvl 0.22s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes calendar-contacts-open-b-zku8ulalvl {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.calendar-modal-contacts-head[b-zku8ulalvl] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 12px;
    border-bottom: 1px solid #e4e4e7;
    background: linear-gradient(180deg, #f5f5f7 0%, #efeff1 100%);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #3c4148;
}

.calendar-modal-contacts-head em[b-zku8ulalvl] {
    flex-shrink: 0;
    font-style: normal;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    color: #16181c;
}

.calendar-modal-contacts-list[b-zku8ulalvl] {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.calendar-modal-contacts-empty[b-zku8ulalvl] {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px;
    text-align: center;
    color: #94a3b8;
    font-size: 0.78rem;
    font-weight: 600;
}

.calendar-modal-jobsite-group[b-zku8ulalvl] {
    margin-bottom: 10px;
}

.calendar-modal-jobsite-group:last-child[b-zku8ulalvl] {
    margin-bottom: 0;
}

.calendar-modal-employee-group[b-zku8ulalvl] {
    margin-bottom: 10px;
}

.calendar-modal-employee-group:last-child[b-zku8ulalvl] {
    margin-bottom: 0;
}

.calendar-modal-employee-group-title[b-zku8ulalvl],
.calendar-modal-jobsite-group-title[b-zku8ulalvl] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    margin-bottom: 6px;
    color: var(--department-color, #16181c);
}

.calendar-modal-jobsite-group-title[b-zku8ulalvl] {
    color: #16181c;
    margin-bottom: 0;
    border: 1px solid #e4e4e7;
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    padding: 6px 9px 6px 11px;
    background: #efeff1;
}

.calendar-modal-employee-group-title[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    gap: 7px;
    width: 100%;
    margin-bottom: 0;
    border: 1px solid #e4e4e7;
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    padding: 6px 9px 6px 10px;
    color: var(--department-color, #16181c);
    background: var(--department-surface, #efeff1);
    cursor: pointer;
    font: inherit;
    text-align: left;
    transition: background 0.14s;
}

@media (hover: hover) {
    .calendar-modal-employee-group-title:hover[b-zku8ulalvl] {
        background: color-mix(in srgb, var(--department-color, #16181c) 16%, #ffffff);
    }
}

.calendar-modal-employee-group-title > span[b-zku8ulalvl] {
    flex: 1 1 auto;
}

.calendar-modal-employee-group-chevron[b-zku8ulalvl] {
    flex: 0 0 auto;
    color: var(--department-color, #80858d);
    transition: transform 0.16s ease;
}

.calendar-modal-employee-group--collapsed .calendar-modal-employee-group-chevron[b-zku8ulalvl] {
    transform: rotate(-90deg);
}

/* Eingeklappt: kein Mitarbeiter-List darunter -> Titel rundum abschließen. */
.calendar-modal-employee-group--collapsed .calendar-modal-employee-group-title[b-zku8ulalvl] {
    border-bottom: 1px solid #e4e4e7;
    border-radius: 8px;
}

.calendar-modal-employee-group-count[b-zku8ulalvl] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 17px;
    height: 17px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--department-color, #16181c);
    color: #ffffff;
    font-size: 0.62rem;
    font-weight: 800;
    font-style: normal;
    letter-spacing: 0;
}

.calendar-modal-employee-group .calendar-modal-option-list[b-zku8ulalvl] {
    border-radius: 0 0 8px 8px;
}

.calendar-modal-jobsite-group .calendar-modal-option-list[b-zku8ulalvl] {
    border-radius: 0 0 8px 8px;
}

.calendar-modal-employee-group-title span[b-zku8ulalvl],
.calendar-modal-jobsite-group-title span[b-zku8ulalvl],
.calendar-modal-jobsite-group-title small[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-modal-employee-group-title span[b-zku8ulalvl],
.calendar-modal-jobsite-group-title span[b-zku8ulalvl] {
    font-size: 0.7rem;
    font-weight: 950;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.calendar-modal-jobsite-group-title small[b-zku8ulalvl] {
    grid-column: 1;
    color: #80858d;
    font-size: 0.69rem;
    font-weight: 750;
}

.calendar-modal-jobsite-group-title span[b-zku8ulalvl],
.calendar-modal-jobsite-group-title small[b-zku8ulalvl] {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
}

.calendar-modal-employee-group-title strong[b-zku8ulalvl],
.calendar-modal-jobsite-group-title strong[b-zku8ulalvl] {
    grid-column: 2;
    grid-row: 1 / span 2;
    min-width: 24px;
    border-radius: 999px;
    padding: 2px 7px;
    background: var(--department-surface, #efeff1);
    font-size: 0.68rem;
    font-weight: 950;
    text-align: center;
}

.calendar-modal-option[b-zku8ulalvl] {
    width: 100%;
    min-height: 40px;
    display: grid;
    grid-template-columns: 22px 30px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    border: none;
    border-bottom: 1px solid #e4e4e7;
    border-radius: 0;
    padding: 6px 9px;
    color: #16181c;
    background: #ffffff;
    cursor: pointer;
    font: inherit;
    text-align: left;
    transition: border-color 0.14s, background 0.14s, box-shadow 0.14s;
}

.calendar-modal-option:last-child[b-zku8ulalvl] {
    border-bottom: none;
}

.calendar-modal-option-list--compact .calendar-modal-option[b-zku8ulalvl] {
    grid-template-columns: 22px minmax(0, 1fr) auto;
}

.calendar-modal-option--jobsite[b-zku8ulalvl] {
    grid-template-columns: 22px minmax(0, 1fr) auto;
}

.calendar-modal-option:focus-visible[b-zku8ulalvl] {
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .calendar-modal-option:hover[b-zku8ulalvl] {
        background: #efeff1;
        outline: none;
    }
}

.calendar-modal-option--selected[b-zku8ulalvl] {
    background: #efeff1;
    box-shadow: inset 3px 0 0 var(--department-color, #16181c);
}

.calendar-modal-check[b-zku8ulalvl] {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 5px;
    background: #ffffff;
}

.calendar-modal-option--selected .calendar-modal-check[b-zku8ulalvl] {
    border-color: var(--department-color, #16181c);
    background: var(--department-color, #16181c);
}

.calendar-modal-option--selected .calendar-modal-check[b-zku8ulalvl]::after {
    content: "";
    width: 8px;
    height: 5px;
    border-left: 2px solid #ffffff;
    border-bottom: 2px solid #ffffff;
    transform: translateY(-1px) rotate(-45deg);
}

.calendar-modal-avatar[b-zku8ulalvl] {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #ffffff;
    background: #16181c;
    font-size: 0.72rem;
    font-weight: 950;
}

/* Fahrzeug-Reiter: gleiche Zeilenhöhe wie der Avatar beim Mitarbeiter, nur als Symbol. */
.calendar-modal-vehicle-icon[b-zku8ulalvl] {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    color: #3c4148;
    background: #efeff1;
}

.calendar-modal-option--selected .calendar-modal-vehicle-icon[b-zku8ulalvl] {
    color: #16181c;
    background: #ffffff;
}

.calendar-modal-option-main[b-zku8ulalvl] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.calendar-modal-option-main strong[b-zku8ulalvl],
.calendar-modal-option-main small[b-zku8ulalvl],
.calendar-modal-option-meta[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-modal-option-main strong[b-zku8ulalvl] {
    color: #16181c;
    font-size: 0.86rem;
    font-weight: 900;
    line-height: 1.1;
}

.calendar-modal-option-main small[b-zku8ulalvl],
.calendar-modal-option-meta[b-zku8ulalvl] {
    color: #80858d;
    font-size: 0.7rem;
    font-weight: 750;
}

.calendar-modal-option-meta[b-zku8ulalvl] {
    justify-self: end;
    max-width: none;
    white-space: nowrap;
}

.calendar-modal-option--jobsite .calendar-modal-option-main strong[b-zku8ulalvl],
.calendar-modal-option--jobsite .calendar-modal-option-main small[b-zku8ulalvl] {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
}

.calendar-modal-option--jobsite .calendar-modal-option-main strong[b-zku8ulalvl] {
    line-height: 1.16;
}

.calendar-modal-option--jobsite .calendar-modal-option-main small[b-zku8ulalvl] {
    line-height: 1.2;
}

.calendar-modal-jobsite-list[b-zku8ulalvl] {
    display: flex;
    flex-direction: column;
    /* Full-bleed: cancel the tab panel's 8px side padding so the list spans the
       entire width of the tab box. Slim scrollbar so it barely eats into width. */
    margin: 0 -8px;
    padding-right: 0;
    scrollbar-width: thin;
    scrollbar-color: #e4e4e7 transparent;
}

.calendar-modal-jobsite-list[b-zku8ulalvl]::-webkit-scrollbar {
    width: 8px;
}

.calendar-modal-jobsite-list[b-zku8ulalvl]::-webkit-scrollbar-thumb {
    border-radius: 8px;
    background: #e4e4e7;
}

/* Flat, scannable list of jobsites — no customer grouping. One quiet container
   with hairline-divided rows; the list stays sorted by customer then name, so a
   customer's sites still sit next to each other without any heavy headers. */
.calendar-modal-jobsite-flat[b-zku8ulalvl] {
    display: flex;
    flex-direction: column;
}

.calendar-modal-jobsite-row[b-zku8ulalvl] {
    width: 100%;
    min-height: 52px;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 11px;
    border: none;
    border-top: 1px solid #eef2f7;
    border-radius: 0;
    padding: 8px 14px;
    color: #16181c;
    background: #ffffff;
    cursor: pointer;
    font: inherit;
    text-align: left;
    transition: background 0.13s ease;
}

.calendar-modal-jobsite-row:first-child[b-zku8ulalvl] {
    border-top: none;
}

.calendar-modal-jobsite-row:focus-visible[b-zku8ulalvl] {
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .calendar-modal-jobsite-row:hover[b-zku8ulalvl] {
        background: #efeff1;
        outline: none;
    }
}

.calendar-modal-jobsite-row--selected[b-zku8ulalvl],
.calendar-modal-jobsite-row--selected:focus-visible[b-zku8ulalvl] {
    background: #efeff1;
}

@media (hover: hover) {
    .calendar-modal-jobsite-row--selected:hover[b-zku8ulalvl] {
        background: #efeff1;
    }
}

.calendar-modal-jobsite-row-pin[b-zku8ulalvl] {
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #80858d;
    transition: color 0.13s ease;
}

.calendar-modal-jobsite-row-pin svg[b-zku8ulalvl] {
    width: 17px;
    height: 17px;
}

.calendar-modal-jobsite-row--selected .calendar-modal-jobsite-row-pin[b-zku8ulalvl] {
    color: #16181c;
}

.calendar-modal-jobsite-row-body[b-zku8ulalvl] {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.calendar-modal-jobsite-row-head[b-zku8ulalvl] {
    min-width: 0;
    display: flex;
    align-items: baseline;
}

.calendar-modal-jobsite-row-name[b-zku8ulalvl] {
    min-width: 0;
    flex: 0 1 auto;
    flex-shrink: 1;
    overflow: hidden;
    color: #16181c;
    font-size: 0.84rem;
    font-weight: 800;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-modal-jobsite-row-customer[b-zku8ulalvl] {
    min-width: 0;
    flex: 0 1 auto;
    flex-shrink: 6;
    overflow: hidden;
    color: #80858d;
    font-size: 0.74rem;
    font-weight: 650;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-modal-jobsite-row-customer[b-zku8ulalvl]::before {
    content: "\00B7";
    margin: 0 6px;
    color: #e4e4e7;
    font-weight: 800;
}

.calendar-modal-jobsite-row-address[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    color: #80858d;
    font-size: 0.69rem;
    font-weight: 600;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-modal-jobsite-row-pick[b-zku8ulalvl] {
    width: 18px;
    height: 18px;
    border: 2px solid #e4e4e7;
    border-radius: 50%;
    background: #ffffff;
    transition: border-color 0.13s ease, background 0.13s ease;
}

@media (hover: hover) {
    .calendar-modal-jobsite-row:hover .calendar-modal-jobsite-row-pick[b-zku8ulalvl] {
        border-color: #80858d;
    }
}

.calendar-modal-jobsite-row--selected .calendar-modal-jobsite-row-pick[b-zku8ulalvl] {
    border-color: #16181c;
    background:
        radial-gradient(circle at center, #ffffff 0 2.5px, transparent 3px),
        #16181c;
}

.calendar-modal-empty[b-zku8ulalvl] {
    border-radius: 8px;
    padding: 10px 11px;
    color: #80858d;
    background: #f5f5f7;
    font-size: 0.84rem;
    font-weight: 800;
}

.calendar-modal-validation[b-zku8ulalvl] {
    min-height: 34px;
    display: flex;
    align-items: center;
    gap: 9px;
    border: 1px solid #e4e4e7;
    border-left: 4px solid #16181c;
    border-radius: 8px;
    padding: 7px 10px;
    color: #16181c;
    background: linear-gradient(90deg, #efeff1 0%, #ffffff 100%);
    font-size: 0.82rem;
    font-weight: 850;
    line-height: 1.25;
}

.calendar-modal-validation[b-zku8ulalvl]::before {
    content: "";
    width: 8px;
    height: 8px;
    flex-shrink: 0;
    border-radius: 50%;
    background: #16181c;
    box-shadow: 0 0 0 4px rgba(22, 24, 28, 0.12);
}

.calendar-modal-action[b-zku8ulalvl] {
    width: 100%;
    height: 32px;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: none;
    border-radius: 9px;
    padding: 0 9px;
    color: #ffffff;
    background: #16181c;
    cursor: pointer;
    font: inherit;
    font-size: 0.74rem;
    font-weight: 900;
    transition: background 0.15s, opacity 0.15s, transform 0.12s;
}

.calendar-modal-action svg[b-zku8ulalvl] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.calendar-modal-action span[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-modal-action:focus-visible[b-zku8ulalvl] {
    background: #26282e;
    outline: none;
}

@media (hover: hover) {
    .calendar-modal-action:hover[b-zku8ulalvl] {
        background: #26282e;
        outline: none;
    }
}

.calendar-modal-action:active[b-zku8ulalvl] {
    transform: translateY(1px);
}

.calendar-modal-action:disabled[b-zku8ulalvl] {
    cursor: not-allowed;
    opacity: 0.48;
}

/* Footer-Aktionen als ECHTE Pill-Buttons (weiße Fläche + Rahmen, wie die
   Toolbar-Trigger Filter/Darstellung/Legende) — keine nackten Textlinks.
   Speichern bleibt als .calendar-modal-save-btn der dunkle Primär-Button. */
.calendar-modal-action--danger[b-zku8ulalvl],
.calendar-modal-action--series-danger[b-zku8ulalvl] {
    border: 1px solid var(--cal-line);
    color: #b91c1c;
    background: var(--cal-surface);
}

.calendar-modal-action--danger:focus-visible[b-zku8ulalvl],
.calendar-modal-action--series-danger:focus-visible[b-zku8ulalvl] {
    color: #ffffff;
    background: #dc2626;
    border-color: #dc2626;
}

@media (hover: hover) {
    .calendar-modal-action--danger:hover[b-zku8ulalvl],
    .calendar-modal-action--series-danger:hover[b-zku8ulalvl] {
        color: #ffffff;
        background: #dc2626;
        border-color: #dc2626;
    }
}

/* Neutrale Footer-Buttons (Abbrechen, Kopieren) -- identischer Look, ein Regelblock. */
.calendar-modal-action--ghost[b-zku8ulalvl],
.calendar-modal-action--copy[b-zku8ulalvl] {
    border: 1px solid var(--cal-line);
    color: #3c4148;
    background: var(--cal-surface);
}

.calendar-modal-action--ghost:focus-visible[b-zku8ulalvl],
.calendar-modal-action--copy:focus-visible[b-zku8ulalvl] {
    color: #16181c;
    background: #e7e7ea;
}

@media (hover: hover) {
    .calendar-modal-action--ghost:hover[b-zku8ulalvl],
    .calendar-modal-action--copy:hover[b-zku8ulalvl] {
        color: #16181c;
        background: #e7e7ea;
    }
}

.calendar-modal-save-btn[b-zku8ulalvl] {
    width: 100%;
    min-width: 0;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: none;
    border-radius: 9px;
    padding: 0 12px;
    color: #ffffff;
    background: #16181c;
    box-shadow: 0 2px 8px rgba(22, 24, 28, 0.18);
    cursor: pointer;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 900;
    transition: opacity 0.18s, transform 0.12s, box-shadow 0.18s;
}

.calendar-modal-save-btn:focus-visible[b-zku8ulalvl] {
    opacity: 0.92;
    box-shadow: 0 4px 14px rgba(22, 24, 28, 0.24);
    outline: none;
}

@media (hover: hover) {
    .calendar-modal-save-btn:hover[b-zku8ulalvl] {
        opacity: 0.92;
        box-shadow: 0 4px 14px rgba(22, 24, 28, 0.24);
        outline: none;
    }
}

.calendar-modal-save-btn:active[b-zku8ulalvl] {
    transform: translateY(1px);
}

.calendar-modal-save-btn svg[b-zku8ulalvl] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.calendar-modal-save-btn span[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


@media (max-width: 820px) {
    .calendar-board[b-zku8ulalvl] {
        padding: 8px;
    }


    .calendar-series-head[b-zku8ulalvl] {
        justify-self: stretch;
        width: 100%;
    }

    .calendar-series-popup[b-zku8ulalvl] {
        right: 0;
        left: auto;
        width: min(500px, calc(100vw - 24px));
        max-height: min(460px, calc(100vh - 102px));
    }

    .calendar-series-panel[b-zku8ulalvl] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .calendar-series-weekdays[b-zku8ulalvl] {
        grid-column: 1 / -1;
    }

    .calendar-series-preview[b-zku8ulalvl] {
        grid-column: 1 / -1;
    }

    .calendar-modal-employee-list[b-zku8ulalvl] {
        max-height: 300px;
    }

}

@media (max-width: 560px) {
    .calendar-fab[b-zku8ulalvl] {
        right: 16px;
        bottom: 16px;
        width: 52px;
        height: 52px;
    }

    .calendar-range-controls[b-zku8ulalvl] {
        width: 100%;
        justify-content: space-between;
    }

    .calendar-view-switch[b-zku8ulalvl] {
        width: 100%;
    }

    .calendar-date-picker-wrap[b-zku8ulalvl] {
        flex: 1;
    }

    .calendar-today-btn[b-zku8ulalvl] {
        width: 100%;
        min-width: 0;
    }

    .calendar-view-btn[b-zku8ulalvl] {
        flex: 1;
        min-width: 0;
        padding: 0 7px;
    }

    .calendar-date-picker[b-zku8ulalvl] {
        position: fixed;
        top: 58px;
        right: 10px;
        left: 10px;
        width: auto;
        max-height: calc(100vh - 74px);
    }

    /* Auf dem Handy ist der Picker ein fixes Vollbreiten-Overlay. Der angehobene
       „Heute"-Button darf hier NICHT über dem Picker liegen, sonst stanzt das
       Kalender-Icon oben links durch das Overlay durch. Zurück unter die Backdrop. */
    .calendar-now-corner--raised[b-zku8ulalvl] {
        z-index: var(--calendar-z-first-column-header, 70);
    }

    .calendar-picker-month-select[b-zku8ulalvl],
    .calendar-picker-year-select[b-zku8ulalvl] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .calendar-picker-level-btn[b-zku8ulalvl] {
        max-width: 100%;
        padding: 0 8px;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .calendar-grid[b-zku8ulalvl] {
        --calendar-people-width: 152px;
        --calendar-multiweek-day-width: max(92px, calc((100vw - var(--calendar-people-width) - 24px) / 7));
    }

    .calendar-hour-head span[b-zku8ulalvl] {
        font-size: 0.5rem;
    }

    .calendar-hour-head span:not(:nth-child(3n+1))[b-zku8ulalvl] {
        color: transparent;
    }

    .calendar-corner[b-zku8ulalvl] {
        padding: 0 10px;
    }

    .calendar-corner span[b-zku8ulalvl] {
        font-size: 0.64rem;
    }

    .calendar-person[b-zku8ulalvl] {
        gap: 8px;
        padding: 0 10px;
    }

    .calendar-person-avatar[b-zku8ulalvl] {
        width: 30px;
        height: 30px;
        font-size: 0.7rem;
    }


    .calendar-series-panel[b-zku8ulalvl] {
        grid-template-columns: 1fr;
    }

    .calendar-series-popup[b-zku8ulalvl] {
        position: fixed;
        top: 64px;
        right: 10px;
        left: 10px;
        width: auto;
        max-height: calc(100vh - 82px);
    }

    .calendar-series-field--number[b-zku8ulalvl] {
        max-width: none;
    }

    .calendar-series-note[b-zku8ulalvl] {
        padding-left: 10px;
    }

    .calendar-appointment-preview[b-zku8ulalvl] {
        left: clamp(166px, var(--preview-x), calc(100vw - 166px));
        width: min(324px, calc(100vw - 16px));
        max-width: calc(100vw - 16px);
    }




}


/* === Termin kopieren =====================================================
   Zentriertes Modal über allem (auch über dem Termin-Modal z 2400 und dem
   Löschen-Dialog z 2500), mit Datums-/Zeit-Pickern für den Zielzeitraum.
   Mirror der Löschen-Dialog-Optik, aber breiter für das Picker-Raster. */
.calendar-copy-modal-layer[b-zku8ulalvl] {
    position: fixed;
    inset: 0;
    z-index: 2600;
    display: grid;
    place-items: center;
    padding: 18px;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.calendar-copy-modal-backdrop[b-zku8ulalvl] {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(15, 23, 42, 0.18);
    backdrop-filter: blur(2px);
    cursor: default;
}

.calendar-copy-modal-shell[b-zku8ulalvl] {
    position: relative;
    width: min(460px, calc(100vw - 28px));
    border: 1px solid rgba(203, 213, 225, 0.82);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 22px 60px rgba(15, 23, 42, 0.22);
    animation: calendar-delete-modal-in-b-zku8ulalvl 240ms cubic-bezier(0.32, 0.72, 0, 1) both;
}

.calendar-copy-modal-core[b-zku8ulalvl] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    border-radius: 18px;
    padding: 16px;
    color: #172033;
}

.calendar-copy-modal-head[b-zku8ulalvl] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.calendar-copy-modal-head-text[b-zku8ulalvl] {
    display: grid;
    gap: 2px;
}

.calendar-copy-modal-kicker[b-zku8ulalvl] {
    color: #80858d;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.calendar-copy-modal-head h2[b-zku8ulalvl] {
    margin: 0;
    color: #16181c;
    font-size: 1.08rem;
    line-height: 1.2;
    font-weight: 900;
    text-wrap: balance;
}

.calendar-copy-modal-close[b-zku8ulalvl] {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    display: inline-grid;
    place-items: center;
    border: 0;
    border-radius: 9px;
    color: #3c4148;
    background: transparent;
    cursor: pointer;
    transition: background 0.2s, color 0.2s, transform 0.2s;
}

.calendar-copy-modal-close:focus-visible[b-zku8ulalvl] {
    color: #16181c;
    background: #efeff1;
    outline: none;
    transform: translateY(-1px);
}

@media (hover: hover) {
    .calendar-copy-modal-close:hover[b-zku8ulalvl] {
        color: #16181c;
        background: #efeff1;
        outline: none;
        transform: translateY(-1px);
    }
}

.calendar-copy-modal-summary[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    gap: 11px;
    border: 1px solid rgba(226, 232, 240, 0.88);
    border-radius: 13px;
    padding: 11px 12px;
    background: #f5f5f7;
}

.calendar-copy-modal-summary-icon[b-zku8ulalvl] {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    display: inline-grid;
    place-items: center;
    border-radius: 10px;
    color: #ffffff;
    background: #16181c;
}

.calendar-copy-modal-summary-text[b-zku8ulalvl] {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.calendar-copy-modal-summary-text strong[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    color: #16181c;
    font-size: 0.9rem;
    font-weight: 850;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-copy-modal-summary-text small[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    color: #80858d;
    font-size: 0.75rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-copy-modal-summary-meta[b-zku8ulalvl] {
    min-width: 0;
    overflow: hidden;
    color: #3c4148;
    font-size: 0.72rem;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-copy-modal-hint[b-zku8ulalvl] {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #f3e6bd;
    border-radius: 11px;
    padding: 9px 11px;
    color: #5b4a16;
    background: #fdf6e3;
    font-size: 0.74rem;
    font-weight: 750;
    line-height: 1.3;
}

.calendar-copy-modal-hint svg[b-zku8ulalvl] {
    flex-shrink: 0;
}

.calendar-copy-modal-time[b-zku8ulalvl] {
    display: grid;
    gap: 8px;
}

.calendar-copy-modal-time-label[b-zku8ulalvl] {
    color: #80858d;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.calendar-copy-modal-time-grid[b-zku8ulalvl] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
}

.calendar-copy-modal-validation[b-zku8ulalvl] {
    border: 1px solid #fecaca;
    border-radius: 10px;
    padding: 8px 11px;
    color: #b91c1c;
    background: #fff5f5;
    font-size: 0.76rem;
    font-weight: 800;
}

.calendar-copy-modal-actions[b-zku8ulalvl] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
}

.calendar-copy-modal-cancel[b-zku8ulalvl],
.calendar-copy-modal-editor[b-zku8ulalvl],
.calendar-copy-modal-confirm[b-zku8ulalvl] {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 0;
    border-radius: 11px;
    padding: 0 13px;
    cursor: pointer;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 850;
    transition: background 0.18s, color 0.18s, box-shadow 0.18s, transform 0.12s, border-color 0.18s;
}

.calendar-copy-modal-cancel svg[b-zku8ulalvl],
.calendar-copy-modal-editor svg[b-zku8ulalvl],
.calendar-copy-modal-confirm svg[b-zku8ulalvl] {
    flex-shrink: 0;
}

.calendar-copy-modal-cancel[b-zku8ulalvl] {
    color: #3c4148;
    background: #efeff1;
}

.calendar-copy-modal-editor[b-zku8ulalvl] {
    border: 1px solid #d4d4d8;
    color: #16181c;
    background: #ffffff;
}

.calendar-copy-modal-confirm[b-zku8ulalvl] {
    color: #ffffff;
    background: #16181c;
    box-shadow: 0 8px 18px rgba(22, 24, 28, 0.2);
}

.calendar-copy-modal-cancel:focus-visible[b-zku8ulalvl],
.calendar-copy-modal-editor:focus-visible[b-zku8ulalvl],
.calendar-copy-modal-confirm:focus-visible[b-zku8ulalvl] {
    outline: none;
    transform: translateY(-1px);
}

@media (hover: hover) {
    .calendar-copy-modal-cancel:hover[b-zku8ulalvl],
    .calendar-copy-modal-editor:hover[b-zku8ulalvl],
    .calendar-copy-modal-confirm:hover[b-zku8ulalvl] {
        outline: none;
        transform: translateY(-1px);
    }
}

.calendar-copy-modal-editor:focus-visible[b-zku8ulalvl] {
    color: #ffffff;
    background: #16181c;
    border-color: #16181c;
}

@media (hover: hover) {
    .calendar-copy-modal-editor:hover[b-zku8ulalvl] {
        color: #ffffff;
        background: #16181c;
        border-color: #16181c;
    }
}

.calendar-copy-modal-confirm:focus-visible[b-zku8ulalvl] {
    background: #26282e;
    box-shadow: 0 10px 22px rgba(22, 24, 28, 0.26);
}

@media (hover: hover) {
    .calendar-copy-modal-confirm:hover[b-zku8ulalvl] {
        background: #26282e;
        box-shadow: 0 10px 22px rgba(22, 24, 28, 0.26);
    }
}

.calendar-copy-modal-cancel:active[b-zku8ulalvl],
.calendar-copy-modal-editor:active[b-zku8ulalvl],
.calendar-copy-modal-confirm:active[b-zku8ulalvl] {
    transform: scale(0.985);
}

.calendar-copy-modal-confirm:disabled[b-zku8ulalvl] {
    cursor: not-allowed;
    opacity: 0.5;
    box-shadow: none;
    transform: none;
}

@media (max-width: 540px) {
    /* Zentriert lassen (nicht als Bottom-Sheet): das Datums-Dropdown öffnet nach
       unten und würde am unteren Rand sonst abgeschnitten. */
    .calendar-copy-modal-layer[b-zku8ulalvl] {
        padding: 12px;
    }

    .calendar-copy-modal-shell[b-zku8ulalvl] {
        width: 100%;
        border-radius: 16px;
    }

    .calendar-copy-modal-core[b-zku8ulalvl] {
        border-radius: 16px;
        padding: 14px;
    }

    .calendar-copy-modal-time-grid[b-zku8ulalvl] {
        grid-template-columns: 1fr;
    }

    .calendar-copy-modal-actions[b-zku8ulalvl] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Calendar/CalendarDateTimePicker.razor.rz.scp.css */
.calendar-dtp[b-7ipr7s47z0] {
    position: relative;
    min-width: 0;
}

.calendar-dtp-field[b-7ipr7s47z0] {
    width: 100%;
    min-height: 44px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 2px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    padding: 6px 10px;
    color: #16181c;
    background: #ffffff;
    font: inherit;
    cursor: pointer;
    text-align: left;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.calendar-dtp-field:focus-visible[b-7ipr7s47z0] {
    border-color: #16181c;
    background: #efeff1;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
    outline: none;
}

@media (hover: hover) {
    .calendar-dtp-field:hover[b-7ipr7s47z0] {
        border-color: #16181c;
        background: #efeff1;
        box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
        outline: none;
    }
}

.calendar-dtp-field span[b-7ipr7s47z0] {
    color: #80858d;
    font-size: 0.64rem;
    font-weight: 950;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.calendar-dtp-field strong[b-7ipr7s47z0] {
    color: #16181c;
    font-size: 0.86rem;
    font-weight: 900;
    line-height: 1.15;
}

.calendar-dtp-popup[b-7ipr7s47z0] {
    position: absolute;
    top: calc(100% + 7px);
    left: 0;
    z-index: 2199;
    width: min(392px, calc(100vw - 42px));
    max-width: calc(100vw - 28px);
    max-height: min(286px, calc(100vh - 112px));
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.22), 0 7px 18px rgba(15, 23, 42, 0.1);
}

.calendar-dtp-layout[b-7ipr7s47z0] {
    display: grid;
    grid-template-columns: minmax(0, 274px) 116px;
    align-items: stretch;
    height: min(286px, calc(100vh - 112px));
}

/* Date-only mode (HideTime): no time column, popup hugs the calendar. */
.calendar-dtp--date-only .calendar-dtp-popup[b-7ipr7s47z0] {
    width: min(286px, calc(100vw - 42px));
}

.calendar-dtp--date-only .calendar-dtp-layout[b-7ipr7s47z0] {
    grid-template-columns: minmax(0, 1fr);
}

.calendar-dtp--date-only .calendar-dtp-calendar[b-7ipr7s47z0] {
    border-right: none;
}

.calendar-dtp-calendar[b-7ipr7s47z0],
.calendar-dtp-time[b-7ipr7s47z0] {
    min-width: 0;
    min-height: 0;
    background: #ffffff;
}

.calendar-dtp-calendar[b-7ipr7s47z0] {
    border-right: 1px solid #e4e4e7;
}

.calendar-dtp-picker-head[b-7ipr7s47z0] {
    height: 40px;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) 30px;
    align-items: center;
    gap: 5px;
    border-bottom: 1px solid #e4e4e7;
    padding: 5px 7px;
    background: #efeff1;
}

.calendar-dtp-picker-head strong[b-7ipr7s47z0] {
    min-width: 0;
    overflow: hidden;
    color: #16181c;
    font-size: 0.83rem;
    font-weight: 950;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-dtp-icon-btn[b-7ipr7s47z0] {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 6px;
    color: #16181c;
    background: #e4e4e7;
    cursor: pointer;
    transition: background 0.14s, color 0.14s;
}

.calendar-dtp-icon-btn:focus-visible[b-7ipr7s47z0] {
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .calendar-dtp-icon-btn:hover[b-7ipr7s47z0] {
        color: #16181c;
        background: #efeff1;
        outline: none;
    }
}

.calendar-dtp-weekdays[b-7ipr7s47z0],
.calendar-dtp-days[b-7ipr7s47z0] {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.calendar-dtp-weekdays[b-7ipr7s47z0] {
    height: 26px;
    align-items: center;
    border-bottom: 1px solid #e4e4e7;
    color: #80858d;
    background: #ffffff;
    font-size: 0.58rem;
    font-weight: 950;
    letter-spacing: 0.05em;
    text-align: center;
    text-transform: uppercase;
}

.calendar-dtp-days[b-7ipr7s47z0] {
    gap: 3px;
    padding: 8px;
}

.calendar-dtp-day[b-7ipr7s47z0] {
    aspect-ratio: 1;
    min-width: 0;
    border: none;
    border-radius: 6px;
    color: #16181c;
    background: transparent;
    font: inherit;
    font-size: 0.75rem;
    font-weight: 850;
    cursor: pointer;
    transition: background 0.14s, color 0.14s, transform 0.12s;
}

.calendar-dtp-day:focus-visible[b-7ipr7s47z0] {
    color: #16181c;
    background: #eef2f7;
    outline: none;
}

@media (hover: hover) {
    .calendar-dtp-day:hover[b-7ipr7s47z0] {
        color: #16181c;
        background: #eef2f7;
        outline: none;
    }
}

.calendar-dtp-day:active[b-7ipr7s47z0] {
    transform: translateY(1px);
}

.calendar-dtp-day--outside[b-7ipr7s47z0] {
    color: #94a3b8;
}

.calendar-dtp-day--today[b-7ipr7s47z0] {
    color: #16181c;
    box-shadow: inset 0 0 0 1px rgba(22, 24, 28, 0.32);
}

.calendar-dtp-day--selected[b-7ipr7s47z0] {
    color: #ffffff;
    background: #16181c;
}

.calendar-dtp-day--selected:focus-visible[b-7ipr7s47z0] {
    color: #ffffff;
    background: #16181c;
}

@media (hover: hover) {
    .calendar-dtp-day--selected:hover[b-7ipr7s47z0] {
        color: #ffffff;
        background: #16181c;
    }
}

.calendar-dtp-time[b-7ipr7s47z0] {
    height: 100%;
}

.calendar-dtp-time-list[b-7ipr7s47z0] {
    height: 100%;
    overflow-y: auto;
    padding: 7px;
}

.calendar-dtp-time-btn[b-7ipr7s47z0] {
    width: 100%;
    height: 30px;
    border: none;
    border-radius: 6px;
    color: #16181c;
    background: transparent;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 850;
    cursor: pointer;
    transition: background 0.14s, color 0.14s;
}

.calendar-dtp-time-btn:focus-visible[b-7ipr7s47z0] {
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .calendar-dtp-time-btn:hover[b-7ipr7s47z0] {
        color: #16181c;
        background: #efeff1;
        outline: none;
    }
}

.calendar-dtp-time-btn--selected[b-7ipr7s47z0] {
    color: #ffffff;
    background: #16181c;
}

.calendar-dtp-time-btn--selected:focus-visible[b-7ipr7s47z0] {
    color: #ffffff;
    background: #16181c;
}

@media (hover: hover) {
    .calendar-dtp-time-btn--selected:hover[b-7ipr7s47z0] {
        color: #ffffff;
        background: #16181c;
    }
}

/* Am Handy: zweispaltige Optik wie am Desktop, aber insgesamt groesser –
   schmalere Zeiten-Spalte und mehr Breite, damit die Tag-Felder groesser werden. */
@media (max-width: 560px) {
    .calendar-dtp-popup[b-7ipr7s47z0] {
        width: min(440px, calc(100vw - 16px));
        max-width: calc(100vw - 16px);
        max-height: min(348px, calc(100vh - 80px));
    }

    .calendar-dtp--date-only .calendar-dtp-popup[b-7ipr7s47z0] {
        width: min(316px, calc(100vw - 16px));
    }

    /* schmalere Zeiten-Spalte → mehr Breite fuer groessere Tag-Felder */
    .calendar-dtp-layout[b-7ipr7s47z0] {
        grid-template-columns: minmax(0, 1fr) 74px;
        height: min(348px, calc(100vh - 80px));
    }

    .calendar-dtp-weekdays[b-7ipr7s47z0] {
        font-size: 0.64rem;
    }

    .calendar-dtp-days[b-7ipr7s47z0] {
        gap: 4px;
        padding: 9px;
    }

    .calendar-dtp-day[b-7ipr7s47z0] {
        font-size: 0.94rem;
    }

    .calendar-dtp-time-list[b-7ipr7s47z0] {
        padding: 6px 5px;
    }

    .calendar-dtp-time-btn[b-7ipr7s47z0] {
        height: 34px;
        font-size: 0.82rem;
    }
}
/* /Components/Pages/ChangePassword.razor.rz.scp.css */
.change-page[b-kf72d42gsk] {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: #f5f5f7;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.change-panel[b-kf72d42gsk] {
    width: min(430px, 100%);
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 28px;
    background: #ffffff;
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
}

.change-header[b-kf72d42gsk] {
    display: flex;
    align-items: center;
    gap: 14px;
}

.change-icon[b-kf72d42gsk] {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 13px;
    color: #ffffff;
    background: #16181c;
}

.change-eyebrow[b-kf72d42gsk] {
    display: block;
    margin-bottom: 3px;
    color: #80858d;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.change-header h1[b-kf72d42gsk] {
    margin: 0;
    color: #16181c;
    font-size: 1.35rem;
    font-weight: 800;
}

.change-error[b-kf72d42gsk] {
    color: #b42318;
    background: #fbeae8;
    border: 1px solid #f0c9c4;
    border-radius: 11px;
    padding: 10px 12px;
    font-size: 0.9rem;
    font-weight: 600;
}

.change-field[b-kf72d42gsk] {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.change-field span[b-kf72d42gsk] {
    color: #3c4148;
    font-size: 0.84rem;
    font-weight: 700;
}

.change-field input[b-kf72d42gsk] {
    width: 100%;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 12px 50px 12px 12px;
    color: #16181c;
    background: #ffffff;
    font: inherit;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.change-password-wrap[b-kf72d42gsk] {
    position: relative;
    display: flex;
    align-items: center;
}

.change-password-wrap .password-toggle[b-kf72d42gsk] {
    position: absolute;
    right: 8px;
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 9px;
    color: #80858d;
    background: transparent;
    cursor: pointer;
    transition: color 0.15s, background 0.15s;
}

@media (hover: hover) {
    .password-toggle:hover[b-kf72d42gsk] {
        color: #16181c;
        background: #efeff1;
    }
}

.password-toggle:focus-visible[b-kf72d42gsk] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.2);
}

.password-toggle .password-toggle-hide[b-kf72d42gsk] {
    display: none;
}

.password-toggle[aria-pressed="true"] .password-toggle-show[b-kf72d42gsk] {
    display: none;
}

.password-toggle[aria-pressed="true"] .password-toggle-hide[b-kf72d42gsk] {
    display: block;
}

.change-field input:focus[b-kf72d42gsk] {
    border-color: #16181c;
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.change-submit[b-kf72d42gsk] {
    min-height: 48px;
    margin-top: 2px;
    border: none;
    border-radius: 12px;
    color: #ffffff;
    background: #16181c;
    font: inherit;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    transition: background 0.15s, transform 0.12s, box-shadow 0.15s;
}

@media (hover: hover) {
    .change-submit:hover[b-kf72d42gsk] {
        background: #26282e;
        transform: translateY(-1px);
        box-shadow: 0 10px 22px -12px rgba(0, 0, 0, 0.3);
    }
}

.change-submit:active[b-kf72d42gsk] {
    transform: translateY(0);
}

.change-submit:focus-visible[b-kf72d42gsk] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.24);
}
/* /Components/Pages/Dashboard/Dashboard.razor.rz.scp.css */
/* ===== Dashboard / Widget-Raster ===== */

/* -- Scrollende Dashboard-Seite ------------------------------------------------
   Wird (wie früher die Vollbild-Karte) hinter den transparenten Header gezogen, der
   Inhalt aber per padding-top darunter geschoben → nahtloser #f5f5f7-Hintergrund. */
.dash[b-s155shzptl] {
    box-sizing: border-box;
    height: 100dvh;
    margin-top: calc(-1 * var(--app-header-h));
    padding: calc(var(--app-header-h) + 10px) clamp(14px, 4vw, 40px) 16px;
    overflow: hidden;                /* füllt den Viewport, kein Seiten-Scroll */
    background: #f5f5f7;
    font: 14px/1.45 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    color: #16181c;
    -webkit-font-smoothing: antialiased;
    display: flex;
    flex-direction: column;
}

.dash-inner[b-s155shzptl] {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    display: flex;
}

/* Bento = drei Flex-Spalten. „Fertige" Karten (Tankstellen, Wetter) bleiben inhaltshoch,
   die inhaltsreichen (Brett, Karte, Team, Geburtstage) füllen die Spaltenhöhe → kein Leerraum/Strecken. */
.dash-bento[b-s155shzptl] {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    display: flex;
    gap: 16px;
}

.dash-col[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
    min-height: 0;
}

.dash-col--left[b-s155shzptl] { flex: 1.4 1 0; }
.dash-col--mid[b-s155shzptl] { flex: 1 1 0; }
.dash-col--right[b-s155shzptl] { flex: 1.15 1 0; }

/* Zelle = Grid-Container → die Karte füllt sie automatisch per Stretch (kein Kind-Selektor nötig,
   der wegen Blazor-CSS-Scoping die Kind-Komponente eh nicht treffen würde). */
.dash-cell[b-s155shzptl] {
    display: grid;
    min-width: 0;
    min-height: 0;
}

/* Inhaltsreich → füllt die Spaltenhöhe; fertig/komplett → bleibt inhaltshoch. */
.dash-cell--board[b-s155shzptl] { flex: 1 1 auto; }
.dash-cell--working[b-s155shzptl] { flex: 1 1 0; }
.dash-cell--birthdays[b-s155shzptl] { flex: 1 1 0; }
.dash-cell--fuel[b-s155shzptl] { flex: 0 0 auto; }
.dash-cell--weather[b-s155shzptl] { flex: 0 0 auto; }

/* „Fertige" Karten dürfen NICHT auf Zellhöhe gestreckt werden → Karte selbst inhaltshoch
   (Kind-Komponente: nur per ::deep erreichbar). */
.dash-cell--fuel[b-s155shzptl]  .fl-card,
.dash-cell--weather[b-s155shzptl]  .wx-card {
    height: auto;
}

/* Karten-Kachel: füllt die Spaltenhöhe; die Karte (dsh-map-wrap) stretcht als Grid-Kind hinein. */
.dash-cell--map[b-s155shzptl] {
    flex: 1 1 auto;
    min-height: 240px;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

/* Mittelbreite/Schmal: Spalten stapeln, normale scrollende Seite. */
@media (max-width: 1000px) {
    .dash[b-s155shzptl] {
        height: auto;
        min-height: 100dvh;
        overflow: visible;
        display: block;
    }

    .dash-inner[b-s155shzptl] {
        display: block;
    }

    .dash-bento[b-s155shzptl] {
        flex-direction: column;
    }

    .dash-col[b-s155shzptl] {
        flex: 0 0 auto;
    }

    .dash-cell[b-s155shzptl],
    .dash-cell--board[b-s155shzptl],
    .dash-cell--map[b-s155shzptl],
    .dash-cell--working[b-s155shzptl],
    .dash-cell--birthdays[b-s155shzptl] {
        flex: 0 0 auto;
    }

    .dash-cell--board[b-s155shzptl] { min-height: 300px; }
    .dash-cell--map[b-s155shzptl] { min-height: 320px; }
    .dash-cell--working[b-s155shzptl],
    .dash-cell--birthdays[b-s155shzptl] { min-height: 190px; }
}

.dsh-sr-only[b-s155shzptl] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.dsh-map-wrap[b-s155shzptl] {
    position: relative;
    height: 100%;
    overflow: hidden;
    background: #eef1f4;
}

/* Vollbild: füllt den Viewport unter dem schwebenden Header (z-index 1200). */
.dsh-map-wrap.is-fullscreen[b-s155shzptl] {
    position: fixed;
    inset: 0;
    height: auto;
    z-index: 1100;
    border-radius: 0;
}

.dsh-map[b-s155shzptl] {
    width: 100%;
    height: 100%;
    background: #eef1f4;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
}

/* Vollbild-Umschalter der Karten-Kachel (oben links). */
.dsh-fsbtn[b-s155shzptl] {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 1000;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 13px;
    border: 1px solid rgba(0, 0, 0, .06);
    border-radius: 999px;
    background: rgba(255, 255, 255, .92);
    color: #16181c;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 8px 24px -12px rgba(16, 24, 40, .3);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: background .14s ease, transform .12s ease;
}

@media (hover: hover) {
    .dsh-fsbtn:hover[b-s155shzptl] {
        background: #fff;
        transform: translateY(-1px);
    }
}

.dsh-fsbtn svg[b-s155shzptl] {
    flex: 0 0 auto;
}

/* Im Vollbild unter den schwebenden Header schieben. */
.dsh-map-wrap.is-fullscreen .dsh-fsbtn[b-s155shzptl] {
    top: calc(var(--app-header-h) + 12px);
}

/* Karten-Overlays (Orts-Suche, Baustellen-Liste, Routenplaner) gibt es nur im Vollbild. */
.dsh-map-wrap:not(.is-fullscreen) .dsh-placesearch[b-s155shzptl],
.dsh-map-wrap:not(.is-fullscreen) .dsh-topright[b-s155shzptl] {
    display: none !important;
}

/* Vollbild: Orts-Suche echt mittig (statt unter der hier nicht vorhandenen Header-Pille) →
   überlappt den „Schließen"-Button oben links nicht mehr. */
.dsh-map-wrap.is-fullscreen .dsh-placesearch[b-s155shzptl] {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: min(390px, 44vw);
}

/* Schmal: Schließen-Button nur als Icon (kompakt), Suche rechts daneben statt darüber. */
@media (max-width: 820px) {
    .dsh-map-wrap.is-fullscreen .dsh-fsbtn[b-s155shzptl] {
        padding: 0;
        width: 34px;
        justify-content: center;
    }

    .dsh-map-wrap.is-fullscreen .dsh-fsbtn span[b-s155shzptl] {
        display: none;
    }

    .dsh-map-wrap.is-fullscreen .dsh-placesearch[b-s155shzptl] {
        left: 58px;
        right: 12px;
        transform: none;
        width: auto;
    }
}

/* Karte/Satellit-Umschalter (oben links) */
.dsh-maptools[b-s155shzptl] {
    position: absolute;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 12px);   /* rechts unten, UNTER der Zoom-Steuerung */
    right: 12px;
    z-index: 600;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px;
    background: rgba(255, 255, 255, .92);
    border: 1px solid rgba(0, 0, 0, .06);
    border-radius: 13px;
    box-shadow: 0 8px 24px rgba(16, 24, 40, .16);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.dsh-bm[b-s155shzptl] {
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    padding: .38rem .7rem;
    border: 0;
    background: transparent;
    border-radius: 10px;
    cursor: pointer;
    font-size: .82rem;
    font-weight: 650;
    color: #636366;
    transition: background .14s ease, color .14s ease;
    white-space: nowrap;
}

@media (hover: hover) {
    .dsh-bm:hover[b-s155shzptl] {
        background: rgba(0, 0, 0, .05);
        color: #1c1c1e;
    }
}

.dsh-bm.is-active[b-s155shzptl] {
    background: #16181c;
    color: #fff;
    box-shadow: 0 4px 10px rgba(22, 24, 28, .28);
}

/* Baustellen-Button + Geocoding-Status (oben rechts) */
.dsh-topright[b-s155shzptl] {
    position: absolute;
    top: calc(var(--app-header-h) + 12px);
    right: 12px;
    z-index: 1000;   /* über Leaflets Popup-Pane (700), wie die Orts-Suche */
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

/* Einheitlicher Auslöse-Button (Baustellen + Routenplaner), oben rechts. */
.dsh-mapbtn[b-s155shzptl] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem .8rem;
    border: 1px solid rgba(0, 0, 0, .06);
    border-radius: 13px;
    background: rgba(255, 255, 255, .92);
    color: #1c1c1e;
    font-size: .85rem;
    font-weight: 650;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(16, 24, 40, .16);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: background .14s ease, transform .12s ease;
}

.dsh-mapbtn svg[b-s155shzptl] {
    flex: 0 0 auto;
}

@media (hover: hover) {
    .dsh-mapbtn:hover[b-s155shzptl] {
        background: #fff;
        transform: translateY(-1px);
    }
}

.dsh-geo[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .5rem;
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(0, 0, 0, .06);
    border-radius: 999px;
    padding: .42rem .8rem;
    font-size: .8rem;
    font-weight: 600;
    color: #1c1c1e;
    box-shadow: 0 8px 24px rgba(16, 24, 40, .16);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.dsh-geo-spinner[b-s155shzptl] {
    width: 14px;
    height: 14px;
    border: 2.2px solid #d8d8dd;
    border-top-color: #16181c;
    border-radius: 50%;
    animation: dsh-spin-b-s155shzptl .7s linear infinite;
}

/* -- Kein Zugriff ----------------------------------------------------------- */
.dsh-blocked[b-s155shzptl] {
    display: grid;
    place-items: center;
    min-height: 60vh;
    font-family: -apple-system, system-ui, "Segoe UI", Roboto, sans-serif;
    color: #1c1c1e;
}

.dsh-denied[b-s155shzptl] {
    text-align: center;
    max-width: 360px;
}

.dsh-denied-icon[b-s155shzptl] {
    width: 58px;
    height: 58px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    margin: 0 auto 1rem;
    background: #fdecea;
    color: #ff3b30;
}

.dsh-denied h1[b-s155shzptl] {
    margin: 0 0 .4rem;
    font-size: 1.4rem;
}

.dsh-denied p[b-s155shzptl] {
    color: #636366;
    font-size: .92rem;
}

/* -- Modal-Kopf (Liste + Hinzufügen) ----------------------------------------- */
.dsh-lm-head[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .7rem;
    flex-wrap: wrap;
}

.dsh-lm-head-icon[b-s155shzptl] {
    flex: 0 0 auto;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: .75rem;
    display: grid;
    place-items: center;
    background: #efeff1;
    color: #16181c;
}

.dsh-lm-head-text[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.dsh-lm-kicker[b-s155shzptl] {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #16181c;
}

.dsh-lm-title[b-s155shzptl] {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 750;
    color: #1c1c1e;
}

.dsh-lm-counter[b-s155shzptl] {
    margin-left: auto;
    font-size: .78rem;
    font-weight: 600;
    color: #8e8e93;
    white-space: nowrap;
}

/* -- Suche + Liste (im Popup) ------------------------------------------------ */
.dsh-search[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .55rem .75rem;
    border: 1.5px solid #e5e5ea;
    border-radius: 12px;
    background: #fff;
    margin-bottom: .7rem;
}

.dsh-search:focus-within[b-s155shzptl] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.dsh-search svg[b-s155shzptl] {
    color: #8e8e93;
    flex: 0 0 auto;
}

.dsh-search:focus-within svg[b-s155shzptl] {
    color: #16181c;
}

.dsh-search input[b-s155shzptl] {
    flex: 1 1 auto;
    border: 0;
    outline: 0;
    font-size: .9rem;
    background: transparent;
    color: #1c1c1e;
    min-width: 0;
}

.dsh-search input[b-s155shzptl]::placeholder {
    color: #b0b0b6;
}

.dsh-search-clear[b-s155shzptl] {
    border: 0;
    background: #ececed;
    color: #636366;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    cursor: pointer;
    flex: 0 0 auto;
    transition: background .14s ease;
}

@media (hover: hover) {
    .dsh-search-clear:hover[b-s155shzptl] {
        background: #e0e0e4;
    }
}

/* Suchzeile mit Filter-Button */
.dsh-listbar[b-s155shzptl] {
    display: flex;
    align-items: stretch;
    gap: .5rem;
    margin-bottom: .7rem;
}

.dsh-listbar .dsh-search[b-s155shzptl] {
    flex: 1 1 auto;
    margin-bottom: 0;
}

.dsh-filter-btn[b-s155shzptl] {
    position: relative;
    flex: 0 0 auto;
    width: 44px;
    border: 1.5px solid #e5e5ea;
    border-radius: 12px;
    background: #fff;
    color: #475467;
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: background .14s ease, border-color .14s ease, color .14s ease;
}

@media (hover: hover) {
    .dsh-filter-btn:hover[b-s155shzptl] {
        background: #f6f6f8;
        color: #1c1c1e;
    }
}

.dsh-filter-btn.is-open[b-s155shzptl] {
    background: #efeff1;
    border-color: #16181c;
    color: #16181c;
}

.dsh-filter-btn.is-active[b-s155shzptl] {
    color: #16181c;
}

.dsh-filter-dot[b-s155shzptl] {
    position: absolute;
    top: 7px;
    right: 7px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #16181c;
    box-shadow: 0 0 0 2px #fff;
}

/* Schalter "Ohne Standort ausblenden" */
.dsh-fp-toggle[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .6rem;
    cursor: pointer;
    font-size: .85rem;
    font-weight: 600;
    color: #1c1c1e;
}

.dsh-fp-toggle input[b-s155shzptl] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.dsh-fp-switch[b-s155shzptl] {
    flex: 0 0 auto;
    width: 40px;
    height: 24px;
    border-radius: 999px;
    background: #d1d1d6;
    position: relative;
    transition: background .16s ease;
}

.dsh-fp-switch[b-s155shzptl]::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
    transition: transform .16s ease;
}

.dsh-fp-toggle input:checked + .dsh-fp-switch[b-s155shzptl] {
    background: #16181c;
}

.dsh-fp-toggle input:checked + .dsh-fp-switch[b-s155shzptl]::after {
    transform: translateX(16px);
}

.dsh-fp-toggle input:focus-visible + .dsh-fp-switch[b-s155shzptl] {
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .25);
}

/* Status-Filter als Liste (im Popover) */
.dsh-fstatuslist[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.dsh-fstatus[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .55rem;
    width: 100%;
    text-align: left;
    border: 1.5px solid #e6e6eb;
    background: #fff;
    border-radius: 10px;
    padding: .45rem .55rem;
    font-size: .82rem;
    font-weight: 600;
    color: #8e8e93;
    cursor: pointer;
    transition: background .14s ease, border-color .14s ease, color .14s ease;
}

@media (hover: hover) {
    .dsh-fstatus:hover[b-s155shzptl] {
        background: #f6f6f8;
    }
}

.dsh-fstatus.is-active[b-s155shzptl] {
    color: #1c1c1e;
    border-color: color-mix(in srgb, var(--chip) 45%, #e6e6eb);
    background: color-mix(in srgb, var(--chip) 8%, #fff);
}

.dsh-fstatus-check[b-s155shzptl] {
    flex: 0 0 auto;
    width: 17px;
    height: 17px;
    border-radius: 5px;
    border: 1.5px solid #d1d1d6;
    background: #fff;
    display: grid;
    place-items: center;
    color: transparent;
    transition: background .14s ease, border-color .14s ease, color .14s ease;
}

.dsh-fstatus.is-active .dsh-fstatus-check[b-s155shzptl] {
    background: var(--chip, #16181c);
    border-color: var(--chip, #16181c);
    color: #fff;
}

.dsh-fstatus-name[b-s155shzptl] {
    flex: 1 1 auto;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dsh-fstatus-count[b-s155shzptl] {
    font-style: normal;
    font-size: .72rem;
    color: #aeaeb2;
    background: #f3f3f5;
    border-radius: 999px;
    padding: .05rem .42rem;
    font-variant-numeric: tabular-nums;
}

.dsh-fstatus.is-active .dsh-fstatus-count[b-s155shzptl] {
    background: color-mix(in srgb, var(--chip) 16%, #fff);
    color: #4b4b4f;
}

.dsh-list[b-s155shzptl] {
    max-height: 46vh;
    overflow-y: auto;
    margin: 0 -.35rem;
    padding: 0 .35rem;
    scrollbar-width: thin;
    scrollbar-color: #d4d4d9 transparent;
}

.dsh-list[b-s155shzptl]::-webkit-scrollbar {
    width: 8px;
}

.dsh-list[b-s155shzptl]::-webkit-scrollbar-thumb {
    background: #d8d8dd;
    border-radius: 99px;
}

.dsh-row[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .15rem;
    width: 100%;
    border-radius: 13px;
    transition: background .13s ease;
}

@media (hover: hover) {
    .dsh-row:hover[b-s155shzptl] {
        background: #f6f6f8;
    }
}

.dsh-row.is-selected[b-s155shzptl] {
    background: #efeff1;
    box-shadow: inset 0 0 0 1.5px rgba(22, 24, 28, .25);
}

/* Klickbarer Hauptbereich der Zeile (wählt die Baustelle aus / fliegt hin) */
.dsh-row-main[b-s155shzptl] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    border: 0;
    background: transparent;
    border-radius: 13px;
    padding: .62rem .2rem .62rem .68rem;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

/* „Zur Route hinzufügen" rechts mittig in der Zeile */
.dsh-row-add[b-s155shzptl] {
    flex: 0 0 auto;
    align-self: center;
    width: 34px;
    height: 34px;
    margin-right: .3rem;
    display: grid;
    place-items: center;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #fff;
    color: #3c4148;
    cursor: pointer;
    transition: background .13s ease, color .13s ease, border-color .13s ease;
}

@media (hover: hover) {
    .dsh-row-add:hover[b-s155shzptl] {
        background: #16181c;
        color: #fff;
        border-color: #16181c;
    }
}

.dsh-row-add.is-in[b-s155shzptl] {
    background: #16181c;
    color: #fff;
    border-color: #16181c;
    cursor: default;
}

.dsh-row-dot[b-s155shzptl] {
    flex: 0 0 auto;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--dot, #16181c);
    margin-top: .28rem;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--dot) 16%, transparent);
}

.dsh-row-body[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
    gap: .08rem;
}

.dsh-row-title[b-s155shzptl] {
    font-size: .9rem;
    font-weight: 650;
    color: #1c1c1e;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dsh-row-sub[b-s155shzptl] {
    font-size: .8rem;
    color: #6a6a6f;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dsh-row-kunde[b-s155shzptl] {
    font-size: .75rem;
    color: #aeaeb2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dsh-row.is-nolocation[b-s155shzptl] {
    opacity: .72;
}

.dsh-row-flag[b-s155shzptl] {
    flex: 0 0 auto;
    font-size: .64rem;
    font-weight: 700;
    color: #b45309;
    background: #fef3da;
    border-radius: 6px;
    padding: .14rem .38rem;
    margin-top: .15rem;
    white-space: nowrap;
}

.dsh-empty[b-s155shzptl] {
    padding: 1.4rem 1rem;
    text-align: center;
    color: #aeaeb2;
    font-size: .88rem;
}

/* -- "Baustelle hinzufügen": Formular ----------------------------------------- */
.dsh-form[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.dsh-field[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    min-width: 0;
}

.dsh-field > span[b-s155shzptl] {
    font-size: .78rem;
    font-weight: 650;
    color: #475467;
}

.dsh-field-row[b-s155shzptl] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
}

.dsh-field-error[b-s155shzptl] {
    color: #d92d20;
    font-size: .76rem;
    font-weight: 600;
}

.dsh-add-error[b-s155shzptl] {
    margin-top: .8rem;
    padding: .6rem .75rem;
    border-radius: 11px;
    background: #fdecea;
    color: #b42318;
    font-size: .82rem;
    font-weight: 600;
}

/* Adress-Box im Kunden-Formular (mit Übernehmen-Link) */
.dsh-addr-box[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    border: 1.5px solid #e5e5ea;
    border-radius: 13px;
    padding: .65rem .8rem .8rem;
    background: #fafafa;
}

.dsh-addr-box-head[b-s155shzptl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    flex-wrap: wrap;
}

.dsh-addr-box-label[b-s155shzptl] {
    font-size: .78rem;
    font-weight: 650;
    color: #475467;
}

.dsh-addr-copy[b-s155shzptl] {
    border: 0;
    background: none;
    padding: 0;
    color: #16181c;
    font-size: .76rem;
    font-weight: 650;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    white-space: nowrap;
}

@media (hover: hover) {
    .dsh-addr-copy:hover[b-s155shzptl] {
        color: #26282e;
    }
}

/* Umschalter "Bestehender Kunde / Neuer Kunde" */
.dsh-kmode[b-s155shzptl] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    padding: 4px;
    background: #f2f2f7;
    border-radius: 12px;
    margin-bottom: .8rem;
}

.dsh-kmode-btn[b-s155shzptl] {
    border: 0;
    background: transparent;
    border-radius: 9px;
    padding: .48rem .5rem;
    font-size: .82rem;
    font-weight: 650;
    color: #636366;
    cursor: pointer;
    transition: background .14s ease, color .14s ease, box-shadow .14s ease;
}

.dsh-kmode-btn.is-active[b-s155shzptl] {
    background: #fff;
    color: #1c1c1e;
    box-shadow: 0 2px 8px rgba(16, 24, 40, .12);
}

.dsh-search--boxed[b-s155shzptl] {
    margin-bottom: .55rem;
}

/* Kundenliste (Auswahl) */
.dsh-klist[b-s155shzptl] {
    max-height: 34vh;
    overflow-y: auto;
    border: 1.5px solid #ececf1;
    border-radius: 13px;
    padding: .3rem;
    scrollbar-width: thin;
    scrollbar-color: #d4d4d9 transparent;
}

.dsh-klist[b-s155shzptl]::-webkit-scrollbar {
    width: 8px;
}

.dsh-klist[b-s155shzptl]::-webkit-scrollbar-thumb {
    background: #d8d8dd;
    border-radius: 99px;
}

.dsh-krow[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .6rem;
    width: 100%;
    text-align: left;
    border: 0;
    background: transparent;
    border-radius: 10px;
    padding: .5rem .55rem;
    cursor: pointer;
    transition: background .13s ease;
}

@media (hover: hover) {
    .dsh-krow:hover[b-s155shzptl] {
        background: #f6f6f8;
    }
}

.dsh-krow.is-selected[b-s155shzptl] {
    background: #efeff1;
}

.dsh-krow-radio[b-s155shzptl] {
    flex: 0 0 auto;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    border: 2px solid #d1d1d6;
    background: #fff;
    transition: border-color .14s ease, box-shadow .14s ease;
}

.dsh-krow.is-selected .dsh-krow-radio[b-s155shzptl] {
    border-color: #16181c;
    box-shadow: inset 0 0 0 3.5px #fff, inset 0 0 0 10px #16181c;
}

.dsh-krow-body[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: .05rem;
}

.dsh-krow-name[b-s155shzptl] {
    font-size: .88rem;
    font-weight: 650;
    color: #1c1c1e;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dsh-krow-sub[b-s155shzptl] {
    font-size: .76rem;
    color: #8e8e93;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* -- Keyframes ---------------------------------------------------------------- */
@keyframes dsh-spin-b-s155shzptl {
    to { transform: rotate(360deg); }
}

/* ===== Sortier-/Filter-Popover (echtes Popup über dem Listen-Modal) ===== */
.dsh-fpop-backdrop[b-s155shzptl] {
    position: fixed;
    inset: 0;
    z-index: 2980;
}

.dsh-fpop[b-s155shzptl] {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2990;
    width: min(430px, calc(100vw - 20px));
    max-height: calc(100vh - 20px);
    display: grid;
    grid-template-columns: 150px 1fr;
    background: #fff;
    border: 1px solid #e5e5ea;
    border-radius: 16px;
    box-shadow: 0 24px 64px rgba(16, 24, 40, .28);
    overflow: hidden;
    visibility: hidden;   /* erst sichtbar, wenn anchorPopover() positioniert hat (kein Aufblitzen) */
}

.dsh-fpop-pane[b-s155shzptl] {
    padding: .7rem .75rem;
}

.dsh-fpop-pane--sort[b-s155shzptl] {
    border-right: 1px solid #f0f0f3;
    background: #fafafa;
    display: flex;
    flex-direction: column;
    gap: .55rem;
}

.dsh-fpop-title[b-s155shzptl] {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #8e8e93;
}

.dsh-fpop-title-row[b-s155shzptl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .6rem;
}

.dsh-fpop-reset[b-s155shzptl] {
    border: 0;
    background: #f2f2f7;
    color: #8e8e93;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: background .14s ease, color .14s ease;
}

@media (hover: hover) {
    .dsh-fpop-reset:hover[b-s155shzptl] {
        background: #ffe5e3;
        color: #ff3b30;
    }
}

.dsh-fpop-group[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    padding-bottom: .55rem;
    border-bottom: 1px solid #f0f0f3;
}

.dsh-fpop-group:last-child[b-s155shzptl] {
    border-bottom: 0;
    padding-bottom: 0;
}

.dsh-fpop-opt[b-s155shzptl] {
    border: 0;
    background: transparent;
    border-radius: 9px;
    padding: .42rem .55rem;
    font-size: .8rem;
    font-weight: 600;
    color: #475467;
    cursor: pointer;
    text-align: left;
    white-space: nowrap;
    transition: background .14s ease, color .14s ease;
}

@media (hover: hover) {
    .dsh-fpop-opt:hover[b-s155shzptl] {
        background: #efeff1;
        color: #1c1c1e;
    }
}

.dsh-fpop-opt.is-active[b-s155shzptl] {
    background: #16181c;
    color: #fff;
}

.dsh-fpop-pane--filter[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    max-height: min(70vh, 440px);
    overflow-y: auto;
}

.dsh-fpop-sub[b-s155shzptl] {
    display: block;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #aeaeb2;
    margin: .7rem 0 .45rem;
}

.dsh-fpop-toggle[b-s155shzptl] {
    font-size: .82rem;
}

/* Handy: einspaltig, ganzes Popover scrollt, Sortier-Paare nebeneinander (spart Höhe) */
@media (max-width: 560px) {
    .dsh-fpop[b-s155shzptl] {
        grid-template-columns: 1fr;
        max-height: min(80vh, calc(100vh - 16px));
        overflow-y: auto;
    }

    .dsh-fpop-pane--sort[b-s155shzptl] {
        border-right: 0;
        border-bottom: 1px solid #f0f0f3;
    }

    .dsh-fpop-group[b-s155shzptl] {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: .3rem;
    }

    .dsh-fpop-pane--filter[b-s155shzptl] {
        max-height: none;
        overflow: visible;
    }
}

/* ===== Leaflet-Anpassungen (greifen via ::deep in Leaflets eigenes DOM) ===== */
.dsh-map[b-s155shzptl]  .leaflet-container {
    font: inherit;
    background: #eef1f4;
}

/* Pin-Nadel (Lucide map-pin) – skaliert von der Spitze aus */
.dsh-map[b-s155shzptl]  .dsh-pin-wrap {
    background: transparent;
    border: 0;
}

.dsh-map[b-s155shzptl]  .dsh-pin {
    display: block;
    transform-origin: 50% 91%;
    filter: drop-shadow(0 2px 4px rgba(16, 24, 40, .3));
    transition: transform .14s ease, filter .14s ease;
}

@media (hover: hover) {
    .dsh-map[b-s155shzptl]  .dsh-pin-wrap:hover {
        z-index: 1000 !important;
    }
}

@media (hover: hover) {
    .dsh-map[b-s155shzptl]  .dsh-pin-wrap:hover .dsh-pin {
        transform: scale(1.18);
    }
}

.dsh-map[b-s155shzptl]  .dsh-pin-wrap.is-selected {
    z-index: 1100 !important;
}

.dsh-map[b-s155shzptl]  .dsh-pin-wrap.is-selected .dsh-pin {
    transform: scale(1.28);
    filter: drop-shadow(0 3px 6px rgba(16, 24, 40, .35)) drop-shadow(0 0 7px rgba(22, 24, 28, .55));
}

/* Markierter Punkt für "Baustelle hinzufügen": satter blauer Kern mit Glow,
   doppelter Puls-Ring – bewusst ohne weißen Rand. */
.dsh-map[b-s155shzptl]  .dsh-draft-wrap {
    background: transparent;
    border: 0;
}

.dsh-map[b-s155shzptl]  .dsh-draft {
    position: relative;
    display: block;
    width: 38px;
    height: 38px;
}

.dsh-map[b-s155shzptl]  .dsh-draft-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(22, 24, 28, .32);
    animation: dsh-pulse-b-s155shzptl 1.6s cubic-bezier(.25, .6, .3, 1) infinite;
}

.dsh-map[b-s155shzptl]  .dsh-draft-ring--late {
    animation-delay: .55s;
}

.dsh-map[b-s155shzptl]  .dsh-draft-dot {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 15px;
    height: 15px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(circle at 32% 28%, #3c4148, #16181c 70%);
    box-shadow:
        0 0 0 4px rgba(22, 24, 28, .22),
        0 3px 9px rgba(0, 0, 0, .45);
}

@keyframes dsh-pulse-b-s155shzptl {
    0% { transform: scale(.32); opacity: .9; }
    70%, 100% { transform: scale(1.12); opacity: 0; }
}

/* Such-Treffer-Markierung: GPS-artiger Punkt mit Puls-Ring (klar verschieden von den Pins) */
.dsh-map[b-s155shzptl]  .dsh-searchloc-wrap {
    background: transparent;
    border: 0;
}

.dsh-map[b-s155shzptl]  .dsh-searchloc {
    position: relative;
    display: block;
    width: 30px;
    height: 30px;
}

.dsh-map[b-s155shzptl]  .dsh-searchloc-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(22, 24, 28, .28);
    animation: dsh-pulse-b-s155shzptl 1.7s cubic-bezier(.25, .6, .3, 1) infinite;
}

.dsh-map[b-s155shzptl]  .dsh-searchloc-dot {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 16px;
    height: 16px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(circle at 32% 28%, #3c4148, #16181c 70%);
    border: 3px solid #fff;
    box-shadow: 0 2px 7px rgba(0, 0, 0, .5);
}

/* Label-Popup des Such-Treffers (nutzt sonst die Basis-Popup-Optik) */
.dsh-map[b-s155shzptl]  .dsh-searchpop {
    font-size: .86rem;
    font-weight: 650;
    color: #1c1c1e;
    min-width: 110px;
}

/* "Baustelle hinzufügen": die weiße Leaflet-Hülle verschwindet – der Button
   selbst ist das Popup (blauer Verlaufs-Chip mit Spitze zum Markierungspunkt). */
.dsh-map[b-s155shzptl]  .dsh-popup--add .leaflet-popup-content-wrapper {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}

.dsh-map[b-s155shzptl]  .dsh-popup--add .leaflet-popup-content {
    margin: 0;
    line-height: 1.2;
}

.dsh-map[b-s155shzptl]  .dsh-popup--add .leaflet-popup-tip {
    background: #16181c;
    border: 0;
    box-shadow: 0 10px 26px rgba(0, 0, 0, .35);
}

.dsh-map[b-s155shzptl]  .dsh-addpop {
    animation: dsh-addpop-in-b-s155shzptl .2s cubic-bezier(.3, 1.45, .45, 1);
    transform-origin: 50% 100%;
}

@keyframes dsh-addpop-in-b-s155shzptl {
    from { opacity: 0; transform: translateY(5px) scale(.88); }
    to { opacity: 1; transform: none; }
}

.dsh-map[b-s155shzptl]  .dsh-addpop-btn {
    display: flex;
    align-items: center;
    gap: .6rem;
    border: 0;
    background: linear-gradient(180deg, #3c4148, #16181c);
    color: #fff;
    border-radius: 14px;
    padding: .5rem .95rem .5rem .5rem;
    cursor: pointer;
    box-shadow:
        0 12px 28px rgba(0, 0, 0, .38),
        inset 0 1px 0 rgba(255, 255, 255, .28);
    transition: transform .13s ease, box-shadow .13s ease, filter .13s ease;
    white-space: nowrap;
}

@media (hover: hover) {
    .dsh-map[b-s155shzptl]  .dsh-addpop-btn:hover {
        transform: translateY(-1px);
        filter: brightness(1.05);
        box-shadow:
        0 15px 32px rgba(0, 0, 0, .45),
        inset 0 1px 0 rgba(255, 255, 255, .28);
    }
}

.dsh-map[b-s155shzptl]  .dsh-addpop-btn:active {
    transform: translateY(0) scale(.985);
}

.dsh-map[b-s155shzptl]  .dsh-addpop-ic {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, .2);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25);
}

.dsh-map[b-s155shzptl]  .dsh-addpop-txt {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    line-height: 1.18;
}

.dsh-map[b-s155shzptl]  .dsh-addpop-txt strong {
    font-size: .86rem;
    font-weight: 700;
    letter-spacing: .01em;
}

.dsh-map[b-s155shzptl]  .dsh-addpop-txt small {
    font-size: .68rem;
    font-weight: 600;
    opacity: .82;
}

/* Zoom-Steuerung */
.dsh-map[b-s155shzptl]  .leaflet-bar {
    border: 1px solid #e5e5ea;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 6px 18px rgba(16, 24, 40, .16);
}

/* Zoom (+/-) sitzt rechts unten – über den Karte/Satellit-Schalter heben, der jetzt darunter liegt. */
.dsh-map[b-s155shzptl]  .leaflet-control-zoom {
    margin-bottom: 58px;
}

/* Cluster = dieselbe Tropfen-Pin-Form wie die Baustellen, nur mit Anzahl statt weißem Punkt. */
.dsh-map[b-s155shzptl]  .dsh-clpin {
    background: transparent;
    border: 0;
}

.dsh-map[b-s155shzptl]  .dsh-clpin svg {
    display: block;
    filter: drop-shadow(0 2px 5px rgba(16, 24, 40, .35));
    transition: transform .14s ease;
}

@media (hover: hover) {
    .dsh-map[b-s155shzptl]  .dsh-clpin:hover {
        z-index: 1000 !important;
    }
}

@media (hover: hover) {
    .dsh-map[b-s155shzptl]  .dsh-clpin:hover svg {
        transform: scale(1.08);
        transform-origin: 50% 91%;
    }
}

.dsh-map[b-s155shzptl]  .leaflet-bar a {
    background: rgba(255, 255, 255, .95);
    backdrop-filter: blur(6px);
    color: #1c1c1e;
    border-bottom-color: #e8e8ee;
    width: 34px;
    height: 34px;
    line-height: 34px;
    font-size: 18px;
}

@media (hover: hover) {
    .dsh-map[b-s155shzptl]  .leaflet-bar a:hover {
        background: #efeff1;
        color: #16181c;
    }
}

/* Attribution */
.dsh-map[b-s155shzptl]  .leaflet-control-attribution {
    background: rgba(255, 255, 255, .8);
    color: #8e8e93;
    font-size: 10px;
    border-radius: 0 8px 0 0;
    padding: 2px 7px;
    backdrop-filter: blur(4px);
}

.dsh-map[b-s155shzptl]  .leaflet-control-attribution a {
    color: #16181c;
}

/* Popup */
.dsh-map[b-s155shzptl]  .leaflet-popup-content-wrapper {
    border-radius: 15px;
    border: 1px solid #e8e8ee;
    box-shadow: 0 20px 48px rgba(28, 28, 30, .22);
    padding: 3px;
}

.dsh-map[b-s155shzptl]  .leaflet-popup-content {
    margin: 11px 14px;
    line-height: 1.35;
}

.dsh-map[b-s155shzptl]  .leaflet-popup-tip {
    border: 1px solid #e8e8ee;
    box-shadow: 0 20px 48px rgba(28, 28, 30, .22);
}

.dsh-map[b-s155shzptl]  .dsh-popup .leaflet-popup-close-button {
    top: 7px;
    right: 7px;
    width: 22px;
    height: 22px;
    border-radius: 7px;
    color: #aeaeb2;
    font-size: 16px;
    line-height: 22px;
    transition: background .14s ease, color .14s ease;
}

@media (hover: hover) {
    .dsh-map[b-s155shzptl]  .dsh-popup .leaflet-popup-close-button:hover {
        background: #f2f2f7;
        color: #1c1c1e;
    }
}

.dsh-map[b-s155shzptl]  .dsh-pop {
    min-width: 190px;
    padding-right: 12px;   /* Platz für den Schließen-Button */
}

/* Status-Zeile: kleiner Farb-Dot + Statusname in Statusfarbe */
.dsh-map[b-s155shzptl]  .dsh-pop-status {
    display: inline-flex;
    align-items: center;
    gap: .38rem;
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--c, #16181c);
    margin-bottom: .3rem;
}

.dsh-map[b-s155shzptl]  .dsh-pop-status i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--c, #16181c);
    box-shadow: 0 0 0 2.5px color-mix(in srgb, var(--c, #16181c) 18%, transparent);
}

/* Klickbare Titelzeile (Name + Öffnen-Pfeil) */
.dsh-map[b-s155shzptl]  .dsh-pop-name {
    font-size: 1rem;
    font-weight: 750;
    color: #16181c;
    line-height: 1.25;
}

.dsh-map[b-s155shzptl]  .dsh-pop-addr {
    font-size: .82rem;
    color: #3c4148;
    margin-top: .28rem;
}

/* Meta-Zeilen (Kunde, Dokumente): dezent grau mit Icon */
.dsh-map[b-s155shzptl]  .dsh-pop-meta {
    display: flex;
    align-items: center;
    gap: .35rem;
    font-size: .78rem;
    color: #80858d;
    margin-top: .2rem;
}

.dsh-map[b-s155shzptl]  .dsh-pop-meta svg {
    flex: 0 0 auto;
    opacity: .8;
}

.dsh-map[b-s155shzptl]  .dsh-pop-meta span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Aktionen: zwei gleich große Buttons unten nebeneinander, klar beschriftet. */
.dsh-map[b-s155shzptl]  .dsh-pop-actions {
    display: flex;
    gap: .4rem;
    margin-top: .7rem;
    padding-top: .6rem;
    border-top: 1px solid #ededf2;
}

.dsh-map[b-s155shzptl]  .dsh-pop-btn {
    flex: 1 1 0;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    height: 34px;
    border-radius: 10px;
    font: inherit;
    font-size: .8rem;
    font-weight: 650;
    cursor: pointer;
    white-space: nowrap;
    transition: background .13s ease, color .13s ease, border-color .13s ease;
}

.dsh-map[b-s155shzptl]  .dsh-pop-btn svg {
    flex: 0 0 auto;
}

/* „Öffnen" = heller Sekundär-Button, „Zur Route" = schwarzer Primär-Button. */
.dsh-map[b-s155shzptl]  .dsh-pop-btn--open {
    border: 1px solid #e4e4e7;
    background: #fff;
    color: #16181c;
}

@media (hover: hover) {
    .dsh-map[b-s155shzptl]  .dsh-pop-btn--open:hover {
        background: #efeff1;
    }
}

.dsh-map[b-s155shzptl]  .dsh-pop-btn--route {
    border: 1px solid #16181c;
    background: #16181c;
    color: #fff;
}

@media (hover: hover) {
    .dsh-map[b-s155shzptl]  .dsh-pop-btn--route:hover {
        background: #26282e;
        border-color: #26282e;
    }
}

/* ===== Baustellenfoto: linke Spalte im Popup (Breite folgt dem Seitenverhältnis) ===== */
/* Foto randlos: Leaflet-Innenabstand auf 0, Abstand wandert in den Text-Body. */
.dsh-map[b-s155shzptl]  .dsh-popup--photo .leaflet-popup-content-wrapper {
    overflow: hidden;
    padding: 0;   /* Standard-Innenabstand (3px) entfernen, sonst weißer Rand ums Foto */
}

.dsh-map[b-s155shzptl]  .dsh-popup--photo .leaflet-popup-content {
    margin: 0;
    padding: 0;
}

.dsh-map[b-s155shzptl]  .dsh-popup--photo .dsh-pop {
    display: flex;
    align-items: stretch;
    min-width: 0;
    padding: 0;
}

.dsh-map[b-s155shzptl]  .dsh-popup--photo .dsh-pop-body {
    flex: 1 1 auto;
    /* genug Breite, damit der Text durch das Foto nicht in mehr Zeilen umbricht
       (sonst würde das Foto die Popup-Höhe indirekt vergrößern) */
    min-width: 208px;
    padding: 12px 30px 12px 14px;   /* rechts Platz für den Schließen-Button */
}

.dsh-map[b-s155shzptl]  .dsh-pop-photo {
    position: relative;
    flex: 0 0 auto;
    align-self: stretch;   /* füllt die (vom Text bestimmte) Höhe randlos – keine Lücken */
    min-width: 80px;
    max-width: 200px;
    overflow: hidden;
    background: #eceae7;
}

.dsh-map[b-s155shzptl]  .dsh-pop-photo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ===== Orts-/Adress-Suche (oben mittig, unabhängig vom Baustellen-Filter) ===== */
.dsh-placesearch[b-s155shzptl] {
    position: absolute;
    top: calc(var(--app-header-h) + 12px);
    /* Mittig UNTER der Tab-Pill im Header: die sitzt links (ab ~24px) und ist ~570px breit → Mitte ≈ 310px. */
    left: 310px;
    transform: translateX(-50%);
    z-index: 1000;   /* über Leaflets Popup-Pane (700) und den Karten-Controls (600) */
    width: min(390px, 44vw);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.dsh-ps-field[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .5rem .7rem;
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(0, 0, 0, .06);
    border-radius: 13px;
    box-shadow: 0 8px 24px rgba(16, 24, 40, .16);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: border-color .14s ease, box-shadow .14s ease;
}

.dsh-ps-field:focus-within[b-s155shzptl] {
    border-color: #16181c;
    box-shadow: 0 8px 24px rgba(16, 24, 40, .16), 0 0 0 3px rgba(22, 24, 28, .14);
}

.dsh-ps-field > svg[b-s155shzptl] {
    flex: 0 0 auto;
    color: #8e8e93;
    transition: color .14s ease;
}

.dsh-ps-field:focus-within > svg[b-s155shzptl] {
    color: #16181c;
}

.dsh-ps-input[b-s155shzptl] {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font-family: inherit;
    font-size: .92rem;
    font-weight: 550;
    color: #1c1c1e;
}

.dsh-ps-input[b-s155shzptl]::placeholder {
    color: #9a9aa0;
    font-weight: 500;
}

.dsh-ps-clear[b-s155shzptl] {
    flex: 0 0 auto;
    border: 0;
    background: #ececed;
    color: #636366;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: background .14s ease, color .14s ease;
}

@media (hover: hover) {
    .dsh-ps-clear:hover[b-s155shzptl] {
        background: #e0e0e4;
        color: #1c1c1e;
    }
}

.dsh-ps-spinner[b-s155shzptl] {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    border: 2.2px solid #d8d8dd;
    border-top-color: #16181c;
    border-radius: 50%;
    animation: dsh-spin-b-s155shzptl .7s linear infinite;
}

.dsh-ps-spinner--inline[b-s155shzptl] {
    width: 15px;
    height: 15px;
}

/* Vorschlagsliste */
.dsh-ps-results[b-s155shzptl] {
    background: rgba(255, 255, 255, .97);
    border: 1px solid rgba(0, 0, 0, .06);
    border-radius: 14px;
    box-shadow: 0 14px 38px rgba(16, 24, 40, .22);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    overflow: hidden;
    padding: .25rem;
    animation: dsh-ps-pop-b-s155shzptl .16s ease;
}

@keyframes dsh-ps-pop-b-s155shzptl {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: none; }
}

.dsh-ps-row[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .15rem;
    width: 100%;
    border-radius: 10px;
    transition: background .12s ease;
}

.dsh-ps-row.is-active[b-s155shzptl] {
    background: #efeff1;
}

@media (hover: hover) {
    .dsh-ps-row:hover[b-s155shzptl] {
        background: #efeff1;
    }
}

.dsh-ps-rowmain[b-s155shzptl] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: .6rem;
    border: 0;
    background: transparent;
    border-radius: 10px;
    padding: .5rem .2rem .5rem .55rem;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

/* „Zur Route hinzufügen" rechts im Suchtreffer */
.dsh-ps-add[b-s155shzptl] {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    margin-right: .25rem;
    display: grid;
    place-items: center;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #3c4148;
    cursor: pointer;
    transition: background .13s ease, color .13s ease, border-color .13s ease;
}

@media (hover: hover) {
    .dsh-ps-add:hover[b-s155shzptl] {
        background: #16181c;
        color: #fff;
        border-color: #16181c;
    }
}

.dsh-ps-ic[b-s155shzptl] {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    display: grid;
    place-items: center;
    background: #efeff1;
    color: #16181c;
}

.dsh-ps-ic--locality[b-s155shzptl] {
    background: #eef0f4;
    color: #5f6b7a;
}

.dsh-ps-ic--poi[b-s155shzptl] {
    background: #fff3e6;
    color: #e8820e;
}

.dsh-ps-text[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: .05rem;
}

.dsh-ps-main[b-s155shzptl] {
    font-size: .88rem;
    font-weight: 650;
    color: #1c1c1e;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dsh-ps-sub[b-s155shzptl] {
    font-size: .76rem;
    color: #8e8e93;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dsh-ps-state[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .7rem .65rem;
    font-size: .84rem;
    font-weight: 600;
    color: #8e8e93;
}

.dsh-ps-state--empty[b-s155shzptl] {
    color: #aeaeb2;
}

/* Handy: Suche ganz oben (volle Breite), die Karten-/Listen-Buttons darunter. */
@media (max-width: 820px) {
    .dsh-placesearch[b-s155shzptl] {
        top: calc(var(--app-header-h) + 12px);
        left: 12px;
        right: 12px;
        transform: none;
        width: auto;
    }

    .dsh-topright[b-s155shzptl] {
        top: calc(var(--app-header-h) + 60px);
    }
}

/* -- Responsive ---------------------------------------------------------------- */
@media (max-width: 700px) {
    .dsh-mapbtn span[b-s155shzptl] {
        display: none;
    }

    .dsh-lm-counter[b-s155shzptl] {
        flex-basis: 100%;
        margin-left: 3.2rem;
    }

    .dsh-field-row[b-s155shzptl] {
        grid-template-columns: 1fr;
    }
}

/* ===== Routenplaner ========================================================= */

/* Abschnitte im Popup */
.dsh-rp-section[b-s155shzptl] {
    display: flex;
    flex-direction: column;
}

.dsh-rp-section + .dsh-rp-section[b-s155shzptl] {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #f0f0f3;
}

.dsh-rp-section-head[b-s155shzptl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    margin-bottom: .6rem;
}

.dsh-rp-clear[b-s155shzptl] {
    border: 0;
    background: none;
    padding: 0;
    color: #ff3b30;
    font-size: .76rem;
    font-weight: 650;
    cursor: pointer;
}

@media (hover: hover) {
    .dsh-rp-clear:hover[b-s155shzptl] {
        text-decoration: underline;
        text-underline-offset: 2px;
    }
}

/* Leerzustand */
.dsh-rp-empty[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .9rem 1rem;
    border: 1.5px dashed #d8d8e0;
    border-radius: 13px;
    background: #fafafa;
    color: #8e8e93;
    font-size: .84rem;
    line-height: 1.4;
}

.dsh-rp-empty svg[b-s155shzptl] {
    flex: 0 0 auto;
    color: #b9b9c0;
}

/* Geordnete Route */
.dsh-rp-route[b-s155shzptl] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    /* Max. ~10 Stopps sichtbar, danach scrollt nur die Liste (Kopf bleibt stehen). */
    max-height: 30rem;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #d4d4d9 transparent;
}

.dsh-rp-route[b-s155shzptl]::-webkit-scrollbar {
    width: 7px;
}

.dsh-rp-route[b-s155shzptl]::-webkit-scrollbar-thumb {
    background: #d8d8dd;
    border-radius: 99px;
}

/* Stopp = 2-Zeilen-Raster: Zeit | Knoten | Name/Adresse | Aktionen (Zeile 1),
   darunter die Haltezeit über die volle Breite (Zeile 2, nur bei echten Stopps). */
.dsh-rp-stop[b-s155shzptl] {
    position: relative;
    display: grid;
    grid-template-columns: 3.05rem 26px minmax(0, 1fr) auto;
    column-gap: .7rem;
    row-gap: .35rem;
    align-items: start;
    padding: .45rem 0;
}

.dsh-rp-eta[b-s155shzptl],
.dsh-rp-num[b-s155shzptl],
.dsh-rp-endnode[b-s155shzptl],
.dsh-rp-body[b-s155shzptl],
.dsh-rp-actions[b-s155shzptl] {
    grid-row: 1;
}

.dsh-rp-eta[b-s155shzptl] { grid-column: 1; align-self: center; }
.dsh-rp-num[b-s155shzptl],
.dsh-rp-endnode[b-s155shzptl] { grid-column: 2; }
.dsh-rp-body[b-s155shzptl] { grid-column: 3; }
.dsh-rp-actions[b-s155shzptl] { grid-column: 4; align-self: center; }

/* Haltezeit-Zeile: spannt Name- + Aktions-Spalte (volle Breite rechts vom Knoten). */
.dsh-rp-dwellrow[b-s155shzptl] {
    grid-column: 3 / span 2;
    grid-row: 2;
    min-width: 0;
}

/* Durchgehende Verbindungslinie: EINE senkrechte Linie hinter der Knoten-Spalte, von oben bis
   unten durch jede Zeile. Die deckenden Badges liegen darüber; oben/unten wird sie an der Mitte
   des ersten/letzten Knotens gekappt. So bleibt sie IMMER lückenlos – egal wie hoch eine Zeile
   durch die Haltezeit wird (vorher feste Höhe → zu kurz). */
.dsh-rp-stop[b-s155shzptl]::before {
    content: "";
    position: absolute;
    left: calc(3.05rem + .7rem + 13px);
    top: 0;
    bottom: 0;
    width: 2px;
    margin-left: -1px;
    background: #d8d8dd;
    z-index: 0;
}

.dsh-rp-stop:first-child[b-s155shzptl]::before {
    top: calc(.45rem + 13px);
}

.dsh-rp-stop:last-child[b-s155shzptl]::before {
    bottom: auto;
    height: calc(.45rem + 13px);
}

.dsh-rp-stop:only-child[b-s155shzptl]::before {
    display: none;
}

/* Start-/End-Knoten der Route (kein Nummern-Badge, sondern ein Terminal-Punkt) */
.dsh-rp-endnode[b-s155shzptl] {
    position: relative;
    flex: 0 0 auto;
    z-index: 1;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #475467;
    color: #fff;
    box-shadow: 0 3px 8px rgba(71, 84, 103, .28);
}

.dsh-rp-endnode--finish[b-s155shzptl] {
    background: #1d9e75;
    box-shadow: 0 3px 8px rgba(29, 158, 117, .3);
}

.dsh-rp-stop--end .dsh-rp-body[b-s155shzptl] {
    gap: 0;
}

.dsh-rp-endlabel[b-s155shzptl] {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #8e8e93;
    line-height: 1.3;
}

/* Ankunftszeit als linke Spalte vor den Knoten (Fahrplan-Optik). Feste Breite in ALLEN
   Zeilen, damit die Knoten + Verbindungslinie exakt untereinander bleiben. */
.dsh-rp-eta[b-s155shzptl] {
    flex: 0 0 auto;
    width: 3.05rem;
    display: inline-flex;
    align-items: baseline;
    justify-content: flex-end;
    gap: 1px;
    font-size: .76rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: #16181c;
    white-space: nowrap;
}

.dsh-rp-eta--start[b-s155shzptl] {
    color: #64748b;
}

/* „+1" wenn die Ankunft erst am nächsten Tag liegt (Route über Mitternacht). */
.dsh-rp-eta-day[b-s155shzptl] {
    font-size: .58rem;
    font-weight: 800;
    line-height: 0;
    color: #d97706;
}

/* Gesamtdauer + Strecke (links im Kopf der Routen-Übersicht, neben "Alle entfernen") */
.dsh-rp-summary[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .12rem;
    min-width: 0;
    font-size: .76rem;
    font-weight: 600;
    color: #8e8e93;
}

.dsh-rp-summary-main[b-s155shzptl] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-width: 0;
}

.dsh-rp-summary svg[b-s155shzptl] {
    flex: 0 0 auto;
    color: #aeaeb2;
}

/* Zweite Zeile: Summe der Haltezeiten („inkl. 1 Std 15 Min Aufenthalt"). */
.dsh-rp-summary-dwell[b-s155shzptl] {
    font-size: .7rem;
    font-weight: 650;
    color: #a16207;
}

.dsh-rp-num[b-s155shzptl] {
    position: relative;
    flex: 0 0 auto;
    z-index: 1;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(180deg, #3c4148, #16181c);
    color: #fff;
    font-size: .8rem;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
    box-shadow: 0 3px 8px rgba(0, 0, 0, .28);
}

.dsh-rp-body[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
    gap: .05rem;
}

.dsh-rp-name[b-s155shzptl] {
    font-size: .9rem;
    font-weight: 650;
    color: #1c1c1e;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dsh-rp-sub[b-s155shzptl] {
    font-size: .78rem;
    color: #8e8e93;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dsh-rp-actions[b-s155shzptl] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: .15rem;
}

.dsh-rp-move[b-s155shzptl],
.dsh-rp-remove[b-s155shzptl] {
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #8e8e93;
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: background .13s ease, color .13s ease, opacity .13s ease;
}

@media (hover: hover) {
    .dsh-rp-move:hover:not(:disabled)[b-s155shzptl] {
        background: #efeff1;
        color: #16181c;
    }
}

.dsh-rp-move:disabled[b-s155shzptl] {
    opacity: .3;
    cursor: default;
}

@media (hover: hover) {
    .dsh-rp-remove:hover[b-s155shzptl] {
        background: #ffe5e3;
        color: #ff3b30;
    }
}

/* Optionaler Startpunkt der Route: zwei abwählbare Karten nebeneinander (Standort / Firma).
   Ist keine aktiv, startet die Route bei der 1. Baustelle. */
.dsh-rp-start[b-s155shzptl] {
    margin-top: .85rem;
}

/* Start-Optionen + Rundstrecke: alle untereinander (eigenes schmales Config-Fenster). */
.dsh-rp-startopts[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    gap: .45rem;
}

/* Vertikale Karte: Icon oben links, Radio oben rechts, Titel + Sub darunter. */
.dsh-rp-startcard[b-s155shzptl] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .5rem;
    text-align: left;
    border: 1.5px solid #e5e5ea;
    background: #fff;
    border-radius: 13px;
    padding: .7rem .7rem .68rem;
    cursor: pointer;
    transition: border-color .14s ease, background .14s ease, box-shadow .14s ease;
}

@media (hover: hover) {
    .dsh-rp-startcard:hover[b-s155shzptl] {
        border-color: #d4d4d8;
        background: #fafbfc;
    }
}

.dsh-rp-startcard.is-active[b-s155shzptl] {
    border-color: #16181c;
    background: #efeff1;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .10);
}

.dsh-rp-startcard-ic[b-s155shzptl] {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: #eef0f4;
    color: #636366;
    transition: background .14s ease, color .14s ease;
}

.dsh-rp-startcard.is-active .dsh-rp-startcard-ic[b-s155shzptl] {
    background: #16181c;
    color: #fff;
}

.dsh-rp-startcard-txt[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    width: 100%;
    gap: .05rem;
}

.dsh-rp-startcard-title[b-s155shzptl] {
    font-size: .85rem;
    font-weight: 700;
    color: #1c1c1e;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dsh-rp-startcard-sub[b-s155shzptl] {
    font-size: .72rem;
    color: #8e8e93;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Radio-artiger Indikator oben rechts: leerer Ring = nicht gewählt, blau gefüllt = gewählt. */
.dsh-rp-startcard-check[b-s155shzptl] {
    position: absolute;
    top: 9px;
    right: 9px;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    border: 2px solid #d1d1d6;
    background: #fff;
    display: grid;
    place-items: center;
    color: transparent;
    transition: border-color .14s ease, background .14s ease, color .14s ease;
}

.dsh-rp-startcard.is-active .dsh-rp-startcard-check[b-s155shzptl] {
    border-color: #16181c;
    background: #16181c;
    color: #fff;
}

/* Rundstrecke-Checkbox (Ziel = Start) – steht mit den Start-Optionen im selben Stapel,
   etwas abgesetzt darüber. */
.dsh-rp-roundtrip[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-top: .25rem;
    padding: .5rem .1rem .1rem;
    border-top: 1px solid #f0f0f3;
    cursor: pointer;
}

.dsh-rp-roundtrip input[b-s155shzptl] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.dsh-rp-roundtrip-box[b-s155shzptl] {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border-radius: 6px;
    border: 2px solid #d1d1d6;
    background: #fff;
    display: grid;
    place-items: center;
    color: transparent;
    transition: border-color .14s ease, background .14s ease, color .14s ease;
}

.dsh-rp-roundtrip input:checked + .dsh-rp-roundtrip-box[b-s155shzptl] {
    border-color: #16181c;
    background: #16181c;
    color: #fff;
}

.dsh-rp-roundtrip input:focus-visible + .dsh-rp-roundtrip-box[b-s155shzptl] {
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .25);
}

.dsh-rp-roundtrip-txt[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.dsh-rp-roundtrip-title[b-s155shzptl] {
    font-size: .85rem;
    font-weight: 650;
    color: #1c1c1e;
}

.dsh-rp-roundtrip-sub[b-s155shzptl] {
    font-size: .72rem;
    color: #8e8e93;
}

/* ----- Startzeit + Abschnitts-Labels (Config-Fenster) ---------------------- */

/* Kleines Großbuchstaben-Label über Startzeit / Startpunkt. */
.dsh-rp-fieldlabel[b-s155shzptl] {
    display: block;
    font-size: .67rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #aeaeb2;
    margin-bottom: .4rem;
}

/* Startzeit-Block sitzt über dem Startpunkt, abgesetzt durch eine feine Linie. */
.dsh-rp-depart[b-s155shzptl] {
    margin-bottom: .8rem;
    padding-bottom: .85rem;
    border-bottom: 1px solid #f0f0f3;
}

/* Eingabefeld der Startzeit: Glas-Pille mit Uhr-Icon, nativem Zeit-Input und „Jetzt"/Reset rechts. */
.dsh-rp-timefield[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .45rem .5rem .45rem .62rem;
    border: 1.5px solid #e5e5ea;
    border-radius: 12px;
    background: #fff;
    transition: border-color .14s ease, box-shadow .14s ease;
}

.dsh-rp-timefield:focus-within[b-s155shzptl] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.dsh-rp-timefield > svg[b-s155shzptl] {
    flex: 0 0 auto;
    color: #8e8e93;
    transition: color .14s ease;
}

.dsh-rp-timefield.is-custom > svg[b-s155shzptl],
.dsh-rp-timefield:focus-within > svg[b-s155shzptl] {
    color: #16181c;
}

.dsh-rp-timeinput[b-s155shzptl] {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    border: 0;
    outline: 0;
    padding: 0;
    background: transparent;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
    color: #16181c;
    letter-spacing: .01em;
}

/* Native Uhr-/Spin-Bedienelemente verstecken – das Feld trägt eigenes Icon + Reset. */
.dsh-rp-timeinput[b-s155shzptl]::-webkit-calendar-picker-indicator {
    display: none;
}

.dsh-rp-timeinput[b-s155shzptl]::-webkit-inner-spin-button,
.dsh-rp-timeinput[b-s155shzptl]::-webkit-clear-button {
    -webkit-appearance: none;
    display: none;
}

/* „Jetzt"-Tag (Auto-Modus: Startzeit folgt der echten Uhr). */
.dsh-rp-time-now[b-s155shzptl] {
    flex: 0 0 auto;
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: #9a9aa0;
    background: #f3f3f5;
    border-radius: 999px;
    padding: .14rem .46rem;
}

/* Reset-Knopf (zurück auf „jetzt"), nur sichtbar bei fest gewählter Startzeit. */
.dsh-rp-time-reset[b-s155shzptl] {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border: 0;
    border-radius: 8px;
    background: #efeff1;
    color: #3c4148;
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: background .13s ease, color .13s ease;
}

@media (hover: hover) {
    .dsh-rp-time-reset:hover[b-s155shzptl] {
        background: #16181c;
        color: #fff;
    }
}

/* ----- Haltezeit je Stopp (eigene Zeile unter Name/Adresse) ---------------- */

/* Stepper + Abfahrtszeit untereinander. */
.dsh-rp-dwellrow[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .25rem;
}

/* Leerzustand: dezenter „Haltezeit"-Ghost-Chip, lädt zum Hinzufügen ein. */
.dsh-rp-dwell-add[b-s155shzptl] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .18rem .55rem .18rem .45rem;
    border: 1px dashed #d4d4dc;
    border-radius: 999px;
    background: transparent;
    color: #9a9aa0;
    font: inherit;
    font-size: .73rem;
    font-weight: 650;
    cursor: pointer;
    transition: border-color .13s ease, color .13s ease, background .13s ease;
}

@media (hover: hover) {
    .dsh-rp-dwell-add:hover[b-s155shzptl] {
        border-color: #16181c;
        color: #16181c;
        background: #f6f6f8;
    }
}

.dsh-rp-dwell-add svg[b-s155shzptl] {
    flex: 0 0 auto;
}

/* Gesetzte Haltezeit: Stepper [−] ⏱ 30 Min [+] als eine Pille – bleibt IMMER einzeilig
   (nowrap), das „+" rutscht also auch bei „1 Std 5 Min" nie in die nächste Zeile. */
.dsh-rp-dwell-ctrl[b-s155shzptl] {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: .3rem;
    padding: .15rem;
    border: 1px solid #e8e8ec;
    border-radius: 999px;
    background: #fff;
}

.dsh-rp-dwell-step[b-s155shzptl] {
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    border: 0;
    border-radius: 50%;
    background: #f1f1f4;
    color: #3c4148;
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: background .12s ease, color .12s ease;
}

@media (hover: hover) {
    .dsh-rp-dwell-step:hover[b-s155shzptl] {
        background: #16181c;
        color: #fff;
    }
}

.dsh-rp-dwell-val[b-s155shzptl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    min-width: 4.2rem;
    padding: 0 .15rem;
    font-size: .76rem;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.dsh-rp-dwell-val svg[b-s155shzptl] {
    flex: 0 0 auto;
    color: #636366;
}

/* Abfahrtszeit nach dem Halt, eigene Zeile unter dem Stepper. */
.dsh-rp-dwell-dep[b-s155shzptl] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding-left: .55rem;
    font-size: .73rem;
    font-weight: 600;
    color: #8e8e93;
    white-space: nowrap;
}

.dsh-rp-dwell-dep[b-s155shzptl]::before {
    content: "";
    width: 5px;
    height: 5px;
    border-left: 1.5px solid #c4c4cc;
    border-bottom: 1.5px solid #c4c4cc;
    border-bottom-left-radius: 2px;
    margin-bottom: 4px;
}

/* Hinweis bei sehr vielen Stopps */
.dsh-rp-hint[b-s155shzptl] {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    margin-top: .75rem;
    padding: .55rem .7rem;
    border-radius: 11px;
    background: #fff7e8;
    color: #946200;
    font-size: .78rem;
    font-weight: 600;
    line-height: 1.35;
}

.dsh-rp-hint svg[b-s155shzptl] {
    flex: 0 0 auto;
    margin-top: 1px;
}

/* Hinzufügen-Liste */
.dsh-rp-addlist[b-s155shzptl] {
    max-height: 32vh;
    overflow-y: auto;
    margin: 0 -.35rem;
    padding: 0 .35rem;
    scrollbar-width: thin;
    scrollbar-color: #d4d4d9 transparent;
}

.dsh-rp-addlist[b-s155shzptl]::-webkit-scrollbar {
    width: 8px;
}

.dsh-rp-addlist[b-s155shzptl]::-webkit-scrollbar-thumb {
    background: #d8d8dd;
    border-radius: 99px;
}

.dsh-rp-add-row[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .7rem;
    width: 100%;
    text-align: left;
    border: 0;
    background: transparent;
    border-radius: 11px;
    padding: .55rem .6rem;
    cursor: pointer;
    transition: background .13s ease;
}

@media (hover: hover) {
    .dsh-rp-add-row:hover[b-s155shzptl] {
        background: #f6f6f8;
    }
}

.dsh-rp-dot[b-s155shzptl] {
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--dot, #16181c);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--dot) 16%, transparent);
}

.dsh-rp-add-body[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
    gap: .04rem;
}

.dsh-rp-add-name[b-s155shzptl] {
    font-size: .88rem;
    font-weight: 650;
    color: #1c1c1e;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dsh-rp-add-sub[b-s155shzptl] {
    font-size: .76rem;
    color: #8e8e93;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dsh-rp-add-plus[b-s155shzptl] {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    background: #efeff1;
    color: #16181c;
    transition: background .13s ease, color .13s ease;
}

@media (hover: hover) {
    .dsh-rp-add-row:hover .dsh-rp-add-plus[b-s155shzptl] {
        background: #16181c;
        color: #fff;
    }
}

/* Hinweis, dass nur die ersten 5 Treffer gezeigt werden. */
.dsh-rp-more[b-s155shzptl] {
    padding: .5rem .6rem .2rem;
    font-size: .74rem;
    color: #aeaeb2;
    text-align: center;
}

/* "In Google Maps öffnen" – als Link gestylt wie der Primär-Button */
a.dsh-rp-go[b-s155shzptl] {
    text-decoration: none;
}

.settings-btn:disabled[b-s155shzptl] {
    opacity: .45;
    cursor: default;
    box-shadow: none;
}

/* ===== Ausklappende Popover unter den Buttons (oben rechts) ================= */

/* Jeder Host = Button + darunter aufgehendes Panel; rechtsbündig wie die Buttons. */
.dsh-pop-host[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

/* Die unsichtbaren Layout-Container über der Karte dürfen KEINE Maus-/Touch-Eingaben schlucken –
   sonst lässt sich die Karte an Stellen, die wie freie Karte aussehen, nicht bewegen (wirkt kaputt).
   Nur die sichtbaren Elemente (Buttons, Status-Pill, Popover-Karten) fangen Eingaben. */
.dsh-topright[b-s155shzptl],
.dsh-pop-host[b-s155shzptl],
.dsh-pop-panel[b-s155shzptl],
.dsh-pop-clip[b-s155shzptl] {
    pointer-events: none;
}

.dsh-topright .dsh-mapbtn[b-s155shzptl],
.dsh-topright .dsh-geo[b-s155shzptl],
.dsh-pop-inner[b-s155shzptl],
.dsh-rp-layout[b-s155shzptl] {
    pointer-events: auto;
}

/* Höhen-Transition: grid-template-rows 0fr → 1fr animiert auf die echte Inhaltshöhe,
   der darunterliegende Button/Geocoding-Status wird dabei sanft mitgeschoben. */
.dsh-pop-panel[b-s155shzptl] {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows .3s cubic-bezier(.4, 0, .2, 1);
}

.dsh-pop-host.is-open .dsh-pop-panel[b-s155shzptl] {
    grid-template-rows: 1fr;
}

.dsh-pop-clip[b-s155shzptl] {
    min-height: 0;
    overflow: hidden;
    /* overflow erst NACH der Aufklapp-Animation auf visible schalten, damit die Karten-Schatten
       nicht abgeschnitten werden. Beim Zuklappen sofort wieder hidden (sonst bliebe der
       geschlossene Inhalt sichtbar und die Höhen-Animation würde nicht clippen). */
    transition: overflow 0s;
    transition-behavior: allow-discrete;
}

.dsh-pop-host.is-open .dsh-pop-clip[b-s155shzptl] {
    overflow: visible;
    transition-delay: .3s;
}

/* Gemeinsame Popover-Karte (Listen-Popover + Routen-Karten). */
.dsh-pop-inner[b-s155shzptl],
.dsh-pop-card[b-s155shzptl] {
    background: rgba(255, 255, 255, .98);
    border: 1px solid rgba(0, 0, 0, .06);
    border-radius: 16px;
    box-shadow: 0 14px 38px rgba(16, 24, 40, .22);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    scrollbar-width: thin;
    scrollbar-color: #d4d4d9 transparent;
}

.dsh-pop-inner[b-s155shzptl] {
    width: min(380px, calc(100vw - 24px));
    max-height: calc(100vh - 130px);
    overflow-y: auto;
    margin-top: 8px;
    padding: 12px;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity .22s ease, transform .26s ease;
}

.dsh-pop-host.is-open .dsh-pop-inner[b-s155shzptl] {
    opacity: 1;
    transform: none;
}

.dsh-pop-inner[b-s155shzptl]::-webkit-scrollbar,
.dsh-pop-card[b-s155shzptl]::-webkit-scrollbar,
.dsh-rp-layout[b-s155shzptl]::-webkit-scrollbar {
    width: 8px;
}

.dsh-pop-inner[b-s155shzptl]::-webkit-scrollbar-thumb,
.dsh-pop-card[b-s155shzptl]::-webkit-scrollbar-thumb,
.dsh-rp-layout[b-s155shzptl]::-webkit-scrollbar-thumb {
    background: #d8d8dd;
    border-radius: 99px;
}

/* ----- Routen-Popover-Layout (Übersicht + Hauptteil) ----------------------- */
/* Handy (Standard): EIN Popover. Der Layout-Container ist die Karte, Übersicht
   und Hauptteil sind nur Abschnitte (Übersicht oben, Hauptteil darunter). */
.dsh-rp-layout[b-s155shzptl] {
    display: flex;
    flex-direction: column;
    width: min(380px, calc(100vw - 24px));
    max-height: calc(100vh - 130px);
    overflow-y: auto;
    margin-top: 8px;
    padding: 12px;
    background: rgba(255, 255, 255, .98);
    border: 1px solid rgba(0, 0, 0, .06);
    border-radius: 16px;
    box-shadow: 0 14px 38px rgba(16, 24, 40, .22);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    scrollbar-width: thin;
    scrollbar-color: #d4d4d9 transparent;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity .22s ease, transform .26s ease;
}

.dsh-pop-host.is-open .dsh-rp-layout[b-s155shzptl] {
    opacity: 1;
    transform: none;
}

/* Im Handy-Modus tragen die Teile keine eigene Karte (Layout-Container ist die Karte). */
.dsh-rp-layout .dsh-pop-card[b-s155shzptl] {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    padding: 0;
}

/* Handy: Übersicht und Config trennen sich vom Hauptteil per feiner Linie. */
.dsh-rp-overview[b-s155shzptl],
.dsh-rp-config[b-s155shzptl] {
    padding-bottom: .85rem;
    margin-bottom: .85rem;
    border-bottom: 1px solid #f0f0f3;
}

.dsh-rp-config .dsh-rp-start[b-s155shzptl] {
    margin-top: 0;
}

/* PC: Config (Start/Rundstrecke) ganz links, dann Übersicht, dann Hauptteil. */
@media (min-width: 920px) {
    .dsh-rp-layout[b-s155shzptl] {
        flex-direction: row;
        align-items: flex-start;
        gap: .55rem;
        width: auto;
        max-height: none;
        overflow: visible;
        padding: 0;
        background: transparent;
        border: 0;
        box-shadow: none;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        /* Am PC ist das Layout nur ein unsichtbarer Spann-Container über alle drei Fenster –
           Eingaben durchlassen (Karte dahinter bleibt bedienbar), nur die Karten fangen. */
        pointer-events: none;
    }

    .dsh-rp-layout .dsh-pop-card[b-s155shzptl] {
        pointer-events: auto;
        padding: 12px;
        max-height: calc(100vh - 130px);
        overflow-y: auto;
        background: rgba(255, 255, 255, .98);
        border: 1px solid rgba(0, 0, 0, .06);
        border-radius: 16px;
        box-shadow: 0 14px 38px rgba(16, 24, 40, .22);
        backdrop-filter: blur(14px);
        -webkit-backdrop-filter: blur(14px);
    }

    .dsh-rp-overview[b-s155shzptl],
    .dsh-rp-config[b-s155shzptl] {
        margin-bottom: 0;
        padding-bottom: 12px;
        border-bottom: 0;
        animation: dsh-rp-overview-in-b-s155shzptl .28s cubic-bezier(.3, 1, .4, 1);
    }

    .dsh-rp-config[b-s155shzptl] {
        width: 196px;   /* schmales Fenster, in DOM-Reihenfolge: Route | Startpunkt | Hauptteil */
    }

    .dsh-rp-overview[b-s155shzptl] {
        width: 350px;
    }

    .dsh-rp-main[b-s155shzptl] {
        width: 320px;
    }

    /* 3. Fenster zeigt nur noch die Aktionen – die obere Foot-Trennlinie/Abstand entfällt. */
    .dsh-rp-main .dsh-rp-foot[b-s155shzptl] {
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
    }
}

@keyframes dsh-rp-overview-in-b-s155shzptl {
    from { opacity: 0; transform: translateX(14px); }
    to { opacity: 1; transform: none; }
}

/* Handy: Popover passt sicher in den Viewport (dvh berücksichtigt die Browser-Leiste),
   Start-Karten als kompakte Zeilen, Aktionen als Sticky-Leiste unten im Popover. */
@media (max-width: 919px) {
    .dsh-pop-inner[b-s155shzptl] {
        max-height: calc(100vh - 180px);
        max-height: calc(100dvh - 180px);
    }

    .dsh-rp-layout[b-s155shzptl] {
        max-height: calc(100vh - 230px);
        max-height: calc(100dvh - 230px);
    }

    /* Start-Optionen als flache Zeilen (Icon | Text | Radio) statt hoher Kacheln */
    .dsh-rp-startcard[b-s155shzptl] {
        flex-direction: row;
        align-items: center;
        gap: .6rem;
        padding: .5rem .6rem;
    }

    .dsh-rp-startcard-ic[b-s155shzptl] {
        width: 30px;
        height: 30px;
    }

    .dsh-rp-startcard-check[b-s155shzptl] {
        position: static;
        flex: 0 0 auto;
        margin-left: auto;
    }

    /* Etwas größere Touch-Ziele für ↑ ↓ ✕ */
    .dsh-rp-move[b-s155shzptl],
    .dsh-rp-remove[b-s155shzptl] {
        width: 31px;
        height: 31px;
    }

    /* "Route teilen" / "Google Maps" kleben am unteren Rand des scrollenden Popovers –
       immer erreichbar, ohne erst ganz nach unten scrollen zu müssen. */
    .dsh-rp-foot[b-s155shzptl] {
        position: sticky;
        bottom: 0;
        z-index: 2;
        margin: .8rem -12px -12px;
        padding: .7rem 12px 12px;
        background: rgba(255, 255, 255, .97);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
    }
}

/* Offener Button geht NAHTLOS ins Popup über: exakt dieselbe Glas-Fläche (rgba + Blur) wie
   die Popup-Karte, unten eckig, 1px Überlappung verdeckt die Naht. Schatten = derselbe wie
   am Popup, per clip-path unterhalb der Unterkante abgeschnitten (sonst fiele er als dunkles
   Band aufs Popup) – Button + Popup wirken so wie EINE Form mit durchgehendem Schatten. */
.dsh-mapbtn.is-open[b-s155shzptl] {
    position: relative;
    z-index: 2;
    margin-bottom: -1px;
    background: rgba(255, 255, 255, .98);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    border-bottom-color: transparent;
    box-shadow: 0 14px 38px rgba(16, 24, 40, .22);
    clip-path: inset(-60px -60px 0 -60px);
}

@media (hover: hover) {
    .dsh-mapbtn.is-open:hover[b-s155shzptl] {
        transform: none;
    }
}

/* Popup schließt bündig an den offenen Button an (kein Spalt; Ecke rechts oben eckig = Anschluss). */
.dsh-pop-host.is-open .dsh-pop-inner[b-s155shzptl],
.dsh-pop-host.is-open .dsh-rp-layout[b-s155shzptl] {
    margin-top: 0;
    border-top-right-radius: 0;
}

/* Das Routen-Dock (unten links) dockt an KEINEN Button an → oben rechts wieder runde Ecke. */
.dsh-pop-host--route.is-open .dsh-rp-layout[b-s155shzptl] {
    border-top-right-radius: 16px;
}

/* Kopf-Aktionen der Route (Alle entfernen + Minimieren) */
.dsh-rp-head-actions[b-s155shzptl] {
    display: flex;
    align-items: center;
    gap: .55rem;
    flex: 0 0 auto;
}

.dsh-rp-min[b-s155shzptl] {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border: 0;
    border-radius: 8px;
    background: #efeff1;
    color: #3c4148;
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: background .13s ease, color .13s ease;
}

@media (hover: hover) {
    .dsh-rp-min:hover[b-s155shzptl] {
        background: #16181c;
        color: #fff;
    }
}

.dsh-rp-min svg[b-s155shzptl] {
    display: block;
}

/* Minimierte Route: kompakte einzeilige Pille (unten links); Klick öffnet die Übersicht wieder. */
.dsh-route-mini[b-s155shzptl] {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-top: 8px;
    padding: .3rem .55rem .3rem .35rem;
    border: 1px solid rgba(0, 0, 0, .06);
    border-radius: 999px;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 8px 24px rgba(16, 24, 40, .18);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    cursor: pointer;
    font: inherit;
    pointer-events: auto;
}

.dsh-route-mini-ic[b-s155shzptl] {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #16181c;
    color: #fff;
}

.dsh-route-mini-ic svg[b-s155shzptl] {
    display: block;
    width: 14px;
    height: 14px;
}

.dsh-route-mini-txt[b-s155shzptl] {
    font-size: .78rem;
    font-weight: 700;
    color: #16181c;
    white-space: nowrap;
}

.dsh-route-mini-exp[b-s155shzptl] {
    flex: 0 0 auto;
    color: #80858d;
    display: grid;
    place-items: center;
}

.dsh-route-mini-exp svg[b-s155shzptl] {
    display: block;
}

@media (min-width: 920px) {
    .dsh-pop-host.is-open .dsh-rp-main[b-s155shzptl] {
        border-top-right-radius: 0;
    }
}

/* Innen kompakter als im früheren Modal (kein großer Kopf, kleineres Padding/Margin). */
.dsh-pop-inner .dsh-listbar[b-s155shzptl] {
    margin-bottom: .55rem;
}

.dsh-pop-inner .dsh-list[b-s155shzptl] {
    max-height: 46vh;
}

.dsh-rp-main .dsh-rp-section + .dsh-rp-section[b-s155shzptl] {
    margin-top: .8rem;
    padding-top: .8rem;
}

.dsh-rp-main .dsh-rp-addlist[b-s155shzptl] {
    max-height: 30vh;
}

.dsh-rp-overview .dsh-rp-addlist[b-s155shzptl] {
    max-height: 34vh;
}

/* Fußzeile mit "In Google Maps öffnen" (voll breit) */
.dsh-rp-foot[b-s155shzptl] {
    display: flex;
    gap: .5rem;
    margin-top: .8rem;
    padding-top: .8rem;
    border-top: 1px solid #f0f0f3;
}

/* Beide Buttons gleich breit nebeneinander (Route teilen | Google Maps). */
.dsh-rp-foot .settings-btn[b-s155shzptl] {
    flex: 1 1 0;
    min-width: 0;
}

/* „Zur Route hinzufügen" im Such-Pin: schwarzer Primär-Button (volle Breite), wie im Baustellen-Popup. */
.dsh-map[b-s155shzptl]  .dsh-searchpop-route {
    display: inline-flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    margin-top: .55rem;
    height: 34px;
    border: 1px solid #16181c;
    border-radius: 10px;
    background: #16181c;
    color: #fff;
    font: inherit;
    font-size: .8rem;
    font-weight: 650;
    white-space: nowrap;
    cursor: pointer;
    transition: background .13s ease, border-color .13s ease;
}

@media (hover: hover) {
    .dsh-map[b-s155shzptl]  .dsh-searchpop-route:hover {
        background: #26282e;
        border-color: #26282e;
    }
}

.dsh-map[b-s155shzptl]  .dsh-searchpop-route svg {
    flex: 0 0 auto;
}

.dsh-map[b-s155shzptl]  .dsh-searchpop-label {
    font-size: .86rem;
    font-weight: 650;
    color: #16181c;
}

/* ===== Routen-Übersicht (2 Fenster) unten links – erscheint automatisch ab 1 Stopp ===== */
.dsh-pop-host--route[b-s155shzptl] {
    position: fixed;
    left: 12px;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 12px);
    top: auto;
    right: auto;
    align-items: flex-start;
    z-index: 1000;
}

/* Aktionen (Teilen / Google Maps) sitzen jetzt unten in Fenster 1 – inline, nicht sticky. */
.dsh-rp-overview .dsh-rp-foot[b-s155shzptl] {
    position: static;
    margin: .8rem 0 0;
    padding: .8rem 0 0;
    background: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

@media (min-width: 920px) {
    /* Beide Fenster unten bündig nebeneinander. */
    .dsh-pop-host--route .dsh-rp-layout[b-s155shzptl] {
        align-items: flex-end;
    }
}

/* "Route teilen": kurzer "Link kopiert"-Tooltip (Desktop-Fallback ohne Web-Share). */
.dsh-rp-share[b-s155shzptl] {
    position: relative;
}

.dsh-rp-share.is-copied[b-s155shzptl]::after {
    content: "Link kopiert";
    position: absolute;
    bottom: calc(100% + 7px);
    left: 50%;
    transform: translateX(-50%);
    background: #1c1c1e;
    color: #fff;
    font-size: .72rem;
    font-weight: 600;
    padding: .25rem .5rem;
    border-radius: 7px;
    white-space: nowrap;
    pointer-events: none;
    box-shadow: 0 6px 16px rgba(16, 24, 40, .22);
}

.dsh-rp-share.is-copied[b-s155shzptl]::before {
    content: "";
    position: absolute;
    bottom: calc(100% + 2px);
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: #1c1c1e;
    pointer-events: none;
}
/* /Components/Pages/Dashboard/Widgets/BirthdaysCard.razor.rz.scp.css */
.bd-card[b-1l8gz4mag8] {
    display: flex;
    flex-direction: column;
    height: 100%;
    box-sizing: border-box;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    color: #16181c;
    overflow: hidden;
}

.bd-head[b-1l8gz4mag8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 10px;
}

.bd-kicker[b-1l8gz4mag8] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #80858d;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bd-head-ic[b-1l8gz4mag8] {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    color: #cfcfd4;
}

.bd-empty[b-1l8gz4mag8] {
    margin: auto 0;
    padding: 18px 0;
    text-align: center;
    color: #aeaeb2;
    font-size: 13px;
    font-weight: 600;
}

.bd-list[b-1l8gz4mag8] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    overflow-y: auto;
    margin: 0 -4px;
    padding: 0 4px;
    scrollbar-width: thin;
    scrollbar-color: #d4d4d9 transparent;
}

.bd-row[b-1l8gz4mag8] {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 7px 8px;
    border-radius: 12px;
}

.bd-row.is-today[b-1l8gz4mag8] {
    background: #16181c;
}

.bd-avatar[b-1l8gz4mag8] {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #16181c;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    font-size: 14px;
}

.bd-row.is-today .bd-avatar[b-1l8gz4mag8] {
    background: rgba(255, 255, 255, .16);
    color: #fff;
}

.bd-body[b-1l8gz4mag8] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
    gap: 1px;
}

.bd-name[b-1l8gz4mag8] {
    font-size: 14px;
    font-weight: 700;
    color: #16181c;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bd-sub[b-1l8gz4mag8] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 500;
    color: #80858d;
    font-variant-numeric: tabular-nums;
}

.bd-sub-ic[b-1l8gz4mag8] {
    display: inline-flex;
    flex: 0 0 auto;
    color: #aeaeb2;
}

.bd-sub-ic svg[b-1l8gz4mag8] {
    width: 12px;
    height: 12px;
}

.bd-sub-txt[b-1l8gz4mag8] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bd-row.is-today .bd-name[b-1l8gz4mag8] {
    color: #fff;
}

.bd-row.is-today .bd-sub[b-1l8gz4mag8] {
    color: rgba(255, 255, 255, .7);
}

.bd-row.is-today .bd-sub-ic[b-1l8gz4mag8] {
    color: rgba(255, 255, 255, .6);
}

.bd-when[b-1l8gz4mag8] {
    flex: 0 0 auto;
    font-size: 11.5px;
    font-weight: 700;
    color: #80858d;
    white-space: nowrap;
}

.bd-when.is-today[b-1l8gz4mag8] {
    padding: 3px 9px;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    font-weight: 800;
}
/* /Components/Pages/Dashboard/Widgets/BoardCard.razor.rz.scp.css */
.bb-card[b-ogli9830vo] {
    display: flex;
    flex-direction: column;
    height: 100%;
    box-sizing: border-box;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    color: #16181c;
    overflow: hidden;
}

.bb-head[b-ogli9830vo] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 12px;
}

.bb-kicker[b-ogli9830vo] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #80858d;
}

.bb-new[b-ogli9830vo] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 13px 0 10px;
    border: 0;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s ease;
}

@media (hover: hover) {
    .bb-new:hover[b-ogli9830vo] {
        background: #26282e;
    }
}

.bb-new svg[b-ogli9830vo] {
    width: 16px;
    height: 16px;
}

/* -- Leerzustand -- */
.bb-empty[b-ogli9830vo] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin: auto 0;
    padding: 22px 0;
    text-align: center;
    color: #aeaeb2;
    font-size: 13px;
    font-weight: 600;
}

.bb-empty svg[b-ogli9830vo] {
    width: 30px;
    height: 30px;
    color: #cfcfd4;
}

.bb-empty-btn[b-ogli9830vo] {
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    padding: 8px 16px;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s ease;
}

@media (hover: hover) {
    .bb-empty-btn:hover[b-ogli9830vo] {
        background: #efeff1;
    }
}

/* -- Liste -- */
.bb-list[b-ogli9830vo] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    overflow-y: auto;
    margin: 0 -4px;
    padding: 0 4px 2px;
    scrollbar-width: thin;
    scrollbar-color: #d4d4d9 transparent;
}

.bb-item[b-ogli9830vo] {
    padding: 12px 14px;
    border: 1px solid #e8e8ec;
    border-radius: 13px;
    background: #fff;
}

.bb-item.is-important[b-ogli9830vo] {
    border-color: #16181c;
    background: #fafafa;
    box-shadow: inset 3px 0 0 #16181c;
}

.bb-item-top[b-ogli9830vo] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 7px;
}

.bb-flag[b-ogli9830vo] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.bb-flag svg[b-ogli9830vo] {
    width: 11px;
    height: 11px;
}

.bb-edit[b-ogli9830vo] {
    flex: 0 0 auto;
    margin-left: auto;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #3c4148;
    cursor: pointer;
    transition: background .14s ease, color .14s ease, border-color .14s ease;
}

@media (hover: hover) {
    .bb-edit:hover[b-ogli9830vo] {
        background: #16181c;
        color: #fff;
        border-color: #16181c;
    }
}

.bb-edit svg[b-ogli9830vo] {
    width: 15px;
    height: 15px;
}

/* Gerenderter (bereinigter) HTML-Inhalt einer Ankündigung: RichTextView mit globalen
   .rtc-Styles (wwwroot/app.css) — hier keine eigenen Inhalts-Styles mehr. */

.bb-meta[b-ogli9830vo] {
    margin-top: 9px;
    font-size: 11.5px;
    font-weight: 600;
    color: #aeaeb2;
}

/* -- Modal-Kopf -- */
.bb-mhead[b-ogli9830vo] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.bb-mhead-ic[b-ogli9830vo] {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: #efeff1;
    color: #16181c;
}

.bb-mhead-ic svg[b-ogli9830vo] {
    width: 19px;
    height: 19px;
}

.bb-mhead-txt[b-ogli9830vo] {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.bb-mhead-kicker[b-ogli9830vo] {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #80858d;
}

.bb-mhead-title[b-ogli9830vo] {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    color: #16181c;
}

/* -- Formular -- */
.bb-form[b-ogli9830vo] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* Editor: Shared-Komponente Components/Shared/RichText/RichTextEditor (eigene Styles dort). */

.bb-err[b-ogli9830vo] {
    color: #e2483b;
    font-size: 12px;
    font-weight: 600;
}

.bb-toggle[b-ogli9830vo] {
    display: flex;
    align-items: center;
    gap: 11px;
    cursor: pointer;
    font-size: 13.5px;
    font-weight: 600;
    color: #16181c;
}

.bb-toggle input[b-ogli9830vo] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.bb-switch[b-ogli9830vo] {
    flex: 0 0 auto;
    width: 42px;
    height: 25px;
    border-radius: 999px;
    background: #d1d1d6;
    position: relative;
    transition: background .16s ease;
}

.bb-switch[b-ogli9830vo]::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 21px;
    height: 21px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
    transition: transform .16s ease;
}

.bb-toggle input:checked + .bb-switch[b-ogli9830vo] {
    background: #16181c;
}

.bb-toggle input:checked + .bb-switch[b-ogli9830vo]::after {
    transform: translateX(17px);
}

.bb-toggle input:focus-visible + .bb-switch[b-ogli9830vo] {
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .25);
}

/* -- Modal-Buttons -- */
.bb-btn[b-ogli9830vo] {
    height: 40px;
    padding: 0 18px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

@media (hover: hover) {
    .bb-btn:hover[b-ogli9830vo] {
        background: #efeff1;
    }
}

.bb-btn:disabled[b-ogli9830vo] {
    opacity: .55;
    cursor: default;
}

.bb-btn--primary[b-ogli9830vo] {
    background: #16181c;
    color: #fff;
    border-color: #16181c;
}

@media (hover: hover) {
    .bb-btn--primary:hover[b-ogli9830vo] {
        background: #26282e;
    }
}

.bb-btn--danger[b-ogli9830vo] {
    color: #e2483b;
    margin-right: auto;
}

@media (hover: hover) {
    .bb-btn--danger:hover[b-ogli9830vo] {
        background: #fbeae8;
    }
}
/* /Components/Pages/Dashboard/Widgets/FuelCard.razor.rz.scp.css */
.fl-card[b-t5xkex4g4d] {
    display: flex;
    flex-direction: column;
    height: 100%;
    box-sizing: border-box;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    color: #16181c;
    overflow: hidden;
}

.fl-head[b-t5xkex4g4d] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.fl-kicker[b-t5xkex4g4d] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #80858d;
}

.fl-updated[b-t5xkex4g4d] {
    font-size: 11px;
    font-weight: 600;
    color: #aeaeb2;
    font-variant-numeric: tabular-nums;
}

/* Spalten-Raster: Station | Diesel | Super | E10 */
.fl-legend[b-t5xkex4g4d],
.fl-row[b-t5xkex4g4d] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) repeat(3, minmax(40px, auto));
    align-items: center;
    gap: 8px;
}

.fl-legend[b-t5xkex4g4d] {
    padding: 0 2px 6px;
    border-bottom: 1px solid #f0f0f3;
}

.fl-legend > span[b-t5xkex4g4d] {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #aeaeb2;
    text-align: right;
}

.fl-legend-name[b-t5xkex4g4d] {
    text-align: left;
}

.fl-list[b-t5xkex4g4d] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    margin: 0 -2px;
    padding: 2px;
    scrollbar-width: thin;
    scrollbar-color: #d4d4d9 transparent;
}

.fl-row[b-t5xkex4g4d] {
    padding: 7px 2px;
    border-bottom: 1px solid #f5f5f7;
}

.fl-row:last-child[b-t5xkex4g4d] {
    border-bottom: 0;
}

.fl-row.is-closed[b-t5xkex4g4d] {
    opacity: .5;
}

.fl-station[b-t5xkex4g4d] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 1px;
}

.fl-name[b-t5xkex4g4d] {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13.5px;
    font-weight: 700;
    color: #16181c;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fl-open[b-t5xkex4g4d] {
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #cfcfd4;
}

.fl-open.is-open[b-t5xkex4g4d] {
    background: #16a34a;
    box-shadow: 0 0 0 3px rgba(22, 163, 74, .16);
}

.fl-addr[b-t5xkex4g4d] {
    font-size: 11.5px;
    font-weight: 500;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-left: 15px;
}

.fl-price[b-t5xkex4g4d] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Preis-Innenleben kommt als MarkupString (ohne Scope-Attribut) → ::deep */
.fl-price[b-t5xkex4g4d]  .fl-eur {
    font-size: 15px;
    font-weight: 800;
    color: #16181c;
}

.fl-price[b-t5xkex4g4d]  .fl-tenth {
    font-size: 9px;
    font-weight: 800;
    color: #16181c;
    vertical-align: super;
    margin-left: 1px;
}

.fl-price[b-t5xkex4g4d]  .fl-na {
    color: #cfcfd4;
    font-weight: 700;
}

/* Kopf rechts: Quelle (Tankerkönig) links neben „Stand HH:mm" und dem Verlauf-Button. */
.fl-headmeta[b-t5xkex4g4d] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.fl-source[b-t5xkex4g4d] {
    font-size: 11px;
    font-weight: 600;
    color: #aeaeb2;
    text-decoration: none;
    white-space: nowrap;
}

@media (hover: hover) {
    .fl-source:hover[b-t5xkex4g4d] {
        color: #16181c;
        text-decoration: underline;
        text-underline-offset: 2px;
    }
}

/* Zustände (kein Key / leer / lädt) */
.fl-state[b-t5xkex4g4d] {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: auto 0;
    padding: 14px 6px;
    color: #80858d;
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.45;
}

.fl-state svg[b-t5xkex4g4d] {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    color: #cfcfd4;
    margin-top: 1px;
}

.fl-state code[b-t5xkex4g4d] {
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: 11.5px;
    background: #f2f2f5;
    border-radius: 5px;
    padding: 1px 5px;
    color: #3c4148;
}

.fl-loading[b-t5xkex4g4d] {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: auto 0;
    padding: 22px 0;
    justify-content: center;
    color: #aeaeb2;
    font-size: 13px;
    font-weight: 600;
}

.fl-spinner[b-t5xkex4g4d] {
    width: 16px;
    height: 16px;
    border: 2.2px solid #e4e4e7;
    border-top-color: #16181c;
    border-radius: 50%;
    animation: fl-spin-b-t5xkex4g4d .7s linear infinite;
}

@keyframes fl-spin-b-t5xkex4g4d {
    to { transform: rotate(360deg); }
}

/* Kleiner Verlauf-Button oben rechts (öffnet das Preisverlauf-Modal). */
.fl-histbtn[b-t5xkex4g4d] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #80858d;
    cursor: pointer;
    transition: background .14s ease, color .14s ease, border-color .14s ease, transform .12s ease;
}

.fl-histbtn svg[b-t5xkex4g4d] {
    width: 15px;
    height: 15px;
}

@media (hover: hover) {
    .fl-histbtn:hover[b-t5xkex4g4d] {
        background: #16181c;
        border-color: #16181c;
        color: #fff;
        transform: translateY(-1px);
    }
}

.fl-histbtn:active[b-t5xkex4g4d] {
    transform: translateY(0);
}

/* -- Verlaufs-Modal -- */
.fl-mhead[b-t5xkex4g4d] {
    display: flex;
    align-items: center;
    gap: 13px;
}

.fl-mhead-ic[b-t5xkex4g4d] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 13px;
    background: #16181c;
    color: #fff;
}

.fl-mhead-ic svg[b-t5xkex4g4d] {
    width: 21px;
    height: 21px;
}

.fl-mhead-txt[b-t5xkex4g4d] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.fl-mhead-kicker[b-t5xkex4g4d] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #aeaeb2;
}

.fl-mhead-title[b-t5xkex4g4d] {
    margin: 0;
    font-family: 'Quicksand', sans-serif;
    font-size: 21px;
    font-weight: 700;
    color: #16181c;
}

.fl-hist[b-t5xkex4g4d] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.fl-hist-bar[b-t5xkex4g4d] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 12px;
}

/* Zeitraum-Umschalter (Pill-Segment). */
.fl-range[b-t5xkex4g4d] {
    display: inline-flex;
    gap: 3px;
    padding: 3px;
    background: #f2f2f5;
    border-radius: 11px;
}

.fl-range-btn[b-t5xkex4g4d] {
    border: 0;
    border-radius: 8px;
    padding: 6px 13px;
    background: transparent;
    color: #80858d;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    transition: background .14s ease, color .14s ease, box-shadow .14s ease;
}

@media (hover: hover) {
    .fl-range-btn:hover[b-t5xkex4g4d] {
        color: #16181c;
    }
}

.fl-range-btn.is-active[b-t5xkex4g4d] {
    background: #fff;
    color: #16181c;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .12);
}

.fl-hist-note[b-t5xkex4g4d] {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    color: #aeaeb2;
}
/* /Components/Pages/Dashboard/Widgets/WeatherCard.razor.rz.scp.css */
.wx-card[b-i8v1zci483] {
    display: flex;
    flex-direction: column;
    height: 100%;
    box-sizing: border-box;
    padding: 15px 17px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    color: #16181c;
    overflow: hidden;
    /* eigene Breite als Query-Container → die Card stapelt selbst um, wenn ihre Zelle schmal wird */
    container-type: inline-size;
}

.wx-head[b-i8v1zci483] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
}

.wx-kicker[b-i8v1zci483] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wx-headmeta[b-i8v1zci483] {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    flex: 0 0 auto;
}

.wx-updated[b-i8v1zci483] {
    font-size: 11px;
    font-weight: 600;
    color: #aeaeb2;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Kleiner Verlauf-Button oben rechts (öffnet das Verlaufs-Modal). */
.wx-histbtn[b-i8v1zci483] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #80858d;
    cursor: pointer;
    transition: background .14s ease, color .14s ease, border-color .14s ease, transform .12s ease;
}

.wx-histbtn svg[b-i8v1zci483] {
    width: 15px;
    height: 15px;
}

@media (hover: hover) {
    .wx-histbtn:hover[b-i8v1zci483] {
        background: #16181c;
        border-color: #16181c;
        color: #fff;
        transform: translateY(-1px);
    }
}

.wx-histbtn:active[b-i8v1zci483] {
    transform: translateY(0);
}

/* -- Verlaufs-Modal -- */
.wx-mhead[b-i8v1zci483] {
    display: flex;
    align-items: center;
    gap: 13px;
}

.wx-mhead-ic[b-i8v1zci483] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 13px;
    background: #16181c;
    color: #fff;
}

.wx-mhead-ic svg[b-i8v1zci483] {
    width: 21px;
    height: 21px;
}

.wx-mhead-txt[b-i8v1zci483] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.wx-mhead-kicker[b-i8v1zci483] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #aeaeb2;
}

.wx-mhead-title[b-i8v1zci483] {
    margin: 0;
    font-family: 'Quicksand', sans-serif;
    font-size: 21px;
    font-weight: 700;
    color: #16181c;
}

.wx-hist[b-i8v1zci483] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.wx-hist-bar[b-i8v1zci483] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
}

/* Zeitraum-Umschalter (Pill-Segment). */
.wx-range[b-i8v1zci483] {
    display: inline-flex;
    gap: 3px;
    padding: 3px;
    background: #f2f2f5;
    border-radius: 11px;
}

.wx-range-btn[b-i8v1zci483] {
    border: 0;
    border-radius: 8px;
    padding: 6px 13px;
    background: transparent;
    color: #80858d;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    transition: background .14s ease, color .14s ease, box-shadow .14s ease;
}

@media (hover: hover) {
    .wx-range-btn:hover[b-i8v1zci483] {
        color: #16181c;
    }
}

.wx-range-btn.is-active[b-i8v1zci483] {
    background: #fff;
    color: #16181c;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .12);
}

/* Min/Ø/Max-Kennzahlen. */
.wx-stats[b-i8v1zci483] {
    display: inline-flex;
    gap: 18px;
}

.wx-stat[b-i8v1zci483] {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    line-height: 1.15;
}

.wx-stat em[b-i8v1zci483] {
    font-style: normal;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #aeaeb2;
}

.wx-stat strong[b-i8v1zci483] {
    font-family: 'Quicksand', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

/* Links das aktuelle Wetter, rechts „Heute" + nächste Tage als Liste. */
.wx-body[b-i8v1zci483] {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
    gap: 6px 14px;
    margin-top: 8px;
}

.wx-current[b-i8v1zci483] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.wx-hero[b-i8v1zci483] {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

/* Glyph kommt als MarkupString (ohne Scope-Attribut) → ::deep */
.wx-icon[b-i8v1zci483]  .wx-glyph {
    display: block;
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    color: #16181c;
}

.wx-temp[b-i8v1zci483] {
    display: flex;
    align-items: flex-start;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    font-size: 44px;
    line-height: .9;
    letter-spacing: -1px;
    font-variant-numeric: tabular-nums;
}

.wx-deg[b-i8v1zci483] {
    font-size: 23px;
    font-weight: 600;
    color: #80858d;
    margin-top: 3px;
}

.wx-desc[b-i8v1zci483] {
    margin-top: 5px;
    font-size: 14px;
    font-weight: 700;
    color: #16181c;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wx-meta[b-i8v1zci483] {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-top: auto;
    padding-top: 12px;
    min-width: 0;
}

.wx-meta-item[b-i8v1zci483] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    font-size: 12px;
    font-weight: 600;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.wx-meta-item svg[b-i8v1zci483] {
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
    color: #aeaeb2;
}

/* Tagesliste rechts: Heute zuerst, darunter die nächsten 3 Tage. */
.wx-list[b-i8v1zci483] {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 3px;
    min-width: 0;
}

.wx-frow[b-i8v1zci483] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 18px auto auto;
    align-items: center;
    gap: 7px;
    padding: 6px 8px;
    border-radius: 11px;
    opacity: 0;
    animation: wx-rise-b-i8v1zci483 .45s cubic-bezier(.2, .7, .3, 1) forwards;
}

.wx-frow.is-today[b-i8v1zci483] {
    background: #16181c;
}

.wx-frow-name[b-i8v1zci483] {
    font-size: 13px;
    font-weight: 700;
    color: #16181c;
    text-transform: capitalize;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wx-frow-ic[b-i8v1zci483] {
    display: flex;
}

.wx-frow-ic[b-i8v1zci483]  svg {
    display: block;
    width: 18px;
    height: 18px;
    color: #16181c;
}

.wx-frow-temps[b-i8v1zci483] {
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: right;
}

.wx-frow-temps strong[b-i8v1zci483] {
    font-weight: 800;
    color: #16181c;
}

.wx-frow-temps em[b-i8v1zci483] {
    font-style: normal;
    font-weight: 600;
    color: #aeaeb2;
    margin-left: 3px;
}

.wx-frow-prec[b-i8v1zci483] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    min-width: 30px;
    justify-content: flex-end;
    font-size: 11px;
    font-weight: 700;
    color: #80858d;
    font-variant-numeric: tabular-nums;
}

.wx-frow-prec svg[b-i8v1zci483] {
    flex: 0 0 auto;
    width: 9px;
    height: 9px;
    opacity: .65;
}

.wx-frow-prec.is-dry[b-i8v1zci483] {
    visibility: hidden;
}

/* „Heute"-Zeile invertiert (schwarz). */
.wx-frow.is-today .wx-frow-name[b-i8v1zci483],
.wx-frow.is-today .wx-frow-temps strong[b-i8v1zci483] {
    color: #fff;
}

.wx-frow.is-today .wx-frow-ic[b-i8v1zci483]  svg {
    color: #fff;
}

.wx-frow.is-today .wx-frow-temps em[b-i8v1zci483] {
    color: rgba(255, 255, 255, .6);
}

.wx-frow.is-today .wx-frow-prec[b-i8v1zci483] {
    color: rgba(255, 255, 255, .6);
}

@keyframes wx-rise-b-i8v1zci483 {
    from { opacity: 0; transform: translateY(7px); }
    to { opacity: 1; transform: none; }
}

/* Schmale Zelle: aktuelles Wetter oben, Tagesliste darunter über die volle Breite (kein Quetschen). */
@container (max-width: 318px) {
    .wx-body[b-i8v1zci483] {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .wx-meta[b-i8v1zci483] {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 4px 14px;
        margin-top: 9px;
        padding-top: 0;
    }
}

/* -- Loading -- */
.wx-loading[b-i8v1zci483] {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: auto 0;
    justify-content: center;
    color: #aeaeb2;
    font-size: 13px;
    font-weight: 600;
}

.wx-spinner[b-i8v1zci483] {
    width: 16px;
    height: 16px;
    border: 2.2px solid #e4e4e7;
    border-top-color: #16181c;
    border-radius: 50%;
    animation: wx-spin-b-i8v1zci483 .7s linear infinite;
}

@keyframes wx-spin-b-i8v1zci483 {
    to { transform: rotate(360deg); }
}

/* ===== Animiertes großes Glyph (MarkupString-Inhalt → ::deep) ===== */
.wx-icon[b-i8v1zci483]  .wx-rays {
    transform-box: fill-box;
    transform-origin: center;
    animation: wx-spin-b-i8v1zci483 26s linear infinite;
}

/* „Teils bewölkt": die Strahlen sitzen nur über der Wolke, der Mittelpunkt ihres Rahmens ist
   also nicht der Sonnenkern — ein Rundlauf würde sichtbar wackeln und unten hinter der Wolke
   hervorlugen. Darum hier Glimmen statt Drehen. */
.wx-icon[b-i8v1zci483]  .wx-glyph--partly .wx-rays {
    animation: wx-glow-b-i8v1zci483 3.4s ease-in-out infinite;
}

@keyframes wx-glow-b-i8v1zci483 {
    0%, 100% { opacity: .5; }
    50% { opacity: 1; }
}

.wx-icon[b-i8v1zci483]  .wx-glyph--sun .wx-core,
.wx-icon[b-i8v1zci483]  .wx-glyph--partly .wx-core {
    transform-box: fill-box;
    transform-origin: center;
    animation: wx-pulse-b-i8v1zci483 3s ease-in-out infinite;
}

@keyframes wx-pulse-b-i8v1zci483 {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.09); }
}

.wx-icon[b-i8v1zci483]  .wx-glyph--cloud,
.wx-icon[b-i8v1zci483]  .wx-glyph--fog {
    animation: wx-drift-b-i8v1zci483 6s ease-in-out infinite;
}

/* Bei „teils bewölkt" zieht nur die Wolke vor der Sonne vorbei, nicht das ganze Glyph. */
.wx-icon[b-i8v1zci483]  .wx-glyph--partly .wx-cloud {
    animation: wx-drift-b-i8v1zci483 6s ease-in-out infinite;
}

@keyframes wx-drift-b-i8v1zci483 {
    0%, 100% { transform: translateX(-1.3px); }
    50% { transform: translateX(1.3px); }
}

.wx-icon[b-i8v1zci483]  .wx-drops path {
    animation: wx-fall-b-i8v1zci483 1.3s ease-in-out infinite;
}

.wx-icon[b-i8v1zci483]  .wx-drops path:nth-child(2) { animation-delay: .25s; }
.wx-icon[b-i8v1zci483]  .wx-drops path:nth-child(3) { animation-delay: .5s; }

@keyframes wx-fall-b-i8v1zci483 {
    0% { transform: translateY(-2px); opacity: 0; }
    30% { opacity: 1; }
    100% { transform: translateY(3px); opacity: 0; }
}

.wx-icon[b-i8v1zci483]  .wx-flakes circle {
    animation: wx-fall-b-i8v1zci483 2.4s ease-in-out infinite;
}

.wx-icon[b-i8v1zci483]  .wx-flakes circle:nth-child(2) { animation-delay: .6s; }
.wx-icon[b-i8v1zci483]  .wx-flakes circle:nth-child(3) { animation-delay: 1.1s; }

.wx-icon[b-i8v1zci483]  .wx-glyph--storm .wx-bolt {
    animation: wx-flash-b-i8v1zci483 2.8s steps(1, end) infinite;
}

@keyframes wx-flash-b-i8v1zci483 {
    0%, 7%, 15%, 100% { opacity: 1; }
    4%, 11% { opacity: .25; }
}

.wx-icon[b-i8v1zci483]  .wx-fog path {
    animation: wx-fogslide-b-i8v1zci483 4s ease-in-out infinite;
}

.wx-icon[b-i8v1zci483]  .wx-fog path:nth-child(2) { animation-delay: .6s; }

@keyframes wx-fogslide-b-i8v1zci483 {
    0%, 100% { transform: translateX(-1.6px); opacity: .65; }
    50% { transform: translateX(1.6px); opacity: 1; }
}

/* Das große Glyph animiert bewusst auch bei reduzierter Bewegung weiter: es ist der lebendige
   Teil der Karte, und die Bewegungen sind winzig (1,3 px Drift, 26 s Umlauf). Nur die
   Einblend-Animation der Vorschauzeilen entfällt — die ist reine Auftrittsgeste. */
@media (prefers-reduced-motion: reduce) {
    .wx-frow[b-i8v1zci483] {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}
/* /Components/Pages/Dashboard/Widgets/WorkingNowCard.razor.rz.scp.css */
.wn-card[b-rfnwf3b1hx] {
    display: flex;
    flex-direction: column;
    height: 100%;
    box-sizing: border-box;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    color: #16181c;
    overflow: hidden;
}

.wn-head[b-rfnwf3b1hx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 10px;
}

.wn-kicker[b-rfnwf3b1hx] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #80858d;
}

.wn-count[b-rfnwf3b1hx] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.wn-empty[b-rfnwf3b1hx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 9px;
    margin: auto 0;
    padding: 18px 0;
    text-align: center;
    color: #aeaeb2;
    font-size: 13px;
    font-weight: 600;
}

.wn-empty svg[b-rfnwf3b1hx] {
    width: 26px;
    height: 26px;
    color: #cfcfd4;
}

.wn-list[b-rfnwf3b1hx] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    overflow-y: auto;
    margin: 0 -6px;
    padding: 0 6px;
    scrollbar-width: thin;
    scrollbar-color: #d4d4d9 transparent;
}

.wn-row[b-rfnwf3b1hx] {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 7px 4px;
}

.wn-avatar[b-rfnwf3b1hx] {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #16181c;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    font-size: 14px;
}

.wn-avatar.is-break[b-rfnwf3b1hx] {
    background: #a15c00;
}

.wn-body[b-rfnwf3b1hx] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
    gap: 1px;
}

.wn-name[b-rfnwf3b1hx] {
    font-size: 14px;
    font-weight: 700;
    color: #16181c;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wn-since[b-rfnwf3b1hx] {
    font-size: 12px;
    font-weight: 500;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wn-break[b-rfnwf3b1hx] {
    flex: 0 0 auto;
    padding: 3px 9px;
    border-radius: 999px;
    background: #fbf1de;
    color: #a15c00;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .03em;
}

.wn-live[b-rfnwf3b1hx] {
    flex: 0 0 auto;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #16a34a;
    box-shadow: 0 0 0 3px rgba(22, 163, 74, .16);
}
/* /Components/Pages/Employee/EmployeeAppointments.razor.rz.scp.css */
/* ============================================================================
   Mitarbeiter-Termine (/mitarbeiter/termine) — „Einsatzkarte", iOS-Look, monochrom.
   Tokens: page #f5f5f7 · surface #fff · ink #16181c · ink-soft #3c4148
           muted #80858d · line #e4e4e7 · fill #efeff1 · danger #e2483b
   Grammatik: weiß = Fläche, grau = Hover/Soft, schwarz = aktiv/primär.
   Signatur: das schwarze Zeitband der Einsatzkarte (Termin-Tab).
============================================================================ */

.eap-page[b-rigy3u38ab] {
    box-sizing: border-box;
    min-height: 100dvh;
    padding: max(16px, env(safe-area-inset-top)) 16px max(28px, env(safe-area-inset-bottom));
    /* Hintergrund kommt global von .employee-app-page (app.css) */
    color: #16181c;
    font: 15px/1.45 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-variant-numeric: tabular-nums;
    overflow-x: hidden;
    -webkit-tap-highlight-color: transparent;
}

/* Platz für das Tab-Dock (nur Mitarbeiter) */
.eap-page--dock[b-rigy3u38ab] {
    padding-bottom: calc(96px + env(safe-area-inset-bottom));
}

/* Chat-Tab aktiv: Page wird zu flex column mit fixer Viewport-Höhe, damit die
   Chat-Karte exakt den Restplatz unter Topbar+Tabs einnimmt (keine Seiten-Scrollbar). */
.eap-page--chat[b-rigy3u38ab] {
    height: 100dvh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.eap-page--chat .eap-shell[b-rigy3u38ab] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.eap-shell[b-rigy3u38ab] {
    width: min(560px, 100%);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* -- Topbar: Zurück + Titel + Tagesnavigation -------------------------------- */

.eap-topbar[b-rigy3u38ab] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 2px 2px 0;
}

.eap-back[b-rigy3u38ab] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0;
    color: #3c4148;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    font: inherit;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .eap-back:hover[b-rigy3u38ab] {
        background: #efeff1;
        color: #16181c;
    }
}

.eap-back:focus-visible[b-rigy3u38ab] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.eap-back:active[b-rigy3u38ab] {
    transform: scale(0.94);
}

.eap-topbar-text[b-rigy3u38ab] {
    min-width: 0;
    flex: 1;
}

.eap-kicker[b-rigy3u38ab] {
    display: block;
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.eap-topbar-text h1[b-rigy3u38ab] {
    margin: 1px 0 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: 0.2px;
    line-height: 1.12;
    overflow-wrap: anywhere;
}

/* -- Leerzustand ------------------------------------------------------------- */

.eap-empty[b-rigy3u38ab] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    padding: 34px 20px;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    text-align: center;
}

.eap-empty-icon[b-rigy3u38ab] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 4px;
    border-radius: 14px;
    color: #16181c;
    background: #efeff1;
}

.eap-empty strong[b-rigy3u38ab] {
    color: #16181c;
    font-size: 16px;
    font-weight: 700;
}

.eap-empty span[b-rigy3u38ab] {
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}

/* -- Flache Tabs im Kartenkopf (Termin / Chat / Material) ---------------------- */

.eap-tabbar[b-rigy3u38ab] {
    display: flex;
    border-bottom: 1px solid #efeff1;
    background: #fff;
}

.eap-tab[b-rigy3u38ab] {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 0;
    padding: 0 6px;
    color: #80858d;
    background: transparent;
    font: inherit;
    font-size: 13.5px;
    font-weight: 700;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: color 0.15s ease;
}

.eap-tab svg[b-rigy3u38ab] {
    flex-shrink: 0;
}

@media (hover: hover) {
    .eap-tab:hover[b-rigy3u38ab] {
        color: #16181c;
    }
}

.eap-tab:focus-visible[b-rigy3u38ab] {
    outline: none;
    box-shadow: inset 0 0 0 3px rgba(22, 24, 28, 0.12);
    border-radius: 12px;
}

.eap-tab--active[b-rigy3u38ab] {
    color: #16181c;
}

/* Unterstrich-Indikator des aktiven Tabs */
.eap-tab--active[b-rigy3u38ab]::after {
    content: "";
    position: absolute;
    left: 18%;
    right: 18%;
    bottom: -1px;
    height: 3px;
    border-radius: 999px 999px 0 0;
    background: #16181c;
}

.eap-tab em[b-rigy3u38ab] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 19px;
    height: 19px;
    border-radius: 999px;
    padding: 0 5px;
    background: #efeff1;
    color: #16181c;
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
}

.eap-tab--active em[b-rigy3u38ab] {
    background: #16181c;
    color: #fff;
}

/* -- Karten ------------------------------------------------------------------- */

.eap-card[b-rigy3u38ab] {
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    overflow: hidden;
}

/* Chat füllt den Restplatz (Page ist im Chat-Modus flex column mit fester Höhe). */
.eap-card--chat[b-rigy3u38ab] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.eap-chatwrap[b-rigy3u38ab] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.eap-detail[b-rigy3u38ab] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 16px;
}

/* -- Zeitband („Einsatzkarte", Signatur der Seite) ----------------------------- */

.eap-when[b-rigy3u38ab] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    border-radius: 14px;
    padding: 14px 16px;
    background: #16181c;
    color: #fff;
}

.eap-when-kicker[b-rigy3u38ab] {
    color: rgba(255, 255, 255, 0.64);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.eap-when-value[b-rigy3u38ab] {
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
}

/* Mehrtägig: Beginn/Ende als vertikale Timeline (Punkt–Linie–Punkt) */
.eap-when-timeline[b-rigy3u38ab] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 8px;
}

/* Verbindungslinie zwischen den beiden Punkten */
.eap-when-timeline[b-rigy3u38ab]::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 12px;
    bottom: 12px;
    width: 2px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.26);
}

.eap-when-stop[b-rigy3u38ab] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
}

.eap-when-dot[b-rigy3u38ab] {
    width: 10px;
    height: 10px;
    flex-shrink: 0;
    border-radius: 999px;
    background: #fff;
}

/* Ende: nur umrandet — der Einsatz läuft dorthin */
.eap-when-dot--end[b-rigy3u38ab] {
    background: #16181c;
    box-shadow: inset 0 0 0 2px #fff;
}

.eap-when-stop-body[b-rigy3u38ab] {
    min-width: 0;
    flex: 1;
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.eap-when-stop-body small[b-rigy3u38ab] {
    flex-shrink: 0;
    width: 46px;
    color: rgba(255, 255, 255, 0.56);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.eap-when-stop-body strong[b-rigy3u38ab] {
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.eap-when-stop em[b-rigy3u38ab] {
    flex-shrink: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 12.5px;
    font-style: normal;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* -- Baustelle + Karte --------------------------------------------------------- */

.eap-jobsite[b-rigy3u38ab] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.eap-jobsite-head[b-rigy3u38ab] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    padding: 11px 13px;
    color: #16181c;
    background: #f5f5f7;
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, border-color 0.15s ease;
}

@media (hover: hover) {
    .eap-jobsite-head:not(.eap-jobsite-head--static):hover[b-rigy3u38ab] {
        background: #efeff1;
    }
}

.eap-jobsite-head:focus-visible[b-rigy3u38ab] {
    outline: none;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.eap-jobsite-head--static[b-rigy3u38ab] {
    cursor: default;
}

.eap-jobsite-head-text[b-rigy3u38ab] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.eap-jobsite-kicker[b-rigy3u38ab] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.eap-jobsite-head-text strong[b-rigy3u38ab] {
    color: #16181c;
    font-size: 16px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

/* Hinweis „hier stecken die Ansprechpartner": Telefon + Anzahl + Chevron */
.eap-jobsite-contacthint[b-rigy3u38ab] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border-radius: 999px;
    padding: 6px 8px 6px 10px;
    background: #fff;
    box-shadow: 0 0 0 1px #e4e4e7;
    color: #3c4148;
    font-size: 12px;
    font-weight: 800;
}

.eap-jobsite-address[b-rigy3u38ab] {
    color: #3c4148;
    font-size: 14px;
    font-weight: 600;
    padding: 0 2px;
}

.eap-jobsite-map[b-rigy3u38ab] {
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    overflow: hidden;
    background: #efeff1;
}

.eap-jobsite-map iframe[b-rigy3u38ab] {
    display: block;
    width: 100%;
    height: 240px;
    border: 0;
}

/* -- Blöcke (Notiz, Team) ------------------------------------------------------ */

.eap-block[b-rigy3u38ab] {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.eap-block-label[b-rigy3u38ab] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.eap-team[b-rigy3u38ab] {
    display: flex;
    flex-direction: column;
    border: 1px solid #efeff1;
    border-radius: 14px;
    background: #f8f8f9;
    padding: 4px 12px;
}

.eap-team-row[b-rigy3u38ab] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
}

.eap-team-row + .eap-team-row[b-rigy3u38ab] {
    border-top: 1px solid #efeff1;
}

.eap-team-avatar[b-rigy3u38ab] {
    width: 34px;
    height: 34px;
    flex-shrink: 0;
    border-radius: 999px;
    object-fit: cover;
    background: #efeff1;
}

/* Initialen-Fallback ohne Profilbild */
.eap-team-avatar--initials[b-rigy3u38ab] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #16181c;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.03em;
}

.eap-team-row strong[b-rigy3u38ab] {
    min-width: 0;
    flex: 1;
    color: #16181c;
    font-size: 14px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Markierung des eigenen Eintrags */
.eap-team-me[b-rigy3u38ab] {
    flex-shrink: 0;
    border: 1px solid #16181c;
    border-radius: 999px;
    padding: 2px 9px;
    color: #16181c;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.02em;
}

/* -- Material auf der Baustelle ------------------------------------------------ */

.eap-material[b-rigy3u38ab] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 14px 16px;
}

.eap-material-head[b-rigy3u38ab] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 0 2px;
}

.eap-material-head-text[b-rigy3u38ab] {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.eap-material-head-text strong[b-rigy3u38ab] {
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 17px;
    font-weight: 700;
}

.eap-material-head-text small[b-rigy3u38ab] {
    color: #80858d;
    font-size: 12px;
    font-weight: 700;
}

.eap-material-add[b-rigy3u38ab] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 38px;
    border: 1px solid #16181c;
    border-radius: 999px;
    padding: 0 14px;
    color: #fff;
    background: #16181c;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.4);
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .eap-material-add:hover[b-rigy3u38ab] {
        background: #26282e;
    }
}

.eap-material-add:active[b-rigy3u38ab] {
    transform: scale(0.97);
}

.eap-material-add:focus-visible[b-rigy3u38ab] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.18);
}

.eap-material-empty[b-rigy3u38ab] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    border: 1px solid #efeff1;
    border-radius: 14px;
    padding: 30px 20px;
    background: #f8f8f9;
    text-align: center;
}

.eap-material-empty-icon[b-rigy3u38ab] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 4px;
    border-radius: 14px;
    color: #16181c;
    background: #efeff1;
}

.eap-material-empty strong[b-rigy3u38ab] {
    color: #16181c;
    font-size: 15px;
    font-weight: 700;
}

.eap-material-empty span[b-rigy3u38ab] {
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    max-width: 34ch;
}

/* Artikel-Liste (gruppierte Liste in der Karte) */
.eap-material-list[b-rigy3u38ab] {
    border: 1px solid #efeff1;
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}

.eap-mat + .eap-mat[b-rigy3u38ab] {
    border-top: 1px solid #f0f0f2;
}

.eap-mat-row[b-rigy3u38ab] {
    width: 100%;
    min-height: 60px;
    display: flex;
    align-items: center;
    gap: 12px;
    border: 0;
    padding: 10px 14px;
    color: #16181c;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.13s ease;
}

@media (hover: hover) {
    .eap-mat-row:hover[b-rigy3u38ab] {
        background: #f7f7f9;
    }
}

.eap-mat-row:focus-visible[b-rigy3u38ab] {
    outline: none;
    background: #efeff1;
}

.eap-mat-row:active[b-rigy3u38ab] {
    background: #efeff1;
}

.eap-mat-main[b-rigy3u38ab] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.eap-mat-main strong[b-rigy3u38ab] {
    color: #16181c;
    font-size: 15px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.eap-mat-main small[b-rigy3u38ab] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.eap-mat-rest[b-rigy3u38ab] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    text-align: right;
}

.eap-mat-rest strong[b-rigy3u38ab] {
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 17px;
    font-weight: 700;
}

.eap-mat-rest small[b-rigy3u38ab] {
    color: #80858d;
    font-size: 11px;
    font-weight: 700;
}

.eap-mat-chevron[b-rigy3u38ab] {
    flex-shrink: 0;
    display: inline-flex;
    color: #80858d;
    transition: transform 0.18s ease;
}

.eap-mat--open .eap-mat-chevron[b-rigy3u38ab] {
    transform: rotate(180deg);
}

/* Aufgeklappte Historie */
.eap-mat-detail[b-rigy3u38ab] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 2px 14px 14px;
}

.eap-mat-hist[b-rigy3u38ab] {
    list-style: none;
    margin: 0;
    display: flex;
    flex-direction: column;
    border: 1px solid #efeff1;
    border-radius: 12px;
    padding: 4px 10px;
    background: #f8f8f9;
}

.eap-mat-hist-item[b-rigy3u38ab] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 2px;
}

.eap-mat-hist-item + .eap-mat-hist-item[b-rigy3u38ab] {
    border-top: 1px solid #efeff1;
}

.eap-mat-hist-icon[b-rigy3u38ab] {
    width: 26px;
    height: 26px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: #3c4148;
    background: #efeff1;
}

/* Rückgabe: invertiert, damit die Richtung sofort erkennbar ist */
.eap-mat-hist-icon--zurueck[b-rigy3u38ab] {
    color: #fff;
    background: #16181c;
}

.eap-mat-hist-text[b-rigy3u38ab] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.eap-mat-hist-text strong[b-rigy3u38ab] {
    color: #16181c;
    font-size: 13px;
    font-weight: 700;
}

.eap-mat-hist-text small[b-rigy3u38ab] {
    color: #80858d;
    font-size: 11px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.eap-mat-hist-menge[b-rigy3u38ab] {
    flex-shrink: 0;
    color: #16181c;
    font-size: 13px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.eap-mat-hist-menge--zurueck[b-rigy3u38ab] {
    color: #80858d;
}

.eap-mat-return[b-rigy3u38ab] {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 38px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0 14px;
    color: #16181c;
    background: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .eap-mat-return:hover[b-rigy3u38ab] {
        background: #16181c;
        border-color: #16181c;
        color: #fff;
    }
}

.eap-mat-return:active[b-rigy3u38ab] {
    transform: scale(0.97);
}

.eap-mat-return:focus-visible[b-rigy3u38ab] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

/* -- Ansprechpartner (Unteransicht der Termin-Karte) --------------------------- */

.eap-contacts[b-rigy3u38ab] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px;
}

.eap-contacts-head[b-rigy3u38ab] {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 17px;
    font-weight: 700;
}

.eap-contacts-back[b-rigy3u38ab] {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 0;
    color: #3c4148;
    background: #efeff1;
    font: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .eap-contacts-back:hover[b-rigy3u38ab] {
        background: #16181c;
        color: #fff;
    }
}

.eap-contacts-back:active[b-rigy3u38ab] {
    transform: scale(0.94);
}

.eap-contacts-empty[b-rigy3u38ab] {
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
    padding: 16px 0 8px;
}

.eap-contacts-list[b-rigy3u38ab] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.eap-contact[b-rigy3u38ab] {
    display: flex;
    flex-direction: column;
    gap: 9px;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    padding: 12px 13px;
    background: #f8f8f9;
}

.eap-contact-id[b-rigy3u38ab] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.eap-contact-avatar[b-rigy3u38ab] {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.03em;
}

.eap-contact-name[b-rigy3u38ab] {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.eap-contact-name small[b-rigy3u38ab] {
    color: #80858d;
    font-size: 11px;
    font-weight: 700;
}

.eap-contact-name strong[b-rigy3u38ab] {
    color: #16181c;
    font-size: 15px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.eap-contact-phones[b-rigy3u38ab] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.eap-contact-phone[b-rigy3u38ab] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 36px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0 13px;
    color: #16181c;
    background: #fff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

@media (hover: hover) {
    .eap-contact-phone:hover[b-rigy3u38ab] {
        background: #16181c;
        border-color: #16181c;
        color: #fff;
    }
}

.eap-contact-phone--empty[b-rigy3u38ab] {
    color: #80858d;
    background: transparent;
    border-style: dashed;
}

@media (hover: hover) {
    .eap-contact-phone--empty:hover[b-rigy3u38ab] {
        background: transparent;
        border-color: #e4e4e7;
        color: #80858d;
    }
}

/* -- Notiz-Inhalt (RichTextView) ---------------------------------------------- */

[b-rigy3u38ab] .eap-notiz-content {
    font-size: 14px;
    line-height: 1.5;
    color: #16181c;
    overflow-wrap: anywhere;
}

[b-rigy3u38ab] .eap-notiz-content p {
    margin: 0 0 6px;
}

[b-rigy3u38ab] .eap-notiz-content p:last-child {
    margin-bottom: 0;
}

/* -- Reduzierte Bewegung -------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    .eap-back[b-rigy3u38ab],
    .eap-tab[b-rigy3u38ab],
    .eap-mat-chevron[b-rigy3u38ab],
    .eap-material-add[b-rigy3u38ab],
    .eap-mat-return[b-rigy3u38ab],
    .eap-contacts-back[b-rigy3u38ab] {
        transition: none;
    }
}

/* -- Schmale Geräte -------------------------------------------------------------- */

@media (max-width: 420px) {
    .eap-when-value[b-rigy3u38ab] {
        font-size: 22px;
    }

    .eap-when-stop-body strong[b-rigy3u38ab] {
        font-size: 15px;
    }
}

@media (max-width: 380px) {
    .eap-page[b-rigy3u38ab] {
        padding-right: 12px;
        padding-left: 12px;
    }

    .eap-detail[b-rigy3u38ab],
    .eap-contacts[b-rigy3u38ab] {
        padding: 13px;
    }
}

/* -- Mitarbeiter + Fahrzeuge nebeneinander (Fahrzeug kommt vom Büro, nur lesend) -- */

.eap-crew[b-rigy3u38ab] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    align-items: start;
}

/* Schmale Handys: untereinander, sonst quetschen sich Namen und Kennzeichen */
@media (max-width: 430px) {
    .eap-crew[b-rigy3u38ab] {
        grid-template-columns: 1fr;
    }
}

.eap-fahrzeug-list[b-rigy3u38ab] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.eap-fahrzeug-chip[b-rigy3u38ab] {
    display: inline-flex;
    align-items: baseline;
    gap: 7px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 6px 12px;
    color: #16181c;
    background: #f7f7f8;
}

.eap-fahrzeug-chip svg[b-rigy3u38ab] {
    align-self: center;
    color: #80858d;
}

.eap-fahrzeug-chip strong[b-rigy3u38ab] {
    font-family: ui-monospace, 'Cascadia Mono', Consolas, monospace;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.eap-fahrzeug-chip small[b-rigy3u38ab] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
}
/* /Components/Pages/Employee/EmployeeBoard.razor.rz.scp.css */
/* ============================================================================
   Mitarbeiterbereich — Schwarzes Brett (/mitarbeiter/schwarzesbrett)
   iOS-Look, monochrom. Tokens: page #f5f5f7 · surface #fff · ink #16181c
   ink-soft #3c4148 · muted #80858d · line #e4e4e7 · fill #efeff1
   warnung #a15c00 / #f7ead8 (Wichtig-Aushänge)
============================================================================ */

.ebb-page[b-5dlrwj2wcy] {
    box-sizing: border-box;
    min-height: 100dvh;
    padding: max(16px, env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom));
    /* Hintergrund kommt global von .employee-app-page (app.css) */
    color: #16181c;
    font: 15px/1.45 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-variant-numeric: tabular-nums;
    overflow-x: hidden;
    -webkit-tap-highlight-color: transparent;
}

.ebb-topbar[b-5dlrwj2wcy],
.ebb-empty[b-5dlrwj2wcy],
.ebb-list[b-5dlrwj2wcy] {
    width: min(460px, 100%);
    margin-left: auto;
    margin-right: auto;
}

/* -- Topbar (Zurück + großer Titel) ----------------------------------------- */

.ebb-topbar[b-5dlrwj2wcy] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    padding: 2px 2px 0;
}

.ebb-back[b-5dlrwj2wcy] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    color: #3c4148;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .ebb-back:hover[b-5dlrwj2wcy] {
        background: #efeff1;
        color: #16181c;
    }
}

.ebb-back:focus-visible[b-5dlrwj2wcy] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.ebb-back:active[b-5dlrwj2wcy] {
    transform: scale(0.94);
}

.ebb-topbar-text[b-5dlrwj2wcy] {
    min-width: 0;
}

.ebb-kicker[b-5dlrwj2wcy] {
    display: block;
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ebb-topbar h1[b-5dlrwj2wcy] {
    margin: 1px 0 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 0.2px;
    line-height: 1.1;
}

/* -- Leerer Zustand ------------------------------------------------------------ */

.ebb-empty[b-5dlrwj2wcy] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    border: 1px dashed #e4e4e7;
    border-radius: 20px;
    padding: 22px 16px;
    background: #fff;
    text-align: center;
}

.ebb-empty-ico[b-5dlrwj2wcy] {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    color: #80858d;
    background: #efeff1;
    margin-bottom: 2px;
}

.ebb-empty strong[b-5dlrwj2wcy] {
    color: #16181c;
    font-size: 14px;
    font-weight: 800;
}

.ebb-empty span:last-child[b-5dlrwj2wcy] {
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}

/* -- Aushänge -------------------------------------------------------------------- */

.ebb-list[b-5dlrwj2wcy] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ebb-item[b-5dlrwj2wcy] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    padding: 15px 16px;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
}

/* Wichtige Aushänge: ruhiger Warn-Akzent statt lautem Rot */
.ebb-item--important[b-5dlrwj2wcy] {
    border-color: #ecd9bd;
}

.ebb-flag[b-5dlrwj2wcy] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 26px;
    border-radius: 999px;
    padding: 0 11px;
    color: #a15c00;
    background: #f7ead8;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

/* Inhalt: RichTextView mit globalen .rtc-Styles (wwwroot/app.css) —
   hier keine eigenen Inhalts-Styles mehr. */

.ebb-meta[b-5dlrwj2wcy] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
}

/* -- Schmale Geräte ---------------------------------------------------------------- */

@media (max-width: 380px) {
    .ebb-page[b-5dlrwj2wcy] {
        padding-right: 12px;
        padding-left: 12px;
    }

    .ebb-item[b-5dlrwj2wcy] {
        padding: 13px 14px;
    }
}
/* /Components/Pages/Employee/EmployeeDatePicker.razor.rz.scp.css */
/* ============================================================================
   Mitarbeiterbereich — Datums-Picker (iOS-Look, monochrom)
   Tokens: page #f5f5f7 · surface #fff · ink #16181c · ink-soft #3c4148
           muted #80858d · line #e4e4e7 · fill #efeff1
   Status bleibt semantisch, aber ruhig: Urlaub grün, Krank rot, Feiertag grau.
============================================================================ */

.employee-date-picker[b-r3a3uqum44] {
    position: relative;
    min-width: 0;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* -- Anzeige-Button (Formularzeile) ---------------------------------------- */

.employee-picker-display[b-r3a3uqum44] {
    width: 100%;
    min-height: 62px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3px 10px;
    align-items: center;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    padding: 10px 13px;
    color: #16181c;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.employee-picker-display[b-r3a3uqum44]::after {
    content: "";
    width: 8px;
    height: 8px;
    grid-column: 2;
    grid-row: 1 / 4;
    align-self: center;
    border-right: 2px solid #80858d;
    border-bottom: 2px solid #80858d;
    transform: rotate(45deg) translateY(-2px);
    transition: border-color 0.15s ease;
}

.employee-picker-display span[b-r3a3uqum44],
.employee-picker-display strong[b-r3a3uqum44],
.employee-picker-display small[b-r3a3uqum44] {
    grid-column: 1;
}

.employee-picker-display span[b-r3a3uqum44] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.employee-picker-display strong[b-r3a3uqum44] {
    color: #16181c;
    font-size: 15px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.employee-picker-action[b-r3a3uqum44] {
    width: fit-content;
    min-height: 20px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0 8px;
    color: #3c4148;
    background: #efeff1;
    font-size: 11px;
    font-weight: 700;
}

@media (hover: hover) {
    .employee-picker-display:hover[b-r3a3uqum44] {
        background: #f7f7f9;
        border-color: #d8d8dc;
    }
}


.employee-picker-display:focus-visible[b-r3a3uqum44] {
    outline: none;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.employee-date-picker--open .employee-picker-display[b-r3a3uqum44] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.employee-picker-display:disabled[b-r3a3uqum44] {
    cursor: not-allowed;
    opacity: 0.55;
}

/* -- Kompakte Variante (runder Kalender-Knopf) ------------------------------ */

.employee-date-picker--compact[b-r3a3uqum44] {
    width: 44px;
    flex-shrink: 0;
}

.employee-date-picker--compact .employee-picker-display[b-r3a3uqum44] {
    width: 44px;
    min-height: 44px;
    display: grid;
    grid-template-columns: 1fr;
    place-items: center;
    gap: 0;
    border-radius: 999px;
    padding: 4px 2px 3px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
}

.employee-date-picker--compact .employee-picker-display[b-r3a3uqum44]::after {
    content: none;
}

.employee-date-picker--compact .employee-picker-display span[b-r3a3uqum44],
.employee-date-picker--compact .employee-picker-display strong[b-r3a3uqum44] {
    grid-column: auto;
}

.employee-picker-compact-icon[b-r3a3uqum44] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #3c4148;
    transition: color 0.15s ease;
}

.employee-picker-compact-icon svg[b-r3a3uqum44] {
    width: 15px;
    height: 15px;
}

.employee-date-picker--compact .employee-picker-display strong[b-r3a3uqum44] {
    color: #16181c;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}

@media (hover: hover) {
    .employee-date-picker--compact .employee-picker-display:hover[b-r3a3uqum44] {
        background: #efeff1;
    }
}


.employee-date-picker--compact.employee-date-picker--open .employee-picker-display[b-r3a3uqum44] {
    border-color: #16181c;
    background: #16181c;
    box-shadow: none;
}

.employee-date-picker--compact.employee-date-picker--open .employee-picker-display strong[b-r3a3uqum44],
.employee-date-picker--compact.employee-date-picker--open .employee-picker-compact-icon[b-r3a3uqum44] {
    color: #fff;
}

/* -- Backdrop + Panel ---------------------------------------------------------
   Das Panel liegt IMMER als zentriertes Overlay über einem abgedunkelten
   Backdrop (auf schmalen Geräten als Bottom-Sheet). So kann es nie von
   scrollenden Karten oder Sheets (overflow) abgeschnitten werden. */

.employee-picker-backdrop[b-r3a3uqum44] {
    position: fixed;
    inset: 0;
    z-index: 60;
    border: 0;
    padding: 0;
    background: rgba(15, 16, 18, 0.4);
    cursor: default;
    animation: employeeDatePickerFade-b-r3a3uqum44 0.18s ease backwards;
}

.employee-picker-panel[b-r3a3uqum44] {
    position: fixed;
    z-index: 61;
    top: 50%;
    left: 50%;
    right: auto;
    transform: translate(-50%, -50%);
    width: min(340px, calc(100vw - 32px));
    box-sizing: border-box;
    border: 1px solid #e4e4e7;
    border-radius: 22px;
    padding: 14px;
    background: #fff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
    animation: employeeDatePickerPop-b-r3a3uqum44 0.2s cubic-bezier(0.32, 0.72, 0, 1) backwards;
}

@keyframes employeeDatePickerFade-b-r3a3uqum44 {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes employeeDatePickerPop-b-r3a3uqum44 {
    from { opacity: 0; transform: translate(-50%, -50%) scale(0.96); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

.employee-picker-panel-head[b-r3a3uqum44] {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 38px;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.employee-picker-panel-head strong[b-r3a3uqum44] {
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
}

.employee-picker-panel-head button[b-r3a3uqum44] {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    color: #3c4148;
    background: #efeff1;
    font: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .employee-picker-panel-head button:hover[b-r3a3uqum44] {
        background: #16181c;
        color: #fff;
    }
}


.employee-picker-panel-head button:focus-visible[b-r3a3uqum44] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.employee-picker-panel-head button:active[b-r3a3uqum44] {
    transform: scale(0.94);
}

.employee-picker-panel-head svg[b-r3a3uqum44] {
    width: 18px;
    height: 18px;
}

/* -- Kalender-Raster --------------------------------------------------------- */

.employee-date-weekdays[b-r3a3uqum44],
.employee-date-grid[b-r3a3uqum44] {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 3px;
}

.employee-date-weekdays[b-r3a3uqum44] {
    margin-bottom: 5px;
}

.employee-date-weekdays span[b-r3a3uqum44] {
    color: #80858d;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-align: center;
    text-transform: uppercase;
}

.employee-date-day[b-r3a3uqum44] {
    position: relative;
    aspect-ratio: 1;
    min-width: 0;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 2px;
    border: 0;
    border-radius: 12px;
    padding: 0;
    color: #16181c;
    background: transparent;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.13s ease, color 0.13s ease, transform 0.13s ease;
}

.employee-date-day span[b-r3a3uqum44],
.employee-date-day small[b-r3a3uqum44] {
    display: block;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.employee-date-day small[b-r3a3uqum44] {
    color: currentColor;
    font-size: 8.5px;
    font-weight: 800;
    line-height: 1;
    opacity: 0.8;
}

/* Selektor unter .employee-date-day, damit display:flex die allgemeine
   .employee-date-day span { display:block; overflow:hidden } Regel sicher schlägt (Spezifität). */
.employee-date-day .employee-date-dots[b-r3a3uqum44] {
    --employee-dot-size: 5px;
    --employee-dot-gap: 2px;
    /* Breite für genau 5 Punkte je Reihe (+1px Puffer gegen Sub-Pixel-Umbruch). */
    width: min(calc(5 * var(--employee-dot-size) + 4 * var(--employee-dot-gap) + 1px), 100%);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--employee-dot-gap);
    min-height: var(--employee-dot-size);
    overflow: visible;
    line-height: 0;
}

.employee-date-dot[b-r3a3uqum44] {
    width: var(--employee-dot-size);
    height: var(--employee-dot-size);
    flex-shrink: 0;
    border-radius: 999px;
    box-shadow: 0 0 0 0.5px rgba(22, 24, 28, 0.16);
}

.employee-date-day--selected .employee-date-dot[b-r3a3uqum44] {
    box-shadow: 0 0 0 0.5px rgba(255, 255, 255, 0.55);
}

.employee-date-day:focus-visible[b-r3a3uqum44] {
    outline: none;
    background: #efeff1;
}

@media (hover: hover) {
    .employee-date-day:hover[b-r3a3uqum44] {
        outline: none;
        background: #efeff1;
    }
}


.employee-date-day:active[b-r3a3uqum44] {
    transform: scale(0.94);
}

/* Tage außerhalb des Monats */
.employee-date-day--muted[b-r3a3uqum44] {
    color: #c2c5cb;
}

/* Wochenende + Feiertage: dezent grau */
.employee-date-day--weekend[b-r3a3uqum44],
.employee-date-day--holiday[b-r3a3uqum44] {
    color: #80858d;
    background: #f4f4f6;
}

/* Gearbeitet / Überstunden: monochromer Akzent */
.employee-date-day--work[b-r3a3uqum44],
.employee-date-day--overtime[b-r3a3uqum44] {
    color: #16181c;
    background: #efeff1;
}

/* Urlaub: ruhiges Grün */
.employee-date-day--vacation[b-r3a3uqum44] {
    color: #137a3b;
    background: #dff2e7;
}

/* Freistellung: ruhiges Blau (bezahlt frei, aber kein Urlaubstag) */
.employee-date-day--freistellung[b-r3a3uqum44] {
    color: #2f4b8f;
    background: #eef2fb;
}

/* Krank: ruhiges Rot */
.employee-date-day--sick[b-r3a3uqum44] {
    color: #b3392e;
    background: #fbeae8;
}

/* Ausstehende Anträge: kleiner Warn-Punkt */
.employee-date-day--pending[b-r3a3uqum44]::after {
    content: "";
    position: absolute;
    top: 4px;
    right: 4px;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: #d97706;
    box-shadow: 0 0 0 1.5px #fff;
}

/* Heute: Ring */
.employee-date-day--today[b-r3a3uqum44] {
    box-shadow: inset 0 0 0 1.5px rgba(22, 24, 28, 0.55);
}

/* Ausgewählt: schwarz */
.employee-date-day--selected[b-r3a3uqum44],
.employee-date-day--selected.employee-date-day--work[b-r3a3uqum44],
.employee-date-day--selected.employee-date-day--overtime[b-r3a3uqum44],
.employee-date-day--selected.employee-date-day--vacation[b-r3a3uqum44],
.employee-date-day--selected.employee-date-day--freistellung[b-r3a3uqum44],
.employee-date-day--selected.employee-date-day--sick[b-r3a3uqum44],
.employee-date-day--selected.employee-date-day--weekend[b-r3a3uqum44],
.employee-date-day--selected.employee-date-day--holiday[b-r3a3uqum44] {
    color: #fff;
    background: #16181c;
}

.employee-date-day--selected:focus-visible[b-r3a3uqum44] {
    background: #26282e;
}

@media (hover: hover) {
    .employee-date-day--selected:hover[b-r3a3uqum44] {
        background: #26282e;
    }
}


/* -- Mobil: Picker als Bottom-Sheet ------------------------------------------ */

@media (max-width: 520px) {
    .employee-picker-panel[b-r3a3uqum44] {
        top: auto;
        bottom: max(12px, env(safe-area-inset-bottom));
        transform: translate(-50%, 0);
        width: min(400px, calc(100vw - 24px));
        border-radius: 24px;
        animation: employeeDatePickerSheet-b-r3a3uqum44 240ms cubic-bezier(0.32, 0.72, 0, 1) backwards;
    }
}

@keyframes employeeDatePickerSheet-b-r3a3uqum44 {
    from {
        opacity: 0;
        transform: translate(-50%, 16px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translate(-50%, 0) scale(1);
    }
}
/* /Components/Pages/Employee/EmployeeFahrzeug.razor.rz.scp.css */
/* ============================================================================
   Mitarbeiterbereich — Mein Fahrzeug (/mitarbeiter/fahrzeug), iOS-Look, monochrom
   Tokens: page #f5f5f7 · surface #fff · ink #16181c · ink-soft #3c4148
           muted #80858d · line #e4e4e7 · fill #efeff1
   Fristen bleiben semantisch: überfällig rot, bald fällig warnfarben.
============================================================================ */

.efz-page[b-clh4r77tv0] {
    box-sizing: border-box;
    min-height: 100dvh;
    padding: max(16px, env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom));
    /* Hintergrund kommt global von .employee-app-page (app.css) */
    color: #16181c;
    font: 15px/1.45 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-variant-numeric: tabular-nums;
    overflow-x: hidden;
    -webkit-tap-highlight-color: transparent;
}

.efz-topbar[b-clh4r77tv0],
.efz-section[b-clh4r77tv0] {
    width: min(460px, 100%);
    margin-left: auto;
    margin-right: auto;
}

/* -- Topbar ---------------------------------------------------------------- */

.efz-topbar[b-clh4r77tv0] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    padding: 2px 2px 0;
}

.efz-back[b-clh4r77tv0] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    color: #3c4148;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .efz-back:hover[b-clh4r77tv0] {
        background: #efeff1;
        color: #16181c;
    }
}

.efz-back:focus-visible[b-clh4r77tv0] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.efz-back:active[b-clh4r77tv0] {
    transform: scale(0.94);
}

.efz-topbar-text[b-clh4r77tv0] {
    min-width: 0;
}

.efz-kicker[b-clh4r77tv0] {
    display: block;
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.efz-topbar h1[b-clh4r77tv0] {
    margin: 1px 0 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 0.2px;
    line-height: 1.1;
}

/* -- Abschnitte ------------------------------------------------------------ */

.efz-section[b-clh4r77tv0] {
    margin-bottom: 18px;
}

.efz-section-head[b-clh4r77tv0] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 4px 8px;
}

.efz-h2[b-clh4r77tv0] {
    margin: 0 4px 8px;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 18px;
    font-weight: 700;
}

.efz-section-head .efz-h2[b-clh4r77tv0] {
    margin: 0;
    flex: 1 1 auto;
}

.efz-sublabel[b-clh4r77tv0] {
    display: block;
    margin: 10px 4px 2px;
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.efz-label[b-clh4r77tv0] {
    display: block;
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.efz-card[b-clh4r77tv0] {
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 14px;
    background: #fff;
    box-shadow: 0 8px 22px -18px rgba(0, 0, 0, 0.24);
}

.efz-note[b-clh4r77tv0] {
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
}

/* -- Leerer Zustand -------------------------------------------------------- */

.efz-empty[b-clh4r77tv0] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    border: 1px dashed #e4e4e7;
    border-radius: 16px;
    padding: 26px 18px;
    background: #fff;
    text-align: center;
}

.efz-empty p[b-clh4r77tv0] {
    margin: 0;
    color: #16181c;
    font-size: 14px;
    font-weight: 800;
}

.efz-empty-hint[b-clh4r77tv0] {
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
}

.efz-empty-icon[b-clh4r77tv0] {
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    color: #80858d;
    background: #efeff1;
    margin-bottom: 4px;
}

/* -- Fahrzeugkarte --------------------------------------------------------- */

.efz-hero[b-clh4r77tv0] {
    overflow: hidden;
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 30px -22px rgba(0, 0, 0, 0.3);
}

.efz-hero-photo[b-clh4r77tv0] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 16 / 9;
    background: #efeff1;
    color: #a9adb4;
}

.efz-hero-photo img[b-clh4r77tv0] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.efz-hero-body[b-clh4r77tv0] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 14px 14px;
}

.efz-hero-name[b-clh4r77tv0] {
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 19px;
    font-weight: 700;
}

.efz-hero-meta[b-clh4r77tv0] {
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
}

/* -- Kennzeichen ----------------------------------------------------------- */

.efz-plate[b-clh4r77tv0] {
    position: absolute;
    left: 12px;
    bottom: 12px;
    display: inline-flex;
    align-items: stretch;
    height: 1.85rem;
    border: 1.5px solid #11181f;
    border-radius: 0.35rem;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.28);
}

.efz-plate-eu[b-clh4r77tv0] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    width: 1.05rem;
    padding-bottom: 0.18rem;
    background: #003399;
    color: #fff;
    font-size: 0.56rem;
    font-weight: 700;
    line-height: 1;
}

.efz-plate-stars[b-clh4r77tv0] {
    width: 0.42rem;
    height: 0.42rem;
    margin-top: 0.2rem;
    margin-bottom: 0.12rem;
    border: 1.5px solid #ffd400;
    border-radius: 50%;
}

.efz-plate-no[b-clh4r77tv0] {
    display: flex;
    align-items: center;
    padding: 0 0.55rem;
    color: #11181f;
    font-family: ui-monospace, 'Cascadia Mono', Consolas, monospace;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}

/* -- Kilometerstand -------------------------------------------------------- */

.efz-kmrow[b-clh4r77tv0] {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 12px 12px 12px 14px;
    background: #fff;
    box-shadow: 0 8px 22px -18px rgba(0, 0, 0, 0.24);
}

.efz-kmrow-text[b-clh4r77tv0] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1 1 auto;
}

.efz-km[b-clh4r77tv0] {
    color: #16181c;
    font-size: 20px;
    font-weight: 800;
}

/* -- Fristen --------------------------------------------------------------- */

.efz-fristen[b-clh4r77tv0] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 6px 14px;
}

.efz-frist[b-clh4r77tv0] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f2;
}

.efz-frist:last-child[b-clh4r77tv0] {
    border-bottom: 0;
}

.efz-frist-label[b-clh4r77tv0] {
    flex: 1 1 auto;
    min-width: 0;
    color: #3c4148;
    font-size: 14px;
    font-weight: 600;
}

.efz-chip[b-clh4r77tv0] {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    flex-shrink: 0;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 4px 10px;
    color: #3c4148;
    background: #fff;
    font-size: 12px;
    font-weight: 800;
}

.efz-chip--gelb[b-clh4r77tv0] {
    border-color: #f0c86a;
    color: #7a5300;
    background: #fdf6e5;
}

.efz-chip--rot[b-clh4r77tv0] {
    border-color: #f0a9a4;
    color: #a3231a;
    background: #fdeceb;
}

.efz-chip-note[b-clh4r77tv0] {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    opacity: 0.85;
}

/* -- Meldungen ------------------------------------------------------------- */

.efz-meldungen[b-clh4r77tv0] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.efz-meldung[b-clh4r77tv0] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 12px 14px;
    background: #fff;
    box-shadow: 0 8px 22px -18px rgba(0, 0, 0, 0.24);
}

.efz-meldung--done[b-clh4r77tv0] {
    background: #fafafa;
    box-shadow: none;
}

.efz-meldung-head[b-clh4r77tv0] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.efz-meldung-status[b-clh4r77tv0] {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 3px 9px;
    color: #a3231a;
    background: #fdeceb;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.efz-meldung--done .efz-meldung-status[b-clh4r77tv0] {
    color: #2f6f4e;
    background: #e9f5ee;
}

.efz-meldung-date[b-clh4r77tv0] {
    margin-left: auto;
    color: #80858d;
    font-size: 12px;
    font-weight: 700;
}

.efz-meldung-text[b-clh4r77tv0] {
    margin: 0;
    color: #16181c;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.efz-meldung--done .efz-meldung-text[b-clh4r77tv0] {
    color: #80858d;
}

.efz-meldung-img[b-clh4r77tv0] {
    width: 100%;
    max-height: 180px;
    object-fit: cover;
    border-radius: 12px;
    display: block;
}

.efz-meldung-by[b-clh4r77tv0] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
}

/* -- Werkzeug im Fahrzeug -------------------------------------------------- */

.efz-tools[b-clh4r77tv0] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.efz-tool[b-clh4r77tv0] {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 10px 12px;
    background: #fff;
    box-shadow: 0 8px 22px -18px rgba(0, 0, 0, 0.24);
    color: inherit;
    text-decoration: none;
    transition: background 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .efz-tool:hover[b-clh4r77tv0] {
        background: #fafafa;
    }
}

.efz-tool:active[b-clh4r77tv0] {
    transform: scale(0.99);
}

.efz-tool-thumb[b-clh4r77tv0] {
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 12px;
    background: #efeff1;
    color: #80858d;
}

.efz-tool-thumb img[b-clh4r77tv0] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.efz-tool-body[b-clh4r77tv0] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1 1 auto;
}

.efz-tool-body strong[b-clh4r77tv0] {
    color: #16181c;
    font-size: 14px;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.efz-tool-meta[b-clh4r77tv0] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.efz-tool-chevron[b-clh4r77tv0] {
    flex-shrink: 0;
    color: #c3c6cb;
}

/* -- Buttons --------------------------------------------------------------- */

.efz-btn[b-clh4r77tv0] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 38px;
    flex-shrink: 0;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0 16px;
    color: #16181c;
    background: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease, opacity 0.15s ease;
}

@media (hover: hover) {
    .efz-btn:hover:not(:disabled)[b-clh4r77tv0] {
        background: #efeff1;
    }
}

.efz-btn:active:not(:disabled)[b-clh4r77tv0] {
    transform: scale(0.96);
}

.efz-btn:disabled[b-clh4r77tv0] {
    opacity: 0.45;
    cursor: default;
}

.efz-btn--primary[b-clh4r77tv0] {
    border-color: #16181c;
    color: #fff;
    background: #16181c;
}

@media (hover: hover) {
    .efz-btn--primary:hover:not(:disabled)[b-clh4r77tv0] {
        background: #2a2d33;
    }
}

.efz-btn:focus-visible[b-clh4r77tv0] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.14);
}

/* -- Sheets (Km melden, Mangel melden) ------------------------------------- */

.efz-overlay[b-clh4r77tv0] {
    position: fixed;
    inset: 0;
    z-index: 60;
    border: 0;
    padding: 0;
    background: rgba(15, 16, 18, 0.42);
    cursor: default;
    animation: efzFade-b-clh4r77tv0 0.18s ease backwards;
}

@keyframes efzFade-b-clh4r77tv0 {
    from { opacity: 0; }
    to { opacity: 1; }
}

.efz-sheet[b-clh4r77tv0] {
    position: fixed;
    z-index: 61;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    box-sizing: border-box;
    width: min(460px, 100%);
    max-height: calc(100dvh - 40px);
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow-y: auto;
    overscroll-behavior: none; /* Swipe-Geste übernimmt employeeSheet.js */
    touch-action: pan-y;
    border: 1px solid #e4e4e7;
    border-bottom: 0;
    border-radius: 24px 24px 0 0;
    padding: 22px 18px calc(18px + env(safe-area-inset-bottom));
    background: #fff;
    box-shadow: 0 -18px 50px -20px rgba(0, 0, 0, 0.3);
    animation: efzSheet-b-clh4r77tv0 0.24s cubic-bezier(0.32, 0.72, 0, 1) backwards;
}

@keyframes efzSheet-b-clh4r77tv0 {
    from { opacity: 0.6; transform: translate(-50%, 28px); }
    to { opacity: 1; transform: translateX(-50%); }
}

.efz-grabber[b-clh4r77tv0] {
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    width: 36px;
    height: 5px;
    border-radius: 999px;
    background: #e4e4e7;
}

.efz-sheet-title[b-clh4r77tv0] {
    margin: 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 20px;
    font-weight: 700;
}

.efz-sheet-sub[b-clh4r77tv0] {
    margin: -8px 0 0;
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
}



.efz-field[b-clh4r77tv0] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.efz-field > span[b-clh4r77tv0] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.efz-field > span small[b-clh4r77tv0] {
    font-size: 10px;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
}

.efz-field input[b-clh4r77tv0],
.efz-field textarea[b-clh4r77tv0] {
    box-sizing: border-box;
    width: 100%;
    border: 1px solid transparent;
    border-radius: 12px;
    padding: 11px 13px;
    color: #16181c;
    background: #efeff1;
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.efz-field textarea[b-clh4r77tv0] {
    resize: vertical;
    line-height: 1.45;
}

.efz-field input:focus[b-clh4r77tv0],
.efz-field textarea:focus[b-clh4r77tv0] {
    outline: none;
    border-color: #16181c;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

/* -- Foto-Upload ----------------------------------------------------------- */

.efz-upload[b-clh4r77tv0] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* <input type=file> „visually hidden" verstecken — NICHT via opacity/pointer-events:
   sonst öffnet das Antippen des Labels auf iOS Safari den Dialog nicht. */
.efz-file-input[b-clh4r77tv0] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.efz-upload-btn[b-clh4r77tv0] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 44px;
    border: 1px dashed #cfd0d3;
    border-radius: 14px;
    background: #fff;
    color: #3c4148;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}

@media (hover: hover) {
    .efz-upload-btn:hover[b-clh4r77tv0] {
        border-color: #16181c;
        background: #fafafa;
    }
}

.efz-upload-spinner[b-clh4r77tv0] {
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 2px solid #d4d4d8;
    border-top-color: #16181c;
    animation: efz-spin-b-clh4r77tv0 0.7s linear infinite;
}

@keyframes efz-spin-b-clh4r77tv0 {
    to { transform: rotate(360deg); }
}

.efz-foto-ok[b-clh4r77tv0] {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    padding: 10px 12px;
    color: #2f6f4e;
    background: #f4faf6;
    font-size: 13px;
    font-weight: 800;
}

.efz-foto-del[b-clh4r77tv0] {
    margin-left: auto;
    border: 0;
    padding: 0;
    color: #80858d;
    background: none;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    text-decoration: underline;
    cursor: pointer;
}

.efz-sheet-actions[b-clh4r77tv0] {
    display: flex;
    gap: 8px;
    margin-top: 2px;
}

.efz-sheet-actions .efz-btn[b-clh4r77tv0] {
    flex: 1 1 0;
    height: 44px;
}

/* Ab Tablet mittig als Dialog statt als Sheet am unteren Rand */
@media (min-width: 641px) {
    .efz-sheet[b-clh4r77tv0] {
        top: 50%;
        bottom: auto;
        transform: translate(-50%, -50%);
        border-bottom: 1px solid #e4e4e7;
        border-radius: 24px;
        max-height: calc(100dvh - 80px);
        box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26);
        animation: efzSheetPop-b-clh4r77tv0 0.2s cubic-bezier(0.32, 0.72, 0, 1) backwards;
    }

    @keyframes efzSheetPop-b-clh4r77tv0 {
        from { opacity: 0; transform: translate(-50%, -50%) scale(0.96); }
        to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
    }

    .efz-grabber[b-clh4r77tv0] {
        display: none;
    }
}

/* -- Heute am Termin eingeplant (read-only, kommt aus dem Kalender) --------- */

.efz-heute[b-clh4r77tv0] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 12px 14px;
    background: #fff;
    box-shadow: 0 8px 22px -18px rgba(0, 0, 0, 0.24);
}

.efz-heute-list[b-clh4r77tv0] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.efz-heute-chip[b-clh4r77tv0] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 6px 12px;
    color: #3c4148;
    background: #f7f7f8;
}

.efz-heute-chip strong[b-clh4r77tv0] {
    color: #16181c;
    font-family: ui-monospace, 'Cascadia Mono', Consolas, monospace;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.03em;
}

/* Das eigene Fahrzeug hebt sich ab — sonst sucht man in der Liste. */
.efz-heute-chip--mein[b-clh4r77tv0] {
    border-color: #16181c;
    color: #fff;
    background: #16181c;
}

.efz-heute-chip--mein strong[b-clh4r77tv0] {
    color: #fff;
}

/* -- Mehrere Fahrzeuge: sichtbar getrennte Blöcke --------------------------- */

.efz-section--vehicle[b-clh4r77tv0] {
    margin-bottom: 22px;
}

.efz-section--vehicle + .efz-section--vehicle[b-clh4r77tv0] {
    border-top: 1px solid #e4e4e7;
    padding-top: 20px;
}

.efz-section--vehicle .efz-section-head[b-clh4r77tv0] {
    margin-top: 16px;
}

/* Abschnittskopf, der auf einen Inhaltsblock folgt, braucht Luft nach oben */
.efz-section-head--spaced[b-clh4r77tv0] {
    margin-top: 18px;
}

/* Auswahlliste im Zuweisen-Sheet: gleiche Zeilen wie die Werkzeugliste, nur als Button */
.efz-tools--pick[b-clh4r77tv0] {
    max-height: 46vh;
    overflow-y: auto;
    padding: 2px;
    margin: -2px;
}

.efz-tool--pick[b-clh4r77tv0] {
    width: 100%;
    border: 1px solid #e4e4e7;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.efz-tool--pick .efz-tool-chevron[b-clh4r77tv0] {
    color: #16181c;
}

/* Nur für Screenreader — das Suchfeld beschriftet sich über den Platzhalter */
.efz-sr-only[b-clh4r77tv0] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
/* /Components/Pages/Employee/EmployeeHome.razor.rz.scp.css */
/* ============================================================================
   Mitarbeiterbereich — Start (/mitarbeiter), iOS-App-Look, monochrom
   Tokens: page #f5f5f7 · surface #fff · ink #16181c · ink-soft #3c4148
           muted #80858d · line #e4e4e7 · fill #efeff1
           danger #e2483b / #fbeae8 · success #16a34a · warning #a15c00
   Grammatik: weiß = Fläche, grau = Hover/Soft, schwarz = aktiv/primär.
============================================================================ */

.employee-page[b-bi5jrwg645] {
    box-sizing: border-box;
    min-height: 100dvh;
    padding: max(16px, env(safe-area-inset-top)) 16px max(28px, env(safe-area-inset-bottom));
    /* Hintergrund kommt global von .employee-app-page (app.css) */
    color: #16181c;
    font: 15px/1.45 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-variant-numeric: tabular-nums;
    overflow-x: hidden;
    -webkit-tap-highlight-color: transparent;
}

/* Platz für das schwebende Tab-Dock am unteren Rand */
.employee-page--dock[b-bi5jrwg645] {
    padding-bottom: calc(96px + env(safe-area-inset-bottom));
}

.employee-shell[b-bi5jrwg645] {
    width: min(460px, 100%);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* -- Topbar: Avatar + Name + Push/Logout ---------------------------------- */

.employee-topbar[b-bi5jrwg645] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 2px 2px 0;
}

/* Buttons rechts schrumpfen nie — bei Platzmangel wird stattdessen der Name
   links per Ellipsis (…) abgeschnitten. */
.employee-topbar-actions[b-bi5jrwg645] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.employee-user[b-bi5jrwg645] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 11px;
}

.employee-avatar[b-bi5jrwg645] {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 50%;
    color: #fff;
    background: #16181c;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.4);
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 19px;
    font-weight: 700;
}

/* Klick-Hülle um den Avatar (Button bzw. Label zum Datei-Input des AvatarEditors). */
.employee-avatar-btn[b-bi5jrwg645] {
    position: relative;
    display: inline-flex;
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
}

.employee-avatar--img[b-bi5jrwg645] {
    object-fit: cover;
}

/* Kleines Kamera-Badge unten rechts – signalisiert „Profilbild änderbar" (wie bei Teams). */
.employee-avatar-edit[b-bi5jrwg645] {
    position: absolute;
    right: -3px;
    bottom: -3px;
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #16181c;
    color: #fff;
    box-shadow: 0 0 0 2px #fff;
}

.employee-user-text[b-bi5jrwg645] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.employee-kicker[b-bi5jrwg645],
.employee-page-kicker[b-bi5jrwg645] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.employee-user-text strong[b-bi5jrwg645] {
    color: #16181c;
    font-size: 16px;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.employee-logout-form[b-bi5jrwg645] {
    margin: 0;
    display: inline-flex;
}

/* Gemeinsamer runder Icon-Button der Topbar/Kartenköpfe (Schwarzes Brett,
   Logout, Übersicht) — der Logout färbt seinen Hover destruktiv um. */
.employee-icon-btn[b-bi5jrwg645] {
    position: relative;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0;
    color: #3c4148;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    font: inherit;
    cursor: pointer;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .employee-icon-btn:hover[b-bi5jrwg645] {
        background: #efeff1;
        color: #16181c;
    }

    .employee-icon-btn.employee-logout:hover[b-bi5jrwg645] {
        background: #fbeae8;
        border-color: #f0cdc9;
        color: #e2483b;
    }
}

.employee-icon-btn:focus-visible[b-bi5jrwg645] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.employee-icon-btn:active[b-bi5jrwg645] {
    transform: scale(0.96);
}

/* Info-Button bei offenem Popup: schwarz (aktiv) */
.employee-icon-btn--active[b-bi5jrwg645] {
    border-color: #16181c;
    background: #16181c;
    color: #fff;
}

/* Ungelesen-Punkt am Info-Button (neue Support-Antwort) – schwarz mit weißem Ring,
   im aktiven (schwarzen) Button-Zustand invertiert, damit er sichtbar bleibt. */
.employee-icon-dot[b-bi5jrwg645] {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #16181c;
    box-shadow: 0 0 0 2px #fff;
    pointer-events: none;
}

.employee-icon-btn--active .employee-icon-dot[b-bi5jrwg645] {
    background: #fff;
    box-shadow: 0 0 0 2px #16181c;
}
@media (hover: hover) {
    .employee-icon-btn--active:hover[b-bi5jrwg645] {
        border-color: #16181c;
        background: #16181c;
        color: #fff;
    }
}

/* -- Info-Popup (Schwarzes Brett, Sprit, Wetter, Geburtstage, Team) ----------
   Mittig als Karte über abgedunkeltem Backdrop, auf schmalen Geräten als
   Bottom-Sheet (wegziehbar über employeeSheet.js). */

.employee-hub-backdrop[b-bi5jrwg645] {
    position: fixed;
    inset: 0;
    z-index: 60;
    border: 0;
    padding: 0;
    background: rgba(15, 16, 18, 0.4);
    cursor: default;
    animation: employeeHubFade-b-bi5jrwg645 0.18s ease backwards;
}

@keyframes employeeHubFade-b-bi5jrwg645 {
    from { opacity: 0; }
    to { opacity: 1; }
}

.employee-hub-panel[b-bi5jrwg645] {
    position: fixed;
    z-index: 61;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(400px, calc(100vw - 32px));
    box-sizing: border-box;
    border: 1px solid #e4e4e7;
    border-radius: 24px;
    padding: 14px 14px 12px;
    background: #fff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
    animation: employeeHubPop-b-bi5jrwg645 0.2s cubic-bezier(0.32, 0.72, 0, 1) backwards;
}

@keyframes employeeHubPop-b-bi5jrwg645 {
    from { opacity: 0; transform: translate(-50%, -50%) scale(0.96); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

/* Grabber nur im Sheet-Modus sichtbar */
.employee-hub-grabber[b-bi5jrwg645] {
    display: none;
}

.employee-hub-head[b-bi5jrwg645] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 2px 6px 10px;
}

.employee-hub-kicker[b-bi5jrwg645] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.employee-hub-head strong[b-bi5jrwg645] {
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.15;
}

.employee-hub-list[b-bi5jrwg645] {
    display: flex;
    flex-direction: column;
}

.employee-hub-item + .employee-hub-item[b-bi5jrwg645] {
    border-top: 1px solid #f0f0f2;
}

.employee-hub-item[b-bi5jrwg645] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 58px;
    border-radius: 14px;
    padding: 8px 6px;
    color: #16181c;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.13s ease;
}

@media (hover: hover) {
    .employee-hub-item:hover[b-bi5jrwg645] {
        background: #f7f7f9;
    }
}

.employee-hub-item:focus-visible[b-bi5jrwg645] {
    outline: none;
    background: #efeff1;
}

.employee-hub-item:active[b-bi5jrwg645] {
    background: #efeff1;
}

.employee-hub-ico[b-bi5jrwg645] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    color: #16181c;
    background: #efeff1;
    transition: background 0.13s ease, color 0.13s ease;
}

@media (hover: hover) {
    .employee-hub-item:hover .employee-hub-ico[b-bi5jrwg645] {
        background: #16181c;
        color: #fff;
    }
}

.employee-hub-text[b-bi5jrwg645] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.employee-hub-text strong[b-bi5jrwg645] {
    color: #16181c;
    font-size: 15px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.employee-hub-text small[b-bi5jrwg645] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Ungelesen-Punkt/Zähler am Support-Eintrag */
.employee-hub-badge[b-bi5jrwg645] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    color: #fff;
    background: #16181c;
    font-size: 11px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.employee-hub-chevron[b-bi5jrwg645] {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    color: #c7cad0;
    transition: transform 0.15s ease, color 0.15s ease;
}

@media (hover: hover) {
    .employee-hub-item:hover .employee-hub-chevron[b-bi5jrwg645] {
        transform: translateX(2px);
        color: #16181c;
    }
}

/* Mobil: Popup als Bottom-Sheet */
@media (max-width: 520px) {
    .employee-hub-panel[b-bi5jrwg645] {
        top: auto;
        bottom: 0;
        transform: translate(-50%, 0);
        width: 100vw;
        border-radius: 26px 26px 0 0;
        border-bottom: 0;
        padding: 8px 14px calc(12px + env(safe-area-inset-bottom));
        animation: employeeHubSheet-b-bi5jrwg645 240ms cubic-bezier(0.32, 0.72, 0, 1) backwards;
    }

    .employee-hub-grabber[b-bi5jrwg645] {
        display: block;
        width: 40px;
        height: 4px;
        margin: 2px auto 8px;
        border-radius: 999px;
        background: #e4e4e7;
    }
}

@keyframes employeeHubSheet-b-bi5jrwg645 {
    from { opacity: 0; transform: translate(-50%, 24px); }
    to { opacity: 1; transform: translate(-50%, 0); }
}

/* -- Karten (gemeinsame Fläche) -------------------------------------------- */

.employee-time-card[b-bi5jrwg645],
.employee-actions[b-bi5jrwg645] {
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    padding: 16px;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
}

.employee-section-head[b-bi5jrwg645] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.employee-section-head h2[b-bi5jrwg645] {
    margin: 2px 0 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.2px;
    line-height: 1.1;
}

/* -- Stempeluhr ------------------------------------------------------------ */

.employee-time-head[b-bi5jrwg645] {
    align-items: center;
    margin-bottom: 4px;
}

.employee-time-head-actions[b-bi5jrwg645] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.employee-live-pill[b-bi5jrwg645] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 28px;
    border-radius: 999px;
    padding: 0 11px;
    color: #137a3b;
    background: #dff2e7;
    font-size: 12px;
    font-weight: 800;
}

.employee-live-dot[b-bi5jrwg645] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #16a34a;
    animation: employeeLivePulse-b-bi5jrwg645 1.6s ease-in-out infinite;
}

.employee-live-pill--pause[b-bi5jrwg645] {
    color: #3c4148;
    background: #efeff1;
}

.employee-live-pill--pause .employee-live-dot[b-bi5jrwg645] {
    background: #80858d;
    animation: none;
}

@keyframes employeeLivePulse-b-bi5jrwg645 {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.35; }
}

.employee-time-hero[b-bi5jrwg645] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 10px 0 18px;
    text-align: center;
}

.employee-time-hero-label[b-bi5jrwg645] {
    color: #80858d;
    font-size: 12px;
    font-weight: 700;
}

.employee-time-hero-value[b-bi5jrwg645] {
    display: inline-flex;
    align-items: baseline;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: clamp(38px, 11vw, 46px);
    font-weight: 700;
    letter-spacing: -0.5px;
    line-height: 1.05;
    font-variant-numeric: tabular-nums;
}

/* Live-Stoppuhr: Sekunden kleiner als Stunden/Minuten, Millisekunden noch kleiner */
.employee-clock-sec[b-bi5jrwg645] {
    font-size: 0.62em;
    color: #3c4148;
}

.employee-clock-msec[b-bi5jrwg645] {
    min-width: 4ch; /* .000 — verhindert Zittern der Zeile beim Hochzählen */
    font-size: 0.4em;
    color: #80858d;
    text-align: left;
}

.employee-time-hero-target[b-bi5jrwg645] {
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
}

/* -- Stempel-Buttons -------------------------------------------------------- */

.employee-clock-control[b-bi5jrwg645] {
    border-radius: 999px;
}

.employee-clock-actions[b-bi5jrwg645] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.employee-clock-actions--pause[b-bi5jrwg645] {
    grid-template-columns: 1fr;
}

.employee-primary-action[b-bi5jrwg645] {
    width: 100%;
    min-height: 52px;
    border: 1px solid #16181c;
    border-radius: 999px;
    color: #fff;
    background: #16181c;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.4);
    font: inherit;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    transform-origin: center;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .employee-primary-action:hover[b-bi5jrwg645] {
        background: #26282e;
    }
}


.employee-primary-action:focus-visible[b-bi5jrwg645] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.18);
}

.employee-primary-action:active[b-bi5jrwg645] {
    transform: scale(0.98);
}

/* Pause beginnen: helle Fläche */
.employee-primary-action--break[b-bi5jrwg645] {
    border-color: #e4e4e7;
    color: #16181c;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
}

@media (hover: hover) {
    .employee-primary-action--break:hover[b-bi5jrwg645] {
        background: #efeff1;
    }
}


/* Ausstempeln: ruhig, aber als Abschluss erkennbar (destruktive Färbung) */
.employee-primary-action--stop[b-bi5jrwg645] {
    border-color: #f0cdc9;
    color: #e2483b;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
}

@media (hover: hover) {
    .employee-primary-action--stop:hover[b-bi5jrwg645] {
        background: #fbeae8;
    }
}


.employee-primary-action:disabled[b-bi5jrwg645] {
    cursor: not-allowed;
    opacity: 0.55;
    transform: none;
}

/* Übergangs-Animationen der Stempeluhr (Zustände aus dem Code-Behind) */
.employee-clock-stage--clock-in-collapse .employee-primary-action--clock[b-bi5jrwg645] {
    animation: employeeClockCollapse-b-bi5jrwg645 0.17s ease-in forwards;
}

.employee-clock-stage--clock-in .employee-primary-action--break[b-bi5jrwg645] {
    animation: employeeButtonSlideLeftIn-b-bi5jrwg645 0.34s cubic-bezier(0.2, 1.15, 0.42, 1) both;
}

.employee-clock-stage--clock-in .employee-primary-action--stop[b-bi5jrwg645],
.employee-clock-stage--end-break .employee-primary-action--stop[b-bi5jrwg645] {
    animation: employeeButtonSlideRightIn-b-bi5jrwg645 0.34s cubic-bezier(0.2, 1.15, 0.42, 1) both;
}

.employee-clock-stage--start-break .employee-primary-action--resume[b-bi5jrwg645] {
    transform-origin: left center;
    animation: employeePauseExpandRight-b-bi5jrwg645 0.34s cubic-bezier(0.25, 1.18, 0.42, 1) both;
}

.employee-clock-stage--end-break .employee-primary-action--break[b-bi5jrwg645] {
    transform-origin: left center;
    animation: employeePauseContractLeft-b-bi5jrwg645 0.34s cubic-bezier(0.25, 1.18, 0.42, 1) both;
}

.employee-clock-stage--clock-out .employee-primary-action--clock[b-bi5jrwg645] {
    transform-origin: right center;
    animation: employeeClockExpandLeft-b-bi5jrwg645 0.34s cubic-bezier(0.25, 1.18, 0.42, 1) both;
}

@keyframes employeeClockCollapse-b-bi5jrwg645 {
    from { opacity: 1; transform: scaleX(1); }
    to { opacity: 0.72; transform: scaleX(0.08); }
}

@keyframes employeeButtonSlideLeftIn-b-bi5jrwg645 {
    from { opacity: 0; transform: translateX(-112%) scaleX(0.72); }
    to { opacity: 1; transform: translateX(0) scaleX(1); }
}

@keyframes employeeButtonSlideRightIn-b-bi5jrwg645 {
    from { opacity: 0; transform: translateX(112%) scaleX(0.72); }
    to { opacity: 1; transform: translateX(0) scaleX(1); }
}

@keyframes employeePauseExpandRight-b-bi5jrwg645 {
    from { opacity: 0.95; transform: scaleX(0.48); }
    to { opacity: 1; transform: scaleX(1); }
}

@keyframes employeePauseContractLeft-b-bi5jrwg645 {
    from { opacity: 1; transform: scaleX(2.08); }
    to { opacity: 1; transform: scaleX(1); }
}

@keyframes employeeClockExpandLeft-b-bi5jrwg645 {
    from { opacity: 0.95; transform: translateX(calc(50% + 4px)) scaleX(0.48); }
    to { opacity: 1; transform: translateX(0) scaleX(1); }
}

/* -- Terminliste (gruppierte iOS-Liste) ------------------------------------ */

.employee-orders-card[b-bi5jrwg645] {
    display: flex;
    flex-direction: column;
}

.employee-orders-head[b-bi5jrwg645] {
    align-items: center;
    margin-bottom: 10px;
}

/* Status-Pills des gewählten Tages (Urlaub/Freistellung/Krank/Freizeit/Feiertag) –
   gleiche Optik wie die Tages-Pills auf /mitarbeiter/uebersicht. */
.employee-orders-pills[b-bi5jrwg645] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}

.employee-orders-pill[b-bi5jrwg645] {
    display: inline-flex;
    align-items: center;
    height: 28px;
    border-radius: 999px;
    padding: 0 12px;
    font-size: 12px;
    font-weight: 800;
}

.employee-orders-pill--vacation[b-bi5jrwg645] { color: #137a3b; background: #dff2e7; }
.employee-orders-pill--freistellung[b-bi5jrwg645] { color: #2f4b8f; background: #eef2fb; }
.employee-orders-pill--sick[b-bi5jrwg645] { color: #b3392e; background: #fbeae8; }
.employee-orders-pill--holiday[b-bi5jrwg645] { color: #3c4148; background: #efeff1; }

.employee-orders-empty[b-bi5jrwg645] {
    margin: 0 -16px -16px;
    border-top: 1px solid #f0f0f2;
    padding: 16px;
    color: #80858d;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
}

.employee-order-list[b-bi5jrwg645] {
    margin: 0 -16px -16px;
    border-top: 1px solid #f0f0f2;
}

.employee-order-item + .employee-order-item[b-bi5jrwg645] {
    border-top: 1px solid #f0f0f2;
}

.employee-order-item:last-child[b-bi5jrwg645] {
    border-radius: 0 0 19px 19px;
    overflow: hidden;
}

.employee-order-button[b-bi5jrwg645] {
    width: 100%;
    min-height: 60px;
    display: flex;
    align-items: center;
    gap: 12px;
    border: 0;
    padding: 10px 16px;
    color: #16181c;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.13s ease;
}

@media (hover: hover) {
    .employee-order-button:hover[b-bi5jrwg645] {
        background: #f7f7f9;
    }
}


.employee-order-button:focus-visible[b-bi5jrwg645] {
    outline: none;
    background: #efeff1;
}

.employee-order-button:active[b-bi5jrwg645] {
    background: #efeff1;
}

.employee-feature-icon[b-bi5jrwg645] {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 12px;
    color: #16181c;
    background: #efeff1;
    transition: background 0.13s ease, color 0.13s ease;
}

@media (hover: hover) {
    .employee-order-button:hover .employee-feature-icon[b-bi5jrwg645] {
        background: #16181c;
        color: #fff;
    }
}


.employee-order-main[b-bi5jrwg645] {
    min-width: 0;
    flex: 1;
}

.employee-order-main strong[b-bi5jrwg645],
.employee-order-main small[b-bi5jrwg645] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.employee-order-main strong[b-bi5jrwg645] {
    color: #16181c;
    font-size: 15px;
    font-weight: 700;
}

.employee-order-main small[b-bi5jrwg645] {
    margin-top: 2px;
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
}

.employee-order-chevron[b-bi5jrwg645] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #c7cad0;
}

/* -- Ressourcen-Kacheln (Werkzeug / Lager) --------------------------------- */

.employee-resource-grid[b-bi5jrwg645] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.employee-resource-tile[b-bi5jrwg645] {
    position: relative;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 13px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    background: #fff;
    color: #16181c;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

@media (hover: hover) {
    .employee-resource-tile:hover[b-bi5jrwg645] {
        background: #efeff1;
        box-shadow: 0 8px 24px -12px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.04);
    }
}


.employee-resource-tile:focus-visible[b-bi5jrwg645] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.employee-resource-tile:active[b-bi5jrwg645] {
    transform: scale(0.98);
}


.employee-resource-text[b-bi5jrwg645] {
    min-width: 0;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.employee-resource-text strong[b-bi5jrwg645] {
    color: #16181c;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;
}

.employee-resource-text small[b-bi5jrwg645] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.employee-resource-arrow[b-bi5jrwg645] {
    position: absolute;
    top: 12px;
    right: 10px;
    display: inline-flex;
    color: #c7cad0;
    transition: transform 0.15s ease, color 0.15s ease;
}

@media (hover: hover) {
    .employee-resource-tile:hover .employee-resource-arrow[b-bi5jrwg645] {
        transform: translateX(2px);
        color: #16181c;
    }
}


/* -- Schmale Geräte ---------------------------------------------------------- */

@media (max-width: 380px) {
    .employee-page[b-bi5jrwg645] {
        padding-right: 12px;
        padding-left: 12px;
    }

    .employee-time-card[b-bi5jrwg645],
    .employee-actions[b-bi5jrwg645] {
        padding: 14px;
    }

    .employee-orders-empty[b-bi5jrwg645],
    .employee-order-list[b-bi5jrwg645] {
        margin: 0 -14px -14px;
    }

    .employee-order-button[b-bi5jrwg645] {
        padding: 10px 14px;
    }

    .employee-resource-grid[b-bi5jrwg645] {
        gap: 8px;
    }
}

/* -- Mitteilungen: Büro-Änderungen an Zeiten/Urlaub/Krank ------------------ */

.employee-officechange-list[b-bi5jrwg645] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.employee-officechange[b-bi5jrwg645] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 14px;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    background: #fff;
}

.employee-officechange-head[b-bi5jrwg645] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.employee-officechange-head strong[b-bi5jrwg645] {
    font-size: 0.98rem;
    color: #16181c;
}

.employee-officechange-head span[b-bi5jrwg645] {
    font-size: 0.82rem;
    font-weight: 600;
    color: #80858d;
    font-variant-numeric: tabular-nums;
}

.employee-officechange-row[b-bi5jrwg645] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    font-size: 0.88rem;
}

.employee-officechange-row small[b-bi5jrwg645] {
    flex: 0 0 58px;
    font-weight: 700;
    color: #80858d;
}

.employee-officechange-row span[b-bi5jrwg645] {
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.employee-officechange-note[b-bi5jrwg645] {
    padding: 7px 10px;
    border-radius: 10px;
    background: #f5f5f7;
    color: #4b4f55;
    font-size: 0.85rem;
    line-height: 1.4;
}

.employee-officechange-foot[b-bi5jrwg645] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.employee-officechange-foot small[b-bi5jrwg645] {
    color: #80858d;
    font-size: 0.78rem;
}

.employee-officechange-ack[b-bi5jrwg645] {
    border: 1px solid #16181c;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    padding: 6px 16px;
    font-size: 0.86rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .12s ease;
}

.employee-officechange-ack:disabled[b-bi5jrwg645] {
    opacity: .45;
    cursor: not-allowed;
}

@media (hover: hover) {
    .employee-officechange-ack:not(:disabled):hover[b-bi5jrwg645] {
        background: #303338;
    }
}

/* Fahrzeugkachel: Foto füllt die linke Seite, Text steht rechts daneben */
.employee-resource-tile--vehicle[b-bi5jrwg645] {
    flex-direction: row;
    align-items: stretch;
    gap: 12px;
    padding: 0;
    overflow: hidden;
}

.employee-vehicle-photo[b-bi5jrwg645] {
    width: 108px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    min-height: 84px;
    background: #efeff1;
    color: #a9adb4;
}

.employee-vehicle-photo img[b-bi5jrwg645] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.employee-vehicle-text[b-bi5jrwg645] {
    align-self: center;
    padding: 12px 30px 12px 0;
    gap: 2px;
}

.employee-vehicle-text strong[b-bi5jrwg645] {
    font-size: 17px;
    letter-spacing: 0.2px;
}

/* Hover färbt nur die Kachel, nicht die Fotofläche */
@media (hover: hover) {
    .employee-resource-tile--vehicle:hover .employee-vehicle-photo[b-bi5jrwg645] {
        background: #efeff1;
    }
}

@media (max-width: 420px) {
    .employee-vehicle-photo[b-bi5jrwg645] {
        width: 92px;
        min-height: 76px;
    }
}

/* Fahrzeuge stehen immer untereinander in voller Breite */
.employee-resource-grid--stack[b-bi5jrwg645] {
    grid-template-columns: 1fr;
}

/* Kachel-Untertitel als Warnung (fällige Frist / offener Mangel am Fahrzeug) */
.employee-resource-warn[b-bi5jrwg645] {
    color: #a3231a !important;
    font-weight: 800;
}
/* /Components/Pages/Employee/EmployeeInfo.razor.rz.scp.css */
/* ============================================================================
   Mitarbeiterbereich — Infoseite (/mitarbeiter/infos/{bereich})
   iOS-Look, monochrom. Tokens: page #f5f5f7 · surface #fff · ink #16181c
   ink-soft #3c4148 · muted #80858d · line #e4e4e7 · fill #efeff1
   Akzente bleiben ruhig: Live-Grün #16a34a, Chart-Farben wie im Dashboard.
============================================================================ */

.eif-page[b-34pg3hls1v] {
    box-sizing: border-box;
    min-height: 100dvh;
    padding: max(16px, env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom));
    /* Hintergrund kommt global von .employee-app-page (app.css) */
    color: #16181c;
    font: 15px/1.45 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-variant-numeric: tabular-nums;
    overflow-x: hidden;
    -webkit-tap-highlight-color: transparent;
}

.eif-topbar[b-34pg3hls1v],
.eif-empty[b-34pg3hls1v],
.eif-loading[b-34pg3hls1v],
.eif-meta-line[b-34pg3hls1v],
.eif-group-label[b-34pg3hls1v],
.eif-list[b-34pg3hls1v],
.eif-card[b-34pg3hls1v] {
    width: min(460px, 100%);
    margin-left: auto;
    margin-right: auto;
}

/* -- Topbar (Zurück + großer Titel) ----------------------------------------- */

.eif-topbar[b-34pg3hls1v] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    padding: 2px 2px 0;
}

.eif-back[b-34pg3hls1v] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    color: #3c4148;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .eif-back:hover[b-34pg3hls1v] {
        background: #efeff1;
        color: #16181c;
    }
}

.eif-back:focus-visible[b-34pg3hls1v] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.eif-back:active[b-34pg3hls1v] {
    transform: scale(0.94);
}

.eif-topbar-text[b-34pg3hls1v] {
    min-width: 0;
}

.eif-kicker[b-34pg3hls1v] {
    display: block;
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.eif-topbar h1[b-34pg3hls1v] {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 1px 0 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 26px;
    font-weight: 700;
    letter-spacing: 0.2px;
    line-height: 1.12;
}

/* Zähler-Pill neben dem Titel („Wer arbeitet jetzt") */
.eif-count[b-34pg3hls1v] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    flex-shrink: 0;
    border-radius: 999px;
    padding: 0 9px;
    color: #fff;
    background: #16181c;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 800;
}

/* -- Leer-/Ladezustände ------------------------------------------------------- */

.eif-empty[b-34pg3hls1v] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    border: 1px dashed #e4e4e7;
    border-radius: 20px;
    padding: 22px 16px;
    background: #fff;
    text-align: center;
}

.eif-empty-ico[b-34pg3hls1v] {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    color: #80858d;
    background: #efeff1;
    margin-bottom: 2px;
}

.eif-empty strong[b-34pg3hls1v] {
    color: #16181c;
    font-size: 14px;
    font-weight: 800;
}

.eif-empty span:last-child[b-34pg3hls1v] {
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}

.eif-loading[b-34pg3hls1v] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 34px 16px;
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
}

.eif-spinner[b-34pg3hls1v] {
    width: 16px;
    height: 16px;
    border: 2.2px solid #e4e4e7;
    border-top-color: #16181c;
    border-radius: 50%;
    animation: eifSpin-b-34pg3hls1v 0.7s linear infinite;
}

@keyframes eifSpin-b-34pg3hls1v {
    to { transform: rotate(360deg); }
}

/* -- Karten & gemeinsame Bausteine --------------------------------------------- */

.eif-card[b-34pg3hls1v] {
    box-sizing: border-box;
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    padding: 15px 16px;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
}

.eif-card + .eif-card[b-34pg3hls1v],
.eif-list + .eif-card[b-34pg3hls1v],
.eif-card + .eif-group-label[b-34pg3hls1v],
.eif-rows + .eif-group-label[b-34pg3hls1v] {
    margin-top: 12px;
}

.eif-card-kicker[b-34pg3hls1v] {
    display: block;
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.eif-meta-line[b-34pg3hls1v] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
    padding: 0 4px;
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
}

.eif-meta-line a[b-34pg3hls1v] {
    color: #80858d;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.eif-group-label[b-34pg3hls1v] {
    margin-bottom: 8px;
    padding: 0 4px;
    color: #80858d;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.eif-group-label:not(:first-of-type)[b-34pg3hls1v] {
    margin-top: 14px;
}

.eif-list[b-34pg3hls1v] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Zeilen-Karten (Geburtstage, Team): Trennlinien statt Einzelkarten */
.eif-rows[b-34pg3hls1v] {
    padding: 5px 16px;
}

.eif-rows > div + div[b-34pg3hls1v] {
    border-top: 1px solid #f0f0f2;
}

/* -- Verlaufs-Karte (Sprit + Wetter) -------------------------------------------- */

.eif-hist[b-34pg3hls1v] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.eif-hist-head[b-34pg3hls1v] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}

.eif-range[b-34pg3hls1v] {
    display: inline-flex;
    gap: 3px;
    padding: 3px;
    background: #efeff1;
    border-radius: 999px;
}

.eif-range-btn[b-34pg3hls1v] {
    border: 0;
    border-radius: 999px;
    padding: 6px 12px;
    background: transparent;
    color: #80858d;
    font: inherit;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.14s ease, color 0.14s ease, box-shadow 0.14s ease;
}

@media (hover: hover) {
    .eif-range-btn:hover[b-34pg3hls1v] {
        color: #16181c;
    }
}

.eif-range-btn:focus-visible[b-34pg3hls1v] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.eif-range-btn.is-active[b-34pg3hls1v] {
    background: #16181c;
    color: #fff;
}

.eif-hist-note[b-34pg3hls1v] {
    margin: 0;
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
}

/* -- Sprit: Tankstellen-Karten ---------------------------------------------------- */

.efl-station[b-34pg3hls1v] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.efl-station.is-closed[b-34pg3hls1v] {
    opacity: 0.62;
}

.efl-station-head[b-34pg3hls1v] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.efl-open[b-34pg3hls1v] {
    width: 9px;
    height: 9px;
    flex-shrink: 0;
    border-radius: 50%;
    background: #c7cad0;
}

.efl-open.is-open[b-34pg3hls1v] {
    background: #16a34a;
    box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.14);
}

.efl-station-text[b-34pg3hls1v] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.efl-station-text strong[b-34pg3hls1v] {
    color: #16181c;
    font-size: 15px;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.efl-station-text small[b-34pg3hls1v] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.efl-closed-badge[b-34pg3hls1v] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    height: 24px;
    border-radius: 999px;
    padding: 0 10px;
    color: #3c4148;
    background: #efeff1;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.efl-prices[b-34pg3hls1v] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.efl-price[b-34pg3hls1v] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    border-radius: 14px;
    padding: 10px 6px 9px;
    background: #f5f5f7;
    text-align: center;
}

.efl-price span[b-34pg3hls1v] {
    color: #80858d;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    white-space: nowrap;
}

.efl-price strong[b-34pg3hls1v] {
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 21px;
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

/* Preis-Innenleben kommt als MarkupString (ohne Scope-Attribut) → ::deep */
.efl-price strong[b-34pg3hls1v]  .efl-tenth {
    font-size: 0.58em;
    font-weight: 700;
    vertical-align: super;
    margin-left: 1px;
}

.efl-price strong[b-34pg3hls1v]  .efl-na {
    color: #c7cad0;
    font-weight: 600;
}

/* -- Wetter: Hero ------------------------------------------------------------------ */

.ewx-hero-card[b-34pg3hls1v] {
    display: flex;
    flex-direction: column;
    gap: 13px;
}

.ewx-hero[b-34pg3hls1v] {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
}

/* Glyph kommt als MarkupString (ohne Scope-Attribut) → Größe + Animationen via ::deep */
.ewx-glyph[b-34pg3hls1v] {
    display: inline-flex;
    flex-shrink: 0;
}

.ewx-glyph[b-34pg3hls1v]  .wx-glyph {
    display: block;
    width: 74px;
    height: 74px;
    color: #16181c;
}

.ewx-hero-main[b-34pg3hls1v] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ewx-temp[b-34pg3hls1v] {
    display: flex;
    align-items: flex-start;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 52px;
    font-weight: 700;
    letter-spacing: -1px;
    line-height: 0.95;
    font-variant-numeric: tabular-nums;
}

.ewx-deg[b-34pg3hls1v] {
    margin-top: 4px;
    color: #80858d;
    font-size: 26px;
    font-weight: 600;
}

.ewx-desc[b-34pg3hls1v] {
    color: #16181c;
    font-size: 15px;
    font-weight: 700;
}

.ewx-meta[b-34pg3hls1v] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ewx-chip[b-34pg3hls1v] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    border-radius: 999px;
    padding: 0 11px;
    color: #3c4148;
    background: #efeff1;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.ewx-chip svg[b-34pg3hls1v] {
    width: 13px;
    height: 13px;
    flex-shrink: 0;
    color: #80858d;
}

.ewx-stand[b-34pg3hls1v] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
}

/* Glyph-Animationen (Sonne dreht, Wolke driftet, Regen/Schnee fällt, Blitz blinkt) */
.ewx-glyph[b-34pg3hls1v]  .wx-rays {
    transform-box: fill-box;
    transform-origin: center;
    animation: eifSpin-b-34pg3hls1v 26s linear infinite;
}

/* „Teils bewölkt": die Strahlen sitzen nur über der Wolke, der Mittelpunkt ihres Rahmens ist
   also nicht der Sonnenkern — ein Rundlauf würde sichtbar wackeln und unten hinter der Wolke
   hervorlugen. Darum hier Glimmen statt Drehen. */
.ewx-glyph[b-34pg3hls1v]  .wx-glyph--partly .wx-rays {
    animation: eifWxGlow-b-34pg3hls1v 3.4s ease-in-out infinite;
}

@keyframes eifWxGlow-b-34pg3hls1v {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 1; }
}

.ewx-glyph[b-34pg3hls1v]  .wx-glyph--sun .wx-core,
.ewx-glyph[b-34pg3hls1v]  .wx-glyph--partly .wx-core {
    transform-box: fill-box;
    transform-origin: center;
    animation: eifWxPulse-b-34pg3hls1v 3s ease-in-out infinite;
}

@keyframes eifWxPulse-b-34pg3hls1v {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.09); }
}

.ewx-glyph[b-34pg3hls1v]  .wx-glyph--cloud,
.ewx-glyph[b-34pg3hls1v]  .wx-glyph--fog {
    animation: eifWxDrift-b-34pg3hls1v 6s ease-in-out infinite;
}

/* Bei „teils bewölkt" zieht nur die Wolke vor der Sonne vorbei, nicht das ganze Glyph. */
.ewx-glyph[b-34pg3hls1v]  .wx-glyph--partly .wx-cloud {
    animation: eifWxDrift-b-34pg3hls1v 6s ease-in-out infinite;
}

@keyframes eifWxDrift-b-34pg3hls1v {
    0%, 100% { transform: translateX(-1.3px); }
    50% { transform: translateX(1.3px); }
}

.ewx-glyph[b-34pg3hls1v]  .wx-drops path {
    animation: eifWxFall-b-34pg3hls1v 1.3s ease-in-out infinite;
}

.ewx-glyph[b-34pg3hls1v]  .wx-drops path:nth-child(2) { animation-delay: 0.25s; }
.ewx-glyph[b-34pg3hls1v]  .wx-drops path:nth-child(3) { animation-delay: 0.5s; }

@keyframes eifWxFall-b-34pg3hls1v {
    0% { transform: translateY(-2px); opacity: 0; }
    30% { opacity: 1; }
    100% { transform: translateY(3px); opacity: 0; }
}

.ewx-glyph[b-34pg3hls1v]  .wx-flakes circle {
    animation: eifWxFall-b-34pg3hls1v 2.4s ease-in-out infinite;
}

.ewx-glyph[b-34pg3hls1v]  .wx-flakes circle:nth-child(2) { animation-delay: 0.6s; }
.ewx-glyph[b-34pg3hls1v]  .wx-flakes circle:nth-child(3) { animation-delay: 1.1s; }

.ewx-glyph[b-34pg3hls1v]  .wx-glyph--storm .wx-bolt {
    animation: eifWxFlash-b-34pg3hls1v 2.8s steps(1, end) infinite;
}

@keyframes eifWxFlash-b-34pg3hls1v {
    0%, 7%, 15%, 100% { opacity: 1; }
    4%, 11% { opacity: 0.25; }
}

.ewx-glyph[b-34pg3hls1v]  .wx-fog path {
    animation: eifWxFog-b-34pg3hls1v 4s ease-in-out infinite;
}

.ewx-glyph[b-34pg3hls1v]  .wx-fog path:nth-child(2) { animation-delay: 0.6s; }

@keyframes eifWxFog-b-34pg3hls1v {
    0%, 100% { transform: translateX(-1.6px); opacity: 0.65; }
    50% { transform: translateX(1.6px); opacity: 1; }
}

/* Kein prefers-reduced-motion-Riegel: das Glyph soll überall gleich leben (wie im Dashboard),
   und die Bewegungen sind winzig — 1,3 px Drift, 26 s Umlauf. */

/* -- Wetter: Tagesliste -------------------------------------------------------------- */

.ewx-days[b-34pg3hls1v] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-top: 9px;
}

.ewx-day[b-34pg3hls1v] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 20px auto auto;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    border-radius: 13px;
    padding: 4px 10px;
}

.ewx-day.is-today[b-34pg3hls1v] {
    background: #16181c;
}

.ewx-day-name[b-34pg3hls1v] {
    color: #16181c;
    font-size: 14px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ewx-day-ic[b-34pg3hls1v] {
    display: flex;
}

.ewx-day-ic[b-34pg3hls1v]  svg {
    display: block;
    width: 20px;
    height: 20px;
    color: #16181c;
}

.ewx-day-prec[b-34pg3hls1v] {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 3px;
    min-width: 42px;
    color: #80858d;
    font-size: 12px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.ewx-day-prec svg[b-34pg3hls1v] {
    width: 9px;
    height: 9px;
    flex-shrink: 0;
    opacity: 0.65;
}

.ewx-day-prec.is-dry[b-34pg3hls1v] {
    visibility: hidden;
}

.ewx-day-temps[b-34pg3hls1v] {
    min-width: 66px;
    font-size: 14px;
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.ewx-day-temps strong[b-34pg3hls1v] {
    color: #16181c;
    font-weight: 800;
}

.ewx-day-temps em[b-34pg3hls1v] {
    margin-left: 5px;
    color: #aeaeb2;
    font-style: normal;
    font-weight: 600;
}

.ewx-day.is-today .ewx-day-name[b-34pg3hls1v],
.ewx-day.is-today .ewx-day-temps strong[b-34pg3hls1v] {
    color: #fff;
}

.ewx-day.is-today .ewx-day-ic[b-34pg3hls1v]  svg {
    color: #fff;
}

.ewx-day.is-today .ewx-day-temps em[b-34pg3hls1v],
.ewx-day.is-today .ewx-day-prec[b-34pg3hls1v] {
    color: rgba(255, 255, 255, 0.6);
}

/* -- Wetter: Verlaufs-Kennzahlen ------------------------------------------------------ */

.ewx-stats[b-34pg3hls1v] {
    display: flex;
    gap: 8px;
}

.ewx-stat[b-34pg3hls1v] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
    border-radius: 13px;
    padding: 8px 6px;
    background: #f5f5f7;
}

.ewx-stat em[b-34pg3hls1v] {
    color: #80858d;
    font-style: normal;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ewx-stat strong[b-34pg3hls1v] {
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 18px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* -- Geburtstage & Jubiläen ------------------------------------------------------------ */

.ebd-row[b-34pg3hls1v] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 62px;
    padding: 10px 0;
}

.ebd-avatar[b-34pg3hls1v] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #3c4148;
    background: #efeff1;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 700;
}

.ebd-row.is-today .ebd-avatar[b-34pg3hls1v] {
    color: #fff;
    background: #16181c;
}

.ebd-body[b-34pg3hls1v] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ebd-body strong[b-34pg3hls1v] {
    color: #16181c;
    font-size: 15px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ebd-body small[b-34pg3hls1v] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #80858d;
    font-size: 12.5px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ebd-sub-ic[b-34pg3hls1v] {
    display: inline-flex;
    flex-shrink: 0;
}

.ebd-sub-ic[b-34pg3hls1v]  svg {
    display: block;
    width: 12px;
    height: 12px;
    color: #aeaeb2;
}

.ebd-when[b-34pg3hls1v] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    height: 26px;
    border-radius: 999px;
    padding: 0 11px;
    color: #3c4148;
    background: #efeff1;
    font-size: 11.5px;
    font-weight: 800;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.ebd-when.is-today[b-34pg3hls1v] {
    color: #fff;
    background: #16181c;
}

/* -- Wer arbeitet jetzt ------------------------------------------------------------------ */

.etm-row[b-34pg3hls1v] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 62px;
    padding: 10px 0;
}

.etm-avatar[b-34pg3hls1v] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 700;
}

.etm-avatar.is-break[b-34pg3hls1v] {
    color: #3c4148;
    background: #efeff1;
}

.etm-body[b-34pg3hls1v] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.etm-body strong[b-34pg3hls1v] {
    color: #16181c;
    font-size: 15px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.etm-body small[b-34pg3hls1v] {
    color: #80858d;
    font-size: 12.5px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-variant-numeric: tabular-nums;
}

.etm-live[b-34pg3hls1v] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 26px;
    border-radius: 999px;
    padding: 0 11px;
    color: #137a3b;
    background: #dff2e7;
    font-size: 11.5px;
    font-weight: 800;
}

.etm-live-dot[b-34pg3hls1v] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #16a34a;
    animation: eifLivePulse-b-34pg3hls1v 1.6s ease-in-out infinite;
}

@keyframes eifLivePulse-b-34pg3hls1v {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.35; }
}

.etm-break[b-34pg3hls1v] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    height: 26px;
    border-radius: 999px;
    padding: 0 11px;
    color: #3c4148;
    background: #efeff1;
    font-size: 11.5px;
    font-weight: 800;
}

/* -- Schmale Geräte ------------------------------------------------------------------------ */

@media (max-width: 380px) {
    .eif-page[b-34pg3hls1v] {
        padding-right: 12px;
        padding-left: 12px;
    }

    .eif-card[b-34pg3hls1v] {
        padding: 13px 14px;
    }

    .eif-rows[b-34pg3hls1v] {
        padding: 4px 14px;
    }

    .ewx-glyph[b-34pg3hls1v]  .wx-glyph {
        width: 62px;
        height: 62px;
    }

    .ewx-temp[b-34pg3hls1v] {
        font-size: 46px;
    }

    .efl-prices[b-34pg3hls1v] {
        gap: 6px;
    }

    .efl-price strong[b-34pg3hls1v] {
        font-size: 19px;
    }
}
/* /Components/Pages/Employee/EmployeeLager.razor.rz.scp.css */
/* ============================================================================
   Mitarbeiterbereich — Lager (/mitarbeiter/lager), iOS-Look, monochrom
   Tokens: page #f5f5f7 · surface #fff · ink #16181c · ink-soft #3c4148
           muted #80858d · line #e4e4e7 · fill #efeff1
           danger #e2483b / #fbeae8 · success #16a34a / #dff2e7 · warnung #a15c00
   Semantik: Bestand negativ = rot, unter Mindestbestand = warnfarben.
============================================================================ */

.elg-page[b-6p9bba8s2v] {
    box-sizing: border-box;
    min-height: 100dvh;
    padding: max(16px, env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom));
    /* Hintergrund kommt global von .employee-app-page (app.css) */
    color: #16181c;
    font: 15px/1.45 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-variant-numeric: tabular-nums;
    overflow-x: hidden;
    -webkit-tap-highlight-color: transparent;
}

/* Inhalt zentriert in Phone-Breite */
.elg-topbar[b-6p9bba8s2v],
.elg-searchwrap[b-6p9bba8s2v],
.elg-muted[b-6p9bba8s2v],
.elg-list[b-6p9bba8s2v] {
    width: min(460px, 100%);
    margin-left: auto;
    margin-right: auto;
}

/* -- Topbar (Zurück + großer Titel) ----------------------------------------- */

.elg-topbar[b-6p9bba8s2v] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    padding: 2px 2px 0;
}

.elg-back[b-6p9bba8s2v] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    color: #3c4148;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .elg-back:hover[b-6p9bba8s2v] {
        background: #efeff1;
        color: #16181c;
    }
}


.elg-back:focus-visible[b-6p9bba8s2v] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.elg-back:active[b-6p9bba8s2v] {
    transform: scale(0.94);
}

.elg-topbar-text[b-6p9bba8s2v] {
    min-width: 0;
}

.elg-kicker[b-6p9bba8s2v] {
    display: block;
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.elg-topbar h1[b-6p9bba8s2v] {
    margin: 1px 0 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 0.2px;
    line-height: 1.1;
}

/* -- Suche (iOS-Suchfeld) ------------------------------------------------------- */

.elg-searchwrap[b-6p9bba8s2v] {
    position: relative;
    display: flex;
    align-items: center;
    margin-bottom: 12px;
}

.elg-searchicon[b-6p9bba8s2v] {
    position: absolute;
    left: 14px;
    color: #80858d;
    pointer-events: none;
}

.elg-search[b-6p9bba8s2v] {
    box-sizing: border-box;
    width: 100%;
    height: 44px;
    border: 1px solid transparent;
    border-radius: 12px;
    padding: 0 14px 0 40px;
    color: #16181c;
    background: #efeff1;
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.elg-search[b-6p9bba8s2v]::placeholder {
    color: #80858d;
}

.elg-search:focus[b-6p9bba8s2v] {
    outline: none;
    border-color: #16181c;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.elg-muted[b-6p9bba8s2v] {
    color: #80858d;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    padding: 18px 0;
}

/* -- Artikelliste (gruppierte iOS-Liste) ----------------------------------------- */

.elg-list[b-6p9bba8s2v] {
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    overflow: hidden;
}

.elg-item[b-6p9bba8s2v] {
    width: 100%;
    min-height: 60px;
    display: flex;
    align-items: center;
    gap: 12px;
    border: 0;
    padding: 10px 14px;
    color: #16181c;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.13s ease;
}

/* Mitarbeiteransicht (Vorschau): Buchen gesperrt, Bestand bleibt lesbar */
.elg-item:disabled[b-6p9bba8s2v] {
    cursor: default;
    opacity: 0.6;
}

.elg-item + .elg-item[b-6p9bba8s2v] {
    border-top: 1px solid #f0f0f2;
}

@media (hover: hover) {
    .elg-item:hover[b-6p9bba8s2v] {
        background: #f7f7f9;
    }
}


.elg-item:focus-visible[b-6p9bba8s2v] {
    outline: none;
    background: #efeff1;
}

.elg-item:active[b-6p9bba8s2v] {
    background: #efeff1;
}

.elg-item-icon[b-6p9bba8s2v] {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: #16181c;
    background: #efeff1;
    overflow: hidden;
    transition: background 0.13s ease, color 0.13s ease;
}

/* Artikelbild statt Platzhalter-Icon (Thumb, zugeschnitten) */
.elg-item-icon--img[b-6p9bba8s2v] {
    background: #fff;
    box-shadow: inset 0 0 0 1px #e4e4e7;
}

.elg-item-icon img[b-6p9bba8s2v] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (hover: hover) {
    .elg-item:hover .elg-item-icon[b-6p9bba8s2v] {
        background: #16181c;
        color: #fff;
    }
}


.elg-item-main[b-6p9bba8s2v] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.elg-item-main strong[b-6p9bba8s2v] {
    color: #16181c;
    font-size: 15px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.elg-item-main small[b-6p9bba8s2v] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.elg-item-stock[b-6p9bba8s2v] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    text-align: right;
}

.elg-item-stock strong[b-6p9bba8s2v] {
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 17px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.elg-item-stock small[b-6p9bba8s2v] {
    color: #80858d;
    font-size: 11px;
    font-weight: 700;
}

.elg-stock--warn strong[b-6p9bba8s2v] {
    color: #a15c00;
}

.elg-stock--neg strong[b-6p9bba8s2v] {
    color: #e2483b;
}

/* -- Schmale Geräte ------------------------------------------------------------------ */

@media (max-width: 380px) {
    .elg-page[b-6p9bba8s2v] {
        padding-right: 12px;
        padding-left: 12px;
    }

    .elg-item[b-6p9bba8s2v] {
        padding: 10px 12px;
    }
}
/* /Components/Pages/Employee/EmployeeMaterialSheet.razor.rz.scp.css */
/* ============================================================================
   Material-Buchungs-Sheet (Mitarbeiterbereich), iOS-Look, monochrom.
   Styles übernommen aus dem früheren Buchungs-Sheet in EmployeeLager.razor.css
   (elg-* → ems-*), erweitert um Artikel-Auswahl-Schritt und Herkunfts-Chips.
   Tokens: page #f5f5f7 · surface #fff · ink #16181c · ink-soft #3c4148
           muted #80858d · line #e4e4e7 · fill #efeff1 · danger #e2483b
============================================================================ */

.ems-overlay[b-ic66dkdy3k] {
    position: fixed;
    inset: 0;
    z-index: 70;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    background: rgba(15, 16, 18, 0.42);
    animation: emsFade-b-ic66dkdy3k 0.2s ease backwards;
}

@keyframes emsFade-b-ic66dkdy3k {
    from { opacity: 0; }
    to { opacity: 1; }
}

.ems-sheet[b-ic66dkdy3k] {
    position: relative;
    box-sizing: border-box;
    width: min(460px, 100%);
    max-height: calc(100dvh - 40px);
    display: flex;
    flex-direction: column;
    gap: 14px;
    overflow-y: auto;
    overscroll-behavior: none; /* kein natives Rubber-Band — die Swipe-Geste (employeeSheet.js) übernimmt */
    touch-action: pan-y;
    border: 1px solid #e4e4e7;
    border-bottom: 0;
    border-radius: 24px 24px 0 0;
    padding: 24px 18px calc(18px + env(safe-area-inset-bottom));
    background: #fff;
    box-shadow: 0 -18px 50px -20px rgba(0, 0, 0, 0.3);
    color: #16181c;
    font: 15px/1.45 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-variant-numeric: tabular-nums;
    /* backwards statt both — hält das Sheet nach der Animation frei von
       transform (kein Containing Block für position:fixed-Inhalte). */
    animation: emsSheet-b-ic66dkdy3k 0.26s cubic-bezier(0.32, 0.72, 0, 1) backwards;
}

/* Grabber-Griff oben im Sheet */
.ems-sheet[b-ic66dkdy3k]::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    width: 36px;
    height: 5px;
    border-radius: 999px;
    background: #e4e4e7;
}

@keyframes emsSheet-b-ic66dkdy3k {
    from { opacity: 0.6; transform: translateY(28px); }
    to { opacity: 1; transform: none; }
}

@media (min-width: 641px) {
    .ems-overlay[b-ic66dkdy3k] {
        align-items: center;
        padding: 24px;
    }

    .ems-sheet[b-ic66dkdy3k] {
        border-bottom: 1px solid #e4e4e7;
        border-radius: 24px;
        padding: 20px 18px 18px;
        max-height: calc(100dvh - 96px);
        box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
        animation: emsDialog-b-ic66dkdy3k 0.2s cubic-bezier(0.32, 0.72, 0, 1) backwards;
    }

    .ems-sheet[b-ic66dkdy3k]::before {
        content: none;
    }
}

@keyframes emsDialog-b-ic66dkdy3k {
    from { opacity: 0; transform: translateY(8px) scale(0.98); }
    to { opacity: 1; transform: none; }
}

/* -- Kopf ------------------------------------------------------------------ */

.ems-sheet-head[b-ic66dkdy3k] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.ems-sheet-back[b-ic66dkdy3k] {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 0;
    color: #3c4148;
    background: #efeff1;
    font: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .ems-sheet-back:hover[b-ic66dkdy3k] {
        background: #16181c;
        color: #fff;
    }
}

.ems-sheet-back:active[b-ic66dkdy3k] {
    transform: scale(0.94);
}

.ems-sheet-titlewrap[b-ic66dkdy3k] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ems-sheet-kicker[b-ic66dkdy3k] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ems-sheet-head h2[b-ic66dkdy3k] {
    margin: 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.ems-sheet-bestand[b-ic66dkdy3k] {
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
}

.ems-sheet-bestand strong[b-ic66dkdy3k] {
    color: #16181c;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.ems-sheet-close[b-ic66dkdy3k] {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 0;
    color: #3c4148;
    background: #efeff1;
    font: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .ems-sheet-close:hover[b-ic66dkdy3k] {
        background: #16181c;
        color: #fff;
    }
}

.ems-sheet-close:active[b-ic66dkdy3k] {
    transform: scale(0.94);
}

/* -- Artikel-Auswahl-Schritt ----------------------------------------------- */

.ems-picksearch[b-ic66dkdy3k] {
    position: relative;
    display: flex;
    align-items: center;
}

.ems-picksearch-icon[b-ic66dkdy3k] {
    position: absolute;
    left: 14px;
    color: #80858d;
    pointer-events: none;
}

/* Doppelklasse: gewinnt gegen die padding-Shorthand von .ems-input (steht später in der Datei). */
.ems-input.ems-picksearch-input[b-ic66dkdy3k] {
    padding-left: 38px;
    background: #efeff1;
    border-color: transparent;
}

.ems-input.ems-picksearch-input:focus[b-ic66dkdy3k] {
    background: #fff;
    border-color: #16181c;
}

.ems-picklist[b-ic66dkdy3k] {
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    background: #fff;
    overflow: hidden auto;
    max-height: min(46dvh, 380px);
}

.ems-pickitem[b-ic66dkdy3k] {
    width: 100%;
    min-height: 56px;
    display: flex;
    align-items: center;
    gap: 12px;
    border: 0;
    padding: 10px 14px;
    color: #16181c;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.13s ease;
}

.ems-pickitem + .ems-pickitem[b-ic66dkdy3k] {
    border-top: 1px solid #f0f0f2;
}

@media (hover: hover) {
    .ems-pickitem:hover[b-ic66dkdy3k] {
        background: #f7f7f9;
    }
}

.ems-pickitem:active[b-ic66dkdy3k] {
    background: #efeff1;
}

.ems-pickitem-icon[b-ic66dkdy3k] {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    color: #16181c;
    background: #efeff1;
    overflow: hidden;
}

/* Artikelbild statt Platzhalter-Icon (Thumb, zugeschnitten) */
.ems-pickitem-icon--img[b-ic66dkdy3k] {
    background: #fff;
    box-shadow: inset 0 0 0 1px #e4e4e7;
}

.ems-pickitem-icon img[b-ic66dkdy3k] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ems-pickitem-main[b-ic66dkdy3k] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ems-pickitem-main strong[b-ic66dkdy3k] {
    color: #16181c;
    font-size: 15px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ems-pickitem-main small[b-ic66dkdy3k] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ems-pickitem-stock[b-ic66dkdy3k] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    text-align: right;
}

.ems-pickitem-stock strong[b-ic66dkdy3k] {
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 16px;
    font-weight: 700;
}

.ems-pickitem-stock small[b-ic66dkdy3k] {
    color: #80858d;
    font-size: 11px;
    font-weight: 700;
}

.ems-muted[b-ic66dkdy3k] {
    margin: 0;
    color: #80858d;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    padding: 14px 0;
}

/* -- Modus: Entnehmen / Einlagern (Segment-Schalter) ----------------------- */

.ems-modus[b-ic66dkdy3k] {
    display: flex;
    gap: 2px;
    padding: 4px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #efeff1;
}

.ems-modus-btn[b-ic66dkdy3k] {
    flex: 1 1 0;
    min-width: 0;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 0;
    border-radius: 999px;
    padding: 0 10px;
    color: #3c4148;
    background: transparent;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease;
}

@media (hover: hover) {
    .ems-modus-btn:hover[b-ic66dkdy3k] {
        color: #16181c;
    }
}

.ems-modus-btn.is-active[b-ic66dkdy3k] {
    background: #16181c;
    color: #fff;
}

@media (hover: hover) {
    .ems-modus-btn.is-active:hover[b-ic66dkdy3k] {
        background: #16181c;
        color: #fff;
    }
}

/* -- Felder ---------------------------------------------------------------- */

.ems-field[b-ic66dkdy3k] {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.ems-field-label[b-ic66dkdy3k] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ems-input[b-ic66dkdy3k] {
    box-sizing: border-box;
    width: 100%;
    height: 46px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 0 13px;
    color: #16181c;
    background: #fff;
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.ems-input[b-ic66dkdy3k]::placeholder {
    color: #80858d;
}

.ems-input:focus[b-ic66dkdy3k] {
    outline: none;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

/* Mengenfeld: große zentrierte Zahl */
.ems-input--num[b-ic66dkdy3k] {
    height: 56px;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 24px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    text-align: center;
}

.ems-hint[b-ic66dkdy3k] {
    margin: 0;
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
}

/* -- Einheiten-Umschalter (Basis / Gebinde) -------------------------------- */

.ems-unit-toggle[b-ic66dkdy3k] {
    display: flex;
    gap: 2px;
    padding: 3px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #efeff1;
}

.ems-unit-btn[b-ic66dkdy3k] {
    flex: 1 1 0;
    min-width: 0;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 0 10px;
    color: #3c4148;
    background: transparent;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease;
}

@media (hover: hover) {
    .ems-unit-btn:hover[b-ic66dkdy3k] {
        color: #16181c;
    }
}

.ems-unit-btn.is-active[b-ic66dkdy3k] {
    background: #16181c;
    color: #fff;
}

@media (hover: hover) {
    .ems-unit-btn.is-active:hover[b-ic66dkdy3k] {
        background: #16181c;
        color: #fff;
    }
}

/* -- Gewählte/fixierte Baustelle ------------------------------------------- */

.ems-bsel[b-ic66dkdy3k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border-radius: 12px;
    padding: 11px 13px;
    background: #f5f5f7;
}

.ems-bsel-body[b-ic66dkdy3k] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.ems-bsel-body strong[b-ic66dkdy3k] {
    color: #16181c;
    font-size: 14px;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.ems-bsel-body small[b-ic66dkdy3k] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
}

.ems-bsel-clear[b-ic66dkdy3k] {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 0;
    color: #3c4148;
    background: #fff;
    box-shadow: 0 0 0 1px #e4e4e7;
    font: inherit;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

@media (hover: hover) {
    .ems-bsel-clear:hover[b-ic66dkdy3k] {
        background: #fbeae8;
        color: #e2483b;
        box-shadow: 0 0 0 1px #f0cdc9;
    }
}

/* -- Baustellen-Vorschläge / Herkunfts-Chips ------------------------------- */

.ems-bgroup[b-ic66dkdy3k] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ems-bchips[b-ic66dkdy3k] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Lange Herkunfts-Liste (mit Suche): eigener Scrollbereich, damit die Buchen-Taste
   am Sheet-Ende erreichbar bleibt. Rechts Luft für den Scrollbalken. */
.ems-bchips--scroll[b-ic66dkdy3k] {
    max-height: min(38dvh, 300px);
    overflow: hidden auto;
    padding-right: 2px;
    -webkit-overflow-scrolling: touch;
}

.ems-bchip[b-ic66dkdy3k] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 9px 12px;
    color: #16181c;
    background: #fff;
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

@media (hover: hover) {
    .ems-bchip:hover[b-ic66dkdy3k] {
        background: #efeff1;
    }
}

.ems-bchip:focus-visible[b-ic66dkdy3k] {
    outline: none;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.ems-bchip strong[b-ic66dkdy3k] {
    font-size: 14px;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.ems-bchip small[b-ic66dkdy3k] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
}

/* Herkunfts-Chip: Name + Kunde/Ort links, offene Menge rechts (wie die Artikelzeilen). */
.ems-bchip--split[b-ic66dkdy3k] {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.ems-bchip-main[b-ic66dkdy3k] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.ems-bchip-rest[b-ic66dkdy3k] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0;
    text-align: right;
}

.ems-bchip-rest strong[b-ic66dkdy3k] {
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 15px;
    font-weight: 700;
    white-space: nowrap;
}

.ems-bchip-rest small[b-ic66dkdy3k] {
    font-size: 11px;
    font-weight: 700;
}

/* „Lieferung / ohne Baustelle": die Ausweichoption, deshalb gestrichelt statt durchgezogen. */
.ems-bchip--liefer[b-ic66dkdy3k] {
    border-style: dashed;
}

/* Gewählte Herkunft (Rückgabe-Ziel) */
.ems-bchip.is-active[b-ic66dkdy3k] {
    background: #16181c;
    border-color: #16181c;
    border-style: solid;
    color: #fff;
}

.ems-bchip.is-active small[b-ic66dkdy3k] {
    color: rgba(255, 255, 255, 0.72);
}

@media (hover: hover) {
    .ems-bchip.is-active:hover[b-ic66dkdy3k] {
        background: #16181c;
    }
}

.ems-bsearch[b-ic66dkdy3k] {
    margin-top: 2px;
}

.ems-bresults[b-ic66dkdy3k] {
    display: flex;
    flex-direction: column;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.ems-bempty[b-ic66dkdy3k] {
    padding: 12px 13px;
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
}

.ems-bresult[b-ic66dkdy3k] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
    border: 0;
    padding: 10px 13px;
    color: #16181c;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.13s ease;
}

.ems-bresult + .ems-bresult[b-ic66dkdy3k] {
    border-top: 1px solid #f0f0f2;
}

@media (hover: hover) {
    .ems-bresult:hover[b-ic66dkdy3k] {
        background: #f7f7f9;
    }
}

.ems-bresult strong[b-ic66dkdy3k] {
    font-size: 14px;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.ems-bresult small[b-ic66dkdy3k] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
}

/* -- Aktionen --------------------------------------------------------------- */

.ems-actions[b-ic66dkdy3k] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
    gap: 8px;
}

.ems-btn[b-ic66dkdy3k] {
    min-height: 50px;
    border-radius: 999px;
    font: inherit;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.ems-btn:active[b-ic66dkdy3k] {
    transform: scale(0.98);
}

.ems-btn--ghost[b-ic66dkdy3k] {
    border: 1px solid #e4e4e7;
    color: #16181c;
    background: #fff;
}

@media (hover: hover) {
    .ems-btn--ghost:hover[b-ic66dkdy3k] {
        background: #efeff1;
    }
}

.ems-btn--primary[b-ic66dkdy3k] {
    border: 1px solid #16181c;
    color: #fff;
    background: #16181c;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.4);
}

@media (hover: hover) {
    .ems-btn--primary:hover:not(:disabled)[b-ic66dkdy3k] {
        background: #26282e;
    }
}

.ems-btn--primary:disabled[b-ic66dkdy3k] {
    cursor: not-allowed;
    opacity: 0.45;
}

.ems-btn:focus-visible[b-ic66dkdy3k] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.18);
}
/* /Components/Pages/Employee/EmployeePlanning.razor.rz.scp.css */
/* ============================================================================
   Mitarbeiterbereich — Übersicht (/mitarbeiter/uebersicht), iOS-Look, monochrom
   Tokens: page #f5f5f7 · surface #fff · ink #16181c · ink-soft #3c4148
           muted #80858d · line #e4e4e7 · fill #efeff1
           danger #e2483b / #fbeae8 · success #16a34a / #dff2e7 · warnung #d97706
   Grammatik: weiß = Fläche, grau = Hover/Soft, schwarz = aktiv/primär.
============================================================================ */

.employee-overview-page[b-dh6ltffa04] {
    box-sizing: border-box;
    min-height: 100dvh;
    padding: max(16px, env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom));
    /* Hintergrund kommt global von .employee-app-page (app.css) */
    color: #16181c;
    font: 15px/1.45 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-variant-numeric: tabular-nums;
    overflow-x: hidden;
    -webkit-tap-highlight-color: transparent;
}

.employee-overview-shell[b-dh6ltffa04] {
    width: min(460px, 100%);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* -- Topbar (Zurück + großer Titel) ----------------------------------------- */

.employee-overview-topbar[b-dh6ltffa04] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 2px 2px 0;
}

.employee-overview-back[b-dh6ltffa04] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0;
    color: #3c4148;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    font: inherit;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .employee-overview-back:hover[b-dh6ltffa04] {
        background: #efeff1;
        color: #16181c;
    }
}


.employee-overview-back:focus-visible[b-dh6ltffa04] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.employee-overview-back:active[b-dh6ltffa04] {
    transform: scale(0.94);
}

.employee-overview-topbar > div[b-dh6ltffa04] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.employee-overview-kicker[b-dh6ltffa04] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.employee-overview-topbar h1[b-dh6ltffa04] {
    margin: 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 0.2px;
    line-height: 1.1;
}

.employee-overview-user[b-dh6ltffa04] {
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* -- Saldo-Karte (Urlaub / Überstunden / Heute) ------------------------------ */

.employee-overview-summary[b-dh6ltffa04] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    overflow: hidden;
}

.employee-overview-summary > div[b-dh6ltffa04] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 14px 8px;
    text-align: center;
}

.employee-overview-summary > div + div[b-dh6ltffa04] {
    border-left: 1px solid #f0f0f2;
}

.employee-overview-summary span[b-dh6ltffa04] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.employee-overview-summary strong[b-dh6ltffa04] {
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 20px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* -- Antrags-Schnellzugriffe -------------------------------------------------- */

.employee-overview-actions[b-dh6ltffa04] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.employee-overview-action[b-dh6ltffa04] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 12px 4px 10px;
    color: #16181c;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    font: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .employee-overview-action:hover[b-dh6ltffa04] {
        background: #efeff1;
    }
}


.employee-overview-action:focus-visible[b-dh6ltffa04] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.employee-overview-action:active[b-dh6ltffa04] {
    transform: scale(0.96);
}

.employee-overview-action span[b-dh6ltffa04] {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: #16181c;
    background: #efeff1;
    transition: background 0.15s ease, color 0.15s ease;
}

@media (hover: hover) {
    .employee-overview-action:hover span[b-dh6ltffa04] {
        background: #16181c;
        color: #fff;
    }
}


/* Urlaub / Krank behalten ihre ruhige semantische Färbung */
.employee-overview-action--vacation span[b-dh6ltffa04] {
    color: #137a3b;
    background: #dff2e7;
}

@media (hover: hover) {
    .employee-overview-action--vacation:hover span[b-dh6ltffa04] {
        background: #137a3b;
        color: #fff;
    }
}


.employee-overview-action--sick span[b-dh6ltffa04] {
    color: #b3392e;
    background: #fbeae8;
}

@media (hover: hover) {
    .employee-overview-action--sick:hover span[b-dh6ltffa04] {
        background: #b3392e;
        color: #fff;
    }
}


.employee-overview-action strong[b-dh6ltffa04] {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
    font-weight: 800;
}

/* -- Tages-Karte (Datum + Statistik + Einträge) ------------------------------- */

.employee-overview-picker-card[b-dh6ltffa04] {
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    padding: 16px;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
}

.employee-overview-picker-head[b-dh6ltffa04] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.employee-overview-picker-head > div[b-dh6ltffa04] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.employee-overview-picker-head h2[b-dh6ltffa04] {
    margin: 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.15;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.employee-overview-day-stats[b-dh6ltffa04] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin-bottom: 12px;
}

.employee-overview-day-stats > div[b-dh6ltffa04] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    border-radius: 12px;
    padding: 9px 4px;
    background: #f5f5f7;
    text-align: center;
}

.employee-overview-day-stats span[b-dh6ltffa04] {
    color: #80858d;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.employee-overview-day-stats strong[b-dh6ltffa04] {
    color: #16181c;
    font-size: 14px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.employee-overview-day-content[b-dh6ltffa04] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* „läuft"-Pill: sitzt direkt in der Zeile des offenen Arbeitsblocks */
.employee-overview-live[b-dh6ltffa04] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 26px;
    border-radius: 999px;
    padding: 0 11px;
    color: #137a3b;
    background: #dff2e7;
    font-size: 11px;
    font-weight: 800;
}

.employee-overview-live[b-dh6ltffa04]::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #16a34a;
    animation: employeeOverviewPulse-b-dh6ltffa04 1.6s ease-in-out infinite;
}

@keyframes employeeOverviewPulse-b-dh6ltffa04 {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.35; }
}

.employee-overview-empty[b-dh6ltffa04] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    border: 1px dashed #e4e4e7;
    border-radius: 14px;
    padding: 16px;
    text-align: center;
}

.employee-overview-empty strong[b-dh6ltffa04] {
    color: #16181c;
    font-size: 14px;
    font-weight: 800;
}

.employee-overview-empty span[b-dh6ltffa04] {
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}

/* Urlaub/Krank-Markierung des Tages */
.employee-overview-day-pill[b-dh6ltffa04] {
    width: fit-content;
    display: inline-flex;
    align-items: center;
    height: 28px;
    border-radius: 999px;
    padding: 0 12px;
    font-size: 12px;
    font-weight: 800;
}

.employee-overview-day-pill--vacation[b-dh6ltffa04] {
    color: #137a3b;
    background: #dff2e7;
}

/* Freistellung: bezahlt frei, aber ohne Urlaubstage – eigene, ruhigere Farbe als Urlaub. */
.employee-overview-day-pill--freistellung[b-dh6ltffa04] {
    color: #2f4b8f;
    background: #eef2fb;
}

.employee-overview-day-pill--sick[b-dh6ltffa04] {
    color: #b3392e;
    background: #fbeae8;
}

/* Art-Auswahl (Urlaub/Freistellung) im Antragsformular */
.employee-overview-kindwrap[b-dh6ltffa04]  .iconsel-trigger {
    width: 100%;
}

.employee-overview-kindnote[b-dh6ltffa04] {
    margin: -4px 0 0;
    font-size: 12.5px;
    font-weight: 600;
    color: #2f4b8f;
}

/* Arbeitsblock-Zeile */
.employee-overview-entry[b-dh6ltffa04] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border-radius: 14px;
    padding: 11px 13px;
    background: #f5f5f7;
}

.employee-overview-entry > div[b-dh6ltffa04] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.employee-overview-entry span[b-dh6ltffa04] {
    color: #80858d;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.employee-overview-entry strong[b-dh6ltffa04] {
    color: #16181c;
    font-size: 15px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.employee-overview-entry small[b-dh6ltffa04] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
}

.employee-overview-entry-actions[b-dh6ltffa04] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.employee-overview-entry-actions button[b-dh6ltffa04] {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0;
    color: #3c4148;
    background: #fff;
    font: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .employee-overview-entry-actions button:hover[b-dh6ltffa04] {
        background: #16181c;
        border-color: #16181c;
        color: #fff;
    }
}


@media (hover: hover) {
    .employee-overview-entry-actions button:last-child:hover[b-dh6ltffa04] {
        background: #fbeae8;
        border-color: #f0cdc9;
        color: #e2483b;
    }
}


.employee-overview-entry-actions button:focus-visible[b-dh6ltffa04] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.employee-overview-entry-actions button:active[b-dh6ltffa04] {
    transform: scale(0.94);
}

/* -- Modal / Sheet ------------------------------------------------------------ */

.employee-overview-modal-layer[b-dh6ltffa04] {
    position: fixed;
    inset: 0;
    z-index: 70;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 0;
}

.employee-overview-modal-backdrop[b-dh6ltffa04] {
    position: absolute;
    inset: 0;
    border: 0;
    padding: 0;
    background: rgba(15, 16, 18, 0.42);
    cursor: default;
    animation: employeeOverviewFade-b-dh6ltffa04 0.2s ease backwards;
}

.employee-overview-modal[b-dh6ltffa04] {
    position: relative;
    box-sizing: border-box;
    width: min(460px, 100%);
    max-height: calc(100dvh - 40px);
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow-y: auto;
    overscroll-behavior: none; /* kein natives Rubber-Band — die Swipe-Geste (employeeSheet.js) übernimmt */
    touch-action: pan-y;
    border: 1px solid #e4e4e7;
    border-bottom: 0;
    border-radius: 24px 24px 0 0;
    padding: 24px 18px calc(18px + env(safe-area-inset-bottom));
    background: #fff;
    box-shadow: 0 -18px 50px -20px rgba(0, 0, 0, 0.3);
    color: #16181c;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    /* backwards (nicht both): nach der Animation fällt das Sheet auf seine
       Basis-Styles ohne transform zurück — sonst bliebe es Containing Block
       für die position:fixed-Picker-Panels und würde sie abschneiden. */
    animation: employeeOverviewSheet-b-dh6ltffa04 0.26s cubic-bezier(0.32, 0.72, 0, 1) backwards;
}

/* Grabber-Griff oben im Sheet */
.employee-overview-modal[b-dh6ltffa04]::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    width: 36px;
    height: 5px;
    border-radius: 999px;
    background: #e4e4e7;
}

/* Endzustand transform:none — sonst bliebe das Sheet ein Containing Block für
   die position:fixed-Picker-Panels darin (und würde sie abschneiden). */
@keyframes employeeOverviewSheet-b-dh6ltffa04 {
    from { opacity: 0.6; transform: translateY(28px); }
    to { opacity: 1; transform: none; }
}

@keyframes employeeOverviewFade-b-dh6ltffa04 {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Ab Tablet: zentrierter Dialog statt Sheet */
@media (min-width: 641px) {
    .employee-overview-modal-layer[b-dh6ltffa04] {
        align-items: center;
        padding: 24px;
    }

    .employee-overview-modal[b-dh6ltffa04] {
        border-bottom: 1px solid #e4e4e7;
        border-radius: 24px;
        padding: 20px 18px 18px;
        max-height: calc(100dvh - 96px);
        box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
        animation: employeeOverviewDialog-b-dh6ltffa04 0.2s cubic-bezier(0.32, 0.72, 0, 1) backwards;
    }

    .employee-overview-modal[b-dh6ltffa04]::before {
        content: none;
    }
}

@keyframes employeeOverviewDialog-b-dh6ltffa04 {
    from { opacity: 0; transform: translateY(8px) scale(0.98); }
    to { opacity: 1; transform: none; }
}

.employee-overview-modal-head[b-dh6ltffa04] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.employee-overview-modal-head h2[b-dh6ltffa04] {
    margin: 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.15;
}

.employee-overview-modal-tools[b-dh6ltffa04] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.employee-overview-modal-tool[b-dh6ltffa04],
.employee-overview-modal-close[b-dh6ltffa04] {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 0;
    color: #3c4148;
    background: #efeff1;
    font: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .employee-overview-modal-tool:hover[b-dh6ltffa04],
    .employee-overview-modal-close:hover[b-dh6ltffa04] {
        background: #16181c;
        color: #fff;
    }
}


.employee-overview-modal-tool:focus-visible[b-dh6ltffa04],
.employee-overview-modal-close:focus-visible[b-dh6ltffa04] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.employee-overview-modal-tool:active[b-dh6ltffa04],
.employee-overview-modal-close:active[b-dh6ltffa04] {
    transform: scale(0.94);
}

/* Verlaufsliste im Modal */
.employee-overview-history-list[b-dh6ltffa04] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.employee-overview-history-row[b-dh6ltffa04] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border-radius: 14px;
    padding: 11px 13px;
    background: #f5f5f7;
}

.employee-overview-history-row > div[b-dh6ltffa04] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.employee-overview-history-row span[b-dh6ltffa04] {
    color: #80858d;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.employee-overview-history-row strong[b-dh6ltffa04] {
    color: #16181c;
    font-size: 14px;
    font-weight: 800;
}

.employee-overview-history-row small[b-dh6ltffa04] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
}

.employee-overview-history-row button[b-dh6ltffa04] {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0;
    color: #3c4148;
    background: #fff;
    font: inherit;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

@media (hover: hover) {
    .employee-overview-history-row button:hover:not(:disabled)[b-dh6ltffa04] {
        background: #fbeae8;
        border-color: #f0cdc9;
        color: #e2483b;
    }
}


.employee-overview-history-row button:disabled[b-dh6ltffa04] {
    cursor: not-allowed;
    opacity: 0.5;
}

/* Formularfelder */
.employee-overview-field[b-dh6ltffa04] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.employee-overview-field > span[b-dh6ltffa04] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.employee-overview-field input[b-dh6ltffa04],
.employee-overview-field textarea[b-dh6ltffa04] {
    box-sizing: border-box;
    width: 100%;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 11px 13px;
    color: #16181c;
    background: #fff;
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.employee-overview-field textarea[b-dh6ltffa04] {
    min-height: 84px;
    resize: vertical;
}

/* Live-Umrechnung unter dem Dezimal-Stundenfeld („7,5" -> „= 7:30 h"). */
.employee-overview-field-hint[b-dh6ltffa04] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* Historie: Eintrag mit laufendem Lösch-Antrag – sichtbar, aber nicht erneut löschbar. */
.employee-overview-history-pending[b-dh6ltffa04] {
    flex: 0 0 auto;
    align-self: center;
    color: #80858d;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 3px 10px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.employee-overview-field input[b-dh6ltffa04]::placeholder,
.employee-overview-field textarea[b-dh6ltffa04]::placeholder {
    color: #80858d;
}

.employee-overview-field input:focus[b-dh6ltffa04],
.employee-overview-field textarea:focus[b-dh6ltffa04] {
    outline: none;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.employee-overview-field input:disabled[b-dh6ltffa04],
.employee-overview-field textarea:disabled[b-dh6ltffa04] {
    opacity: 0.55;
    cursor: not-allowed;
}

.employee-overview-range[b-dh6ltffa04] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.employee-overview-halfdays[b-dh6ltffa04] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.employee-overview-halfdays label[b-dh6ltffa04] {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 10px 12px;
    color: #16181c;
    background: #fff;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s ease;
}

@media (hover: hover) {
    .employee-overview-halfdays label:hover[b-dh6ltffa04] {
        background: #f7f7f9;
    }
}


.employee-overview-halfdays input[b-dh6ltffa04] {
    width: 17px;
    height: 17px;
    margin: 0;
    accent-color: #16181c;
}

/* Pausen-Presets */
.employee-overview-breaks[b-dh6ltffa04] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.employee-overview-break-chip[b-dh6ltffa04] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 38px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0 14px;
    color: #16181c;
    background: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

@media (hover: hover) {
    .employee-overview-break-chip:hover[b-dh6ltffa04] {
        background: #efeff1;
    }
}


.employee-overview-break-chip:focus-visible[b-dh6ltffa04] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.employee-overview-break-chip--active[b-dh6ltffa04] {
    border-color: #16181c;
    background: #16181c;
    color: #fff;
}

@media (hover: hover) {
    .employee-overview-break-chip--active:hover[b-dh6ltffa04] {
        background: #26282e;
    }
}


.employee-overview-break-chip:disabled[b-dh6ltffa04] {
    cursor: not-allowed;
    opacity: 0.55;
}

/* Absenden */
.employee-overview-form-submit[b-dh6ltffa04] {
    width: 100%;
    min-height: 50px;
    border: 1px solid #16181c;
    border-radius: 999px;
    color: #fff;
    background: #16181c;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.4);
    font: inherit;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .employee-overview-form-submit:hover:not(:disabled)[b-dh6ltffa04] {
        background: #26282e;
    }
}


.employee-overview-form-submit:focus-visible[b-dh6ltffa04] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.18);
}

.employee-overview-form-submit:active:not(:disabled)[b-dh6ltffa04] {
    transform: scale(0.98);
}

.employee-overview-form-submit:disabled[b-dh6ltffa04] {
    cursor: not-allowed;
    opacity: 0.45;
}

.employee-overview-form-submit--danger[b-dh6ltffa04] {
    border-color: #e2483b;
    background: #e2483b;
}

@media (hover: hover) {
    .employee-overview-form-submit--danger:hover:not(:disabled)[b-dh6ltffa04] {
        background: #c93d31;
    }
}


/* -- Pause-frei-eingeben-Popup ------------------------------------------------ */

.employee-overview-break-popup-layer[b-dh6ltffa04] {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.employee-overview-break-popup-backdrop[b-dh6ltffa04] {
    position: absolute;
    inset: 0;
    border: 0;
    padding: 0;
    background: rgba(15, 16, 18, 0.42);
    cursor: default;
    animation: employeeOverviewFade-b-dh6ltffa04 0.2s ease backwards;
}

.employee-overview-break-popup[b-dh6ltffa04] {
    position: relative;
    box-sizing: border-box;
    width: min(320px, 100%);
    display: flex;
    flex-direction: column;
    gap: 12px;
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    padding: 16px;
    background: #fff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
    color: #16181c;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    animation: employeeOverviewDialog-b-dh6ltffa04 0.2s cubic-bezier(0.32, 0.72, 0, 1) backwards;
}

.employee-overview-break-popup-head[b-dh6ltffa04] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.employee-overview-break-popup-head strong[b-dh6ltffa04] {
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 17px;
    font-weight: 700;
}

.employee-overview-break-popup-close[b-dh6ltffa04] {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 0;
    color: #3c4148;
    background: #efeff1;
    font: inherit;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

@media (hover: hover) {
    .employee-overview-break-popup-close:hover[b-dh6ltffa04] {
        background: #16181c;
        color: #fff;
    }
}


/* -- Schmale Geräte ------------------------------------------------------------ */

@media (max-width: 380px) {
    .employee-overview-page[b-dh6ltffa04] {
        padding-right: 12px;
        padding-left: 12px;
    }

    .employee-overview-actions[b-dh6ltffa04] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .employee-overview-picker-card[b-dh6ltffa04] {
        padding: 14px;
    }

    .employee-overview-day-stats[b-dh6ltffa04] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* /Components/Pages/Employee/EmployeeSupport.razor.rz.scp.css */
/* ============================================================================
   Mitarbeiterbereich — Support (/mitarbeiter/support)
   iOS-Look, monochrom. Tokens: page #f5f5f7 · surface #fff · ink #16181c
   ink-soft #3c4148 · muted #80858d · line #e4e4e7 · fill #efeff1
   Statusfarben wie Desktop /support (offen ink · in Arbeit teal · fertig grün)
============================================================================ */

.esup-page[b-mpt2kuxha4] {
    box-sizing: border-box;
    min-height: 100dvh;
    padding: max(16px, env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom));
    /* Hintergrund kommt global von .employee-app-page (app.css) */
    color: #16181c;
    font: 15px/1.45 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-variant-numeric: tabular-nums;
    overflow-x: hidden;
    -webkit-tap-highlight-color: transparent;
}

.esup-page *[b-mpt2kuxha4],
.esup-page *[b-mpt2kuxha4]::before,
.esup-page *[b-mpt2kuxha4]::after {
    box-sizing: border-box;
}

.esup-topbar[b-mpt2kuxha4],
.esup-empty[b-mpt2kuxha4],
.esup-list[b-mpt2kuxha4],
.esup-list-heading[b-mpt2kuxha4],
.esup-form[b-mpt2kuxha4] {
    width: min(460px, 100%);
    margin-left: auto;
    margin-right: auto;
}

/* -- Topbar (Zurück + großer Titel + Aktion) -------------------------------- */

.esup-topbar[b-mpt2kuxha4] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    padding: 2px 2px 0;
}

.esup-back[b-mpt2kuxha4] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    color: #3c4148;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .esup-back:hover[b-mpt2kuxha4] {
        background: #efeff1;
        color: #16181c;
    }
}

.esup-back:focus-visible[b-mpt2kuxha4] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.esup-back:active[b-mpt2kuxha4] {
    transform: scale(0.94);
}

.esup-topbar-text[b-mpt2kuxha4] {
    min-width: 0;
    flex: 1 1 auto;
}

.esup-kicker[b-mpt2kuxha4] {
    display: block;
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.esup-topbar h1[b-mpt2kuxha4] {
    margin: 1px 0 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 0.2px;
    line-height: 1.1;
}

/* Gleiche Größe/Optik wie der Listen-Titel (.esup-topbar h1) – nur bei langen
   Betreffen auf zwei Zeilen begrenzen. So wirkt auch der Zurück-Button gleich groß. */
.esup-detail-title[b-mpt2kuxha4] {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.esup-new[b-mpt2kuxha4] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 40px;
    padding: 0 15px 0 13px;
    border: 1px solid #16181c;
    border-radius: 999px;
    color: #fff;
    background: #16181c;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.01em;
    cursor: pointer;
    box-shadow: 0 8px 20px -12px rgba(0, 0, 0, 0.5);
    transition: transform 0.15s ease, background 0.15s ease;
}

@media (hover: hover) {
    .esup-new:hover[b-mpt2kuxha4] {
        background: #000;
    }
}

.esup-new:active[b-mpt2kuxha4] {
    transform: scale(0.96);
}

/* -- Leerer Zustand ------------------------------------------------------------ */

.esup-empty[b-mpt2kuxha4] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    border: 1px dashed #e4e4e7;
    border-radius: 20px;
    padding: 26px 18px;
    background: #fff;
    text-align: center;
}

.esup-empty-ico[b-mpt2kuxha4] {
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 15px;
    color: #80858d;
    background: #efeff1;
    margin-bottom: 2px;
}

.esup-empty strong[b-mpt2kuxha4] {
    color: #16181c;
    font-size: 15px;
    font-weight: 800;
}

.esup-empty > span[b-mpt2kuxha4] {
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
    max-width: 30ch;
}

.esup-empty-btn[b-mpt2kuxha4] {
    margin-top: 8px;
    height: 42px;
    padding: 0 18px;
    border: none;
    border-radius: 999px;
    color: #fff;
    background: #16181c;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    transition: transform 0.15s ease, background 0.15s ease;
}

@media (hover: hover) {
    .esup-empty-btn:hover[b-mpt2kuxha4] {
        background: #000;
    }
}

.esup-empty-btn:active[b-mpt2kuxha4] {
    transform: scale(0.97);
}

/* -- Ticket-Liste --------------------------------------------------------------- */

.esup-list-heading[b-mpt2kuxha4] {
    margin: 18px auto 8px;
    padding: 0 4px;
    color: #80858d;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.esup-list[b-mpt2kuxha4] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.esup-list--done[b-mpt2kuxha4] {
    opacity: 0.9;
}

.esup-row[b-mpt2kuxha4] {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    border: 1px solid #e4e4e7;
    border-radius: 18px;
    padding: 13px 14px;
    background: #fff;
    text-align: left;
    cursor: pointer;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    transition: transform 0.14s ease, border-color 0.14s ease;
}

@media (hover: hover) {
    .esup-row:hover[b-mpt2kuxha4] {
        border-color: #d4d4d8;
    }
}

.esup-row:active[b-mpt2kuxha4] {
    transform: scale(0.985);
}

.esup-row--unread[b-mpt2kuxha4] {
    border-color: #16181c;
}

.esup-status-dot[b-mpt2kuxha4] {
    width: 9px;
    height: 9px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #16181c;
}

.esup-status-dot--open[b-mpt2kuxha4] {
    background: #16181c;
}

.esup-status-dot--progress[b-mpt2kuxha4] {
    background: #0f766e;
}

.esup-status-dot--done[b-mpt2kuxha4] {
    background: #16a34a;
}

.esup-row-main[b-mpt2kuxha4] {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.esup-row-title[b-mpt2kuxha4] {
    color: #16181c;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.esup-row--unread .esup-row-title[b-mpt2kuxha4] {
    font-weight: 800;
}

.esup-row-sub[b-mpt2kuxha4] {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
    min-width: 0;
}

.esup-row-side[b-mpt2kuxha4] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
}

.esup-row-chev[b-mpt2kuxha4] {
    flex: 0 0 auto;
    display: inline-flex;
    color: #c4c6cb;
    margin-left: -2px;
}

/* -- Status- & Prioritäts-Badges ------------------------------------------------ */

.esup-status[b-mpt2kuxha4] {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

.esup-status--open[b-mpt2kuxha4] {
    color: #16181c;
    background: #efeff1;
}

.esup-status--progress[b-mpt2kuxha4] {
    color: #0f766e;
    background: #e5f3f0;
}

.esup-status--done[b-mpt2kuxha4] {
    color: #4b5563;
    background: #eef0f2;
}

.esup-prio[b-mpt2kuxha4] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 22px;
    padding: 0 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.esup-prio--low[b-mpt2kuxha4] {
    color: #80858d;
    background: #efeff1;
}

.esup-prio--normal[b-mpt2kuxha4] {
    color: #16181c;
    background: #efeff1;
}

.esup-prio--high[b-mpt2kuxha4] {
    color: #b45309;
    background: #fff3e0;
}

.esup-prio--urgent[b-mpt2kuxha4] {
    color: #b42318;
    background: #fdeceb;
}

.esup-prio-flag[b-mpt2kuxha4] {
    flex: 0 0 auto;
}

.esup-prio-flag--low[b-mpt2kuxha4] {
    color: #80858d;
}

.esup-prio-flag--normal[b-mpt2kuxha4] {
    color: #16181c;
}

.esup-prio-flag--high[b-mpt2kuxha4] {
    color: #b45309;
}

.esup-prio-flag--urgent[b-mpt2kuxha4] {
    color: #b42318;
}

/* -- Neues-Ticket-Formular ------------------------------------------------------ */

.esup-form[b-mpt2kuxha4] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.esup-field[b-mpt2kuxha4] {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.esup-field > span[b-mpt2kuxha4] {
    color: #3c4148;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.02em;
    padding-left: 2px;
}

.esup-field > span small[b-mpt2kuxha4] {
    color: #a2a6ad;
    font-weight: 700;
}

.esup-field input[b-mpt2kuxha4],
.esup-field textarea[b-mpt2kuxha4] {
    width: 100%;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    padding: 12px 14px;
    background: #fff;
    color: #16181c;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    resize: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.esup-field textarea[b-mpt2kuxha4] {
    min-height: 120px;
    resize: vertical;
}

.esup-field input[b-mpt2kuxha4]::placeholder,
.esup-field textarea[b-mpt2kuxha4]::placeholder {
    color: #a2a6ad;
    font-weight: 600;
}

.esup-field input:focus[b-mpt2kuxha4],
.esup-field textarea:focus[b-mpt2kuxha4] {
    outline: none;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.1);
}

.esup-field--invalid input[b-mpt2kuxha4],
.esup-field--invalid textarea[b-mpt2kuxha4] {
    border-color: #e11d48;
    box-shadow: 0 0 0 3px rgba(225, 29, 72, 0.1);
}

/* Prioritäts-Segment */
.esup-prio-seg[b-mpt2kuxha4] {
    display: flex;
    gap: 7px;
}

.esup-prio-seg-btn[b-mpt2kuxha4] {
    flex: 1 1 0;
    min-width: 0;
    height: 40px;
    padding: 0 6px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #fff;
    color: #80858d;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    transition: border-color 0.14s ease, color 0.14s ease, background 0.14s ease, transform 0.14s ease;
}

.esup-prio-seg-btn:active[b-mpt2kuxha4] {
    transform: scale(0.96);
}

.esup-prio-seg-btn--low.is-active[b-mpt2kuxha4] {
    color: #3c4148;
    background: #efeff1;
    border-color: #cfd0d3;
}

.esup-prio-seg-btn--normal.is-active[b-mpt2kuxha4] {
    color: #16181c;
    background: #efeff1;
    border-color: #16181c;
}

.esup-prio-seg-btn--high.is-active[b-mpt2kuxha4] {
    color: #b45309;
    background: #fff3e0;
    border-color: #f0d2a6;
}

.esup-prio-seg-btn--urgent.is-active[b-mpt2kuxha4] {
    color: #b42318;
    background: #fdeceb;
    border-color: #f3c0bb;
}

/* Bild-Upload */
.esup-upload[b-mpt2kuxha4] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.esup-file-input[b-mpt2kuxha4] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.esup-upload-grid[b-mpt2kuxha4] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
    gap: 8px;
}

.esup-upload-thumb[b-mpt2kuxha4] {
    position: relative;
    aspect-ratio: 1;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    overflow: hidden;
    background: #efeff1;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #80858d;
}

.esup-upload-thumb img[b-mpt2kuxha4] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.esup-upload-thumb-x[b-mpt2kuxha4] {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    color: #fff;
    background: rgba(22, 24, 28, 0.72);
    cursor: pointer;
    backdrop-filter: blur(2px);
}

.esup-upload-btn[b-mpt2kuxha4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 44px;
    border: 1px dashed #cfd0d3;
    border-radius: 14px;
    background: #fff;
    color: #3c4148;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}

@media (hover: hover) {
    .esup-upload-btn:hover[b-mpt2kuxha4] {
        border-color: #16181c;
        background: #fafafa;
    }
}

.esup-upload-spinner[b-mpt2kuxha4] {
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 2px solid #d4d4d8;
    border-top-color: #16181c;
    animation: esup-spin-b-mpt2kuxha4 0.7s linear infinite;
}

@keyframes esup-spin-b-mpt2kuxha4 {
    to {
        transform: rotate(360deg);
    }
}

.esup-form-actions[b-mpt2kuxha4] {
    display: flex;
    gap: 10px;
    margin-top: 4px;
}

.esup-btn[b-mpt2kuxha4] {
    flex: 1 1 0;
    height: 48px;
    border: 1px solid transparent;
    border-radius: 14px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    transition: transform 0.14s ease, background 0.14s ease, opacity 0.14s ease;
}

.esup-btn:active[b-mpt2kuxha4] {
    transform: scale(0.98);
}

.esup-btn--secondary[b-mpt2kuxha4] {
    flex: 0 0 auto;
    padding: 0 20px;
    border-color: #e4e4e7;
    color: #3c4148;
    background: #fff;
}

.esup-btn--primary[b-mpt2kuxha4] {
    color: #fff;
    background: #16181c;
    box-shadow: 0 10px 24px -14px rgba(0, 0, 0, 0.6);
}

@media (hover: hover) {
    .esup-btn--primary:hover[b-mpt2kuxha4] {
        background: #000;
    }
}

.esup-btn--primary:disabled[b-mpt2kuxha4] {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
}

/* -- Detail-/Chat-Ansicht ------------------------------------------------------- */

/* Gleiche seitliche Einrückung wie die Liste (16px Seiten-Padding), damit der
   Zurück-Button exakt an derselben Stelle sitzt wie auf der vorherigen Seite.
   Der Chat bricht darunter per Full-Bleed wieder bis an den Rand aus. */
.esup-page--detail[b-mpt2kuxha4] {
    height: 100dvh;
    min-height: 0;
    padding: max(16px, env(safe-area-inset-top)) 16px 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.esup-detail[b-mpt2kuxha4] {
    width: min(460px, 100%);
    margin: 0 auto;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.esup-topbar--detail[b-mpt2kuxha4] {
    margin-bottom: 10px;
}

.esup-detail-badges[b-mpt2kuxha4] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    padding: 0 2px 12px;
}

.esup-detail-when[b-mpt2kuxha4] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
    margin-left: auto;
}

.esup-readonly-note[b-mpt2kuxha4] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 2px 10px;
    padding: 10px 12px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #efeff1;
    color: #3c4148;
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.35;
}

.esup-readonly-note svg[b-mpt2kuxha4] {
    flex: 0 0 auto;
    color: #80858d;
}

.esup-readonly-note strong[b-mpt2kuxha4] {
    color: #16181c;
    font-weight: 800;
}

.esup-chat-shell[b-mpt2kuxha4] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    /* Full-Bleed: bricht aus dem 16px-Seiten-Padding wieder bis an den Rand aus. */
    width: 100vw;
    margin-left: calc(50% - 50vw);
    border-top: 1px solid #e4e4e7;
    background: #f7f8fa;
}

/* Chat-Composer über dem Home-Indicator absetzen */
.esup-chat-shell[b-mpt2kuxha4]  .chat-area {
    padding-bottom: env(safe-area-inset-bottom);
}

/* -- Formular-Ansicht: kein Tab-Dock, weniger Bodenabstand ---------------------- */

.esup-page--form[b-mpt2kuxha4] {
    padding-bottom: calc(28px + env(safe-area-inset-bottom));
}

/* -- Schmale Geräte ------------------------------------------------------------- */

@media (max-width: 380px) {
    .esup-page[b-mpt2kuxha4] {
        padding-left: 12px;
        padding-right: 12px;
    }

    .esup-topbar h1[b-mpt2kuxha4] {
        font-size: 25px;
    }

    .esup-row[b-mpt2kuxha4] {
        padding: 12px;
    }
}
/* /Components/Pages/Employee/EmployeeTabBar.razor.rz.scp.css */
/* ============================================================================
   Mitarbeiterbereich — Tab-Dock (iOS-Look, monochrom)
   Tokens: page #f5f5f7 · surface #fff · ink #16181c · ink-soft #3c4148
           muted #80858d · line #e4e4e7 · fill #efeff1
   Grammatik: weiß = Fläche, grau = Hover, schwarz = aktiv.
============================================================================ */

.etab[b-v3ung92rr1] {
    position: fixed;
    z-index: 40;
    bottom: max(12px, env(safe-area-inset-bottom));
    left: 50%;
    transform: translateX(-50%);
    width: min(430px, calc(100% - 24px));
    display: flex;
    gap: 4px;
    padding: 6px;
    background: rgba(255, 255, 255, 0.92);
    -webkit-backdrop-filter: saturate(1.4) blur(18px);
    backdrop-filter: saturate(1.4) blur(18px);
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    box-shadow: 0 8px 24px -12px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.04);
}

.etab-item[b-v3ung92rr1] {
    position: relative;
    z-index: 1;
    flex: 1 1 0;
    min-width: 0;
    min-height: 52px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    border-radius: 999px;
    color: #80858d;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .etab-item:not(.etab-item--active):hover[b-v3ung92rr1] {
        background: #efeff1;
        color: #16181c;
    }
}


.etab-item:active[b-v3ung92rr1] {
    transform: scale(0.96);
}

.etab-item:focus-visible[b-v3ung92rr1] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

/* Aktiv-Färbung kommt von der morphenden Pill (.etab-ind) + weißer Ghost-Kopie —
   das Item selbst bleibt ungefüllt, damit der Ziel-Tab erst beim Ankommen gefüllt wird. */
.etab-item--active[b-v3ung92rr1] {
    color: #16181c;
}

/* Morphende Aktiv-Pill + weiße Text-Kopie (Ghost), Mechanik wie im App-Header */
.etab-ind[b-v3ung92rr1] {
    position: absolute;
    top: 0;
    left: 0;
    height: 52px;
    width: 0;
    overflow: hidden;
    border-radius: 999px;
    background: #16181c;
    z-index: 2;
    opacity: 0;
    pointer-events: none;
    transition: transform .42s cubic-bezier(.66, 0, .18, 1), width .42s cubic-bezier(.66, 0, .18, 1), height .42s cubic-bezier(.66, 0, .18, 1);
}

.etab-ghost[b-v3ung92rr1] {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    gap: 4px;
    padding: 6px;
    border: 1px solid transparent;
    pointer-events: none;
    transition: transform .42s cubic-bezier(.66, 0, .18, 1);
}

/* Ghost hat pointer-events:none — Hover-Zustände sind hier unerreichbar. */
.etab-ghost .etab-item[b-v3ung92rr1] {
    color: #fff;
}

.etab-ico[b-v3ung92rr1] {
    display: inline-flex;
    line-height: 0;
}

.etab-ico svg[b-v3ung92rr1] {
    width: 20px;
    height: 20px;
}

.etab-label[b-v3ung92rr1] {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.02em;
    line-height: 1;
}

@media (max-width: 360px) {
    .etab-item[b-v3ung92rr1] {
        min-height: 48px;
    }

    .etab-label[b-v3ung92rr1] {
        font-size: 9px;
    }
}
/* /Components/Pages/Employee/EmployeeTimePicker.razor.rz.scp.css */
/* ============================================================================
   Mitarbeiterbereich — Uhrzeit-Picker (iOS-Look, monochrom)
   Tokens: surface #fff · ink #16181c · ink-soft #3c4148 · muted #80858d
           line #e4e4e7 · fill #efeff1
============================================================================ */

.employee-time-picker[b-ze4cyteye2] {
    position: relative;
    min-width: 0;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* -- Anzeige-Button (Formularzeile, wie beim Datums-Picker) ------------------ */

.employee-picker-display[b-ze4cyteye2] {
    width: 100%;
    min-height: 62px;
    display: grid;
    gap: 3px;
    align-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    padding: 10px 13px;
    color: #16181c;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.employee-picker-display span[b-ze4cyteye2] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.employee-picker-display strong[b-ze4cyteye2] {
    color: #16181c;
    font-size: 15px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.employee-picker-display small[b-ze4cyteye2] {
    width: fit-content;
    min-height: 20px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0 8px;
    color: #3c4148;
    background: #efeff1;
    font-size: 11px;
    font-weight: 700;
}

@media (hover: hover) {
    .employee-picker-display:hover[b-ze4cyteye2] {
        background: #f7f7f9;
        border-color: #d8d8dc;
    }
}


.employee-picker-display:focus-visible[b-ze4cyteye2] {
    outline: none;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.employee-time-picker--open .employee-picker-display[b-ze4cyteye2] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.employee-picker-display:disabled[b-ze4cyteye2] {
    cursor: not-allowed;
    opacity: 0.55;
}

/* -- Backdrop + Stepper-Panel --------------------------------------------------
   Wie beim Datums-Picker: Panel immer als zentriertes Overlay über abgedunkeltem
   Backdrop (mobil als Bottom-Sheet), damit Modal-Overflow nichts abschneidet. */

.employee-picker-backdrop[b-ze4cyteye2] {
    position: fixed;
    inset: 0;
    z-index: 60;
    border: 0;
    padding: 0;
    background: rgba(15, 16, 18, 0.4);
    cursor: default;
    animation: employeeTimePickerFade-b-ze4cyteye2 0.18s ease backwards;
}

.employee-time-panel[b-ze4cyteye2] {
    position: fixed;
    z-index: 61;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(280px, calc(100vw - 32px));
    box-sizing: border-box;
    border: 1px solid #e4e4e7;
    border-radius: 22px;
    padding: 18px;
    background: #fff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
    animation: employeeTimePickerPop-b-ze4cyteye2 0.2s cubic-bezier(0.32, 0.72, 0, 1) backwards;
}

@keyframes employeeTimePickerFade-b-ze4cyteye2 {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes employeeTimePickerPop-b-ze4cyteye2 {
    from { opacity: 0; transform: translate(-50%, -50%) scale(0.96); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@media (max-width: 520px) {
    .employee-time-panel[b-ze4cyteye2] {
        top: auto;
        bottom: max(12px, env(safe-area-inset-bottom));
        transform: translate(-50%, 0);
        animation: employeeTimePickerSheet-b-ze4cyteye2 240ms cubic-bezier(0.32, 0.72, 0, 1) backwards;
    }
}

@keyframes employeeTimePickerSheet-b-ze4cyteye2 {
    from { opacity: 0; transform: translate(-50%, 16px) scale(0.98); }
    to { opacity: 1; transform: translate(-50%, 0) scale(1); }
}

.employee-time-stepper[b-ze4cyteye2] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
}

.employee-time-stepper > span[b-ze4cyteye2] {
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 26px;
    font-weight: 700;
    line-height: 1;
    transform: translateY(-1px);
}

.employee-time-stepper > div[b-ze4cyteye2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.employee-time-stepper strong[b-ze4cyteye2] {
    min-width: 58px;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 30px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    text-align: center;
    line-height: 1;
}

.employee-time-stepper button[b-ze4cyteye2] {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 0;
    color: #3c4148;
    background: #efeff1;
    font: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .employee-time-stepper button:hover[b-ze4cyteye2] {
        background: #16181c;
        color: #fff;
    }
}


.employee-time-stepper button:focus-visible[b-ze4cyteye2] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.employee-time-stepper button:active[b-ze4cyteye2] {
    transform: scale(0.92);
}

.employee-time-stepper svg[b-ze4cyteye2] {
    width: 20px;
    height: 20px;
}
/* /Components/Pages/Employee/EmployeeWerkzeug.razor.rz.scp.css */
/* ============================================================================
   Mitarbeiterbereich — Werkzeug (/mitarbeiter/werkzeug), iOS-Look, monochrom
   Tokens: page #f5f5f7 · surface #fff · ink #16181c · ink-soft #3c4148
           muted #80858d · line #e4e4e7 · fill #efeff1
   Status bleibt semantisch, aber ruhig: Lager grün, Reparatur warnfarben,
   Defekt rot, Ausgegeben monochrom, Verloren dunkelgrau.
============================================================================ */

.ewl-page[b-ry24awui0t] {
    box-sizing: border-box;
    min-height: 100dvh;
    padding: max(16px, env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom));
    /* Hintergrund kommt global von .employee-app-page (app.css) */
    color: #16181c;
    font: 15px/1.45 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-variant-numeric: tabular-nums;
    overflow-x: hidden;
    -webkit-tap-highlight-color: transparent;
}

.ewl-topbar[b-ry24awui0t],
.ewl-section[b-ry24awui0t] {
    width: min(460px, 100%);
    margin-left: auto;
    margin-right: auto;
}

/* -- Topbar (Zurück + großer Titel) ----------------------------------------- */

.ewl-topbar[b-ry24awui0t] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    padding: 2px 2px 0;
}

.ewl-back[b-ry24awui0t] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    color: #3c4148;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .ewl-back:hover[b-ry24awui0t] {
        background: #efeff1;
        color: #16181c;
    }
}


.ewl-back:focus-visible[b-ry24awui0t] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.ewl-back:active[b-ry24awui0t] {
    transform: scale(0.94);
}

.ewl-topbar-text[b-ry24awui0t] {
    min-width: 0;
}

.ewl-kicker[b-ry24awui0t] {
    display: block;
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ewl-topbar h1[b-ry24awui0t] {
    margin: 1px 0 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 0.2px;
    line-height: 1.1;
}

/* -- Abschnitte ------------------------------------------------------------------ */

.ewl-section[b-ry24awui0t] {
    margin-bottom: 18px;
}

.ewl-section-head[b-ry24awui0t] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 4px 8px;
}

.ewl-section-head h2[b-ry24awui0t] {
    margin: 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 18px;
    font-weight: 700;
}

.ewl-count[b-ry24awui0t] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    border-radius: 999px;
    padding: 0 7px;
    color: #16181c;
    background: #efeff1;
    font-size: 11px;
    font-weight: 800;
}

/* -- Suche (iOS-Suchfeld) --------------------------------------------------------- */

.ewl-searchwrap[b-ry24awui0t] {
    position: relative;
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}

.ewl-searchicon[b-ry24awui0t] {
    position: absolute;
    left: 14px;
    color: #80858d;
    pointer-events: none;
}

.ewl-search[b-ry24awui0t] {
    box-sizing: border-box;
    width: 100%;
    height: 44px;
    border: 1px solid transparent;
    border-radius: 12px;
    padding: 0 14px 0 40px;
    color: #16181c;
    background: #efeff1;
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.ewl-search[b-ry24awui0t]::placeholder {
    color: #80858d;
}

.ewl-search:focus[b-ry24awui0t] {
    outline: none;
    border-color: #16181c;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

/* -- Leere Zustände ---------------------------------------------------------------- */

.ewl-empty[b-ry24awui0t] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    border: 1px dashed #e4e4e7;
    border-radius: 16px;
    padding: 20px 16px;
    background: #fff;
    text-align: center;
}

.ewl-empty strong[b-ry24awui0t] {
    color: #16181c;
    font-size: 14px;
    font-weight: 800;
}

.ewl-empty span[b-ry24awui0t] {
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}

.ewl-empty-ico[b-ry24awui0t] {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    color: #80858d;
    background: #efeff1;
    margin-bottom: 2px;
}

.ewl-empty--sm[b-ry24awui0t] {
    padding: 14px;
}

/* -- Werkzeug-Karten ------------------------------------------------------------------ */

.ewl-list[b-ry24awui0t] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ewl-card[b-ry24awui0t] {
    display: flex;
    align-items: stretch;
    gap: 8px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 10px;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
}

.ewl-card-link[b-ry24awui0t] {
    min-width: 0;
    flex: 1;
    display: flex;
    align-items: center;
    gap: 11px;
    border-radius: 12px;
    color: inherit;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
}

.ewl-card-link:focus-visible[b-ry24awui0t] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.ewl-thumb[b-ry24awui0t] {
    width: 54px;
    height: 54px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #efeff1;
    overflow: hidden;
}

.ewl-thumb img[b-ry24awui0t] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ewl-thumb--empty[b-ry24awui0t] {
    color: #80858d;
}

.ewl-card-body[b-ry24awui0t] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ewl-card-top[b-ry24awui0t] {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.ewl-card-name[b-ry24awui0t] {
    color: #16181c;
    font-size: 15px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ewl-card-meta[b-ry24awui0t],
.ewl-card-holder[b-ry24awui0t] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ewl-card-holder strong[b-ry24awui0t] {
    color: #3c4148;
    font-weight: 800;
}

/* Status-Pille (ruhig-semantisch) */
.ewl-status[b-ry24awui0t] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    height: 20px;
    border-radius: 999px;
    padding: 0 8px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.ewl-status--im_lager[b-ry24awui0t] {
    color: #137a3b;
    background: #dff2e7;
}

.ewl-status--ausgegeben[b-ry24awui0t] {
    color: #16181c;
    background: #efeff1;
}

.ewl-status--reparatur[b-ry24awui0t] {
    color: #a15c00;
    background: #f7ead8;
}

.ewl-status--defekt[b-ry24awui0t] {
    color: #b3392e;
    background: #fbeae8;
}

.ewl-status--verloren[b-ry24awui0t] {
    color: #fff;
    background: #3c4148;
}

/* Aktion (Zurück / Auf mich) */
.ewl-act[b-ry24awui0t] {
    align-self: center;
    flex-shrink: 0;
    min-height: 38px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0 13px;
    color: #16181c;
    background: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    white-space: nowrap;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

/* Mitarbeiteransicht (Vorschau): Buchen gesperrt */
.ewl-act:disabled[b-ry24awui0t] {
    cursor: not-allowed;
    opacity: 0.45;
}

@media (hover: hover) {
    .ewl-act:hover:not(:disabled)[b-ry24awui0t] {
        background: #efeff1;
    }
}


.ewl-act:focus-visible[b-ry24awui0t] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.ewl-act:active:not(:disabled)[b-ry24awui0t] {
    transform: scale(0.96);
}

.ewl-act--primary[b-ry24awui0t] {
    border-color: #16181c;
    color: #fff;
    background: #16181c;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.4);
}

@media (hover: hover) {
    .ewl-act--primary:hover:not(:disabled)[b-ry24awui0t] {
        background: #26282e;
    }
}


/* -- Schmale Geräte --------------------------------------------------------------------- */

@media (max-width: 380px) {
    .ewl-page[b-ry24awui0t] {
        padding-right: 12px;
        padding-left: 12px;
    }

    .ewl-thumb[b-ry24awui0t] {
        width: 48px;
        height: 48px;
    }

    .ewl-act[b-ry24awui0t] {
        padding: 0 11px;
    }
}
/* /Components/Pages/Employee/EmployeeWerkzeugDetail.razor.rz.scp.css */
/* ============================================================================
   Mitarbeiterbereich — Werkzeug-Detail (/mitarbeiter/werkzeug/{id})
   iOS-Look, monochrom. Tokens: page #f5f5f7 · surface #fff · ink #16181c
   ink-soft #3c4148 · muted #80858d · line #e4e4e7 · fill #efeff1
   Status ruhig-semantisch: Lager grün, Reparatur warnfarben, Defekt rot.
============================================================================ */

.ewz-page[b-i50rb6z29o] {
    box-sizing: border-box;
    min-height: 100dvh;
    padding: max(16px, env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom));
    /* Hintergrund kommt global von .employee-app-page (app.css) */
    color: #16181c;
    font: 15px/1.45 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-variant-numeric: tabular-nums;
    overflow-x: hidden;
    -webkit-tap-highlight-color: transparent;
}

.ewz-topbar[b-i50rb6z29o],
.ewz-empty[b-i50rb6z29o],
.ewz-hero[b-i50rb6z29o],
.ewz-chips[b-i50rb6z29o],
.ewz-section[b-i50rb6z29o],
.ewz-note[b-i50rb6z29o] {
    width: min(460px, 100%);
    margin-left: auto;
    margin-right: auto;
}

/* -- Topbar (Zurück + großer Titel) ----------------------------------------- */

.ewz-topbar[b-i50rb6z29o] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    padding: 2px 2px 0;
}

.ewz-back[b-i50rb6z29o] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    color: #3c4148;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .ewz-back:hover[b-i50rb6z29o] {
        background: #efeff1;
        color: #16181c;
    }
}


.ewz-back:focus-visible[b-i50rb6z29o] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.ewz-back:active[b-i50rb6z29o] {
    transform: scale(0.94);
}

.ewz-topbar-text[b-i50rb6z29o] {
    min-width: 0;
}

.ewz-kicker[b-i50rb6z29o] {
    display: block;
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ewz-topbar h1[b-i50rb6z29o] {
    margin: 1px 0 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: 0.2px;
    line-height: 1.12;
    overflow-wrap: anywhere;
}

.ewz-empty[b-i50rb6z29o] {
    border: 1px dashed #e4e4e7;
    border-radius: 20px;
    padding: 22px 16px;
    background: #fff;
    color: #80858d;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
}

/* -- Hero: Foto + Status + Halter --------------------------------------------- */

.ewz-hero[b-i50rb6z29o] {
    display: flex;
    flex-direction: column;
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    overflow: hidden;
    margin-bottom: 12px;
}

.ewz-photo[b-i50rb6z29o] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 190px;
    color: #c7cad0;
    background: #efeff1;
}

.ewz-photo img[b-i50rb6z29o] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ewz-hero-body[b-i50rb6z29o] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding: 13px 14px;
}

.ewz-status[b-i50rb6z29o] {
    display: inline-flex;
    align-items: center;
    height: 24px;
    border-radius: 999px;
    padding: 0 10px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.ewz-status--im_lager[b-i50rb6z29o] {
    color: #137a3b;
    background: #dff2e7;
}

.ewz-status--ausgegeben[b-i50rb6z29o] {
    color: #16181c;
    background: #efeff1;
}

.ewz-status--reparatur[b-i50rb6z29o] {
    color: #a15c00;
    background: #f7ead8;
}

.ewz-status--defekt[b-i50rb6z29o] {
    color: #b3392e;
    background: #fbeae8;
}

.ewz-status--verloren[b-i50rb6z29o] {
    color: #fff;
    background: #3c4148;
}

.ewz-holder[b-i50rb6z29o] {
    color: #3c4148;
    font-size: 14px;
    font-weight: 600;
}

.ewz-holder strong[b-i50rb6z29o] {
    color: #16181c;
    font-weight: 800;
}

.ewz-meta[b-i50rb6z29o] {
    margin: 0;
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}

/* -- Fristen-Hinweise ----------------------------------------------------------- */

.ewz-chips[b-i50rb6z29o] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 12px;
}

.ewz-chip[b-i50rb6z29o] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 28px;
    border-radius: 999px;
    padding: 0 11px;
    font-size: 12px;
    font-weight: 800;
}

.ewz-chip--soon[b-i50rb6z29o] {
    color: #a15c00;
    background: #f7ead8;
}

.ewz-chip--over[b-i50rb6z29o] {
    color: #fff;
    background: #e2483b;
}

/* -- Abschnitts-Karten -------------------------------------------------------------- */

.ewz-section[b-i50rb6z29o] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    border: 1px solid #e4e4e7;
    border-radius: 20px;
    padding: 14px;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    margin-bottom: 12px;
}

.ewz-section-title[b-i50rb6z29o] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* „Du hast dieses Werkzeug" */
.ewz-mine[b-i50rb6z29o] {
    display: flex;
    align-items: center;
    gap: 8px;
    border-radius: 12px;
    padding: 11px 13px;
    color: #137a3b;
    background: #dff2e7;
    font-size: 14px;
    font-weight: 700;
}

/* Auf mich nehmen */
.ewz-self[b-i50rb6z29o] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 50px;
    border: 1px solid #16181c;
    border-radius: 999px;
    padding: 0 16px;
    color: #fff;
    background: #16181c;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.4);
    font: inherit;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .ewz-self:hover:not(:disabled)[b-i50rb6z29o] {
        background: #26282e;
    }
}

/* Mitarbeiteransicht (Vorschau): Buchen gesperrt */
.ewz-self:disabled[b-i50rb6z29o] {
    cursor: not-allowed;
    opacity: 0.45;
}


.ewz-self:focus-visible[b-i50rb6z29o] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.18);
}

.ewz-self:active:not(:disabled)[b-i50rb6z29o] {
    transform: scale(0.98);
}

/* Trenner „oder …" */
.ewz-or[b-i50rb6z29o] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 2px 0;
}

.ewz-or[b-i50rb6z29o]::before,
.ewz-or[b-i50rb6z29o]::after {
    content: "";
    flex: 1;
    height: 1px;
    background: #e4e4e7;
}

.ewz-or span[b-i50rb6z29o] {
    color: #80858d;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

/* Ziel-Art (Person / Fahrzeug / Baustelle) */
.ewz-typeseg[b-i50rb6z29o] {
    display: flex;
    gap: 2px;
    padding: 4px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #efeff1;
}

.ewz-typebtn[b-i50rb6z29o] {
    flex: 1 1 0;
    min-width: 0;
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 0;
    border-radius: 999px;
    padding: 0 8px;
    color: #3c4148;
    background: transparent;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease;
}

.ewz-typebtn span[b-i50rb6z29o] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (hover: hover) {
    .ewz-typebtn:hover[b-i50rb6z29o] {
        color: #16181c;
    }
}


.ewz-typebtn.is-active[b-i50rb6z29o] {
    background: #16181c;
    color: #fff;
}

@media (hover: hover) {
    .ewz-typebtn.is-active:hover[b-i50rb6z29o] {
        background: #16181c;
        color: #fff;
    }
}


/* Suche (iOS-Suchfeld) */
.ewz-searchwrap[b-i50rb6z29o] {
    position: relative;
    display: flex;
    align-items: center;
}

.ewz-searchicon[b-i50rb6z29o] {
    position: absolute;
    left: 14px;
    color: #80858d;
    pointer-events: none;
}

.ewz-search[b-i50rb6z29o] {
    box-sizing: border-box;
    width: 100%;
    height: 44px;
    border: 1px solid transparent;
    border-radius: 12px;
    padding: 0 14px 0 40px;
    color: #16181c;
    background: #efeff1;
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.ewz-search[b-i50rb6z29o]::placeholder {
    color: #80858d;
}

.ewz-search:focus[b-i50rb6z29o] {
    outline: none;
    border-color: #16181c;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

/* Ziel-Liste */
.ewz-targets[b-i50rb6z29o] {
    max-height: 264px;
    display: flex;
    flex-direction: column;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    background: #fff;
    overflow-y: auto;
}

.ewz-targets-empty[b-i50rb6z29o] {
    padding: 14px;
    color: #80858d;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
}

.ewz-target[b-i50rb6z29o] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    border: 0;
    padding: 9px 13px;
    color: #16181c;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.13s ease, color 0.13s ease;
}

.ewz-target + .ewz-target[b-i50rb6z29o] {
    border-top: 1px solid #f0f0f2;
}

@media (hover: hover) {
    .ewz-target:hover[b-i50rb6z29o] {
        background: #f7f7f9;
    }
}


.ewz-target:focus-visible[b-i50rb6z29o] {
    outline: none;
    background: #efeff1;
}

.ewz-target.is-sel[b-i50rb6z29o] {
    background: #16181c;
    color: #fff;
}

@media (hover: hover) {
    .ewz-target.is-sel:hover[b-i50rb6z29o] {
        background: #16181c;
        color: #fff;
    }
}


.ewz-target-body[b-i50rb6z29o] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.ewz-target-body strong[b-i50rb6z29o] {
    font-size: 14px;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ewz-target-body small[b-i50rb6z29o] {
    color: #80858d;
    font-size: 12px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ewz-target.is-sel .ewz-target-body small[b-i50rb6z29o] {
    color: rgba(255, 255, 255, 0.72);
}

.ewz-nu[b-i50rb6z29o] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    height: 20px;
    border-radius: 999px;
    padding: 0 8px;
    color: #16181c;
    background: #efeff1;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.ewz-target.is-sel .ewz-nu[b-i50rb6z29o] {
    color: #16181c;
    background: #fff;
}

.ewz-target-check[b-i50rb6z29o] {
    flex-shrink: 0;
    display: inline-flex;
    color: #fff;
}

/* Ausgeben-Button */
.ewz-assign[b-i50rb6z29o] {
    min-height: 50px;
    border: 1px solid #16181c;
    border-radius: 999px;
    padding: 0 16px;
    color: #fff;
    background: #16181c;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.4);
    font: inherit;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .ewz-assign:hover:not(:disabled)[b-i50rb6z29o] {
        background: #26282e;
    }
}


.ewz-assign:focus-visible[b-i50rb6z29o] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.18);
}

.ewz-assign:active:not(:disabled)[b-i50rb6z29o] {
    transform: scale(0.98);
}

.ewz-assign:disabled[b-i50rb6z29o] {
    cursor: not-allowed;
    border-color: #e4e4e7;
    color: #80858d;
    background: #efeff1;
    box-shadow: none;
}

/* Hinweis, wenn nicht buchbar */
.ewz-note[b-i50rb6z29o] {
    border-radius: 14px;
    padding: 12px 14px;
    color: #3c4148;
    background: #efeff1;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
    margin-bottom: 12px;
}

/* -- Status melden -------------------------------------------------------------------- */

.ewz-stategrid[b-i50rb6z29o] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.ewz-state[b-i50rb6z29o] {
    position: relative;
    min-height: 72px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 10px 8px;
    color: #16181c;
    background: #fff;
    font: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .ewz-state:hover:not(:disabled)[b-i50rb6z29o] {
        background: #efeff1;
    }
}


.ewz-state:focus-visible[b-i50rb6z29o] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.ewz-state:active:not(:disabled)[b-i50rb6z29o] {
    transform: scale(0.97);
}

.ewz-state-ico[b-i50rb6z29o] {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: #16181c;
    background: #efeff1;
    transition: background 0.15s ease, color 0.15s ease;
}

.ewz-state--im_lager .ewz-state-ico[b-i50rb6z29o] {
    color: #137a3b;
    background: #dff2e7;
}

.ewz-state--reparatur .ewz-state-ico[b-i50rb6z29o] {
    color: #a15c00;
    background: #f7ead8;
}

.ewz-state--defekt .ewz-state-ico[b-i50rb6z29o] {
    color: #b3392e;
    background: #fbeae8;
}

.ewz-state--verloren .ewz-state-ico[b-i50rb6z29o] {
    color: #fff;
    background: #3c4148;
}

.ewz-state-label[b-i50rb6z29o] {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
    font-weight: 800;
}

/* Aktueller Status: schwarz markiert, nicht klickbar */
.ewz-state.is-current[b-i50rb6z29o] {
    border-color: #16181c;
    background: #16181c;
    color: #fff;
    cursor: default;
}

.ewz-state.is-current .ewz-state-ico[b-i50rb6z29o] {
    color: #fff;
    background: rgba(255, 255, 255, 0.14);
}

.ewz-state-now[b-i50rb6z29o] {
    position: absolute;
    top: 7px;
    right: 7px;
    display: inline-flex;
    align-items: center;
    height: 18px;
    border-radius: 999px;
    padding: 0 7px;
    color: #16181c;
    background: #fff;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* -- Schmale Geräte --------------------------------------------------------------------- */

@media (max-width: 380px) {
    .ewz-page[b-i50rb6z29o] {
        padding-right: 12px;
        padding-left: 12px;
    }

    .ewz-photo[b-i50rb6z29o] {
        height: 165px;
    }

    .ewz-typebtn[b-i50rb6z29o] {
        font-size: 12px;
    }
}
/* /Components/Pages/Fleet/Fleet.razor.rz.scp.css */
/* ===============================================================
   FUHRPARK — Schwarz-Weiß-Redesign (monochrom, passend zum Header)
   Akzent = Schwarz (#16181c). Frist-Warnungen (rot/gelb/grün) und
   das EU-Kennzeichen bleiben semantisch farbig.
=============================================================== */

/* -- Seite: Schrift + Hintergrund an den Header angleichen ----------------- */
/* Aufbau wie /lager und /werkzeug: feste Höhe, Kopf steht, nur der Inhalt scrollt.
   Damit haben alle Ressourcen-Seiten dieselben Ränder und der Seitenkopf springt
   nicht mehr, wenn der Inhalt länger wird. */
.flt-page[b-2ndfv7lhoh] {
    height: calc(100vh - var(--app-header-h));
    height: calc(100dvh - var(--app-header-h));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #f5f5f7;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #16181c;
}

.flt-header[b-2ndfv7lhoh] {
    flex: 0 0 auto;
    /* width: 100% ist Pflicht: im Flex-Container würde margin-inline: auto das Element
       sonst auf Inhaltsbreite schrumpfen und mittig setzen (Muster wie .lg-header). */
    width: 100%;
}

.flt-scroll[b-2ndfv7lhoh] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    /* Schmale Scrollbar wie in /lager und /werkzeug */
    scrollbar-width: thin;
    scrollbar-color: #c6c9ce transparent;
    scrollbar-gutter: stable;
    padding-right: 2px;
}

.flt-scroll[b-2ndfv7lhoh]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.flt-scroll[b-2ndfv7lhoh]::-webkit-scrollbar-track {
    background: transparent;
}

.flt-scroll[b-2ndfv7lhoh]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .flt-scroll[b-2ndfv7lhoh]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

/* Geteilte settings-*-Elemente (nur auf dieser Seite) entblauen */
.flt-page .settings-kicker[b-2ndfv7lhoh] {
    color: #80858d;
}

.flt-page .settings-counter[b-2ndfv7lhoh] {
    color: #80858d;
}

/* Seitentitel: Unterlängen (z. B. „g" in Fahrzeuge) nicht abschneiden — die
   settings-Klasse hat overflow:hidden für Ellipsis, das clippt bei Plus Jakarta Sans. */
.flt-page .settings-title-current[b-2ndfv7lhoh] {
    overflow: visible;
    line-height: 1.2;
}

/* Primär-Button (Neu / Speichern / Erstes Fahrzeug) → schwarz statt blau.
   Bare-Selektor, damit auch die Buttons im AppModal (außerhalb .flt-page,
   aber in dieser Komponente gerendert) erfasst werden. */
.settings-btn--primary[b-2ndfv7lhoh] {
    background: #16181c;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .3);
}

@media (hover: hover) {
    .settings-btn--primary:hover[b-2ndfv7lhoh] {
        background: #26282e;
        box-shadow: 0 8px 20px -12px rgba(0, 0, 0, .34);
    }
}

/* Text-Inputs: Fokus-Ring schwarz statt blau */
.settings-input:focus[b-2ndfv7lhoh] {
    border-color: #16181c;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

/* -- Seitenkopf ------------------------------------------------------------ */
.flt-header[b-2ndfv7lhoh] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto 22px;
}

/* Beide Kopf-Knöpfe als eine Gruppe rechts */
.flt-header-actions[b-2ndfv7lhoh] {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex: 0 0 auto;
}

.flt-mail-btn[b-2ndfv7lhoh] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    flex: 0 0 auto;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    color: #3c4148;
    cursor: pointer;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    transition: background .12s ease, border-color .12s ease, color .12s ease;
}

@media (hover: hover) {
    .flt-mail-btn:hover[b-2ndfv7lhoh] {
        background: #efeff1;
        color: #16181c;
    }
}

.flt-mail-btn--alert[b-2ndfv7lhoh] {
    border-color: #f3b0a8;
    color: #b42318;
}

.flt-mail-badge[b-2ndfv7lhoh] {
    position: absolute;
    top: -.4rem;
    right: -.4rem;
    min-width: 1.15rem;
    height: 1.15rem;
    padding: 0 .3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #d92d20;
    color: #fff;
    font-size: .7rem;
    font-weight: 700;
    border-radius: 999px;
    box-shadow: 0 0 0 2px #fff;
}

/* -- Frist-Chips in der Liste (semantisch — bleiben farbig) --------------- */
.flt-chips[b-2ndfv7lhoh] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .4rem;
}

.flt-chip[b-2ndfv7lhoh] {
    display: inline-flex;
    align-items: center;
    padding: .12rem .45rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 600;
    border: 1px solid transparent;
    white-space: nowrap;
}

.flt-chip--rot[b-2ndfv7lhoh] {
    background: #fde8e6;
    color: #b42318;
    border-color: #f5c2bd;
}

.flt-chip--gelb[b-2ndfv7lhoh] {
    background: #fef3da;
    color: #b45309;
    border-color: #f6dca0;
}

.flt-chip--ok[b-2ndfv7lhoh] {
    background: #efeff1;
    color: #3c4148;
    border-color: #e4e4e7;
}

/* -- Edit-Modal: Header (im AppModal-Header-Slot) ------------------------- */
.flt-edit-head[b-2ndfv7lhoh] {
    display: flex;
    align-items: center;
    gap: .8rem;
}

.flt-edit-head-icon[b-2ndfv7lhoh] {
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 auto;
    border-radius: .75rem;
    background: #efeff1;
    color: #16181c;
}

.flt-edit-head-text[b-2ndfv7lhoh] {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
    min-width: 0;
}

.flt-edit-head-title[b-2ndfv7lhoh] {
    font-weight: 700;
    font-size: 1.1rem;
    color: #16181c;
}

.flt-edit-head-sub[b-2ndfv7lhoh] {
    font-size: .82rem;
    color: #80858d;
}

/* -- Formular-Abschnitte (Fristen, Vertrag) unter den Stammdaten ----------- */
.flt-form-section[b-2ndfv7lhoh] {
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid #e4e4e7;
}

.flt-form-section-head[b-2ndfv7lhoh] {
    display: flex;
    align-items: baseline;
    gap: .55rem;
    margin-bottom: .75rem;
}

.flt-form-section-title[b-2ndfv7lhoh] {
    font-weight: 700;
    color: #16181c;
}

.flt-form-section-sub[b-2ndfv7lhoh] {
    font-size: .76rem;
    color: #80858d;
}

/* -- Stammdaten-Formular -------------------------------------------------- */
.flt-form[b-2ndfv7lhoh] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .85rem 1rem;
}

.flt-field[b-2ndfv7lhoh] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    min-width: 0;
}

.flt-field--full[b-2ndfv7lhoh] {
    grid-column: 1 / -1;
}

.flt-field > span[b-2ndfv7lhoh] {
    font-size: .8rem;
    font-weight: 600;
    color: #3c4148;
}

.flt-field-error[b-2ndfv7lhoh] {
    color: #b42318;
    font-size: .75rem;
}

.flt-textarea[b-2ndfv7lhoh] {
    height: 4.5rem;
    padding: 8px 12px;
    line-height: 1.4;
    resize: none;
    font: inherit;
}

/* -- Fristen-Modal: Kopf -------------------------------------------------- */
.flt-fr-head[b-2ndfv7lhoh] {
    display: flex;
    align-items: center;
    gap: .7rem;
}

.flt-fr-head-icon[b-2ndfv7lhoh] {
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 auto;
    border-radius: .75rem;
    background: #efeff1;
    color: #16181c;
}

.flt-fr-head-text[b-2ndfv7lhoh] {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.flt-fr-kicker[b-2ndfv7lhoh] {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: #80858d;
}

.flt-fr-title[b-2ndfv7lhoh] {
    margin: 0;
    font-size: 1.18rem;
    font-weight: 700;
    color: #16181c;
}

.flt-fr-summary[b-2ndfv7lhoh] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .9rem;
}

.flt-fr-stat[b-2ndfv7lhoh] {
    display: inline-flex;
    align-items: center;
    gap: .32rem;
    padding: .25rem .65rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 600;
}

.flt-fr-stat b[b-2ndfv7lhoh] {
    font-size: .92rem;
    font-variant-numeric: tabular-nums;
}

.flt-fr-stat--rot[b-2ndfv7lhoh] {
    background: #fde8e6;
    color: #b42318;
}

.flt-fr-stat--gelb[b-2ndfv7lhoh] {
    background: #fef3da;
    color: #b45309;
}

/* -- Fristen-Modal: Leerzustand ------------------------------------------ */
.flt-fr-empty[b-2ndfv7lhoh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: .5rem;
    padding: 1.6rem .5rem .9rem;
}

.flt-fr-empty-icon[b-2ndfv7lhoh] {
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: #e7f7ee;
    color: #12b76a;
    margin-bottom: .15rem;
}

.flt-fr-empty-title[b-2ndfv7lhoh] {
    font-weight: 700;
    color: #16181c;
}

.flt-fr-empty-sub[b-2ndfv7lhoh] {
    font-size: .85rem;
    color: #80858d;
    max-width: 19rem;
}

/* -- Fristen-Modal: Liste ------------------------------------------------- */
.flt-fr-list[b-2ndfv7lhoh] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.flt-fr-item[b-2ndfv7lhoh] {
    position: relative;
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .62rem .7rem .62rem .85rem;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #e4e4e7;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    overflow: hidden;
}

/* Status nur noch als farbiger Streifen links — Fläche bleibt weiß (monochrom) */
.flt-fr-item[b-2ndfv7lhoh]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: #cfd0d3;
}

.flt-fr-item--rot[b-2ndfv7lhoh]::before {
    background: #d92d20;
}

.flt-fr-item--gelb[b-2ndfv7lhoh]::before {
    background: #e0930a;
}

.flt-fr-mid[b-2ndfv7lhoh] {
    display: flex;
    flex-direction: column;
    gap: .12rem;
    min-width: 0;
    flex: 1 1 auto;
}

.flt-fr-name[b-2ndfv7lhoh] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 700;
    font-size: .9rem;
    color: #16181c;
}

.flt-fr-name-ico[b-2ndfv7lhoh] {
    display: inline-flex;
    flex: 0 0 auto;
    color: #80858d;
}

.flt-fr-item--rot .flt-fr-name-ico[b-2ndfv7lhoh] {
    color: #d92d20;
}

.flt-fr-item--gelb .flt-fr-name-ico[b-2ndfv7lhoh] {
    color: #b45309;
}

.flt-fr-when[b-2ndfv7lhoh] {
    font-size: .78rem;
    color: #80858d;
}

.flt-fr-item--rot .flt-fr-when[b-2ndfv7lhoh] {
    color: #b42318;
    font-weight: 600;
}

.flt-fr-item--gelb .flt-fr-when[b-2ndfv7lhoh] {
    color: #b45309;
    font-weight: 600;
}

/* Datums-Kachel rechts — neutrale graue Kachel (Status sagt der Streifen links) */
.flt-fr-cal[b-2ndfv7lhoh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    /* min-width statt fester Breite: „AUG" behält die Kachelgröße, „13. AUG" darf
       wachsen statt umzubrechen — sonst wird die Kachel dreizeilig und sitzt neben
       den zweizeiligen Monats-Fristen schief. */
    min-width: 2.8rem;
    padding: .32rem .45rem;
    border-radius: 9px;
    background: #efeff1;
    line-height: 1.15;
}

.flt-fr-cal-mon[b-2ndfv7lhoh] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #3c4148;
    white-space: nowrap;
}

.flt-fr-cal-year[b-2ndfv7lhoh] {
    font-size: .82rem;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

/* -- Kennzeichen-Schild (EU-Style — bleibt realistisch farbig) ----------- */
.flt-plate[b-2ndfv7lhoh] {
    display: inline-flex;
    align-items: stretch;
    height: 1.85rem;
    flex: 0 0 auto;
    border: 1.5px solid #11181f;
    border-radius: .35rem;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .14);
}

.flt-plate-eu[b-2ndfv7lhoh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    width: 1.05rem;
    padding-bottom: .18rem;
    background: #003399;
    color: #fff;
    font-size: .56rem;
    font-weight: 700;
    line-height: 1;
}

.flt-plate-stars[b-2ndfv7lhoh] {
    width: .42rem;
    height: .42rem;
    margin-top: .2rem;
    margin-bottom: .12rem;
    border: 1.5px solid #ffd400;
    border-radius: 50%;
}

.flt-plate-no[b-2ndfv7lhoh] {
    display: flex;
    align-items: center;
    padding: 0 .55rem;
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-weight: 700;
    font-size: .95rem;
    letter-spacing: .03em;
    color: #11181f;
}

/* -- Foto im Modal-Header (rechts neben dem Titel) ----------------------- */
.flt-photo-field[b-2ndfv7lhoh] {
    position: relative;
    flex: 0 0 auto;
    width: 240px;
    margin-left: auto;
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

/* <input type=file> über einen „visually hidden"-Wrapper verstecken — NICHT via
   opacity/pointer-events am Input selbst: das verhindert auf iOS Safari, dass das
   Antippen des Labels den Datei-Dialog öffnet. Gleiches Muster wie der Chat-Upload
   (.chat-file-input-wrap), der auf iOS funktioniert. Angesprochen über Label/Drop. */
.flt-file-input-wrap[b-2ndfv7lhoh] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    margin: -1px;
    padding: 0;
    border: 0;
    white-space: nowrap;
    pointer-events: none;
}

.flt-file-input-wrap > *[b-2ndfv7lhoh] {
    width: 1px;
    height: 1px;
}

/* Leerer Zustand: kompakte Drop-Zone auf Header-Höhe */
.flt-photo-drop[b-2ndfv7lhoh] {
    display: flex;
    align-items: center;
    gap: .65rem;
    height: 72px;
    padding: 0 .8rem;
    border: 2px dashed #d4d4d8;
    border-radius: 12px;
    background: #f7f7f8;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}

@media (hover: hover) {
    .flt-photo-drop:hover[b-2ndfv7lhoh] {
        border-color: #16181c;
        background: #efeff1;
    }
}

.flt-photo-drop-ico[b-2ndfv7lhoh] {
    display: grid;
    place-items: center;
    width: 2.3rem;
    height: 2.3rem;
    flex: 0 0 auto;
    border-radius: 9px;
    background: #efeff1;
    color: #16181c;
}

.flt-photo-drop-txt[b-2ndfv7lhoh] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.flt-photo-drop-main[b-2ndfv7lhoh] {
    font-weight: 600;
    color: #3c4148;
    font-size: .85rem;
}

.flt-photo-drop-hint[b-2ndfv7lhoh] {
    font-size: .74rem;
    color: #80858d;
}

/* Vorhandenes Bild: kompakte Vorschau + Aktionen */
.flt-photo-card[b-2ndfv7lhoh] {
    position: relative;
    display: flex;
    align-items: center;
    gap: .65rem;
    height: 72px;
}

.flt-photo-view[b-2ndfv7lhoh] {
    position: relative;
    flex: 0 0 auto;
    width: 104px;
    height: 72px;
    padding: 0;
    border: 0;
    border-radius: 10px;
    overflow: hidden;
    background: #efeff1;
    cursor: pointer;
}

.flt-photo-view--static[b-2ndfv7lhoh] {
    cursor: default;
}

.flt-photo-view img[b-2ndfv7lhoh] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.flt-photo-view-hint[b-2ndfv7lhoh] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    background: rgba(0, 0, 0, .42);
    color: #fff;
    font-size: .74rem;
    font-weight: 600;
    opacity: 0;
    transition: opacity .15s ease;
}

@media (hover: hover) {
    .flt-photo-view:hover .flt-photo-view-hint[b-2ndfv7lhoh] {
        opacity: 1;
    }
}

.flt-photo-side[b-2ndfv7lhoh] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .4rem;
    min-width: 0;
}

.flt-photo-btn[b-2ndfv7lhoh] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .6rem;
    background: #fff;
    border: 1.5px solid #e4e4e7;
    border-radius: 8px;
    font: inherit;
    font-size: .8rem;
    font-weight: 600;
    color: #16181c;
    cursor: pointer;
}

@media (hover: hover) {
    .flt-photo-btn:hover[b-2ndfv7lhoh] {
        background: #efeff1;
        border-color: #e4e4e7;
    }
}

.flt-photo-link[b-2ndfv7lhoh] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    font-size: .78rem;
    color: #b42318;
    cursor: pointer;
}

@media (hover: hover) {
    .flt-photo-link:hover[b-2ndfv7lhoh] {
        text-decoration: underline;
    }
}

/* Drop-Overlay-Hinweis (nur während Drag) */
.flt-photo-droptip[b-2ndfv7lhoh] {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: rgba(22, 24, 28, .12);
    border: 2px dashed #16181c;
    pointer-events: none;
}

.flt-photo-droptip span[b-2ndfv7lhoh] {
    padding: .25rem .65rem;
    background: #16181c;
    color: #fff;
    border-radius: 999px;
    font-size: .76rem;
    font-weight: 600;
}

/* Drag-Zustand (von fleetImageDrop.js gesetzt) */
.flt-photo-field.flt-drag .flt-photo-drop[b-2ndfv7lhoh] {
    border-color: #16181c;
    background: #efeff1;
}

.flt-photo-field.flt-drag .flt-photo-droptip[b-2ndfv7lhoh] {
    display: flex;
}

/* Status (klein, unter dem Foto) */
.flt-photo-busy[b-2ndfv7lhoh] {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .74rem;
    color: #80858d;
}

.flt-spinner[b-2ndfv7lhoh] {
    width: .85rem;
    height: .85rem;
    border: 2px solid #e4e4e7;
    border-top-color: #16181c;
    border-radius: 50%;
    animation: flt-spin-b-2ndfv7lhoh .7s linear infinite;
}

@keyframes flt-spin-b-2ndfv7lhoh {
    to { transform: rotate(360deg); }
}

.flt-photo-err[b-2ndfv7lhoh] {
    font-size: .74rem;
    color: #b42318;
}

/* -- Fahrzeug-Karten-Raster ---------------------------------------------- */
.flt-toolbar[b-2ndfv7lhoh] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    max-width: 1280px;
    margin: .25rem auto 1.1rem;
}

.flt-grid[b-2ndfv7lhoh] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
}

@media (max-width: 1180px) {
    .flt-grid[b-2ndfv7lhoh] { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 940px) {
    .flt-grid[b-2ndfv7lhoh] { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 680px) {
    .flt-grid[b-2ndfv7lhoh] { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 460px) {
    .flt-grid[b-2ndfv7lhoh] { grid-template-columns: 1fr; }
}

.flt-card[b-2ndfv7lhoh] {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    transition: transform .16s ease, box-shadow .16s ease;
}

@media (hover: hover) {
    .flt-card:hover[b-2ndfv7lhoh] {
        transform: translateY(-3px);
        box-shadow: 0 16px 34px -16px rgba(0, 0, 0, .26);
    }
}

/* Schwebende Karte am Zeiger/Finger — sauberer „angehobener" Look (keine
   Rotation) mit Akzent-Ring, gestaffeltem Schatten und kurzem Lift-Pop. */


/* Platzhalter-Slot: zeigt unmissverständlich, wo die Karte beim Loslassen landet */


/* Pfeil-Badge in der Mitte des Slots */


/* Während des Sortierens keinen Hover-Lift — würde mit dem Nachrücken (FLIP) kollidieren */
@media (hover: hover) {
}

.flt-card-photo[b-2ndfv7lhoh] {
    position: relative;
    aspect-ratio: 4 / 3;
    background: linear-gradient(135deg, #f0f0f2, #e2e2e6);
    overflow: hidden;
}


.flt-card-photo > img[b-2ndfv7lhoh] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .3s ease;
}


.flt-card-photo[b-2ndfv7lhoh]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 46%;
    background: linear-gradient(to top, rgba(0, 0, 0, .5), transparent);
    pointer-events: none;
}

.flt-card-noimg[b-2ndfv7lhoh] {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #aeb0b5;
}

.flt-card-plate[b-2ndfv7lhoh] {
    position: absolute;
    left: 11px;
    bottom: 11px;
    z-index: 2;
}


.flt-card-info[b-2ndfv7lhoh] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding: .85rem .9rem .95rem;
}

.flt-card-title[b-2ndfv7lhoh] {
    font-weight: 700;
    font-size: 1.02rem;
    color: #16181c;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.flt-card-meta[b-2ndfv7lhoh] {
    font-size: .82rem;
    color: #80858d;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.flt-card-person[b-2ndfv7lhoh] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .8rem;
    color: #3c4148;
    min-width: 0;
}

.flt-card-person > span[b-2ndfv7lhoh] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.flt-card-person svg[b-2ndfv7lhoh] {
    flex: 0 0 auto;
    color: #80858d;
}

.flt-card .flt-chips[b-2ndfv7lhoh] {
    margin-top: .2rem;
}

/* leere Flotte */
.flt-empty[b-2ndfv7lhoh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .7rem;
    padding: 3rem 1rem;
    text-align: center;
    color: #80858d;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
}

.flt-empty p[b-2ndfv7lhoh] {
    margin: 0;
    font-weight: 600;
    color: #3c4148;
}

/* Die Bild-Lightbox liegt in der Shared-Komponente AppLightbox. */


/* -- Mobile-Optimierung --------------------------------------------------- */
@media (max-width: 560px) {
    /* Stammdaten einspaltig statt 2 enge Spalten */
    .flt-form[b-2ndfv7lhoh] {
        grid-template-columns: 1fr;
    }

    /* Edit-Modal-Kopf: Foto-Feld bricht unter Icon+Titel um und wird voll breit
       (statt fester 240px, die auf schmalen Handys überlaufen) */
    .flt-edit-head[b-2ndfv7lhoh] {
        flex-wrap: wrap;
    }

    .flt-photo-field[b-2ndfv7lhoh] {
        width: 100%;
        flex-basis: 100%;
        margin-left: 0;
    }

    /* Toolbar darf umbrechen, falls Zähler + Neu-Button zu breit werden */
    .flt-toolbar[b-2ndfv7lhoh] {
        flex-wrap: wrap;
    }
}

/* -- Mängelmeldungen der Mitarbeiter -------------------------------------- */

/* Badge auf der Fahrzeugkarte (unten rechts, gegenüber dem Kennzeichen) */
.flt-card-meldungen[b-2ndfv7lhoh] {
    position: absolute;
    right: 11px;
    bottom: 11px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: .28rem;
    height: 1.55rem;
    padding: 0 .5rem;
    border: 1px solid #f0a9a4;
    border-radius: 999px;
    color: #a3231a;
    background: #fdeceb;
    font-size: .74rem;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
    transition: background .15s ease, transform .15s ease;
}

@media (hover: hover) {
    .flt-card-meldungen:hover[b-2ndfv7lhoh] {
        background: #fbdedb;
    }
}

.flt-card-meldungen:active[b-2ndfv7lhoh] {
    transform: scale(.94);
}

/* Kopfzeile des Modals: Zähler + „Erledigte zeigen" */
.flt-md-tools[b-2ndfv7lhoh] {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
    margin-top: .55rem;
}

.flt-md-list[b-2ndfv7lhoh] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.flt-md-item[b-2ndfv7lhoh] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: .45rem;
    padding: .7rem .8rem .7rem .95rem;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    overflow: hidden;
}

/* Status als Streifen links — wie bei den Fristen */
.flt-md-item[b-2ndfv7lhoh]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: #d92d20;
}

.flt-md-item--done[b-2ndfv7lhoh] {
    background: #fafafa;
    box-shadow: none;
}

.flt-md-item--done[b-2ndfv7lhoh]::before {
    background: #cfd0d3;
}

.flt-md-top[b-2ndfv7lhoh] {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
}

.flt-md-meta[b-2ndfv7lhoh] {
    flex: 1 1 auto;
    min-width: 0;
    color: #80858d;
    font-size: .76rem;
    font-weight: 700;
}

.flt-md-check[b-2ndfv7lhoh] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    height: 1.7rem;
    flex-shrink: 0;
    padding: 0 .6rem;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    color: #3c4148;
    background: #fff;
    font-size: .74rem;
    font-weight: 800;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}

@media (hover: hover) {
    .flt-md-check:hover[b-2ndfv7lhoh] {
        border-color: #16181c;
        background: #efeff1;
        color: #16181c;
    }
}

.flt-md-check:active[b-2ndfv7lhoh] {
    transform: scale(.95);
}

.flt-md-check--done[b-2ndfv7lhoh] {
    border-color: #b7dcc6;
    color: #2f6f4e;
    background: #e9f5ee;
}

.flt-md-text[b-2ndfv7lhoh] {
    margin: 0;
    color: #16181c;
    font-size: .88rem;
    font-weight: 600;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.flt-md-item--done .flt-md-text[b-2ndfv7lhoh] {
    color: #80858d;
}

.flt-md-img[b-2ndfv7lhoh] {
    align-self: flex-start;
    padding: 0;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: none;
    overflow: hidden;
    cursor: zoom-in;
    line-height: 0;
}

.flt-md-img img[b-2ndfv7lhoh] {
    display: block;
    max-width: 190px;
    max-height: 130px;
    object-fit: cover;
}

.flt-md-by[b-2ndfv7lhoh] {
    color: #80858d;
    font-size: .74rem;
    font-weight: 600;
}

/* Kopfzeile des Meldungs-Modals: Titel links, Schalter oben rechts */
.flt-md-head[b-2ndfv7lhoh] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

/* Schalter „Erledigte" — Bauart wie der Aktiv-Schalter auf /users */
.flt-md-switch[b-2ndfv7lhoh] {
    flex-shrink: 0;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    padding: 0 .65rem 0 .5rem;
    color: #80858d;
    background: #efeff1;
    font: inherit;
    font-size: .78rem;
    font-weight: 750;
    cursor: pointer;
    transition: color .15s, background .15s;
}

.flt-md-switch-track[b-2ndfv7lhoh] {
    position: relative;
    width: 34px;
    height: 20px;
    flex-shrink: 0;
    border-radius: 999px;
    background: #d1d1d6;
    transition: background .18s;
}

.flt-md-switch-thumb[b-2ndfv7lhoh] {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .25);
    transition: transform .18s cubic-bezier(.34, 1.56, .64, 1);
}

.flt-md-switch--on[b-2ndfv7lhoh] {
    color: #16181c;
    background: #fff;
}

.flt-md-switch--on .flt-md-switch-track[b-2ndfv7lhoh] {
    background: #16181c;
}

.flt-md-switch--on .flt-md-switch-thumb[b-2ndfv7lhoh] {
    transform: translateX(14px);
}

.flt-md-switch:focus-visible[b-2ndfv7lhoh] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .14);
}

/* Das Warndreieck wirkt im Kreis zu tief (die Masse sitzt unten) — optisch ausgleichen. */
.flt-mail-btn--warn svg[b-2ndfv7lhoh] {
    transform: translateY(-1px);
}

/* Kachel öffnet die Detailansicht: der Link deckt die Fläche ab, alles Interaktive
   darüber (Meldungs-Badge) liegt per z-index davor. */
.flt-card--clickable[b-2ndfv7lhoh] {
    position: relative;
    cursor: pointer;
}

.flt-card-link[b-2ndfv7lhoh] {
    position: absolute;
    inset: 0;
    z-index: 3;
    border-radius: inherit;
}

.flt-card--clickable:focus-within[b-2ndfv7lhoh] {
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .14);
}

/* Nur für Screenreader — die Karte beschriftet sich sonst über ihren Inhalt. */
.settings-sr-only[b-2ndfv7lhoh] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* Badge muss über dem Kartenlink liegen, sonst ist er nicht klickbar. */
.flt-card-meldungen[b-2ndfv7lhoh] {
    z-index: 4;
}
/* /Components/Pages/Fleet/FleetDetail.razor.rz.scp.css */
/* ===============================================================
   FAHRZEUG-DETAIL (/fleet/{id}) — Leseansicht im Look von
   Werkzeug- und Lager-Detail: zwei Spalten, weiße Karten,
   schwarze Kennzahl-Karte, Status semantisch (rot/gelb).
=============================================================== */

.fld[b-02001urhqv] {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #16181c;
    max-width: 1280px;
    margin: 0 auto;
    padding-bottom: 16px;
}

/* -- Kopfleiste -- */

.fld-bar[b-02001urhqv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.fld-back[b-02001urhqv] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem .8rem .45rem .55rem;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    font: inherit;
    font-size: .86rem;
    font-weight: 600;
    color: #16181c;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease;
}

@media (hover: hover) {
    .fld-back:hover[b-02001urhqv] {
        background: #efeff1;
    }
}

.fld-bar-actions[b-02001urhqv] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.fld-iconbtn[b-02001urhqv] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .75rem;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    font: inherit;
    font-size: .84rem;
    font-weight: 600;
    color: #3c4148;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease, color .12s ease;
}

@media (hover: hover) {
    .fld-iconbtn:hover[b-02001urhqv] {
        background: #efeff1;
        color: #16181c;
    }

    .fld-iconbtn--del:hover[b-02001urhqv] {
        color: #d92d20;
        border-color: #f3b0a8;
    }
}

/* -- Aufteilung -- */

.fld-split[b-02001urhqv] {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 1.1rem;
    align-items: start;
}

.fld-main[b-02001urhqv],
.fld-side[b-02001urhqv] {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    min-width: 0;
}

/* -- Karten -- */

.fld-card[b-02001urhqv] {
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 1rem 1.1rem 1.1rem;
    background: #fff;
    box-shadow: 0 8px 22px -18px rgba(0, 0, 0, .24);
}

.fld-card-head[b-02001urhqv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: 12px;
}

.fld-card-title[b-02001urhqv] {
    margin: 0 0 12px;
    font-size: .96rem;
    font-weight: 800;
}

.fld-card-head .fld-card-title[b-02001urhqv] {
    margin: 0;
}

.fld-kicker[b-02001urhqv] {
    display: block;
    color: #80858d;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.fld-empty[b-02001urhqv] {
    margin: 0;
    color: #80858d;
    font-size: .84rem;
    font-weight: 600;
    line-height: 1.45;
}

/* -- Kopf-Karte mit Foto -- */

.fld-hero[b-02001urhqv] {
    display: flex;
    align-items: center;
    gap: 16px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 1rem 1.1rem 1rem 1rem;
    background: #fff;
    box-shadow: 0 8px 22px -18px rgba(0, 0, 0, .24);
}

.fld-hero-photo[b-02001urhqv] {
    width: 128px;
    height: 92px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 0;
    border-radius: 12px;
    padding: 0;
    background: #efeff1;
    color: #a9adb4;
    cursor: default;
}

.fld-hero-photo img[b-02001urhqv] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.fld-hero-photo--clickable[b-02001urhqv] {
    cursor: zoom-in;
}

.fld-hero-text[b-02001urhqv] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.fld-title[b-02001urhqv] {
    margin: 0;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1.15;
}

/* Kennzeichen-Schild — eigene Regeln, da Fleet.razor.css nur dort greift. */
.fld-plate[b-02001urhqv] {
    margin-top: 6px;
    align-self: flex-start;
    display: inline-flex;
    align-items: stretch;
    height: 1.85rem;
    border: 1.5px solid #11181f;
    border-radius: .35rem;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .14);
}

.fld-plate-eu[b-02001urhqv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    width: 1.05rem;
    padding-bottom: .18rem;
    background: #003399;
    color: #fff;
    font-size: .56rem;
    font-weight: 700;
    line-height: 1;
}

.fld-plate-stars[b-02001urhqv] {
    width: .42rem;
    height: .42rem;
    margin-top: .2rem;
    margin-bottom: .12rem;
    border: 1.5px solid #ffd400;
    border-radius: 50%;
}

.fld-plate-no[b-02001urhqv] {
    display: flex;
    align-items: center;
    padding: 0 .55rem;
    color: #11181f;
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: .03em;
}

/* -- Schwarze Kilometerstand-Karte -- */

.fld-status[b-02001urhqv] {
    border-radius: 16px;
    padding: 1rem 1.1rem 1.1rem;
    background: #16181c;
    color: #fff;
}

.fld-status-label[b-02001urhqv] {
    display: block;
    color: rgba(255, 255, 255, .6);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.fld-status-row[b-02001urhqv] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 4px;
}

.fld-status-value[b-02001urhqv] {
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: -.02em;
    font-variant-numeric: tabular-nums;
}

.fld-status-value small[b-02001urhqv] {
    margin-left: .25rem;
    font-size: .9rem;
    font-weight: 700;
    color: rgba(255, 255, 255, .65);
}

.fld-status-note[b-02001urhqv] {
    color: rgba(255, 255, 255, .6);
    font-size: .76rem;
    font-weight: 600;
    text-align: right;
}

/* Offene km laut Vertrag (nur Leasing/Miete) — auf der dunklen Karte. */
.fld-status-vertrag[b-02001urhqv] {
    display: block;
    margin-top: .55rem;
    padding-top: .55rem;
    border-top: 1px solid rgba(255, 255, 255, .14);
    color: rgba(255, 255, 255, .78);
    font-size: .8rem;
    font-weight: 700;
}

.fld-status-vertrag--rot[b-02001urhqv] {
    color: #ff8d84;
}

/* -- Kennzahlen -- */

.fld-kpis[b-02001urhqv] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.fld-kpi[b-02001urhqv] {
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    padding: 12px 14px;
    background: #fff;
    min-width: 0;
}

.fld-kpi-label[b-02001urhqv] {
    display: block;
    color: #80858d;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.fld-kpi-value[b-02001urhqv] {
    display: block;
    margin-top: 2px;
    font-size: 1.05rem;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fld-kpi--alert[b-02001urhqv] {
    border-color: #f0a9a4;
    background: #fdeceb;
}

.fld-kpi--alert .fld-kpi-value[b-02001urhqv] {
    color: #a3231a;
}

/* -- Datenzeilen -- */

.fld-rows[b-02001urhqv] {
    margin: 0;
    display: flex;
    flex-direction: column;
}

.fld-rows > div[b-02001urhqv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 7px 0;
    border-bottom: 1px solid #f2f2f4;
}

.fld-rows > div:last-child[b-02001urhqv] {
    border-bottom: 0;
}

.fld-rows dt[b-02001urhqv] {
    color: #80858d;
    font-size: .84rem;
    font-weight: 600;
}

.fld-rows dd[b-02001urhqv] {
    margin: 0;
    text-align: right;
    font-size: .86rem;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.fld-notiz[b-02001urhqv] {
    margin-top: 12px;
    border-top: 1px solid #f2f2f4;
    padding-top: 10px;
}

.fld-notiz p[b-02001urhqv] {
    margin: 4px 0 0;
    font-size: .86rem;
    font-weight: 600;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

/* -- Fristen-Chips -- */

.fld-chip[b-02001urhqv] {
    display: inline-flex;
    align-items: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 3px 10px;
    background: #efeff1;
    font-size: .78rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.fld-chip--gelb[b-02001urhqv] {
    border-color: #f0c86a;
    color: #7a5300;
    background: #fdf6e5;
}

.fld-chip--rot[b-02001urhqv] {
    border-color: #f0a9a4;
    color: #a3231a;
    background: #fdeceb;
}

.fld-chip--leer[b-02001urhqv] {
    color: #a9adb4;
    background: transparent;
    border-color: transparent;
}

/* -- Werkzeug an Bord -- */

.fld-tools[b-02001urhqv] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.fld-tool[b-02001urhqv] {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 8px 10px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    transition: background .12s ease;
}

@media (hover: hover) {
    .fld-tool:hover[b-02001urhqv] {
        background: #fafafa;
    }
}

.fld-tool-thumb[b-02001urhqv] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 10px;
    background: #efeff1;
    color: #80858d;
}

.fld-tool-thumb img[b-02001urhqv] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.fld-tool-body[b-02001urhqv] {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

.fld-tool-body strong[b-02001urhqv] {
    font-size: .88rem;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fld-tool-body small[b-02001urhqv] {
    color: #80858d;
    font-size: .76rem;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fld-tool--static[b-02001urhqv] {
    cursor: default;
}

@media (hover: hover) {
    .fld-tool--static:hover[b-02001urhqv] {
        background: #fff;
    }
}

.fld-tool-chevron[b-02001urhqv] {
    flex-shrink: 0;
    color: #c7cad0;
}

/* -- Mängelmeldungen -- */

.fld-md-switch[b-02001urhqv] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: .25rem .6rem .25rem .35rem;
    background: #efeff1;
    color: #80858d;
    font: inherit;
    font-size: .74rem;
    font-weight: 750;
    cursor: pointer;
    transition: color .15s, background .15s;
}

.fld-md-switch-track[b-02001urhqv] {
    position: relative;
    width: 30px;
    height: 18px;
    flex-shrink: 0;
    border-radius: 999px;
    background: #d1d1d6;
    transition: background .18s;
}

.fld-md-switch-thumb[b-02001urhqv] {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .25);
    transition: transform .18s cubic-bezier(.34, 1.56, .64, 1);
}

.fld-md-switch--on[b-02001urhqv] {
    color: #16181c;
    background: #fff;
}

.fld-md-switch--on .fld-md-switch-track[b-02001urhqv] {
    background: #16181c;
}

.fld-md-switch--on .fld-md-switch-thumb[b-02001urhqv] {
    transform: translateX(12px);
}

.fld-meldungen[b-02001urhqv] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.fld-meldung[b-02001urhqv] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
    overflow: hidden;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 10px 12px 10px 14px;
    background: #fff;
}

.fld-meldung[b-02001urhqv]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: #d92d20;
}

.fld-meldung--done[b-02001urhqv] {
    background: #fafafa;
}

.fld-meldung--done[b-02001urhqv]::before {
    background: #cfd0d3;
}

.fld-meldung-head[b-02001urhqv] {
    display: flex;
    align-items: center;
    gap: .6rem;
}

.fld-meldung-status[b-02001urhqv] {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 2px 8px;
    color: #a3231a;
    background: #fdeceb;
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.fld-meldung--done .fld-meldung-status[b-02001urhqv] {
    color: #2f6f4e;
    background: #e9f5ee;
}

.fld-meldung-meta[b-02001urhqv] {
    flex: 1 1 auto;
    min-width: 0;
    color: #80858d;
    font-size: .74rem;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fld-meldung-check[b-02001urhqv] {
    width: 26px;
    height: 26px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    color: #80858d;
    cursor: pointer;
    transition: background .12s, color .12s, border-color .12s;
}

@media (hover: hover) {
    .fld-meldung-check:hover[b-02001urhqv] {
        border-color: #16181c;
        color: #16181c;
        background: #efeff1;
    }
}

.fld-meldung-check--done[b-02001urhqv] {
    border-color: #b7dcc6;
    color: #2f6f4e;
    background: #e9f5ee;
}

.fld-meldung-text[b-02001urhqv] {
    margin: 0;
    font-size: .86rem;
    font-weight: 600;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.fld-meldung--done .fld-meldung-text[b-02001urhqv] {
    color: #80858d;
}

.fld-meldung-img[b-02001urhqv] {
    align-self: flex-start;
    padding: 0;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: none;
    overflow: hidden;
    cursor: zoom-in;
    line-height: 0;
}

.fld-meldung-img img[b-02001urhqv] {
    display: block;
    max-width: 170px;
    max-height: 120px;
    object-fit: cover;
}

.fld-meldung-by[b-02001urhqv] {
    color: #80858d;
    font-size: .72rem;
    font-weight: 600;
}

/* -- Kilometer-Verlauf -- */

.fld-km[b-02001urhqv] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    max-height: 260px;
    overflow-y: auto;
}

.fld-km-row[b-02001urhqv] {
    display: flex;
    align-items: baseline;
    gap: .5rem;
    padding: 7px 0;
    border-bottom: 1px solid #f2f2f4;
}

.fld-km-row:last-child[b-02001urhqv] {
    border-bottom: 0;
}

.fld-km-row strong[b-02001urhqv] {
    font-size: .88rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.fld-km-diff[b-02001urhqv] {
    color: #2f6f4e;
    font-size: .74rem;
    font-weight: 800;
}

.fld-km-diff--minus[b-02001urhqv] {
    color: #a3231a;
}

.fld-km-meta[b-02001urhqv] {
    margin-left: auto;
    color: #80858d;
    font-size: .74rem;
    font-weight: 600;
    text-align: right;
}

/* -- Nicht gefunden -- */

.fld-missing[b-02001urhqv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    border: 1px dashed #e4e4e7;
    border-radius: 16px;
    padding: 40px 20px;
    background: #fff;
    text-align: center;
}

.fld-missing p[b-02001urhqv] {
    margin: 0;
    color: #3c4148;
    font-size: .9rem;
    font-weight: 700;
}

.fld-missing-ico[b-02001urhqv] {
    width: 58px;
    height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    color: #a9adb4;
    background: #efeff1;
}

/* -- Schmale Fenster -- */

@media (max-width: 940px) {
    .fld-split[b-02001urhqv] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .fld-hero[b-02001urhqv] {
        flex-direction: column;
        align-items: flex-start;
    }

    .fld-hero-photo[b-02001urhqv] {
        width: 100%;
        height: 140px;
    }

    .fld-kpis[b-02001urhqv] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Lager/Lager.razor.rz.scp.css */
/* ===============================================================
   LAGER — Schwarz-Weiß-Redesign (monochrom, passend zum Header)
   Akzent = Schwarz (#16181c). Negativbestand bleibt rot (#D92D20),
   Mindestbestand-Warnung gelb/orange (#E89C00). Vollhöhe mit
   Innen-Scroll der Liste.
=============================================================== */

/* -- Seite: Schrift + Hintergrund an den Header angleichen ----------------- */
.lg-page[b-48hfnonv7f] {
    /* 100dvh statt 100vh (100vh bleibt Fallback): auf iPad/iOS ist 100vh die große
       Viewport-Höhe — sonst ließe sich der Header um die Safari-Leiste wegscrollen. */
    height: calc(100vh - var(--app-header-h));
    height: calc(100dvh - var(--app-header-h));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #f5f5f7;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #16181c;
}

/* Geteilte settings-*-Elemente (nur auf dieser Seite) entblauen */
.lg-page .settings-kicker[b-48hfnonv7f],
.lg-page .settings-counter[b-48hfnonv7f] {
    color: #80858d;
}

.lg-page .settings-title-current[b-48hfnonv7f] {
    overflow: visible;
    line-height: 1.2;
}

/* Primär-Button (Neu / Speichern …) → schwarz statt blau. Bare-Selektor,
   damit auch Buttons in AppModals dieser Komponente erfasst werden. */
.settings-btn--primary[b-48hfnonv7f] {
    background: #16181c;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .3);
}

@media (hover: hover) {
    .settings-btn--primary:hover[b-48hfnonv7f] {
        background: #26282e;
        box-shadow: 0 8px 20px -12px rgba(0, 0, 0, .34);
    }
}

/* -- Kopfzeile + Umschalter ------------------------------------------------ */
.lg-header[b-48hfnonv7f] {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.lg-viewswitch[b-48hfnonv7f] {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    background: #efeff1;
    border: 1px solid #e4e4e7;
    border-radius: 13px;
}

.lg-pill[b-48hfnonv7f] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 36px;
    padding: 0 15px;
    border: none;
    border-radius: 10px;
    background: transparent;
    color: #80858d;
    font: inherit;
    font-size: 0.86rem;
    font-weight: 800;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, box-shadow 0.15s;
}

@media (hover: hover) {
    .lg-pill:hover[b-48hfnonv7f] {
        color: #16181c;
    }
}

.lg-pill--active[b-48hfnonv7f] {
    background: #ffffff;
    color: #16181c;
    box-shadow: 0 4px 12px -8px rgba(0, 0, 0, .3);
}

.lg-pill svg[b-48hfnonv7f] {
    flex: 0 0 auto;
}

/* -- Werkzeugleiste: Suche / Filter / Neu ---------------------------------- */
.lg-toolbar[b-48hfnonv7f] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
    flex-wrap: wrap;
}

.lg-search[b-48hfnonv7f] {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 240px;
    min-width: 200px;
    max-width: 420px;
    height: 40px;
    padding: 0 10px 0 36px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    transition: border-color 0.15s, box-shadow 0.15s;
}

.lg-search:focus-within[b-48hfnonv7f] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.lg-search > svg[b-48hfnonv7f] {
    position: absolute;
    left: 11px;
    color: #80858d;
    pointer-events: none;
}

.lg-search-input[b-48hfnonv7f] {
    flex: 1 1 auto;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    font: inherit;
    font-size: 0.92rem;
    color: #16181c;
}

.lg-search-input[b-48hfnonv7f]::placeholder {
    color: #9aa0a8;
}

/* Natives Lösch-X des type="search"-Inputs ausblenden — es gibt einen eigenen Button
   (sonst erscheinen zwei X nebeneinander). */
.lg-search-input[b-48hfnonv7f]::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
    display: none;
}

.lg-search-clear[b-48hfnonv7f] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 7px;
    background: #efeff1;
    color: #80858d;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

@media (hover: hover) {
    .lg-search-clear:hover[b-48hfnonv7f] {
        background: #e4e4e7;
        color: #16181c;
    }
}

/* -- Header-Aktionen: Mindestbestand-Button + Ansichtsumschalter ----------- */
/* Look 1:1 wie der Fuhrpark-Fristen-Button (flt-mail-btn) für Konsistenz. */
.lg-header-actions[b-48hfnonv7f] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.lg-warnbtn[b-48hfnonv7f] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    flex: 0 0 auto;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    color: #3c4148;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}

@media (hover: hover) {
    .lg-warnbtn:hover[b-48hfnonv7f] {
        background: #efeff1;
        color: #16181c;
    }
}

/* Alert: weich rot gefüllt (wie die Status-Chips) + Punkt — sichtbar ohne Zahl. */
.lg-warnbtn--alert[b-48hfnonv7f] {
    background: #fbeae8;
    border-color: #f3b0a8;
    color: #d92d20;
}

@media (hover: hover) {
    .lg-warnbtn--alert:hover[b-48hfnonv7f] {
        background: #f8dcd8;
        color: #b42318;
    }
}

.lg-warnbtn-dot[b-48hfnonv7f] {
    position: absolute;
    top: .1rem;
    right: .14rem;
    width: .6rem;
    height: .6rem;
    border-radius: 999px;
    background: #d92d20;
    border: 2px solid #fff;
    box-sizing: content-box;
}

@media (prefers-reduced-motion: no-preference) {
    .lg-warnbtn-dot[b-48hfnonv7f]::after {
        content: "";
        position: absolute;
        inset: -2px;
        border-radius: 999px;
        border: 2px solid rgba(217, 45, 32, .55);
        animation: lg-warn-pulse-b-48hfnonv7f 2.2s ease-out infinite;
    }

    @keyframes lg-warn-pulse-b-48hfnonv7f {
        0% { transform: scale(.7); opacity: .9; }
        70% { transform: scale(1.7); opacity: 0; }
        100% { transform: scale(1.7); opacity: 0; }
    }
}

.lg-new-btn[b-48hfnonv7f] {
    margin-left: auto;
}

/* -- Kennzahlen-Leiste ----------------------------------------------------- */
.lg-summary[b-48hfnonv7f] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 14px 0 8px;
    flex-wrap: wrap;
}

.lg-summary-value[b-48hfnonv7f] {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
}

.lg-summary-value-label[b-48hfnonv7f] {
    color: #80858d;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.lg-summary-value-num[b-48hfnonv7f] {
    color: #16181c;
    font-size: 1.12rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

/* Bezugsgröße unter Filter: der ausgewählte Wert bleibt die Hauptzahl. */
.lg-summary-value-total[b-48hfnonv7f] {
    color: #80858d;
    font-size: 0.82rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* -- Liste (Innen-Scroll) -------------------------------------------------- */
.lg-listwrap[b-48hfnonv7f],
.lg-journalwrap[b-48hfnonv7f],
.lg-detailwrap[b-48hfnonv7f] {
    flex: 1 1 auto;
    min-height: 0;
    scrollbar-width: thin;                 /* Firefox — schmale Scrollbar wie im Einkauf/Aufmaß */
    scrollbar-color: #c6c9ce transparent;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    padding-right: 2px;
}

.lg-listwrap[b-48hfnonv7f]::-webkit-scrollbar,
.lg-detailwrap[b-48hfnonv7f]::-webkit-scrollbar,
.lgf-scroll[b-48hfnonv7f]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.lg-listwrap[b-48hfnonv7f]::-webkit-scrollbar-track,
.lg-detailwrap[b-48hfnonv7f]::-webkit-scrollbar-track,
.lgf-scroll[b-48hfnonv7f]::-webkit-scrollbar-track {
    background: transparent;
}

.lg-listwrap[b-48hfnonv7f]::-webkit-scrollbar-thumb,
.lg-detailwrap[b-48hfnonv7f]::-webkit-scrollbar-thumb,
.lgf-scroll[b-48hfnonv7f]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .lg-listwrap[b-48hfnonv7f]::-webkit-scrollbar-thumb:hover,
    .lg-detailwrap[b-48hfnonv7f]::-webkit-scrollbar-thumb:hover,
    .lgf-scroll[b-48hfnonv7f]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

/* Journal: NICHT der ganze Bereich scrollt – nur die Tabelle (siehe .lgj-tablewrap).
   Toolbar/Filter bleiben oben stehen. */
.lg-journalwrap[b-48hfnonv7f] {
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.lg-detailwrap[b-48hfnonv7f],
.lg-journalwrap[b-48hfnonv7f] {
    margin-top: 16px;
}

.lg-list[b-48hfnonv7f] {
    list-style: none;
    margin: 0;
    /* Etwas Innenabstand oben/seitlich, damit der Hover-Lift (+ Schatten) der
       ersten/äußeren Zeilen nicht vom Scroll-Container abgeschnitten wird. */
    padding: 4px 2px 8px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.lg-row[b-48hfnonv7f] {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto auto 18px;
    align-items: center;
    gap: 14px;
    padding: 11px 14px;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 6px 18px -14px rgba(0, 0, 0, .22);
    cursor: pointer;
    transition: border-color 0.15s, transform 0.12s, box-shadow 0.15s;
}

.lg-row:focus-visible[b-48hfnonv7f] {
    border-color: #16181c;
    transform: translateY(-1px);
    box-shadow: 0 10px 22px -16px rgba(0, 0, 0, .3);
    outline: none;
}

@media (hover: hover) {
    .lg-row:hover[b-48hfnonv7f] {
        border-color: #16181c;
        transform: translateY(-1px);
        box-shadow: 0 10px 22px -16px rgba(0, 0, 0, .3);
        outline: none;
    }
}

.lg-row--neg[b-48hfnonv7f] {
    border-color: #f3c2bd;
    background: #fff7f6;
}

.lg-row--warn[b-48hfnonv7f] {
    border-color: #f2dca6;
    background: #fffaf0;
}

.lg-row-thumb[b-48hfnonv7f] {
    width: 52px;
    height: 52px;
    border-radius: 11px;
    overflow: hidden;
    background: #efeff1;
    border: 1px solid #e4e4e7;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lg-row-thumb img[b-48hfnonv7f] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.lg-row-noimg[b-48hfnonv7f] {
    color: #b4b9c0;
    display: flex;
}

.lg-row-main[b-48hfnonv7f] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.lg-row-name[b-48hfnonv7f] {
    font-size: 0.98rem;
    font-weight: 800;
    color: #16181c;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lg-row-meta[b-48hfnonv7f] {
    font-size: 0.8rem;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lg-row-stock[b-48hfnonv7f] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    text-align: right;
}

.lg-row-stock-val[b-48hfnonv7f] {
    font-size: 1.02rem;
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.lg-row-stock-val--neg[b-48hfnonv7f] {
    color: #D92D20;
}

.lg-row-stock-unit[b-48hfnonv7f] {
    font-size: 0.78rem;
    font-weight: 700;
    color: #80858d;
}

/* Zweite Zeile der Bestandsspalte: Hinweis + Gebinde nebeneinander. Damit bleibt der
   Stapel immer zweizeilig und alle Karten sind gleich hoch — egal ob ein Artikel unter
   Mindestbestand liegt oder nicht. */
.lg-row-stock-sub[b-48hfnonv7f] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    min-width: 0;
}

.lg-row-stock-gebinde[b-48hfnonv7f] {
    font-size: 0.74rem;
    color: #80858d;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.lg-flag[b-48hfnonv7f] {
    display: inline-block;
    flex: 0 0 auto;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.01em;
}

.lg-flag--neg[b-48hfnonv7f] {
    color: #D92D20;
    background: #fdecea;
}

.lg-flag--warn[b-48hfnonv7f] {
    color: #b9750a;
    background: #fdf3df;
}

.lg-row-value[b-48hfnonv7f] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    text-align: right;
    padding-left: 6px;
    border-left: 1px solid #efeff1;
}

.lg-row-value-label[b-48hfnonv7f] {
    font-size: 0.66rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #9aa0a8;
}

.lg-row-value-num[b-48hfnonv7f] {
    font-size: 0.92rem;
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.lg-row-chev[b-48hfnonv7f] {
    color: #b4b9c0;
    display: flex;
    align-items: center;
    justify-content: center;
}

@media (hover: hover) {
    .lg-row:hover .lg-row-chev[b-48hfnonv7f] {
        color: #16181c;
    }
}

/* -- Leerzustand ----------------------------------------------------------- */
.lg-empty[b-48hfnonv7f] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 56px 20px;
    color: #80858d;
    text-align: center;
}

.lg-empty svg[b-48hfnonv7f] {
    color: #c4c8ce;
}

.lg-empty p[b-48hfnonv7f] {
    margin: 0;
    font-size: 0.96rem;
    font-weight: 600;
}

/* -- Responsiv ------------------------------------------------------------- */
@media (max-width: 720px) {
    .lg-row[b-48hfnonv7f] {
        grid-template-columns: 46px minmax(0, 1fr) auto;
        gap: 11px;
        row-gap: 4px;
    }

    .lg-row-thumb[b-48hfnonv7f] {
        width: 46px;
        height: 46px;
        grid-row: 1 / span 2;
    }

    .lg-row-value[b-48hfnonv7f] {
        grid-column: 2 / 4;
        flex-direction: row;
        align-items: center;
        justify-content: flex-end;
        gap: 6px;
        padding-left: 0;
        border-left: none;
    }

    .lg-row-chev[b-48hfnonv7f] {
        display: none;
    }

    /* „Neu" bleibt auf derselben Zeile wie Suche und Filter — bricht es um,
       rutscht auch das darunter verankerte Filter-Popover eine Zeile tiefer. */
    .lg-toolbar[b-48hfnonv7f] {
        flex-wrap: nowrap;
    }

    .lg-search[b-48hfnonv7f] {
        min-width: 0;
    }

    .lg-new-btn[b-48hfnonv7f] {
        margin-left: 0;
        flex: 0 0 auto;
    }
}

@media (max-width: 520px) {
    .lg-header[b-48hfnonv7f] {
        align-items: flex-start;
    }

    .lg-viewswitch[b-48hfnonv7f] {
        width: 100%;
    }

    .lg-pill[b-48hfnonv7f] {
        flex: 1 1 0;
        justify-content: center;
    }
}

/* Inhaltsbreite an /fleet angleichen: Kopf UND alle Blöcke auf 1280px zentriert
   (Basis .settings-header zentriert nur auf 1020px, der Rest lief randlos). */
.lg-header[b-48hfnonv7f],
.lg-toolbar[b-48hfnonv7f],
.lg-summary[b-48hfnonv7f],
.lg-listwrap[b-48hfnonv7f],
.lg-detailwrap[b-48hfnonv7f],
.lg-journalwrap[b-48hfnonv7f] {
    width: 100%;
    max-width: 1280px;
    margin-inline: auto;
}

/* --------------------------------------------------------------------------
   SORTIEREN & FILTERN — Popover, Look 1:1 wie „Kunden & Baustellen"
   (Markup/Logik aus ProjectSetup übernommen). Trigger an die 40px-Toolbar
   angepasst (Höhe/Radius), Popover-Inhalt unverändert.
-------------------------------------------------------------------------- */
.sort-filter-wrap[b-48hfnonv7f] {
    position: relative;
    flex: 0 0 auto;
}

.btn-sort-filter[b-48hfnonv7f] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    min-width: 40px;
    height: 40px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #fff;
    color: #3c4148;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    padding: 0;
    cursor: pointer;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

    @media (hover: hover) {
        .btn-sort-filter:hover[b-48hfnonv7f] {
            border-color: #e4e4e7;
            background: #efeff1;
            color: #16181c;
        }
    }

    .btn-sort-filter--open[b-48hfnonv7f],
    .btn-sort-filter--active[b-48hfnonv7f] {
        border-color: #16181c;
        background: #16181c;
        color: #fff;
    }

    @media (hover: hover) {
        .btn-sort-filter--open:hover[b-48hfnonv7f],
        .btn-sort-filter--active:hover[b-48hfnonv7f] {
            border-color: #26282e;
            background: #26282e;
            color: #fff;
        }
    }

/* Zähler-Badge am Filterknopf — zeigt, wie viele Filter gerade greifen. */
.btn-sort-filter-count[b-48hfnonv7f] {
    position: absolute;
    top: -5px;
    right: -5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border: 2px solid #fff;
    border-radius: 999px;
    background: #16181c;
    color: #fff;
    font-size: 9.5px;
    font-weight: 900;
    font-style: normal;
    font-variant-numeric: tabular-nums;
    box-sizing: content-box;
}

.btn-sort-filter[b-48hfnonv7f] {
    position: relative;
}

/* Ein durchgehendes Scrollfeld mit beschrifteten Gruppen statt zwei Spalten:
   der Bestand-Tab filtert über deutlich mehr Achsen als Kunden & Baustellen. */
.lgf-popover[b-48hfnonv7f] {
    position: absolute;
    top: 48px;
    right: 0;
    z-index: 80;
    display: flex;
    flex-direction: column;
    width: min(360px, calc(100vw - 24px));
    max-width: calc(100vw - 24px);
    max-height: min(560px, calc(100dvh - 24px));
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 18px 52px rgba(28,28,30,0.18);
    overflow: hidden;
}

.lgf-scroll[b-48hfnonv7f] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;                 /* Firefox — schmal wie Liste/Einkauf/Aufmaß */
    scrollbar-color: #c6c9ce transparent;
}

.lgf-group[b-48hfnonv7f] {
    padding: 10px 12px;
    border-bottom: 1px solid #ededf2;
}

.lgf-label[b-48hfnonv7f] {
    margin-bottom: 7px;
    color: #80858d;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.lgf-pills[b-48hfnonv7f] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.lgf-pill[b-48hfnonv7f] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 26px;
    padding: 0 10px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    color: #16181c;
    text-align: left;
    cursor: pointer;
}

@media (hover: hover) {
    .lgf-pill:hover[b-48hfnonv7f] {
        background: #efeff1;
    }
}

.lgf-pill--on[b-48hfnonv7f] {
    background: #16181c;
    color: #fff;
    border-color: #16181c;
}

/* Aktive Pille dunkel halten — sonst überdeckt der helle Hover die weiße Schrift. */
@media (hover: hover) {
    .lgf-pill--on:hover[b-48hfnonv7f] {
        background: #000;
        color: #fff;
        border-color: #000;
    }
}

.lgf-pill:focus-visible[b-48hfnonv7f] {
    outline: 2px solid #16181c;
    outline-offset: 2px;
}

/* Richtungspfeil nur an der aktiven Sortier-Pille — er zeigt, was der nächste Klick umdreht. */
.lgf-arrow[b-48hfnonv7f] {
    flex: 0 0 auto;
    margin-right: -1px;
}

.lgf-dot[b-48hfnonv7f] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
    background: #b4b9c0;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

/* Semantik der Liste gespiegelt: rot = Negativbestand, gelb = Mindestbestand. */
.lgf-dot--neg[b-48hfnonv7f] { background: #d92d20; }
.lgf-dot--warn[b-48hfnonv7f] { background: #e9a53a; }

.lgf-count[b-48hfnonv7f] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: #efeff1;
    color: #52525b;
    font-size: 9.5px;
    font-weight: 800;
    font-style: normal;
    font-variant-numeric: tabular-nums;
}

.lgf-pill--on .lgf-count[b-48hfnonv7f] {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}

.lgf-foot[b-48hfnonv7f] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    border-top: 1px solid #ededf2;
    background: #fff;
}

.lgf-reset[b-48hfnonv7f] {
    border: 0;
    background: transparent;
    color: #80858d;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}

.lgf-done[b-48hfnonv7f] {
    height: 30px;
    padding: 0 14px;
    border: 1px solid #16181c;
    border-radius: 8px;
    background: #16181c;
    color: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.date-mode-switch[b-48hfnonv7f] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    margin-bottom: 8px;
    padding: 3px;
    border-radius: 999px;
    background: #efeff1;
}

.date-mode[b-48hfnonv7f] {
    min-height: 26px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #3c4148;
    font: inherit;
    font-size: 11px;
    font-weight: 900;
    cursor: pointer;
}

    .date-mode--active[b-48hfnonv7f] {
        background: #fff;
        color: #16181c;
        box-shadow: 0 1px 4px rgba(0,0,0,0.08);
    }

.filter-step-list[b-48hfnonv7f] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding-right: 2px;
}

.filter-step-button[b-48hfnonv7f] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 34px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #fff;
    color: #16181c;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    padding: 0 12px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

    @media (hover: hover) {
        .filter-step-button:hover[b-48hfnonv7f] {
            border-color: #16181c;
            background: #efeff1;
            color: #16181c;
        }
    }

.filter-step-header[b-48hfnonv7f] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    color: #16181c;
    font-size: 13px;
    font-weight: 900;
}

.filter-back-button[b-48hfnonv7f] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 28px;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #3c4148;
    font: inherit;
    font-size: 12px;
    font-weight: 900;
    padding: 0 8px 0 6px;
    cursor: pointer;
}

    @media (hover: hover) {
        .filter-back-button:hover[b-48hfnonv7f] {
            border-color: #16181c;
            color: #16181c;
        }
    }

.filter-step-list--months[b-48hfnonv7f] {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-content: start;
    gap: 6px;
    overflow-x: hidden;
    overflow-y: auto;
}

.filter-step-list--months .filter-all-check[b-48hfnonv7f] {
    grid-column: 1 / -1;
}

.filter-all-check[b-48hfnonv7f] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    gap: 8px;
    padding: 0 12px;
    border: 1px solid #e4e4e7;
    background: #fff;
    border-radius: 9px;
    min-height: 32px;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    color: #16181c;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

    .filter-all-check--active[b-48hfnonv7f] {
        border-color: #16181c;
        background: #efeff1;
        color: #16181c;
    }

    @media (hover: hover) {
        .filter-all-check:hover[b-48hfnonv7f] {
            border-color: #16181c;
            background: #efeff1;
            color: #16181c;
        }
    }

    .filter-all-check input[b-48hfnonv7f] {
        width: 14px;
        height: 14px;
        accent-color: #16181c;
        flex-shrink: 0;
    }

    .filter-all-check span[b-48hfnonv7f] {
        line-height: 1;
    }

.filter-month[b-48hfnonv7f] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-width: 0;
    min-height: 30px;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #3c4148;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    gap: 6px;
    padding: 0 9px;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.filter-month span[b-48hfnonv7f] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

    .filter-month input[b-48hfnonv7f] {
        width: 12px;
        height: 12px;
        accent-color: #3c4148;
        flex-shrink: 0;
    }

    @media (hover: hover) {
        .filter-month:hover[b-48hfnonv7f] {
            border-color: #d4d4d8;
            background: #efeff1;
            color: #16181c;
        }
    }

    .filter-month--active[b-48hfnonv7f] {
        border-color: #16181c;
        background: #efeff1;
        color: #16181c;
    }

/* -- Mobil: Sortier-/Filter-Popover als Sheet am unteren Bildrand. Absolut unter
   der Toolbar verankert lief es unten aus dem Bild — .lg-page ist overflow:hidden
   mit fester Höhe und schneidet alles ab, die Fußleiste (Zurücksetzen/Fertig) war
   dann nicht erreichbar. position:fixed bricht aus dem Clipping aus, die Unterkante
   sitzt fest am Viewport und der Inhalt scrollt darüber. */
@media (max-width: 600px) {
    .lg-toolbar[b-48hfnonv7f] { position: relative; }
    .sort-filter-wrap[b-48hfnonv7f] { position: static; }

    .lgf-popover[b-48hfnonv7f] {
        position: fixed;
        top: auto;
        left: 12px;
        right: 12px;
        bottom: max(12px, env(safe-area-inset-bottom));
        width: auto;
        max-width: none;
        max-height: min(560px, calc(100dvh - var(--app-header-h) - 24px));
    }
}
/* /Components/Pages/Lager/LagerArtikelDetail.razor.rz.scp.css */
/* ===============================================================
   LAGER — Artikel-Detail (monochrom, passend zum Header/Fleet)
   Tokens: #16181c Text/Akzent · #3c4148 · #80858d · #e4e4e7 · #efeff1 · #f5f5f7
   Semantik: Negativbestand rot (#d92d20), Mindestbestand-Warnung orange (#b45309)
=============================================================== */

/* NumPad-Popup über das AppModal heben: global (settings.css) ist .np-popup z-index 301,
   die Bearbeiten-Modals (AppModal) liegen bei 2100–2102 – ohne diesen Override
   läge das NumPad dahinter. */
.np-overlay[b-n5r9xo94nz] {
    z-index: 2200;
}

.np-popup[b-n5r9xo94nz] {
    z-index: 2201;
}

.lgd[b-n5r9xo94nz] {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #16181c;
}

/* -- Kopfleiste ----------------------------------------------------------- */
.lgd-bar[b-n5r9xo94nz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.1rem;
}

.lgd-back[b-n5r9xo94nz] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem .8rem .45rem .55rem;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    font: inherit;
    font-size: .86rem;
    font-weight: 600;
    color: #16181c;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease;
}

@media (hover: hover) {
    .lgd-back:hover[b-n5r9xo94nz] {
        background: #efeff1;
    }
}

.lgd-bar-actions[b-n5r9xo94nz] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.lgd-iconbtn[b-n5r9xo94nz] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .75rem;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    font: inherit;
    font-size: .84rem;
    font-weight: 600;
    color: #3c4148;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease, color .12s ease;
}

@media (hover: hover) {
    .lgd-iconbtn:hover[b-n5r9xo94nz] {
        background: #efeff1;
        color: #16181c;
    }
}

@media (hover: hover) {
    .lgd-iconbtn--del:hover[b-n5r9xo94nz] {
        color: #d92d20;
        border-color: #f3b0a8;
    }
}

/* -- Layout-Raster -------------------------------------------------------- */
.lgd-grid[b-n5r9xo94nz] {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 1.1rem;
    align-items: start;
}

.lgd-main[b-n5r9xo94nz],
.lgd-side[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}

/* -- Hero: Bild + Name ---------------------------------------------------- */
.lgd-hero[b-n5r9xo94nz] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

.lgd-photo[b-n5r9xo94nz] {
    flex: 0 0 auto;
    width: 92px;
    height: 92px;
    border-radius: 12px;
    overflow: hidden;
    background: linear-gradient(135deg, #f0f0f2, #e2e2e6);
    display: grid;
    place-items: center;
}

.lgd-photo--clickable[b-n5r9xo94nz] {
    cursor: pointer;
}

.lgd-photo > img[b-n5r9xo94nz] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .3s ease;
}

@media (hover: hover) {
    .lgd-photo--clickable:hover > img[b-n5r9xo94nz] {
        transform: scale(1.06);
    }
}

.lgd-photo-noimg[b-n5r9xo94nz] {
    color: #aeb0b5;
}

.lgd-hero-text[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    min-width: 0;
}

.lgd-kicker[b-n5r9xo94nz] {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #80858d;
}

.lgd-name[b-n5r9xo94nz] {
    margin: 0;
    font-size: 1.3rem;
    font-weight: 800;
    line-height: 1.15;
    color: #16181c;
}

.lgd-artnr[b-n5r9xo94nz] {
    font-size: .8rem;
    color: #80858d;
}

/* -- Großer Bestand ------------------------------------------------------- */
/* Bestand: kompakte schwarze Leiste – Wert links, Gebinde/Status rechts.
   Füllt die Breite sinnvoll (statt großer, leerer schwarzer Fläche). */
/* Bestandsleiste + Korrektur nebeneinander */
.lgd-bestand[b-n5r9xo94nz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 1.2rem;
    background: #16181c;
    color: #fff;
    border-radius: 16px;
    box-shadow: 0 10px 26px -16px rgba(0, 0, 0, .4);
}

.lgd-bestand--neg[b-n5r9xo94nz] {
    background: #d92d20;
}

.lgd-bestand--warn[b-n5r9xo94nz] {
    background: #b45309;
}

.lgd-bestand-left[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-width: 0;
}

.lgd-bestand-label[b-n5r9xo94nz] {
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    opacity: .72;
}

.lgd-bestand-value[b-n5r9xo94nz] {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.05;
    font-variant-numeric: tabular-nums;
}

.lgd-bestand-unit[b-n5r9xo94nz] {
    font-size: 1.05rem;
    font-weight: 700;
    opacity: .85;
    margin-left: .15rem;
}

.lgd-bestand-meta[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .35rem;
    flex: 0 0 auto;
    text-align: right;
}

.lgd-bestand-gebinde[b-n5r9xo94nz] {
    font-size: .9rem;
    font-weight: 600;
    opacity: .82;
}

.lgd-bestand-flag[b-n5r9xo94nz] {
    padding: .15rem .6rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
    background: rgba(255, 255, 255, .18);
}

/* -- Buchen-Buttons (Eingang/Ausgang/Korrektur/Bedarfsrechner) ------------ */
.lgd-buchen[b-n5r9xo94nz] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .6rem;
}

.lgd-buchen-btn[b-n5r9xo94nz] {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: .3rem;
    padding: .8rem .4rem;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    font: inherit;
    font-size: .88rem;
    font-weight: 700;
    color: #16181c;
    cursor: pointer;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    transition: transform .12s ease, border-color .12s ease, background .12s ease;
}

@media (hover: hover) {
    .lgd-buchen-btn:hover[b-n5r9xo94nz] {
        transform: translateY(-2px);
        border-color: #16181c;
    }
}

.lgd-buchen-btn svg[b-n5r9xo94nz] {
    color: #3c4148;
}

@media (hover: hover) {
    .lgd-buchen-btn--in:hover svg[b-n5r9xo94nz] {
        color: #15803d;
    }
}

@media (hover: hover) {
    .lgd-buchen-btn--out:hover svg[b-n5r9xo94nz] {
        color: #b42318;
    }
}

@media (hover: hover) {
    .lgd-buchen-btn--korr:hover svg[b-n5r9xo94nz] {
        color: #16181c;
    }
}

@media (hover: hover) {
    .lgd-buchen-btn--direkt:hover svg[b-n5r9xo94nz] {
        color: #145DA0;
    }
}

/* -- Verbrauch-/Kalkulations-Modal --------------------------------------- */
.lgd-vb-head[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.lgd-vb-kicker[b-n5r9xo94nz] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #80858d;
}

.lgd-vb-title[b-n5r9xo94nz] {
    margin: 0;
    font-size: 1.18rem;
    font-weight: 700;
    color: #16181c;
    line-height: 1.25;
}

.lgd-vb-sub[b-n5r9xo94nz] {
    font-size: .85rem;
    color: #80858d;
}

.lgd-vb-form[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.lgd-vb-grid[b-n5r9xo94nz] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

/* Einheit · ⌀ Ergebnis · Multiplikator in einer Zeile */
.lgd-vb-row3[b-n5r9xo94nz] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    align-items: start;
}

@media (max-width: 560px) {
    .lgd-vb-grid[b-n5r9xo94nz],
    .lgd-vb-row3[b-n5r9xo94nz] {
        grid-template-columns: 1fr;
    }
}

/* -- Kennzahlen ----------------------------------------------------------- */
.lgd-stats[b-n5r9xo94nz] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .6rem;
}

.lgd-stat[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    padding: .75rem .8rem;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
}

.lgd-stat-label[b-n5r9xo94nz] {
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #80858d;
}

.lgd-stat-value[b-n5r9xo94nz] {
    font-size: 1.02rem;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.lgd-stat-sub[b-n5r9xo94nz] {
    font-size: .76rem;
    font-weight: 600;
    color: #80858d;
}

/* -- Karten (Stammdaten / Historie) -------------------------------------- */
.lgd-card[b-n5r9xo94nz] {
    padding: 1rem 1.1rem 1.1rem;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

.lgd-card-title[b-n5r9xo94nz] {
    margin: 0 0 .7rem;
    font-size: .95rem;
    font-weight: 700;
    color: #16181c;
}

.lgd-dl[b-n5r9xo94nz] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: .4rem .9rem;
    margin: 0;
}

.lgd-dl dt[b-n5r9xo94nz] {
    font-size: .82rem;
    color: #80858d;
}

.lgd-dl dd[b-n5r9xo94nz] {
    margin: 0;
    font-size: .86rem;
    font-weight: 600;
    color: #16181c;
    text-align: right;
    overflow-wrap: anywhere;
}

.lgd-notiz[b-n5r9xo94nz] {
    margin-top: .9rem;
    padding-top: .8rem;
    border-top: 1px solid #efeff1;
}

.lgd-notiz-label[b-n5r9xo94nz] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #80858d;
}

.lgd-notiz p[b-n5r9xo94nz] {
    margin: .3rem 0 0;
    font-size: .86rem;
    color: #3c4148;
    white-space: pre-wrap;
}

/* -- Bewegungs-Historie --------------------------------------------------- */
.lgd-hist-empty[b-n5r9xo94nz] {
    padding: 1.2rem .5rem;
    text-align: center;
    font-size: .85rem;
    color: #80858d;
}

.lgd-hist[b-n5r9xo94nz] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .45rem;
    max-height: 22rem;
    overflow-y: auto;
}

.lgd-hist-item[b-n5r9xo94nz] {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .55rem .65rem;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    background: #fff;
}

.lgd-hist-item--storno[b-n5r9xo94nz] {
    opacity: .6;
}

.lgd-hist-item--storno .lgd-hist-menge[b-n5r9xo94nz] {
    text-decoration: line-through;
}

.lgd-hist-typ[b-n5r9xo94nz] {
    flex: 0 0 auto;
    padding: .12rem .5rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
    background: #efeff1;
    color: #3c4148;
    border: 1px solid #e4e4e7;
}

/* Bewegungstyp semantisch dezent eingefärbt (Streifen/Pill) */
.lgd-hist-typ--eingang[b-n5r9xo94nz] {
    background: #e7f7ee;
    color: #15803d;
    border-color: #c3ebd3;
}

.lgd-hist-typ--ausgang[b-n5r9xo94nz] {
    background: #fde8e6;
    color: #b42318;
    border-color: #f5c2bd;
}

.lgd-hist-typ--korrektur[b-n5r9xo94nz] {
    background: #eef0f3;
    color: #16181c;
    border-color: #e0e2e7;
}

.lgd-hist-mid[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: .12rem;
    min-width: 0;
    flex: 1 1 auto;
}

.lgd-hist-menge[b-n5r9xo94nz] {
    font-size: .92rem;
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.lgd-hist-meta[b-n5r9xo94nz] {
    font-size: .76rem;
    color: #80858d;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lgd-hist-storno[b-n5r9xo94nz] {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    background: #fff;
    color: #80858d;
    cursor: pointer;
    transition: color .12s ease, border-color .12s ease, background .12s ease;
}

@media (hover: hover) {
    .lgd-hist-storno:hover[b-n5r9xo94nz] {
        color: #d92d20;
        border-color: #f3b0a8;
        background: #fde8e6;
    }
}

.lgd-hist-stornobadge[b-n5r9xo94nz] {
    flex: 0 0 auto;
    font-size: .72rem;
    font-weight: 700;
    color: #b42318;
}

/* -- Einkaufs-Historie (Preis je Wareneingang) --------------------------- */
.lgd-eink[b-n5r9xo94nz] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .45rem;
    max-height: 16rem;
    overflow-y: auto;
}

.lgd-eink-item[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    padding: .6rem .7rem;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    background: #fff;
}

.lgd-eink-top[b-n5r9xo94nz] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.lgd-eink-price[b-n5r9xo94nz] {
    font-size: 1.02rem;
    font-weight: 800;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.01em;
}

.lgd-eink-unit[b-n5r9xo94nz] {
    font-size: .74rem;
    font-weight: 600;
    color: #80858d;
    margin-left: 1px;
}

.lgd-eink-trend[b-n5r9xo94nz] {
    display: inline-grid;
    place-items: center;
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 6px;
    flex: 0 0 auto;
}

.lgd-eink-trend--up[b-n5r9xo94nz] {
    color: #b42318;
    background: #fde8e6;
}

.lgd-eink-trend--down[b-n5r9xo94nz] {
    color: #15803d;
    background: #e7f7ee;
}

.lgd-eink-date[b-n5r9xo94nz] {
    margin-left: auto;
    font-size: .76rem;
    font-weight: 600;
    color: #80858d;
    white-space: nowrap;
}

.lgd-eink-meta[b-n5r9xo94nz] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem;
    font-size: .8rem;
    font-variant-numeric: tabular-nums;
}

.lgd-eink-qty[b-n5r9xo94nz] {
    font-weight: 600;
    color: #3c4148;
}

.lgd-eink-sum[b-n5r9xo94nz] {
    font-weight: 600;
    color: #16181c;
}

/* -- Bearbeiten-Formular -------------------------------------------------- */
.lgd-edit-head[b-n5r9xo94nz] {
    display: flex;
    align-items: center;
    gap: .8rem;
}

.lgd-edit-head-icon[b-n5r9xo94nz] {
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 auto;
    border-radius: .75rem;
    background: #efeff1;
    color: #16181c;
}

.lgd-edit-head-text[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
    min-width: 0;
}

.lgd-edit-head-title[b-n5r9xo94nz] {
    font-weight: 700;
    font-size: 1.1rem;
    color: #16181c;
}

.lgd-edit-head-sub[b-n5r9xo94nz] {
    font-size: .82rem;
    color: #80858d;
}

.lgd-form[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.lgd-section[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}

.lgd-section-title[b-n5r9xo94nz] {
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #80858d;
    padding-bottom: .4rem;
    border-bottom: 1px solid #efeff1;
}

.lgd-grid[b-n5r9xo94nz] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem 1.1rem;
}

.lgd-field[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    min-width: 0;
}

.lgd-field--full[b-n5r9xo94nz] {
    grid-column: 1 / -1;
}

.lgd-field > span[b-n5r9xo94nz] {
    font-size: .8rem;
    font-weight: 600;
    color: #3c4148;
}

.lgd-lbl[b-n5r9xo94nz] {
    display: flex;
    align-items: baseline;
    gap: .4rem;
}

.lgd-opt[b-n5r9xo94nz] {
    font-size: .72rem;
    font-weight: 500;
    color: #a1a5ac;
    letter-spacing: 0;
    text-transform: none;
}

.lgd-req[b-n5r9xo94nz] {
    color: #d92d20;
    font-weight: 700;
}

/* Alter Freitext-Lieferant als Hinweis unter dem Dropdown, bis er manuell zugeordnet ist. */
/* NumPad-Felder (Gebinde-Faktor/Mindestbestand/Standardpreis) füllen die Zelle
   statt der globalen fixen 110px – damit sie wie die übrigen Inputs aussehen. */
.settings-input--num[b-n5r9xo94nz] {
    width: 100%;
    text-align: left;
}

/* Audit-Footer im Stammdaten-Block (wer/wann angelegt & geändert). */
.lgd-audit[b-n5r9xo94nz] {
    margin-top: 14px;
    padding-top: 10px;
    border-top: 1px solid #efeff1;
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-size: .76rem;
    color: #80858d;
}

.lgd-audit-label[b-n5r9xo94nz] {
    font-weight: 700;
    color: #3c4148;
    margin-right: 4px;
}

.lgd-field-error[b-n5r9xo94nz] {
    color: #b42318;
    font-size: .75rem;
}

.lgd-textarea[b-n5r9xo94nz] {
    height: 4.5rem;
    padding: 8px 12px;
    line-height: 1.4;
    resize: none;
    font: inherit;
}

.lgd-inline[b-n5r9xo94nz] {
    display: flex;
    align-items: center;
    gap: .4rem;
}

/* Einheitlicher schwarzer Fokus-Ring (Primärfarbe entblauen) — die Inputs
   sind eigene Elemente dieser Komponente, daher reicht ein einfacher Selektor. */
.settings-input:focus[b-n5r9xo94nz] {
    border-color: #16181c;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.lgd-delete-warn[b-n5r9xo94nz] {
    margin: .3rem 0 .6rem;
    padding: .55rem .7rem;
    border-radius: 10px;
    background: #fef3da;
    border: 1px solid #f6dca0;
    color: #b45309;
    font-size: .82rem;
    line-height: 1.4;
}

/* -- Fehlzustand ---------------------------------------------------------- */
.lgd-missing[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .7rem;
    padding: 2.6rem 1rem;
    text-align: center;
    color: #80858d;
}

.lgd-missing-icon[b-n5r9xo94nz] {
    color: #c8cace;
}

.lgd-missing p[b-n5r9xo94nz] {
    margin: 0;
    font-weight: 600;
    color: #3c4148;
}

.lgd-creating[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    min-height: 40vh;
    text-align: center;
}

.lgd-creating-ico[b-n5r9xo94nz] {
    color: #d4d6da;
}

.lgd-creating p[b-n5r9xo94nz] {
    margin: 0;
    font-weight: 600;
    color: #80858d;
}

/* ===============================================================
   Bild-Upload + Lightbox — übernommen aus Fleet (flt-*),
   hier scoped, damit die im Bearbeiten-Modal gerenderten
   flt-*-Elemente korrekt gestylt sind.
=============================================================== */
.flt-photo-field[b-n5r9xo94nz] {
    position: relative;
    flex: 0 0 auto;
    width: 240px;
    margin-left: auto;
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.flt-file-input-wrap[b-n5r9xo94nz] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    margin: -1px;
    padding: 0;
    border: 0;
    white-space: nowrap;
    pointer-events: none;
}

.flt-file-input-wrap > *[b-n5r9xo94nz] {
    width: 1px;
    height: 1px;
}

.flt-photo-drop[b-n5r9xo94nz] {
    display: flex;
    align-items: center;
    gap: .65rem;
    height: 72px;
    padding: 0 .8rem;
    border: 2px dashed #d4d4d8;
    border-radius: 12px;
    background: #f7f7f8;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}

@media (hover: hover) {
    .flt-photo-drop:hover[b-n5r9xo94nz] {
        border-color: #16181c;
        background: #efeff1;
    }
}

.flt-photo-drop-ico[b-n5r9xo94nz] {
    display: grid;
    place-items: center;
    width: 2.3rem;
    height: 2.3rem;
    flex: 0 0 auto;
    border-radius: 9px;
    background: #efeff1;
    color: #16181c;
}

.flt-photo-drop-txt[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.flt-photo-drop-main[b-n5r9xo94nz] {
    font-weight: 600;
    color: #3c4148;
    font-size: .85rem;
}

.flt-photo-drop-hint[b-n5r9xo94nz] {
    font-size: .74rem;
    color: #80858d;
}

.flt-photo-card[b-n5r9xo94nz] {
    position: relative;
    display: flex;
    align-items: center;
    gap: .65rem;
    height: 72px;
}

.flt-photo-view[b-n5r9xo94nz] {
    position: relative;
    flex: 0 0 auto;
    width: 104px;
    height: 72px;
    padding: 0;
    border: 0;
    border-radius: 10px;
    overflow: hidden;
    background: #efeff1;
    cursor: pointer;
}

.flt-photo-view--static[b-n5r9xo94nz] {
    cursor: default;
}

.flt-photo-view img[b-n5r9xo94nz] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.flt-photo-view-hint[b-n5r9xo94nz] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    background: rgba(0, 0, 0, .42);
    color: #fff;
    font-size: .74rem;
    font-weight: 600;
    opacity: 0;
    transition: opacity .15s ease;
}

@media (hover: hover) {
    .flt-photo-view:hover .flt-photo-view-hint[b-n5r9xo94nz] {
        opacity: 1;
    }
}

.flt-photo-side[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .4rem;
    min-width: 0;
}

.flt-photo-btn[b-n5r9xo94nz] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .6rem;
    background: #fff;
    border: 1.5px solid #e4e4e7;
    border-radius: 8px;
    font: inherit;
    font-size: .8rem;
    font-weight: 600;
    color: #16181c;
    cursor: pointer;
}

@media (hover: hover) {
    .flt-photo-btn:hover[b-n5r9xo94nz] {
        background: #efeff1;
        border-color: #e4e4e7;
    }
}

.flt-photo-link[b-n5r9xo94nz] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    font-size: .78rem;
    color: #b42318;
    cursor: pointer;
}

@media (hover: hover) {
    .flt-photo-link:hover[b-n5r9xo94nz] {
        text-decoration: underline;
    }
}

.flt-photo-droptip[b-n5r9xo94nz] {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: rgba(22, 24, 28, .12);
    border: 2px dashed #16181c;
    pointer-events: none;
}

.flt-photo-droptip span[b-n5r9xo94nz] {
    padding: .25rem .65rem;
    background: #16181c;
    color: #fff;
    border-radius: 999px;
    font-size: .76rem;
    font-weight: 600;
}

.flt-photo-field.flt-drag .flt-photo-drop[b-n5r9xo94nz] {
    border-color: #16181c;
    background: #efeff1;
}

.flt-photo-field.flt-drag .flt-photo-droptip[b-n5r9xo94nz] {
    display: flex;
}

.flt-photo-busy[b-n5r9xo94nz] {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .74rem;
    color: #80858d;
}

.flt-spinner[b-n5r9xo94nz] {
    width: .85rem;
    height: .85rem;
    border: 2px solid #e4e4e7;
    border-top-color: #16181c;
    border-radius: 50%;
    animation: lgd-spin-b-n5r9xo94nz .7s linear infinite;
}

@keyframes lgd-spin-b-n5r9xo94nz {
    to { transform: rotate(360deg); }
}

.flt-photo-err[b-n5r9xo94nz] {
    font-size: .74rem;
    color: #b42318;
}

/* Die Bild-Lightbox liegt in der Shared-Komponente AppLightbox. */

/* -- Mobile --------------------------------------------------------------- */
@media (max-width: 900px) {
    .lgd-grid[b-n5r9xo94nz] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .lgd-grid[b-n5r9xo94nz] {
        grid-template-columns: 1fr;
    }

    .lgd-edit-head[b-n5r9xo94nz] {
        flex-wrap: wrap;
    }

    .flt-photo-field[b-n5r9xo94nz] {
        width: 100%;
        flex-basis: 100%;
        margin-left: 0;
    }

    .lgd-buchen[b-n5r9xo94nz],
    .lgd-stats[b-n5r9xo94nz] {
        grid-template-columns: 1fr;
    }

    /* Bestand + Korrektur untereinander statt nebeneinander */
    .lgd-bestand-row[b-n5r9xo94nz] {
        flex-direction: column;
    }

    .lgd-korr-side[b-n5r9xo94nz] {
        width: 100%;
    }
}

@media (hover: none) {
    .flt-photo-view-hint[b-n5r9xo94nz] {
        opacity: 1;
    }
}

/* -- Gebinde: Zusammenfassungs-Button (Stammdaten-Seite) ------------------- */

.lgd-gebinde-btn[b-n5r9xo94nz] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    text-align: left;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 11px 14px;
    cursor: pointer;
    color: #a0a4ab; /* Chevron */
    transition: border-color .15s ease, background-color .15s ease;
}

@media (hover: hover) {
    .lgd-gebinde-btn:hover[b-n5r9xo94nz] {
        border-color: #c9cbd1;
        background: #fafafa;
    }
}

.lgd-gebinde-btn--error[b-n5r9xo94nz] {
    border-color: #b42318;
}

.lgd-gebinde-btn-text[b-n5r9xo94nz] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.lgd-gebinde-btn-main[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    font-size: .9rem;
    font-weight: 600;
    color: #16181c;
}

.lgd-gebinde-btn-zeile[b-n5r9xo94nz] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lgd-gebinde-btn-main--leer[b-n5r9xo94nz] {
    color: #80858d;
    font-weight: 500;
}

.lgd-gebinde-btn-sub[b-n5r9xo94nz] {
    font-size: .75rem;
    color: #80858d;
}

/* Stammdaten-Karte: Gebinde-Kette, eine Zeile je Stufe. */
.lgd-gebzeilen[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

/* -- Gebinde: Seite 2 des Edit-Modals -------------------------------------- */

/* Kompakte Stufen-Liste (bewusst OHNE Section-Header je Stufe). */
.lgd-gebstufen[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.lgd-gebseite-back[b-n5r9xo94nz] {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.lgd-gebseite-hint[b-n5r9xo94nz] {
    margin: 0;
    font-size: .82rem;
    line-height: 1.45;
    color: #6d727b;
}

.lgd-gebseite-preview[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    background: #f7f7f8;
    border-radius: 10px;
    padding: 10px 12px;
    font-size: .85rem;
    font-weight: 600;
    color: #16181c;
}

.lgd-gebseite-preview-lbl[b-n5r9xo94nz] {
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #80858d;
}

/* -- Gebinde-Seite: Bestell-Stufen-Wahl ------------------------------------ */

.lgd-bstufe[b-n5r9xo94nz] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lgd-bstufe-row[b-n5r9xo94nz] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 4px;
    background: #efeff1;
    border-radius: 12px;
    width: fit-content;
}

.lgd-bstufe-btn[b-n5r9xo94nz] {
    border: none;
    background: transparent;
    padding: 6px 14px;
    border-radius: 9px;
    font-size: .85rem;
    font-weight: 600;
    color: #80858d;
    cursor: pointer;
}

.lgd-bstufe-btn--active[b-n5r9xo94nz] {
    background: #fff;
    color: #16181c;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.lgd-bstufe-hint[b-n5r9xo94nz] {
    font-size: .75rem;
    color: #80858d;
}

/* Bedarfsrechner-Button in der Buchen-Leiste: neutral wie Korrektur. */
@media (hover: hover) {
    .lgd-buchen-btn--calc:hover svg[b-n5r9xo94nz] {
        color: #16181c;
    }
}
/* /Components/Pages/Lager/LagerBedarfsRechner.razor.rz.scp.css */
/* Bedarfsrechner — kompaktes Modal im Lager-Stil (monochrom). */

.lbr-head[b-lnf059iq4u] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.lbr-head-icon[b-lnf059iq4u] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: #f4f4f5;
    color: #16181c;
    flex-shrink: 0;
}

.lbr-head-text[b-lnf059iq4u] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.lbr-head-title[b-lnf059iq4u] {
    font-weight: 700;
    font-size: 1.05rem;
    color: #16181c;
}

.lbr-head-sub[b-lnf059iq4u] {
    font-size: .8rem;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lbr[b-lnf059iq4u] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* -- Bestand-Zeile --------------------------------------------------------- */

.lbr-bestand[b-lnf059iq4u] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
    background: #16181c;
    color: #fff;
    border-radius: 12px;
    padding: 10px 14px;
}

.lbr-bestand-lbl[b-lnf059iq4u] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #a0a4ab;
}

.lbr-bestand-val[b-lnf059iq4u] {
    font-weight: 700;
    font-size: 1rem;
}

.lbr-bestand-geb[b-lnf059iq4u] {
    font-size: .78rem;
    color: #a0a4ab;
}

/* -- Eingaben -------------------------------------------------------------- */

.lbr-toggle-row[b-lnf059iq4u] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 4px;
    background: #efeff1;
    border-radius: 12px;
    width: fit-content;
}

.lbr-toggle[b-lnf059iq4u] {
    border: none;
    background: transparent;
    padding: 6px 14px;
    border-radius: 9px;
    font-size: .85rem;
    font-weight: 600;
    color: #80858d;
    cursor: pointer;
}

.lbr-toggle--active[b-lnf059iq4u] {
    background: #fff;
    color: #16181c;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.lbr-field[b-lnf059iq4u] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lbr-lbl[b-lnf059iq4u] {
    font-size: .8rem;
    font-weight: 600;
    color: #3c4148;
}

/* -- Ergebnis: Rechenzettel + „Zu bestellen"-Leiste ------------------------ */

.lbr-result[b-lnf059iq4u] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Die stille Rechnung: Bedarf − Auf Lager ═ Saldo, Zahlen in Tabellenziffern. */
.lbr-calc[b-lnf059iq4u] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    background: #f7f7f8;
    border-radius: 12px;
    padding: 12px 14px;
}

.lbr-calc-row[b-lnf059iq4u] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
}

.lbr-calc-lbl[b-lnf059iq4u] {
    font-size: .84rem;
    color: #6d727b;
}

.lbr-calc-val[b-lnf059iq4u] {
    font-size: .92rem;
    font-weight: 600;
    color: #16181c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Der Rechenstrich vor dem Saldo — wie auf dem Zählzettel. */
.lbr-calc-row--saldo[b-lnf059iq4u] {
    border-top: 1.5px solid #16181c;
    padding-top: 8px;
    margin-top: 2px;
}

.lbr-calc-row--saldo .lbr-calc-lbl[b-lnf059iq4u] {
    font-weight: 700;
    color: #16181c;
}

.lbr-calc-row--saldo .lbr-calc-val[b-lnf059iq4u] {
    font-weight: 800;
}

.lbr-calc-sub[b-lnf059iq4u] {
    font-size: .76rem;
    color: #80858d;
    text-align: right;
    margin-top: -3px;
}

/* Schwarze Ergebnis-Leiste — Gegenstück zur „Auf Lager"-Leiste im Kopf. */
.lbr-order[b-lnf059iq4u] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: #16181c;
    color: #fff;
    border-radius: 12px;
    padding: 12px 14px;
}

.lbr-order-lbl[b-lnf059iq4u] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #a0a4ab;
    flex-shrink: 0;
}

.lbr-order-text[b-lnf059iq4u] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.lbr-order-val[b-lnf059iq4u] {
    font-size: 1.1rem;
    font-weight: 800;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.lbr-order-basis[b-lnf059iq4u] {
    font-size: .8rem;
    font-weight: 600;
    color: #a0a4ab;
    white-space: nowrap;
}

/* Rest-Zeile unter der Bestell-Leiste — ruhig, einzeilig. */
.lbr-rest[b-lnf059iq4u] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 0 4px;
    font-size: .8rem;
    color: #6d727b;
}

.lbr-rest-val[b-lnf059iq4u] {
    font-weight: 600;
    color: #3c4148;
    font-variant-numeric: tabular-nums;
    text-align: right;
}

/* Grüne Bestätigung, wenn nichts zu bestellen ist. */
.lbr-ok[b-lnf059iq4u] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 12px;
    background: #e9f5ee;
    color: #15803d;
    font-size: .88rem;
    font-weight: 700;
}

.lbr-ok svg[b-lnf059iq4u] {
    flex-shrink: 0;
}

/* NumPad-Popup über das AppModal heben (global ist .np-popup z-index 301,
   das Modal liegt bei 2100–2102) — gleicher Override wie im Artikel-Detail. */
.np-overlay[b-lnf059iq4u] {
    z-index: 2200;
}

.np-popup[b-lnf059iq4u] {
    z-index: 2201;
}
/* /Components/Pages/Lager/LagerBuchenModal.razor.rz.scp.css */
/* Lager-Buchen-Modal – monochromes neues-design (Schwarz/Weiß/Grau).
   Semantische Farben: Negativbestand/Fehler rot, Warnung orange. */

/* NumPad-Popup über das AppModal heben: global (settings.css) ist .np-popup z-index 301,
   das AppModal liegt bei 2100–2102 – ohne diesen Override läge das NumPad dahinter. */
.np-overlay[b-z9sc5wumfl] {
    z-index: 2200;
}

.np-popup[b-z9sc5wumfl] {
    z-index: 2201;
}

.lbm-head[b-z9sc5wumfl] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.lbm-kicker[b-z9sc5wumfl] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #80858d;
}

.lbm-title[b-z9sc5wumfl] {
    margin: 0;
    font-size: 1.18rem;
    font-weight: 700;
    color: #16181c;
    line-height: 1.25;
}

.lbm-bestand[b-z9sc5wumfl] {
    margin-top: 2px;
    font-size: 0.85rem;
    color: #80858d;
}

.lbm-bestand strong[b-z9sc5wumfl] {
    color: #16181c;
    font-weight: 700;
}

/* -- Formular ------------------------------------------------------------- */

.lbm-form[b-z9sc5wumfl] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.lbm-field[b-z9sc5wumfl] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lbm-label[b-z9sc5wumfl] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #16181c;
}

.lbm-input[b-z9sc5wumfl] {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1.5px solid #e4e4e7;
    border-radius: 12px;
    background: #fff;
    font-size: 0.95rem;
    color: #16181c;
    font-family: inherit;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.lbm-input:focus[b-z9sc5wumfl] {
    outline: none;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.lbm-input--num[b-z9sc5wumfl] {
    cursor: pointer;
    font-variant-numeric: tabular-nums;
}

/* Pflichtfeld-Markierung (roter Stern) wie im Artikel-Formular (.lgd-req). */
.lbm-req[b-z9sc5wumfl] {
    color: #d92d20;
    font-weight: 700;
}

/* Leeres Pflichtfeld nach Klick auf "buchen": roter Rahmen. */
.lbm-input--error[b-z9sc5wumfl] {
    border-color: #e2483b;
    background: #fbeae8;
}

.lbm-input--error:focus[b-z9sc5wumfl] {
    border-color: #e2483b;
    box-shadow: 0 0 0 3px rgba(226, 72, 59, 0.16);
}

.lbm-hint[b-z9sc5wumfl] {
    margin: -4px 0 0;
    font-size: 0.8rem;
    color: #80858d;
}

/* Hinweis anstelle der Baustellen-Liste (keine offene Restmenge) */
.lbm-hint--left[b-z9sc5wumfl] {
    margin: 0;
    line-height: 1.45;
}

/* Festes, nicht wählbares Buchungsdatum (Eingang/Ausgang). */
.lbm-date-static[b-z9sc5wumfl] {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1.5px solid #e4e4e7;
    border-radius: 12px;
    background: #f5f5f7;
    font-size: 0.95rem;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

/* -- Gebinde/Basis-Umschalter -------------------------------------------- */

.lbm-toggle-row[b-z9sc5wumfl] {
    display: inline-flex;
    /* Bis zu 4 Buttons (Basis + 3 Gebinde-Stufen) — lange Namen umbrechen statt überlaufen. */
    flex-wrap: wrap;
    gap: 4px;
    padding: 4px;
    background: #efeff1;
    border-radius: 12px;
    width: fit-content;
}

.lbm-toggle[b-z9sc5wumfl] {
    border: none;
    background: transparent;
    padding: 6px 14px;
    border-radius: 9px;
    font-size: 0.85rem;
    font-weight: 600;
    color: #80858d;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s ease, color 0.15s ease;
}

.lbm-toggle--active[b-z9sc5wumfl] {
    background: #fff;
    color: #16181c;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

/* -- Korrektur-Infobox --------------------------------------------------- */

.lbm-korrektur-info[b-z9sc5wumfl] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 14px;
    background: #f5f5f7;
    border-radius: 12px;
    font-size: 0.88rem;
}

.lbm-korrektur-row[b-z9sc5wumfl] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #80858d;
}

.lbm-korrektur-row span:last-child[b-z9sc5wumfl] {
    font-weight: 700;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

/* Basiswert hinter dem Gebinde-Wert („13,36 Paket (33,4 m²)") – bewusst leiser als der Hauptwert. */
.lbm-korrektur-sub[b-z9sc5wumfl] {
    margin-left: 6px;
    font-size: 0.8rem;
    font-weight: 600 !important;
    color: #a0a4ab !important;
}

.lbm-pos[b-z9sc5wumfl] {
    color: #16181c !important;
}

.lbm-neg[b-z9sc5wumfl] {
    color: #d92d20 !important;
}

/* "optional"-Markierung neben dem Label (dezent, Gegenstück zu .lbm-req). */
.lbm-opt[b-z9sc5wumfl] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #a0a4ab;
    text-transform: lowercase;
    letter-spacing: 0.01em;
}

/* -- Checkbox-Karte (Eingang: Wiederbestellwert übernehmen) -------------- */

.lbm-check[b-z9sc5wumfl] {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 11px 13px;
    border: 1.5px solid #e4e4e7;
    border-radius: 12px;
    background: #f8f8f9;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
    margin-top: -4px;
}

@media (hover: hover) {
    .lbm-check:hover[b-z9sc5wumfl] {
        border-color: #d4d4d8;
        background: #f5f5f7;
    }
}

/* Aktiv: schwarz umrandet + weißer Grund (Häkchen-Box gefüllt). */
.lbm-check.is-on[b-z9sc5wumfl] {
    border-color: #16181c;
    background: #fff;
    box-shadow: inset 0 0 0 1px #16181c;
}

/* Natives Checkbox-Element visuell ausblenden (Bedienung/A11y via Label). */
.lbm-check-native[b-z9sc5wumfl] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.lbm-check-box[b-z9sc5wumfl] {
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
    margin-top: 1px;
    border: 1.5px solid #c4c4c8;
    border-radius: 7px;
    background: #fff;
    color: #fff;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.lbm-check.is-on .lbm-check-box[b-z9sc5wumfl] {
    background: #16181c;
    border-color: #16181c;
}

.lbm-check-box svg[b-z9sc5wumfl] {
    opacity: 0;
    transform: scale(0.5);
    transition: opacity 0.15s ease, transform 0.15s ease;
}

.lbm-check.is-on .lbm-check-box svg[b-z9sc5wumfl] {
    opacity: 1;
    transform: scale(1);
}

.lbm-check-body[b-z9sc5wumfl] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.lbm-check-title[b-z9sc5wumfl] {
    font-size: 0.86rem;
    font-weight: 600;
    color: #16181c;
    line-height: 1.3;
}

.lbm-check-sub[b-z9sc5wumfl] {
    font-size: 0.76rem;
    color: #80858d;
    line-height: 1.35;
}

/* -- Baustellen-Auswahl -------------------------------------------------- */

.lbm-baustelle[b-z9sc5wumfl] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Trefferliste als schwebendes Popover unter dem Suchfeld – legt sich über den
   restlichen Modalinhalt, statt das Modal in die Höhe zu drücken. Funktioniert,
   weil das Modal app-modal--overflow-visible ist und .lbm-baustelle relativ. */
.lbm-baustelle-results[b-z9sc5wumfl] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    z-index: 60;
    display: flex;
    flex-direction: column;
    border: 1.5px solid #e4e4e7;
    border-radius: 12px;
    overflow: hidden;
    overflow-y: auto;
    max-height: 230px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
}

.lbm-baustelle-result[b-z9sc5wumfl] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 9px 12px;
    border: none;
    border-bottom: 1px solid #efeff1;
    background: transparent;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
}

.lbm-baustelle-result:last-child[b-z9sc5wumfl] {
    border-bottom: none;
}

@media (hover: hover) {
    .lbm-baustelle-result:hover[b-z9sc5wumfl] {
        background: #f5f5f7;
    }
}

.lbm-baustelle-name[b-z9sc5wumfl] {
    font-size: 0.9rem;
    font-weight: 600;
    color: #16181c;
}

.lbm-baustelle-meta[b-z9sc5wumfl] {
    font-size: 0.78rem;
    color: #80858d;
}

.lbm-baustelle-empty[b-z9sc5wumfl] {
    padding: 10px 12px;
    font-size: 0.85rem;
    color: #80858d;
}

.lbm-baustelle-chip[b-z9sc5wumfl] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 10px 9px 14px;
    border: 1.5px solid #e4e4e7;
    border-radius: 12px;
    background: #f5f5f7;
}

.lbm-baustelle-chip-body[b-z9sc5wumfl] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1;
    min-width: 0;
}

.lbm-baustelle-clear[b-z9sc5wumfl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: #80858d;
    cursor: pointer;
    flex-shrink: 0;
}

@media (hover: hover) {
    .lbm-baustelle-clear:hover[b-z9sc5wumfl] {
        background: #e4e4e7;
        color: #16181c;
    }
}

/* -- Rückgabe: Baustellen mit offener Restmenge (Eingang, Herkunft Baustelle) -- */

/* Filterzeile über der Liste: gefüllt statt umrandet, damit sie als Suche und nicht
   als weiteres Eingabefeld des Formulars gelesen wird. Erst beim Fokus wird sie weiß. */
.lbm-search[b-z9sc5wumfl] {
    position: relative;
    display: flex;
    align-items: center;
}

.lbm-search-icon[b-z9sc5wumfl] {
    position: absolute;
    left: 12px;
    color: #80858d;
    pointer-events: none;
}

.lbm-input.lbm-search-input[b-z9sc5wumfl] {
    padding: 9px 34px 9px 34px;
    background: #f5f5f7;
    border-color: transparent;
    font-size: 0.9rem;
}

.lbm-input.lbm-search-input[b-z9sc5wumfl]::placeholder {
    color: #80858d;
}

.lbm-input.lbm-search-input:focus[b-z9sc5wumfl] {
    background: #fff;
    border-color: #16181c;
}

.lbm-search-clear[b-z9sc5wumfl] {
    position: absolute;
    right: 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border: none;
    border-radius: 999px;
    background: #e4e4e7;
    color: #3c4148;
    cursor: pointer;
    padding: 0;
    transition: background 0.15s ease, color 0.15s ease;
}

@media (hover: hover) {
    .lbm-search-clear:hover[b-z9sc5wumfl] {
        background: #16181c;
        color: #fff;
    }
}

/* Höhe bewusst gedeckelt UND viewport-abhängig: das Modal läuft mit
   app-modal--overflow-visible ohne eigenen Scroll-Kontext, ein zu hohes Formular
   schiebt die Aktionsleiste unerreichbar aus dem Bild. */
.lbm-rest-list[b-z9sc5wumfl] {
    display: flex;
    flex-direction: column;
    border: 1.5px solid #e4e4e7;
    border-radius: 12px;
    overflow: hidden;
    overflow-y: auto;
    max-height: min(210px, 30vh);
    background: #fff;
}

/* Mit Suchzeile darüber: um deren Höhe niedriger, damit das Formular in Summe
   nicht höher wird als ohne Suche. Gefiltert wird hier ohnehin statt gescrollt. */
.lbm-rest-list--kompakt[b-z9sc5wumfl] {
    max-height: min(166px, 24vh);
}

.lbm-rest-list--error[b-z9sc5wumfl] {
    border-color: #e2483b;
}

.lbm-rest-item[b-z9sc5wumfl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    border: none;
    border-bottom: 1px solid #efeff1;
    background: transparent;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s ease;
}

.lbm-rest-item:last-child[b-z9sc5wumfl] {
    border-bottom: none;
}

@media (hover: hover) {
    .lbm-rest-item:hover[b-z9sc5wumfl] {
        background: #f5f5f7;
    }
}

/* Name + Kunde/Ort als Block, damit die offene Menge rechts bündig bleibt. */
.lbm-rest-body[b-z9sc5wumfl] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.lbm-rest-item--active[b-z9sc5wumfl] {
    background: #16181c;
}

.lbm-rest-item--active .lbm-baustelle-name[b-z9sc5wumfl],
.lbm-rest-item--active .lbm-rest-menge[b-z9sc5wumfl] {
    color: #fff;
}

.lbm-rest-item--active .lbm-baustelle-meta[b-z9sc5wumfl] {
    color: rgba(255, 255, 255, 0.72);
}

@media (hover: hover) {
    .lbm-rest-item--active:hover[b-z9sc5wumfl] {
        background: #16181c;
    }
}

.lbm-rest-menge[b-z9sc5wumfl] {
    flex-shrink: 0;
    font-size: 0.8rem;
    font-weight: 600;
    color: #80858d;
    font-variant-numeric: tabular-nums;
}

/* -- Negativ-Warnung ----------------------------------------------------- */

.lbm-warn[b-z9sc5wumfl] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 11px 13px;
    border-radius: 12px;
    background: rgba(232, 156, 0, 0.12);
    border: 1.5px solid rgba(232, 156, 0, 0.4);
    color: #8a5d00;
    font-size: 0.85rem;
    line-height: 1.4;
}

.lbm-warn svg[b-z9sc5wumfl] {
    flex-shrink: 0;
    color: #e89c00;
    margin-top: 1px;
}

.lbm-warn strong[b-z9sc5wumfl] {
    color: #d92d20;
}

/* -- Fehler -------------------------------------------------------------- */

.lbm-error[b-z9sc5wumfl] {
    margin: 0;
    font-size: 0.85rem;
    color: #d92d20;
    font-weight: 600;
}

/* -- Aktionen ------------------------------------------------------------ */

.lbm-btn[b-z9sc5wumfl] {
    padding: 10px 20px;
    border-radius: 12px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    border: 1.5px solid transparent;
    font-family: inherit;
    transition: background 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
}

.lbm-btn--ghost[b-z9sc5wumfl] {
    background: #fff;
    border-color: #e4e4e7;
    color: #16181c;
}

@media (hover: hover) {
    .lbm-btn--ghost:hover[b-z9sc5wumfl] {
        background: #f5f5f7;
    }
}

.lbm-btn--primary[b-z9sc5wumfl] {
    background: #16181c;
    color: #fff;
}

@media (hover: hover) {
    .lbm-btn--primary:hover:not(:disabled)[b-z9sc5wumfl] {
        background: #2a2d33;
    }
}

.lbm-btn:disabled[b-z9sc5wumfl] {
    opacity: 0.45;
    cursor: not-allowed;
}
/* /Components/Pages/Lager/LagerEinkauf.razor.rz.scp.css */
/* Einkauf-Tab in /lager — Kanban-Board (Entwurf | Bestellt | Geliefert) + Seiten-Panel,
   monochromes Design (Grammatik wie Bestand/Journal). */

/* Füllt den overflow:hidden-Wrapper (.lg-journalwrap) — gescrollt wird NUR in den Spalten. */
.lge-root[b-uqe71n0g0t] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    flex: 1 1 auto;
    min-height: 0;
    padding-bottom: 12px;
}

/* NumPad-Popup über Modal UND Panel heben (global liegt .np-popup darunter). */
.np-overlay[b-uqe71n0g0t] {
    z-index: 2200;
}

.np-popup[b-uqe71n0g0t] {
    z-index: 2201;
}

/* -- Board -------------------------------------------------------------------- */

.lge-board[b-uqe71n0g0t] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    flex: 1 1 auto;
    min-height: 0;
}

.lge-col[b-uqe71n0g0t] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: #efeff1;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 10px;
    min-height: 240px;
    max-height: 100%;
}

.lge-col--target[b-uqe71n0g0t] {
    outline: 2px dashed #16181c;
    outline-offset: -2px;
    background: #e6e6ea;
}

/* Gesperrtes Drop-Ziel während des Drags (z. B. Teilgeliefert zurück auf Entwurf). */
.lge-col--blocked[b-uqe71n0g0t] {
    opacity: .5;
}

.lge-col--blockhover[b-uqe71n0g0t]::after {
    content: attr(data-bb-blockmsg);
    position: absolute;
    top: 14px;
    left: 12px;
    right: 12px;
    z-index: 5;
    background: #16181c;
    color: #ffffff;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    padding: 8px 12px;
    border-radius: 10px;
    text-align: center;
    pointer-events: none;
    box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .4);
}

.lge-col-head[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 2px 4px 0;
}

.lge-col-title[b-uqe71n0g0t] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #80858d;
}

.lge-col-count[b-uqe71n0g0t] {
    background: #ffffff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 1px 8px;
    font-size: 11px;
    font-weight: 700;
    color: #16181c;
}

.lge-col-add[b-uqe71n0g0t] {
    margin-left: auto;
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border: none;
    border-radius: 999px;
    background: #16181c;
    color: #ffffff;
    cursor: pointer;
}

@media (hover: hover) {
    .lge-col-add:hover[b-uqe71n0g0t] {
        background: #3c4148;
    }
}

.lge-col-body[b-uqe71n0g0t] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 60px;
    flex: 1 1 auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-right: 2px;
}

/* Schmale Scrollbars (Muster aus /aufmass) für Spalten + Panel. */
.lge-col-body[b-uqe71n0g0t],
.lge-panel-body[b-uqe71n0g0t] {
    scrollbar-width: thin;                 /* Firefox */
    scrollbar-color: #c6c9ce transparent;  /* Daumen · Spur (Spur = Hintergrund darunter) */
}

.lge-col-body[b-uqe71n0g0t]::-webkit-scrollbar,
.lge-panel-body[b-uqe71n0g0t]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.lge-col-body[b-uqe71n0g0t]::-webkit-scrollbar-track,
.lge-panel-body[b-uqe71n0g0t]::-webkit-scrollbar-track {
    background: transparent;
}

.lge-col-body[b-uqe71n0g0t]::-webkit-scrollbar-thumb,
.lge-panel-body[b-uqe71n0g0t]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .lge-col-body[b-uqe71n0g0t]::-webkit-scrollbar-thumb:hover,
    .lge-panel-body[b-uqe71n0g0t]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

.lge-col-empty[b-uqe71n0g0t] {
    margin: 6px 4px;
    font-size: 12.5px;
    color: #80858d;
}

.lge-col-more[b-uqe71n0g0t] {
    border: 1px dashed #c9c9cf;
    background: transparent;
    color: #3c4148;
    border-radius: 11px;
    padding: 8px 10px;
    font: inherit;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
}

@media (hover: hover) {
    .lge-col-more:hover[b-uqe71n0g0t] {
        background: #ffffff;
    }
}

/* -- Karten -------------------------------------------------------------------- */

.lge-bcard[b-uqe71n0g0t] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: #ffffff;
    border: 1px solid #e4e4e7;
    border-radius: 13px;
    padding: 10px 12px;
    box-shadow: 0 4px 12px -10px rgba(0, 0, 0, .25);
    cursor: grab;
    /* Vertikal bleibt natives Scrollen — horizontaler Zug startet den Drag (bestellBoardDrag.js).
       Callout aus, sonst öffnet iOS beim Zupacken auf einem Thumbnail das „Bild sichern"-Menü. */
    touch-action: pan-y;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

@media (hover: hover) {
    .lge-bcard:hover[b-uqe71n0g0t] {
        border-color: #c9c9cf;
    }
}

.lge-bcard--dragging[b-uqe71n0g0t] {
    opacity: .35;
}

.lge-bcard--storniert[b-uqe71n0g0t] {
    opacity: .55;
}

.lge-bcard-top[b-uqe71n0g0t] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
}

.lge-bcard-lieferant[b-uqe71n0g0t] {
    min-width: 0;
    font-weight: 800;
    font-size: 13.5px;
    color: #16181c;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lge-bcard-nr[b-uqe71n0g0t] {
    flex: 0 0 auto;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 11.5px;
    color: #80858d;
}

.lge-bcard-meta[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 10px;
    font-size: 12px;
    color: #80858d;
}

.lge-bcard-ziel[b-uqe71n0g0t] {
    background: #efeff1;
    border-radius: 999px;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 700;
    color: #16181c;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lge-bcard-wert[b-uqe71n0g0t] {
    margin-left: auto;
    font-weight: 700;
    color: #16181c;
}

.lge-bcard-thumbs[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
}

.lge-bcard-thumbs img[b-uqe71n0g0t] {
    width: 30px;
    height: 30px;
    border-radius: 999px;
    object-fit: cover;
    border: 2px solid #ffffff;
    box-shadow: 0 0 0 1px #e4e4e7;
    margin-left: -8px;
    background: #efeff1;
}

.lge-bcard-thumbs img:first-child[b-uqe71n0g0t] {
    margin-left: 0;
}

.lge-bcard-thumbs-more[b-uqe71n0g0t] {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    margin-left: -8px;
    border-radius: 999px;
    border: 2px solid #ffffff;
    box-shadow: 0 0 0 1px #e4e4e7;
    background: #efeff1;
    font-size: 10.5px;
    font-weight: 800;
    color: #3c4148;
}

.lge-bcard-eta[b-uqe71n0g0t] {
    align-self: flex-start;
    background: #efeff1;
    border-radius: 999px;
    padding: 2px 8px;
    font-size: 11.5px;
    font-weight: 700;
    color: #3c4148;
}

.lge-bcard-eta--overdue[b-uqe71n0g0t] {
    background: #fbeae8;
    color: #e2483b;
}

.lge-bcard-progress[b-uqe71n0g0t] {
    height: 5px;
    border-radius: 999px;
    background: #efeff1;
    overflow: hidden;
}

.lge-bcard-progress-fill[b-uqe71n0g0t] {
    height: 100%;
    border-radius: 999px;
    background: #16181c;
}

.lge-bcard-progress-txt[b-uqe71n0g0t] {
    font-size: 11.5px;
    font-weight: 600;
    color: #a15c00;
}

.lge-bcard-done[b-uqe71n0g0t] {
    font-size: 11.5px;
    font-weight: 700;
    color: #16a34a;
}

.lge-bcard-storno[b-uqe71n0g0t] {
    font-size: 11.5px;
    font-weight: 700;
    color: #e2483b;
}

/* Ghost-Klon während des Drags (hängt am body, daher global via ::deep nicht nötig —
   die Klasse wird mitkopiert, das Element trägt das Scope-Attribut des Klons). */
.lge-bcard--ghost[b-uqe71n0g0t] {
    cursor: grabbing;
    opacity: .95;
    box-shadow: 0 18px 40px -18px rgba(0, 0, 0, .45);
}

.lge-empty[b-uqe71n0g0t] {
    margin: 0;
    font-size: 13.5px;
    color: #80858d;
}

/* -- Status-Chips (kalme semantische Farben auf monochromem Grund) ---------- */

.lge-status[b-uqe71n0g0t] {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 3px 10px;
    font-size: 11.5px;
    font-weight: 700;
    background: #efeff1;
    color: #16181c;
}

.lge-status--bestellt[b-uqe71n0g0t] {
    background: #16181c;
    color: #ffffff;
}

.lge-status--teilgeliefert[b-uqe71n0g0t] {
    background: #fdf3e0;
    color: #a15c00;
}

.lge-status--geliefert[b-uqe71n0g0t] {
    background: #e5f5ec;
    color: #16a34a;
}

.lge-status--storniert[b-uqe71n0g0t] {
    background: #fbeae8;
    color: #e2483b;
}

/* -- Seiten-Panel (Slide-Over wie das Kontakte-Panel in /project-setup) ------ */

.lge-backdrop[b-uqe71n0g0t] {
    position: fixed;
    inset: 0;
    z-index: 140;
    border: 0;
    padding: 0;
    background: rgba(22, 24, 28, 0.32);
    cursor: default;
}

.lge-panel[b-uqe71n0g0t] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 150;
    display: flex;
    flex-direction: column;
    width: min(520px, calc(100dvw - 24px));
    background: #ffffff;
    border-left: 1px solid #e4e4e7;
    box-shadow: -24px 0 60px -30px rgba(0, 0, 0, 0.35);
    animation: lge-fade-in-b-uqe71n0g0t 0.16s ease-out;
}

@keyframes lge-fade-in-b-uqe71n0g0t {
    from { opacity: 0; }
}

.lge-panel-head[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 16px 12px;
    border-bottom: 1px solid #e4e4e7;
}

.lge-panel-close[b-uqe71n0g0t] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #ffffff;
    color: #16181c;
    cursor: pointer;
}

@media (hover: hover) {
    .lge-panel-close:hover[b-uqe71n0g0t] {
        background: #16181c;
        border-color: #16181c;
        color: #ffffff;
    }
}

.lge-panel-body[b-uqe71n0g0t] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 16px;
}

/* Audit-Zeile über den Actions (Muster: Terminhistorie im Kalender-Modal). */
.lge-panel-audit[b-uqe71n0g0t] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 9px 16px;
    border-top: 1px solid #e4e4e7;
    color: #80858d;
    font-size: 0.66rem;
    font-weight: 650;
}

.lge-panel-audit span[b-uqe71n0g0t] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lge-panel-audit strong[b-uqe71n0g0t] {
    color: #16181c;
    font-weight: 850;
}

.lge-panel-foot[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-top: 1px solid #e4e4e7;
    flex-wrap: wrap;
}

.lge-panel-foot-spacer[b-uqe71n0g0t] {
    flex: 1 1 auto;
}

/* Bestell-Mail ist ein Link im Button-Gewand (mailto): eigene volle Zeile über den
   Aktions-Buttons (flex-wrap bricht danach um), Link-Optik neutralisiert. */
.lge-mailbtn[b-uqe71n0g0t],
.lge-mailbtn:hover[b-uqe71n0g0t] {
    flex: 1 1 100%;
    justify-content: center;
    text-decoration: none;
}

@media (max-width: 560px) {
    .lge-panel[b-uqe71n0g0t] {
        width: 100dvw;
        border-left: 0;
    }
}

/* -- Bestellvorschlag (im Panel) --------------------------------------------- */

.lge-vgroup[b-uqe71n0g0t] {
    border-top: 1px solid #e4e4e7;
    padding: 12px 0 8px;
}

.lge-vgroup:first-of-type[b-uqe71n0g0t] {
    border-top: none;
    padding-top: 0;
}

.lge-vgroup-head[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
    flex-wrap: wrap;
}

.lge-vgroup-name[b-uqe71n0g0t] {
    font-weight: 800;
    font-size: 14px;
    color: #16181c;
}

.lge-vgroup-hint[b-uqe71n0g0t] {
    margin: 0 0 6px;
    font-size: 12px;
    color: #80858d;
}

.lge-vrow[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 0;
    flex-wrap: wrap;
}

/* -- Negativbestand-Gruppe (Zeilen öffnen das Artikel-Detail) ---------------- */

.lge-negbadge[b-uqe71n0g0t] {
    background: #fbeae8;
    color: #e2483b;
    border-radius: 999px;
    padding: 2px 9px;
    font-size: 11.5px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.lge-negrow[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    text-align: left;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    background: #ffffff;
    padding: 8px 10px;
    margin-bottom: 6px;
    font: inherit;
    cursor: pointer;
}

@media (hover: hover) {
    .lge-negrow:hover[b-uqe71n0g0t] {
        border-color: #16181c;
    }
}

.lge-negrow-bestand[b-uqe71n0g0t] {
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 800;
    color: #e2483b;
    font-variant-numeric: tabular-nums;
}

.lge-vrow-name[b-uqe71n0g0t] {
    flex: 1 1 160px;
    min-width: 0;
    font-weight: 600;
    font-size: 13.5px;
    color: #16181c;
}

.lge-vrow-artnr[b-uqe71n0g0t] {
    margin-left: 6px;
    font-weight: 500;
    font-size: 12px;
    color: #80858d;
}

.lge-vrow-stand[b-uqe71n0g0t] {
    font-size: 12.5px;
    color: #3c4148;
    white-space: nowrap;
}

.lge-vrow-offen[b-uqe71n0g0t] {
    font-size: 11.5px;
    font-weight: 700;
    background: #efeff1;
    color: #16181c;
    border-radius: 999px;
    padding: 3px 9px;
    white-space: nowrap;
}

.lge-vrow-menge[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.lge-menge-input[b-uqe71n0g0t] {
    width: 84px;
    text-align: right;
}

.lge-preis-input[b-uqe71n0g0t] {
    width: 84px;
    text-align: right;
}

.lge-vrow-einheit[b-uqe71n0g0t],
.lge-posrow-einheit[b-uqe71n0g0t] {
    font-size: 12.5px;
    color: #80858d;
    white-space: nowrap;
}

.lge-vrow-gebinde[b-uqe71n0g0t],
.lge-posrow-gebinde[b-uqe71n0g0t] {
    font-size: 12px;
    color: #80858d;
    white-space: nowrap;
}

.lge-posrow-gebinde[b-uqe71n0g0t] {
    margin-left: 8px;
    font-weight: 500;
}

/* -- Modal-/Panel-Kopf --------------------------------------------------------- */

.lge-modal-head[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.lge-modal-head-icon[b-uqe71n0g0t] {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: #efeff1;
    color: #16181c;
    flex: 0 0 auto;
}

.lge-modal-head-text[b-uqe71n0g0t] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.lge-modal-head-title[b-uqe71n0g0t] {
    font-weight: 800;
    font-size: 16px;
    color: #16181c;
}

.lge-modal-head-sub[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    color: #80858d;
    flex-wrap: wrap;
}

/* -- Formular (Panel: Neu/Entwurf/Detail + Wareneingang-Modal) ---------------- */

.lge-form[b-uqe71n0g0t] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.lge-formgrid[b-uqe71n0g0t] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 12px;
}

.lge-field[b-uqe71n0g0t] {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
}

.lge-field--full[b-uqe71n0g0t] {
    grid-column: 1 / -1;
}

/* Labels als ruhige Eyebrows — deutlich abgesetzt von den Nutzer-Werten darunter. */
.lge-lbl[b-uqe71n0g0t] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #80858d;
}

.lge-req[b-uqe71n0g0t] {
    color: #e2483b;
}

.lge-opt[b-uqe71n0g0t] {
    font-weight: 600;
    font-size: 11px;
    color: #80858d;
}

.lge-ro[b-uqe71n0g0t] {
    font-size: 14.5px;
    font-weight: 650;
    color: #16181c;
    padding: 2px 0 6px;
}

.lge-section[b-uqe71n0g0t] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.lge-section-title[b-uqe71n0g0t] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #80858d;
}

/* Titelzeile der Positionen: Überschrift links, kleines „+ Artikel"-Dropdown rechts. */
.lge-section-titlerow[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.lge-toggle-row[b-uqe71n0g0t] {
    display: flex;
    gap: 6px;
}

.lge-toggle[b-uqe71n0g0t] {
    border: 1px solid #e4e4e7;
    background: #ffffff;
    color: #16181c;
    border-radius: 999px;
    padding: 7px 16px;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

@media (hover: hover) {
    /* Hover nur auf inaktiven Toggles — der aktive bleibt satt schwarz. */
    .lge-toggle:not(.lge-toggle--active):hover[b-uqe71n0g0t] {
        background: #efeff1;
    }
}

.lge-toggle--active[b-uqe71n0g0t] {
    background: #16181c;
    border-color: #16181c;
    color: #ffffff;
}

/* -- Positionen ------------------------------------------------------------- */

.lge-poslist[b-uqe71n0g0t] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lge-posrow[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 8px 10px;
    flex-wrap: wrap;
}

.lge-posrow-name[b-uqe71n0g0t] {
    flex: 1 1 160px;
    min-width: 0;
    font-weight: 600;
    font-size: 13.5px;
    color: #16181c;
}

.lge-posrow-edit[b-uqe71n0g0t],
.lge-posrow-liefer[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.lge-posrow-x[b-uqe71n0g0t] {
    color: #80858d;
    font-size: 12.5px;
}

.lge-posrow-info[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: #3c4148;
    flex-wrap: wrap;
}

.lge-posrow-geliefert[b-uqe71n0g0t] {
    font-size: 11.5px;
    font-weight: 700;
    background: #efeff1;
    color: #16181c;
    border-radius: 999px;
    padding: 3px 9px;
    white-space: nowrap;
}

.lge-pos-remove[b-uqe71n0g0t] {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: #80858d;
    cursor: pointer;
}

@media (hover: hover) {
    .lge-pos-remove:hover[b-uqe71n0g0t] {
        background: #fbeae8;
        color: #e2483b;
    }
}

.lge-posadd[b-uqe71n0g0t] {
    width: 200px;
    flex: 0 0 auto;
}

.lge-posadd[b-uqe71n0g0t]  .iconsel-trigger {
    min-height: 34px;
    padding-top: 4px;
    padding-bottom: 4px;
    font-size: 12.5px;
}

.lge-sumrow[b-uqe71n0g0t] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    border-top: 1px solid #e4e4e7;
    padding-top: 8px;
    font-size: 13.5px;
    color: #16181c;
}

.lge-mindesthinweis[b-uqe71n0g0t] {
    margin: 0;
    font-size: 12.5px;
    font-weight: 600;
    color: #a15c00;
}

/* Checkbox-Karte (Muster aus LagerBuchenModal: Rahmen-Karte + gefüllte Häkchen-Box). */
.lge-checkcard[b-uqe71n0g0t] {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 11px 13px;
    border: 1.5px solid #e4e4e7;
    border-radius: 12px;
    background: #f8f8f9;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

@media (hover: hover) {
    .lge-checkcard:hover[b-uqe71n0g0t] {
        border-color: #d4d4d8;
        background: #f5f5f7;
    }
}

.lge-checkcard.is-on[b-uqe71n0g0t] {
    border-color: #16181c;
    background: #fff;
    box-shadow: inset 0 0 0 1px #16181c;
}

/* Natives Checkbox-Element visuell ausblenden (Bedienung/A11y via Label). */
.lge-checkcard-native[b-uqe71n0g0t] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.lge-checkcard-box[b-uqe71n0g0t] {
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
    margin-top: 1px;
    border: 1.5px solid #c4c4c8;
    border-radius: 7px;
    background: #fff;
    color: #fff;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.lge-checkcard.is-on .lge-checkcard-box[b-uqe71n0g0t] {
    background: #16181c;
    border-color: #16181c;
}

.lge-checkcard-box svg[b-uqe71n0g0t] {
    opacity: 0;
    transform: scale(0.5);
    transition: opacity 0.15s ease, transform 0.15s ease;
}

.lge-checkcard.is-on .lge-checkcard-box svg[b-uqe71n0g0t] {
    opacity: 1;
    transform: scale(1);
}

.lge-checkcard-body[b-uqe71n0g0t] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.lge-checkcard-title[b-uqe71n0g0t] {
    font-size: 0.86rem;
    font-weight: 600;
    color: #16181c;
    line-height: 1.3;
}

.lge-checkcard-sub[b-uqe71n0g0t] {
    font-size: 0.76rem;
    color: #80858d;
    line-height: 1.35;
}

.lge-fehler[b-uqe71n0g0t] {
    margin: 0;
    color: #e2483b;
    font-size: 13px;
}

.lge-btn-danger[b-uqe71n0g0t] {
    color: #e2483b;
}

@media (hover: hover) {
    .lge-btn-danger:hover[b-uqe71n0g0t] {
        background: #fbeae8;
    }
}

/* -- Löschen/Stornieren-Bestätigung (Muster „Kontakt löschen" aus /project-setup) -- */

.lge-del-backdrop[b-uqe71n0g0t] {
    position: fixed;
    inset: 0;
    z-index: 2110;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(22, 24, 28, 0.4);
}

.lge-del-card[b-uqe71n0g0t] {
    position: relative;
    width: min(420px, 100%);
    overflow: hidden;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
    animation: lge-del-in-b-uqe71n0g0t 0.18s cubic-bezier(0.32, 0.72, 0, 1);
}

@keyframes lge-del-in-b-uqe71n0g0t {
    from {
        opacity: 0;
        transform: translateY(8px) scale(0.98);
    }
}

.lge-del-header[b-uqe71n0g0t] {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 18px 20px;
    border-bottom: 1px solid #e4e4e7;
}

.lge-del-icon[b-uqe71n0g0t] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    border-radius: 10px;
    background: #fbeae8;
    color: #e2483b;
}

.lge-del-header h2[b-uqe71n0g0t] {
    margin: 0;
    color: #16181c;
    font-size: 16px;
    font-weight: 800;
}

.lge-del-body[b-uqe71n0g0t] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 20px;
}

.lge-del-subject[b-uqe71n0g0t] {
    margin: 0;
    color: #16181c;
    font-size: 15px;
    font-weight: 800;
    word-break: break-word;
}

.lge-del-cascade[b-uqe71n0g0t] {
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #f0d9a8;
    border-radius: 11px;
    background: #fdf6e8;
    color: #8a5a00;
    font-size: 12.5px;
    font-weight: 650;
    line-height: 1.4;
}

.lge-del-timer[b-uqe71n0g0t] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 4px 0 2px;
}

.lge-del-ring[b-uqe71n0g0t] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: conic-gradient(#16181c calc(var(--pct, 0) * 1%), #efeff1 0);
}

.lge-del-ring[b-uqe71n0g0t]::before {
    content: "";
    position: absolute;
    inset: 5px;
    border-radius: 50%;
    background: #ffffff;
}

.lge-del-ring span[b-uqe71n0g0t] {
    position: relative;
    color: #16181c;
    font-size: 20px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.lge-del-hint[b-uqe71n0g0t] {
    color: #3c4148;
    font-size: 13px;
    font-weight: 650;
}

.lge-del-actions[b-uqe71n0g0t] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 20px;
    border-top: 1px solid #e4e4e7;
    background: #f7f7f9;
}

.lge-btn-ghost[b-uqe71n0g0t] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #ffffff;
    color: #3c4148;
    font: inherit;
    font-size: 13px;
    font-weight: 750;
    line-height: 1;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s, transform 0.12s;
}

@media (hover: hover) {
    .lge-btn-ghost:hover[b-uqe71n0g0t] {
        border-color: #d4d4d8;
        background: #efeff1;
        color: #16181c;
    }
}

.lge-btn-ghost:active[b-uqe71n0g0t] {
    transform: translateY(1px);
}

.lge-btn-delete[b-uqe71n0g0t] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid #e2483b;
    border-radius: 999px;
    background: #e2483b;
    color: #ffffff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 750;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, transform 0.12s, box-shadow 0.15s;
}

@media (hover: hover) {
    .lge-btn-delete:hover[b-uqe71n0g0t] {
        border-color: #c5392e;
        background: #c5392e;
        box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
        transform: translateY(-1px);
    }
}

.lge-btn-delete:active[b-uqe71n0g0t] {
    transform: translateY(0);
}

.lge-btn-delete--disabled[b-uqe71n0g0t] {
    opacity: .55;
    cursor: default;
    box-shadow: none;
}

@media (hover: hover) {
    .lge-btn-delete--disabled:hover[b-uqe71n0g0t] {
        border-color: #e2483b;
        background: #e2483b;
        box-shadow: none;
        transform: none;
    }
}

/* -- Responsiv: Scroll-Snap-Board auf schmalen Screens ------------------------
   Snap wird beim Ziehen per JS (bestellBoardDrag.js) kurz abgeschaltet, damit die
   Auto-Scroll-Geste nicht sofort auf die äußerste Spalte springt. */

@media (max-width: 820px) {
    .lge-board[b-uqe71n0g0t] {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        margin: 0 -12px;
        padding: 0 12px 4px;
    }

    .lge-col[b-uqe71n0g0t] {
        flex: 0 0 85%;
        scroll-snap-align: center;
        min-height: 300px;
    }
}

@media (max-width: 560px) {
    .lge-formgrid[b-uqe71n0g0t] {
        grid-template-columns: 1fr;
    }
}

/* Bedarfsrechner-Icon an der Positionszeile — wie der Entfernen-Button, nur neutral. */
.lge-pos-calc[b-uqe71n0g0t] {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: #80858d;
    cursor: pointer;
}

@media (hover: hover) {
    .lge-pos-calc:hover[b-uqe71n0g0t] {
        background: #efeff1;
        color: #16181c;
    }
}
/* /Components/Pages/Lager/LagerJournal.razor.rz.scp.css */
/* ===============================================================
   LAGER — Bewegungsjournal (monochrom, passend zum Header/Fleet).
   Akzent = Schwarz (#16181c). Semantische Farben nur für Typ-Pills
   (Eingang grün, Ausgang rot, Korrektur grau) und Storno.
=============================================================== */

.lgj[b-fc88uic0ar] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    flex: 1 1 auto;
    min-height: 0;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #16181c;
}

/* -- Werkzeugleiste / Filter --------------------------------------------- */
.lgj-toolbar[b-fc88uic0ar] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    flex: 0 0 auto;
}

.lgj-filters[b-fc88uic0ar] {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: .65rem .75rem;
}

.lgj-filter[b-fc88uic0ar] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    min-width: 0;
}

.lgj-filter > span[b-fc88uic0ar] {
    font-size: .74rem;
    font-weight: 600;
    color: #80858d;
}

.lgj-input[b-fc88uic0ar] {
    height: 2.4rem;
    min-width: 9.5rem;
    font: inherit;
}

/* Fokus-Ring schwarz statt blau (lokal, da settings-input global blau ist) */
.lgj-input:focus[b-fc88uic0ar] {
    border-color: #16181c;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
    outline: none;
}

/* Suchfeld: gestylte Box (Lupe + Input + Clear) statt nativem type=search. */
.lgj-search[b-fc88uic0ar] {
    position: relative;
    display: flex;
    align-items: center;
    width: 16rem;
    max-width: 100%;
    height: 2.4rem;
    padding: 0 .45rem 0 .6rem;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #fff;
    transition: border-color .15s, box-shadow .15s;
}

.lgj-search:focus-within[b-fc88uic0ar] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.lgj-search > svg[b-fc88uic0ar] {
    flex: 0 0 auto;
    color: #80858d;
}

.lgj-search-input[b-fc88uic0ar] {
    flex: 1 1 auto;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    font: inherit;
    font-size: .88rem;
    color: #16181c;
    padding: 0 .4rem;
}

.lgj-search-input[b-fc88uic0ar]::placeholder {
    color: #9aa0a8;
}

.lgj-search-clear[b-fc88uic0ar] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    flex: 0 0 auto;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: #80858d;
    cursor: pointer;
    transition: background .15s, color .15s;
}

@media (hover: hover) {
    .lgj-search-clear:hover[b-fc88uic0ar] {
        background: #efeff1;
        color: #16181c;
    }
}

/* „Filter zurücksetzen" als dezenter Text-Link wie im Kalender. */
.lgj-reset[b-fc88uic0ar] {
    display: inline-flex;
    align-items: center;
    height: 2.4rem;
    padding: 0 .25rem;
    border: 0;
    background: transparent;
    font: inherit;
    font-size: .78rem;
    font-weight: 700;
    color: #80858d;
    text-decoration: underline;
    cursor: pointer;
    transition: color .12s ease;
}

@media (hover: hover) {
    .lgj-reset:hover[b-fc88uic0ar] {
        color: #16181c;
    }
}

.lgj-count[b-fc88uic0ar] {
    font-size: .82rem;
    font-weight: 600;
    color: #80858d;
    white-space: nowrap;
    padding-bottom: .55rem;
}

/* -- Tabelle ------------------------------------------------------------- */
.lgj-tablewrap[b-fc88uic0ar] {
    flex: 1 1 auto;
    min-height: 0;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    overflow: auto;
    scrollbar-width: thin;                 /* Firefox — schmale Scrollbar wie im Einkauf/Aufmaß */
    scrollbar-color: #c6c9ce transparent;
}

.lgj-tablewrap[b-fc88uic0ar]::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

.lgj-tablewrap[b-fc88uic0ar]::-webkit-scrollbar-track {
    background: transparent;
}

.lgj-tablewrap[b-fc88uic0ar]::-webkit-scrollbar-thumb {
    background: #c6c9ce;
    border-radius: 999px;
}

@media (hover: hover) {
    .lgj-tablewrap[b-fc88uic0ar]::-webkit-scrollbar-thumb:hover {
        background: #a2a6ad;
    }
}

.lgj-table[b-fc88uic0ar] {
    width: 100%;
    border-collapse: collapse;
    font-size: .86rem;
}

.lgj-table thead th[b-fc88uic0ar] {
    text-align: left;
    padding: .7rem .85rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #80858d;
    background: #f7f7f8;
    border-bottom: 1px solid #e4e4e7;
    white-space: nowrap;
    position: sticky;
    top: 0;
    z-index: 1;
}

.lgj-table tbody td[b-fc88uic0ar] {
    padding: .68rem .85rem;
    border-bottom: 1px solid #efeff1;
    color: #3c4148;
    vertical-align: middle;
}

.lgj-table tbody tr:last-child td[b-fc88uic0ar] {
    border-bottom: 0;
}

@media (hover: hover) {
    .lgj-row:hover td[b-fc88uic0ar] {
        background: #fafafb;
    }
}

.lgj-c-menge[b-fc88uic0ar],
.lgj-c-preis[b-fc88uic0ar] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.lgj-c-datum[b-fc88uic0ar] {
    white-space: nowrap;
    color: #16181c;
    font-weight: 600;
}

.lgj-c-aktion[b-fc88uic0ar] {
    width: 1%;
    text-align: right;
    white-space: nowrap;
}

.lgj-artikel[b-fc88uic0ar] {
    font-weight: 600;
    color: #16181c;
}

/* Artikelname als anklickbarer Link (blau, unterstrichen) → öffnet den Artikel. */
.lgj-artikel-link[b-fc88uic0ar] {
    padding: 0;
    border: none;
    background: none;
    font: inherit;
    font-weight: 600;
    color: #145DA0;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    text-align: left;
}

@media (hover: hover) {
    .lgj-artikel-link:hover[b-fc88uic0ar] {
        color: #0f4880;
    }
}

/* Stornierte Zeile: durchgestrichen + gedämpft */
.lgj-row--storno td[b-fc88uic0ar] {
    color: #aeb0b5;
    text-decoration: line-through;
    text-decoration-color: #cfd0d3;
}

.lgj-row--storno .lgj-artikel[b-fc88uic0ar],
.lgj-row--storno .lgj-artikel-link[b-fc88uic0ar] {
    color: #aeb0b5;
}

.lgj-stornobadge[b-fc88uic0ar] {
    display: inline-block;
    margin-left: .4rem;
    padding: .08rem .4rem;
    border-radius: 999px;
    background: #fde8e6;
    color: #b42318;
    font-size: .68rem;
    font-weight: 700;
    text-decoration: none;
    vertical-align: middle;
}

/* -- Typ-Pills (semantisch) ---------------------------------------------- */
.lgj-typ[b-fc88uic0ar] {
    display: inline-flex;
    align-items: center;
    padding: .12rem .5rem;
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 700;
    border: 1px solid transparent;
    white-space: nowrap;
}

.lgj-typ--ein[b-fc88uic0ar] {
    background: #e7f7ee;
    color: #027a48;
    border-color: #c4ecd5;
}

.lgj-typ--aus[b-fc88uic0ar] {
    background: #fde8e6;
    color: #b42318;
    border-color: #f5c2bd;
}

.lgj-typ--kor[b-fc88uic0ar] {
    background: #efeff1;
    color: #3c4148;
    border-color: #e4e4e7;
}

.lgj-typ--direkt[b-fc88uic0ar] {
    background: #e6f0fa;
    color: #145DA0;
    border-color: #c2d8ef;
}

.lgj-row--storno .lgj-typ[b-fc88uic0ar] {
    text-decoration: none;
    opacity: .55;
}

/* -- Storno-Button ------------------------------------------------------- */
.lgj-stornobtn[b-fc88uic0ar] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #80858d;
    cursor: pointer;
    transition: background .12s ease, color .12s ease, border-color .12s ease;
}

@media (hover: hover) {
    .lgj-stornobtn:hover[b-fc88uic0ar] {
        background: #fde8e6;
        border-color: #f5c2bd;
        color: #b42318;
    }
}

/* -- Leerzustand --------------------------------------------------------- */
.lgj-empty[b-fc88uic0ar] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .55rem;
    padding: 3rem 1rem;
    text-align: center;
    color: #80858d;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

.lgj-empty p[b-fc88uic0ar] {
    margin: 0;
    font-weight: 600;
    color: #3c4148;
}

.lgj-empty-sub[b-fc88uic0ar] {
    font-size: .85rem;
    color: #80858d;
}

/* -- Seitennummerierung (Pager) ------------------------------------------ */
.lgj-pager[b-fc88uic0ar] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: .3rem;
    padding-top: .15rem;
}

.lgj-pager-btn[b-fc88uic0ar] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.1rem;
    height: 2.1rem;
    padding: 0 .5rem;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #3c4148;
    font: inherit;
    font-size: .84rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    cursor: pointer;
    transition: background .12s ease, color .12s ease, border-color .12s ease;
}

@media (hover: hover) {
    .lgj-pager-btn:hover:not(:disabled):not(.is-active)[b-fc88uic0ar] {
        background: #f4f4f5;
        border-color: #d4d4d8;
        color: #16181c;
    }
}

.lgj-pager-btn.is-active[b-fc88uic0ar] {
    background: #16181c;
    border-color: #16181c;
    color: #fff;
    cursor: default;
}

.lgj-pager-btn:disabled[b-fc88uic0ar] {
    opacity: .4;
    cursor: not-allowed;
}

.lgj-pager-nav[b-fc88uic0ar] {
    color: #80858d;
}

.lgj-pager-gap[b-fc88uic0ar] {
    min-width: 1.4rem;
    text-align: center;
    color: #9aa0a8;
    font-weight: 700;
    user-select: none;
}

/* -- Storno-Bestätigungsdialog (AppModal-Slots) -------------------------- */
.lgj-dlg-head[b-fc88uic0ar] {
    display: flex;
    align-items: center;
    gap: .7rem;
}

.lgj-dlg-icon[b-fc88uic0ar] {
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 auto;
    border-radius: .75rem;
    background: #fde8e6;
    color: #b42318;
}

.lgj-dlg-title[b-fc88uic0ar] {
    font-weight: 700;
    font-size: 1.1rem;
    color: #16181c;
}

.lgj-dlg-text[b-fc88uic0ar] {
    margin: 0 0 .6rem;
    line-height: 1.5;
    color: #3c4148;
}

.lgj-dlg-hint[b-fc88uic0ar] {
    margin: 0;
    font-size: .82rem;
    color: #80858d;
}

/* Gefahr-Button (rot) — bare-Selektor, da Modal-Actions außerhalb von .lgj liegen */
.lgj-btn-danger[b-fc88uic0ar] {
    background: #d92d20;
    color: #fff;
    border-color: #d92d20;
}

@media (hover: hover) {
    .lgj-btn-danger:hover[b-fc88uic0ar] {
        background: #b42318;
        border-color: #b42318;
    }
}

/* -- Mobile: Tabelle als Karten ------------------------------------------ */
@media (max-width: 720px) {
    .lgj-table thead[b-fc88uic0ar] {
        display: none;
    }

    .lgj-table[b-fc88uic0ar],
    .lgj-table tbody[b-fc88uic0ar],
    .lgj-table tr[b-fc88uic0ar],
    .lgj-table td[b-fc88uic0ar] {
        display: block;
        width: 100%;
    }

    .lgj-row[b-fc88uic0ar] {
        padding: .5rem .2rem;
        border-bottom: 1px solid #efeff1;
    }

    .lgj-table tbody td[b-fc88uic0ar] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        padding: .3rem .85rem;
        border-bottom: 0;
        text-align: right;
    }

    .lgj-table tbody td[b-fc88uic0ar]::before {
        content: attr(data-label);
        font-size: .72rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .03em;
        color: #80858d;
        text-align: left;
        text-decoration: none;
    }

    /* Aktionsspalte ohne Label, rechtsbündig */
    .lgj-c-aktion[b-fc88uic0ar] {
        justify-content: flex-end;
        padding-top: .4rem;
    }

    .lgj-toolbar[b-fc88uic0ar] {
        align-items: stretch;
    }

    .lgj-filters[b-fc88uic0ar] {
        width: 100%;
    }

    /* Volle Breite je Filter, damit das Datepicker-Popover (280px) unter dem
       Feld bleibt statt aus dem Viewport zu ragen. */
    .lgj-filter[b-fc88uic0ar] {
        flex: 1 1 100%;
    }

    .lgj-input[b-fc88uic0ar] {
        min-width: 0;
        width: 100%;
    }
}
/* /Components/Pages/Lieferanten/LieferantDetail.razor.rz.scp.css */
/* Lieferanten-Detail — 1:1 an /lager Artikel-Detail angelehnt
   (Kopfleiste, Hero, Karten, Radien, Schatten). */

.lfd[b-0vvqpesgai] {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #16181c;
    padding-bottom: 26px;
}

/* -- Kopfleiste (wie lgd-bar) --------------------------------------------- */

.lfd-bar[b-0vvqpesgai] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.1rem;
}

.lfd-back[b-0vvqpesgai] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem .8rem .45rem .55rem;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    font: inherit;
    font-size: .86rem;
    font-weight: 600;
    color: #16181c;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease;
}

@media (hover: hover) {
    .lfd-back:hover[b-0vvqpesgai] {
        background: #efeff1;
    }
}

.lfd-bar-actions[b-0vvqpesgai] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.lfd-iconbtn[b-0vvqpesgai] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .75rem;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    font: inherit;
    font-size: .84rem;
    font-weight: 600;
    color: #3c4148;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease, color .12s ease;
}

@media (hover: hover) {
    .lfd-iconbtn:hover[b-0vvqpesgai] {
        background: #efeff1;
        color: #16181c;
    }

    .lfd-iconbtn--del:hover[b-0vvqpesgai] {
        color: #d92d20;
        border-color: #f3b0a8;
    }
}

/* -- Karten-Raster (wie lgd-grid) ----------------------------------------- */

.lfd-grid[b-0vvqpesgai] {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 1.1rem;
    align-items: start;
}

.lfd-col[b-0vvqpesgai] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}

/* -- Hero: Avatar + Name (wie lgd-hero) ----------------------------------- */

.lfd-hero[b-0vvqpesgai] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

.lfd-hero-avatar[b-0vvqpesgai] {
    flex: 0 0 auto;
    width: 92px;
    height: 92px;
    border-radius: 12px;
    overflow: hidden;
    background: linear-gradient(135deg, #f0f0f2, #e2e2e6);
    display: grid;
    place-items: center;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 2.4rem;
    color: #16181c;
}

.lfd-hero-avatar img[b-0vvqpesgai] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.lfd-hero-text[b-0vvqpesgai] {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    min-width: 0;
}

.lfd-kicker[b-0vvqpesgai] {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #80858d;
}

.lfd-name[b-0vvqpesgai] {
    margin: 0;
    font-size: 1.3rem;
    font-weight: 800;
    line-height: 1.15;
    color: #16181c;
    overflow-wrap: anywhere;
}

.lfd-artnr[b-0vvqpesgai] {
    font-size: .8rem;
    color: #80858d;
}

/* -- Karten (wie lgd-card) ------------------------------------------------- */

.lfd-card[b-0vvqpesgai] {
    background: #ffffff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 1rem 1.1rem 1.1rem;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

.lfd-card-title[b-0vvqpesgai] {
    margin: 0 0 .7rem;
    font-size: .95rem;
    font-weight: 700;
    color: #16181c;
}

.lfd-card-titlerow[b-0vvqpesgai] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .7rem;
}

.lfd-card-titlerow .lfd-card-title[b-0vvqpesgai] {
    margin: 0;
}

.lfd-count[b-0vvqpesgai] {
    display: inline-grid;
    place-items: center;
    min-width: 20px;
    height: 20px;
    margin-left: 4px;
    padding: 0 6px;
    border-radius: 999px;
    background: #efeff1;
    color: #16181c;
    font-size: 11px;
    font-weight: 700;
}

.lfd-cardempty[b-0vvqpesgai] {
    margin: 0;
    font-size: 13px;
    color: #80858d;
}

/* -- Definitionsliste (wie lgd-dl: dt links, dd fett rechtsbündig) --------- */

.lfd-dl[b-0vvqpesgai] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: .4rem .9rem;
    margin: 0;
}

.lfd-dl dt[b-0vvqpesgai] {
    font-size: .82rem;
    color: #80858d;
    white-space: nowrap;
}

.lfd-dl dd[b-0vvqpesgai] {
    margin: 0;
    font-size: .86rem;
    font-weight: 600;
    color: #16181c;
    text-align: right;
    overflow-wrap: anywhere;
}

.lfd-link[b-0vvqpesgai] {
    color: #16181c;
    text-decoration: underline;
    text-decoration-color: #e4e4e7;
    text-underline-offset: 2px;
}

@media (hover: hover) {
    .lfd-link:hover[b-0vvqpesgai] {
        text-decoration-color: #16181c;
    }
}

.lfd-notiz[b-0vvqpesgai] {
    margin: 0;
    font-size: .9rem;
    color: #16181c;
    white-space: pre-wrap;
}

/* -- Ansprechpartner ------------------------------------------------------- */

.lfd-partnerlist[b-0vvqpesgai] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.lfd-partner[b-0vvqpesgai] {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #e4e4e7;
    border-radius: 13px;
    padding: 8px 10px;
}

.lfd-partner-avatar[b-0vvqpesgai] {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    border-radius: 999px;
    background: #16181c;
    color: #ffffff;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 14px;
}

.lfd-partner-main[b-0vvqpesgai] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1 1 auto;
}

.lfd-partner-name[b-0vvqpesgai] {
    font-weight: 700;
    font-size: 13.5px;
    color: #16181c;
}

.lfd-partner-rolle[b-0vvqpesgai] {
    margin-left: 6px;
    font-weight: 600;
    font-size: 11.5px;
    color: #80858d;
}

.lfd-partner-meta[b-0vvqpesgai] {
    display: flex;
    gap: 10px;
    font-size: 12.5px;
    color: #3c4148;
    flex-wrap: wrap;
}

.lfd-partner-actions[b-0vvqpesgai] {
    display: flex;
    gap: 4px;
    flex: 0 0 auto;
}

/* Kleine runde Icon-Buttons NUR an den Ansprechpartner-Zeilen. */
.lfd-partner-btn[b-0vvqpesgai] {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: #80858d;
    cursor: pointer;
    transition: background .12s ease, color .12s ease;
}

@media (hover: hover) {
    .lfd-partner-btn:hover[b-0vvqpesgai] {
        background: #efeff1;
        color: #16181c;
    }

    .lfd-partner-btn--danger:hover[b-0vvqpesgai] {
        background: #fbeae8;
        color: #e2483b;
    }
}

.lfd-partnerform[b-0vvqpesgai] {
    border: 1px dashed #e4e4e7;
    border-radius: 13px;
    padding: 10px 12px;
}

.lfd-partnerform-actions[b-0vvqpesgai] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 10px;
}

/* -- Verknüpfungs-Listen --------------------------------------------------- */

.lfd-linklist[b-0vvqpesgai] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: 300px;
    overflow-y: auto;
}

.lfd-linkrow[b-0vvqpesgai] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 10px;
    text-decoration: none;
    color: #16181c;
}

@media (hover: hover) {
    .lfd-linkrow:hover[b-0vvqpesgai] {
        background: #efeff1;
    }
}

.lfd-linkrow-name[b-0vvqpesgai] {
    font-weight: 600;
    font-size: 13.5px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lfd-linkrow-meta[b-0vvqpesgai] {
    font-size: 12px;
    color: #80858d;
    flex: 0 0 auto;
}

/* -- Bearbeiten-Modal ------------------------------------------------------ */

.lfd-edit-head[b-0vvqpesgai] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.lfd-edit-head-icon[b-0vvqpesgai] {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: #efeff1;
    color: #16181c;
    flex: 0 0 auto;
}

.lfd-edit-head-text[b-0vvqpesgai] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.lfd-edit-head-title[b-0vvqpesgai] {
    font-weight: 800;
    font-size: 16px;
    color: #16181c;
}

.lfd-edit-head-sub[b-0vvqpesgai] {
    font-size: 12.5px;
    color: #80858d;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lfd-form[b-0vvqpesgai] {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.lfd-section[b-0vvqpesgai] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.lfd-section-title[b-0vvqpesgai] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #80858d;
}

.lfd-formgrid[b-0vvqpesgai] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 12px;
}

.lfd-field[b-0vvqpesgai] {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
}

.lfd-field--full[b-0vvqpesgai] {
    grid-column: 1 / -1;
}

.lfd-lbl[b-0vvqpesgai] {
    font-size: 12.5px;
    font-weight: 700;
    color: #3c4148;
}

.lfd-req[b-0vvqpesgai] {
    color: #e2483b;
}

.lfd-opt[b-0vvqpesgai] {
    font-weight: 600;
    font-size: 11px;
    color: #80858d;
}

.lfd-textarea[b-0vvqpesgai] {
    resize: none;
    min-height: 70px;
}

.lfd-fehler[b-0vvqpesgai] {
    margin: 0;
    color: #e2483b;
    font-size: 13px;
}

.lfd-delete-text[b-0vvqpesgai] {
    margin: 0;
    font-size: 13.5px;
    color: #16181c;
    line-height: 1.5;
}

/* Verknüpfungs-Warnung im Lösch-Countdown (gelb, wie der Artikel-Löschdialog). */
.lfd-delete-warn[b-0vvqpesgai] {
    margin: .3rem 0 .6rem;
    padding: .55rem .7rem;
    border-radius: 10px;
    background: #fef3da;
    border: 1px solid #f6dca0;
    color: #b45309;
    font-size: .82rem;
    line-height: 1.4;
}

/* -- Foto-Upload im Bearbeiten-Modal (1:1 aus Fleet/Lager übernommen) ------ */

.flt-photo-field[b-0vvqpesgai] {
    position: relative;
    flex: 0 0 auto;
    width: 240px;
    margin-left: auto;
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.flt-file-input-wrap[b-0vvqpesgai] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    margin: -1px;
    padding: 0;
    border: 0;
    white-space: nowrap;
    pointer-events: none;
}

.flt-file-input-wrap > *[b-0vvqpesgai] {
    width: 1px;
    height: 1px;
}

.flt-photo-drop[b-0vvqpesgai] {
    display: flex;
    align-items: center;
    gap: .65rem;
    height: 72px;
    padding: 0 .8rem;
    border: 2px dashed #d4d4d8;
    border-radius: 12px;
    background: #f7f7f8;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}

@media (hover: hover) {
    .flt-photo-drop:hover[b-0vvqpesgai] {
        border-color: #16181c;
        background: #efeff1;
    }
}

.flt-photo-drop-ico[b-0vvqpesgai] {
    display: grid;
    place-items: center;
    width: 2.3rem;
    height: 2.3rem;
    flex: 0 0 auto;
    border-radius: 9px;
    background: #efeff1;
    color: #16181c;
}

.flt-photo-drop-txt[b-0vvqpesgai] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.flt-photo-drop-main[b-0vvqpesgai] {
    font-weight: 600;
    color: #3c4148;
    font-size: .85rem;
}

.flt-photo-drop-hint[b-0vvqpesgai] {
    font-size: .74rem;
    color: #80858d;
}

.flt-photo-card[b-0vvqpesgai] {
    position: relative;
    display: flex;
    align-items: center;
    gap: .65rem;
    height: 72px;
}

.flt-photo-view[b-0vvqpesgai] {
    position: relative;
    flex: 0 0 auto;
    width: 104px;
    height: 72px;
    padding: 0;
    border: 0;
    border-radius: 10px;
    overflow: hidden;
    background: #efeff1;
    cursor: default;
}

.flt-photo-view img[b-0vvqpesgai] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.flt-photo-side[b-0vvqpesgai] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .4rem;
    min-width: 0;
}

.flt-photo-btn[b-0vvqpesgai] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .6rem;
    background: #fff;
    border: 1.5px solid #e4e4e7;
    border-radius: 8px;
    font: inherit;
    font-size: .8rem;
    font-weight: 600;
    color: #16181c;
    cursor: pointer;
}

@media (hover: hover) {
    .flt-photo-btn:hover[b-0vvqpesgai] {
        background: #efeff1;
        border-color: #e4e4e7;
    }
}

.flt-photo-link[b-0vvqpesgai] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    font-size: .78rem;
    color: #b42318;
    cursor: pointer;
}

@media (hover: hover) {
    .flt-photo-link:hover[b-0vvqpesgai] {
        text-decoration: underline;
    }
}

.flt-photo-droptip[b-0vvqpesgai] {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: rgba(22, 24, 28, .12);
    border: 2px dashed #16181c;
    pointer-events: none;
}

.flt-photo-droptip span[b-0vvqpesgai] {
    padding: .25rem .65rem;
    background: #16181c;
    color: #fff;
    border-radius: 999px;
    font-size: .76rem;
    font-weight: 600;
}

.flt-photo-field.flt-drag .flt-photo-drop[b-0vvqpesgai] {
    border-color: #16181c;
    background: #efeff1;
}

.flt-photo-field.flt-drag .flt-photo-droptip[b-0vvqpesgai] {
    display: flex;
}

.flt-photo-busy[b-0vvqpesgai] {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .74rem;
    color: #80858d;
}

.flt-spinner[b-0vvqpesgai] {
    width: .85rem;
    height: .85rem;
    border: 2px solid #e4e4e7;
    border-top-color: #16181c;
    border-radius: 50%;
    animation: lfd-spin-b-0vvqpesgai .7s linear infinite;
}

@keyframes lfd-spin-b-0vvqpesgai {
    to { transform: rotate(360deg); }
}

.flt-photo-err[b-0vvqpesgai] {
    font-size: .74rem;
    color: #b42318;
}

/* Foto-Feld unter dem Titel, wenn der Modal-Kopf schmal wird. */
@media (max-width: 560px) {
    .flt-photo-field[b-0vvqpesgai] {
        width: 100%;
        margin-left: 0;
    }
}

/* -- Responsiv ------------------------------------------------------------- */

@media (max-width: 860px) {
    .lfd-grid[b-0vvqpesgai] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .lfd-formgrid[b-0vvqpesgai] {
        grid-template-columns: 1fr;
    }

    .lfd-hero-avatar[b-0vvqpesgai] {
        width: 68px;
        height: 68px;
        font-size: 1.8rem;
    }

    .lfd-iconbtn span[b-0vvqpesgai] {
        display: none;
    }
}
/* /Components/Pages/Lieferanten/Lieferanten.razor.rz.scp.css */
/* /lieferanten — Liste im monochromen Design, 1:1 an /lager angelehnt
   (gleiche Suche, Zeilen, Radien, Schatten, Hover). */

.lf-page[b-xdjhb3haks] {
    background: #f5f5f7;
}

/* Inhaltsbreite an die übrigen Ressourcen-Seiten (Lager/Werkzeug/Fuhrpark): 1280px. */
.lf-header[b-xdjhb3haks],
.lf-toolbar[b-xdjhb3haks],
.lf-list[b-xdjhb3haks],
.lf-empty[b-xdjhb3haks],
.lf-noresult[b-xdjhb3haks],
.lf-detailwrap[b-xdjhb3haks] {
    width: 100%;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
}

.lf-header[b-xdjhb3haks] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}

/* -- Werkzeugleiste (Suche wie lg-search) --------------------------------- */

.lf-toolbar[b-xdjhb3haks] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
    margin-bottom: 12px;
}

.lf-search[b-xdjhb3haks] {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 240px;
    min-width: 200px;
    max-width: 420px;
    height: 40px;
    padding: 0 10px 0 36px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    transition: border-color 0.15s, box-shadow 0.15s;
}

.lf-search:focus-within[b-xdjhb3haks] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.lf-search > svg[b-xdjhb3haks] {
    position: absolute;
    left: 11px;
    color: #80858d;
    pointer-events: none;
}

.lf-search-input[b-xdjhb3haks] {
    flex: 1 1 auto;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    font: inherit;
    font-size: 0.92rem;
    color: #16181c;
}

.lf-search-input[b-xdjhb3haks]::placeholder {
    color: #9aa0a8;
}

.lf-search-input[b-xdjhb3haks]::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
    display: none;
}

.lf-search-clear[b-xdjhb3haks] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 7px;
    background: transparent;
    color: #80858d;
    cursor: pointer;
    transition: background .12s ease, color .12s ease;
}

@media (hover: hover) {
    .lf-search-clear:hover[b-xdjhb3haks] {
        background: #efeff1;
        color: #16181c;
    }
}

/* -- Liste (wie lg-list / lg-row) ----------------------------------------- */

.lf-list[b-xdjhb3haks] {
    list-style: none;
    /* nur die vertikale <ul>-Default-Margin killen — margin-left/right: auto aus der
       Breiten-Gruppe MUSS erhalten bleiben, sonst rutscht die Liste linksbündig raus. */
    margin-block: 0;
    padding: 4px 2px 26px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.lf-row[b-xdjhb3haks] {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto 18px;
    align-items: center;
    gap: 14px;
    padding: 11px 14px;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 6px 18px -14px rgba(0, 0, 0, .22);
    cursor: pointer;
    color: #16181c;
    font: inherit;
    text-align: left;
    transition: border-color 0.15s, transform 0.12s, box-shadow 0.15s;
}

.lf-row:focus-visible[b-xdjhb3haks] {
    border-color: #16181c;
    transform: translateY(-1px);
    box-shadow: 0 10px 22px -16px rgba(0, 0, 0, .3);
    outline: none;
}

@media (hover: hover) {
    .lf-row:hover[b-xdjhb3haks] {
        border-color: #16181c;
        transform: translateY(-1px);
        box-shadow: 0 10px 22px -16px rgba(0, 0, 0, .3);
    }
}

.lf-row-thumb[b-xdjhb3haks] {
    width: 52px;
    height: 52px;
    border-radius: 11px;
    overflow: hidden;
    background: #efeff1;
    border: 1px solid #e4e4e7;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 1.25rem;
    color: #16181c;
}

.lf-row-thumb img[b-xdjhb3haks] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.lf-row-main[b-xdjhb3haks] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.lf-row-name[b-xdjhb3haks] {
    font-size: 0.98rem;
    font-weight: 800;
    color: #16181c;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lf-row-meta[b-xdjhb3haks] {
    font-size: 0.8rem;
    color: #80858d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lf-row-links[b-xdjhb3haks] {
    display: flex;
    gap: 6px;
    flex: 0 0 auto;
}

.lf-chip[b-xdjhb3haks] {
    background: #efeff1;
    color: #16181c;
    border-radius: 999px;
    padding: 3px 10px;
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
}

.lf-row-chev[b-xdjhb3haks] {
    color: #b4b9c0;
    display: flex;
    align-items: center;
    justify-content: center;
}

@media (hover: hover) {
    .lf-row:hover .lf-row-chev[b-xdjhb3haks] {
        color: #16181c;
    }
}

/* -- Leerzustand (wie lg-empty) ------------------------------------------- */

.lf-empty[b-xdjhb3haks] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    background: #ffffff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 42px 20px;
    margin-top: 18px;
    margin-bottom: 0;
    text-align: center;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

.lf-empty-ico[b-xdjhb3haks] {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 999px;
    background: #efeff1;
    color: #3c4148;
}

.lf-empty-title[b-xdjhb3haks] {
    margin: 6px 0 0;
    font-weight: 800;
    font-size: 16px;
    color: #16181c;
}

.lf-empty-text[b-xdjhb3haks] {
    margin: 0 0 10px;
    font-size: 13.5px;
    color: #80858d;
    max-width: 420px;
}

.lf-noresult[b-xdjhb3haks] {
    color: #80858d;
    font-size: 13.5px;
    margin-top: 18px;
    margin-bottom: 18px;
}

.lf-detailwrap[b-xdjhb3haks] {
    margin-top: 8px;
}

/* Mobil: Kopf wie auf /lager linksbündig stapeln. Die Basis-.settings-header wird ab 720px
   zur Spalte; die eigene Zeilen-Zentrierung (align-items: center) von oben darf dann nicht
   mehr greifen, sonst rutschen Titel + Button in die Mitte. */
@media (max-width: 720px) {
    .lf-header[b-xdjhb3haks] {
        align-items: stretch;
    }
}

@media (max-width: 640px) {
    .lf-row-links[b-xdjhb3haks] {
        display: none;
    }

    .lf-row[b-xdjhb3haks] {
        grid-template-columns: 46px minmax(0, 1fr) 18px;
        gap: 11px;
    }
}
/* /Components/Pages/Login.razor.rz.scp.css */
/* Login – Markenpanel (warmer Parkett-Verlauf) + Formular ------------------ */

@property --login-bd {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}

@keyframes loginSpinBd-b-qlhcovlzg3 {
    to { --login-bd: 360deg; }
}

@keyframes loginBlob1-b-qlhcovlzg3 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(6%, -5%) scale(1.14); }
}

@keyframes loginBlob2-b-qlhcovlzg3 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(-5%, 6%) scale(1.1); }
}

@keyframes loginBlob3-b-qlhcovlzg3 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(5%, 7%) scale(1.12); }
}

@keyframes loginSweep-b-qlhcovlzg3 {
    0% { transform: translateX(-70%) rotate(20deg); }
    100% { transform: translateX(260%) rotate(20deg); }
}

@keyframes loginEnter-b-qlhcovlzg3 {
    from { opacity: 0; transform: translateY(13px); }
    to { opacity: 1; transform: none; }
}

@keyframes loginSpin-b-qlhcovlzg3 {
    to { transform: rotate(360deg); }
}

@keyframes loginCbPop-b-qlhcovlzg3 {
    0% { transform: scale(1); }
    45% { transform: scale(1.22); }
    100% { transform: scale(1); }
}

@keyframes loginCbRing-b-qlhcovlzg3 {
    0% { opacity: 0.55; transform: scale(0.7); }
    100% { opacity: 0; transform: scale(1.7); }
}

@keyframes loginShake-b-qlhcovlzg3 {
    10%, 90% { transform: translateX(-2px); }
    20%, 80% { transform: translateX(3px); }
    30%, 50%, 70% { transform: translateX(-6px); }
    40%, 60% { transform: translateX(6px); }
}

.login-root[b-qlhcovlzg3] {
    --login-accent: #b07d4e;
    --login-accent-light: #c9a787;

    display: grid;
    grid-template-columns: 1.04fr 1fr;
    min-height: 100vh;
    min-height: 100dvh;
    width: 100%;
    background: #fffdfb;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* -- Markenpanel --------------------------------------------------------- */
.login-brand[b-qlhcovlzg3] {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    padding: clamp(38px, 4vw, 58px);
    min-height: 100dvh;
    background-image:
        radial-gradient(130% 120% at 18% 12%, rgb(203, 169, 138), transparent 52%),
        radial-gradient(120% 130% at 88% 90%, rgb(134, 93, 56), transparent 58%),
        linear-gradient(145deg, #b07d4e, rgb(157, 111, 68));
}

.login-orb[b-qlhcovlzg3] {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.login-orb--1[b-qlhcovlzg3] {
    top: -12%;
    left: -10%;
    width: 60%;
    height: 60%;
    background: radial-gradient(circle, rgba(216, 190, 167, 0.85), transparent 66%);
    filter: blur(30px);
    mix-blend-mode: screen;
    animation: loginBlob1-b-qlhcovlzg3 15s ease-in-out infinite;
}

.login-orb--2[b-qlhcovlzg3] {
    right: -12%;
    bottom: -18%;
    width: 62%;
    height: 62%;
    background: radial-gradient(circle, rgba(180, 94, 58, 0.7), transparent 66%);
    filter: blur(34px);
    animation: loginBlob2-b-qlhcovlzg3 18s ease-in-out infinite;
}

.login-orb--3[b-qlhcovlzg3] {
    top: 38%;
    left: 46%;
    width: 46%;
    height: 46%;
    background: radial-gradient(circle, rgba(193, 154, 117, 0.6), transparent 68%);
    filter: blur(40px);
    mix-blend-mode: soft-light;
    animation: loginBlob3-b-qlhcovlzg3 21s ease-in-out infinite;
}

.login-sweep[b-qlhcovlzg3] {
    position: absolute;
    top: -40%;
    left: 0;
    width: 40%;
    height: 180%;
    background: linear-gradient(90deg, transparent, rgba(255, 245, 232, 0.34), transparent);
    filter: blur(26px);
    mix-blend-mode: screen;
    pointer-events: none;
    transform: translateX(-70%) rotate(20deg);
    animation: loginSweep-b-qlhcovlzg3 13s ease-in-out infinite;
}

.login-brand-logo[b-qlhcovlzg3] {
    position: relative;
    z-index: 1;
    width: clamp(118px, 15vw, 150px);
    height: auto;
    display: block;
    filter: drop-shadow(0 6px 20px rgba(60, 30, 8, 0.3));
    animation: loginEnter-b-qlhcovlzg3 0.7s cubic-bezier(0.2, 0.9, 0.25, 1) 0.1s both;
}

.login-brand-tagline[b-qlhcovlzg3] {
    position: relative;
    z-index: 1;
    margin: 0;
    font-weight: 800;
    font-size: clamp(30px, 3.1vw, 46px);
    line-height: 1.06;
    letter-spacing: -0.025em;
    color: #ffffff;
    animation: loginEnter-b-qlhcovlzg3 0.8s cubic-bezier(0.2, 0.9, 0.25, 1) 0.24s both;
}

/* -- Formularspalte ------------------------------------------------------ */
.login-form-outer[b-qlhcovlzg3] {
    display: grid;
    place-items: center;
    min-height: 100dvh;
    padding: clamp(24px, 3vw, 44px);
    background: #fffdfb;
}

.login-form-inner[b-qlhcovlzg3] {
    width: 100%;
    max-width: 392px;
}

.login-title[b-qlhcovlzg3] {
    margin: 0 0 clamp(26px, 5vw, 38px);
    font-weight: 800;
    font-size: clamp(27px, 3.1vw, 34px);
    line-height: 1.08;
    letter-spacing: -0.025em;
    color: #16181c;
    animation: loginEnter-b-qlhcovlzg3 0.6s cubic-bezier(0.2, 0.9, 0.25, 1) 0.06s both;
}

/* Nur für Sperre und Rate-Limit – die tragen eine Uhrzeit, die eine Animation nicht zeigen kann. */
.login-error[b-qlhcovlzg3] {
    margin: -18px 0 24px;
    color: #8f2c1c;
    background: #fbeae5;
    border: 1px solid #f0c9bd;
    border-radius: 12px;
    padding: 12px 14px;
    font-size: 0.9rem;
    font-weight: 600;
    animation: loginShake-b-qlhcovlzg3 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97);
}

/* Nur für Screenreader – optisch meldet die Schüttel-Animation den Fehlversuch. */
.login-visually-hidden[b-qlhcovlzg3] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.login-form[b-qlhcovlzg3] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* -- Felder -------------------------------------------------------------- */
.login-field:nth-of-type(1)[b-qlhcovlzg3] {
    animation: loginEnter-b-qlhcovlzg3 0.6s cubic-bezier(0.2, 0.9, 0.25, 1) 0.18s both;
}

.login-field:nth-of-type(2)[b-qlhcovlzg3] {
    animation: loginEnter-b-qlhcovlzg3 0.6s cubic-bezier(0.2, 0.9, 0.25, 1) 0.26s both;
}

/* Fehlgeschlagene Anmeldung: beide Felder schütteln. Welches der beiden falsch war,
   verrät der Server bewusst nicht (sonst ließen sich Benutzernamen abzählen). */
.login-form--error .login-field:nth-of-type(1)[b-qlhcovlzg3],
.login-form--error .login-field:nth-of-type(2)[b-qlhcovlzg3] {
    animation: loginShake-b-qlhcovlzg3 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97) 0.25s both;
}

.login-form--error .login-input-shell:not(:focus-within)[b-qlhcovlzg3] {
    background-color: rgba(196, 74, 52, 0.6);
    box-shadow: 0 6px 20px -12px rgba(196, 74, 52, 0.7);
}

.login-form--error .login-input-shell:not(:focus-within) .login-input-icon[b-qlhcovlzg3] {
    color: #b4402c;
}

.login-field label[b-qlhcovlzg3] {
    display: block;
    margin-bottom: 8px;
    color: #3c4148;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.login-input-shell[b-qlhcovlzg3] {
    padding: 1.7px;
    border-radius: 14px;
    background-color: #e4e4e7;
    background-image: none;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.25s ease, transform 0.28s cubic-bezier(0.2, 0.9, 0.25, 1), background-color 0.25s ease;
}

/* ausgefüllt (aber ohne Fokus) */
.login-input-shell:has(input:not(:placeholder-shown))[b-qlhcovlzg3] {
    background-color: rgba(176, 125, 78, 0.5);
}

/* Fokus: rotierender Verlaufsrahmen */
.login-input-shell:focus-within[b-qlhcovlzg3] {
    background-color: #e4e4e7;
    background-image: conic-gradient(from var(--login-bd), #e4e4e7 0deg, var(--login-accent) 46deg, var(--login-accent-light) 92deg, #e4e4e7 150deg, #e4e4e7 360deg);
    animation: loginSpinBd-b-qlhcovlzg3 2.4s linear infinite;
    box-shadow: 0 14px 32px -14px rgba(176, 125, 78, 0.34), 0 0 0 4px rgba(176, 125, 78, 0.13);
    transform: translateY(-2px);
}

.login-input-inner[b-qlhcovlzg3] {
    display: flex;
    align-items: center;
    gap: 6px;
    height: 52px;
    padding: 0 10px 0 13px;
    border-radius: 12.3px;
    background: #ffffff;
}

.login-input-inner--password[b-qlhcovlzg3] {
    padding: 0 6px 0 13px;
}

.login-input-icon[b-qlhcovlzg3] {
    flex-shrink: 0;
    color: #9a9ea6;
    transition: color 0.2s ease;
}

.login-input-inner:has(input:not(:placeholder-shown)) .login-input-icon[b-qlhcovlzg3] {
    color: #16181c;
}

.login-input-shell:focus-within .login-input-icon[b-qlhcovlzg3] {
    color: var(--login-accent);
}

.login-field input[b-qlhcovlzg3] {
    flex: 1;
    min-width: 0;
    height: 100%;
    border: none;
    outline: none;
    background: transparent;
    padding: 0 4px;
    font: inherit;
    font-size: 16px;
    color: #16181c;
}

/* Chrome/Edge färben automatisch ausgefüllte Felder blau. Der Hintergrund lässt sich
   nicht direkt überschreiben – der Inset-Schatten übermalt ihn, die lange Transition
   verhindert das kurze Aufblitzen beim Fokussieren. */
.login-field input:-webkit-autofill[b-qlhcovlzg3],
.login-field input:-webkit-autofill:focus[b-qlhcovlzg3],
.login-field input:-webkit-autofill:active[b-qlhcovlzg3] {
    -webkit-text-fill-color: #16181c;
    -webkit-box-shadow: 0 0 0 1000px #ffffff inset;
    box-shadow: 0 0 0 1000px #ffffff inset;
    caret-color: #16181c;
    transition: background-color 100000s ease-in-out 0s;
}
@media (hover: hover) {
    .login-field input:-webkit-autofill:hover[b-qlhcovlzg3] {
        -webkit-text-fill-color: #16181c;
        -webkit-box-shadow: 0 0 0 1000px #ffffff inset;
        box-shadow: 0 0 0 1000px #ffffff inset;
        caret-color: #16181c;
        transition: background-color 100000s ease-in-out 0s;
    }
}

/* Häkchen, sobald der Benutzername ausgefüllt ist */
.login-input-check[b-qlhcovlzg3] {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--login-accent);
    color: #ffffff;
    opacity: 0;
    transform: scale(0.3);
    transition: opacity 0.2s ease, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.login-input-inner:has(input:not(:placeholder-shown)) .login-input-check[b-qlhcovlzg3] {
    opacity: 1;
    transform: scale(1);
}

/* -- Passwort ein-/ausblenden -------------------------------------------- */
.password-toggle[b-qlhcovlzg3] {
    position: relative;
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 10px;
    color: #80858d;
    background: transparent;
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease;
}

@media (hover: hover) {
    .password-toggle:hover[b-qlhcovlzg3] {
        color: #16181c;
        background: #f3f0ec;
    }
}

.password-toggle:focus-visible[b-qlhcovlzg3] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(176, 125, 78, 0.3);
}

.password-toggle svg[b-qlhcovlzg3] {
    position: absolute;
    top: 50%;
    left: 50%;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.password-toggle .password-toggle-show[b-qlhcovlzg3] {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(0deg) scale(1);
}

.password-toggle .password-toggle-hide[b-qlhcovlzg3] {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(90deg) scale(0.6);
}

.password-toggle[aria-pressed="true"] .password-toggle-show[b-qlhcovlzg3] {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(-90deg) scale(0.6);
}

.password-toggle[aria-pressed="true"] .password-toggle-hide[b-qlhcovlzg3] {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(0deg) scale(1);
}

/* -- Angemeldet bleiben --------------------------------------------------- */
.login-remember[b-qlhcovlzg3] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-height: 44px;
    width: fit-content;
    margin-top: -2px;
    cursor: pointer;
    user-select: none;
    font-size: 14.5px;
    font-weight: 600;
    color: #3c4148;
    animation: loginEnter-b-qlhcovlzg3 0.6s cubic-bezier(0.2, 0.9, 0.25, 1) 0.32s both;
}

.login-remember input[b-qlhcovlzg3] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    opacity: 0;
}

.login-remember-box[b-qlhcovlzg3] {
    position: relative;
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 2px solid #cfd0d3;
    border-radius: 8px;
    background: #ffffff;
    transition: border-color 0.2s ease;
}

.login-remember-fill[b-qlhcovlzg3] {
    position: absolute;
    inset: 1px;
    border-radius: 6px;
    background: var(--login-accent);
    transform: scale(0);
    transition: transform 0.32s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.login-remember-ring[b-qlhcovlzg3] {
    position: absolute;
    inset: -4px;
    border-radius: 11px;
    border: 2px solid var(--login-accent);
    opacity: 0;
    pointer-events: none;
}

.login-remember-box svg[b-qlhcovlzg3] {
    position: relative;
    z-index: 2;
    color: #ffffff;
    stroke-dasharray: 26;
    stroke-dashoffset: 26;
    transition: stroke-dashoffset 0.3s ease 0.08s;
}

.login-remember:has(input:checked) .login-remember-box[b-qlhcovlzg3] {
    border-color: var(--login-accent);
    animation: loginCbPop-b-qlhcovlzg3 0.42s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.login-remember:has(input:checked) .login-remember-fill[b-qlhcovlzg3] {
    transform: scale(1);
}

.login-remember:has(input:checked) .login-remember-ring[b-qlhcovlzg3] {
    animation: loginCbRing-b-qlhcovlzg3 0.55s ease-out;
}

.login-remember:has(input:checked) .login-remember-box svg[b-qlhcovlzg3] {
    stroke-dashoffset: 0;
}

.login-remember:has(input:focus-visible) .login-remember-box[b-qlhcovlzg3] {
    box-shadow: 0 0 0 3px rgba(176, 125, 78, 0.24);
}

/* -- Anmelden ------------------------------------------------------------ */
.login-submit[b-qlhcovlzg3] {
    position: relative;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    min-height: 56px;
    margin-top: 8px;
    border: none;
    border-radius: 15px;
    padding: 0 20px;
    color: #ffffff;
    background: #16181c;
    box-shadow: 0 12px 26px -14px rgba(22, 24, 28, 0.55);
    font: inherit;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: width 0.5s cubic-bezier(0.65, 0, 0.2, 1), border-radius 0.5s cubic-bezier(0.65, 0, 0.2, 1), background 0.25s ease, box-shadow 0.2s ease;
    animation: loginEnter-b-qlhcovlzg3 0.6s cubic-bezier(0.2, 0.9, 0.25, 1) 0.38s both;
}

@media (hover: hover) {
    .login-submit:hover[b-qlhcovlzg3] {
        background: #26282e;
        box-shadow: 0 18px 34px -16px rgba(22, 24, 28, 0.6);
    }
}

.login-submit:active[b-qlhcovlzg3] {
    filter: brightness(0.96);
}

.login-submit:focus-visible[b-qlhcovlzg3] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.24);
}

.login-submit-label[b-qlhcovlzg3] {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    white-space: nowrap;
}

.login-submit-spinner[b-qlhcovlzg3] {
    display: none;
    width: 21px;
    height: 21px;
    border: 2.5px solid rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: loginSpin-b-qlhcovlzg3 0.7s linear infinite;
}

/* Zustand während des Absendens – rein kosmetisch, das Formular wird nativ gepostet */
.login-submit[data-busy][b-qlhcovlzg3] {
    align-self: center;
    width: 56px;
    min-width: 56px;
    padding: 0;
    border-radius: 28px;
    pointer-events: none;
}

.login-submit[data-busy] .login-submit-label[b-qlhcovlzg3] {
    display: none;
}

.login-submit[data-busy] .login-submit-spinner[b-qlhcovlzg3] {
    display: inline-block;
}

/* -- Handy: Markenpanel oben, Formular darunter -------------------------- */
@media (max-width: 880px) {
    .login-root[b-qlhcovlzg3] {
        display: flex;
        flex-direction: column;
    }

    .login-brand[b-qlhcovlzg3] {
        justify-content: center;
        align-items: center;
        min-height: clamp(190px, 27vh, 252px);
        padding: calc(30px + env(safe-area-inset-top, 0px)) 30px 30px;
    }

    .login-brand-tagline[b-qlhcovlzg3] {
        display: none;
    }

    .login-form-outer[b-qlhcovlzg3] {
        flex: 1;
        display: flex;
        flex-direction: column;
        overflow-y: auto;
        min-height: 0;
        padding: 0;
    }

    .login-form-inner[b-qlhcovlzg3] {
        max-width: 440px;
        margin: auto;
        padding: clamp(26px, 6vw, 38px) clamp(24px, 6vw, 34px) calc(clamp(26px, 6vw, 38px) + env(safe-area-inset-bottom, 0px));
    }
}
/* /Components/Pages/Settings/Changelog.razor.rz.scp.css */
.chlog[b-zm7f15gqbo] {
    box-sizing: border-box;
    height: calc(100dvh - var(--app-header-h));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #f5f5f7;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #16181c;
}
.chlog *[b-zm7f15gqbo], .chlog *[b-zm7f15gqbo]::before, .chlog *[b-zm7f15gqbo]::after { box-sizing: border-box; }

.chlog-scroll[b-zm7f15gqbo] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 26px clamp(14px, 4vw, 40px) 40px;
}
.chlog-inner[b-zm7f15gqbo] { max-width: 720px; margin: 0 auto; }

.chlog-hero[b-zm7f15gqbo] { margin-bottom: 24px; }
.chlog-kicker[b-zm7f15gqbo] {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #80858d;
    margin-bottom: 7px;
}
.chlog-hero h1[b-zm7f15gqbo] {
    margin: 0 0 4px;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 30px;
    font-weight: 700;
    letter-spacing: -.02em;
}
.chlog-hero p[b-zm7f15gqbo] { margin: 0; color: #80858d; font-size: 14px; }

.chlog-empty[b-zm7f15gqbo] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 40px 20px;
    text-align: center;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
}
.chlog-empty strong[b-zm7f15gqbo] { font-size: 15px; }
.chlog-empty span[b-zm7f15gqbo] { color: #80858d; font-size: 13px; }

.chlog-list[b-zm7f15gqbo] {
    list-style: none;
    margin: 0;
    padding: 0;
}
.chlog-item[b-zm7f15gqbo] {
    display: grid;
    grid-template-columns: 24px 1fr;
    gap: 14px;
}
.chlog-item-marker[b-zm7f15gqbo] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 20px;
}
.chlog-item-marker span[b-zm7f15gqbo] {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #16181c;
    box-shadow: 0 0 0 4px #fff, 0 0 0 5px #e4e4e7;
    flex: none;
}
.chlog-item:not(:last-child) .chlog-item-marker[b-zm7f15gqbo]::after {
    content: "";
    flex: 1 1 auto;
    width: 2px;
    background: #e4e4e7;
    margin: 6px 0;
}
.chlog-item-card[b-zm7f15gqbo] {
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -14px rgba(0, 0, 0, .2);
    padding: 16px 18px;
    margin-bottom: 16px;
}
.chlog-item-head[b-zm7f15gqbo] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}
.chlog-item-head h2[b-zm7f15gqbo] {
    margin: 0;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -.01em;
}
.chlog-item-head time[b-zm7f15gqbo] {
    flex: none;
    font-size: 12px;
    font-weight: 600;
    color: #80858d;
}
.chlog-item-body[b-zm7f15gqbo] { color: #3c4148; font-size: 14px; line-height: 1.6; }

@media (max-width: 520px) {
    .chlog-item-head[b-zm7f15gqbo] { flex-direction: column; gap: 2px; }
}
/* /Components/Pages/Settings/FirmendatenSettings.razor.rz.scp.css */
/* Formular-Raster der Firmendaten: zweispaltig, Firmenname über die volle Breite.
   Feld/Label-Optik kommt aus der globalen .settings-field-label; die settings-card bringt
   kein eigenes Innen-Padding mit (Kinder tragen ihres selbst, Toolbar-Rhythmus 18px) —
   daher sitzt das Padding hier am Raster. */
.fds-grid[b-jp2f2s6rhw] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 16px;
    max-width: 720px;
    padding: 18px 18px 22px;
}

.fds-field--full[b-jp2f2s6rhw] {
    grid-column: 1 / -1;
}

@media (max-width: 560px) {
    .fds-grid[b-jp2f2s6rhw] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Settings/InfoSettings.razor.rz.scp.css */
/* Info-Seite: nach Feature gruppierte Hinweise (aktuell: Kalender-Tastaturkürzel).
   Schale (.settings-page/.settings-card/...) kommt aus der globalen settings.css; hier nur die
   Feature-Abschnitte + die Tasten-„Keycaps". Monochrom, Hex hartkodiert (scoped CSS). */

.info-feature-head[b-k65np6c099] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid #e4e4e7;
    background: #fafafa;
}

.info-feature-icon[b-k65np6c099] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    color: #16181c;
    background: #efeff1;
    border: 1px solid #e4e4e7;
}

.info-feature-text h2[b-k65np6c099] {
    margin: 0;
    color: #16181c;
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.2;
}

.info-feature-text p[b-k65np6c099] {
    margin: 2px 0 0;
    color: #80858d;
    font-size: 0.8rem;
    font-weight: 600;
}

.info-hotkeys[b-k65np6c099] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.info-hotkey[b-k65np6c099] {
    display: grid;
    grid-template-columns: 240px 1fr;
    align-items: center;
    gap: 18px;
    padding: 13px 18px;
}

.info-hotkey + .info-hotkey[b-k65np6c099] {
    border-top: 1px solid #ededf0;
}

.info-keys[b-k65np6c099] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

/* Taste wie eine Tastatur-Keycap: heller Tastenkopf, dickere untere Kante = 3D, leichter Schatten. */
.info-key[b-k65np6c099] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    height: 30px;
    padding: 0 8px;
    border-radius: 7px;
    color: #16181c;
    background: #ffffff;
    border: 1px solid #d6d7db;
    border-bottom: 3px solid #c3c4c9;
    box-shadow: 0 1px 2px rgba(22, 24, 28, 0.12);
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1;
}

.info-key--wide[b-k65np6c099] {
    min-width: 0;
    padding: 0 10px;
    font-size: 0.72rem;
    letter-spacing: 0.02em;
}

.info-key svg[b-k65np6c099] {
    width: 17px;
    height: 17px;
}

/* „+" zwischen zwei Tasten (z. B. Strg + Klick) */
.info-plus[b-k65np6c099] {
    color: #80858d;
    font-size: 0.8rem;
    font-weight: 700;
}

.info-hotkey-text[b-k65np6c099] {
    color: #3c4148;
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.3;
}

@media (max-width: 560px) {
    .info-hotkey[b-k65np6c099] {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}
/* /Components/Pages/Settings/OrdnerVorlagenSettings.razor.rz.scp.css */
.ovl-row[b-gj1qvfjuys] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    transition: background 0.14s;
}

.ovl-row--editing[b-gj1qvfjuys],
.ovl-row--adding[b-gj1qvfjuys] {
    background: #f6f6f8;
}

/* Beim Bearbeiten/Anlegen passt Name + Farbwähler + Presets nicht immer in eine Zeile → umbrechen. */
.ovl-row--editing[b-gj1qvfjuys],
.ovl-row--adding[b-gj1qvfjuys] {
    flex-wrap: wrap;
}

.ovl-indent[b-gj1qvfjuys] {
    flex-shrink: 0;
    width: 0;
}

.ovl-folder-icon[b-gj1qvfjuys] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    /* Gefüllter, farbiger Ordner (Farbe via inline color) – kein grauer Chip mehr. */
    color: #f0c04d;
}

.ovl-add-main[b-gj1qvfjuys] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 140px;
}

.ovl-add-hint[b-gj1qvfjuys] {
    font-size: 11px;
    font-weight: 650;
    color: #8a8d93;
}

.ovl-name[b-gj1qvfjuys] {
    flex: 1;
    min-width: 0;
    font-size: 14px;
    font-weight: 650;
    color: #16181c;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ovl-row--locked[b-gj1qvfjuys] {
    opacity: 0.72;
}

.ovl-locked-badge[b-gj1qvfjuys] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex-shrink: 0;
    padding: 4px 10px;
    border-radius: 999px;
    background: #f0f0f2;
    color: #7c7f85;
    font-size: 11px;
    font-weight: 700;
}

@media (hover: hover) {
    .ovl-row:not(.ovl-row--locked):not(.ovl-row--editing):not(.ovl-row--adding):hover[b-gj1qvfjuys] {
        background: #f6f6f8;
    }
}


/* -- Baum-Drag&Drop: Drop-Zonen-Markierungen (Klassen setzt das Drag-JS) -- */
.ovl-root-label[b-gj1qvfjuys] {
    padding: 8px 12px 4px;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #8a8d93;
    border-radius: 8px;
}

.ovl-drop-over[b-gj1qvfjuys] {
    background: #eaf1fb !important;
    outline: 2px dashed #5b8def;
    outline-offset: -2px;
}

.ovl-drop-before[b-gj1qvfjuys] {
    box-shadow: inset 0 3px 0 0 #5b8def;
}

.ovl-drop-after[b-gj1qvfjuys] {
    box-shadow: inset 0 -3px 0 0 #5b8def;
}
/* /Components/Pages/Settings/TextVorlagenSettings.razor.rz.scp.css */
/* Modal-Kopf und -Formular der Vorlagen-Verwaltung — Optik wie das Schwarze-Brett-Modal (bb-*). */
.tvs-mhead[b-ss1wk3iuo0] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.tvs-mhead-ic[b-ss1wk3iuo0] {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: #efeff1;
    color: #16181c;
}

.tvs-mhead-ic svg[b-ss1wk3iuo0] {
    width: 19px;
    height: 19px;
}

.tvs-mhead-txt[b-ss1wk3iuo0] {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.tvs-mhead-kicker[b-ss1wk3iuo0] {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #80858d;
}

.tvs-mhead-title[b-ss1wk3iuo0] {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    color: #16181c;
}

.tvs-form[b-ss1wk3iuo0] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.tvs-field[b-ss1wk3iuo0] {
    display: flex;
    flex-direction: column;
    gap: 5px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #80858d;
}

.tvs-input[b-ss1wk3iuo0] {
    height: 40px;
    padding: 0 12px;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    background: #fff;
    color: #16181c;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    outline: none;
    letter-spacing: normal;
    text-transform: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.tvs-input:focus[b-ss1wk3iuo0] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.tvs-input--error[b-ss1wk3iuo0] {
    border-color: #e2483b;
    box-shadow: 0 0 0 3px rgba(226, 72, 59, .14);
}

.tvs-err[b-ss1wk3iuo0] {
    color: #e2483b;
    font-size: 12px;
    font-weight: 600;
}

.tvs-btn[b-ss1wk3iuo0] {
    height: 40px;
    padding: 0 18px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

@media (hover: hover) {
    .tvs-btn:hover[b-ss1wk3iuo0] {
        background: #efeff1;
    }
}

.tvs-btn:disabled[b-ss1wk3iuo0] {
    opacity: .55;
    cursor: default;
}

.tvs-btn--primary[b-ss1wk3iuo0] {
    background: #16181c;
    color: #fff;
    border-color: #16181c;
}

@media (hover: hover) {
    .tvs-btn--primary:hover[b-ss1wk3iuo0] {
        background: #26282e;
    }
}

/* iOS zoomt beim Fokussieren von Inputs < 16px in die Seite — daher 16px auf Touch-Geräten. */
@media (pointer: coarse) {
    .tvs-input[b-ss1wk3iuo0] {
        font-size: 16px;
    }
}
/* /Components/Pages/Stammdaten/Stammdaten.razor.rz.scp.css */
.std-page[b-glefr6mc3x] {
    /* 100dvh statt 100vh (100vh bleibt Fallback): auf iPad/iOS ist 100vh die große
       Viewport-Höhe — sonst ließe sich der Header um die Safari-Leiste wegscrollen. */
    height: calc(100vh - var(--app-header-h));
    height: calc(100dvh - var(--app-header-h));
    padding: 28px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    color: #16181c;
    background: #f5f5f7;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.std-header[b-glefr6mc3x] {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto 18px;
}

.std-kicker[b-glefr6mc3x] {
    color: #80858d;
    font-size: 0.74rem;
    font-weight: 800;
    text-transform: uppercase;
}

.std-header h1[b-glefr6mc3x] {
    margin: 3px 0 0;
    color: #16181c;
    font-size: 1.72rem;
    font-weight: 800;
}

/* -- Layout -------------------------------------------------------------- */
.std-layout[b-glefr6mc3x] {
    flex: 1;
    min-height: 0;
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(300px, 360px) minmax(0, 1fr);
    gap: 16px;
    align-items: stretch;
}

/* Voll-Höhe-Layout wie Berechtigungen: Seite = eine Viewport-Höhe (kein Seiten-Scroll);
   Liste UND rechte Detail-Spalte scrollen jeweils intern. */
.std-side[b-glefr6mc3x] {
    min-width: 0;
    min-height: 0;
}

.std-detail[b-glefr6mc3x] {
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding-right: 2px;
}

/* Kompakter Icon-Zurück-Button im Profil-Kopf – nur auf dem Handy sichtbar. */
.std-detail-back[b-glefr6mc3x] {
    display: none;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 0;
    color: #3c4148;
    background: #ffffff;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
}

@media (hover: hover) {
    .std-detail-back:hover[b-glefr6mc3x] {
        border-color: #e4e4e7;
        color: #16181c;
        background: #efeff1;
    }
}

.std-detail-empty[b-glefr6mc3x] {
    min-height: 320px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    border: 1.5px dashed #e4e4e7;
    border-radius: 16px;
    padding: 32px;
    color: #80858d;
    background: #ffffff;
    text-align: center;
    font-size: 0.95rem;
    font-weight: 650;
}

.std-detail-empty svg[b-glefr6mc3x] {
    color: #cfd0d3;
}

.std-detail-empty span[b-glefr6mc3x] {
    max-width: 320px;
}

/* -- Detail head --------------------------------------------------------- */
.std-detail-head[b-glefr6mc3x] {
    display: flex;
    align-items: center;
    gap: 16px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 16px;
    background: #ffffff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
}

.std-avatar-wrap[b-glefr6mc3x] {
    position: relative;
    width: max-content;
}

.std-avatar[b-glefr6mc3x] {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    /* Rund wie alle anderen Avatar-Stellen (Profilbild-Konsistenz). */
    border-radius: 50%;
    color: #ffffff;
    background: #16181c;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    font-family: 'Quicksand', sans-serif;
    font-size: 1.3rem;
    font-weight: 700;
}

.user-status-dot[b-glefr6mc3x] {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 13px;
    height: 13px;
    border: 2px solid #ffffff;
    border-radius: 999px;
    box-shadow: 0 0 0 1px rgba(28, 28, 30, 0.08);
}

.std-status-dot[b-glefr6mc3x] {
    /* Leicht eingerückt, damit der Punkt am Kreisrand sitzt (Avatar ist rund). */
    right: 0;
    bottom: 0;
    width: 16px;
    height: 16px;
    border-width: 3px;
}

.user-status-dot--active[b-glefr6mc3x] {
    background: #34c759;
}

.user-status-dot--warn[b-glefr6mc3x] {
    background: #ff9500;
}

.user-status-dot--inactive[b-glefr6mc3x] {
    background: #ff3b30;
}

.std-head-title[b-glefr6mc3x] {
    min-width: 0;
}

.std-head-title h2[b-glefr6mc3x] {
    margin: 2px 0 0;
    color: #16181c;
    font-size: 1.4rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.std-locked-hint[b-glefr6mc3x] {
    border: 1px solid #ffdba1;
    border-radius: 12px;
    padding: 11px 13px;
    color: #a15c00;
    background: #fff7e8;
    font-size: 0.86rem;
    font-weight: 700;
}

/* -- Cards --------------------------------------------------------------- */
.std-card-row[b-glefr6mc3x] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    align-items: start;
}

.std-card[b-glefr6mc3x] {
    position: relative;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 16px;
    background: #ffffff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
}

.std-card-head[b-glefr6mc3x] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}

.std-card-icon[b-glefr6mc3x] {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 9px;
    color: #16181c;
    background: #efeff1;
}

.std-card-head h3[b-glefr6mc3x] {
    margin: 0;
    color: #16181c;
    font-size: 1rem;
    font-weight: 800;
}

.std-info-btn[b-glefr6mc3x] {
    width: 23px;
    height: 23px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    border: none;
    border-radius: 50%;
    padding: 0;
    color: #3c4148;
    background: transparent;
    cursor: pointer;
}

@media (hover: hover) {
    .std-info-btn:hover[b-glefr6mc3x] {
        color: #16181c;
    }
}

.std-info-popover[b-glefr6mc3x] {
    position: relative;
    margin-bottom: 12px;
    border: 1.5px solid #e4e4e7;
    border-radius: 14px;
    padding: 12px 34px 12px 14px;
    color: #16181c;
    background: #f5f5f7;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.35;
}

.std-info-popover span[b-glefr6mc3x] {
    display: block;
}

.std-info-popover span + span[b-glefr6mc3x] {
    margin-top: 6px;
}

.std-info-close[b-glefr6mc3x] {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 22px;
    height: 22px;
    border: none;
    border-radius: 50%;
    padding: 0;
    color: #80858d;
    background: rgba(255, 255, 255, 0.72);
    font: inherit;
    font-size: 0.86rem;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
}

@media (hover: hover) {
    .std-info-close:hover[b-glefr6mc3x] {
        color: #16181c;
    }
}

/* -- Form ---------------------------------------------------------------- */
.std-form-grid[b-glefr6mc3x] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.std-field[b-glefr6mc3x] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.std-field--full[b-glefr6mc3x] {
    grid-column: 1 / -1;
}

.std-field span[b-glefr6mc3x] {
    color: #3c4148;
    font-size: 0.78rem;
    font-weight: 700;
}

.std-field input[b-glefr6mc3x],
.std-field textarea[b-glefr6mc3x] {
    width: 100%;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    padding: 0 11px;
    color: #16181c;
    background: #ffffff;
    font: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    transition: border-color 0.15s, background 0.15s;
}

.std-field input[b-glefr6mc3x] {
    height: 42px;
}

.std-field textarea[b-glefr6mc3x] {
    padding: 10px 11px;
    resize: vertical;
    line-height: 1.4;
}

.std-field input:focus[b-glefr6mc3x],
.std-field textarea:focus[b-glefr6mc3x] {
    border-color: #16181c;
    outline: none;
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.std-field input:disabled[b-glefr6mc3x],
.std-field textarea:disabled[b-glefr6mc3x] {
    color: #80858d;
    background: #f5f5f7;
    cursor: not-allowed;
}

.std-card-actions[b-glefr6mc3x] {
    display: flex;
    justify-content: flex-end;
    margin-top: 14px;
}

.std-card-actions--split[b-glefr6mc3x] {
    justify-content: space-between;
    align-items: center;
}

.std-save[b-glefr6mc3x] {
    min-height: 42px;
    border: none;
    border-radius: 11px;
    padding: 0 18px;
    color: #ffffff;
    background: #16181c;
    font: inherit;
    font-size: 0.9rem;
    font-weight: 750;
    cursor: pointer;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    transition: opacity 0.18s, transform 0.12s, box-shadow 0.18s, background 0.18s;
}

@media (hover: hover) {
    .std-save:not(:disabled):hover[b-glefr6mc3x] {
        background: #26282e;
        transform: translateY(-1px);
        box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    }
}

.std-save:disabled[b-glefr6mc3x] {
    cursor: not-allowed;
    opacity: 0.45;
}

/* -- Tagesregelarbeitszeit ---------------------------------------------- */
.std-day-hours-grid[b-glefr6mc3x] {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 5px;
}

.std-day-hours-field[b-glefr6mc3x] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.std-day-hours-field span[b-glefr6mc3x] {
    min-height: 23px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    color: #80858d;
    background: #efeff1;
    font-size: 0.67rem;
    font-weight: 850;
}

.std-day-hours-field input[b-glefr6mc3x] {
    width: 100%;
    height: 36px;
    min-width: 0;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    padding: 0 2px;
    color: #16181c;
    background: #ffffff;
    font: inherit;
    font-size: 0.74rem;
    font-weight: 750;
    text-align: center;
}

.std-day-hours-field input[b-glefr6mc3x]::-webkit-outer-spin-button,
.std-day-hours-field input[b-glefr6mc3x]::-webkit-inner-spin-button {
    margin: 0;
    appearance: none;
}

.std-day-hours-field input[type="number"][b-glefr6mc3x] {
    appearance: textfield;
}

.std-day-hours-field input:focus[b-glefr6mc3x] {
    border-color: #16181c;
    outline: none;
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.std-day-hours-field input:disabled[b-glefr6mc3x] {
    color: #80858d;
    background: #f5f5f7;
}

.std-week-total[b-glefr6mc3x] {
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0 11px;
    color: #3c4148;
    background: #efeff1;
    font-size: 0.78rem;
    font-weight: 800;
    white-space: nowrap;
}

/* -- Responsive ---------------------------------------------------------- */
@media (max-width: 980px) {
    /* Handy: Master-Detail-Umschaltung – zuerst die Liste, beim Antippen gleitet das Detail
       als Vollbild-Overlay rein; Zurück-Button blendet es wieder aus. */
    .std-layout[b-glefr6mc3x] {
        grid-template-columns: 1fr;
        position: relative;
    }

    .std-detail[b-glefr6mc3x] {
        position: absolute;
        inset: 0;
        z-index: 5;
        background: #f5f5f7;
        transform: translateX(100%);
        transition: transform 0.22s ease-out;
        pointer-events: none;
    }

    .std-layout--has-selection .std-detail[b-glefr6mc3x] {
        transform: translateX(0);
        pointer-events: auto;
    }

    .std-detail-back[b-glefr6mc3x] {
        display: inline-flex;
    }
}

@media (max-width: 680px) {
    .std-page[b-glefr6mc3x] {
        padding: 18px;
    }

    .std-card-row[b-glefr6mc3x] {
        grid-template-columns: 1fr;
    }

    .std-form-grid[b-glefr6mc3x] {
        grid-template-columns: 1fr;
    }

    .std-save[b-glefr6mc3x] {
        width: 100%;
    }

    .std-card-actions--split[b-glefr6mc3x] {
        flex-direction: column-reverse;
        gap: 10px;
        align-items: stretch;
    }
}
/* /Components/Pages/Support/Support.razor.rz.scp.css */
/* =====================================================================
   SUPPORT — Ticket-System · Schwarz-Weiß-Redesign (monochrom)
   Akzent = Schwarz (#16181c). Status-/Prioritäts-Farben bleiben
   semantisch: Offen = Ink, In Arbeit = Teal, Fertig = Grün,
   hoch = Amber, dringend = Rot.
   ===================================================================== */

.sup[b-xwqtvkub0u] {
    --s-open: #16181c;     --bg-open: #efeff1;
    --s-progress: #0f766e; --bg-progress: #d8f3ee;
    --s-done: #16a34a;     --bg-done: #dcfce7;
    --s-closed: #80858d;   --bg-closed: #efeff1;

    box-sizing: border-box;
    height: calc(100dvh - var(--app-header-h));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #f5f5f7;
    padding: 22px clamp(14px, 4vw, 40px) 0;
    font: 14px/1.45 'Plus Jakarta Sans', -apple-system, "Segoe UI", system-ui, sans-serif;
    color: #16181c;
}

.sup *[b-xwqtvkub0u], .sup *[b-xwqtvkub0u]::before, .sup *[b-xwqtvkub0u]::after { box-sizing: border-box; }

/* In der Flex-Spalte volle Breite halten (sonst schrumpfen sie durch margin:auto) */
.sup-hero[b-xwqtvkub0u],
.sup-message[b-xwqtvkub0u],
.sup-bar[b-xwqtvkub0u] { width: 100%; }

/* -- Hero --------------------------------------------------------------- */
.sup-hero[b-xwqtvkub0u] {
    max-width: 920px;
    margin: 0 auto 18px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}
.sup-kicker[b-xwqtvkub0u] {
    color: #80858d;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}
.sup-hero h1[b-xwqtvkub0u] {
    margin: 3px 0 0;
    color: #16181c;
    font-size: 1.72rem;
    font-weight: 800;
    line-height: 1.2;
    padding-bottom: 2px;
}

.sup-new-btn[b-xwqtvkub0u] {
    flex: 0 0 auto;
    display: inline-flex; align-items: center; gap: 8px;
    height: 40px; padding: 0 16px;
    border: 1px solid transparent; border-radius: 12px;
    background: #16181c; color: #fff;
    font: inherit; font-size: 13.5px; font-weight: 800; cursor: pointer;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .3);
    transition: background .14s, box-shadow .14s, transform .12s;
}
@media (hover: hover) {
    .sup-new-btn:hover[b-xwqtvkub0u] {
        background: #26282e;
        box-shadow: 0 8px 20px -12px rgba(0, 0, 0, .34);
    }
}
.sup-new-btn:active[b-xwqtvkub0u] { transform: translateY(1px); }

.sup-message[b-xwqtvkub0u] {
    max-width: 920px;
    margin: 0 auto 14px;
    padding: 11px 14px;
    border-radius: 11px;
    background: #fdeceb;
    color: #c0362c;
    font-size: 13px;
    font-weight: 600;
}

/* -- Status-Pillen & Bereich-Chip --------------------------------------- */
.sup-status[b-xwqtvkub0u] {
    font-size: 10px; font-weight: 850; letter-spacing: .02em;
    padding: 3px 9px; border-radius: 999px;
    white-space: nowrap;
}
.sup-status--open[b-xwqtvkub0u] { color: var(--s-open); background: var(--bg-open); }
.sup-status--progress[b-xwqtvkub0u] { color: var(--s-progress); background: var(--bg-progress); }
.sup-status--done[b-xwqtvkub0u] { color: var(--s-done); background: var(--bg-done); }
.sup-status--closed[b-xwqtvkub0u] { color: var(--s-closed); background: var(--bg-closed); }
.sup-status--lg[b-xwqtvkub0u] { font-size: 12px; padding: 5px 12px; }

.sup-area[b-xwqtvkub0u] {
    font-size: 11px; font-weight: 750;
    padding: 2px 9px; border-radius: 999px;
    color: #3c4148; background: #efeff1;
    white-space: nowrap;
}

/* -- Priorität ---------------------------------------------------------- */
.sup-prio[b-xwqtvkub0u] {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 10px; font-weight: 850; letter-spacing: .02em;
    padding: 3px 9px; border-radius: 999px;
    white-space: nowrap;
}
.sup-prio--low[b-xwqtvkub0u] { color: #80858d; background: #efeff1; }
.sup-prio--normal[b-xwqtvkub0u] { color: #16181c; background: #efeff1; }
.sup-prio--high[b-xwqtvkub0u] { color: #b45309; background: #fff3e0; }
.sup-prio--urgent[b-xwqtvkub0u] { color: #b42318; background: #fdeceb; }
.sup-prio--lg[b-xwqtvkub0u] { font-size: 12px; padding: 5px 12px; }

.sup-prio-dot[b-xwqtvkub0u] { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; background: #80858d; }
.sup-prio-dot--low[b-xwqtvkub0u] { background: #80858d; }
.sup-prio-dot--normal[b-xwqtvkub0u] { background: #16181c; }
.sup-prio-dot--high[b-xwqtvkub0u] { background: #b45309; }
.sup-prio-dot--urgent[b-xwqtvkub0u] { background: #b42318; }

/* Prioritäts-Dropdown im Detail-Kopf (Admin) */
/* Flaggen-Icon der Priorität (eigene Farbe je Stufe) */
.sup-prio-flag[b-xwqtvkub0u] { flex: 0 0 auto; }
.sup-prio-flag--low[b-xwqtvkub0u] { color: #80858d; }
.sup-prio-flag--normal[b-xwqtvkub0u] { color: #16181c; }
.sup-prio-flag--high[b-xwqtvkub0u] { color: #b45309; }
.sup-prio-flag--urgent[b-xwqtvkub0u] { color: #b42318; }
.sup-prio svg[b-xwqtvkub0u], .sup-prio-flag[b-xwqtvkub0u] { flex: 0 0 auto; }

/* Prioritäts-/Status-Auswahl im Detailkopf (IconSelect) */
.sup-mini-sel[b-xwqtvkub0u] { width: 170px; }
.sup-mini-sel[b-xwqtvkub0u]  .iconsel-trigger { min-height: 36px; background: #fff; }

/* Prioritäts-Segmente im Anlege-/Bearbeiten-Modal */
.sup-prio-seg[b-xwqtvkub0u] { display: flex; gap: 6px; flex-wrap: wrap; }
.sup-prio-seg-btn[b-xwqtvkub0u] {
    flex: 1 1 0; min-width: 72px;
    height: 38px; padding: 0 8px;
    border: 1px solid #e4e4e7; border-radius: 10px;
    background: #fff; color: #80858d;
    font: inherit; font-size: 13px; font-weight: 750; cursor: pointer;
    transition: background .12s, border-color .12s, color .12s;
}
@media (hover: hover) {
    .sup-prio-seg-btn:hover[b-xwqtvkub0u] {
        border-color: #cfd0d3;
    }
}
.sup-prio-seg-btn--low.is-active[b-xwqtvkub0u] { color: #3c4148; background: #efeff1; border-color: #cfd0d3; }
.sup-prio-seg-btn--normal.is-active[b-xwqtvkub0u] { color: #16181c; background: #efeff1; border-color: #16181c; }
.sup-prio-seg-btn--high.is-active[b-xwqtvkub0u] { color: #b45309; background: #fff3e0; border-color: #f0d2a6; }
.sup-prio-seg-btn--urgent.is-active[b-xwqtvkub0u] { color: #b42318; background: #fdeceb; border-color: #f3c0bb; }

/* -- Toolbar: Suche & Filter -------------------------------------------- */
.sup-bar[b-xwqtvkub0u] {
    max-width: 920px; margin: 0 auto 14px;
    display: flex; align-items: center; gap: 9px; flex-wrap: wrap;
}
.sup-search-bar[b-xwqtvkub0u] {
    flex: 1 1 220px;
    display: flex; align-items: center; gap: 8px;
    height: 38px; padding: 0 12px;
    background: #fff; border: 1px solid #e4e4e7; border-radius: 11px;
    color: #80858d;
}
.sup-search-bar:focus-within[b-xwqtvkub0u] { border-color: #16181c; box-shadow: 0 0 0 3px rgba(22, 24, 28, .12); }
.sup-search-bar input[b-xwqtvkub0u] {
    flex: 1; border: 0; outline: 0; background: transparent;
    font: inherit; font-size: 13.5px; color: #16181c; min-width: 0;
}
.sup-search-clear[b-xwqtvkub0u] {
    border: 0; background: #efeff1; color: #80858d;
    width: 22px; height: 22px; border-radius: 50%;
    display: grid; place-items: center; cursor: pointer; padding: 0; flex: 0 0 auto;
}
@media (hover: hover) {
    .sup-search-clear:hover[b-xwqtvkub0u] {
        background: #e7e7ea;
        color: #16181c;
    }
}

/* Filter als IconSelect: feste Breite, damit die Toolbar-Zeile ruhig bleibt */
.sup-filter[b-xwqtvkub0u] { position: relative; flex: 0 0 auto; width: 168px; }
.sup-filter[b-xwqtvkub0u]  .iconsel-trigger { min-height: 38px; background: #fff; }

/* Aktiver (nicht auf „Alle" stehender) Filter — wie früher .sup-filter-btn.is-active */
.sup-filter[b-xwqtvkub0u]  .iconsel-trigger.sup-filter--on {
    border-color: #16181c;
    background: #efeff1;
}

/* -- Ticket-Liste (Zeilen statt Karten) --------------------------------- */
.sup-scroll[b-xwqtvkub0u] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding-bottom: clamp(14px, 2.4vh, 26px);
}

.sup-list[b-xwqtvkub0u] {
    max-width: 920px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

/* Überschrift über der zweiten Liste (erledigte Tickets) */
.sup-list-heading[b-xwqtvkub0u] {
    max-width: 920px;
    margin: 24px auto 8px;
    padding: 0 4px;
    font-size: 11px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase;
    color: #80858d;
}
/* Erledigte Tickets etwas zurückgenommen darstellen */
.sup-list--done .sup-row-title[b-xwqtvkub0u] { color: #80858d; font-weight: 750; }

.sup-row[b-xwqtvkub0u] {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 13px 16px;
    border: 0;
    border-top: 1px solid #efeff1;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font: inherit;
    transition: background .12s;
}
.sup-row:first-child[b-xwqtvkub0u] { border-top: 0; }
@media (hover: hover) {
    .sup-row:hover[b-xwqtvkub0u] {
        background: #efeff1;
    }
}

/* Ungelesenes Ticket: linker Akzentbalken + dezent getönter Hintergrund + fetter Titel */
.sup-row--unread[b-xwqtvkub0u] { background: #f6f7f8; }
@media (hover: hover) {
    .sup-row--unread:hover[b-xwqtvkub0u] {
        background: #eeeff1;
    }
}
.sup-row--unread[b-xwqtvkub0u]::before {
    content: "";
    position: absolute;
    left: 0; top: 7px; bottom: 7px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: #16181c;
    box-shadow: 0 0 6px rgba(22, 24, 28, .3);
}
.sup-row--unread .sup-row-title[b-xwqtvkub0u] { font-weight: 850; }

.sup-row-main[b-xwqtvkub0u] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.sup-row-title[b-xwqtvkub0u] { font-size: 14.5px; font-weight: 800; color: #16181c; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sup-row-sub[b-xwqtvkub0u] {
    display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
    font-size: 12.5px; font-weight: 600; color: #80858d;
    min-width: 0;
}

.sup-row-side[b-xwqtvkub0u] {
    flex: 0 0 auto;
    display: flex; flex-direction: column; align-items: flex-end; gap: 5px;
}
.sup-row-badges[b-xwqtvkub0u] { display: flex; align-items: center; gap: 6px; }
.sup-row-when[b-xwqtvkub0u] { font-size: 11.5px; font-weight: 650; color: #80858d; white-space: nowrap; }

.sup-row-chev[b-xwqtvkub0u] {
    flex: 0 0 auto;
    width: 22px; height: 22px;
    color: #cfd0d3;
    display: grid; place-items: center;
    transition: color .14s, transform .14s;
}
@media (hover: hover) {
    .sup-row:hover .sup-row-chev[b-xwqtvkub0u] {
        color: #16181c;
        transform: translateX(2px);
    }
}

/* -- Leer --------------------------------------------------------------- */
.sup-empty[b-xwqtvkub0u] {
    text-align: center;
    padding: 56px 20px;
    display: flex; flex-direction: column; align-items: center; gap: 8px;
    color: #80858d;
}
.sup-empty-icon[b-xwqtvkub0u] {
    width: 64px; height: 64px; margin-bottom: 6px;
    border-radius: 18px; display: grid; place-items: center;
    background: #efeff1; color: #16181c;
}
.sup-empty strong[b-xwqtvkub0u] { font-size: 16px; color: #16181c; }
.sup-empty span[b-xwqtvkub0u] { max-width: 320px; }
.sup-empty-btn[b-xwqtvkub0u] {
    margin-top: 10px;
    height: 38px; padding: 0 16px;
    border: 1px solid #e4e4e7; border-radius: 11px;
    background: #fff; color: #16181c;
    font: inherit; font-size: 13px; font-weight: 800; cursor: pointer;
}
@media (hover: hover) {
    .sup-empty-btn:hover[b-xwqtvkub0u] {
        background: #efeff1;
    }
}

/* -- Detail / Konversation ---------------------------------------------- */
.sup-detail[b-xwqtvkub0u] { max-width: 920px; margin: 0 auto; }

/* Detail-Ansicht füllt die Höhe des Viewports: kein Seiten-Scroll, nur der Chat
   scrollt intern. Braucht der Kopf (Titel/Teilnehmer) mehr Platz, wird der Chat
   automatisch entsprechend niedriger. */
.sup--detail[b-xwqtvkub0u] {
    height: calc(100dvh - var(--app-header-h));
    padding-bottom: clamp(14px, 2.4vh, 26px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.sup--detail .sup-detail[b-xwqtvkub0u] {
    flex: 1;
    min-height: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
}

.sup-detail-head[b-xwqtvkub0u] { margin-bottom: 16px; }
.sup-detail-bar[b-xwqtvkub0u] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.sup-detail-actions[b-xwqtvkub0u] { display: flex; align-items: flex-end; gap: 10px; }

/* Beschriftetes Mini-Feld (Label über Steuerelement) im Detail-Kopf */
.sup-field-mini[b-xwqtvkub0u] { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.sup-field-mini-label[b-xwqtvkub0u] {
    font-size: 10px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase;
    color: #80858d; padding-left: 2px;
}

.sup-back[b-xwqtvkub0u] {
    display: inline-flex; align-items: center; gap: 6px;
    height: 36px; padding: 0 13px 0 10px;
    border: 1px solid #e4e4e7; border-radius: 11px;
    background: #fff; color: #3c4148;
    font: inherit; font-size: 13px; font-weight: 800; cursor: pointer;
}
@media (hover: hover) {
    .sup-back:hover[b-xwqtvkub0u] {
        border-color: #cfd0d3;
        color: #16181c;
    }
}

.sup-detail-titles[b-xwqtvkub0u] {
    display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
    min-width: 0;
}
.sup-detail-main[b-xwqtvkub0u] { min-width: 0; }
.sup-detail-main h1[b-xwqtvkub0u] {
    margin: 0 0 6px;
    font-size: 21px; font-weight: 850; letter-spacing: -.01em;
    color: #16181c;
    word-break: break-word;
}
.sup-detail-meta[b-xwqtvkub0u] {
    display: flex; align-items: center; flex-wrap: wrap; gap: 7px;
    font-size: 12.5px; font-weight: 600; color: #80858d;
}
.sup-meta-sep[b-xwqtvkub0u] { color: #cfd0d3; }

/* -- Status-Dropdown & Werkzeuge ---------------------------------------- */
.sup-tools-wrap[b-xwqtvkub0u] { position: relative; flex: 0 0 auto; }

.sup-tools-btn[b-xwqtvkub0u] {
    width: 36px; height: 36px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid #e4e4e7; border-radius: 11px;
    background: #fff; color: #3c4148;
    cursor: pointer; padding: 0;
    transition: border-color .14s, color .14s, background .14s;
}
@media (hover: hover) {
    .sup-tools-btn:hover[b-xwqtvkub0u] {
        border-color: #cfd0d3;
        color: #16181c;
        background: #efeff1;
    }
}

.sup-status-dot[b-xwqtvkub0u] {
    width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto;
    background: var(--s-closed);
}
.sup-status-dot--open[b-xwqtvkub0u] { background: var(--s-open); }
.sup-status-dot--progress[b-xwqtvkub0u] { background: var(--s-progress); }
.sup-status-dot--done[b-xwqtvkub0u] { background: var(--s-done); }
.sup-status-dot--closed[b-xwqtvkub0u] { background: var(--s-closed); }

/* -- Wiederverwendbares Dropdown-Menü (App-Stil) ------------------------ */
.sup-menu-backdrop[b-xwqtvkub0u] {
    position: fixed; inset: 0;
    border: 0; padding: 0; margin: 0;
    background: transparent;
    cursor: default;
    z-index: 1000;
}
.sup-pop-menu[b-xwqtvkub0u] {
    position: absolute;
    top: calc(100% + 6px);
    z-index: 1001;
    min-width: 210px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .26), 0 6px 14px -10px rgba(0, 0, 0, .12);
    padding: 6px;
    max-height: 280px;
    overflow-y: auto;
    animation: sup-pop-b-xwqtvkub0u .14s ease;
}
.sup-pop-menu--right[b-xwqtvkub0u] { right: 0; }
@keyframes sup-pop-b-xwqtvkub0u { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

.sup-pop-item[b-xwqtvkub0u] {
    width: 100%;
    display: flex; align-items: center; gap: 10px;
    padding: 9px 10px;
    border: 0; border-radius: 10px;
    background: transparent; color: #16181c;
    font: inherit; font-size: 13.5px; font-weight: 700; cursor: pointer;
    text-align: left;
}
@media (hover: hover) {
    .sup-pop-item:hover[b-xwqtvkub0u] {
        background: #efeff1;
    }
}
.sup-pop-item.is-active[b-xwqtvkub0u] { color: #16181c; background: #efeff1; }
.sup-pop-item--danger[b-xwqtvkub0u] { color: #c0362c; }
@media (hover: hover) {
    .sup-pop-item--danger:hover[b-xwqtvkub0u] {
        background: #fdeceb;
    }
}
.sup-pop-label[b-xwqtvkub0u] { flex: 1; }
/* -- Teilnehmer (Avatare + Hover-Liste) & Bereich im Titelkopf ----------- */
.sup-title-aside[b-xwqtvkub0u] {
    display: flex; flex-direction: column; align-items: flex-end; gap: 8px;
    flex: 0 0 auto;
}

.sup-people[b-xwqtvkub0u] { position: relative; display: inline-flex; }
.sup-people:focus[b-xwqtvkub0u] { outline: none; }
.sup-avatars[b-xwqtvkub0u] { display: inline-flex; align-items: center; cursor: default; }
.sup-avatar[b-xwqtvkub0u] {
    width: 30px; height: 30px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: #16181c; color: #fff;
    font-family: 'Quicksand', sans-serif;
    font-size: 12px; font-weight: 700;
    border: 2px solid #f5f5f7;
    margin-left: -9px;
}
.sup-avatar:first-child[b-xwqtvkub0u] { margin-left: 0; }

/* Hover-/Fokus-Popover mit der vollständigen Teilnehmerliste */
.sup-people-pop[b-xwqtvkub0u] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 60;
    min-width: 210px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .26), 0 6px 14px -10px rgba(0, 0, 0, .12);
    padding: 8px;
    opacity: 0; visibility: hidden;
    transform: translateY(-4px);
    transition: opacity .14s ease, transform .14s ease, visibility .14s;
    pointer-events: none;
}
/* unsichtbare Brücke, damit das Popover beim Hinüberfahren nicht schließt */
.sup-people-pop[b-xwqtvkub0u]::before {
    content: ""; position: absolute; top: -8px; left: 0; right: 0; height: 8px;
}
.sup-people:focus-within .sup-people-pop[b-xwqtvkub0u],
.sup-people:focus .sup-people-pop[b-xwqtvkub0u] {
    opacity: 1; visibility: visible; transform: none; pointer-events: auto;
}
@media (hover: hover) {
    .sup-people:hover .sup-people-pop[b-xwqtvkub0u] {
        opacity: 1;
        visibility: visible;
        transform: none;
        pointer-events: auto;
    }
}
.sup-people-pop-head[b-xwqtvkub0u] {
    font-size: 11px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase;
    color: #80858d; padding: 2px 8px 7px;
}
.sup-people-row[b-xwqtvkub0u] {
    display: flex; align-items: center; gap: 9px;
    padding: 6px 8px; border-radius: 10px;
}
@media (hover: hover) {
    .sup-people-row:hover[b-xwqtvkub0u] {
        background: #efeff1;
    }
}
.sup-people-av[b-xwqtvkub0u] {
    width: 26px; height: 26px; border-radius: 50%; flex: 0 0 auto;
    display: inline-flex; align-items: center; justify-content: center;
    background: #16181c; color: #fff;
    font-family: 'Quicksand', sans-serif; font-size: 11px; font-weight: 700;
}
.sup-people-name[b-xwqtvkub0u] { font-size: 13px; font-weight: 700; color: #16181c; white-space: nowrap; }
.sup-people-tag[b-xwqtvkub0u] {
    margin-left: auto;
    font-size: 10px; font-weight: 800;
    color: #3c4148; background: #e4e4e7;
    padding: 2px 7px; border-radius: 999px;
}

/* Bereich-Badge unter den Avataren */
.sup-area-badge[b-xwqtvkub0u] {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 11px 4px 9px;
    border-radius: 999px;
    background: #efeff1; color: #3c4148;
    border: 1px solid #e4e4e7;
    font-size: 12px; font-weight: 750;
    white-space: nowrap;
}
.sup-area-badge svg[b-xwqtvkub0u] { opacity: .7; flex: 0 0 auto; }

/* -- Chat-Bereich (ChatView-Komponente) --------------------------------- */
/* Füllt den verbleibenden Platz der Detail-Ansicht (flex) und behält die
   abgerundete Box. min-height:0, damit der Chat schrumpft (statt die Seite
   scrollen zu lassen), wenn der Kopfbereich mehr Platz braucht. */
.sup-chat-shell[b-xwqtvkub0u] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    overflow: hidden;
    background: #f5f5f7;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

/* Hinweis bei erledigten (schreibgeschützten) Tickets */
.sup-readonly-note[b-xwqtvkub0u] {
    display: flex; align-items: center; gap: 9px;
    margin-bottom: 12px;
    padding: 10px 14px;
    border-radius: 12px;
    background: #efeff1;
    border: 1px solid #e4e4e7;
    color: #3c4148;
    font-size: 13px; font-weight: 600;
}
.sup-readonly-note svg[b-xwqtvkub0u] { flex: 0 0 auto; opacity: .9; }
.sup-readonly-note strong[b-xwqtvkub0u] { color: #16a34a; }


/* -- Neues-/Bearbeiten-Modal -------------------------------------------- */
.sup-modal-head[b-xwqtvkub0u] { display: flex; flex-direction: column; gap: 8px; }
.sup-modal-head .sup-kicker[b-xwqtvkub0u] { color: #80858d; }
.sup-modal-head h2[b-xwqtvkub0u] { margin: 0; font-size: 19px; font-weight: 850; letter-spacing: -.01em; color: #16181c; }

.sup-form[b-xwqtvkub0u] { display: flex; flex-direction: column; gap: 14px; }
.sup-field[b-xwqtvkub0u] { display: flex; flex-direction: column; gap: 6px; }
.sup-field > span[b-xwqtvkub0u] { font-size: 12px; font-weight: 800; color: #3c4148; }
.sup-field > span small[b-xwqtvkub0u] { font-weight: 600; color: #80858d; }
.sup-field input[b-xwqtvkub0u], .sup-field textarea[b-xwqtvkub0u] {
    width: 100%;
    border: 1px solid #e4e4e7; border-radius: 11px;
    padding: 10px 12px;
    background: #fff;
    font: inherit; font-size: 14px; color: #16181c;
    outline: 0; resize: vertical;
}
.sup-field textarea[b-xwqtvkub0u] { min-height: 96px; }
.sup-field input:focus[b-xwqtvkub0u], .sup-field textarea:focus[b-xwqtvkub0u] {
    border-color: #16181c; box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

/* Pflichtfeld leer nach Klick auf Erstellen/Speichern – bleibt auch bei Fokus rot */
.sup-field--invalid input[b-xwqtvkub0u], .sup-field--invalid textarea[b-xwqtvkub0u],
.sup-field--invalid input:focus[b-xwqtvkub0u], .sup-field--invalid textarea:focus[b-xwqtvkub0u] {
    border-color: #c0362c;
    box-shadow: 0 0 0 3px rgba(192, 54, 44, .14);
}
.sup-field--invalid > span[b-xwqtvkub0u] { color: #c0362c; }

/* -- Bereich-Dropdown (App-Stil) ---------------------------------------- */
/* -- Teilnehmer-Picker (echtes Overlay-Dropdown) ------------------------ */
.sup-picker[b-xwqtvkub0u] {
    position: relative;
    border: 1px solid #e4e4e7; border-radius: 11px;
    background: #fff;
    padding: 8px;
    display: flex; flex-direction: column; gap: 8px;
}
.sup-picker:focus-within[b-xwqtvkub0u] { border-color: #16181c; box-shadow: 0 0 0 3px rgba(22, 24, 28, .12); }
/* Eingabe & Chips müssen über dem Schließen-Backdrop liegen, das Dropdown selbst auch. */
.sup-picker.is-open .sup-chips[b-xwqtvkub0u],
.sup-picker.is-open .sup-search[b-xwqtvkub0u] { position: relative; z-index: 1001; }

.sup-chips[b-xwqtvkub0u] { display: flex; flex-wrap: wrap; gap: 6px; }
.sup-chip[b-xwqtvkub0u] {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 3px 6px 3px 3px;
    border-radius: 999px;
    background: #efeff1; border: 1px solid #e4e4e7;
    font-size: 12.5px; font-weight: 700; color: #16181c;
}
.sup-chip-avatar[b-xwqtvkub0u] {
    width: 22px; height: 22px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: #16181c; color: #fff;
    font-family: 'Quicksand', sans-serif; font-size: 11px; font-weight: 700;
}
.sup-chip-x[b-xwqtvkub0u] {
    width: 18px; height: 18px; border-radius: 50%;
    border: 0; background: transparent; color: #80858d;
    display: grid; place-items: center; cursor: pointer; padding: 0;
}
@media (hover: hover) {
    .sup-chip-x:hover[b-xwqtvkub0u] {
        background: #fbeae8;
        color: #c0362c;
    }
}

.sup-chip--creator[b-xwqtvkub0u] { padding-right: 8px; cursor: default; }
.sup-chip-tag[b-xwqtvkub0u] {
    font-size: 10px; font-weight: 800;
    color: #3c4148; background: #e4e4e7;
    padding: 2px 7px; border-radius: 999px;
}

.sup-search[b-xwqtvkub0u] {
    display: flex; align-items: center; gap: 8px;
    height: 36px; padding: 0 10px;
    background: #efeff1; border-radius: 9px;
    color: #80858d;
}
.sup-search input[b-xwqtvkub0u] {
    flex: 1; border: 0; outline: 0; background: transparent;
    font: inherit; font-size: 13.5px; color: #16181c; min-width: 0;
}

.sup-options[b-xwqtvkub0u] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0; right: 0;
    z-index: 1001;
    display: flex; flex-direction: column; gap: 2px;
    max-height: 220px; overflow-y: auto;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .26), 0 6px 14px -10px rgba(0, 0, 0, .12);
    padding: 6px;
    animation: sup-pop-b-xwqtvkub0u .14s ease;
}
.sup-option[b-xwqtvkub0u] {
    display: flex; align-items: center; gap: 10px;
    width: 100%; padding: 7px 8px;
    border: 0; border-radius: 10px;
    background: transparent; color: #16181c;
    font: inherit; font-size: 13.5px; font-weight: 650; cursor: pointer;
    text-align: left;
}
@media (hover: hover) {
    .sup-option:hover[b-xwqtvkub0u] {
        background: #efeff1;
    }
}
.sup-opt-avatar[b-xwqtvkub0u] {
    width: 26px; height: 26px; border-radius: 50%; flex: 0 0 auto;
    display: inline-flex; align-items: center; justify-content: center;
    background: #16181c; color: #fff;
    font-family: 'Quicksand', sans-serif; font-size: 12px; font-weight: 700;
}
.sup-option-empty[b-xwqtvkub0u] { padding: 10px 8px; color: #80858d; font-size: 13px; }

/* -- Bild-Upload im Erstellen-Modal -------------------------------------- */
.sup-file-input[b-xwqtvkub0u] {
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0); clip-path: inset(50%);
    margin: -1px; padding: 0; border: 0;
    white-space: nowrap; pointer-events: none;
}
.sup-file-input > *[b-xwqtvkub0u] { width: 1px; height: 1px; }

.sup-upload[b-xwqtvkub0u] { position: relative; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.sup-upload-grid[b-xwqtvkub0u] { display: flex; flex-wrap: wrap; gap: 8px; }
.sup-upload-thumb[b-xwqtvkub0u] {
    position: relative;
    width: 72px; height: 72px;
    border: 1px solid #e4e4e7; border-radius: 11px;
    background: #efeff1; color: #80858d;
    display: grid; place-items: center;
    overflow: hidden;
}
.sup-upload-thumb img[b-xwqtvkub0u] { width: 100%; height: 100%; object-fit: cover; display: block; }
.sup-upload-thumb-x[b-xwqtvkub0u] {
    position: absolute; top: 4px; right: 4px;
    width: 20px; height: 20px; border-radius: 50%;
    border: 0; padding: 0;
    background: rgba(22, 24, 28, .72); color: #fff;
    display: grid; place-items: center; cursor: pointer;
}
@media (hover: hover) {
    .sup-upload-thumb-x:hover[b-xwqtvkub0u] {
        background: #c0362c;
    }
}

.sup-upload-btn[b-xwqtvkub0u] {
    display: inline-flex; align-items: center; gap: 8px;
    height: 38px; padding: 0 14px;
    border: 1px dashed #c4c5c9; border-radius: 11px;
    background: #fff; color: #3c4148;
    font-size: 13px; font-weight: 750; cursor: pointer;
}
@media (hover: hover) {
    .sup-upload-btn:hover[b-xwqtvkub0u] {
        border-color: #16181c;
        color: #16181c;
    }
}
.sup-upload-spinner[b-xwqtvkub0u] {
    width: 14px; height: 14px; border-radius: 50%;
    border: 2px solid #c4c5c9; border-top-color: #16181c;
    animation: sup-spin-b-xwqtvkub0u .7s linear infinite;
}
@keyframes sup-spin-b-xwqtvkub0u { to { transform: rotate(360deg); } }

/* -- Prüf-Modal ----------------------------------------------------------- */
.sup-review[b-xwqtvkub0u] { display: flex; flex-direction: column; }
.sup-review-row[b-xwqtvkub0u] {
    display: flex; align-items: baseline; gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid #efeff1;
}
.sup-review-row:first-child[b-xwqtvkub0u] { padding-top: 0; }
.sup-review-row:last-child[b-xwqtvkub0u] { border-bottom: 0; padding-bottom: 0; }
.sup-review-row--block[b-xwqtvkub0u] { flex-direction: column; gap: 6px; }
.sup-review-label[b-xwqtvkub0u] { flex: 0 0 92px; font-size: 12px; font-weight: 800; color: #80858d; }
.sup-review-value[b-xwqtvkub0u] { font-size: 14px; font-weight: 650; color: #16181c; min-width: 0; overflow-wrap: anywhere; }
.sup-review-text[b-xwqtvkub0u] {
    margin: 0;
    font-size: 14px; color: #16181c;
    white-space: pre-wrap; overflow-wrap: anywhere;
}

.sup-btn[b-xwqtvkub0u] {
    height: 40px; padding: 0 18px;
    border-radius: 11px; border: 1px solid transparent;
    font: inherit; font-size: 13.5px; font-weight: 800; cursor: pointer;
}
.sup-btn--secondary[b-xwqtvkub0u] { background: #efeff1; color: #3c4148; }
@media (hover: hover) {
    .sup-btn--secondary:hover[b-xwqtvkub0u] {
        background: #e7e7ea;
    }
}
.sup-btn--primary[b-xwqtvkub0u] { background: #16181c; color: #fff; box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .3); }
@media (hover: hover) {
    .sup-btn--primary:hover:not(:disabled)[b-xwqtvkub0u] {
        background: #26282e;
    }
}
.sup-btn--primary:disabled[b-xwqtvkub0u] { background: #c4c5c9; cursor: not-allowed; box-shadow: none; }

/* -- Responsiv ---------------------------------------------------------- */
@media (max-width: 620px) {
    .sup-hero[b-xwqtvkub0u] { flex-direction: column; align-items: stretch; }
    .sup-new-btn[b-xwqtvkub0u] { justify-content: center; }
    .sup-row-when[b-xwqtvkub0u] { display: none; }
}
/* /Components/Pages/Tools/WerkzeugDetail.razor.rz.scp.css */
/* ===============================================================
   WERKZEUG-DETAIL — Leseansicht + Bearbeiten-Modal, Look wie /lager.
=============================================================== */

/* NumPad-Popup über das Bearbeiten-Modal heben: global (settings.css) ist
   .np-popup z-index 301, das AppModal liegt bei 2100–2102 – ohne diesen Override
   öffnete das NumPad zwar, läge aber HINTER dem Modal (Klick auf Kaufpreis = scheinbar nichts). */
.np-overlay[b-fx4gm456yz] {
    z-index: 2200;
}

.np-popup[b-fx4gm456yz] {
    z-index: 2201;
}

.wzd2[b-fx4gm456yz] {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #16181c;
    padding-bottom: 12px;
    /* Vollhöhe: die Seite scrollt nicht, nur die Historie scrollt innen. */
    height: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* -- Kopfleiste -- */
.wzd2-bar[b-fx4gm456yz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.wzd2-back[b-fx4gm456yz] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem .8rem .45rem .55rem;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    font: inherit;
    font-size: .86rem;
    font-weight: 600;
    color: #16181c;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease;
}

@media (hover: hover) {
    .wzd2-back:hover[b-fx4gm456yz] {
        background: #efeff1;
    }
}

/* -- Aktionen rechts: Look 1:1 wie /lager (lgd-bar-actions) -- */
.wzd2-bar-actions[b-fx4gm456yz] { display: flex; align-items: center; gap: .5rem; }

.wzd2-iconbtn[b-fx4gm456yz] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .75rem;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    font: inherit;
    font-size: .84rem;
    font-weight: 600;
    color: #3c4148;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease, color .12s ease;
}

@media (hover: hover) {
    .wzd2-iconbtn:hover[b-fx4gm456yz] {
        background: #efeff1;
        color: #16181c;
    }
}
@media (hover: hover) {
    .wzd2-iconbtn--del:hover[b-fx4gm456yz] {
        color: #d92d20;
        border-color: #f3b0a8;
    }
}

/* -- Aufteilung -- */
.wzd2-split[b-fx4gm456yz] {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    gap: 16px;
    align-items: stretch;
    flex: 1 1 auto;
    min-height: 0;
}

.wzd2-side[b-fx4gm456yz] { display: flex; flex-direction: column; gap: 14px; min-width: 0; min-height: 0; }

/* Linke Spalte: Identität (Foto/Status/QR) schmal links, Aktion direkt daneben
   rechts — so wird die Spalte halb so hoch und die Seite scrollt nicht mehr. */
.wzd2-main[b-fx4gm456yz] {
    display: grid;
    grid-template-columns: minmax(0, 0.78fr) minmax(0, 1fr);
    grid-template-areas:
        "hero   action"
        "status action"
        "qr     action";
    gap: 14px;
    align-items: start;
    align-content: start;
    min-width: 0;
    min-height: 0;
}

.wzd2-hero[b-fx4gm456yz] { grid-area: hero; }
.wzd2-status[b-fx4gm456yz] { grid-area: status; }
.wzd2-action[b-fx4gm456yz] { grid-area: action; align-self: start; }
.wzd2-qr[b-fx4gm456yz] { grid-area: qr; }

/* Historie-Karte füllt die Resthöhe; nur ihre Liste scrollt. */
.wzd2-card--hist[b-fx4gm456yz] { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.wzd2-card--hist .wzd2-card-title[b-fx4gm456yz] { flex: 0 0 auto; }

/* -- Hero -- */
.wzd2-hero[b-fx4gm456yz] {
    display: flex;
    gap: 14px;
    align-items: center;
    padding: 16px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 6px 18px -14px rgba(0, 0, 0, .22);
}

.wzd2-photo[b-fx4gm456yz] {
    width: 88px;
    height: 88px;
    flex: 0 0 auto;
    border-radius: 13px;
    overflow: hidden;
    background: #efeff1;
    border: 1px solid #e4e4e7;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #b4b9c0;
}

.wzd2-photo img[b-fx4gm456yz] { width: 100%; height: 100%; object-fit: cover; }
.wzd2-photo--clickable[b-fx4gm456yz] { cursor: pointer; }
@media (hover: hover) {
    .wzd2-photo--clickable:hover img[b-fx4gm456yz] {
        transform: scale(1.05);
        transition: transform .3s ease;
    }
}
.wzd2-hero-text[b-fx4gm456yz] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wzd2-kicker[b-fx4gm456yz] { font-size: 0.72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #80858d; }
.wzd2-name[b-fx4gm456yz] { margin: 1px 0; font-size: 1.3rem; font-weight: 800; letter-spacing: -.01em; }
.wzd2-artnr[b-fx4gm456yz] { font-size: 0.8rem; color: #80858d; font-weight: 600; }

/* -- Status-Leiste -- */
.wzd2-status[b-fx4gm456yz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 14px 16px;
    border-radius: 14px;
    background: #16181c;
    color: #fff;
}

.wzd2-status--im_lager[b-fx4gm456yz] { background: #16181c; }
.wzd2-status--ausgegeben[b-fx4gm456yz] { background: #16181c; }
.wzd2-status--reparatur[b-fx4gm456yz] { background: #b45309; }
.wzd2-status--defekt[b-fx4gm456yz],
.wzd2-status--verloren[b-fx4gm456yz] { background: #b42318; }

.wzd2-status-left[b-fx4gm456yz] { display: flex; flex-direction: column; }
.wzd2-status-label[b-fx4gm456yz] { font-size: 0.68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; opacity: .7; }
.wzd2-status-value[b-fx4gm456yz] { font-size: 1.2rem; font-weight: 800; }
.wzd2-status-halter[b-fx4gm456yz] { font-size: 0.86rem; opacity: .92; }

/* -- Aktion: Ausgeben + Status (Rework) -- */
.wzd2-action[b-fx4gm456yz] {
    display: flex;
    flex-direction: column;
    gap: 11px;
    padding: 16px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 6px 18px -14px rgba(0, 0, 0, .22);
}

.wzd2-action-title[b-fx4gm456yz] {
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #80858d;
}

/* Segmented Control für den Typ */
.wzd2-typeseg[b-fx4gm456yz] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    padding: 4px;
    background: #efeff1;
    border-radius: 13px;
}

.wzd2-typeseg-btn[b-fx4gm456yz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 38px;
    padding: 0 6px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    font: inherit;
    font-size: 0.83rem;
    font-weight: 800;
    color: #6b7077;
    cursor: pointer;
    transition: background .15s, color .15s, box-shadow .15s;
}

.wzd2-typeseg-btn svg[b-fx4gm456yz] { flex: 0 0 auto; }
@media (hover: hover) {
    .wzd2-typeseg-btn:hover[b-fx4gm456yz] {
        color: #16181c;
    }
}
.wzd2-typeseg-btn.is-active[b-fx4gm456yz] { background: #fff; color: #16181c; box-shadow: 0 4px 12px -8px rgba(0, 0, 0, .3); }

/* Einheitliche Such-Combobox */
.wzd2-combo[b-fx4gm456yz] { position: relative; }

.wzd2-combo-input[b-fx4gm456yz] {
    display: flex;
    align-items: center;
    gap: 9px;
    height: 46px;
    padding: 0 12px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #fff;
    transition: border-color .15s, box-shadow .15s;
}

.wzd2-combo.is-open .wzd2-combo-input[b-fx4gm456yz] { border-color: #16181c; box-shadow: 0 0 0 3px rgba(22, 24, 28, .1); }
.wzd2-combo-input > svg[b-fx4gm456yz] { color: #80858d; flex: 0 0 auto; }
.wzd2-combo-caret[b-fx4gm456yz] { margin-left: auto; transition: transform .15s; }
.wzd2-combo.is-open .wzd2-combo-caret[b-fx4gm456yz] { transform: rotate(180deg); }

.wzd2-combo-input input[b-fx4gm456yz] {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font: inherit;
    font-size: 0.92rem;
    color: #16181c;
}

.wzd2-combo-input input[b-fx4gm456yz]::placeholder { color: #9aa0a8; }

.wzd2-combo-chip[b-fx4gm456yz] {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 46px;
    padding: 0 8px 0 13px;
    border: 1.5px solid #16181c;
    border-radius: 12px;
    background: #fff;
}

.wzd2-combo-ico[b-fx4gm456yz] { display: inline-flex; flex: 0 0 auto; color: #16181c; }
.wzd2-combo-name[b-fx4gm456yz] { flex: 1; min-width: 0; font-size: 0.9rem; font-weight: 700; color: #16181c; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wzd2-combo-clear[b-fx4gm456yz] { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; flex: 0 0 auto; border: 0; border-radius: 9px; background: #efeff1; color: #80858d; cursor: pointer; transition: background .15s, color .15s; }
@media (hover: hover) {
    .wzd2-combo-clear:hover[b-fx4gm456yz] {
        background: #fbeae8;
        color: #b42318;
    }
}

.wzd2-combo-backdrop[b-fx4gm456yz] { position: fixed; inset: 0; z-index: 40; border: 0; background: transparent; cursor: default; }

.wzd2-combo-menu[b-fx4gm456yz] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    z-index: 50;
    max-height: 16rem;
    overflow-y: auto;
    padding: 6px;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .26), 0 6px 14px -10px rgba(0, 0, 0, .12);
}

.wzd2-combo-opt[b-fx4gm456yz] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 40px;
    padding: 8px 10px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    font: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    color: #16181c;
    cursor: pointer;
    text-align: left;
}

@media (hover: hover) {
    .wzd2-combo-opt:hover[b-fx4gm456yz] {
        background: #efeff1;
    }
}
.wzd2-combo-opt-ico[b-fx4gm456yz] { display: inline-flex; flex: 0 0 auto; color: #80858d; }
.wzd2-combo-opt > span:last-child[b-fx4gm456yz] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wzd2-combo-empty[b-fx4gm456yz] { padding: 14px 10px; font-size: 0.85rem; color: #80858d; text-align: center; }

/* Primäre Aktion */
/* Primäre Aktion — kompakt, rechtsbündig (nicht mehr vollbreit) */
.wzd2-assign-foot[b-fx4gm456yz] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    min-height: 42px;
}

.wzd2-assign-hint[b-fx4gm456yz] {
    margin-right: auto;
    font-size: 0.8rem;
    font-weight: 600;
    color: #9aa0a8;
}

.wzd2-ausgeben[b-fx4gm456yz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 42px;
    padding: 0 20px;
    border: 0;
    border-radius: 11px;
    background: #16181c;
    color: #fff;
    font: inherit;
    font-size: 0.9rem;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 8px 20px -10px rgba(22, 24, 28, .5);
    transition: background .15s, transform .1s, box-shadow .15s;
}

.wzd2-ausgeben svg[b-fx4gm456yz] { flex: 0 0 auto; }
@media (hover: hover) {
    .wzd2-ausgeben:hover:not(:disabled)[b-fx4gm456yz] {
        background: #26282e;
    }
}
.wzd2-ausgeben:active:not(:disabled)[b-fx4gm456yz] { transform: translateY(1px); }
.wzd2-ausgeben:disabled[b-fx4gm456yz] { background: #ececed; color: #a3a8af; box-shadow: none; cursor: not-allowed; }

.wzd2-action-sep[b-fx4gm456yz] { height: 1px; background: #efeff1; margin: 5px 0 3px; }

/* -- Status: farb-codierter Zustands-Wähler -------------------------------- */
.wzd2-stategrid[b-fx4gm456yz] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.wzd2-state[b-fx4gm456yz] {
    --c: #5a6069;     /* Akzentfarbe des Zustands */
    --cb: #e4e4e7;    /* Rahmen aktiv/hover     */
    --cbg: #f4f4f6;   /* Tönung aktiv/hover     */
    position: relative;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 11px 12px;
    border: 1px solid #e9e9ec;
    border-radius: 12px;
    background: #fff;
    font: inherit;
    font-size: 0.85rem;
    font-weight: 800;
    color: #3c4148;
    cursor: pointer;
    text-align: left;
    transition: border-color .14s ease, background .14s ease, color .14s ease, transform .1s ease, box-shadow .14s ease;
}

.wzd2-state--lager[b-fx4gm456yz]     { --c: #1f7a3d; --cb: #bfe6cf; --cbg: #ebf8f0; }
.wzd2-state--reparatur[b-fx4gm456yz] { --c: #b45309; --cb: #f3d39a; --cbg: #fdf4e3; }
.wzd2-state--defekt[b-fx4gm456yz]    { --c: #c0392b; --cb: #f1c0ba; --cbg: #fdecea; }
.wzd2-state--verloren[b-fx4gm456yz]  { --c: #5a6069; --cb: #d3d7dd; --cbg: #f1f2f4; }

.wzd2-state-ico[b-fx4gm456yz] { display: inline-flex; flex: 0 0 auto; color: var(--c); }
.wzd2-state-label[b-fx4gm456yz] { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (hover: hover) {
    .wzd2-state:hover:not(:disabled)[b-fx4gm456yz] {
        border-color: var(--cb);
        background: var(--cbg);
        color: var(--c);
        transform: translateY(-1px);
        box-shadow: 0 10px 20px -16px rgba(0, 0, 0, .4);
    }
}

.wzd2-state:active:not(:disabled)[b-fx4gm456yz] { transform: translateY(0) scale(.99); box-shadow: none; }

/* Aktueller Zustand: dauerhaft getönt + „Aktuell"-Marker, nicht klickbar */
.wzd2-state.is-current[b-fx4gm456yz] {
    border-color: var(--cb);
    background: var(--cbg);
    color: var(--c);
    cursor: default;
}

.wzd2-state-now[b-fx4gm456yz] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    flex: 0 0 auto;
    font-size: 0.6rem;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--c);
}

.wzd2-state-now svg[b-fx4gm456yz] { flex: 0 0 auto; }

/* -- QR -- */
.wzd2-qr[b-fx4gm456yz] {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 14px;
    padding: 13px 15px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 6px 18px -14px rgba(0, 0, 0, .22);
}

.wzd2-qrbox[b-fx4gm456yz] { flex: 0 0 auto; display: flex; background: #fff; border: 1px solid #efeff1; border-radius: 10px; }
.wzd2-qrbox svg[b-fx4gm456yz] { width: 96px; height: 96px; display: block; }
.wzd2-qr-meta[b-fx4gm456yz] { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; min-width: 0; }
.wzd2-qr-title[b-fx4gm456yz] { font-size: 0.9rem; font-weight: 800; }
.wzd2-qr-sub[b-fx4gm456yz] { font-size: 0.76rem; color: #80858d; line-height: 1.35; }
.wzd2-qr-print[b-fx4gm456yz] { display: inline-flex; align-items: center; gap: 6px; }
.wzd2-qr-print svg[b-fx4gm456yz] { flex: 0 0 auto; }

/* -- Karten (Stammdaten / Historie) -- */
.wzd2-card[b-fx4gm456yz] {
    padding: 16px 18px 18px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 6px 18px -14px rgba(0, 0, 0, .22);
}

.wzd2-card-title[b-fx4gm456yz] { margin: 0 0 12px; font-size: 0.96rem; font-weight: 800; }

.wzd2-dl[b-fx4gm456yz] {
    display: grid;
    grid-template-columns: minmax(0, auto) minmax(0, 1fr);
    gap: 7px 14px;
    margin: 0;
}

.wzd2-dl dt[b-fx4gm456yz] { color: #80858d; font-size: 0.82rem; font-weight: 700; }
.wzd2-dl dd[b-fx4gm456yz] { margin: 0; font-size: 0.86rem; font-weight: 600; text-align: right; }

.wzd2-fristen[b-fx4gm456yz] {
    margin-top: 13px;
    padding-top: 12px;
    border-top: 1px solid #efeff1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.wzd2-frist[b-fx4gm456yz] { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.wzd2-frist-lbl[b-fx4gm456yz] { font-size: 0.82rem; color: #80858d; font-weight: 700; }
.wzd2-frist-val[b-fx4gm456yz] { font-size: 0.82rem; font-weight: 800; font-variant-numeric: tabular-nums; padding: 1px 9px; border-radius: 999px; background: #efeff1; color: #4b5563; }
.wzd2-frist-val--soon[b-fx4gm456yz] { background: #fef3da; color: #b45309; }
.wzd2-frist-val--over[b-fx4gm456yz] { background: #fde8e6; color: #b42318; }
.wzd2-frist-val--none[b-fx4gm456yz] { background: transparent; color: #b4b9c0; }

.wzd2-notiz[b-fx4gm456yz] { margin-top: 13px; padding-top: 12px; border-top: 1px solid #efeff1; }
.wzd2-notiz-label[b-fx4gm456yz] { font-size: 0.72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: #80858d; }
.wzd2-notiz p[b-fx4gm456yz] { margin: 4px 0 0; font-size: 0.86rem; }

/* -- Historie -- */
.wzd2-hist-empty[b-fx4gm456yz] { color: #80858d; font-size: 0.86rem; }

/* -- Historie als Zeitstrahl -- */
.wzd2-tl[b-fx4gm456yz] { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; padding-right: 2px; }

.wzd2-tl-day[b-fx4gm456yz] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #fff;
    font-size: 0.64rem;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #9aa0a8;
    padding: 2px 0 8px;
}

.wzd2-tl-group:not(:last-child)[b-fx4gm456yz] { margin-bottom: 6px; }

.wzd2-tl-item[b-fx4gm456yz] { display: flex; gap: 12px; }
.wzd2-tl-rail[b-fx4gm456yz] { position: relative; width: 14px; flex: 0 0 auto; display: flex; justify-content: center; }
.wzd2-tl-rail[b-fx4gm456yz]::before { content: ""; position: absolute; top: 0; bottom: 0; width: 2px; background: #ececef; }
.wzd2-tl-group .wzd2-tl-item:first-child .wzd2-tl-rail[b-fx4gm456yz]::before { top: 7px; }
.wzd2-tl-group .wzd2-tl-item:last-child .wzd2-tl-rail[b-fx4gm456yz]::before { bottom: auto; height: 7px; }

.wzd2-tl-dot[b-fx4gm456yz] { position: relative; width: 11px; height: 11px; border-radius: 50%; margin-top: 2px; box-shadow: 0 0 0 3px #fff; background: #b4b9c0; }
.wzd2-tl-dot--out[b-fx4gm456yz] { background: #16181c; }
.wzd2-tl-dot--in[b-fx4gm456yz] { background: #1f9d52; }
.wzd2-tl-dot--rep[b-fx4gm456yz] { background: #e0930a; }
.wzd2-tl-dot--def[b-fx4gm456yz] { background: #c0392b; }
.wzd2-tl-dot--ver[b-fx4gm456yz] { background: #5a6069; }
.wzd2-tl-dot--new[b-fx4gm456yz] { background: #5a6069; }
.wzd2-tl-dot--chg[b-fx4gm456yz] { background: #b45309; }

.wzd2-tl-body[b-fx4gm456yz] { flex: 1; min-width: 0; padding-bottom: 14px; }
.wzd2-tl-top[b-fx4gm456yz] { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.wzd2-tl-title[b-fx4gm456yz] { flex: 1; min-width: 0; font-size: 0.86rem; font-weight: 800; color: #16181c; }
.wzd2-tl-time[b-fx4gm456yz] { flex: 0 0 auto; font-size: 0.74rem; color: #9aa0a8; font-variant-numeric: tabular-nums; }
.wzd2-tl-sub[b-fx4gm456yz] { font-size: 0.78rem; color: #80858d; margin-top: 1px; }

/* -- Anlege-/Fehlt-Platzhalter -- */
.wzd2-creating[b-fx4gm456yz], .wzd2-missing[b-fx4gm456yz] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 70px 20px;
    color: #80858d;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.wzd2-creating-ico[b-fx4gm456yz], .wzd2-missing-ico[b-fx4gm456yz] { color: #c4c8ce; }
.wzd2-creating p[b-fx4gm456yz], .wzd2-missing p[b-fx4gm456yz] { margin: 0; font-weight: 600; }

/* -- Bearbeiten-Modal: Kopf + Formular -- */
.wzd2-edit-head[b-fx4gm456yz] { display: flex; align-items: center; gap: .7rem; }
.wzd2-edit-head-icon[b-fx4gm456yz] { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; border-radius: .75rem; background: #efeff1; color: #16181c; }
.wzd2-edit-head-text[b-fx4gm456yz] { display: flex; flex-direction: column; line-height: 1.2; }
.wzd2-edit-head-title[b-fx4gm456yz] { font-size: 1.05rem; font-weight: 800; }
.wzd2-edit-head-sub[b-fx4gm456yz] { font-size: 0.8rem; color: #80858d; }

.wzd2-form[b-fx4gm456yz] { display: flex; flex-direction: column; gap: 18px; }
.wzd2-section[b-fx4gm456yz] { display: flex; flex-direction: column; gap: 11px; }
.wzd2-section-title[b-fx4gm456yz] { font-size: 0.72rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; color: #80858d; padding-bottom: .4rem; border-bottom: 1px solid #efeff1; }
.wzd2-field .settings-input--num[b-fx4gm456yz] { width: 100%; text-align: left; }
.wzd2-grid[b-fx4gm456yz] { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.wzd2-field[b-fx4gm456yz] { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.wzd2-field--full[b-fx4gm456yz] { grid-column: 1 / -1; }
/* Inline „+ Neu" (Kategorie/Lagerplatz): Eingabe + OK/Abbr. nebeneinander. */
.wzd2-inline[b-fx4gm456yz] { display: flex; align-items: center; gap: 6px; }
.wzd2-inline .settings-input--flex[b-fx4gm456yz] { flex: 1; min-width: 0; }
.wzd2-lbl[b-fx4gm456yz] { font-size: 0.8rem; font-weight: 700; color: #3c4148; }
.wzd2-req[b-fx4gm456yz] { color: #d92d20; }
.wzd2-field-error[b-fx4gm456yz] { color: #d92d20; font-size: 0.74rem; font-weight: 600; }
.wzd2-textarea[b-fx4gm456yz] { resize: none; height: 56px; }

/* Wird die Spalte zu schmal für „Identität | Aktion" nebeneinander, wieder
   gestapelt — dann normale Seitenhöhe statt Vollhöhe (Historie wieder gedeckelt). */
@media (max-width: 1180px) {
    .wzd2[b-fx4gm456yz] { height: auto; }
    .wzd2-split[b-fx4gm456yz] { flex: 0 0 auto; }
    .wzd2-main[b-fx4gm456yz] {
        grid-template-columns: 1fr;
        grid-template-areas: "hero" "status" "action" "qr";
    }
    .wzd2-card--hist[b-fx4gm456yz] { flex: 0 0 auto; }
    .wzd2-tl[b-fx4gm456yz] { flex: 0 0 auto; max-height: 22rem; }
}

@media (max-width: 860px) {
    .wzd2-split[b-fx4gm456yz] { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .wzd2-grid[b-fx4gm456yz] { grid-template-columns: 1fr; }
    .wzd2-dl[b-fx4gm456yz] { grid-template-columns: 1fr; gap: 2px 0; }
    .wzd2-dl dd[b-fx4gm456yz] { text-align: left; margin-bottom: 6px; }
    .wzd2-stategrid[b-fx4gm456yz] { grid-template-columns: 1fr; }
}

/* ===============================================================
   Bild-Upload + Lightbox — übernommen aus Fleet/Lager (flt-*),
   hier scoped, damit die im Bearbeiten-Modal gerenderten
   flt-*-Elemente korrekt gestylt sind.
=============================================================== */
.flt-photo-field[b-fx4gm456yz] {
    position: relative;
    flex: 0 0 auto;
    width: 240px;
    margin-left: auto;
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.flt-file-input-wrap[b-fx4gm456yz] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    margin: -1px;
    padding: 0;
    border: 0;
    white-space: nowrap;
    pointer-events: none;
}

.flt-file-input-wrap > *[b-fx4gm456yz] { width: 1px; height: 1px; }

.flt-photo-drop[b-fx4gm456yz] {
    display: flex;
    align-items: center;
    gap: .65rem;
    height: 72px;
    padding: 0 .8rem;
    border: 2px dashed #d4d4d8;
    border-radius: 12px;
    background: #f7f7f8;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}

@media (hover: hover) {
    .flt-photo-drop:hover[b-fx4gm456yz] {
        border-color: #16181c;
        background: #efeff1;
    }
}

.flt-photo-drop-ico[b-fx4gm456yz] {
    display: grid;
    place-items: center;
    width: 2.3rem;
    height: 2.3rem;
    flex: 0 0 auto;
    border-radius: 9px;
    background: #efeff1;
    color: #16181c;
}

.flt-photo-drop-txt[b-fx4gm456yz] { display: flex; flex-direction: column; min-width: 0; }
.flt-photo-drop-main[b-fx4gm456yz] { font-weight: 600; color: #3c4148; font-size: .85rem; }
.flt-photo-drop-hint[b-fx4gm456yz] { font-size: .74rem; color: #80858d; }

.flt-photo-card[b-fx4gm456yz] { position: relative; display: flex; align-items: center; gap: .65rem; height: 72px; }

.flt-photo-view[b-fx4gm456yz] {
    position: relative;
    flex: 0 0 auto;
    width: 104px;
    height: 72px;
    padding: 0;
    border: 0;
    border-radius: 10px;
    overflow: hidden;
    background: #efeff1;
    cursor: pointer;
}

.flt-photo-view--static[b-fx4gm456yz] { cursor: default; }
.flt-photo-view img[b-fx4gm456yz] { width: 100%; height: 100%; object-fit: cover; display: block; }

.flt-photo-view-hint[b-fx4gm456yz] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    background: rgba(0, 0, 0, .42);
    color: #fff;
    font-size: .74rem;
    font-weight: 600;
    opacity: 0;
    transition: opacity .15s ease;
}

@media (hover: hover) {
    .flt-photo-view:hover .flt-photo-view-hint[b-fx4gm456yz] {
        opacity: 1;
    }
}

.flt-photo-side[b-fx4gm456yz] { display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; min-width: 0; }

.flt-photo-btn[b-fx4gm456yz] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .6rem;
    background: #fff;
    border: 1.5px solid #e4e4e7;
    border-radius: 8px;
    font: inherit;
    font-size: .8rem;
    font-weight: 600;
    color: #16181c;
    cursor: pointer;
}

@media (hover: hover) {
    .flt-photo-btn:hover[b-fx4gm456yz] {
        background: #efeff1;
        border-color: #e4e4e7;
    }
}

.flt-photo-link[b-fx4gm456yz] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    font-size: .78rem;
    color: #b42318;
    cursor: pointer;
}

@media (hover: hover) {
    .flt-photo-link:hover[b-fx4gm456yz] {
        text-decoration: underline;
    }
}

.flt-photo-droptip[b-fx4gm456yz] {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: rgba(22, 24, 28, .12);
    border: 2px dashed #16181c;
    pointer-events: none;
}

.flt-photo-droptip span[b-fx4gm456yz] {
    padding: .25rem .65rem;
    background: #16181c;
    color: #fff;
    border-radius: 999px;
    font-size: .76rem;
    font-weight: 600;
}

.flt-photo-field.flt-drag .flt-photo-drop[b-fx4gm456yz] { border-color: #16181c; background: #efeff1; }
.flt-photo-field.flt-drag .flt-photo-droptip[b-fx4gm456yz] { display: flex; }

.flt-photo-busy[b-fx4gm456yz] { display: flex; align-items: center; gap: .4rem; font-size: .74rem; color: #80858d; }

.flt-spinner[b-fx4gm456yz] {
    width: .85rem;
    height: .85rem;
    border: 2px solid #e4e4e7;
    border-top-color: #16181c;
    border-radius: 50%;
    animation: wzd2-spin-b-fx4gm456yz .7s linear infinite;
}

@keyframes wzd2-spin-b-fx4gm456yz { to { transform: rotate(360deg); } }

.flt-photo-err[b-fx4gm456yz] { font-size: .74rem; color: #b42318; }

/* Die Bild-Lightbox liegt in der Shared-Komponente AppLightbox. */

@media (max-width: 560px) {
    .flt-photo-field[b-fx4gm456yz] { width: 100%; flex-basis: 100%; margin-left: 0; }
}

@media (hover: none) {
    .flt-photo-view-hint[b-fx4gm456yz] { opacity: 1; }
}

/* Alter Freitext-Lieferant als Hinweis unter dem Dropdown, bis er manuell zugeordnet ist. */
/* /Components/Pages/Tools/WerkzeugListe.razor.rz.scp.css */
/* ===============================================================
   WERKZEUG — Schwarz-Weiß-Liste, Look 1:1 wie /lager.
   Akzent = Schwarz (#16181c). Status-/Frist-Farben semantisch.
   Vollhöhe mit Innen-Scroll der Liste.
=============================================================== */

.wz-page[b-ouj42h6219] {
    /* 100dvh statt 100vh (100vh bleibt Fallback): auf iPad/iOS ist 100vh die große
       Viewport-Höhe — sonst ließe sich der Header um die Safari-Leiste wegscrollen. */
    height: calc(100vh - var(--app-header-h));
    height: calc(100dvh - var(--app-header-h));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #f5f5f7;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #16181c;
}

.wz-page .settings-kicker[b-ouj42h6219],
.wz-page .settings-counter[b-ouj42h6219] {
    color: #80858d;
}

.wz-page .settings-title-current[b-ouj42h6219] {
    overflow: visible;
    line-height: 1.2;
}

.settings-btn--primary[b-ouj42h6219] {
    background: #16181c;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .3);
}

@media (hover: hover) {
    .settings-btn--primary:hover[b-ouj42h6219] {
        background: #26282e;
        box-shadow: 0 8px 20px -12px rgba(0, 0, 0, .34);
    }
}

/* -- Kopfzeile + Umschalter ------------------------------------------------ */
.wz-header[b-ouj42h6219] {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.wz-header-actions[b-ouj42h6219] {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* -- Fällige-Prüfungen-Button + Modal (Look wie Lager-Mindestbestand) ------ */
.wz-warnbtn[b-ouj42h6219] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    flex: 0 0 auto;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    color: #3c4148;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}

@media (hover: hover) {
    .wz-warnbtn:hover[b-ouj42h6219] {
        background: #efeff1;
        color: #16181c;
    }
}
/* Alert: weich rot gefüllt (wie die Status-Chips) + Punkt — sichtbar ohne Zahl,
   identisch zur Lager-Glocke. */
.wz-warnbtn--alert[b-ouj42h6219] {
    background: #fbeae8;
    border-color: #f3b0a8;
    color: #d92d20;
}

@media (hover: hover) {
    .wz-warnbtn--alert:hover[b-ouj42h6219] {
        background: #f8dcd8;
        color: #b42318;
    }
}

.wz-warnbtn-dot[b-ouj42h6219] {
    position: absolute;
    top: .1rem;
    right: .14rem;
    width: .6rem;
    height: .6rem;
    border-radius: 999px;
    background: #d92d20;
    border: 2px solid #fff;
    box-sizing: content-box;
}

@media (prefers-reduced-motion: no-preference) {
    .wz-warnbtn-dot[b-ouj42h6219]::after {
        content: "";
        position: absolute;
        inset: -2px;
        border-radius: 999px;
        border: 2px solid rgba(217, 45, 32, .55);
        animation: wz-warn-pulse-b-ouj42h6219 2.2s ease-out infinite;
    }

    @keyframes wz-warn-pulse-b-ouj42h6219 {
        0% { transform: scale(.7); opacity: .9; }
        70% { transform: scale(1.7); opacity: 0; }
        100% { transform: scale(1.7); opacity: 0; }
    }
}

.wz-low-head[b-ouj42h6219] { display: flex; align-items: center; gap: .7rem; }
.wz-low-head-icon[b-ouj42h6219] { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; border-radius: .75rem; background: #efeff1; color: #16181c; }
.wz-low-head-text[b-ouj42h6219] { display: flex; flex-direction: column; line-height: 1.2; }
.wz-low-kicker[b-ouj42h6219] { font-size: .7rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: #80858d; }
.wz-low-title[b-ouj42h6219] { margin: 0; font-size: 1.18rem; font-weight: 700; color: #16181c; }

.wz-low-empty[b-ouj42h6219] { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .5rem; padding: 1.6rem .5rem .9rem; }
.wz-low-empty-icon[b-ouj42h6219] { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: #e7f7ee; color: #12b76a; margin-bottom: .15rem; }
.wz-low-empty-title[b-ouj42h6219] { font-weight: 700; color: #16181c; }
.wz-low-empty-sub[b-ouj42h6219] { font-size: .85rem; color: #80858d; max-width: 19rem; }

.wz-low-list[b-ouj42h6219] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.wz-low-item[b-ouj42h6219] { position: relative; display: flex; align-items: center; gap: .7rem; padding: .62rem .7rem .62rem .85rem; border-radius: 12px; background: #fff; border: 1px solid #e4e4e7; box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22); overflow: hidden; cursor: pointer; transition: border-color .15s; }
@media (hover: hover) {
    .wz-low-item:hover[b-ouj42h6219] {
        border-color: #16181c;
    }
}
.wz-low-item[b-ouj42h6219]::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #cfd0d3; }
.wz-low-item--rot[b-ouj42h6219]::before { background: #d92d20; }
.wz-low-item--gelb[b-ouj42h6219]::before { background: #e0930a; }
.wz-low-mid[b-ouj42h6219] { display: flex; flex-direction: column; gap: .12rem; min-width: 0; flex: 1 1 auto; }
.wz-low-name[b-ouj42h6219] { font-weight: 700; font-size: .9rem; color: #16181c; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wz-low-when[b-ouj42h6219] { font-size: .78rem; color: #80858d; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.wz-viewswitch[b-ouj42h6219] {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    background: #efeff1;
    border: 1px solid #e4e4e7;
    border-radius: 13px;
}

.wz-pill[b-ouj42h6219] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 36px;
    padding: 0 15px;
    border: none;
    border-radius: 10px;
    background: transparent;
    color: #80858d;
    font: inherit;
    font-size: 0.86rem;
    font-weight: 800;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, box-shadow 0.15s;
}

@media (hover: hover) {
    .wz-pill:hover[b-ouj42h6219] {
        color: #16181c;
    }
}

.wz-pill--active[b-ouj42h6219] {
    background: #ffffff;
    color: #16181c;
    box-shadow: 0 4px 12px -8px rgba(0, 0, 0, .3);
}

.wz-pill svg[b-ouj42h6219] { flex: 0 0 auto; }

/* -- Werkzeugleiste: Suche / Filter / Neu ---------------------------------- */
.wz-toolbar[b-ouj42h6219] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
    flex-wrap: wrap;
}

.wz-search[b-ouj42h6219] {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 240px;
    min-width: 200px;
    max-width: 420px;
    height: 40px;
    padding: 0 10px 0 36px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    transition: border-color 0.15s, box-shadow 0.15s;
}

.wz-search:focus-within[b-ouj42h6219] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.wz-search > svg[b-ouj42h6219] {
    position: absolute;
    left: 11px;
    color: #80858d;
    pointer-events: none;
}

.wz-search-input[b-ouj42h6219] {
    flex: 1 1 auto;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    font: inherit;
    font-size: 0.92rem;
    color: #16181c;
}

.wz-search-input[b-ouj42h6219]::placeholder { color: #9aa0a8; }

/* Natives Lösch-X des type="search"-Inputs ausblenden — es gibt einen eigenen Button
   (sonst erscheinen zwei X nebeneinander). */
.wz-search-input[b-ouj42h6219]::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
    display: none;
}

.wz-search-clear[b-ouj42h6219] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 7px;
    background: #efeff1;
    color: #80858d;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

@media (hover: hover) {
    .wz-search-clear:hover[b-ouj42h6219] {
        background: #e4e4e7;
        color: #16181c;
    }
}

.wz-filter[b-ouj42h6219] {
    flex: 0 1 200px;
    min-width: 170px;
}

/* Filter-Dropdowns nicht blass: weiß + Schatten wie das Suchfeld (statt #f7f7f9).
   Nur im Ruhezustand — der offene Zustand behält Rahmen + Fokusring der Komponente. */
.wz-filter[b-ouj42h6219]  .iconsel-trigger:not(.iconsel-trigger--open) {
    background: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

.wz-new-btn[b-ouj42h6219] { margin-left: auto; }

/* -- Kennzahlen-Leiste ----------------------------------------------------- */
.wz-summary[b-ouj42h6219] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 14px 0 8px;
    flex-wrap: wrap;
}

/* -- Liste (Innen-Scroll) -------------------------------------------------- */
.wz-listwrap[b-ouj42h6219],
.wz-journalwrap[b-ouj42h6219],
.wz-detailwrap[b-ouj42h6219] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    padding-right: 2px;
}

.wz-detailwrap[b-ouj42h6219] {
    width: 100%;
    max-width: 1280px;
    margin: 16px auto 0;
}

/* -- Karten-Raster (Aufbau wie /fleet) ------------------------------------- */
.wz-grid[b-ouj42h6219] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
    padding: 4px 2px 12px;
}

@media (max-width: 1180px) { .wz-grid[b-ouj42h6219] { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 940px)  { .wz-grid[b-ouj42h6219] { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 680px)  { .wz-grid[b-ouj42h6219] { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px)  { .wz-grid[b-ouj42h6219] { grid-template-columns: 1fr; } }

.wz-card[b-ouj42h6219] {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.wz-card:focus-visible[b-ouj42h6219] {
    transform: translateY(-3px);
    border-color: #16181c;
    box-shadow: 0 16px 34px -16px rgba(0, 0, 0, .26);
    outline: none;
}

@media (hover: hover) {
    .wz-card:hover[b-ouj42h6219] {
        transform: translateY(-3px);
        border-color: #16181c;
        box-shadow: 0 16px 34px -16px rgba(0, 0, 0, .26);
        outline: none;
    }
}

.wz-card-photo[b-ouj42h6219] {
    position: relative;
    aspect-ratio: 4 / 3;
    background: linear-gradient(135deg, #f0f0f2, #e2e2e6);
    overflow: hidden;
}

.wz-card-photo > img[b-ouj42h6219] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .3s ease;
}

@media (hover: hover) {
    .wz-card:hover .wz-card-photo > img[b-ouj42h6219] {
        transform: scale(1.05);
    }
}

.wz-card-photo[b-ouj42h6219]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 46%;
    background: linear-gradient(to top, rgba(0, 0, 0, .42), transparent);
    pointer-events: none;
}

.wz-card-noimg[b-ouj42h6219] {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #aeb0b5;
}

.wz-status[b-ouj42h6219] {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    background: #efeff1;
    color: #4b5563;
}

.wz-status--ausgegeben[b-ouj42h6219] { background: #16181c; color: #fff; }
.wz-status--reparatur[b-ouj42h6219] { background: #fef3da; color: #b45309; }
.wz-status--defekt[b-ouj42h6219],
.wz-status--verloren[b-ouj42h6219] { background: #fde8e6; color: #b42318; }

.wz-card-status[b-ouj42h6219] {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .16);
}

.wz-card-info[b-ouj42h6219] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding: .85rem .9rem .95rem;
}

.wz-card-title[b-ouj42h6219] {
    font-weight: 700;
    font-size: 1.02rem;
    color: #16181c;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wz-card-meta[b-ouj42h6219] {
    font-size: .82rem;
    color: #80858d;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wz-card-person[b-ouj42h6219] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .8rem;
    color: #3c4148;
    min-width: 0;
}

.wz-card-person > span[b-ouj42h6219] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wz-card-person svg[b-ouj42h6219] { flex: 0 0 auto; color: #80858d; }

.wz-chips[b-ouj42h6219] { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .2rem; }

.wz-chip[b-ouj42h6219] {
    display: inline-flex;
    align-items: center;
    padding: .12rem .45rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 600;
    border: 1px solid transparent;
    white-space: nowrap;
}

.wz-chip--rot[b-ouj42h6219] { background: #fde8e6; color: #b42318; border-color: #f5c2bd; }
.wz-chip--gelb[b-ouj42h6219] { background: #fef3da; color: #b45309; border-color: #f6dca0; }

/* -- Journal: Zeitstrahl pro Tag ------------------------------------------- */
.wz-jtl[b-ouj42h6219] { padding: 2px 2px 12px; }

.wz-jtl-day[b-ouj42h6219] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #9aa0a8;
    padding: 13px 2px 7px;
}

.wz-jtl-day[b-ouj42h6219]::after { content: ""; flex: 1; height: 1px; background: #e4e4e7; }

.wz-jtl-group[b-ouj42h6219] { position: relative; display: flex; flex-direction: column; gap: 8px; }
.wz-jtl-group[b-ouj42h6219]::before { content: ""; position: absolute; left: 6px; top: 28px; bottom: 28px; width: 2px; background: #e1e1e4; }

.wz-jtl-row[b-ouj42h6219] { display: flex; gap: 13px; border-radius: 13px; }
.wz-jtl-row--link[b-ouj42h6219] { cursor: pointer; }
.wz-jtl-row:focus-visible[b-ouj42h6219] { outline: none; }

.wz-jtl-rail[b-ouj42h6219] { position: relative; width: 14px; flex: 0 0 auto; display: flex; justify-content: center; }
.wz-jtl-dot[b-ouj42h6219] {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    margin-top: 23px;
    box-shadow: 0 0 0 3px #f5f5f7;
    background: #b4b9c0;
    flex: 0 0 auto;
}

.wz-jtl-dot--out[b-ouj42h6219] { background: #16181c; }
.wz-jtl-dot--in[b-ouj42h6219] { background: #1f9d52; }
.wz-jtl-dot--rep[b-ouj42h6219] { background: #e0930a; }
.wz-jtl-dot--def[b-ouj42h6219] { background: #c0392b; }
.wz-jtl-dot--ver[b-ouj42h6219] { background: #5a6069; }
.wz-jtl-dot--new[b-ouj42h6219] { background: #5a6069; }
.wz-jtl-dot--chg[b-ouj42h6219] { background: #b45309; }

.wz-jtl-node[b-ouj42h6219] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 12px;
    border: 1px solid #ededf0;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 6px 18px -16px rgba(0, 0, 0, .2);
    transition: border-color .14s, box-shadow .14s, transform .12s;
}

.wz-jtl-row:focus-visible .wz-jtl-node[b-ouj42h6219] {
    border-color: #16181c;
    transform: translateY(-1px);
    box-shadow: 0 12px 24px -18px rgba(0, 0, 0, .3);
}

@media (hover: hover) {
    .wz-jtl-row--link:hover .wz-jtl-node[b-ouj42h6219] {
        border-color: #16181c;
        transform: translateY(-1px);
        box-shadow: 0 12px 24px -18px rgba(0, 0, 0, .3);
    }
}

.wz-jtl-av[b-ouj42h6219] {
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    border-radius: 11px;
    overflow: hidden;
    background: #e6e6e9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #8a909a;
    font-size: 0.78rem;
    font-weight: 900;
}

.wz-jtl-av img[b-ouj42h6219] { width: 100%; height: 100%; object-fit: cover; display: block; }

.wz-jtl-mid[b-ouj42h6219] { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.wz-jtl-name[b-ouj42h6219] { font-size: 0.92rem; font-weight: 800; color: #16181c; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wz-jtl-evt[b-ouj42h6219] { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 0.81rem; color: #80858d; }
.wz-jtl-txt--in[b-ouj42h6219] { color: #1f7a3d; font-weight: 700; }
.wz-jtl-arr[b-ouj42h6219] { color: #c2c5ca; font-weight: 800; }
.wz-jtl-by[b-ouj42h6219] { color: #a7adb6; }
.wz-jtl-time[b-ouj42h6219] { flex: 0 0 auto; font-size: 0.78rem; color: #9aa0a8; font-variant-numeric: tabular-nums; }

.wz-jchip[b-ouj42h6219] { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 7px; font-size: 0.72rem; font-weight: 800; white-space: nowrap; }
.wz-jchip--lager[b-ouj42h6219] { background: #e7f4ec; color: #1f7a3d; }
.wz-jchip--rep[b-ouj42h6219] { background: #fdf4e3; color: #b45309; }
.wz-jchip--def[b-ouj42h6219] { background: #fdecea; color: #c0392b; }
.wz-jchip--ver[b-ouj42h6219] { background: #eef0f2; color: #5a6069; }
.wz-jchip--out[b-ouj42h6219] { background: #e8e8ea; color: #16181c; }

/* -- Leerzustand ----------------------------------------------------------- */
.wz-empty[b-ouj42h6219] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 56px 20px;
    color: #80858d;
    text-align: center;
}

.wz-empty svg[b-ouj42h6219] { color: #c4c8ce; }
.wz-empty p[b-ouj42h6219] { margin: 0; font-size: 0.96rem; font-weight: 600; }

/* -- Inhaltsbreite an /lager + /fleet angleichen (1280px zentriert) -------- */
.wz-header[b-ouj42h6219],
.wz-toolbar[b-ouj42h6219],
.wz-summary[b-ouj42h6219],
.wz-listwrap[b-ouj42h6219],
.wz-journalwrap[b-ouj42h6219] {
    width: 100%;
    max-width: 1280px;
    margin-inline: auto;
}

/* -- Responsiv ------------------------------------------------------------- */
@media (max-width: 720px) {
    .wz-new-btn[b-ouj42h6219] { margin-left: 0; }
}

@media (max-width: 520px) {
    .wz-header[b-ouj42h6219] { align-items: flex-start; }
    .wz-viewswitch[b-ouj42h6219] { width: 100%; }
    .wz-pill[b-ouj42h6219] { flex: 1 1 0; justify-content: center; }
}

/* ===============================================================
   Sortieren & Filtern — Button + Popover, Look 1:1 wie /lager.
=============================================================== */
.sort-filter-wrap[b-ouj42h6219] {
    position: relative;
    flex: 0 0 auto;
}

.sort-filter-backdrop[b-ouj42h6219] {
    position: fixed;
    inset: 0;
    z-index: 70;
    border: 0;
    background: transparent;
    cursor: default;
}

.btn-sort-filter[b-ouj42h6219] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    min-width: 40px;
    height: 40px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #fff;
    color: #3c4148;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    padding: 0;
    cursor: pointer;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

    @media (hover: hover) {
        .btn-sort-filter:hover[b-ouj42h6219] {
            border-color: #e4e4e7;
            background: #efeff1;
            color: #16181c;
        }
    }

    .btn-sort-filter--open[b-ouj42h6219],
    .btn-sort-filter--active[b-ouj42h6219] {
        border-color: #16181c;
        background: #16181c;
        color: #fff;
    }

    @media (hover: hover) {
        .btn-sort-filter--open:hover[b-ouj42h6219],
        .btn-sort-filter--active:hover[b-ouj42h6219] {
            border-color: #26282e;
            background: #26282e;
            color: #fff;
        }
    }

.sort-filter-popover[b-ouj42h6219] {
    position: absolute;
    top: 48px;
    right: 0;
    z-index: 80;
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    width: min(420px, calc(100vw - 24px));
    max-width: calc(100vw - 24px);
    height: min(296px, calc(100dvh - 24px));
    max-height: calc(100dvh - 24px);
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 18px 52px rgba(28,28,30,0.18);
    overflow: hidden;
}

.sort-filter-popover--crm[b-ouj42h6219] {
    right: auto;
    left: 0;
}

.sort-filter-pane[b-ouj42h6219] {
    display: flex;
    flex-direction: column;
    padding: 11px;
    min-height: 0;
    overflow: hidden;
}

.sort-filter-pane--sort[b-ouj42h6219] {
    border-right: 1px solid #ededf2;
    background: #fbfbfd;
    overflow: hidden;
}

.sort-filter-title[b-ouj42h6219] {
    display: flex;
    align-items: center;
    min-height: 28px;
    margin-bottom: 10px;
    color: #80858d;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.sort-filter-title-row[b-ouj42h6219] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 28px;
    margin-bottom: 10px;
}

    .sort-filter-title-row .sort-filter-title[b-ouj42h6219] {
        margin-bottom: 0;
    }

.filter-clear-button[b-ouj42h6219] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    min-height: 28px;
    border: 1px solid #ffd7d4;
    border-radius: 9px;
    background: #fff7f6;
    color: #e2483b;
    font: inherit;
    font-size: 11px;
    font-weight: 900;
    padding: 0;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}

    @media (hover: hover) {
        .filter-clear-button:hover[b-ouj42h6219] {
            border-color: #e2483b;
            background: #fff0ef;
        }
    }

.sort-option-group[b-ouj42h6219] {
    display: grid;
    gap: 3px;
    padding: 4px;
    border: 1px solid #ededf2;
    border-radius: 11px;
    background: #fff;
}

.sort-option-group + .sort-option-group[b-ouj42h6219] {
    margin-top: 7px;
}

.sort-option[b-ouj42h6219] {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 30px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #3c4148;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    text-align: left;
    padding: 0 9px;
    cursor: pointer;
}

    .sort-option--active[b-ouj42h6219] {
        background: #efeff1;
        color: #16181c;
    }

    @media (hover: hover) {
        .sort-option:hover[b-ouj42h6219] {
            background: #efeff1;
            color: #16181c;
        }
    }

.date-mode-switch[b-ouj42h6219] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    margin-bottom: 8px;
    padding: 3px;
    border-radius: 999px;
    background: #efeff1;
}

.date-mode[b-ouj42h6219] {
    min-height: 26px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #3c4148;
    font: inherit;
    font-size: 11px;
    font-weight: 900;
    cursor: pointer;
}

    .date-mode--active[b-ouj42h6219] {
        background: #fff;
        color: #16181c;
        box-shadow: 0 1px 4px rgba(0,0,0,0.08);
    }

.filter-step-list[b-ouj42h6219] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding-right: 2px;
}

.filter-step-button[b-ouj42h6219] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 34px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #fff;
    color: #16181c;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    padding: 0 12px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

    @media (hover: hover) {
        .filter-step-button:hover[b-ouj42h6219] {
            border-color: #16181c;
            background: #efeff1;
            color: #16181c;
        }
    }

.filter-step-header[b-ouj42h6219] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    color: #16181c;
    font-size: 13px;
    font-weight: 900;
}

.filter-back-button[b-ouj42h6219] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 28px;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #3c4148;
    font: inherit;
    font-size: 12px;
    font-weight: 900;
    padding: 0 8px 0 6px;
    cursor: pointer;
}

    @media (hover: hover) {
        .filter-back-button:hover[b-ouj42h6219] {
            border-color: #16181c;
            color: #16181c;
        }
    }

.filter-step-list--months[b-ouj42h6219] {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-content: start;
    gap: 6px;
    overflow-x: hidden;
    overflow-y: auto;
}

.filter-step-list--months .filter-all-check[b-ouj42h6219] {
    grid-column: 1 / -1;
}

.filter-all-check[b-ouj42h6219] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    gap: 8px;
    padding: 0 12px;
    border: 1px solid #e4e4e7;
    background: #fff;
    border-radius: 9px;
    min-height: 32px;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    color: #16181c;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

    .filter-all-check--active[b-ouj42h6219] {
        border-color: #16181c;
        background: #efeff1;
        color: #16181c;
    }

    @media (hover: hover) {
        .filter-all-check:hover[b-ouj42h6219] {
            border-color: #16181c;
            background: #efeff1;
            color: #16181c;
        }
    }

    .filter-all-check input[b-ouj42h6219] {
        width: 14px;
        height: 14px;
        accent-color: #16181c;
        flex-shrink: 0;
    }

    .filter-all-check span[b-ouj42h6219] {
        line-height: 1;
    }

.filter-month[b-ouj42h6219] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-width: 0;
    min-height: 30px;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #3c4148;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    gap: 6px;
    padding: 0 9px;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.filter-month span[b-ouj42h6219] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

    .filter-month input[b-ouj42h6219] {
        width: 12px;
        height: 12px;
        accent-color: #3c4148;
        flex-shrink: 0;
    }

    @media (hover: hover) {
        .filter-month:hover[b-ouj42h6219] {
            border-color: #d4d4d8;
            background: #efeff1;
            color: #16181c;
        }
    }

    .filter-month--active[b-ouj42h6219] {
        border-color: #16181c;
        background: #efeff1;
        color: #16181c;
    }

/* -- Mobil: Sortier-/Filter-Popover über die volle Toolbar-Breite unter dem
   Button — statt am 40px-Button-Wrap zu kleben und aus dem Viewport zu ragen. */
@media (max-width: 600px) {
    .wz-toolbar[b-ouj42h6219] { position: relative; }
    .sort-filter-wrap[b-ouj42h6219] { position: static; }

    .sort-filter-popover[b-ouj42h6219],
    .sort-filter-popover--crm[b-ouj42h6219] {
        top: calc(100% + 6px);
        left: 0;
        right: 0;
        width: auto;
        max-width: none;
    }
}
/* /Components/Pages/Users/Users.razor.rz.scp.css */
.users-page[b-dwyj1hxv9s] {
    /* 100dvh statt 100vh (100vh bleibt Fallback): auf iPad/iOS ist 100vh die große
       Viewport-Höhe — sonst ließe sich der Header um die Safari-Leiste wegscrollen. */
    height: calc(100vh - var(--app-header-h));
    height: calc(100dvh - var(--app-header-h));
    padding: 28px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    color: #16181c;
    background: #f5f5f7;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.users-sr-only[b-dwyj1hxv9s] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.users-header[b-dwyj1hxv9s] {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto 18px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}

.users-header-actions[b-dwyj1hxv9s] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.users-header-btn[b-dwyj1hxv9s] {
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 0 12px;
    color: #16181c;
    background: #ffffff;
    font: inherit;
    font-size: 0.86rem;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    transition: border-color 0.15s, background 0.15s, transform 0.12s;
}

.users-header-btn:focus-visible[b-dwyj1hxv9s] {
    border-color: #16181c;
    background: #efeff1;
    outline: none;
    transform: translateY(-1px);
}

@media (hover: hover) {
    .users-header-btn:hover[b-dwyj1hxv9s] {
        border-color: #16181c;
        background: #efeff1;
        outline: none;
        transform: translateY(-1px);
    }
}

.users-kicker[b-dwyj1hxv9s] {
    color: #80858d;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.users-header h1[b-dwyj1hxv9s] {
    margin: 3px 0 0;
    color: #16181c;
    font-size: 1.72rem;
    font-weight: 800;
}

.users-alert[b-dwyj1hxv9s] {
    max-width: 1020px;
    margin: 0 auto 14px;
    border-radius: 11px;
    padding: 11px 13px;
    font-size: 0.92rem;
    font-weight: 500;
}

.users-alert--success[b-dwyj1hxv9s] {
    color: #248a3d;
    background: #edfaf1;
    border: 1px solid #c7f0d1;
}

.users-alert--error[b-dwyj1hxv9s] {
    color: #ff3b30;
    background: #fff0ef;
    border: 1px solid #ffccc9;
}

.users-grid[b-dwyj1hxv9s] {
    max-width: 1020px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(280px, 330px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

/* -- Schwarze CTA-Karte: der einzige Einstieg zum Anlegen (öffnet den Wizard). */
.users-create-btn[b-dwyj1hxv9s] {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 12px;
    border: none;
    border-radius: 16px;
    padding: 14px 16px;
    color: white;
    background: #16181c;
    font: inherit;
    text-align: left;
    cursor: pointer;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .38);
    transition: opacity 0.18s, transform 0.12s, box-shadow 0.18s;
}

.users-create-btn:focus-visible[b-dwyj1hxv9s] {
    opacity: 0.92;
    transform: translateY(-1px);
    outline: none;
}

@media (hover: hover) {
    .users-create-btn:hover[b-dwyj1hxv9s] {
        opacity: 0.92;
        transform: translateY(-1px);
        outline: none;
    }
}

.users-create-btn-icon[b-dwyj1hxv9s] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: white;
    background: rgba(255, 255, 255, 0.14);
}

.users-create-btn-text[b-dwyj1hxv9s] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.users-create-btn-text strong[b-dwyj1hxv9s] {
    font-size: 0.95rem;
    font-weight: 800;
}

.users-create-btn-text > span[b-dwyj1hxv9s] {
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.76rem;
    font-weight: 650;
}

.users-create-btn-chevron[b-dwyj1hxv9s] {
    color: rgba(255, 255, 255, 0.55);
    flex-shrink: 0;
}

.users-card-icon[b-dwyj1hxv9s] {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    color: #16181c;
    background: #efeff1;
    flex-shrink: 0;
}

.users-field[b-dwyj1hxv9s] {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.users-field span[b-dwyj1hxv9s] {
    color: #3c4148;
    font-size: 0.84rem;
    font-weight: 650;
}

.users-field input[b-dwyj1hxv9s],
.users-field select[b-dwyj1hxv9s] {
    width: 100%;
    height: 42px;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 0 12px;
    color: #16181c;
    background: #ffffff;
    font: inherit;
    transition: border-color 0.15s, background 0.15s;
}

.users-field select[b-dwyj1hxv9s] {
    cursor: pointer;
}

.users-field input:focus[b-dwyj1hxv9s],
.users-field select:focus[b-dwyj1hxv9s] {
    border-color: #16181c;
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.users-field input:disabled[b-dwyj1hxv9s],
.users-field select:disabled[b-dwyj1hxv9s] {
    color: #80858d;
    background: #f5f5f7;
}

.users-hint[b-dwyj1hxv9s] {
    margin: 0;
    color: #80858d;
    font-size: 0.88rem;
    line-height: 1.42;
}

.users-submit[b-dwyj1hxv9s] {
    min-height: 44px;
    border: none;
    border-radius: 11px;
    color: white;
    background: #16181c;
    font: inherit;
    font-weight: 750;
    cursor: pointer;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    transition: opacity 0.18s, transform 0.12s, box-shadow 0.18s;
}

@media (hover: hover) {
    .users-submit:hover[b-dwyj1hxv9s] {
        opacity: 0.9;
        transform: translateY(-1px);
        box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    }
}

.users-directory[b-dwyj1hxv9s] {
    position: relative;
    overflow: visible;
}

.users-list-toolbar[b-dwyj1hxv9s] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border-bottom: 1px solid #e4e4e7;
    border-radius: 14px 14px 0 0;
    background: #ffffff;
}

.users-search[b-dwyj1hxv9s] {
    min-width: 0;
    height: 42px;
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 0 10px 0 12px;
    background: white;
    transition: border-color 0.15s, background 0.15s;
}

.users-search:focus-within[b-dwyj1hxv9s] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.users-search-icon[b-dwyj1hxv9s] {
    color: #80858d;
    flex-shrink: 0;
}

.users-search input[b-dwyj1hxv9s] {
    min-width: 0;
    flex: 1;
    border: none;
    outline: none;
    color: #16181c;
    background: transparent;
    font: inherit;
    font-size: 0.92rem;
    font-weight: 600;
}

.users-search input[b-dwyj1hxv9s]::placeholder {
    color: #80858d;
}

.users-search-clear[b-dwyj1hxv9s] {
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: none;
    border-radius: 50%;
    padding: 0;
    color: #80858d;
    background: #efeff1;
    font: inherit;
    font-size: 0.72rem;
    font-weight: 850;
    cursor: pointer;
}

.users-search-clear:focus-visible[b-dwyj1hxv9s] {
    color: #16181c;
    background: #e7e7ea;
    outline: none;
}

@media (hover: hover) {
    .users-search-clear:hover[b-dwyj1hxv9s] {
        color: #16181c;
        background: #e7e7ea;
        outline: none;
    }
}

.users-filter-wrap[b-dwyj1hxv9s] {
    position: relative;
}

.users-filter-backdrop[b-dwyj1hxv9s] {
    position: fixed;
    inset: 0;
    z-index: 40;
    border: none;
    padding: 0;
    background: transparent;
    cursor: default;
}

.users-filter-button[b-dwyj1hxv9s] {
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 0 13px;
    color: #16181c;
    background: #ffffff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    font: inherit;
    font-size: 0.86rem;
    font-weight: 800;
    white-space: nowrap;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.12s, background 0.15s;
}

.users-filter-button:focus-visible[b-dwyj1hxv9s] {
    border-color: #16181c;
    background: #efeff1;
    color: #16181c;
    outline: none;
    transform: translateY(-1px);
}

@media (hover: hover) {
    .users-filter-button:hover[b-dwyj1hxv9s] {
        border-color: #16181c;
        background: #efeff1;
        color: #16181c;
        outline: none;
        transform: translateY(-1px);
    }
}

.users-filter-button--open[b-dwyj1hxv9s] {
    border-color: #16181c;
    background: #16181c;
    color: #ffffff;
    outline: none;
    transform: translateY(-1px);
}

.users-filter-menu[b-dwyj1hxv9s] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 50;
    width: 230px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 7px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .26), 0 6px 14px -10px rgba(0, 0, 0, .12);
}

.users-filter-option[b-dwyj1hxv9s] {
    min-height: 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: none;
    border-radius: 10px;
    padding: 0 10px;
    color: #3c4148;
    background: transparent;
    font: inherit;
    font-size: 0.88rem;
    font-weight: 750;
    cursor: pointer;
    text-align: left;
}

.users-filter-option strong[b-dwyj1hxv9s] {
    min-width: 28px;
    border-radius: 999px;
    padding: 3px 8px;
    color: #80858d;
    background: #efeff1;
    font-size: 0.75rem;
    text-align: center;
}

.users-filter-option:focus-visible[b-dwyj1hxv9s] {
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .users-filter-option:hover[b-dwyj1hxv9s] {
        color: #16181c;
        background: #efeff1;
        outline: none;
    }
}

.users-filter-option--active[b-dwyj1hxv9s] {
    color: #16181c;
    background: #efeff1;
}

.users-filter-option--active strong[b-dwyj1hxv9s] {
    color: white;
    background: #16181c;
}

.users-search-count[b-dwyj1hxv9s] {
    color: #80858d;
    font-size: 0.72rem;
    font-weight: 750;
    white-space: nowrap;
}

.users-list[b-dwyj1hxv9s] {
    overflow: hidden;
    border-radius: 0 0 14px 14px;
}

.users-empty[b-dwyj1hxv9s] {
    min-height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    color: #80858d;
    font-size: 0.92rem;
    font-weight: 650;
    text-align: center;
}

.user-row[b-dwyj1hxv9s] {
    min-height: 70px;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid #e4e4e7;
    transition: border-color 0.15s, background 0.15s;
}

.user-row:last-child[b-dwyj1hxv9s] {
    border-bottom: none;
}

@media (hover: hover) {
    .user-row:hover[b-dwyj1hxv9s] {
        background: #efeff1;
    }
}

.user-avatar-wrap[b-dwyj1hxv9s],
.users-modal-avatar-wrap[b-dwyj1hxv9s] {
    position: relative;
    width: max-content;
}

.user-avatar[b-dwyj1hxv9s] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 50%;
    color: white;
    background: #16181c;
    font-family: 'Quicksand', sans-serif;
    font-size: 0.98rem;
    font-weight: 700;
}

.user-status-dot[b-dwyj1hxv9s] {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 13px;
    height: 13px;
    border: 2px solid #ffffff;
    border-radius: 999px;
    box-shadow: 0 0 0 1px rgba(28, 28, 30, 0.08);
}

.user-status-dot--active[b-dwyj1hxv9s] {
    background: #34c759;
}

.user-status-dot--warn[b-dwyj1hxv9s] {
    background: #ff9500;
}

.user-status-dot--inactive[b-dwyj1hxv9s] {
    background: #ff3b30;
}

.user-main[b-dwyj1hxv9s] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.user-name-line[b-dwyj1hxv9s] {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.user-protected-icon[b-dwyj1hxv9s] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    color: #d92d20;
}

.user-name[b-dwyj1hxv9s] {
    color: #16181c;
    font-size: 0.96rem;
    font-weight: 750;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-meta[b-dwyj1hxv9s] {
    color: #80858d;
    font-size: 0.82rem;
    font-weight: 600;
}

.user-department-chip[b-dwyj1hxv9s] {
    --badge-color: #16181c;
    --badge-text: #16181c;
    width: fit-content;
    min-height: 24px;
    display: inline-flex;
    align-items: center;
    border: 1px solid color-mix(in srgb, var(--badge-color) 26%, white);
    border-radius: 999px;
    padding: 0 9px;
    color: var(--badge-text);
    background: color-mix(in srgb, var(--badge-color) 9%, white);
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.user-actions[b-dwyj1hxv9s] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.user-action-btn[b-dwyj1hxv9s] {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 0;
    color: #3c4148;
    background: white;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s, transform 0.12s;
}

.user-action-btn svg[b-dwyj1hxv9s] {
    width: 21px;
    height: 21px;
}

.user-action-btn:focus-visible[b-dwyj1hxv9s] {
    border-color: #16181c;
    color: #16181c;
    background: #efeff1;
    outline: none;
    transform: translateY(-1px);
}

@media (hover: hover) {
    .user-action-btn:hover[b-dwyj1hxv9s] {
        border-color: #16181c;
        color: #16181c;
        background: #efeff1;
        outline: none;
        transform: translateY(-1px);
    }
}

.user-self[b-dwyj1hxv9s] {
    color: #3c4148;
    background: #efeff1;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 4px 9px;
    font-size: 0.76rem;
    font-weight: 700;
    white-space: nowrap;
}

.user-badge[b-dwyj1hxv9s] {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    border-radius: 999px;
    padding: 0 10px;
    font-size: 0.72rem;
    font-weight: 800;
}

.user-badge--self[b-dwyj1hxv9s] {
    color: #3c4148;
    background: #efeff1;
}

.users-modal-top[b-dwyj1hxv9s] {
    display: grid;
    grid-template-columns: minmax(250px, 0.9fr) minmax(360px, 1.1fr);
    gap: 18px;
    align-items: stretch;
    padding-right: 46px;
}

.users-modal-header[b-dwyj1hxv9s] {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
}

.users-modal-icon[b-dwyj1hxv9s] {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    /* Rund wie alle anderen Avatar-Stellen (Profilbild-Konsistenz). */
    border-radius: 50%;
    color: white;
    background: #16181c;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    font-family: 'Quicksand', sans-serif;
    font-size: 1.38rem;
    font-weight: 700;
}

.users-modal-status-dot[b-dwyj1hxv9s] {
    /* Leicht eingerückt, damit der Punkt am Kreisrand sitzt (Avatar ist rund). */
    right: 1px;
    bottom: 1px;
    width: 16px;
    height: 16px;
    border-width: 3px;
}

.users-modal-title[b-dwyj1hxv9s] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.users-modal-title-main[b-dwyj1hxv9s] {
    min-width: 0;
}

.users-modal-kicker[b-dwyj1hxv9s] {
    display: block;
    margin-bottom: 3px;
    color: #80858d;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.users-modal-header h2[b-dwyj1hxv9s] {
    margin: 0;
    color: #16181c;
    font-size: 1.45rem;
    font-weight: 800;
    line-height: 1.1;
    overflow-wrap: anywhere;
}

.users-modal-name-line[b-dwyj1hxv9s] {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    width: fit-content;
}

.users-modal-name-line span[b-dwyj1hxv9s] {
    min-width: 0;
}

.users-modal-context[b-dwyj1hxv9s] {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.users-modal-chip[b-dwyj1hxv9s] {
    min-height: 25px;
    display: inline-flex;
    align-items: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0 9px;
    color: #3c4148;
    background: #efeff1;
    font-size: 0.74rem;
    font-weight: 800;
    white-space: nowrap;
}

.users-modal-chip--active[b-dwyj1hxv9s] {
    color: #1f7a36;
    background: #edfaf1;
    border-color: #c7f0d1;
}

.users-modal-chip--warn[b-dwyj1hxv9s] {
    color: #9a5a00;
    background: #fff7e8;
    border-color: #ffdba1;
}

.users-modal-chip--inactive[b-dwyj1hxv9s],
.users-modal-chip--locked[b-dwyj1hxv9s] {
    color: #b42318;
    background: #fff0ef;
    border-color: #ffccc9;
}

.users-modal-chip--department[b-dwyj1hxv9s] {
    --badge-color: #16181c;
    --badge-text: #16181c;
    color: var(--badge-text);
    background: color-mix(in srgb, var(--badge-color) 9%, white);
    border-color: color-mix(in srgb, var(--badge-color) 24%, white);
}

.users-modal-protected-icon[b-dwyj1hxv9s] {
    width: 24px;
    height: 24px;
    filter: drop-shadow(0 4px 8px rgba(217, 45, 32, 0.16));
}

.users-modal-badges[b-dwyj1hxv9s] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.users-modal-meta[b-dwyj1hxv9s] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    background: #f5f5f7;
}

.users-modal-meta div[b-dwyj1hxv9s] {
    min-width: 0;
    padding: 13px 14px;
    border-right: 1px solid #e4e4e7;
}

.users-modal-meta div:last-child[b-dwyj1hxv9s] {
    border-right: none;
}

.users-modal-meta span[b-dwyj1hxv9s] {
    display: block;
    margin-bottom: 4px;
    color: #80858d;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.users-modal-meta strong[b-dwyj1hxv9s] {
    display: block;
    color: #16181c;
    font-size: 0.9rem;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.users-modal-header-side[b-dwyj1hxv9s] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.users-modal-preview-btn[b-dwyj1hxv9s] {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 0;
    color: #3c4148;
    background: white;
    text-decoration: none;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

.users-modal-preview-btn:focus-visible[b-dwyj1hxv9s] {
    border-color: #16181c;
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .users-modal-preview-btn:hover[b-dwyj1hxv9s] {
        border-color: #16181c;
        color: #16181c;
        background: #efeff1;
        outline: none;
    }
}

.users-modal-workspace[b-dwyj1hxv9s] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    overflow: visible;
    background: transparent;
}

.users-modal-action--permissions[b-dwyj1hxv9s] {
    grid-column: span 2;
    height: 264px;
    overflow: hidden;
}

.users-modal-action--permissions .users-modal-action-main[b-dwyj1hxv9s],
.users-modal-action--permissions .users-modal-action-content[b-dwyj1hxv9s] {
    height: 100%;
    min-height: 0;
}

.users-modal-action--permissions .users-modal-action-title[b-dwyj1hxv9s] {
    display: grid;
    grid-template-columns: auto minmax(140px, 260px) auto;
    align-items: start;
    justify-content: stretch;
    gap: 8px;
}

.users-modal-action--permissions .users-info-btn[b-dwyj1hxv9s] {
    justify-self: end;
    align-self: start;
}

.users-modal-action[b-dwyj1hxv9s] {
    position: relative;
    min-width: 0;
    min-height: 168px;
    padding: 12px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: white;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

.users-modal-action:first-child[b-dwyj1hxv9s] {
    border-radius: 12px;
}

.users-modal-action:last-child[b-dwyj1hxv9s] {
    border-radius: 12px;
}

.users-modal-action:only-child[b-dwyj1hxv9s] {
    border-radius: 12px;
}

.users-modal-action--identity[b-dwyj1hxv9s] {
    background: white;
}

.users-modal-action-main[b-dwyj1hxv9s] {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
}

.users-modal-action-content[b-dwyj1hxv9s] {
    position: relative;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.users-modal-action-title[b-dwyj1hxv9s] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.users-modal-section-icon[b-dwyj1hxv9s] {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    color: #16181c;
    background: #efeff1;
    flex-shrink: 0;
}

.users-modal-section-icon svg[b-dwyj1hxv9s] {
    width: 17px;
    height: 17px;
}

.users-modal-action h3[b-dwyj1hxv9s] {
    margin: 0;
    color: #16181c;
    font-size: 0.9rem;
    font-weight: 750;
}

.users-info-btn[b-dwyj1hxv9s] {
    width: 23px;
    height: 23px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    padding: 0;
    color: #3c4148;
    background: transparent;
    cursor: pointer;
    flex-shrink: 0;
}

.users-info-btn svg[b-dwyj1hxv9s] {
    width: 22px;
    height: 22px;
}

.users-info-btn:focus-visible[b-dwyj1hxv9s] {
    color: #16181c;
    background: transparent;
    outline: none;
}

@media (hover: hover) {
    .users-info-btn:hover[b-dwyj1hxv9s] {
        color: #16181c;
        background: transparent;
        outline: none;
    }
}

.users-info-popover[b-dwyj1hxv9s] {
    position: absolute;
    top: 32px;
    right: 0;
    z-index: 2;
    width: min(300px, 100%);
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    padding: 14px 36px 14px 14px;
    color: #16181c;
    background: #f5f5f7;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .26), 0 6px 14px -10px rgba(0, 0, 0, .12);
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.35;
}

.users-info-popover--wide[b-dwyj1hxv9s] {
    width: min(520px, 100%);
}

.users-info-popover span[b-dwyj1hxv9s] {
    display: block;
}

.users-info-popover span + span[b-dwyj1hxv9s] {
    margin-top: 6px;
}

.users-info-popover strong[b-dwyj1hxv9s] {
    display: block;
    color: #16181c;
    font-weight: 750;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.users-info-popover strong + ul[b-dwyj1hxv9s],
.users-info-popover strong + span[b-dwyj1hxv9s] {
    margin-top: 6px;
}

.users-info-popover ul + strong[b-dwyj1hxv9s] {
    margin-top: 10px;
}

.users-info-legend[b-dwyj1hxv9s] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.users-info-legend li[b-dwyj1hxv9s] {
    display: grid;
    grid-template-columns: 14px 1fr;
    gap: 8px;
    align-items: start;
    font-weight: 600;
    line-height: 1.35;
}

.users-info-swatch[b-dwyj1hxv9s] {
    width: 12px;
    height: 12px;
    border-radius: 4px;
    margin-top: 4px;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.users-info-close[b-dwyj1hxv9s] {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 22px;
    height: 22px;
    border: none;
    border-radius: 50%;
    padding: 0;
    color: #80858d;
    background: rgba(255, 255, 255, 0.72);
    font: inherit;
    font-size: 0.72rem;
    font-weight: 800;
    cursor: pointer;
}

@media (hover: hover) {
    .users-info-close:hover[b-dwyj1hxv9s] {
        color: #16181c;
        background: white;
    }
}

.users-modal-control-row[b-dwyj1hxv9s] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 36px;
    gap: 7px;
    width: 100%;
    align-items: end;
}

.users-modal-control-stack[b-dwyj1hxv9s] {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.users-field--modal[b-dwyj1hxv9s] {
    width: 100%;
}

.users-modal-action .users-field[b-dwyj1hxv9s] {
    gap: 5px;
}

.users-modal-action .users-field span[b-dwyj1hxv9s] {
    font-size: 0.72rem;
    font-weight: 750;
}

.users-modal-action .users-field input[b-dwyj1hxv9s],
.users-modal-action .users-field select[b-dwyj1hxv9s] {
    height: 36px;
    border-radius: 9px;
    padding: 0 9px;
    font-size: 0.84rem;
    font-weight: 650;
}

.user-action-btn[b-dwyj1hxv9s] {
    text-decoration: none;
}

.users-departments-modal-header[b-dwyj1hxv9s] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    padding-right: 46px;
}

.users-departments-modal-header h2[b-dwyj1hxv9s] {
    margin: 0;
    color: #16181c;
    font-size: 1.35rem;
    font-weight: 850;
}

.users-departments-count[b-dwyj1hxv9s] {
    color: #80858d;
    font-size: 0.82rem;
    font-weight: 800;
    white-space: nowrap;
}

.users-departments-modal-grid[b-dwyj1hxv9s] {
    height: min(520px, calc(100vh - 250px));
    display: grid;
    grid-template-columns: minmax(260px, 0.75fr) minmax(0, 1.25fr);
    gap: 14px;
    align-items: stretch;
}

.users-department-create-panel[b-dwyj1hxv9s],
.users-departments-list[b-dwyj1hxv9s] {
    min-height: 0;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    background: white;
}

.users-department-create-panel[b-dwyj1hxv9s] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    overflow: hidden;
    padding: 16px;
}

.users-department-create-panel .users-submit[b-dwyj1hxv9s] {
    margin-top: auto;
}

.users-department-create-panel h3[b-dwyj1hxv9s] {
    margin: 0;
    color: #16181c;
    font-size: 1rem;
    font-weight: 800;
}

.users-color-field input[type="color"][b-dwyj1hxv9s] {
    width: 48px;
    height: 34px;
    flex-shrink: 0;
    border-radius: 9px;
    padding: 2px;
    cursor: pointer;
}

.users-color-control[b-dwyj1hxv9s] {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 38px;
}

.users-color-control > span[b-dwyj1hxv9s] {
    color: #80858d;
    font-size: 0.78rem;
    font-weight: 800;
}

.users-color-presets[b-dwyj1hxv9s] {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
}

.users-color-presets--compact[b-dwyj1hxv9s] {
    grid-template-columns: repeat(auto-fit, minmax(30px, 1fr));
    width: 100%;
}

.users-color-preset[b-dwyj1hxv9s] {
    --badge-color: #16181c;
    width: 100%;
    aspect-ratio: 1;
    min-width: 0;
    border: 2px solid #ffffff;
    border-radius: 9px;
    padding: 0;
    background: var(--badge-color);
    box-shadow: 0 0 0 1.5px #d1d1d6;
    cursor: pointer;
    transition: box-shadow 0.15s, transform 0.12s;
}

.users-color-preset:focus-visible[b-dwyj1hxv9s],
.users-color-preset--active[b-dwyj1hxv9s] {
    box-shadow: 0 0 0 2px var(--badge-text), 0 7px 16px color-mix(in srgb, var(--badge-color) 26%, transparent);
    outline: none;
    transform: translateY(-1px);
}

@media (hover: hover) {
    .users-color-preset:hover[b-dwyj1hxv9s] {
        box-shadow: 0 0 0 2px var(--badge-text), 0 7px 16px color-mix(in srgb, var(--badge-color) 26%, transparent);
        outline: none;
        transform: translateY(-1px);
    }
}

.users-departments-list[b-dwyj1hxv9s] {
    height: 100%;
    max-height: none;
    overflow: auto;
}

.users-department-row[b-dwyj1hxv9s] {
    min-height: 58px;
    display: grid;
    grid-template-columns: 28px 34px minmax(0, 1fr) auto;
    align-items: start;
    gap: 11px;
    padding: 12px 14px;
    border-bottom: 1px solid #e4e4e7;
}

.users-department-drag-handle[b-dwyj1hxv9s] {
    width: 28px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: #80858d;
    cursor: grab;
    touch-action: none;
}

@media (hover: hover) {
    .users-department-drag-handle:hover[b-dwyj1hxv9s] {
        color: #16181c;
        background: #efeff1;
    }
}

.users-department-row--drag-source[b-dwyj1hxv9s] {
    opacity: 0.35;
}

.users-department-row--drag-target[b-dwyj1hxv9s] {
    box-shadow: inset 0 0 0 2px rgba(22, 24, 28, 0.22);
    background: #efeff1;
}

.users-department-drag-ghost[b-dwyj1hxv9s] {
    position: fixed;
    z-index: 5000;
    pointer-events: none;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .26), 0 6px 14px -10px rgba(0, 0, 0, .12);
    opacity: 0.92;
}

.users-department-row:last-child[b-dwyj1hxv9s] {
    border-bottom: none;
}

.users-department-row--delete[b-dwyj1hxv9s] {
    margin: 8px;
    border: 1.5px solid #ffccc9;
    border-radius: 12px;
    padding: 12px;
    background: #fff0ef;
}

.users-department-row-color[b-dwyj1hxv9s] {
    --badge-color: #16181c;
    --badge-text: #16181c;
    width: 28px;
    height: 28px;
    border-radius: 10px;
    background: var(--badge-color);
    box-shadow: 0 8px 18px color-mix(in srgb, var(--badge-color) 28%, transparent);
}

.users-department-row-main[b-dwyj1hxv9s] {
    min-width: 0;
}

.users-department-row strong[b-dwyj1hxv9s],
.users-department-row-main > span[b-dwyj1hxv9s] {
    display: block;
}

.users-department-row strong[b-dwyj1hxv9s] {
    color: #16181c;
    font-size: 0.94rem;
    font-weight: 850;
    overflow-wrap: anywhere;
}

.users-department-row-main > span[b-dwyj1hxv9s] {
    margin-top: 2px;
    color: #80858d;
    font-size: 0.76rem;
    font-weight: 750;
}

.users-department-row-actions[b-dwyj1hxv9s] {
    display: inline-flex;
    gap: 6px;
}

.users-icon-btn[b-dwyj1hxv9s] {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    padding: 0;
    color: #3c4148;
    background: white;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s, transform 0.12s;
}

.users-icon-btn:focus-visible[b-dwyj1hxv9s] {
    border-color: #16181c;
    color: #16181c;
    background: #efeff1;
    outline: none;
    transform: translateY(-1px);
}

@media (hover: hover) {
    .users-icon-btn:hover[b-dwyj1hxv9s] {
        border-color: #16181c;
        color: #16181c;
        background: #efeff1;
        outline: none;
        transform: translateY(-1px);
    }
}

.users-icon-btn--danger:focus-visible[b-dwyj1hxv9s] {
    border-color: #ffccc9;
    color: #b42318;
    background: #fff0ef;
}

@media (hover: hover) {
    .users-icon-btn--danger:hover[b-dwyj1hxv9s] {
        border-color: #ffccc9;
        color: #b42318;
        background: #fff0ef;
    }
}

.users-department-edit[b-dwyj1hxv9s] {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 12px;
    background: #f5f5f7;
}

.users-department-edit-grid[b-dwyj1hxv9s] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(130px, 160px);
    gap: 10px;
    align-items: end;
}

.users-department-edit-actions[b-dwyj1hxv9s],
.users-department-delete-actions[b-dwyj1hxv9s] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.users-department-delete-warning[b-dwyj1hxv9s] {
    margin-top: 9px;
    border: 1px solid #ffd8d3;
    border-radius: 11px;
    padding: 10px;
    color: #7a271a;
    background: rgba(255, 255, 255, 0.62);
    font-size: 0.8rem;
    font-weight: 750;
}

.users-department-delete-warning > span[b-dwyj1hxv9s] {
    display: block;
    margin-bottom: 8px;
}

.users-danger-confirm[b-dwyj1hxv9s] {
    min-height: 34px;
    border: none;
    border-radius: 9px;
    padding: 0 11px;
    color: white;
    background: #d92d20;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 850;
    cursor: pointer;
}

.users-danger-confirm:disabled[b-dwyj1hxv9s] {
    color: #7a271a;
    background: #ffd8d3;
    cursor: not-allowed;
}

.users-day-hours-panel[b-dwyj1hxv9s] {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.users-day-hours-grid[b-dwyj1hxv9s] {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 4px;
}

.users-day-hours-field[b-dwyj1hxv9s] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.users-day-hours-field span[b-dwyj1hxv9s] {
    min-height: 23px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    color: #80858d;
    background: #efeff1;
    font-size: 0.67rem;
    font-weight: 850;
}

.users-day-hours-field input[b-dwyj1hxv9s] {
    width: 100%;
    height: 34px;
    min-width: 0;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    padding: 0 2px;
    color: #16181c;
    background: #ffffff;
    font: inherit;
    font-size: 0.72rem;
    font-weight: 750;
    text-align: center;
}

.users-day-hours-field input[b-dwyj1hxv9s]::-webkit-outer-spin-button,
.users-day-hours-field input[b-dwyj1hxv9s]::-webkit-inner-spin-button {
    margin: 0;
    appearance: none;
}

.users-day-hours-field input[type="number"][b-dwyj1hxv9s] {
    appearance: textfield;
}
.users-day-hours-field input:focus[b-dwyj1hxv9s] {
    border-color: #16181c;
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.users-day-hours-footer[b-dwyj1hxv9s] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.users-day-hours-footer > span[b-dwyj1hxv9s] {
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0 9px;
    color: #3c4148;
    background: #efeff1;
    font-size: 0.74rem;
    font-weight: 800;
    white-space: nowrap;
}
    .users-modal-save-btn[b-dwyj1hxv9s] {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 10px;
    padding: 0;
    color: white;
    background: #16181c;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    cursor: pointer;
    transition: opacity 0.18s, transform 0.12s, box-shadow 0.18s;
}

.users-modal-save-btn svg[b-dwyj1hxv9s] {
    width: 17px;
    height: 17px;
}

.users-modal-save-btn:disabled[b-dwyj1hxv9s] {
    cursor: not-allowed;
    opacity: 0.45;
}

.users-modal-save-btn:focus-visible[b-dwyj1hxv9s] {
    opacity: 0.92;
    transform: translateY(-1px);
    outline: none;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

@media (hover: hover) {
    .users-modal-save-btn:not(:disabled):hover[b-dwyj1hxv9s] {
        opacity: 0.92;
        transform: translateY(-1px);
        outline: none;
        box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    }
}

.users-modal-btn[b-dwyj1hxv9s] {
    height: 36px;
    border: none;
    border-radius: 10px;
    padding: 0 12px;
    color: white;
    background: #16181c;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 750;
    cursor: pointer;
    white-space: nowrap;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    transition: opacity 0.18s, transform 0.12s, box-shadow 0.18s;
}

.users-access-switch[b-dwyj1hxv9s] {
    align-self: flex-start;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    padding: 0 11px 0 8px;
    color: #3c4148;
    background: #efeff1;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 750;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

/* Basis-Rolle: EIN gemeinsamer Rahmen, zwei klickbare Optionen, ein vertikaler
   Switch-Thumb, der zwischen Mitarbeiter (oben) und Nachunternehmer (unten) gleitet. */
.users-base-switch[b-dwyj1hxv9s] {
    position: relative;
    flex: none;
    display: flex;
    flex-direction: column;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    background: #efeff1;
    padding: 4px;
    isolation: isolate;
}

.users-base-switch-thumb[b-dwyj1hxv9s] {
    position: absolute;
    left: 4px;
    right: 4px;
    top: 4px;
    bottom: 50%;
    border-radius: 8px;
    background: color-mix(in srgb, #145DA0 13%, white);
    border: 1.5px solid #145DA0;
    box-shadow: 0 2px 8px rgba(20, 93, 160, 0.20);
    transition: top 0.24s cubic-bezier(0.4, 0, 0.2, 1), bottom 0.24s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 0;
}

.users-base-switch--sub .users-base-switch-thumb[b-dwyj1hxv9s] {
    top: 50%;
    bottom: 4px;
}

.users-base-switch-option[b-dwyj1hxv9s] {
    position: relative;
    z-index: 1;
    min-height: 38px;
    display: grid;
    grid-template-columns: 12px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    border: none;
    border-radius: 8px;
    padding: 5px 10px;
    color: #80858d;
    background: transparent;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 750;
    text-align: left;
    cursor: pointer;
    transition: color 0.15s;
}

@media (hover: hover) {
    .users-base-switch-option:not(:disabled):hover[b-dwyj1hxv9s] {
        color: #145DA0;
    }
}

.users-base-switch-option:disabled[b-dwyj1hxv9s] {
    cursor: default;
}

.users-base-switch-option--active[b-dwyj1hxv9s] {
    color: #145DA0;
}

.users-base-switch-option--active .users-option-label[b-dwyj1hxv9s] {
    font-weight: 850;
}

.users-base-switch .users-option-dot[b-dwyj1hxv9s] {
    background: #145DA0;
    box-shadow: 0 0 0 3px color-mix(in srgb, #145DA0 16%, transparent);
}

.users-base-switch-option:not(.users-base-switch-option--active) .users-option-dot[b-dwyj1hxv9s] {
    background: #b9bcc4;
    box-shadow: none;
}

/* Switch + Bereichs-Liste teilen sich EINE Scroll-Fläche über die volle Spaltenhöhe,
   damit der scrollbare Berechtigungsbereich nicht unter dem fixen Switch zu klein wird. */
.users-permission-roles-body[b-dwyj1hxv9s] {
    min-height: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    overflow-y: auto;
    padding-right: 2px;
}

.users-permission-options[b-dwyj1hxv9s] {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.users-permission-search[b-dwyj1hxv9s] {
    height: 30px;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 6px;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    padding: 0 7px;
    background: #ffffff;
}

.users-permission-search:focus-within[b-dwyj1hxv9s] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.users-permission-search svg[b-dwyj1hxv9s] {
    width: 14px;
    height: 14px;
    color: #80858d;
    flex-shrink: 0;
}

.users-permission-search input[b-dwyj1hxv9s] {
    min-width: 0;
    flex: 1;
    border: none;
    outline: none;
    color: #16181c;
    background: transparent;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 700;
}

.users-permission-search input[b-dwyj1hxv9s]::placeholder {
    color: #80858d;
}

.users-permission-split[b-dwyj1hxv9s] {
    min-height: 0;
    flex: 1;
    display: grid;
    grid-template-columns: minmax(250px, 36%) minmax(0, 1fr);
    gap: 10px;
    align-items: stretch;
}

.users-permission-column[b-dwyj1hxv9s] {
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 9px;
    background: #ffffff;
}

/* Berechtigungen- und Bereiche-Spalte teilen sich jetzt die Listen-Optik
   (anklickbare Zeilen, siehe .users-permission-option / .users-department-option). */

.users-permission-column-head[b-dwyj1hxv9s] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #3c4148;
    font-size: 0.74rem;
    font-weight: 850;
}

.users-permission-column-head strong[b-dwyj1hxv9s] {
    color: #80858d;
    font-size: 0.7rem;
    font-weight: 850;
    white-space: nowrap;
}

/* Gemeinsame Zeilen-Optik für Berechtigungen UND Bereiche: anklickbare Liste,
   Farb-Punkt · Name (bei Überlänge mit … abgeschnitten) · Häkchen-Box. */
.users-permission-option[b-dwyj1hxv9s],
.users-department-option[b-dwyj1hxv9s] {
    --badge-color: #16181c;
    --badge-text: #16181c;
    width: 100%;
    min-height: 36px;
    display: grid;
    grid-template-columns: 12px minmax(0, 1fr) 20px;
    align-items: center;
    gap: 10px;
    border: 1px solid color-mix(in srgb, var(--badge-color) 16%, #ececf0);
    border-radius: 10px;
    padding: 5px 10px;
    color: #16181c;
    background: white;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 750;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.users-permission-option:focus-visible[b-dwyj1hxv9s],
.users-department-option:focus-visible[b-dwyj1hxv9s] {
    border-color: color-mix(in srgb, var(--badge-color) 52%, #e4e4e7);
    background: color-mix(in srgb, var(--badge-color) 6%, white);
    outline: none;
}

@media (hover: hover) {
    .users-permission-option:not(:disabled):hover[b-dwyj1hxv9s],
    .users-department-option:not(:disabled):hover[b-dwyj1hxv9s] {
        border-color: color-mix(in srgb, var(--badge-color) 52%, #e4e4e7);
        background: color-mix(in srgb, var(--badge-color) 6%, white);
        outline: none;
    }
}

.users-permission-option--active[b-dwyj1hxv9s],
.users-department-option--active[b-dwyj1hxv9s] {
    border-color: var(--badge-color);
    background: color-mix(in srgb, var(--badge-color) 11%, white);
}

.users-permission-option:disabled[b-dwyj1hxv9s],
.users-department-option:disabled[b-dwyj1hxv9s] {
    cursor: not-allowed;
    opacity: 0.5;
}

.users-permission-option--locked[b-dwyj1hxv9s] {
    cursor: default;
}

.users-option-dot[b-dwyj1hxv9s] {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--badge-color);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--badge-color) 15%, transparent);
}

.users-option-label[b-dwyj1hxv9s] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.25;
}

.users-permission-option--active .users-option-label[b-dwyj1hxv9s],
.users-department-option--active .users-option-label[b-dwyj1hxv9s] {
    color: var(--badge-text);
    font-weight: 850;
}

.users-option-check[b-dwyj1hxv9s] {
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1.5px solid color-mix(in srgb, var(--badge-color) 34%, #d1d1d6);
    border-radius: 6px;
    background: white;
    color: white;
    transition: background 0.15s, border-color 0.15s;
}

.users-option-check svg[b-dwyj1hxv9s] {
    width: 13px;
    height: 13px;
    opacity: 0;
    transform: scale(0.55);
    transition: opacity 0.12s, transform 0.12s;
}

.users-permission-option--active .users-option-check[b-dwyj1hxv9s],
.users-department-option--active .users-option-check[b-dwyj1hxv9s] {
    border-color: var(--badge-color);
    background: var(--badge-color);
}

.users-permission-option--active .users-option-check svg[b-dwyj1hxv9s],
.users-department-option--active .users-option-check svg[b-dwyj1hxv9s] {
    opacity: 1;
    transform: scale(1);
}

.users-department-assignment[b-dwyj1hxv9s] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-top: 4px;
    border-top: 1px solid #e4e4e7;
}

.users-department-assignment-head[b-dwyj1hxv9s] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #3c4148;
    font-size: 0.76rem;
    font-weight: 850;
}

.users-inline-link[b-dwyj1hxv9s] {
    border: none;
    padding: 0;
    color: #16181c;
    background: transparent;
    font: inherit;
    font-size: 0.74rem;
    font-weight: 850;
    cursor: pointer;
}

.users-inline-link:focus-visible[b-dwyj1hxv9s] {
    color: #000000;
    outline: none;
}

@media (hover: hover) {
    .users-inline-link:hover[b-dwyj1hxv9s] {
        color: #000000;
        outline: none;
    }
}

.users-department-options[b-dwyj1hxv9s] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.users-department-options--panel[b-dwyj1hxv9s] {
    min-height: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 5px;
    overflow-y: auto;
    padding-right: 2px;
}

.users-selected-departments[b-dwyj1hxv9s] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    min-height: 38px;
}

.users-department-empty-inline[b-dwyj1hxv9s] {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    border: 1px dashed #e4e4e7;
    border-radius: 10px;
    padding: 0 10px;
    color: #80858d;
    background: #f5f5f7;
    font-size: 0.8rem;
    font-weight: 750;
}

.users-selected-department-chip[b-dwyj1hxv9s] {
    --badge-color: #16181c;
    --badge-text: #16181c;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid color-mix(in srgb, var(--badge-color) 24%, #e4e4e7);
    border-radius: 10px;
    padding: 0 8px 0 10px;
    color: var(--badge-text);
    background: color-mix(in srgb, var(--badge-color) 9%, white);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 850;
    cursor: pointer;
}

.users-selected-department-chip:focus-visible[b-dwyj1hxv9s] {
    border-color: var(--badge-color);
    background: color-mix(in srgb, var(--badge-color) 14%, white);
    outline: none;
}

@media (hover: hover) {
    .users-selected-department-chip:not(:disabled):hover[b-dwyj1hxv9s] {
        border-color: var(--badge-color);
        background: color-mix(in srgb, var(--badge-color) 14%, white);
        outline: none;
    }
}

.users-selected-department-remove[b-dwyj1hxv9s] {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #3c4148;
    background: rgba(255, 255, 255, 0.74);
    font-size: 0.62rem;
    font-weight: 900;
}

.users-department-picker-wrap[b-dwyj1hxv9s] {
    position: relative;
    display: inline-flex;
}

.users-department-add-btn[b-dwyj1hxv9s] {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    padding: 0;
    color: #3c4148;
    background: white;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s, transform 0.12s;
}

.users-department-add-btn:focus-visible[b-dwyj1hxv9s] {
    border-color: #16181c;
    color: #16181c;
    background: #efeff1;
    outline: none;
    transform: translateY(-1px);
}

@media (hover: hover) {
    .users-department-add-btn:not(:disabled):hover[b-dwyj1hxv9s] {
        border-color: #16181c;
        color: #16181c;
        background: #efeff1;
        outline: none;
        transform: translateY(-1px);
    }
}

.users-department-add-btn:disabled[b-dwyj1hxv9s],
.users-selected-department-chip:disabled[b-dwyj1hxv9s] {
    cursor: not-allowed;
    opacity: 0.45;
}

.users-department-picker-backdrop[b-dwyj1hxv9s] {
    position: fixed;
    inset: 0;
    z-index: 120;
    border: none;
    padding: 0;
    background: transparent;
    cursor: default;
}

.users-department-picker-popover[b-dwyj1hxv9s] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 130;
    width: min(330px, calc(100vw - 36px));
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 8px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .26), 0 6px 14px -10px rgba(0, 0, 0, .12);
}

.users-department-picker-search[b-dwyj1hxv9s] {
    height: 38px;
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    padding: 0 8px;
    background: #ffffff;
}

.users-department-picker-search svg[b-dwyj1hxv9s] {
    color: #80858d;
    flex-shrink: 0;
}

.users-department-picker-search input[b-dwyj1hxv9s] {
    min-width: 0;
    flex: 1;
    border: none;
    outline: none;
    color: #16181c;
    background: transparent;
    font: inherit;
    font-size: 0.84rem;
    font-weight: 700;
}

.users-picker-clear[b-dwyj1hxv9s] {
    width: 22px;
    height: 22px;
    border: none;
    border-radius: 50%;
    padding: 0;
    color: #80858d;
    background: #efeff1;
    font: inherit;
    font-size: 0.62rem;
    font-weight: 900;
    cursor: pointer;
}

.users-department-picker-list[b-dwyj1hxv9s] {
    max-height: 260px;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-top: 7px;
}

.users-department-picker-item[b-dwyj1hxv9s] {
    --badge-color: #16181c;
    --badge-text: #16181c;
    min-height: 38px;
    display: grid;
    grid-template-columns: 14px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 9px;
    border: none;
    border-radius: 10px;
    padding: 0 9px;
    color: #3c4148;
    background: transparent;
    font: inherit;
    font-size: 0.84rem;
    font-weight: 800;
    text-align: left;
    cursor: pointer;
}

.users-department-picker-item:focus-visible[b-dwyj1hxv9s],
.users-department-picker-item--active[b-dwyj1hxv9s] {
    color: var(--badge-text);
    background: color-mix(in srgb, var(--badge-color) 11%, white);
    outline: none;
}

@media (hover: hover) {
    .users-department-picker-item:hover[b-dwyj1hxv9s] {
        color: var(--badge-text);
        background: color-mix(in srgb, var(--badge-color) 11%, white);
        outline: none;
    }
}

.users-department-picker-item > span:nth-child(2)[b-dwyj1hxv9s] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.users-department-picker-empty[b-dwyj1hxv9s] {
    padding: 14px 8px;
    color: #80858d;
    font-size: 0.84rem;
    font-weight: 750;
    text-align: center;
}

/* .users-department-option teilt sich Skelett, Hover-, Aktiv- und Disabled-Zustände
   mit .users-permission-option (siehe oben) — eigener Farb-Punkt + Häkchen-Box. */

.users-department-empty[b-dwyj1hxv9s] {
    border: 1px dashed #e4e4e7;
    border-radius: 10px;
    padding: 10px;
    color: #80858d;
    background: #f5f5f7;
    font-size: 0.82rem;
    font-weight: 700;
}

@media (hover: hover) {
    .users-access-switch:not(:disabled):hover[b-dwyj1hxv9s] {
        border-color: #16181c;
        color: #16181c;
        background: #efeff1;
    }
}

.users-access-switch:disabled[b-dwyj1hxv9s] {
    cursor: not-allowed;
    opacity: 0.45;
}

.users-access-switch-track[b-dwyj1hxv9s] {
    position: relative;
    width: 34px;
    height: 20px;
    border-radius: 999px;
    background: #d1d1d6;
    flex-shrink: 0;
    transition: background 0.18s;
}

.users-access-switch-thumb[b-dwyj1hxv9s] {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: white;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
    transition: transform 0.18s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.users-access-switch--on[b-dwyj1hxv9s] {
    color: #16181c;
    background: white;
}

.users-access-switch--on .users-access-switch-track[b-dwyj1hxv9s] {
    background: #34c759;
}

.users-access-switch--on .users-access-switch-thumb[b-dwyj1hxv9s] {
    transform: translateX(14px);
}

.users-access-switch-text[b-dwyj1hxv9s] {
    min-width: 46px;
    text-align: left;
}

.users-access-stack[b-dwyj1hxv9s] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 9px;
}

.users-password-reset-btn[b-dwyj1hxv9s] {
    max-width: 100%;
}

.users-modal-btn:disabled[b-dwyj1hxv9s] {
    cursor: not-allowed;
    opacity: 0.45;
}

@media (hover: hover) {
    .users-modal-btn:not(:disabled):hover[b-dwyj1hxv9s] {
        opacity: 0.9;
        transform: translateY(-1px);
        box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    }
}

@media (hover: hover) {
    .users-modal-btn:disabled:hover[b-dwyj1hxv9s] {
        opacity: 0.45;
        transform: none;
        box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    }
}

.users-modal-btn--secondary[b-dwyj1hxv9s] {
    align-self: flex-start;
    color: #3c4148;
    background: #efeff1;
    border: 1px solid #e4e4e7;
    box-shadow: none;
}

@media (hover: hover) {
    .users-modal-btn--secondary:not(:disabled):hover[b-dwyj1hxv9s] {
        color: #16181c;
        background: #efeff1;
        border-color: #16181c;
        box-shadow: none;
    }
}

@media (hover: hover) {
    .users-modal-btn--secondary:disabled:hover[b-dwyj1hxv9s] {
        color: #3c4148;
        background: #efeff1;
        border-color: #e4e4e7;
    }
}

.users-modal-btn--ghost[b-dwyj1hxv9s] {
    color: #3c4148;
    background: white;
    border: 1px solid #e4e4e7;
    box-shadow: none;
}

@media (hover: hover) {
    .users-modal-btn--ghost:hover[b-dwyj1hxv9s] {
        color: #16181c;
        background: #f5f5f7;
        border-color: #16181c;
        box-shadow: none;
    }
}

@media (max-width: 860px) {
    .users-modal-top[b-dwyj1hxv9s] {
        grid-template-columns: 1fr;
        padding-right: 28px;
    }

    .users-modal-workspace[b-dwyj1hxv9s] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .users-modal-action--permissions[b-dwyj1hxv9s] {
        grid-column: 1 / -1;
    }

    .users-permission-split[b-dwyj1hxv9s] {
        grid-template-columns: minmax(150px, 30%) minmax(0, 1fr);
    }

    .users-modal-action--permissions[b-dwyj1hxv9s] {
        height: 264px;
    }

    .users-modal-preview-btn[b-dwyj1hxv9s] {
        margin-left: auto;
    }
}

@media (max-width: 760px) {
    .users-page[b-dwyj1hxv9s] {
        padding: 18px;
    }

    .users-header[b-dwyj1hxv9s] {
        align-items: flex-start;
        flex-direction: column;
    }

    .users-header-actions[b-dwyj1hxv9s] {
        align-self: flex-end;
    }

    .users-grid[b-dwyj1hxv9s] {
        grid-template-columns: 1fr;
    }

    .users-list-toolbar[b-dwyj1hxv9s] {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .users-filter-button[b-dwyj1hxv9s] {
        width: 100%;
    }

    .users-filter-menu[b-dwyj1hxv9s] {
        left: 0;
        right: auto;
        width: 100%;
    }

    .users-search-count[b-dwyj1hxv9s] {
        justify-self: end;
    }

    .user-row[b-dwyj1hxv9s] {
        min-height: 60px;
        grid-template-columns: 44px minmax(0, 1fr) auto;
        gap: 10px;
        padding: 11px 12px;
    }

    /* Audit-Metadaten (Angelegt/Geändert) am Handy ausblenden – sie stehen
       vollständig im Profil-Modal und blähen die Zeile sonst auf zwei
       umbrechende Zeilen pro Eintrag auf. */
    .user-meta[b-dwyj1hxv9s] {
        display: none;
    }

    /* Vollständigen Namen zeigen statt ihn früh mit … abzuschneiden. */
    .user-name[b-dwyj1hxv9s] {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }

    .user-action-btn[b-dwyj1hxv9s] {
        width: 38px;
        height: 38px;
    }

    .user-self[b-dwyj1hxv9s] {
        display: none;
    }

    .users-modal-workspace[b-dwyj1hxv9s] {
        grid-template-columns: 1fr;
    }

    /* Audit-Raster kompakt: zwei Spalten mit Haarlinien statt sechs hoher
       Zeilen, damit man nicht erst lange scrollen muss, um zu den
       Bedienelementen zu gelangen. */
    .users-modal-meta[b-dwyj1hxv9s] {
        grid-template-columns: 1fr 1fr;
        gap: 1px;
        background: #e4e4e7;
    }

    .users-modal-meta div[b-dwyj1hxv9s] {
        border: none;
        background: #f5f5f7;
        padding: 11px 13px;
    }

    .users-modal-action-main[b-dwyj1hxv9s] {
        grid-template-columns: 30px minmax(0, 1fr);
    }

    .users-modal-section-icon[b-dwyj1hxv9s] {
        width: 30px;
        height: 30px;
    }

    .users-info-popover[b-dwyj1hxv9s] {
        position: static;
        width: 100%;
        margin-top: -4px;
    }

    .users-modal-btn[b-dwyj1hxv9s] {
        width: 100%;
    }

    .users-day-hours-grid[b-dwyj1hxv9s] {
        grid-template-columns: repeat(7, minmax(0, 1fr));
        gap: 3px;
    }


    .users-day-hours-field input[b-dwyj1hxv9s] {
        height: 32px;
        font-size: 0.68rem;
    }
    .users-modal-save-btn[b-dwyj1hxv9s] {
        width: 36px;
    }

    .users-access-switch[b-dwyj1hxv9s] {
        width: 100%;
        justify-content: space-between;
    }

    .users-permission-split[b-dwyj1hxv9s] {
        grid-template-columns: 1fr;
    }

    .users-modal-action--permissions[b-dwyj1hxv9s] {
        height: 360px;
    }

    .users-modal-action--permissions .users-modal-action-title[b-dwyj1hxv9s] {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .users-modal-action--permissions .users-modal-action-title h3[b-dwyj1hxv9s] {
        min-width: 0;
    }

    .users-modal-action--permissions .users-modal-action-title .users-permission-search[b-dwyj1hxv9s] {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .users-departments-modal-header[b-dwyj1hxv9s] {
        align-items: flex-start;
        flex-direction: column;
        padding-right: 42px;
    }

    /* Feste Desktop-Höhe aufheben: Anlege-Panel und Liste stapeln sich und
       wachsen natürlich, das gesamte Modal scrollt. Sonst wird das Panel in
       die fixe Höhe gequetscht und "Bereich anlegen" abgeschnitten. */
    .users-departments-modal-grid[b-dwyj1hxv9s] {
        grid-template-columns: 1fr;
        height: auto;
    }

    .users-department-create-panel[b-dwyj1hxv9s] {
        overflow: visible;
    }

    .users-department-create-panel .users-submit[b-dwyj1hxv9s] {
        margin-top: 4px;
    }

    .users-departments-list[b-dwyj1hxv9s] {
        height: auto;
        max-height: none;
        overflow: visible;
    }

    .users-department-edit-grid[b-dwyj1hxv9s] {
        grid-template-columns: 1fr;
    }

    .users-department-row[b-dwyj1hxv9s] {
        grid-template-columns: 28px 30px minmax(0, 1fr);
    }

    .users-department-row-actions[b-dwyj1hxv9s] {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }

    .users-department-picker-popover[b-dwyj1hxv9s] {
        left: auto;
        right: 0;
    }
}

/* -- Master-Detail-Layout (Berechtigungen-Seite) ------------------------- */
.users-layout[b-dwyj1hxv9s] {
    flex: 1;
    min-height: 0;
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(300px, 360px) minmax(0, 1fr);
    gap: 16px;
    align-items: stretch;
}

.users-side[b-dwyj1hxv9s] {
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.users-dir-wrap[b-dwyj1hxv9s] {
    flex: 1;
    min-height: 0;
}

.users-detail[b-dwyj1hxv9s] {
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* Kompakter Icon-Zurück-Button im Profil-Kopf – nur auf dem Handy sichtbar. */
.users-detail-back[b-dwyj1hxv9s] {
    display: none;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 0;
    color: #3c4148;
    background: white;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
}

@media (hover: hover) {
    .users-detail-back:hover[b-dwyj1hxv9s] {
        border-color: #16181c;
        color: #16181c;
        background: #efeff1;
    }
}

.users-detail-empty[b-dwyj1hxv9s] {
    min-height: 320px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    border: 1px dashed #e4e4e7;
    border-radius: 16px;
    padding: 32px;
    color: #80858d;
    background: #ffffff;
    text-align: center;
    font-size: 0.95rem;
    font-weight: 650;
}

.users-detail-empty svg[b-dwyj1hxv9s] {
    color: #80858d;
}

.users-detail-empty span[b-dwyj1hxv9s] {
    max-width: 320px;
}

.users-detail-head[b-dwyj1hxv9s] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 16px;
    background: #ffffff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
}

.users-detail-stack[b-dwyj1hxv9s] {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 12px;
    align-items: stretch;
}

.users-detail-perm[b-dwyj1hxv9s] {
    grid-column: 1 / -1;
    min-height: 0;
    overflow: hidden;
}

.users-detail-perm .users-modal-action-main[b-dwyj1hxv9s],
.users-detail-perm .users-modal-action-content[b-dwyj1hxv9s] {
    height: 100%;
    min-height: 0;
}

.users-detail-perm .users-modal-action-title[b-dwyj1hxv9s] {
    display: grid;
    grid-template-columns: auto minmax(140px, 260px) auto;
    align-items: start;
    justify-content: stretch;
    gap: 8px;
}

.users-detail-perm .users-info-btn[b-dwyj1hxv9s] {
    justify-self: end;
    align-self: start;
}

/* Speichern-Button im Benutzername-Abschnitt – optisch wie die Speichern-Buttons auf Stammdaten. */
.users-name-actions[b-dwyj1hxv9s] {
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
}

.users-save-btn[b-dwyj1hxv9s] {
    min-height: 42px;
    border: none;
    border-radius: 11px;
    padding: 0 18px;
    color: #ffffff;
    background: #16181c;
    font: inherit;
    font-size: 0.9rem;
    font-weight: 750;
    cursor: pointer;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    transition: opacity 0.18s, transform 0.12s, box-shadow 0.18s;
}

@media (hover: hover) {
    .users-save-btn:not(:disabled):hover[b-dwyj1hxv9s] {
        opacity: 0.92;
        transform: translateY(-1px);
        box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .22);
    }
}

.users-save-btn:disabled[b-dwyj1hxv9s] {
    cursor: not-allowed;
    opacity: 0.45;
}

@media (max-width: 980px) {
    /* Handy: Master-Detail-Umschaltung – zuerst die Liste, beim Antippen gleitet das Detail
       als Vollbild-Overlay rein; Zurück-Button blendet es wieder aus. */
    .users-layout[b-dwyj1hxv9s] {
        grid-template-columns: 1fr;
        position: relative;
    }

    .users-detail[b-dwyj1hxv9s] {
        position: absolute;
        inset: 0;
        z-index: 5;
        overflow-y: auto;
        background: #f5f5f7;
        transform: translateX(100%);
        transition: transform 0.22s ease-out;
        pointer-events: none;
    }

    .users-layout--has-selection .users-detail[b-dwyj1hxv9s] {
        transform: translateX(0);
        pointer-events: auto;
    }

    .users-detail-back[b-dwyj1hxv9s] {
        display: inline-flex;
    }

    .users-detail-stack[b-dwyj1hxv9s] {
        grid-template-columns: 1fr;
        grid-template-rows: none;
    }

    .users-detail-perm[b-dwyj1hxv9s] {
        height: 420px;
    }
}

@media (max-width: 680px) {
    .users-detail-stack[b-dwyj1hxv9s] {
        grid-template-columns: 1fr;
    }

    .users-detail-perm[b-dwyj1hxv9s] {
        height: 420px;
    }

    .users-detail-perm .users-modal-action-title[b-dwyj1hxv9s] {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .users-detail-perm .users-modal-action-title .users-permission-search[b-dwyj1hxv9s] {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .users-permission-split[b-dwyj1hxv9s] {
        grid-template-columns: 1fr;
    }
}

/* -- Wizard „Neuen Mitarbeiter anlegen" ---------------------------------- */

.users-wizard-head[b-dwyj1hxv9s] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-right: 40px;
}

.users-wizard-head-text[b-dwyj1hxv9s] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.users-wizard-kicker[b-dwyj1hxv9s] {
    color: #80858d;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.users-wizard-head h2[b-dwyj1hxv9s] {
    margin: 0;
    color: #16181c;
    font-size: 1.2rem;
    font-weight: 800;
    line-height: 1.15;
}

/* Fortschritts-Rail: ein Segment pro Schritt. Bei Nachunternehmer schrumpft
   das Rail sichtbar von 4 auf 2 Segmente — die Struktur zeigt die Konsequenz
   der Rollen-Entscheidung. */
.users-wizard-progress[b-dwyj1hxv9s] {
    display: flex;
    gap: 6px;
    margin-top: 14px;
}

.users-wizard-progress-seg[b-dwyj1hxv9s] {
    height: 4px;
    flex: 1;
    border-radius: 999px;
    background: #e4e4e7;
    transition: background 0.25s;
}

.users-wizard-progress-seg--done[b-dwyj1hxv9s] {
    background: #16181c;
}

/* Einheitliche Mindesthöhe, damit das Modal beim Schrittwechsel nicht springt. */
.users-wizard-step[b-dwyj1hxv9s] {
    min-height: 236px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    animation: usersWizardStepIn-b-dwyj1hxv9s 0.22s ease-out;
}

@keyframes usersWizardStepIn-b-dwyj1hxv9s {
    from {
        opacity: 0;
        transform: translateX(10px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .users-wizard-step[b-dwyj1hxv9s] {
        animation: none;
    }
}

.users-wizard-input--invalid[b-dwyj1hxv9s] {
    border-color: #d92d20 !important;
}

.users-wizard-input--invalid:focus[b-dwyj1hxv9s] {
    box-shadow: 0 0 0 3px rgba(217, 45, 32, .14) !important;
}

.users-wizard-name-status[b-dwyj1hxv9s] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 0.82rem;
    font-weight: 750;
}

.users-wizard-name-status svg[b-dwyj1hxv9s] {
    flex-shrink: 0;
}

.users-wizard-name-status--ok[b-dwyj1hxv9s] {
    color: #248a3d;
}

.users-wizard-name-status--bad[b-dwyj1hxv9s] {
    color: #b42318;
}

.users-wizard-error[b-dwyj1hxv9s] {
    border: 1px solid #ffccc9;
    border-radius: 11px;
    padding: 10px 12px;
    color: #b42318;
    background: #fff0ef;
    font-size: 0.84rem;
    font-weight: 700;
}

.users-wizard-roles[b-dwyj1hxv9s] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Rollen-Karten im etablierten Basisrollen-Blau (#145DA0, wie der Switch im Profil). */
.users-wizard-role[b-dwyj1hxv9s] {
    display: grid;
    grid-template-columns: 12px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    padding: 14px;
    background: white;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}

.users-wizard-role .users-option-dot[b-dwyj1hxv9s] {
    margin-top: 4px;
    background: #b9bcc4;
    box-shadow: none;
}

.users-wizard-role:focus-visible[b-dwyj1hxv9s] {
    border-color: #145DA0;
    outline: none;
}

@media (hover: hover) {
    .users-wizard-role:hover[b-dwyj1hxv9s] {
        border-color: #145DA0;
    }
}

.users-wizard-role--active[b-dwyj1hxv9s] {
    border-color: #145DA0;
    background: color-mix(in srgb, #145DA0 8%, white);
}

.users-wizard-role--active .users-option-dot[b-dwyj1hxv9s] {
    background: #145DA0;
    box-shadow: 0 0 0 3px color-mix(in srgb, #145DA0 16%, transparent);
}

.users-wizard-role-text[b-dwyj1hxv9s] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.users-wizard-role-text strong[b-dwyj1hxv9s] {
    color: #16181c;
    font-size: 0.92rem;
    font-weight: 800;
}

.users-wizard-role--active .users-wizard-role-text strong[b-dwyj1hxv9s] {
    color: #145DA0;
}

.users-wizard-role-text > span[b-dwyj1hxv9s] {
    color: #80858d;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.35;
}

.users-wizard-list-head[b-dwyj1hxv9s] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #3c4148;
    font-size: 0.74rem;
    font-weight: 850;
}

.users-wizard-optional[b-dwyj1hxv9s] {
    color: #80858d;
    font-weight: 750;
}

.users-wizard-list[b-dwyj1hxv9s] {
    max-height: min(300px, 46vh);
    overflow-y: auto;
    padding-right: 2px;
}

/* Bereichs-Liste im Wizard untereinander statt als Chip-Wrap. */
.users-wizard-department-options[b-dwyj1hxv9s] {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 5px;
}

.users-wizard-actions[b-dwyj1hxv9s] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
}

.users-wizard-next[b-dwyj1hxv9s] {
    margin-left: auto;
}

@media (max-width: 760px) {
    .users-wizard-actions .users-modal-btn[b-dwyj1hxv9s] {
        width: auto;
        flex: 1;
    }

    .users-wizard-step[b-dwyj1hxv9s] {
        min-height: 0;
    }
}

/* /Components/Shared/AddressAutocomplete/AddressAutocomplete.razor.rz.scp.css */
/* Adress-Autovervollständigung – passt sich dem Modal-Look an (.field-input).
   Die --modal-*-Variablen werden von der Modal-Wurzel (.modal-backdrop) vererbt;
   Fallbacks sorgen für ein sinnvolles Aussehen auch außerhalb eines Modals. */

.addr-ac[b-4m1tsgllo9] {
    position: relative;
}

/* Eingabefeld – 1:1 wie .field-input, damit es im Modal nahtlos sitzt. */
.addr-ac-input[b-4m1tsgllo9] {
    width: 100%;
    box-sizing: border-box;
    min-height: 40px;
    padding: 9px 11px;
    border: 1px solid var(--modal-line, #e4e4e7);
    border-radius: 11px;
    /* Im Modal: weiche Panel-Farbe (über Variablen). Auf normalen Seiten ohne diese
       Variablen: schlichtes Weiß – passt zu den dortigen Eingabefeldern. */
    background: var(--modal-panel-soft, #ffffff);
    color: var(--modal-text, #16181c);
    font-family: inherit;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.35;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.addr-ac-input:disabled[b-4m1tsgllo9] {
    color: var(--modal-faint, #80858d);
    background: #f5f5f7;
    cursor: not-allowed;
}

.addr-ac-input[b-4m1tsgllo9]::placeholder {
    color: var(--modal-faint, #80858d);
    font-weight: 400;
}

.addr-ac-input:focus[b-4m1tsgllo9] {
    outline: none;
    border-color: #16181c;
    background: var(--modal-panel, #ffffff);
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

/* Vorschlagsliste */
.addr-ac-results[b-4m1tsgllo9] {
    position: absolute;
    top: calc(100% + 5px);
    left: 0;
    right: 0;
    z-index: 60;
    background: var(--modal-panel, #ffffff);
    border: 1px solid var(--modal-line, #e4e4e7);
    border-radius: 13px;
    box-shadow: 0 14px 38px rgba(16, 24, 40, 0.22);
    overflow: hidden;
    padding: 0.25rem;
    animation: addr-ac-pop-b-4m1tsgllo9 0.15s ease;
}

@keyframes addr-ac-pop-b-4m1tsgllo9 {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: none; }
}

.addr-ac-row[b-4m1tsgllo9] {
    display: flex;
    align-items: center;
    width: 100%;
    border-radius: 10px;
    transition: background 0.12s ease;
}

.addr-ac-row.is-active[b-4m1tsgllo9] {
    background: #efeff1;
}

@media (hover: hover) {
    .addr-ac-row:hover[b-4m1tsgllo9] {
        background: #efeff1;
    }
}

.addr-ac-rowmain[b-4m1tsgllo9] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    border: 0;
    background: transparent;
    border-radius: 10px;
    padding: 0.5rem 0.55rem;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.addr-ac-ic[b-4m1tsgllo9] {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    display: grid;
    place-items: center;
    background: #efeff1;
    color: #16181c;
}

.addr-ac-ic--locality[b-4m1tsgllo9] {
    background: #eef0f4;
    color: #5f6b7a;
}

.addr-ac-ic--poi[b-4m1tsgllo9] {
    background: #fff3e6;
    color: #e8820e;
}

.addr-ac-text[b-4m1tsgllo9] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 0.05rem;
}

.addr-ac-main[b-4m1tsgllo9] {
    font-size: 0.88rem;
    font-weight: 650;
    color: #1c1c1e;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.addr-ac-sub[b-4m1tsgllo9] {
    font-size: 0.76rem;
    color: #8e8e93;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.addr-ac-state[b-4m1tsgllo9] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.7rem 0.65rem;
    font-size: 0.84rem;
    font-weight: 600;
    color: #8e8e93;
}

.addr-ac-state--empty[b-4m1tsgllo9] {
    color: #aeaeb2;
}

.addr-ac-spinner[b-4m1tsgllo9] {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    border: 2.2px solid #d8d8dd;
    border-top-color: #16181c;
    border-radius: 50%;
    animation: addr-ac-spin-b-4m1tsgllo9 0.7s linear infinite;
}

@keyframes addr-ac-spin-b-4m1tsgllo9 {
    to { transform: rotate(360deg); }
}
/* /Components/Shared/AppDatePicker/AppDatePicker.razor.rz.scp.css */
.adp[b-es5efg5d51] {
    position: relative;
    width: 100%;
}

.adp-field[b-es5efg5d51] {
    width: 100%;
    height: 42px;
    display: flex;
    align-items: center;
    gap: 9px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    padding: 0 11px;
    color: #16181c;
    background: #ffffff;
    font: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    text-align: left;
    transition: border-color 0.15s, box-shadow 0.15s;
}

@media (hover: hover) {
    .adp-field:hover:not(:disabled)[b-es5efg5d51] {
        border-color: #cfd0d3;
    }
}

.adp-field--open[b-es5efg5d51],
.adp-field:focus-visible[b-es5efg5d51] {
    border-color: #16181c;
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.adp-field-icon[b-es5efg5d51] {
    color: #80858d;
    flex-shrink: 0;
}

.adp-value[b-es5efg5d51] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.adp-value--placeholder[b-es5efg5d51] {
    color: #80858d;
    font-weight: 500;
}

.adp-caret[b-es5efg5d51] {
    color: #80858d;
    flex-shrink: 0;
}

.adp--disabled .adp-field[b-es5efg5d51],
.adp-field:disabled[b-es5efg5d51] {
    color: #80858d;
    background: #f5f5f7;
    cursor: not-allowed;
}

/* -- Popover ------------------------------------------------------------- */
.adp-backdrop[b-es5efg5d51] {
    position: fixed;
    inset: 0;
    z-index: 120;
    border: none;
    padding: 0;
    background: transparent;
    cursor: default;
}

.adp-pop[b-es5efg5d51] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 130;
    width: 280px;
    max-width: min(280px, calc(100vw - 32px));
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    padding: 10px;
    background: #ffffff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
}

/* Klappt nach oben auf, wenn unten zu wenig Platz ist. */
.adp-pop--up[b-es5efg5d51] {
    top: auto;
    bottom: calc(100% + 6px);
}

.adp-head[b-es5efg5d51] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
}

.adp-nav[b-es5efg5d51] {
    width: 30px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    padding: 0;
    color: #3c4148;
    background: #ffffff;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.adp-nav:focus-visible[b-es5efg5d51] {
    border-color: #e4e4e7;
    background: #efeff1;
    color: #16181c;
    outline: none;
}

@media (hover: hover) {
    .adp-nav:hover[b-es5efg5d51] {
        border-color: #e4e4e7;
        background: #efeff1;
        color: #16181c;
        outline: none;
    }
}

.adp-selects[b-es5efg5d51] {
    flex: 1;
    min-width: 0;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 6px;
}

.adp-select-wrap[b-es5efg5d51] {
    position: relative;
    min-width: 0;
}

.adp-select[b-es5efg5d51] {
    width: 100%;
    min-width: 0;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    padding: 0 6px 0 8px;
    color: #16181c;
    background: #ffffff;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}

.adp-select--open[b-es5efg5d51],
.adp-select:focus-visible[b-es5efg5d51] {
    border-color: #16181c;
    outline: none;
    background: #ffffff;
}

@media (hover: hover) {
    .adp-select:hover[b-es5efg5d51] {
        border-color: #16181c;
        outline: none;
        background: #ffffff;
    }
}

.adp-select > span[b-es5efg5d51] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.adp-select-caret[b-es5efg5d51] {
    flex-shrink: 0;
    color: #80858d;
}

.adp-select-menu[b-es5efg5d51] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 10;
    max-height: 208px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 4px;
    background: #ffffff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
}

.adp-select-menu--year[b-es5efg5d51] {
    min-width: 76px;
}

.adp-select-opt[b-es5efg5d51] {
    flex-shrink: 0;
    min-height: 28px;
    display: flex;
    align-items: center;
    border: none;
    border-radius: 7px;
    padding: 0 8px;
    color: #3c4148;
    background: transparent;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 650;
    text-align: left;
    white-space: nowrap;
    cursor: pointer;
}

@media (hover: hover) {
    .adp-select-opt:hover[b-es5efg5d51] {
        background: #efeff1;
        color: #16181c;
    }
}

.adp-select-opt--active[b-es5efg5d51] {
    background: #16181c;
    color: #ffffff;
    font-weight: 800;
}

.adp-weekdays[b-es5efg5d51] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    margin-bottom: 4px;
}

.adp-weekdays span[b-es5efg5d51] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #80858d;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.adp-days[b-es5efg5d51] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
}

.adp-day[b-es5efg5d51] {
    aspect-ratio: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 9px;
    padding: 0;
    color: #16181c;
    background: transparent;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 650;
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
}

.adp-day:focus-visible[b-es5efg5d51] {
    background: #efeff1;
    color: #16181c;
    outline: none;
}

@media (hover: hover) {
    .adp-day:hover[b-es5efg5d51] {
        background: #efeff1;
        color: #16181c;
        outline: none;
    }
}

.adp-day--outside[b-es5efg5d51] {
    color: #c7c7cc;
}

.adp-day--today[b-es5efg5d51] {
    color: #16181c;
    font-weight: 850;
    box-shadow: inset 0 0 0 1.5px #cfd0d3;
}

.adp-day--selected[b-es5efg5d51] {
    color: #ffffff;
    background: #16181c;
    font-weight: 800;
}

@media (hover: hover) {
    .adp-day--selected:hover[b-es5efg5d51] {
        color: #ffffff;
        background: #16181c;
        font-weight: 800;
    }
}

.adp-foot[b-es5efg5d51] {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #e4e4e7;
}

.adp-foot-btn[b-es5efg5d51] {
    height: 32px;
    border: none;
    border-radius: 9px;
    padding: 0 12px;
    color: #16181c;
    background: #efeff1;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 750;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.adp-foot-btn:focus-visible[b-es5efg5d51] {
    background: #e7e7ea;
    outline: none;
}

@media (hover: hover) {
    .adp-foot-btn:hover[b-es5efg5d51] {
        background: #e7e7ea;
        outline: none;
    }
}

.adp-foot-btn--clear[b-es5efg5d51] {
    color: #80858d;
    background: #efeff1;
}

.adp-foot-btn--clear:focus-visible[b-es5efg5d51] {
    color: #b42318;
    background: #fbeae8;
}

@media (hover: hover) {
    .adp-foot-btn--clear:hover[b-es5efg5d51] {
        color: #b42318;
        background: #fbeae8;
    }
}

/* /Components/Shared/Avatar/AvatarEditor.razor.rz.scp.css */
/* Profilbild-Editor im App-Design (Monochrom, wie employee-hub-panel):
   weiße Karte mit Kicker-Kopf, dunkle Zuschnitt-Fläche, Pill-Buttons. */

/* Visually-hidden statt display:none – iOS/iPadOS-Safari öffnet den Foto-Picker
   über <label for="…"> nur zuverlässig, wenn das Input nicht display:none ist. */
.aved-input[b-d8qldkztsb] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.aved-backdrop[b-d8qldkztsb] {
    position: fixed;
    inset: 0;
    z-index: 3000;
    border: 0;
    padding: 0;
    background: rgba(22, 24, 28, 0.34);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

@keyframes avedPop-b-d8qldkztsb {
    from {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.96);
    }
}

/* ---- Auswahl-Popup („Neues Bild wählen" / „Bild entfernen") ---- */

.aved-chooser[b-d8qldkztsb] {
    position: fixed;
    z-index: 3001;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(300px, calc(100vw - 32px));
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px;
    border: 1px solid #e4e4e7;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
    animation: avedPop-b-d8qldkztsb 0.2s cubic-bezier(0.32, 0.72, 0, 1) backwards;
}

.aved-chooser-title[b-d8qldkztsb] {
    padding: 2px 6px 8px;
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.aved-chooser-item[b-d8qldkztsb] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    border: 0;
    border-radius: 14px;
    background: #f4f5f7;
    color: #16181c;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s ease;
}

@media (hover: hover) {
    .aved-chooser-item:hover[b-d8qldkztsb] {
        background: #e9eaee;
    }
}

.aved-chooser-item--danger[b-d8qldkztsb] {
    color: #b3261e;
}

.aved-chooser-item--muted[b-d8qldkztsb] {
    justify-content: center;
    background: transparent;
    color: #80858d;
}

@media (hover: hover) {
    .aved-chooser-item--muted:hover[b-d8qldkztsb] {
        background: #f4f5f7;
    }
}

/* ---- Zuschnitt-Dialog ---- */

.aved-modal[b-d8qldkztsb] {
    position: fixed;
    z-index: 3001;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(420px, calc(100vw - 32px));
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    padding: 14px;
    border: 1px solid #e4e4e7;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
    animation: avedPop-b-d8qldkztsb 0.2s cubic-bezier(0.32, 0.72, 0, 1) backwards;
}

.aved-head[b-d8qldkztsb] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 2px 6px 10px;
}

.aved-kicker[b-d8qldkztsb] {
    color: #80858d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.aved-head strong[b-d8qldkztsb] {
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.15;
}

.aved-stage[b-d8qldkztsb] {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 18px;
    overflow: hidden;
    background: #101114;
}

.aved-stage canvas[b-d8qldkztsb] {
    display: block;
    width: 100%;
    height: 100%;
    touch-action: none;
    cursor: grab;
}

.aved-stage canvas:active[b-d8qldkztsb] {
    cursor: grabbing;
}

.aved-zoom[b-d8qldkztsb] {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    border-radius: 12px;
    overflow: hidden;
    background: rgba(22, 24, 28, 0.85);
    box-shadow: 0 8px 24px -12px rgba(0, 0, 0, 0.6);
}

.aved-zoom button[b-d8qldkztsb] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 34px;
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
    transition: background 0.15s ease;
}

@media (hover: hover) {
    .aved-zoom button:hover[b-d8qldkztsb] {
        background: rgba(255, 255, 255, 0.12);
    }
}

.aved-zoom button + button[b-d8qldkztsb] {
    border-top: 1px solid rgba(255, 255, 255, 0.14);
}

/* Aktionsleiste: Abbrechen (dezent) · Neues Bild (sekundär) · Übernehmen (schwarz). */
.aved-actions[b-d8qldkztsb] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 12px;
}

.aved-btn[b-d8qldkztsb] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin: 0;
    padding: 0 16px;
    border: 0;
    border-radius: 999px;
    background: #f4f5f7;
    color: #16181c;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

@media (hover: hover) {
    .aved-btn:hover[b-d8qldkztsb] {
        background: #e9eaee;
    }
}

.aved-btn--muted[b-d8qldkztsb] {
    padding: 0 12px;
    background: transparent;
    color: #80858d;
}

@media (hover: hover) {
    .aved-btn--muted:hover[b-d8qldkztsb] {
        background: #f4f5f7;
    }
}

.aved-btn--primary[b-d8qldkztsb] {
    flex: 1;
    border: 1px solid #16181c;
    background: #16181c;
    color: #fff;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.4);
}

@media (hover: hover) {
    .aved-btn--primary:hover[b-d8qldkztsb] {
        background: #2a2d33;
    }
}

.aved-btn--primary:disabled[b-d8qldkztsb] {
    opacity: 0.6;
    cursor: default;
}

/* Schmale Geräte: als Bottom-Sheet (wie employee-hub-panel). */
@media (max-width: 520px) {
    .aved-modal[b-d8qldkztsb] {
        top: auto;
        bottom: 0;
        transform: translate(-50%, 0);
        width: 100vw;
        border-radius: 26px 26px 0 0;
        border-bottom: 0;
        padding: 12px 14px calc(12px + env(safe-area-inset-bottom));
        animation: none;
    }
}
/* /Components/Shared/Charts/LineChart.razor.rz.scp.css */
.lc[b-oodjjb677u] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* -- Legende -- */
.lc-legend[b-oodjjb677u] {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 18px;
}

.lc-legend-item[b-oodjjb677u] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12.5px;
    font-weight: 700;
    color: #3c4148;
}

.lc-legend-swatch[b-oodjjb677u] {
    width: 16px;
    height: 3px;
    border-radius: 2px;
    background: var(--c);
}

.lc-legend-swatch.is-dashed[b-oodjjb677u] {
    background: repeating-linear-gradient(90deg, var(--c) 0 4px, transparent 4px 7px);
}

/* -- Diagramm -- */
.lc-svg[b-oodjjb677u] {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

/* Die SVG-Innenelemente werden als MarkupString (@_svg) eingefügt und tragen daher KEIN
   Blazor-Scope-Attribut – scoped Selektoren würden sie nicht treffen. ::deep stylt sie als
   Nachfahren der gescopeten .lc-svg, sonst fällt z. B. die <polyline> auf fill:black zurück. */
.lc-svg[b-oodjjb677u]  .lc-grid {
    stroke: #f0f0f3;
    stroke-width: 1;
}

.lc-svg[b-oodjjb677u]  .lc-ylabel,
.lc-svg[b-oodjjb677u]  .lc-xlabel {
    fill: #aeaeb2;
    font-size: 13px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.lc-svg[b-oodjjb677u]  .lc-area {
    stroke: none;
    pointer-events: none;       /* nur die .lc-hit-Kreise fangen Hover/Tap – Fläche nie */
}

.lc-svg[b-oodjjb677u]  .lc-line {
    fill: none;
    stroke: var(--c);
    stroke-width: 2.4;
    stroke-linejoin: round;
    stroke-linecap: round;
    pointer-events: none;
}

.lc-svg[b-oodjjb677u]  .lc-line.is-dashed {
    stroke-width: 2;
    stroke-dasharray: 5 5;
    opacity: .85;
}

.lc-svg[b-oodjjb677u]  .lc-dot {
    fill: #fff;
    stroke: var(--c);
    stroke-width: 2;
    pointer-events: none;       /* der größere .lc-hit fängt Hover/Tap ab */
    transition: r .12s ease;
}

.lc-svg[b-oodjjb677u]  .lc-dot.is-active {
    r: 5;
}

/* Unsichtbarer, größerer Treffer-Kreis für Hover/Tap (chartTooltip.js liest die data-Attribute). */
.lc-svg[b-oodjjb677u]  .lc-hit {
    fill: transparent;
    pointer-events: all;
    cursor: pointer;
}

.lc-empty[b-oodjjb677u] {
    padding: 44px 0;
    text-align: center;
    color: #aeaeb2;
    font-size: 13px;
    font-weight: 600;
}
/* /Components/Shared/Chat/ChatView.razor.rz.scp.css */
/* --------------------------------------------------------------
   ChatView — gemeinsames scoped CSS für Baustellen- und Ticket-Chat.
   Nutzt --crm-* Variablen mit Fallbacks (Default monochrom, Ink #16181c),
   sodass die Komponente innerhalb des CRM-Scopes wie auch eigenständig
   funktioniert. Die Akzentfarbe (--crm-accent) wird bei Bedarf gesetzt:
   per Inline-Style der .chat-area (Backend.AccentColor) oder über das
   --crm-accent der umgebenden Seite.
-------------------------------------------------------------- */
.chat-area[b-qsxaam6s7i] {
    position: relative;
    display: flex;
    flex: 1;
    min-height: 0;
    flex-direction: column;
    background: #f7f8fa;
}

.chat-drop-hint[b-qsxaam6s7i] {
    position: absolute;
    inset: 8px;
    z-index: 10;
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 2px dashed var(--crm-accent, #16181c);
    border-radius: 14px;
    background: rgba(247, 248, 250, 0.92);
    color: var(--crm-accent, #16181c);
    font-weight: 800;
    pointer-events: none;
}

.chat-area--drop-active .chat-drop-hint[b-qsxaam6s7i] {
    display: flex;
}

.chat-empty[b-qsxaam6s7i] {
    display: flex;
    flex: 1;
    min-height: 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 48px 24px;
    color: var(--crm-muted, #636366);
    text-align: center;
}

.chat-empty-icon[b-qsxaam6s7i] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    margin-bottom: 6px;
    border-radius: 50%;
    background: #fff;
    color: var(--crm-accent, #16181c);
    box-shadow: 0 2px 10px rgba(28, 28, 30, 0.06);
}

.chat-empty strong[b-qsxaam6s7i] {
    color: var(--crm-text, #1c1c1e);
    font-size: 15px;
    font-weight: 800;
}

.chat-empty span[b-qsxaam6s7i] {
    color: var(--crm-faint, #8e8e93);
    font-size: 13px;
    font-weight: 600;
}

.chat-messages[b-qsxaam6s7i] {
    display: flex;
    flex: 1;
    min-height: 0;
    flex-direction: column;
    gap: 2px;
    padding: 14px 18px 8px;
    overflow-y: auto;
    scroll-behavior: smooth;
    /* Inhalte oben sanft ausblenden, damit nichts den aktiven Tab/Border berührt
       wenn man hochscrollt. */
    mask-image: linear-gradient(to bottom, transparent 0, #000 14px);
    -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 14px);
}

.chat-date-divider[b-qsxaam6s7i] {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 14px 0 10px;
}

.chat-date-divider span[b-qsxaam6s7i] {
    padding: 4px 12px;
    border-radius: 999px;
    background: rgba(28, 28, 30, 0.06);
    color: var(--crm-muted, #636366);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.chat-message[b-qsxaam6s7i] {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    margin-top: 2px;
}

.chat-message--with-header[b-qsxaam6s7i] {
    margin-top: 12px;
}

.chat-message--own[b-qsxaam6s7i] {
    justify-content: flex-end;
}

.chat-message--other[b-qsxaam6s7i] {
    justify-content: flex-start;
}

.chat-avatar-slot[b-qsxaam6s7i] {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    flex-shrink: 0;
    width: 28px;
    min-height: 28px;
}

.chat-avatar[b-qsxaam6s7i] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #d6dbe3;
    color: #3a3a3c;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    box-shadow: 0 1px 3px rgba(28, 28, 30, 0.08);
}

.chat-bubble-wrap[b-qsxaam6s7i] {
    position: relative;
    display: flex;
    max-width: min(560px, 78%);
    flex-direction: column;
    min-width: 0;
}

.chat-bubble-wrap:has(.chat-bubble--editing)[b-qsxaam6s7i] {
    max-width: min(560px, 92%);
    width: min(560px, 92%);
}

.chat-message--own .chat-bubble-wrap[b-qsxaam6s7i] {
    align-items: flex-end;
}

.chat-message--other .chat-bubble-wrap[b-qsxaam6s7i] {
    align-items: flex-start;
}

.chat-sender[b-qsxaam6s7i] {
    padding: 0 12px 3px;
    color: var(--crm-muted, #636366);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.01em;
}

.chat-bubble[b-qsxaam6s7i] {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    max-width: 100%;
    padding: 8px 12px 7px;
    border-radius: 16px;
    line-height: 1.42;
    word-wrap: break-word;
    overflow-wrap: anywhere;
    box-shadow: 0 1px 1.5px rgba(28, 28, 30, 0.08);
}

.chat-message--own .chat-bubble[b-qsxaam6s7i] {
    background: var(--crm-accent, #16181c);
    color: #fff;
    border-bottom-right-radius: 6px;
}

.chat-message--other .chat-bubble[b-qsxaam6s7i] {
    background: #fff;
    color: var(--crm-text, #1c1c1e);
    border: 1px solid #e9eaef;
    border-bottom-left-radius: 6px;
}

.chat-message--with-header.chat-message--own .chat-bubble[b-qsxaam6s7i] {
    border-top-right-radius: 16px;
}

.chat-text[b-qsxaam6s7i] {
    display: block;
    font-size: 13.5px;
    font-weight: 500;
    white-space: pre-wrap;
}

/* #-Verweis auf eine Datei der Baustellen-Ablage — Marke im Fließtext. */
.chat-dokref[b-qsxaam6s7i] {
    display: inline;
    padding: 1px 6px;
    border: 0;
    border-radius: 7px;
    background: rgba(28, 28, 30, 0.09);
    color: inherit;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.chat-message--own .chat-dokref[b-qsxaam6s7i] {
    background: rgba(255, 255, 255, 0.22);
}

@media (hover: hover) {
    .chat-dokref:hover[b-qsxaam6s7i] {
        background: rgba(28, 28, 30, 0.16);
    }

    .chat-message--own .chat-dokref:hover[b-qsxaam6s7i] {
        background: rgba(255, 255, 255, 0.34);
    }
}

.chat-time[b-qsxaam6s7i] {
    display: block;
    margin-top: 2px;
    align-self: flex-end;
    font-size: 10.5px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    opacity: 0.7;
}

.chat-message--own .chat-time[b-qsxaam6s7i] {
    color: rgba(255, 255, 255, 0.85);
}

.chat-message--other .chat-time[b-qsxaam6s7i] {
    color: var(--crm-faint, #8e8e93);
}

/* "bearbeitet"-Markierung neben der Uhrzeit */
.chat-edited[b-qsxaam6s7i] {
    font-style: italic;
    font-weight: 600;
}

.chat-time-sep[b-qsxaam6s7i] {
    margin: 0 4px;
    opacity: 0.6;
}

/* Gelöschte Nachricht (Platzhalter) — kompakte, dezente Zeile */
.chat-bubble--deleted[b-qsxaam6s7i] {
    flex-direction: row;
    align-items: center;
    gap: 8px;
    padding: 4px 11px !important;
    background: transparent !important;
    border: 1px dashed #d6d9e0 !important;
    box-shadow: none !important;
}

.chat-text--deleted[b-qsxaam6s7i] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-style: italic;
    font-weight: 600;
    color: var(--crm-faint, #8e8e93);
}

.chat-deleted-icon[b-qsxaam6s7i] {
    flex-shrink: 0;
    width: 13px;
    height: 13px;
    opacity: 0.6;
}

.chat-bubble--deleted .chat-time[b-qsxaam6s7i] {
    margin-top: 0;
    align-self: center;
    opacity: 0.8;
    color: var(--crm-faint, #8e8e93) !important;
}

/* Overlay zum Schließen des Kontextmenüs bei Klick daneben */
.chat-menu-overlay[b-qsxaam6s7i] {
    position: fixed;
    inset: 0;
    z-index: 40;
    background: transparent;
}

/* ⋯-Trigger an eigenen Nachrichten */
.chat-msg-actions[b-qsxaam6s7i] {
    position: absolute;
    top: 50%;
    right: 100%;
    transform: translateY(-50%);
    margin-right: 4px;
    opacity: 0;
    transition: opacity 0.12s;
    pointer-events: none;
}

.chat-msg-actions.is-open[b-qsxaam6s7i],
.chat-msg-actions:focus-within[b-qsxaam6s7i] {
    opacity: 1;
    pointer-events: auto;
}

@media (hover: hover) {
    .chat-message:hover .chat-msg-actions[b-qsxaam6s7i] {
        opacity: 1;
        pointer-events: auto;
    }
}


@media (hover: none) {
    .chat-msg-actions[b-qsxaam6s7i] {
        opacity: 1;
        pointer-events: auto;
    }
}

.chat-msg-trigger[b-qsxaam6s7i] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: 0;
    border-radius: 50%;
    background: rgba(28, 28, 30, 0.06);
    color: var(--crm-muted, #636366);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.chat-msg-trigger:focus-visible[b-qsxaam6s7i] {
    background: rgba(28, 28, 30, 0.12);
    color: var(--crm-text, #1c1c1e);
    outline: none;
}

@media (hover: hover) {
    .chat-msg-trigger:hover[b-qsxaam6s7i] {
        background: rgba(28, 28, 30, 0.12);
        color: var(--crm-text, #1c1c1e);
        outline: none;
    }
}


/* Kontextmenü (Bearbeiten / Löschen) */
.chat-msg-menu[b-qsxaam6s7i] {
    position: absolute;
    right: 0;
    bottom: calc(100% + 6px);
    z-index: 41;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 5px;
    min-width: 172px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid #e9eaef;
    box-shadow: 0 12px 34px rgba(28, 28, 30, 0.18), 0 2px 6px rgba(28, 28, 30, 0.08);
    transform-origin: bottom right;
}

/* nach unten öffnen, wenn oben kein Platz ist (z. B. oberste Nachricht) */
.chat-msg-menu--down[b-qsxaam6s7i] {
    top: calc(100% + 6px);
    bottom: auto;
    transform-origin: top right;
}

/* während der Richtungsmessung unsichtbar (kein Flackern) */
.chat-msg-menu--measuring[b-qsxaam6s7i] {
    visibility: hidden;
}

.chat-msg-menu:not(.chat-msg-menu--measuring)[b-qsxaam6s7i] {
    animation: chat-menu-pop-b-qsxaam6s7i 0.13s ease-out;
}

@keyframes chat-menu-pop-b-qsxaam6s7i {
    from {
        opacity: 0;
        transform: scale(0.96);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.chat-msg-menu-item[b-qsxaam6s7i] {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    padding: 8px 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--crm-text, #1c1c1e);
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
}

.chat-msg-menu-item svg[b-qsxaam6s7i] {
    flex-shrink: 0;
}

.chat-msg-menu-item:focus-visible[b-qsxaam6s7i] {
    background: rgba(28, 28, 30, 0.06);
    outline: none;
}

@media (hover: hover) {
    .chat-msg-menu-item:hover[b-qsxaam6s7i] {
        background: rgba(28, 28, 30, 0.06);
        outline: none;
    }
}


.chat-msg-menu-item--danger[b-qsxaam6s7i] {
    color: #c4261d;
}

.chat-msg-menu-item--danger:focus-visible[b-qsxaam6s7i] {
    background: rgba(196, 38, 29, 0.1);
}

@media (hover: hover) {
    .chat-msg-menu-item--danger:hover[b-qsxaam6s7i] {
        background: rgba(196, 38, 29, 0.1);
    }
}


.chat-msg-menu-q[b-qsxaam6s7i] {
    padding: 6px 10px 3px;
    font-size: 12px;
    font-weight: 800;
    color: var(--crm-text, #1c1c1e);
}

.chat-msg-menu-confirm[b-qsxaam6s7i] {
    display: flex;
    gap: 4px;
}

.chat-msg-menu-confirm .chat-msg-menu-item[b-qsxaam6s7i] {
    flex: 1;
    justify-content: center;
}

/* Inline-Editor */
.chat-bubble--editing[b-qsxaam6s7i] {
    width: 100%;
    min-width: min(240px, 78vw);
    background: #fff !important;
    color: var(--crm-text, #1c1c1e) !important;
    border: 1px solid #e1e4ea !important;
    box-shadow: 0 2px 10px rgba(28, 28, 30, 0.08) !important;
    padding: 8px !important;
}

.chat-edit[b-qsxaam6s7i] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}

.chat-edit-input[b-qsxaam6s7i] {
    width: 100%;
    min-height: 60px;
    max-height: 240px;
    padding: 8px 10px;
    border: 1px solid #d9dce3;
    border-radius: 10px;
    background: #fff;
    color: var(--crm-text, #1c1c1e);
    font: inherit;
    font-size: 13.5px;
    line-height: 1.45;
    resize: vertical;
}

.chat-edit-input:focus-visible[b-qsxaam6s7i] {
    outline: none;
    border-color: var(--crm-accent, #16181c);
    box-shadow: 0 0 0 3px rgba(28, 28, 30, 0.1);
}

.chat-edit-attachments[b-qsxaam6s7i] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.chat-edit-chip[b-qsxaam6s7i] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 28px 5px 5px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
    max-width: 220px;
}

.chat-edit-chip--removing[b-qsxaam6s7i] {
    opacity: 0.55;
    border-style: dashed;
}

.chat-edit-chip--removing .chat-edit-chip-name[b-qsxaam6s7i] {
    text-decoration: line-through;
}

.chat-edit-chip--error[b-qsxaam6s7i] {
    border-color: rgba(196, 38, 29, 0.4);
    background: #fff5f4;
}

.chat-edit-chip-preview[b-qsxaam6s7i] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 7px;
    background: #eef2f6;
    color: #475569;
    overflow: hidden;
}

.chat-edit-chip-preview img[b-qsxaam6s7i] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.chat-edit-chip-name[b-qsxaam6s7i] {
    font-size: 12px;
    font-weight: 700;
    color: var(--crm-text, #1c1c1e);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 140px;
}

.chat-edit-chip-btn[b-qsxaam6s7i] {
    position: absolute;
    top: 50%;
    right: 5px;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border: 0;
    border-radius: 50%;
    background: rgba(28, 28, 30, 0.06);
    color: var(--crm-muted, #636366);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.chat-edit-chip-btn:focus-visible[b-qsxaam6s7i] {
    background: rgba(28, 28, 30, 0.12);
    color: var(--crm-text, #1c1c1e);
    outline: none;
}

@media (hover: hover) {
    .chat-edit-chip-btn:hover[b-qsxaam6s7i] {
        background: rgba(28, 28, 30, 0.12);
        color: var(--crm-text, #1c1c1e);
        outline: none;
    }
}


.chat-edit-chip--removing .chat-edit-chip-btn[b-qsxaam6s7i] {
    background: rgba(28, 28, 30, 0.12);
    color: var(--crm-accent, #16181c);
}

.chat-edit-file-input[b-qsxaam6s7i] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    margin: -1px;
    padding: 0;
    border: 0;
    white-space: nowrap;
    pointer-events: none;
}

.chat-edit-bar[b-qsxaam6s7i] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.chat-edit-attach[b-qsxaam6s7i] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border: 1px solid #d9dce3;
    border-radius: 50%;
    background: #fff;
    color: #6b7280;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.chat-edit-attach:focus-visible[b-qsxaam6s7i] {
    color: var(--crm-text, #1c1c1e);
    border-color: #c7ccd6;
    background: rgba(0, 0, 0, 0.03);
    outline: none;
}

@media (hover: hover) {
    .chat-edit-attach:hover[b-qsxaam6s7i] {
        color: var(--crm-text, #1c1c1e);
        border-color: #c7ccd6;
        background: rgba(0, 0, 0, 0.03);
        outline: none;
    }
}


.chat-edit-actions[b-qsxaam6s7i] {
    display: flex;
    gap: 8px;
    margin-left: auto;
}

.chat-edit-cancel[b-qsxaam6s7i],
.chat-edit-save[b-qsxaam6s7i] {
    padding: 7px 14px;
    border: 1px solid transparent;
    border-radius: 9px;
    font: inherit;
    font-size: 12.5px;
    font-weight: 800;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, box-shadow 0.15s;
}

.chat-edit-cancel[b-qsxaam6s7i] {
    background: transparent;
    border-color: #d9dce3;
    color: var(--crm-muted, #636366);
}

.chat-edit-cancel:focus-visible[b-qsxaam6s7i] {
    background: rgba(28, 28, 30, 0.05);
    color: var(--crm-text, #1c1c1e);
    outline: none;
}

@media (hover: hover) {
    .chat-edit-cancel:hover[b-qsxaam6s7i] {
        background: rgba(28, 28, 30, 0.05);
        color: var(--crm-text, #1c1c1e);
        outline: none;
    }
}


.chat-edit-save[b-qsxaam6s7i] {
    background: var(--crm-accent, #16181c);
    color: #fff;
    box-shadow: 0 3px 10px rgba(28, 28, 30, 0.28);
}

.chat-edit-save:focus-visible:not(:disabled)[b-qsxaam6s7i] {
    background: #26282e;
    outline: none;
}

@media (hover: hover) {
    .chat-edit-save:hover:not(:disabled)[b-qsxaam6s7i] {
        background: #26282e;
        outline: none;
    }
}


.chat-edit-save:disabled[b-qsxaam6s7i] {
    background: #cdd3dd;
    box-shadow: none;
    cursor: not-allowed;
}

/* Freestanding composer (AI-chat style) */
.chat-composer-wrap[b-qsxaam6s7i] {
    position: relative;
    flex-shrink: 0;
    padding: 12px 18px 18px;
    background: transparent;
}

.chat-file-input-wrap[b-qsxaam6s7i] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    margin: -1px;
    padding: 0;
    border: 0;
    white-space: nowrap;
    pointer-events: none;
}

.chat-file-input-wrap > *[b-qsxaam6s7i] {
    width: 1px;
    height: 1px;
}

.chat-attach-btn[b-qsxaam6s7i] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    margin-left: -10px;
    margin-bottom: 1px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #6b7280;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.chat-attach-btn:focus-visible[b-qsxaam6s7i] {
    color: var(--crm-text, #1c1c1e);
    background: rgba(0, 0, 0, 0.05);
    outline: none;
}

@media (hover: hover) {
    .chat-attach-btn:hover[b-qsxaam6s7i] {
        color: var(--crm-text, #1c1c1e);
        background: rgba(0, 0, 0, 0.05);
        outline: none;
    }
}


/* Status pill: "X Dateien werden verarbeitet" */
.chat-upload-status[b-qsxaam6s7i] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 auto 8px;
    padding: 6px 14px 6px 10px;
    border-radius: 999px;
    background: rgba(28, 28, 30, 0.92);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    box-shadow: 0 4px 14px rgba(28, 28, 30, 0.2);
    width: max-content;
    max-width: 90%;
    animation: chat-char-popup-fade-in-b-qsxaam6s7i 0.15s ease-out;
}

.chat-upload-spinner[b-qsxaam6s7i] {
    display: inline-block;
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: #ffffff;
    animation: chat-spin-b-qsxaam6s7i 0.7s linear infinite;
}

.chat-upload-spinner--small[b-qsxaam6s7i] {
    width: 18px;
    height: 18px;
    border-color: rgba(28, 28, 30, 0.25);
    border-top-color: var(--crm-accent, #16181c);
}

@keyframes chat-spin-b-qsxaam6s7i {
    to { transform: rotate(360deg); }
}

/* Staged attachment chips above the composer */
.chat-staged[b-qsxaam6s7i] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
}

.chat-staged-chip[b-qsxaam6s7i] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 30px 6px 6px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(28, 28, 30, 0.05);
    max-width: 260px;
}

.chat-staged-chip--processing[b-qsxaam6s7i] {
    background: #f5f6f8;
}

.chat-staged-chip--error[b-qsxaam6s7i] {
    border-color: rgba(196, 38, 29, 0.4);
    background: #fff5f4;
}

.chat-staged-preview[b-qsxaam6s7i] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: #eef2f6;
    color: #475569;
    overflow: hidden;
}

.chat-staged-preview img[b-qsxaam6s7i] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.chat-staged-meta[b-qsxaam6s7i] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.25;
}

.chat-staged-meta strong[b-qsxaam6s7i] {
    font-size: 12px;
    font-weight: 800;
    color: var(--crm-text, #1c1c1e);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 170px;
}

.chat-staged-meta small[b-qsxaam6s7i] {
    font-size: 11px;
    font-weight: 600;
    color: var(--crm-muted, #636366);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 170px;
}

.chat-staged-chip--error .chat-staged-meta small[b-qsxaam6s7i] {
    color: #c4261d;
}

.chat-staged-remove[b-qsxaam6s7i] {
    position: absolute;
    top: 6px;
    right: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border: 0;
    border-radius: 50%;
    background: rgba(28, 28, 30, 0.06);
    color: var(--crm-muted, #636366);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.chat-staged-remove:focus-visible[b-qsxaam6s7i] {
    background: rgba(196, 38, 29, 0.12);
    color: #c4261d;
    outline: none;
}

@media (hover: hover) {
    .chat-staged-remove:hover[b-qsxaam6s7i] {
        background: rgba(196, 38, 29, 0.12);
        color: #c4261d;
        outline: none;
    }
}


/* Attachments inside sent messages */
.chat-attach-grid[b-qsxaam6s7i] {
    display: grid;
    gap: 4px;
    margin-bottom: 6px;
    width: 100%;
    max-width: 100%;
}

.chat-attach-grid--count-1[b-qsxaam6s7i] {
    grid-template-columns: 1fr;
}

.chat-attach-grid--count-2[b-qsxaam6s7i] {
    grid-template-columns: repeat(2, 1fr);
}

.chat-attach-grid--count-3[b-qsxaam6s7i],
.chat-attach-grid--count-4[b-qsxaam6s7i] {
    grid-template-columns: repeat(2, 1fr);
}

.chat-attach-image[b-qsxaam6s7i] {
    display: block;
    overflow: hidden;
    border: 0;
    border-radius: 8px;
    padding: 0;
    aspect-ratio: 1;
    background: rgba(0, 0, 0, 0.04);
    cursor: zoom-in;
    transition: transform 0.15s;
}

.chat-attach-image:focus-visible[b-qsxaam6s7i] {
    outline: 2px solid var(--crm-accent, #16181c);
    outline-offset: 2px;
}

.chat-attach-grid--count-1 .chat-attach-image[b-qsxaam6s7i] {
    aspect-ratio: auto;
    max-height: 320px;
}

.chat-attach-image img[b-qsxaam6s7i] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (hover: hover) {
    .chat-attach-image:hover[b-qsxaam6s7i] {
        transform: scale(1.01);
    }
}


/* Karte für einen PDF-Anhang — ein Knopf, weil sie die Lightbox öffnet (kein Link mehr):
   Rahmen, Schriftart und Textausrichtung müssen deshalb ausdrücklich stehen. */
.chat-attach-pdf[b-qsxaam6s7i] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 6px;
    padding: 8px 12px 8px 10px;
    border: 0;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.18);
    color: inherit;
    font: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s;
}

.chat-message--other .chat-attach-pdf[b-qsxaam6s7i] {
    background: #f5f6f8;
    border: 1px solid #e9eaef;
}

.chat-attach-pdf:focus-visible[b-qsxaam6s7i] {
    background: rgba(255, 255, 255, 0.28);
    outline: none;
}

@media (hover: hover) {
    .chat-attach-pdf:hover[b-qsxaam6s7i] {
        background: rgba(255, 255, 255, 0.28);
        outline: none;
    }
}


.chat-message--other .chat-attach-pdf:focus-visible[b-qsxaam6s7i] {
    background: #eceef2;
}

@media (hover: hover) {
    .chat-message--other .chat-attach-pdf:hover[b-qsxaam6s7i] {
        background: #eceef2;
    }
}


.chat-attach-pdf-icon[b-qsxaam6s7i] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.2);
}

.chat-message--other .chat-attach-pdf-icon[b-qsxaam6s7i] {
    background: var(--crm-accent, #16181c);
    color: #fff;
}

.chat-attach-pdf-text[b-qsxaam6s7i] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.3;
}

.chat-attach-pdf-text strong[b-qsxaam6s7i] {
    font-size: 13px;
    font-weight: 800;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.chat-attach-pdf-text small[b-qsxaam6s7i] {
    font-size: 11px;
    font-weight: 700;
    opacity: 0.75;
    font-variant-numeric: tabular-nums;
}

.chat-composer[b-qsxaam6s7i] {
    position: relative;
    display: flex;
    align-items: flex-end;
    gap: 8px;
    padding: 6px 6px 6px 18px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 26px;
    box-shadow: 0 6px 20px rgba(28, 28, 30, 0.08), 0 1px 2px rgba(28, 28, 30, 0.04);
    transition: border-color 0.15s, box-shadow 0.15s;
}

.chat-composer:focus-within[b-qsxaam6s7i] {
    border-color: #cbd5e1;
    box-shadow: 0 8px 24px rgba(28, 28, 30, 0.12), 0 0 0 3px rgba(28, 28, 30, 0.08);
}

.chat-input[b-qsxaam6s7i] {
    flex: 1;
    min-width: 0;
    min-height: 38px;
    max-height: 160px;
    padding: 9px 4px;
    border: 0;
    background: transparent;
    color: var(--crm-text, #1c1c1e);
    font: inherit;
    font-size: 14px;
    line-height: 1.45;
    resize: none;
}

.chat-input[b-qsxaam6s7i]::placeholder {
    color: #9ca3af;
}

.chat-input:focus-visible[b-qsxaam6s7i] {
    outline: none;
}

.chat-send[b-qsxaam6s7i] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: var(--crm-accent, #16181c);
    color: #fff;
    cursor: pointer;
    transition: background 0.15s, transform 0.1s, box-shadow 0.15s;
    box-shadow: 0 3px 10px rgba(28, 28, 30, 0.32);
}

.chat-send svg[b-qsxaam6s7i] {
    transform: translate(-1px, 1px);
}

.chat-send:focus-visible:not(:disabled)[b-qsxaam6s7i] {
    background: #26282e;
    outline: none;
}

@media (hover: hover) {
    .chat-send:hover:not(:disabled)[b-qsxaam6s7i] {
        background: #26282e;
        outline: none;
    }
}


.chat-send:active:not(:disabled)[b-qsxaam6s7i] {
    transform: scale(0.94);
}

.chat-send:disabled[b-qsxaam6s7i] {
    background: #d1d5db;
    box-shadow: none;
    cursor: not-allowed;
}

/* Char-limit popups above composer */
/* Dateiauswahl nach getipptem „#" — sitzt über der Eingabeleiste. Fest positioniert
   (left/top setzt die Komponente), sonst schneidet das overflow:hidden von Termin-Modal
   und Vorschauspalte die Liste ab; translateY hängt sie über die gemessene Kante. */
.chat-dokref-pop[b-qsxaam6s7i] {
    position: fixed;
    z-index: 2600;
    width: 340px;
    max-width: calc(100vw - 16px);
    transform: translateY(-100%);
}

/* Ohne Messwerte: wie vorher absolut über der Eingabeleiste. */
.chat-dokref-pop--ungemessen[b-qsxaam6s7i] {
    position: absolute;
    left: 0;
    bottom: calc(100% + 8px);
    width: auto;
    max-width: min(340px, 100%);
    transform: none;
}

/* Touch-Geräte: kein position:fixed — auf iOS rutscht eine fest positionierte Liste bei
   eingeblendeter Tastatur aus dem Bild. Hier klebt sie an der Eingabeleiste. */
@media (hover: none) {
    .chat-dokref-pop[b-qsxaam6s7i] {
        position: absolute;
        left: 0 !important;
        top: auto !important;
        bottom: calc(100% + 8px);
        width: auto;
        max-width: min(340px, 100%);
        transform: none;
    }
}

.chat-char-popup[b-qsxaam6s7i] {
    position: absolute;
    bottom: calc(100% + 6px);
    right: 14px;
    z-index: 4;
    padding: 5px 11px;
    border-radius: 999px;
    background: rgba(28, 28, 30, 0.9);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.01em;
    white-space: nowrap;
    box-shadow: 0 4px 14px rgba(28, 28, 30, 0.18);
    animation: chat-char-popup-fade-in-b-qsxaam6s7i 0.15s ease-out;
}

.chat-char-popup[b-qsxaam6s7i]::after {
    content: "";
    position: absolute;
    top: 100%;
    right: 16px;
    width: 0;
    height: 0;
    border: 4px solid transparent;
    border-top-color: rgba(28, 28, 30, 0.9);
}

.chat-char-popup--limit[b-qsxaam6s7i] {
    background: #c4261d;
}

.chat-char-popup--limit[b-qsxaam6s7i]::after {
    border-top-color: #c4261d;
}

@keyframes chat-char-popup-fade-in-b-qsxaam6s7i {
    from {
        opacity: 0;
        transform: translateY(4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Die Vollbild-Anzeige (Bild/PDF) liegt in der Shared-Komponente AppLightbox. */

/* Compact mode (mobile-tight, e.g. inside an appointment-detail card) */
.chat-area--compact .chat-messages[b-qsxaam6s7i] {
    padding: 10px 12px 6px;
}

.chat-area--compact .chat-composer-wrap[b-qsxaam6s7i] {
    padding: 8px 10px 12px;
}

.chat-area--compact .chat-composer[b-qsxaam6s7i] {
    padding-left: 12px;
}

.chat-area--compact .chat-bubble-wrap[b-qsxaam6s7i] {
    max-width: 85%;
}

.chat-area--compact .chat-empty[b-qsxaam6s7i] {
    padding: 28px 16px;
}

@media (max-width: 760px) {
    .chat-messages[b-qsxaam6s7i] {
        padding: 12px 12px 8px;
    }

    .chat-bubble-wrap[b-qsxaam6s7i] {
        max-width: 82%;
    }

    .chat-composer-wrap[b-qsxaam6s7i] {
        padding: 10px 12px 14px;
    }

    .chat-composer[b-qsxaam6s7i] {
        padding-left: 14px;
    }
}
/* /Components/Shared/DokRef/DokRefPicker.razor.rz.scp.css */
.dokref-pop[b-1iqj242bsv] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 6px;
    min-width: 200px;
    max-width: min(340px, 100%);
    max-height: 260px;
    overflow-y: auto;
    border: 1px solid #e4e4e7;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 14px 34px -18px rgba(0, 0, 0, .4);
    /* Schmale Bildlaufleiste wie in den übrigen Listen der App. */
    scrollbar-width: thin;
    scrollbar-color: #e4e4e7 transparent;
}

.dokref-pop[b-1iqj242bsv]::-webkit-scrollbar {
    width: 8px;
}

.dokref-pop[b-1iqj242bsv]::-webkit-scrollbar-thumb {
    border-radius: 8px;
    background: #e4e4e7;
}

.dokref-empty[b-1iqj242bsv] {
    padding: 8px 10px;
    font-size: 12.5px;
    font-weight: 600;
    color: #80858d;
}

.dokref-item[b-1iqj242bsv] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 7px 9px;
    border: none;
    border-radius: 9px;
    background: transparent;
    color: #16181c;
    font: inherit;
    font-size: 13.5px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

@media (hover: hover) {
    .dokref-item:hover[b-1iqj242bsv] {
        background: #f3f4f6;
    }
}

.dokref-item:focus-visible[b-1iqj242bsv] {
    outline: 2px solid #16181c;
    outline-offset: -2px;
}

.dokref-item-icon[b-1iqj242bsv] {
    flex: none;
    color: #80858d;
}

.dokref-item-name[b-1iqj242bsv] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Shared/EmployeePreview/EmployeePreviewModal.razor.rz.scp.css */
/* ============================================================================
   Mitarbeiteransicht — schwebender Handy-Ausschnitt (iOS-Look, monochrom)
   Tokens: page #f5f5f7 · surface #fff · ink #16181c · ink-soft #3c4148
           muted #80858d · line #e4e4e7 · fill #efeff1
           danger #e2483b / #fbeae8 · success #137a3b / #dff2e7 · warn #a15c00 / #f7ead8
   Aufbau: kleine Info-Karte (Person + Schließen) ÜBER dem randlosen
   Phone-Rahmen — beides schwebt frei über dem abgedunkelten Hintergrund.
============================================================================ */

.epv-layer[b-jkq4w76i3h] {
    position: fixed;
    inset: 0;
    z-index: 4000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.epv-backdrop[b-jkq4w76i3h] {
    position: absolute;
    inset: 0;
    border: 0;
    padding: 0;
    background: rgba(15, 16, 18, 0.5);
    cursor: default;
    animation: epvFade-b-jkq4w76i3h 0.2s ease backwards;
}

@keyframes epvFade-b-jkq4w76i3h {
    from { opacity: 0; }
}

.epv-stack[b-jkq4w76i3h] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: min(400px, calc(100vw - 32px));
    height: min(840px, calc(100dvh - 40px));
    animation: epvPop-b-jkq4w76i3h 0.22s cubic-bezier(0.32, 0.72, 0, 1) backwards;
}

@keyframes epvPop-b-jkq4w76i3h {
    from {
        opacity: 0;
        transform: translateY(10px) scale(0.98);
    }
}

/* -- Info-Karte (wer wird angesehen + Schließen) ----------------------------- */

.epv-card[b-jkq4w76i3h] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid #e4e4e7;
    border-radius: 18px;
    padding: 11px 12px;
    background: #fff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
}

.epv-avatar-wrap[b-jkq4w76i3h] {
    position: relative;
    flex-shrink: 0;
}

.epv-avatar[b-jkq4w76i3h] {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 19px;
    font-weight: 700;
}

/* Status-Punkt unten rechts am Avatar (Farben lokal — die user-status-dot-Klassen
   der Admin-Seiten sind scoped und greifen hier nicht). */
.epv-status-dot[b-jkq4w76i3h] {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 13px;
    height: 13px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #80858d;
}

.epv-status-dot.user-status-dot--active[b-jkq4w76i3h] {
    background: #16a34a;
}

.epv-status-dot.user-status-dot--warn[b-jkq4w76i3h] {
    background: #d97706;
}

.epv-status-dot.user-status-dot--inactive[b-jkq4w76i3h] {
    background: #e2483b;
}

.epv-text[b-jkq4w76i3h] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.epv-kicker[b-jkq4w76i3h] {
    color: #80858d;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.epv-text h2[b-jkq4w76i3h] {
    margin: 0;
    color: #16181c;
    font-family: 'Quicksand', 'Plus Jakarta Sans', sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.15;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.epv-chips[b-jkq4w76i3h] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.epv-chip[b-jkq4w76i3h] {
    display: inline-flex;
    align-items: center;
    height: 20px;
    border-radius: 999px;
    padding: 0 8px;
    background: #efeff1;
    color: #16181c;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.epv-chip--active[b-jkq4w76i3h] {
    color: #137a3b;
    background: #dff2e7;
}

.epv-chip--warn[b-jkq4w76i3h] {
    color: #a15c00;
    background: #f7ead8;
}

.epv-chip--inactive[b-jkq4w76i3h] {
    color: #b3392e;
    background: #fbeae8;
}

/* Bereichs-Chips behalten ihre Stammdaten-Farbe (semantisch) */
.epv-chip--department[b-jkq4w76i3h] {
    color: var(--badge-text, #16181c);
    background: color-mix(in srgb, var(--badge-color, #16181c) 16%, #ffffff);
}

.epv-close[b-jkq4w76i3h] {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    padding: 0;
    color: #3c4148;
    background: #fff;
    font: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

@media (hover: hover) {
    .epv-close:hover[b-jkq4w76i3h] {
        background: #16181c;
        border-color: #16181c;
        color: #fff;
    }
}

.epv-close:focus-visible[b-jkq4w76i3h] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
}

.epv-close:active[b-jkq4w76i3h] {
    transform: scale(0.94);
}

/* -- Phone-Rahmen: randloser Handy-Ausschnitt --------------------------------- */

.epv-phone[b-jkq4w76i3h] {
    flex: 1;
    min-height: 0;
    border: 1px solid #e4e4e7;
    border-radius: 36px;
    background: #f5f5f7;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
    overflow: hidden;
}

.epv-frame[b-jkq4w76i3h] {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.epv-sr-only[b-jkq4w76i3h] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

/* -- Schmale Fenster ----------------------------------------------------------- */

@media (max-width: 440px) {
    .epv-layer[b-jkq4w76i3h] {
        padding: 12px;
    }

    .epv-stack[b-jkq4w76i3h] {
        width: calc(100vw - 24px);
        height: calc(100dvh - 24px);
    }

    .epv-phone[b-jkq4w76i3h] {
        border-radius: 30px;
    }
}
/* /Components/Shared/Employee/EmployeeDirectory.razor.rz.scp.css */
.empdir[b-3lf3f9m4nv] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    background: #ffffff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 6px 18px -12px rgba(0, 0, 0, 0.22);
    overflow: hidden;
}

/* Ecken zusätzlich am ersten/letzten Kind selbst runden – nicht allein auf das
   overflow:hidden des Containers verlassen. Chromium lässt das abgerundete
   Eck-Clipping bei Enhanced-Navigation (z. B. von /fleet hierher) gelegentlich
   fallen, bis ein Repaint kommt; dann übermalt die eckige weiße Toolbar die
   runde Kartenecke. Mit eigenen Kind-Radien bleibt die Ecke immer rund. */
.empdir-headerslot:first-child[b-3lf3f9m4nv],
.empdir-toolbar:first-child[b-3lf3f9m4nv] {
    border-top-left-radius: 16px;
    border-top-right-radius: 16px;
}

.empdir-list:last-child[b-3lf3f9m4nv] {
    border-bottom-left-radius: 16px;
    border-bottom-right-radius: 16px;
}

.empdir-headerslot[b-3lf3f9m4nv] {
    padding: 16px;
    border-bottom: 1px solid #e4e4e7;
}

/* -- Toolbar ------------------------------------------------------------- */
.empdir-toolbar[b-3lf3f9m4nv] {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border-bottom: 1px solid #e4e4e7;
    background: #ffffff;
}

.empdir-search[b-3lf3f9m4nv] {
    min-width: 0;
    height: 42px;
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 0 10px 0 12px;
    background: #ffffff;
    transition: border-color 0.15s, background 0.15s;
}

.empdir-search:focus-within[b-3lf3f9m4nv] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, 0.12);
    background: #ffffff;
}

.empdir-search-icon[b-3lf3f9m4nv] {
    color: #80858d;
    flex-shrink: 0;
}

.empdir-search input[b-3lf3f9m4nv] {
    min-width: 0;
    flex: 1;
    border: none;
    outline: none;
    color: #16181c;
    background: transparent;
    font: inherit;
    font-size: 0.92rem;
    font-weight: 600;
}

.empdir-search input[b-3lf3f9m4nv]::placeholder {
    color: #80858d;
}

.empdir-search-clear[b-3lf3f9m4nv] {
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: none;
    border-radius: 50%;
    padding: 0;
    color: #80858d;
    background: #efeff1;
    font: inherit;
    font-size: 0.86rem;
    font-weight: 850;
    line-height: 1;
    cursor: pointer;
}

.empdir-search-clear:focus-visible[b-3lf3f9m4nv] {
    color: #16181c;
    background: #e7e7ea;
    outline: none;
}

@media (hover: hover) {
    .empdir-search-clear:hover[b-3lf3f9m4nv] {
        color: #16181c;
        background: #e7e7ea;
        outline: none;
    }
}

/* -- Sortieren + Filtern (wie Kunden) ----------------------------------- */
.btn-sort-filter[b-3lf3f9m4nv] {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 0;
    color: #3c4148;
    background: #ffffff;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
}

.btn-sort-filter:focus-visible[b-3lf3f9m4nv] {
    border-color: #e4e4e7;
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .btn-sort-filter:hover[b-3lf3f9m4nv] {
        border-color: #e4e4e7;
        color: #16181c;
        background: #efeff1;
        outline: none;
    }
}

.btn-sort-filter--open[b-3lf3f9m4nv] {
    border-color: #16181c;
    color: #ffffff;
    background: #16181c;
    outline: none;
}

.sort-filter-backdrop[b-3lf3f9m4nv] {
    position: fixed;
    inset: 0;
    z-index: 40;
    border: none;
    padding: 0;
    background: transparent;
    cursor: default;
}

.empdir-sort-popover[b-3lf3f9m4nv] {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: 50;
    display: grid;
    grid-template-columns: 1fr 1fr;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.26), 0 6px 14px -10px rgba(0, 0, 0, 0.12);
    overflow: hidden;
}

.empdir-sort-pane[b-3lf3f9m4nv] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 10px;
}

.empdir-sort-pane--filter[b-3lf3f9m4nv] {
    border-left: 1px solid #e4e4e7;
    background: #f5f5f7;
}

.sort-filter-title[b-3lf3f9m4nv] {
    display: flex;
    align-items: center;
    min-height: 22px;
    margin-bottom: 8px;
    color: #80858d;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.sort-option-group[b-3lf3f9m4nv] {
    display: grid;
    gap: 3px;
    padding: 4px;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    background: #ffffff;
}

.sort-option-group + .sort-option-group[b-3lf3f9m4nv] {
    margin-top: 7px;
}

.sort-option[b-3lf3f9m4nv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    min-height: 32px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #3c4148;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    text-align: left;
    padding: 0 9px;
    cursor: pointer;
}

.sort-option > span[b-3lf3f9m4nv] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sort-option strong[b-3lf3f9m4nv] {
    flex-shrink: 0;
    min-width: 20px;
    border-radius: 999px;
    padding: 2px 6px;
    color: #80858d;
    background: #efeff1;
    font-size: 10px;
    font-weight: 850;
    text-align: center;
}

.sort-option--active[b-3lf3f9m4nv] {
    background: #efeff1;
    color: #16181c;
}

@media (hover: hover) {
    .sort-option:hover[b-3lf3f9m4nv] {
        background: #efeff1;
        color: #16181c;
    }
}

.sort-option--active strong[b-3lf3f9m4nv] {
    color: #ffffff;
    background: #16181c;
}

/* -- List ---------------------------------------------------------------- */
.empdir-list[b-3lf3f9m4nv] {
    min-height: 0;
    overflow-y: auto;
}

.empdir-empty[b-3lf3f9m4nv] {
    min-height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    color: #80858d;
    font-size: 0.92rem;
    font-weight: 650;
    text-align: center;
}

.empdir-item[b-3lf3f9m4nv] {
    display: flex;
    align-items: stretch;
    gap: 6px;
    padding: 6px 8px;
    border-bottom: 1px solid #efeff1;
}

.empdir-item:last-child[b-3lf3f9m4nv] {
    border-bottom: none;
}

.empdir-row[b-3lf3f9m4nv] {
    flex: 1;
    min-width: 0;
    min-height: 58px;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    border: 1.5px solid transparent;
    border-radius: 12px;
    padding: 8px 10px;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

@media (hover: hover) {
    .empdir-row:hover[b-3lf3f9m4nv] {
        background: #efeff1;
    }
}

.empdir-row--selected[b-3lf3f9m4nv] {
    border-color: #16181c;
    background: #efeff1;
}

.empdir-avatar-wrap[b-3lf3f9m4nv] {
    position: relative;
    width: max-content;
}

.empdir-avatar[b-3lf3f9m4nv] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 50%;
    color: #ffffff;
    background: #16181c;
    font-family: 'Quicksand', sans-serif;
    font-size: 0.98rem;
    font-weight: 700;
}

.user-status-dot[b-3lf3f9m4nv] {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 13px;
    height: 13px;
    border: 2px solid #ffffff;
    border-radius: 999px;
    box-shadow: 0 0 0 1px rgba(28, 28, 30, 0.08);
}

.user-status-dot--active[b-3lf3f9m4nv] {
    background: #34c759;
}

.user-status-dot--warn[b-3lf3f9m4nv] {
    background: #ff9500;
}

.user-status-dot--inactive[b-3lf3f9m4nv] {
    background: #ff3b30;
}

.empdir-main[b-3lf3f9m4nv] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.empdir-name-line[b-3lf3f9m4nv] {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.empdir-protected-icon[b-3lf3f9m4nv] {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    color: #d92d20;
}

.empdir-name[b-3lf3f9m4nv] {
    color: #16181c;
    font-size: 0.96rem;
    font-weight: 750;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.empdir-sub[b-3lf3f9m4nv] {
    color: #80858d;
    font-size: 0.82rem;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.empdir-preview[b-3lf3f9m4nv] {
    width: 42px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    padding: 0;
    color: #3c4148;
    background: #ffffff;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
}

.empdir-preview:focus-visible[b-3lf3f9m4nv] {
    border-color: #e4e4e7;
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .empdir-preview:hover[b-3lf3f9m4nv] {
        border-color: #e4e4e7;
        color: #16181c;
        background: #efeff1;
        outline: none;
    }
}
/* /Components/Shared/IconSelect/IconSelect.razor.rz.scp.css */
.iconsel[b-l6nq7h7nph] {
    position: relative;
    width: 100%;
}

.iconsel-trigger[b-l6nq7h7nph] {
    display: flex;
    align-items: center;
    gap: .5rem;
    box-sizing: border-box;
    width: 100%;
    min-height: 40px;
    padding: 0 11px;
    background: #f7f7f9;
    border: 1px solid #e4e4e7;
    border-radius: 11px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 650;
    color: #16181c;
    cursor: pointer;
    text-align: left;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

@media (hover: hover) {
    .iconsel-trigger:hover[b-l6nq7h7nph] {
        border-color: #d4d4d8;
    }
}

.iconsel-trigger--open[b-l6nq7h7nph] {
    background: #fff;
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.iconsel-trigger:disabled[b-l6nq7h7nph] {
    cursor: not-allowed;
    opacity: .55;
    background: #efeff1;
}

/* Pflichtfeld nicht ausgefüllt (z. B. nach Speichern-Klick). */
.iconsel-trigger--error[b-l6nq7h7nph] {
    border-color: #e2483b;
    background: #fbeae8;
}

/* Kompakt-Variante für Tabellenzellen (via Class="iconsel--compact"). */
.iconsel-trigger.iconsel--compact[b-l6nq7h7nph] {
    min-height: 26px;
    padding: 2px 6px;
    gap: 3px;
    font-size: 11px;
    border-radius: 6px;
    background: #fff;
}

    .iconsel-trigger.iconsel--compact .iconsel-caret[b-l6nq7h7nph] {
        width: 12px;
        height: 12px;
    }

@media (hover: hover) {
    .iconsel-trigger:disabled:hover[b-l6nq7h7nph] {
        border-color: #e4e4e7;
    }
}

.iconsel-ico[b-l6nq7h7nph] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.45rem;
    height: 1.45rem;
    flex: 0 0 auto;
    color: #3c4148;
}

.iconsel-clear[b-l6nq7h7nph] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.2rem;
    height: 1.2rem;
    flex: 0 0 auto;
    color: #80858d;
    border-radius: 50%;
}

@media (hover: hover) {
    .iconsel-clear:hover[b-l6nq7h7nph] {
        background: #fbeae8;
        color: #e2483b;
    }
}

.iconsel-ico[b-l6nq7h7nph]  svg {
    width: 1.45rem;
    height: 1.45rem;
    display: block;
}

.iconsel-text[b-l6nq7h7nph] {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.iconsel-text--placeholder[b-l6nq7h7nph] {
    color: #80858d;
    font-weight: 400;
}

.iconsel-caret[b-l6nq7h7nph] {
    flex: 0 0 auto;
    color: #80858d;
}

/* Fixed statt absolute: bricht aus overflow-Containern und Sticky-Headern aus.
   Position/Breite/Max-Höhe setzt popoverFlip.registerFixed inline (Richtung = wohin
   Platz ist); bis dahin unsichtbar, damit nichts an falscher Stelle aufblitzt. */
.iconsel-menu[b-l6nq7h7nph] {
    position: fixed;
    visibility: hidden;
    min-width: 140px;
    z-index: 4000;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 16px;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .26), 0 6px 14px -10px rgba(0, 0, 0, .12);
    padding: 6px;
}

.iconsel-search[b-l6nq7h7nph] {
    box-sizing: border-box;
    width: 100%;
    height: 36px;
    margin-bottom: 6px;
    padding: 0 10px;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    font: inherit;
    font-size: 13px;
    color: #16181c;
    outline: none;
}

.iconsel-search:focus[b-l6nq7h7nph] {
    border-color: #16181c;
}

.iconsel-empty[b-l6nq7h7nph] {
    padding: 10px 12px;
    font-size: 12.5px;
    color: #80858d;
}

.iconsel-opt[b-l6nq7h7nph] {
    display: flex;
    align-items: center;
    gap: .6rem;
    width: 100%;
    min-height: 40px;
    padding: .5rem .65rem;
    background: transparent;
    border: 0;
    border-radius: 12px;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    color: #16181c;
    cursor: pointer;
    text-align: left;
}

@media (hover: hover) {
    .iconsel-opt:hover[b-l6nq7h7nph] {
        background: #efeff1;
    }
}

/* Gewählte Option: dezent grau hinterlegt + Haken rechts (statt schwarz gefüllt). */
.iconsel-opt--active[b-l6nq7h7nph] {
    background: #efeff1;
    font-weight: 700;
}

@media (hover: hover) {
    .iconsel-opt--active:hover[b-l6nq7h7nph] {
        background: #e7e7ea;
    }
}

.iconsel-check[b-l6nq7h7nph] {
    flex: 0 0 auto;
    color: #16181c;
}
/* /Components/Shared/Lightbox/AppLightbox.razor.rz.scp.css */
/* ============================================================================
   AppLightbox — Vollbild über allem (Toasts liegen mit 5000 bewusst darüber).
   ============================================================================ */

.app-lb[b-v9w4c01w9h] {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 24px;
    background: rgba(15, 18, 23, 0.94);
    animation: app-lb-fade-b-v9w4c01w9h 0.15s ease-out;
    outline: none;
}

@keyframes app-lb-fade-b-v9w4c01w9h {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Zoom-Fläche: füllt das Fenster, damit man das vergrößerte Bild überall greifen kann.
   touch-action MUSS statisch hier stehen — auf iOS wirkt es nicht, wenn es erst während
   der Geste gesetzt wird (dieselbe Falle wie beim Ordner-Drag). */
.app-lb-stage[b-v9w4c01w9h] {
    flex: 1 1 auto;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    overflow: hidden;
    touch-action: none;
    -webkit-user-select: none;
    user-select: none;
}

.app-lb-img[b-v9w4c01w9h] {
    max-width: min(96vw, 1800px);
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 8px;
    background: #1c1c1e;
    box-shadow: 0 16px 60px rgba(0, 0, 0, 0.55);
    transform-origin: center center;
    -webkit-user-drag: none;
    will-change: transform;
}

/* -- PDF-Vorschau ---------------------------------------------------------- */

.app-lb-stage--pdf[b-v9w4c01w9h] {
    display: block;
    touch-action: auto;
}

.app-lb-pdf[b-v9w4c01w9h] {
    display: block;
    width: min(96vw, 1100px);
    height: 100%;
    margin: 0 auto;
    border: 0;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 16px 60px rgba(0, 0, 0, 0.55);
}

/* -- Textvorschau (txt/csv) ------------------------------------------------ */

.app-lb-stage--text[b-v9w4c01w9h] {
    display: block;
    overflow: auto;
    touch-action: auto;
    -webkit-user-select: auto;
    user-select: auto;
}

.app-lb-text[b-v9w4c01w9h] {
    max-width: min(96vw, 1100px);
    margin: 0 auto;
    padding: 20px 22px;
    border-radius: 10px;
    background: #1c1c1e;
    box-shadow: 0 16px 60px rgba(0, 0, 0, 0.55);
    color: #e6e7ea;
    font-family: 'Cascadia Mono', Consolas, 'SF Mono', Menlo, monospace;
    font-size: 12.5px;
    line-height: 1.55;
    tab-size: 4;
    /* Lange Zeilen (typisch für CSV) umbrechen statt seitwärts scrollen. */
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/* -- Leiste unten: Name links, Werkzeuge und Schließen rechts --------------- */

.app-lb-bar[b-v9w4c01w9h] {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
    max-width: min(96vw, 1800px);
    padding: 8px 8px 8px 18px;
    border-radius: 14px;
    background: #26282d;
    box-shadow: 0 10px 30px -12px rgba(0, 0, 0, 0.6);
}

.app-lb-caption[b-v9w4c01w9h] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
}

.app-lb-hint[b-v9w4c01w9h] {
    flex-shrink: 0;
    color: #a6abb4;
    font-size: 11.5px;
    font-style: normal;
    font-weight: 600;
}

.app-lb-tools[b-v9w4c01w9h] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    margin-left: auto;
}

.app-lb-trenner[b-v9w4c01w9h] {
    width: 1px;
    height: 22px;
    margin: 0 2px;
    background: #4a4e57;
}

.app-lb-btn[b-v9w4c01w9h] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border: 0;
    border-radius: 10px;
    background: #34373e;
    color: #fff;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s ease, transform 0.12s ease;
}

@media (hover: hover) {
    .app-lb-btn:hover[b-v9w4c01w9h] {
        background: #454951;
    }
}

.app-lb-btn:active[b-v9w4c01w9h] {
    transform: scale(0.94);
}

.app-lb-close[b-v9w4c01w9h] {
    background: #b3261e;
}

@media (hover: hover) {
    .app-lb-close:hover[b-v9w4c01w9h] {
        background: #c62f26;
    }
}

@media (max-width: 620px) {
    .app-lb-bar[b-v9w4c01w9h] {
        width: calc(100vw - 24px);
        padding-left: 14px;
    }

    .app-lb-caption[b-v9w4c01w9h] {
        font-size: 12px;
    }

    .app-lb-btn[b-v9w4c01w9h] {
        width: 36px;
        height: 36px;
    }
}
/* /Components/Shared/Modal/AppModal/AppModal.razor.rz.scp.css */
.app-modal__backdrop[b-tdbzuekgnu] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.48);
    backdrop-filter: blur(4px);
    z-index: 2100;
    animation: appModalBackdropIn-b-tdbzuekgnu 0.18s ease;
}

@keyframes appModalBackdropIn-b-tdbzuekgnu {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.app-modal[b-tdbzuekgnu] {
    position: fixed;
    /* Zentrierung über inset+margin statt transform: ein persistentes transform würde
       das Modal zum Bezugsrahmen für position:fixed-Popover (IconSelect-Menü) machen
       und sie zusammen mit overflow:auto clippen bzw. um den Scroll-Stand versetzen. */
    inset: 0;
    margin: auto;
    height: fit-content;
    width: min(720px, calc(100vw - 32px));
    /* 100dvh direkt hinter dem 100vh-Fallback: auf iOS ist 100vh die GROSSE
       Viewport-Höhe — sonst rutschen die Actions unter die Safari-Leiste. */
    max-height: calc(100vh - 56px);
    max-height: calc(100dvh - 56px);
    overflow: auto;
    background: #ffffff;
    border-radius: 22px;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.22);
    z-index: 2101;
    animation: appModalSlideIn-b-tdbzuekgnu 0.2s cubic-bezier(0.34, 1.3, 0.64, 1);
}

@keyframes appModalSlideIn-b-tdbzuekgnu {
    from {
        opacity: 0;
        transform: translateY(24px) scale(0.97);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.app-modal--small[b-tdbzuekgnu] {
    width: min(520px, calc(100vw - 32px));
}

/* Zwischen Standard (720px) und wide (960px) — z. B. Referenz-Vergleich in /calc. */
.app-modal--medium[b-tdbzuekgnu] {
    width: min(840px, calc(100vw - 32px));
}

.app-modal--wide[b-tdbzuekgnu] {
    width: min(960px, calc(100vw - 32px));
}

/* Opt-in: lässt Popover-Inhalte (Datepicker/Dropdowns) frei über den Modalrand
   hinausragen statt sie am overflow:auto abzuschneiden. Nur für KURZE Modals,
   die ohnehin nicht scrollen müssen. */
.app-modal--overflow-visible[b-tdbzuekgnu] {
    overflow: visible;
}

/* -- Seiten-Panel-Variante (Side-Slot) ------------------------------------ */
.app-modal__stack[b-tdbzuekgnu] {
    position: fixed;
    inset: 0;
    z-index: 2101;
    display: flex;
    /* zentriert wenn es passt, scrollt (statt oben/unten abzuschneiden) wenn nicht */
    align-items: center;
    align-items: safe center;
    justify-content: center;
    gap: 16px;
    padding: 28px;
    overflow-y: auto;
}

.app-modal__side[b-tdbzuekgnu] {
    flex: 0 0 auto;
    width: 270px;
    overflow: visible;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.22);
    animation: appModalStackIn-b-tdbzuekgnu 0.22s cubic-bezier(0.34, 1.3, 0.64, 1);
}

.app-modal--stacked[b-tdbzuekgnu] {
    position: static;
    inset: auto;
    margin: 0;
    height: auto;
    width: min(600px, 100%);
    overflow: visible;
    animation: appModalStackIn-b-tdbzuekgnu 0.22s cubic-bezier(0.34, 1.3, 0.64, 1);
}

@keyframes appModalStackIn-b-tdbzuekgnu {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 940px) {
    .app-modal__stack[b-tdbzuekgnu] {
        flex-direction: column;
        align-items: center;
        /* Spalten-Layout: Hauptachse ist vertikal → von oben stapeln, sonst
           schneidet "center" oben ab und man kann nicht hochscrollen. */
        justify-content: flex-start;
        overflow-y: auto;
        padding: 16px;
    }

    .app-modal__side[b-tdbzuekgnu] {
        width: min(600px, 100%);
        max-height: none;
    }

    .app-modal--stacked[b-tdbzuekgnu] {
        max-height: none;
    }
}

.app-modal--calendar-appointment[b-tdbzuekgnu] {
    width: min(920px, calc(100vw - 32px));
    height: min(720px, calc(100vh - 56px));
    height: min(720px, calc(100dvh - 56px));
    display: flex;
    flex-direction: column;
    overflow: visible;
    border-radius: 18px;
}

.app-modal--calendar-appointment.app-modal--calendar-with-panel[b-tdbzuekgnu] {
    /* Mitte um +168px nach rechts verschieben: linker inset verkleinert die
       Zentrierfläche um 336px (ersetzt das alte left: calc(50% + 168px)). */
    left: 336px;
    width: min(820px, calc(100vw - 376px));
}

.app-modal--calendar-appointment .app-modal__header[b-tdbzuekgnu],
.app-modal--calendar-appointment .app-modal__actions[b-tdbzuekgnu] {
    flex-shrink: 0;
}

.app-modal--calendar-appointment .app-modal__body[b-tdbzuekgnu] {
    flex: 1;
    min-height: 0;
    overflow: visible;
}

.app-modal--phone[b-tdbzuekgnu] {
    width: min(430px, calc(100vw - 24px));
    max-height: calc(100vh - 28px);
    max-height: calc(100dvh - 28px);
    overflow: hidden;
    border-radius: 24px;
}

.app-modal--phone .app-modal__header[b-tdbzuekgnu] {
    padding: 16px 16px 0;
}

.app-modal--phone .app-modal__body[b-tdbzuekgnu] {
    padding: 12px 16px 16px;
}

.app-modal__header[b-tdbzuekgnu] {
    padding: 24px 28px 0;
}

.app-modal__body[b-tdbzuekgnu] {
    padding: 20px 28px 28px;
}

.app-modal--flush .app-modal__body[b-tdbzuekgnu] {
    padding: 0;
}

.app-modal__actions[b-tdbzuekgnu] {
    padding: 0 28px 28px;
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    align-items: center;
}

.app-modal__close[b-tdbzuekgnu] {
    position: fixed;
    top: 18px;
    right: 18px;
    z-index: 2102;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    border: 1.5px solid rgba(255, 255, 255, 0.45);
    color: white;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: background 0.18s, border-color 0.18s, transform 0.15s;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.22);
}

.app-modal__close:focus-visible[b-tdbzuekgnu] {
    background: rgba(255, 59, 48, 0.82);
    border-color: rgba(255, 59, 48, 0.6);
    transform: scale(1.08);
    outline: none;
}

@media (hover: hover) {
    .app-modal__close:hover[b-tdbzuekgnu] {
        background: rgba(255, 59, 48, 0.82);
        border-color: rgba(255, 59, 48, 0.6);
        transform: scale(1.08);
        outline: none;
    }
}

.app-modal__close:active[b-tdbzuekgnu] {
    transform: scale(0.94);
}

@media (max-width: 760px) {
    /* Nicht die gestapelte Side-Slot-Variante kappen — die soll mit dem Inhalt
       wachsen, während der __stack scrollt. Sonst rutschen die Actions unter die
       weiße Karte auf den Backdrop (max-height-Klammer + overflow:visible). */
    .app-modal:not(.app-modal--stacked)[b-tdbzuekgnu] {
        width: min(100vw - 20px, 960px);
        max-height: calc(100vh - 24px);
        max-height: calc(100dvh - 24px);
        border-radius: 18px;
    }

    /* Auf dem Handy füllt das Modal fast den ganzen Bildschirm, der
       Schließen-Button liegt also auf weißem Inhalt statt auf dem dunklen
       Backdrop. Daher hier ein deutlich sichtbarer, heller Button mit
       dunklem Icon statt des weißen Glas-Buttons. */
    .app-modal__close[b-tdbzuekgnu] {
        top: 14px;
        right: 14px;
        width: 42px;
        height: 42px;
        color: #1c1c1e;
        background: #ffffff;
        border: 1.5px solid #d1d1d6;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22);
    }

    .app-modal__close:focus-visible[b-tdbzuekgnu] {
        color: #ffffff;
    }

    @media (hover: hover) {
        .app-modal__close:hover[b-tdbzuekgnu] {
            color: #ffffff;
        }
    }

    .app-modal__header[b-tdbzuekgnu] {
        padding: 20px 18px 0;
    }

    .app-modal__body[b-tdbzuekgnu] {
        padding: 18px;
    }

    .app-modal__actions[b-tdbzuekgnu] {
        padding: 0 18px 18px;
    }
}

/* Opt-in (additiv): auf dem Handy als GANZE Seite statt zentrierter Karte —
   Muster wie Kalender-Panel/Kontakte auf schmalen Screens. Desktop unverändert.
   Nach dem 760px-Block definiert, damit die Vollbild-Maße dort gewinnen. */
@media (max-width: 760px) {
    .app-modal.app-modal--mobile-fullpage[b-tdbzuekgnu] {
        width: 100vw;
        height: 100dvh;
        max-height: 100dvh;
        margin: 0;
        border-radius: 0;
        animation: appModalPageIn-b-tdbzuekgnu 0.22s ease;
    }
}

@keyframes appModalPageIn-b-tdbzuekgnu {
    from {
        opacity: 0;
        transform: translateX(28px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 1080px) and (min-width: 681px) {
    .app-modal--calendar-appointment.app-modal--calendar-with-panel[b-tdbzuekgnu] {
        left: calc(50% + 158px);
        width: min(620px, calc(100vw - 336px));
    }
}

@media (max-width: 680px) {
    .app-modal--calendar-appointment.app-modal--calendar-with-panel[b-tdbzuekgnu] {
        position: absolute;
        top: 12px;
        left: 10px;
        width: calc(100vw - 20px);
        height: min(620px, calc(100vh - 76px));
        height: min(620px, calc(100dvh - 76px));
        max-height: none;
        transform: none;
    }
}
/* /Components/Shared/MonthYearPicker/MonthYearPicker.razor.rz.scp.css */
.myp[b-bvzrjx4qjs] {
    position: relative;
    width: 100%;
}

.myp-trigger[b-bvzrjx4qjs] {
    display: flex;
    align-items: center;
    gap: .5rem;
    box-sizing: border-box;
    width: 100%;
    height: 40px;
    padding: 0 .7rem;
    background: #fff;
    border: 1.5px solid #e4e4e7;
    border-radius: 11px;
    font: inherit;
    font-size: .92rem;
    color: #16181c;
    cursor: pointer;
    text-align: left;
    transition: border-color .12s ease, box-shadow .12s ease;
}

@media (hover: hover) {
    .myp-trigger:hover[b-bvzrjx4qjs] {
        border-color: #cfd0d3;
    }
}

.myp-trigger--open[b-bvzrjx4qjs] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.myp-cal[b-bvzrjx4qjs] {
    flex: 0 0 auto;
    color: #80858d;
}

.myp-text[b-bvzrjx4qjs] {
    flex: 1 1 auto;
    font-variant-numeric: tabular-nums;
}

.myp-text--placeholder[b-bvzrjx4qjs] {
    color: #80858d;
}

.myp-clear[b-bvzrjx4qjs] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.2rem;
    height: 1.2rem;
    flex: 0 0 auto;
    color: #80858d;
    border-radius: 50%;
}

@media (hover: hover) {
    .myp-clear:hover[b-bvzrjx4qjs] {
        background: #efeff1;
        color: #b42318;
    }
}

.myp-backdrop[b-bvzrjx4qjs] {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: transparent;
    border: 0;
    padding: 0;
    cursor: default;
}

.myp-pop[b-bvzrjx4qjs] {
    position: absolute;
    top: calc(100% + 5px);
    right: 0;
    left: auto;
    z-index: 2001;
    /* siehe .myp-pop--up: klappt nach oben, wenn unten zu wenig Platz ist (z. B. im Modal) */
    width: 15rem;
    max-width: calc(100vw - 1.5rem);
    background: #fff;
    border: 1px solid #e4e4e7;
    border-radius: 1rem;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .26), 0 6px 14px -10px rgba(0, 0, 0, .12);
    padding: .7rem;
}

/* Klappt nach oben auf, wenn unten zu wenig Platz ist (z. B. unten im Bearbeiten-Modal). */
.myp-pop--up[b-bvzrjx4qjs] {
    top: auto;
    bottom: calc(100% + 5px);
}

.myp-yearbar[b-bvzrjx4qjs] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .55rem;
}

.myp-yarrow[b-bvzrjx4qjs] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.9rem;
    height: 1.9rem;
    background: #efeff1;
    border: 0;
    border-radius: .5rem;
    color: #3c4148;
    cursor: pointer;
    transition: background .12s ease, color .12s ease;
}

@media (hover: hover) {
    .myp-yarrow:hover[b-bvzrjx4qjs] {
        background: #16181c;
        color: #fff;
    }
}

.myp-year[b-bvzrjx4qjs] {
    font-weight: 700;
    font-size: 1rem;
    color: #16181c;
    font-variant-numeric: tabular-nums;
}

.myp-months[b-bvzrjx4qjs] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .35rem;
}

.myp-month[b-bvzrjx4qjs] {
    padding: .5rem 0;
    background: #efeff1;
    border: 1px solid transparent;
    border-radius: .5rem;
    font: inherit;
    font-size: .85rem;
    color: #3c4148;
    cursor: pointer;
    transition: background .1s ease, color .1s ease;
}

@media (hover: hover) {
    .myp-month:hover[b-bvzrjx4qjs] {
        background: #e7e7ea;
        color: #16181c;
    }
}

.myp-month--sel[b-bvzrjx4qjs] {
    background: #16181c;
    border-color: #16181c;
    color: #fff;
    font-weight: 600;
}

/* /Components/Shared/Numpad/AppNumPad/AppNumPad.razor.rz.scp.css */
.app-numpad[b-goowli383v] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    padding: 16px;
}

.app-numpad__key[b-goowli383v] {
    height: 58px;
    font-size: 22px;
    font-weight: 500;
    background: #f2f2f7;
    color: #1c1c1e;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.07s, transform 0.07s;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.app-numpad__key:active[b-goowli383v] {
    background: #c7c7cc;
    transform: scale(0.93);
}

.app-numpad__key--secondary[b-goowli383v] {
    background: #e5e5ea;
}

.app-numpad__key--comma[b-goowli383v] {
    font-size: 24px;
    font-weight: 700;
}

.app-numpad__key--enter[b-goowli383v] {
    grid-column: span 3;
    background: linear-gradient(135deg, #2563eb, #1d4ed8);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.app-numpad__enter-label[b-goowli383v] {
    text-transform: uppercase;
}
/* /Components/Shared/Push/PushSetup.razor.rz.scp.css */
.push-setup-wrap[b-4xfxpxz85l] {
    position: relative;
    display: inline-flex;
}

.push-setup[b-4xfxpxz85l] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 40px;
    padding: 0 15px;
    border-radius: 999px;
    border: 1px solid #e3e3e7;
    background: #fff;
    color: #1c1c1e;
    font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    transition: background .15s ease, border-color .15s ease, color .15s ease, opacity .15s ease;
}

.push-setup--compact[b-4xfxpxz85l] {
    width: 40px;
    height: 40px;
    padding: 0;
    justify-content: center;
}

.push-setup-icon[b-4xfxpxz85l] {
    display: inline-flex;
}

.push-setup-icon svg[b-4xfxpxz85l] {
    display: block;
}

/* Aktion: anklickbar */
.push-setup--action[b-4xfxpxz85l] {
    cursor: pointer;
}

@media (hover: hover) {
    .push-setup--action:hover:not(:disabled)[b-4xfxpxz85l] {
        background: #1c1c1e;
        border-color: #1c1c1e;
        color: #fff;
    }
}


.push-setup--action:disabled[b-4xfxpxz85l] {
    opacity: .6;
    cursor: default;
}

/* Aktiv: grüner Hintergrund mit Haken-Badge */
.push-setup--on[b-4xfxpxz85l] {
    background: #d8f5e3;
    border-color: #a7e6c0;
    color: #137a3b;
    cursor: default;
}

.push-setup-icon--badge[b-4xfxpxz85l] {
    position: relative;
}

.push-setup-badge[b-4xfxpxz85l] {
    position: absolute;
    right: -6px;
    bottom: -5px;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: #137a3b;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 0 2px #d8f5e3;
}

.push-setup-badge svg[b-4xfxpxz85l] {
    display: block;
    width: 10px;
    height: 10px;
}

/* Blockiert / Hinweis */
.push-setup--muted[b-4xfxpxz85l] {
    background: transparent;
    border-color: #e6e6ea;
    color: #8a8a8e;
    cursor: help;
}

/* Hover-Popover */
.push-tip[b-4xfxpxz85l] {
    position: absolute;
    top: calc(100% + 9px);
    right: 0;
    z-index: 1200;
    width: max-content;
    max-width: 250px;
    padding: 9px 11px;
    border-radius: 11px;
    background: #1c1c1e;
    color: #fff;
    font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.4;
    white-space: normal;
    text-align: left;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .24);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity .14s ease, transform .14s ease, visibility .14s;
    pointer-events: none;
}

/* kleiner Pfeil oben rechts, zur Glocke zeigend */
.push-tip[b-4xfxpxz85l]::before {
    content: "";
    position: absolute;
    top: -5px;
    right: 13px;
    width: 10px;
    height: 10px;
    background: #1c1c1e;
    transform: rotate(45deg);
    border-radius: 2px;
}

/* nach oben geklappt (unterer Bildschirmrand, z. B. mobiles Menü) */
.push-tip--up[b-4xfxpxz85l] {
    top: auto;
    bottom: calc(100% + 9px);
    transform: translateY(4px);
}

.push-tip--up[b-4xfxpxz85l]::before {
    top: auto;
    bottom: -5px;
}

.push-setup-wrap:focus-within .push-tip[b-4xfxpxz85l] {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

@media (hover: hover) {
    .push-setup-wrap:hover .push-tip[b-4xfxpxz85l] {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
}

/* /Components/Shared/RichText/RichTextEditor.razor.rz.scp.css */
/* Editor-Rahmen (Toolbar + contenteditable) — Optik wie die bisherigen bb-*-Styles des Schwarzen Bretts.
   Die Styles der INHALTE (Überschriften, Listen, Checklisten, Tabellen …) kommen aus der globalen
   .rtc-Klasse in wwwroot/app.css — die Editor-Fläche trägt sie ebenfalls (class="rte-area rtc"). */
.rte[b-lu8u0fejfk] {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 0;
    border: 1px solid #e4e4e7;
    border-radius: 13px;
    /* KEIN overflow:hidden — die Popups (Link/Tabelle/Vorlagen) ragen über den Rahmen hinaus.
       Die Ecken runden Toolbar und Textfläche selbst ab. */
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.rte:focus-within[b-lu8u0fejfk] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

/* Toolbar als Tasten-Matrix: ein striktes Raster aus identischen „Tasten".
   auto-fill + 1fr → alle Zellen exakt gleich breit, jede Zeile füllt die volle
   Breite im selben Raster (kein Dehnen einzelner Buttons, keine Pillen-Lücken). */
.rte-toolbar[b-lu8u0fejfk] {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(34px, 1fr));
    gap: 4px;
    padding: 8px 9px;
    border-bottom: 1px solid #ededf0;
    background: #f5f5f7;
    border-radius: 12px 12px 0 0;
}

/* Gruppen bleiben semantisch (role=group), layouten aber transparent ins Raster. */
.rte-group[b-lu8u0fejfk] {
    display: contents;
}

/* Eine „Taste": weiß, feine Kante, 2px-Bodenkante für Tiefe (Rechnertasten-Optik).
   width:100% → exakt Zellbreite des Rasters, dadurch sind ALLE Tasten identisch. */
.rte-btn[b-lu8u0fejfk] {
    width: 100%;
    min-width: 0;
    height: 34px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 1px solid #e2e2e6;
    border-bottom: 2px solid #d4d4d9;
    border-radius: 9px;
    background: #fff;
    color: #3c4148;
    font: inherit;
    font-size: 13.5px;
    font-weight: 700;
    cursor: pointer;
    transition: background .13s ease, color .13s ease, transform .08s ease, border-color .13s ease;
    /* iOS: kein Doppeltipp-Zoom / Tap-Highlight auf Toolbar-Buttons */
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

@media (hover: hover) {
    .rte-btn:hover[b-lu8u0fejfk] {
        background: #fafafa;
        color: #16181c;
        border-color: #cfcfd4;
        border-bottom-color: #bfbfc6;
    }
}

/* Taste „drückt" sich beim Klick um 1px nach unten. */
.rte-btn:active[b-lu8u0fejfk] {
    transform: translateY(1px);
    border-bottom-width: 1px;
    margin-bottom: 1px;
}

/* Rückgängig/Wiederholen ohne Wirkung → flache, ausgegraute Taste (JS: queryCommandEnabled). */
.rte-btn:disabled[b-lu8u0fejfk] {
    opacity: .45;
    background: #f5f5f7;
    border-color: #e7e7ea;
    border-bottom: 1px solid #e7e7ea;
    color: #9a9ea6;
    cursor: default;
    transform: none;
}

.rte-btn.is-active[b-lu8u0fejfk] {
    background: #16181c;
    color: #fff;
    border-color: #16181c;
    border-bottom-color: #000;
}

.rte-btn--h[b-lu8u0fejfk] {
    font-family: 'Quicksand', sans-serif;
}

.rte-btn svg[b-lu8u0fejfk] {
    width: 17px;
    height: 17px;
}

/* „Vorlagen" als breite Taste — die Leertaste der Toolbar. Die genaue Spannweite
   (Rest der Zeile) setzt das JS (layoutTemplatesKey); span 3 ist nur der Startwert. */
.rte-btn--templates[b-lu8u0fejfk] {
    grid-column: span 3;
}

/* Bei sehr wenig Restplatz blendet das JS das Label aus (Icon + Tooltip bleiben). */
.rte-btn--nolabel .rte-btn-label[b-lu8u0fejfk] {
    display: none;
}

.rte-btn-label[b-lu8u0fejfk] {
    font-size: 12.5px;
}


.rte-area[b-lu8u0fejfk] {
    flex: 1 1 auto;
    min-height: 200px;
    max-height: 46vh;
    overflow-y: auto;
    padding: 12px 14px;
    outline: none;
    border-radius: 0 0 12px 12px;
}

/* Platzhalter über data-rte-empty (per JS gesetzt) — :empty scheitert in Safari/iOS,
   weil dort ein <br> in der leeren Fläche stehen bleibt. */
.rte-area[data-rte-empty][b-lu8u0fejfk]::before {
    content: attr(data-placeholder);
    display: block;
    height: 0;
    color: #aeaeb2;
    pointer-events: none;
}

.rte--invalid .rte-area[b-lu8u0fejfk] {
    box-shadow: inset 0 0 0 2px #e2483b;
}

/* Checklisten-Kästchen sind im Editor klickbar (Toggle links am Listenpunkt). */
.rte-area[b-lu8u0fejfk]  ul[data-checklist] li {
    cursor: text;
}

.rte-area[b-lu8u0fejfk]  ul[data-checklist] li::before,
.rte-area[b-lu8u0fejfk]  ul[data-checklist] li::after {
    cursor: pointer;
}

/* --- Popups (Link / Tabelle / Vorlagen) ------------------------------------ */
.rte-pop[b-lu8u0fejfk] {
    position: absolute;
    z-index: 30;
    top: 48px; /* wird per JS unter den auslösenden Button gesetzt */
    left: 8px;
    width: max-content;
    max-width: min(340px, calc(100% - 16px));
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
    border: 1px solid #e4e4e7;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 14px 34px -18px rgba(0, 0, 0, .4);
}

/* Dateiauswahl nach getipptem „#" — steht am Cursor (Werte kommen aus dem JS).
   Fest positioniert, weil Termin-Modal und Vorschauspalte overflow:hidden haben und
   eine absolut positionierte Liste dort abschneiden würden. */
.rte-dokref-pop[b-lu8u0fejfk] {
    position: fixed;
    z-index: 2600;
    width: 340px;
    max-width: calc(100vw - 16px);
}

/* Unten kein Platz → die Liste hängt über dem Cursor. */
.rte-dokref-pop--oben[b-lu8u0fejfk] {
    transform: translateY(-100%);
}

/* Touch-Geräte: kein position:fixed. Auf iOS liegen sichtbarer und Layout-Bereich bei
   eingeblendeter Tastatur auseinander, eine fest positionierte Liste rutscht dadurch aus
   dem Bild. Hier hängt sie stattdessen unter der Werkzeugleiste am Editor selbst und
   macht jede Bewegung der Seite mit. */
@media (hover: none) {
    .rte-dokref-pop[b-lu8u0fejfk],
    .rte-dokref-pop--oben[b-lu8u0fejfk] {
        position: absolute;
        left: 8px !important;
        top: 48px !important;
        transform: none;
        width: auto;
        max-width: calc(100% - 16px);
    }
}

.rte-pop--list[b-lu8u0fejfk] {
    gap: 3px;
    padding: 6px;
    max-height: 260px;
    overflow-y: auto;
    min-width: 200px;
}

.rte-pop-field[b-lu8u0fejfk] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #80858d;
}

.rte-pop-field input[b-lu8u0fejfk] {
    height: 34px;
    padding: 0 10px;
    border: 1px solid #e4e4e7;
    border-radius: 9px;
    background: #fff;
    color: #16181c;
    font: inherit;
    font-size: 13.5px;
    font-weight: 600;
    outline: none;
    letter-spacing: normal;
    text-transform: none;
}

.rte-pop-field input:focus[b-lu8u0fejfk] {
    border-color: #16181c;
    box-shadow: 0 0 0 3px rgba(22, 24, 28, .12);
}

.rte-pop-grid[b-lu8u0fejfk] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.rte-pop-check[b-lu8u0fejfk] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #16181c;
    cursor: pointer;
}

.rte-pop-check input[b-lu8u0fejfk] {
    accent-color: #16181c;
    width: 16px;
    height: 16px;
}

.rte-pop-actions[b-lu8u0fejfk] {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
}

.rte-pop-toolgrid[b-lu8u0fejfk] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 6px;
}

.rte-pop-btn[b-lu8u0fejfk] {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    height: 32px;
    padding: 0 11px;
    border: 1px solid #e4e4e7;
    border-radius: 999px;
    background: #fff;
    color: #16181c;
    font: inherit;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: background .14s ease, color .14s ease, border-color .14s ease;
}

@media (hover: hover) {
    .rte-pop-btn:hover[b-lu8u0fejfk] {
        background: #efeff1;
    }
}

.rte-pop-btn--primary[b-lu8u0fejfk] {
    background: #16181c;
    color: #fff;
    border-color: #16181c;
}

@media (hover: hover) {
    .rte-pop-btn--primary:hover[b-lu8u0fejfk] {
        background: #26282e;
    }
}

.rte-pop-btn--danger[b-lu8u0fejfk] {
    color: #e2483b;
}

@media (hover: hover) {
    .rte-pop-btn--danger:hover[b-lu8u0fejfk] {
        background: #fbeae8;
        border-color: #f3c6c1;
    }
}

.rte-pop-item[b-lu8u0fejfk] {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    display: block;
    width: 100%;
    text-align: left;
    padding: 8px 11px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #16181c;
    font: inherit;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    transition: background .13s ease;
}

@media (hover: hover) {
    .rte-pop-item:hover[b-lu8u0fejfk] {
        background: #efeff1;
    }
}

.rte-pop-empty[b-lu8u0fejfk] {
    padding: 9px 11px;
    font-size: 13px;
    font-weight: 600;
    color: #80858d;
}

/* Zeichen-/Wortzähler unter der Textfläche — immer am unteren Karten-Ende
   (margin-top:auto schluckt freien Resthöhen-Raum, egal wie hoch die Toolbar
   gerade ist; ohne freien Raum wirkt es wie bisher). */
.rte-count[b-lu8u0fejfk] {
    flex: 0 0 auto;
    margin-top: auto;
    padding: 3px 14px 6px;
    font-size: 11px;
    font-weight: 600;
    color: #aeaeb2;
    text-align: right;
    user-select: none;
}

.rte-count:empty[b-lu8u0fejfk] {
    display: none;
}

/* -- Touch-Geräte (iOS/iPadOS) ------------------------------------------------ */
@media (pointer: coarse) {
    /* Größere Tasten im Raster */
    .rte-toolbar[b-lu8u0fejfk] {
        grid-template-columns: repeat(auto-fill, minmax(40px, 1fr));
    }

    .rte-btn[b-lu8u0fejfk] {
        height: 40px;
    }

    .rte-pop-btn[b-lu8u0fejfk] {
        height: 38px;
    }

    .rte-pop-item[b-lu8u0fejfk] {
        padding: 11px 12px;
    }

    /* iOS zoomt beim Fokussieren von Inputs < 16px in die Seite — daher 16px. */
    .rte-pop-field input[b-lu8u0fejfk] {
        font-size: 16px;
        height: 38px;
    }
}

/* -- Kompaktmodus (Parameter Compact, z. B. Termin-Panel) ---------------------
   Ohne Fokus: gar keine Toolbar — die Notiz liest sich wie reiner Text.
   Mit Fokus: reduzierte Leiste (Fett, Listen, Checkliste, Link, Vorlagen) + „⋯",
   das per .rte--compact-expanded auf die vollständige Leiste umschaltet. */
.rte--compact:not(:focus-within) .rte-toolbar[b-lu8u0fejfk] {
    display: none;
}

.rte--compact:not(.rte--compact-expanded) .rte-btn[b-lu8u0fejfk] {
    display: none;
}

.rte--compact:not(.rte--compact-expanded) .rte-btn[data-rte-cmd="bold"][b-lu8u0fejfk],
.rte--compact:not(.rte--compact-expanded) .rte-btn[data-rte-cmd="insertUnorderedList"][b-lu8u0fejfk],
.rte--compact:not(.rte--compact-expanded) .rte-btn[data-rte-cmd="insertChecklist"][b-lu8u0fejfk],
.rte--compact:not(.rte--compact-expanded) .rte-btn[data-rte-cmd="linkMenu"][b-lu8u0fejfk],
.rte--compact:not(.rte--compact-expanded) .rte-btn[data-rte-cmd="templatesMenu"][b-lu8u0fejfk],
.rte--compact:not(.rte--compact-expanded) .rte-btn--more[b-lu8u0fejfk] {
    display: inline-flex;
}
/* /Components/Shared/Toasts/AppToast/AppToast.razor.rz.scp.css */
.app-toast[b-36m4dfg5x6] {
    width: 100%;
    display: grid;
    grid-template-columns: 3px minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    color: #16181c;
    background: #ffffff;
    box-shadow: 0 8px 24px -12px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.04);
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    animation: app-toast-enter-b-36m4dfg5x6 160ms ease-out;
}

.app-toast__accent[b-36m4dfg5x6] {
    background: #16181c;
}

.app-toast--success .app-toast__accent[b-36m4dfg5x6] {
    background: #16181c;
}

.app-toast--warn .app-toast__accent[b-36m4dfg5x6] {
    background: #d97706;
}

.app-toast--error .app-toast__accent[b-36m4dfg5x6] {
    background: #e2483b;
}

.app-toast__content[b-36m4dfg5x6] {
    min-width: 0;
    padding: 7px 7px 6px 9px;
}

.app-toast__header[b-36m4dfg5x6] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 20px;
    gap: 7px;
    align-items: center;
}

.app-toast__header strong[b-36m4dfg5x6] {
    overflow: hidden;
    color: #16181c;
    font-size: 0.7rem;
    font-weight: 850;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-toast__close[b-36m4dfg5x6] {
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 7px;
    padding: 0;
    color: #80858d;
    background: transparent;
    cursor: pointer;
}

.app-toast__close:focus-visible[b-36m4dfg5x6] {
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .app-toast__close:hover[b-36m4dfg5x6] {
        color: #16181c;
        background: #efeff1;
        outline: none;
    }
}


.app-toast p[b-36m4dfg5x6] {
    margin: 1px 0 5px;
    color: #3c4148;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.22;
}

.app-toast__copyable[b-36m4dfg5x6] {
    display: flex;
    gap: 6px;
    align-items: center;
    margin: 6px 0 4px;
    padding: 6px 6px 6px 9px;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    background: #f5f5f7;
}

.app-toast__copyable-value[b-36m4dfg5x6] {
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
    color: #16181c;
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    line-height: 1.1;
    user-select: all;
    white-space: nowrap;
}

.app-toast__copy[b-36m4dfg5x6] {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    padding: 0;
    color: #3c4148;
    background: #ffffff;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}

.app-toast__copy:focus-visible[b-36m4dfg5x6] {
    color: #16181c;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .app-toast__copy:hover[b-36m4dfg5x6] {
        color: #16181c;
        background: #efeff1;
        outline: none;
    }
}

/* Clientseitiger Aktions-Button (data-toast-action) — z. B. „PDF öffnen" */
.app-toast__action[b-36m4dfg5x6] {
    display: block;
    width: 100%;
    margin: 8px 0 2px;
    padding: 8px 12px;
    border: 0;
    border-radius: 10px;
    background: #16181c;
    color: #ffffff;
    cursor: pointer;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 750;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    transition: background 120ms ease;
}

.app-toast__action:focus-visible[b-36m4dfg5x6] {
    background: #2c2f36;
    outline: none;
}

@media (hover: hover) {
    .app-toast__action:hover[b-36m4dfg5x6] {
        background: #2c2f36;
    }
}


.app-toast__copy--copied[b-36m4dfg5x6] {
    color: #15803d;
    border-color: #bbf7d0;
    background: #f0fdf4;
}

@media (hover: hover) {
    .app-toast__copy--copied:hover[b-36m4dfg5x6] {
        color: #15803d;
        border-color: #bbf7d0;
        background: #f0fdf4;
    }
}


.app-toast__share[b-36m4dfg5x6] {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    padding: 0;
    color: #3c4148;
    background: #ffffff;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}

.app-toast__share:focus-visible[b-36m4dfg5x6] {
    color: #16181c;
    border-color: #e4e4e7;
    background: #efeff1;
    outline: none;
}

@media (hover: hover) {
    .app-toast__share:hover[b-36m4dfg5x6] {
        color: #16181c;
        border-color: #e4e4e7;
        background: #efeff1;
        outline: none;
    }
}


.app-toast__footer[b-36m4dfg5x6] {
    display: grid;
    grid-template-columns: auto minmax(54px, 1fr);
    gap: 6px;
    align-items: center;
    color: #80858d;
    font-size: 0.58rem;
    font-weight: 750;
}

.app-toast__progress[b-36m4dfg5x6] {
    height: 2px;
    overflow: hidden;
    border-radius: 999px;
    background: #efeff1;
}

.app-toast__progress-fill[b-36m4dfg5x6] {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    background: #16181c;
    transform-origin: left center;
    animation-name: app-toast-progress-b-36m4dfg5x6;
    animation-timing-function: linear;
    animation-fill-mode: forwards;
}

.app-toast--success .app-toast__progress-fill[b-36m4dfg5x6] {
    background: #16181c;
}

.app-toast--warn .app-toast__progress-fill[b-36m4dfg5x6] {
    background: #d97706;
}

.app-toast--error .app-toast__progress-fill[b-36m4dfg5x6] {
    background: #e2483b;
}

@keyframes app-toast-enter-b-36m4dfg5x6 {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes app-toast-progress-b-36m4dfg5x6 {
    from {
        transform: scaleX(1);
    }

    to {
        transform: scaleX(0);
    }
}
/* /Components/Shared/Toasts/AppToast/AppToastHost.razor.rz.scp.css */
.app-toast-host[b-cofoicory6] {
    position: fixed;
    top: 12px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 5000;
    width: min(260px, calc(100vw - 20px));
    display: flex;
    flex-direction: column;
    gap: 6px;
    pointer-events: none;
}

.app-toast-host[b-cofoicory6]  .app-toast {
    pointer-events: auto;
}

@media (max-width: 520px) {
    .app-toast-host[b-cofoicory6] {
        top: 10px;
        left: 50%;
    }
}
