/* ── Dienstplan Plugin — Kalender-Styles ───────────────── */

.dienstplan-wrap { max-width: 100%; }

/* ── Unified Toolbar (ADR §10.1) ─────────────────────── */
.dienstplan-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    background: var(--dienstplan-surface, #fff);
    border: 1px solid var(--dienstplan-border, #dcdcde);
    border-radius: var(--dienstplan-radius, 4px) var(--dienstplan-radius, 4px) 0 0;
    padding: 10px 12px;
    border-bottom: none;
    margin-bottom: 0;
}
.dienstplan-toolbar + .dienstplan-table-wrap { border-top: none; border-radius: 0 0 var(--dienstplan-radius, 4px) var(--dienstplan-radius, 4px); }
.dienstplan-toolbar + .dienstplan-license-notice + .dienstplan-table-wrap { border-top: none; border-radius: 0 0 var(--dienstplan-radius, 4px) var(--dienstplan-radius, 4px); }

/* Lizenz-Hinweis (ausgeblendete Pläne/Schichttypen wegen Limit) */
.dienstplan-license-notice {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    background: #fffbeb;
    border: 1px solid var(--dienstplan-warning, #d97706);
    border-top: none;
    padding: 7px 12px;
    font-size: 12px;
    color: #78350f;
}
.dienstplan-license-notice a { color: #b45309; font-weight: 600; white-space: nowrap; text-decoration: none; }
.dienstplan-license-notice a:hover { text-decoration: underline; }
.dienstplan-toolbar-group {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    min-width: 0;
}
.dienstplan-toolbar-group--end { margin-left: auto; }
.dienstplan-toolbar-sep { width: 1px; height: 24px; background: var(--dienstplan-border, #dcdcde); flex-shrink: 0; }
.dienstplan-toolbar-label { font-size: 11px; color: var(--dienstplan-text-muted, #646970); white-space: nowrap; }
.dienstplan-toolbar-select {
    padding: 5px 8px;
    border: 1px solid var(--dienstplan-border-strong, #8c8f94);
    border-radius: 3px;
    background: var(--dienstplan-surface, #fff);
    font-size: 12px;
    color: var(--dienstplan-text, #1d2327);
    cursor: pointer;
    width: auto;
    max-width: min(100%, 16rem);
    flex: 0 0 auto;
    box-sizing: border-box;
}
.dienstplan-toolbar-date {
    padding: 5px 8px;
    border: 1px solid var(--dienstplan-border-strong, #8c8f94);
    border-radius: 3px;
    font-size: 12px;
    background: var(--dienstplan-surface, #fff);
    color: var(--dienstplan-text, #1d2327);
    cursor: pointer;
    /* Gegen Theme-Regeln wie input { width: 100% } im Content-Bereich */
    width: auto;
    max-width: 12rem;
    flex: 0 0 auto;
    box-sizing: border-box;
}
.dienstplan-wrap .dienstplan-toolbar input.dienstplan-toolbar-date,
.dienstplan-wrap .dienstplan-toolbar select.dienstplan-toolbar-select {
    width: auto;
}
.dienstplan-period-label { font-size: 13px; font-weight: 500; min-width: 0; flex: 0 1 auto; text-align: center; white-space: nowrap; }

.dienstplan-nav { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.dienstplan-week-label { font-weight: 700; font-size: 15px; flex: 1; text-align: center; }
.dienstplan-btn { display: inline-flex; align-items: center; padding: 5px 12px; border-radius: 3px;
    text-decoration: none; font-size: 12px; cursor: pointer; border: 1px solid var(--dienstplan-border-strong, #8c8f94);
    background: var(--dienstplan-surface, #fff); color: var(--dienstplan-text, #1d2327); transition: background .15s, border-color .15s; line-height: 1.4; white-space: nowrap; }
.dienstplan-btn:hover { background: var(--dienstplan-surface-muted, #f6f7f7); border-color: var(--dienstplan-text-muted, #646970); color: var(--dienstplan-text, #1d2327); }
.dienstplan-btn--primary { background: var(--dienstplan-accent, #2271b1); border-color: var(--dienstplan-accent, #2271b1); color: var(--dienstplan-surface, #fff); cursor: default; }
.dienstplan-btn--primary:hover { background: var(--dienstplan-accent-hover, #135e96); border-color: var(--dienstplan-accent-hover, #135e96); color: var(--dienstplan-surface, #fff); }
.dienstplan-btn--ghost { background: transparent; border-color: #d1d5db; }
.dienstplan-btn--disabled { background: var(--dienstplan-surface-muted, #f6f7f7); border-color: #d1d5db; color: #a7aaad; cursor: not-allowed; }

.dienstplan-table-wrap { overflow-x: auto; border-radius: var(--dienstplan-radius, 4px); border: 1px solid var(--dienstplan-border, #dcdcde); }
.dienstplan-table { width: 100%; border-collapse: collapse; min-width: 560px; font-size: 13px; background: var(--dienstplan-surface, #fff); }
.dienstplan-table th, .dienstplan-table td { padding: 7px 6px; border-bottom: 1px solid var(--dienstplan-border, #dcdcde);
    border-right: 1px solid var(--dienstplan-border, #dcdcde); vertical-align: middle; }
.dienstplan-table tr:last-child td { border-bottom: none; }
.dienstplan-table th:last-child, .dienstplan-table td:last-child { border-right: none; }

.dienstplan-th-type { width: 130px; min-width: 110px; background: var(--dienstplan-surface-muted, #f6f7f7); font-weight: 600; text-align: left; padding-left: 10px; }
.dienstplan-th-day { text-align: center; min-width: 80px; background: var(--dienstplan-surface-muted, #f6f7f7); font-weight: normal; }
.dienstplan-th-day.dienstplan-today { background: var(--dienstplan-accent-soft, #dce9f7); }
.dienstplan-day-name { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; color: #6b7280; letter-spacing: .04em; }
.dienstplan-day-date { display: block; font-weight: 700; font-size: 14px; color: #111827; }
.dienstplan-today .dienstplan-day-date { color: var(--dienstplan-accent, #2271b1); }

.dienstplan-td-type { background: #fafafa; padding-left: 10px; vertical-align: top; padding-top: 9px; }
.dienstplan-type-badge { display: inline-block; color: var(--dienstplan-surface, #fff); font-size: 11px; font-weight: 600;
    padding: 2px 9px; border-radius: 20px; margin-bottom: 2px; white-space: nowrap; }
.dienstplan-type-time { display: block; font-size: 10px; color: var(--dienstplan-text-muted, #646970); margin-top: 1px; }
.dienstplan-capacity-info { display: block; font-size: 10px; color: var(--dienstplan-text-muted, #646970); }

.dienstplan-td-slot { text-align: center; vertical-align: top; min-width: 80px; min-height: 44px; height: auto; padding: 5px 4px; }

/* ── Gestapelte Einträge (alle Kapazitäten) ── */
.dienstplan-shift-entry {
    display: flex; align-items: center; justify-content: center;
    gap: 3px;
    padding: 1px 0;
}
.dienstplan-shift-entry .dienstplan-name { display: inline; }
.dienstplan-shift-entry .dienstplan-btn-remove { margin-top: 0; }

/* ── Kapazitäts-Badge „X/Y" ── */
.dienstplan-slot-badge {
    display: block;
    font-size: 10px;
    color: #c3c4c7;
    margin-top: 3px;
    line-height: 1;
}
.dienstplan-slot-badge--full {
    color: var(--dienstplan-warning, #d97706);
    font-weight: 600;
}

.dienstplan-slot--past   { background: #fafafa; opacity: .6; }
/* Schicht wird an diesem Wochentag nicht angeboten: grau, kein Zuweisen-Button */
.dienstplan-slot--disabled { background: #f3f4f6; cursor: not-allowed; }
.dienstplan-slot--disabled .dienstplan-assign-wrap { display: none; }
/* Fremd-besetzte Slots: keine spezielle Hintergrundfarbe mehr (Dienst-Farbe nur für eigene) */
.dienstplan-slot--full   { background: #fff7ed; }
/* Zum Tausch angeboten */
.dienstplan-slot--trade {
    background: color-mix(in srgb, var(--dienstplan-trade, var(--dienstplan-warning, #d97706)) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--dienstplan-trade, var(--dienstplan-warning, #d97706)) 45%, transparent) !important;
}

/* Default-Namensfarbe (neutral) — für eigene Einträge wird .dienstplan-name--mine dynamisch gefärbt */
.dienstplan-name { display: block; font-size: 12px; font-weight: 600; color: #1f2937; line-height: 1.3; word-break: break-word; }
.dienstplan-name--trade { color: color-mix(in srgb, var(--dienstplan-trade, var(--dienstplan-warning, #d97706)) 75%, #000); }
.dienstplan-slot--mine:not(.dienstplan-slot--trade) {
    background: color-mix(in srgb, var(--dienstplan-duty, var(--dienstplan-success, #16a34a)) 12%, transparent);
}
.dienstplan-name--mine { color: var(--dienstplan-duty, var(--dienstplan-success, #16a34a)); }
/* Kleines Tausch-Icon neben dem Namen */
.dienstplan-trade-badge { display: inline-flex; align-items: center; color: var(--dienstplan-trade, var(--dienstplan-warning, #d97706)); margin-left: 2px;
    vertical-align: middle; line-height: 1; cursor: default; }

/* „Ich übernehme"-Button */
.dienstplan-btn-trade-accept { display: inline-flex; align-items: center; justify-content: center;
    margin-top: 4px; padding: 3px 8px; border-radius: var(--dienstplan-radius, 4px);
    border: 1px solid color-mix(in srgb, var(--dienstplan-trade, var(--dienstplan-warning, #d97706)) 60%, transparent);
    background: color-mix(in srgb, var(--dienstplan-trade, var(--dienstplan-warning, #d97706)) 8%, var(--dienstplan-surface, #fff));
    color: color-mix(in srgb, var(--dienstplan-trade, var(--dienstplan-warning, #d97706)) 75%, #000);
    font-size: 11px; font-weight: 600;
    cursor: pointer; transition: all .15s; white-space: nowrap; }
.dienstplan-btn-trade-accept:hover {
    background: color-mix(in srgb, var(--dienstplan-trade, var(--dienstplan-warning, #d97706)) 20%, transparent);
    border-color: var(--dienstplan-trade, var(--dienstplan-warning, #d97706));
    color: color-mix(in srgb, var(--dienstplan-trade, var(--dienstplan-warning, #d97706)) 85%, #000);
}

/* ── Zuweisen-Button + Custom-Dropdown (ADR §10.3) ──────── */
.dienstplan-assign-wrap { display: inline-block; }

.dienstplan-assign-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px;
    border: 1px solid #c3c4c7; border-radius: 50%;
    background: var(--dienstplan-surface, #fff); color: var(--dienstplan-accent, #2271b1);
    cursor: pointer; padding: 0;
    transition: background .15s, border-color .15s, color .15s;
    line-height: 1;
}
.dienstplan-assign-btn:hover { background: var(--dienstplan-accent-soft, #dce9f7); border-color: var(--dienstplan-accent, #2271b1); }
.dienstplan-assign-btn[aria-expanded="true"] { background: var(--dienstplan-accent, #2271b1); border-color: var(--dienstplan-accent, #2271b1); color: var(--dienstplan-surface, #fff); }

/* Tausch-Übernahme-Button */
.dienstplan-assign-btn--trade { border-color: var(--dienstplan-trade, var(--dienstplan-warning, #d97706)); color: var(--dienstplan-trade, var(--dienstplan-warning, #d97706)); }
.dienstplan-assign-btn--trade:hover {
    background: color-mix(in srgb, var(--dienstplan-trade, var(--dienstplan-warning, #d97706)) 8%, transparent);
    border-color: color-mix(in srgb, var(--dienstplan-trade, var(--dienstplan-warning, #d97706)) 75%, #000);
    color: color-mix(in srgb, var(--dienstplan-trade, var(--dienstplan-warning, #d97706)) 75%, #000);
}
.dienstplan-assign-btn--trade[aria-expanded="true"] {
    background: var(--dienstplan-trade, var(--dienstplan-warning, #d97706));
    border-color: var(--dienstplan-trade, var(--dienstplan-warning, #d97706));
    color: var(--dienstplan-surface, #fff);
}

/* Legende: nicht klickbar, kleiner */
.dienstplan-assign-btn--legend {
    width: 20px; height: 20px;
    pointer-events: none; vertical-align: middle;
    border-color: #c3c4c7; color: var(--dienstplan-accent, #2271b1);
}

/* Daten-Container im DOM — bleibt unsichtbar */
.dienstplan-assign-dropdown { display: none; }

/* Floating-Dropdown an <body> — position:fixed umgeht overflow-x:auto des Tabellen-Containers */
#dienstplan-assign-float {
    position: fixed;
    min-width: 140px; max-width: 240px;
    background: var(--dienstplan-surface, #fff);
    border: 1px solid #c3c4c7; border-radius: var(--dienstplan-radius, 4px);
    box-shadow: 0 4px 14px rgba(0,0,0,.15);
    z-index: 99999; overflow: hidden;
    white-space: nowrap;
}
#dienstplan-assign-float .dienstplan-assign-option {
    display: block; width: 100%; text-align: left;
    padding: 7px 12px;
    background: none; border: none; border-bottom: 1px solid #f0f0f1;
    font-size: 12px; font-family: inherit; color: var(--dienstplan-text, #1d2327);
    cursor: pointer;
    transition: background .1s;
}
#dienstplan-assign-float .dienstplan-assign-option:last-child { border-bottom: none; }
#dienstplan-assign-float .dienstplan-assign-option:hover { background: var(--dienstplan-accent-soft, #dce9f7); color: var(--dienstplan-accent, #2271b1); }


.dienstplan-btn-remove { margin-top: 3px; background: none; border: none; color: var(--dienstplan-danger, #d63638); cursor: pointer;
    font-size: 10px; padding: 1px 4px; border-radius: 3px; opacity: .55; transition: opacity .15s; display: inline-block; }
.dienstplan-btn-remove:hover { opacity: 1; background: #fee2e2; }

.dienstplan-full  { font-size: 11px; color: color-mix(in srgb, var(--dienstplan-warning, #d97706) 75%, #000); font-style: italic; }
.dienstplan-past  { font-size: 12px; color: #d1d5db; }
.dienstplan-no-types { text-align: center; padding: 24px; color: #6b7280; font-style: italic; }

.dienstplan-day-today-mark { font-size: 10px; color: var(--dienstplan-accent, #2271b1); display: block; }

.dienstplan-legend { margin-top: 10px; font-size: 12px; color: #6b7280; display: flex; gap: 10px; align-items: center; }
.dienstplan-legend-item { display: inline-block; padding: 2px 8px; border-radius: var(--dienstplan-radius, 4px); font-size: 11px; }
.dienstplan-legend-item.dienstplan-slot--mine { color: color-mix(in srgb, var(--dienstplan-duty, var(--dienstplan-success, #16a34a)) 80%, #000); }

.dienstplan-msg { padding: 8px 14px; border-radius: 6px; font-size: 13px; margin: 8px 0; display: inline-block; }
.dienstplan-msg--error   { background: #fee2e2; color: #991b1b; }
.dienstplan-msg--success { background: #dcfce7; color: color-mix(in srgb, var(--dienstplan-success, #16a34a) 80%, #000); }

.dienstplan-td-slot.dienstplan-loading { opacity: .4; pointer-events: none; }

.dienstplan-row--nacht .dienstplan-td-type, .dienstplan-row--nacht .dienstplan-td-slot, .dienstplan-row--nacht td { border-top: 2px solid #e5e7eb; }
.dienstplan-row--nacht + .dienstplan-row--nacht td { border-top-width: 1px; }

@media (max-width: 600px) {
    .dienstplan-th-type, .dienstplan-td-type { width: 80px; min-width: 70px; }
    .dienstplan-th-day { min-width: 56px; }
    .dienstplan-toolbar { gap: 6px; padding: 8px; }
    .dienstplan-period-label { min-width: unset; }
}

/* ── Wochenenden ──────────────────────────────────────────────────────── */
.dienstplan-th-day--weekend {
    background: color-mix(in srgb, var(--dienstplan-weekend, var(--dienstplan-info, #7c3aed)) 12%, transparent);
}
.dienstplan-th-day--weekend .dienstplan-day-name,
.dienstplan-th-day--weekend .dienstplan-day-date { color: var(--dienstplan-weekend, var(--dienstplan-info, #7c3aed)); }
.dienstplan-slot--weekend:not(.dienstplan-slot--filled):not(.dienstplan-slot--trade) {
    background: color-mix(in srgb, var(--dienstplan-weekend, var(--dienstplan-info, #7c3aed)) 8%, transparent);
}

/* ── Feiertage ────────────────────────────────────────────────────────── */
.dienstplan-th-day--holiday {
    background: color-mix(in srgb, var(--dienstplan-holiday, #dc2626) 18%, transparent) !important;
}
.dienstplan-th-day--holiday .dienstplan-day-name,
.dienstplan-th-day--holiday .dienstplan-day-date,
.dienstplan-day-holiday { color: var(--dienstplan-holiday, #dc2626) !important; }
.dienstplan-day-holiday {
    display: block;
    font-size: 10px;
    font-weight: 500;
    line-height: 1.2;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.dienstplan-slot--holiday:not(.dienstplan-slot--filled):not(.dienstplan-slot--trade) {
    background: color-mix(in srgb, var(--dienstplan-holiday, #dc2626) 10%, transparent) !important;
}

/* ── Termine-Zeile im Wochenkalender (erste Zeile unter dem Header) ── */
.dienstplan-td-type--events { vertical-align: middle; }
.dienstplan-type-badge--events {
    background: #f3f4f6;
    color: #374151;
    border: 1px solid #d1d5db;
}
.dienstplan-td-events {
    vertical-align: top;
    padding-top: 6px;
    padding-bottom: 6px;
}
/* Termin-Karte — Farben kommen via inline style aus der Kategorie */
.dienstplan-week-event {
    display: block;
    text-decoration: none;
    padding: 3px 6px;
    margin-bottom: 3px;
    border-radius: 0 3px 3px 0;
    font-size: 11px;
    color: var(--dienstplan-text, #1d2327);
    cursor: pointer;
    transition: filter .12s;
    position: relative;
    background: #f3f4f6;
    border-left: 3px solid #9ca3af;
}
.dienstplan-week-event:last-child { margin-bottom: 0; }
.dienstplan-week-event:hover { filter: brightness(0.96); text-decoration: none; }
.dienstplan-week-event-time { font-weight: 600; font-size: 10px; }
.dienstplan-week-event-title { display: block; margin-top: 1px; line-height: 1.2; }
.dienstplan-week-event-status { position: absolute; top: 2px; right: 4px; font-size: 10px; font-weight: 700; }
.dienstplan-week-event-status--yes  { color: var(--dienstplan-success, #16a34a); }
.dienstplan-week-event-status--no   { color: var(--dienstplan-danger, #d63638); }
.dienstplan-week-event-status--open { color: var(--dienstplan-accent, #2271b1); }
.dienstplan-week-event--span { border-left-width: 4px; }

/* ── Monatsansicht ── */
.dienstplan-month-grid { width: 100%; border-collapse: collapse; table-layout: fixed; background: var(--dienstplan-surface, #fff); }
.dienstplan-month-grid th {
    background: var(--dienstplan-surface-muted, #f6f7f7);
    border: 1px solid var(--dienstplan-border, #dcdcde);
    padding: 6px 8px;
    text-align: center;
    font-size: 12px;
    font-weight: 600;
}
.dienstplan-month-grid th.dienstplan-month-th--weekend { color: var(--dienstplan-weekend, var(--dienstplan-info, #7c3aed)); }
.dienstplan-month-grid td {
    border: 1px solid var(--dienstplan-border, #dcdcde);
    padding: 4px 5px;
    vertical-align: top;
    height: 110px;
    width: 14.285%;
    overflow: hidden;
}
.dienstplan-month-cell--other-month { background: #fafafa; opacity: .5; }
.dienstplan-month-cell--today    { background: var(--dienstplan-accent-soft, #dce9f7); }
.dienstplan-month-cell--weekend  { background: color-mix(in srgb, var(--dienstplan-weekend, var(--dienstplan-info, #7c3aed)) 6%, var(--dienstplan-surface, #fff)); }
.dienstplan-month-cell--holiday  { background: color-mix(in srgb, var(--dienstplan-holiday, #dc2626) 6%, var(--dienstplan-surface, #fff)); }
.dienstplan-month-cell--past     { opacity: .7; }

.dienstplan-month-day-num {
    font-size: 11px;
    font-weight: 600;
    color: var(--dienstplan-text-muted, #646970);
    margin-bottom: 3px;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 4px;
}
.dienstplan-month-cell--today .dienstplan-month-day-num { color: var(--dienstplan-accent, #2271b1); font-weight: 700; }
.dienstplan-month-day-holiday {
    font-size: 9px;
    color: var(--dienstplan-holiday, #dc2626);
    font-weight: normal;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    flex-shrink: 1;
    min-width: 0;
}

/* Schicht-Einträge in der Monatszelle — Farbe kommt via inline style aus dem Schichttyp */
.dienstplan-month-shift {
    background: var(--dienstplan-accent-soft, #dce9f7);
    border-left: 3px solid var(--dienstplan-accent, #2271b1);
    padding: 2px 4px;
    margin-bottom: 2px;
    border-radius: 0 2px 2px 0;
    font-size: 10px;
    line-height: 1.2;
}
.dienstplan-month-shift-type { font-weight: 600; font-size: 9px; color: var(--dienstplan-text-muted, #646970); }
.dienstplan-month-shift--empty { color: var(--dienstplan-border-strong, #8c8f94); }

/* Termin-Karten in der Monatszelle — Farbe kommt via inline style */
.dienstplan-month-event {
    display: block;
    text-decoration: none;
    padding: 2px 4px;
    margin-top: 2px;
    margin-bottom: 2px;
    border-radius: 0 2px 2px 0;
    font-size: 10px;
    color: var(--dienstplan-text, #1d2327);
    cursor: pointer;
    transition: filter .12s;
    background: #f3f4f6;
    border-left: 3px solid #9ca3af;
    position: relative;
    line-height: 1.2;
}
.dienstplan-month-event:hover { filter: brightness(0.96); text-decoration: none; }
.dienstplan-month-event-time  { font-weight: 600; font-size: 9px; }
.dienstplan-month-event-title { display: block; margin-top: 1px; }
.dienstplan-month-event-status {
    position: absolute;
    top: 1px;
    right: 3px;
    font-size: 9px;
    font-weight: 700;
}
.dienstplan-month-event-status--yes  { color: var(--dienstplan-success, #16a34a); }
.dienstplan-month-event-status--no   { color: var(--dienstplan-danger, #d63638); }
.dienstplan-month-event-status--open { color: var(--dienstplan-accent, #2271b1); }

/* ── Statistik-Shortcode [dienstplan_statistik] ─────────────────────────── */
.dienstplan-statistik {
    color: var(--dienstplan-text, #1d2327);
}
.dienstplan-statistik-title {
    margin: 0 0 1rem;
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--dienstplan-text, #1d2327);
}
.dienstplan-statistik-empty {
    color: var(--dienstplan-text-muted, #646970);
    margin: 0;
}
.dienstplan-statistik-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 1rem;
}
.dienstplan-statistik-tile {
    background: var(--dienstplan-surface-muted, #f6f7f7);
    border: 1px solid var(--dienstplan-border, #dcdcde);
    border-radius: var(--dienstplan-radius, 4px);
    padding: 1.1rem 1rem;
    text-align: center;
}
.dienstplan-statistik-tile-value {
    font-size: 1.85rem;
    font-weight: 700;
    line-height: 1.15;
    color: var(--dienstplan-accent, #2271b1);
    margin-bottom: 0.35rem;
}
.dienstplan-statistik-tile-label {
    font-size: 0.875rem;
    color: var(--dienstplan-text-muted, #646970);
    line-height: 1.3;
}

/* Premium-Layouts (balken / teams) — Styles im Free-CSS, Markup kommt aus Premium */
.dienstplan-statistik-bars {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.dienstplan-statistik-bar-row {
    display: grid;
    grid-template-columns: 5.5rem 1fr 3.5rem;
    gap: 0.75rem;
    align-items: center;
}
.dienstplan-statistik-bar-label {
    font-size: 0.875rem;
    color: var(--dienstplan-text-muted, #646970);
}
.dienstplan-statistik-bar-track {
    background: var(--dienstplan-surface-muted, #f6f7f7);
    border-radius: var(--dienstplan-radius, 4px);
    height: 0.85rem;
    overflow: hidden;
}
.dienstplan-statistik-bar-fill {
    height: 100%;
    background: var(--dienstplan-accent, #2271b1);
    border-radius: var(--dienstplan-radius, 4px);
    min-width: 0;
}
.dienstplan-statistik-bar-value {
    font-size: 0.875rem;
    font-weight: 600;
    text-align: right;
    color: var(--dienstplan-text, #1d2327);
}
.dienstplan-statistik-teams-table {
    width: 100%;
    border-collapse: collapse;
}
.dienstplan-statistik-teams-table th,
.dienstplan-statistik-teams-table td {
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid var(--dienstplan-border, #dcdcde);
    text-align: left;
}
.dienstplan-statistik-teams-table th {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--dienstplan-text-muted, #646970);
    font-weight: 600;
}
.dienstplan-statistik-teams-table td {
    font-size: 0.95rem;
}
.dienstplan-statistik-teams-table td.num {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
