/*
 * SunnahShop WMS – ein Erscheinungsbild fuer Dashboard und Lager (UI-Auftrag 28.09.2026).
 * Farben kommen aus AdminPanelProvider::erscheinungsbild() (Filament-Variablen --primary-* und --gray-*):
 * Gruen nur fuer Hauptaktionen und aktive Navigation, neutrale Flaechen, Rot nur fuer echte Probleme.
 * Keine ungebauten Tailwind-Klassen; eigene Bausteine beginnen mit .wms-.
 */

/* ---------- Grundwerte (hell / dunkel) ---------- */
:root {
    --wms-ink: var(--gray-950);
    --wms-muted: var(--gray-600);
    --wms-line: var(--gray-200);
    --wms-paper: #fff;
    --wms-canvas: var(--gray-50);
    --wms-soft: var(--gray-100);
    --wms-accent: var(--primary-600);
    --wms-accent-soft: var(--primary-50);
    --wms-accent-ink: var(--primary-800);
    --wms-link: var(--primary-700);
    --wms-focus: var(--primary-600);
    --wms-warn-line: #d97706;
    --wms-warn-soft: #fef3c7;
    --wms-warn-ink: #78350f;
    --wms-danger-line: #dc2626;
    --wms-danger-soft: #fee2e2;
    --wms-danger-ink: #991b1b;
}
.dark {
    --wms-ink: var(--gray-50);
    --wms-muted: var(--gray-400);
    --wms-line: oklch(1 0 0 / 0.1);
    --wms-paper: var(--gray-900);
    --wms-canvas: var(--gray-950);
    --wms-soft: oklch(1 0 0 / 0.06);
    --wms-accent: var(--primary-400);
    --wms-accent-soft: oklch(0.636 0.114 171 / 0.16);
    --wms-accent-ink: var(--primary-200);
    --wms-link: var(--primary-300);
    --wms-focus: var(--primary-400);
    --wms-warn-line: #f59e0b;
    --wms-warn-soft: oklch(0.77 0.16 70 / 0.16);
    --wms-warn-ink: #fcd34d;
    --wms-danger-line: #f87171;
    --wms-danger-soft: oklch(0.64 0.21 25 / 0.18);
    --wms-danger-ink: #fecaca;
}

/* ---------- Filament-Rahmen: nur Abstaende, Schrift und Fokus, keine eigenen Hintergruende ---------- */
.fi-header-heading { font-size: 1.6rem; letter-spacing: -.02em; }
.fi-main { padding-top: 1.5rem; padding-bottom: 3rem; }
.fi-btn { min-height: 42px; }
.fi-input-wrp { min-height: 42px; }
.fi-ta-header-cell { font-size: .78rem; font-weight: 650; }
:is(.fi-btn, .fi-icon-btn, .fi-link, .fi-sidebar-item-btn, .fi-tabs-item, .wms-menue-knopf):focus-visible { outline: 3px solid var(--wms-focus); outline-offset: 2px; }

/* Marke in der Kopfleiste */
.wms-marke { display: inline-flex; align-items: center; gap: .6rem; height: 100%; color: var(--wms-ink); white-space: nowrap; }
.wms-marke-bild { width: 2.1rem; height: 2.1rem; border-radius: .5rem; flex: none; }
.wms-marke-text { font-size: 1.05rem; font-weight: 600; letter-spacing: -.01em; }
.wms-marke-text strong { font-weight: 750; color: var(--wms-accent); }
@media (max-width: 420px) { .fi-topbar .wms-marke-text span { display: none; } }

/* Seitenleiste: grosse Klickflaechen, klare aktive Markierung, lesbare Gruppen */
.fi-sidebar-nav { padding-top: 1rem; }
.fi-sidebar-item-btn { min-height: 44px; border-radius: 10px; }
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn { box-shadow: inset 3px 0 0 var(--primary-600); }
.dark .fi-sidebar-item.fi-active > .fi-sidebar-item-btn { box-shadow: inset 3px 0 0 var(--primary-400); }
.fi-sidebar-group-label { font-size: .78rem; font-weight: 650; letter-spacing: .01em; color: var(--wms-muted); }
/* Der kleine Pfeil oben wird durch "Menü einklappen" oben in der Seitenleiste ersetzt; das mobile Menü bleibt. */
@media (min-width: 1024px) { .fi-topbar .fi-topbar-collapse-sidebar-btn-ctn { display: none; } }
.wms-menue-umschalter { margin-bottom: .75rem; padding-bottom: .75rem; border-bottom: 1px solid var(--wms-line); }
.wms-menue-knopf { display: flex; align-items: center; gap: .75rem; width: 100%; min-height: 44px; padding: .5rem .75rem; border-radius: 10px; color: var(--wms-muted); font-size: .9rem; font-weight: 500; }
.wms-menue-knopf:hover { background: var(--wms-soft); color: var(--wms-ink); }
.wms-menue-icon { width: 1.5rem; height: 1.5rem; flex: none; }
@media (max-width: 1023px) { .wms-menue-umschalter { display: none; } }

/* ---------- Tabellen, Kennzahlen, Hinweise ---------- */
.wms-stack { display: grid; gap: 1rem; }
.wms-summary { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0 0 1.25rem; }
.wms-summary > div { flex: 1 1 9rem; padding: .875rem 1rem; border: 1px solid var(--wms-line); border-radius: .75rem; background: var(--wms-paper); }
.wms-summary dt { color: var(--wms-muted); font-size: .875rem; }
.wms-summary dd { margin: .25rem 0 0; font-size: 1.5rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.wms-table-wrap { overflow-x: auto; border: 1px solid var(--wms-line); border-radius: .75rem; background: var(--wms-paper); }
.wms-table { width: 100%; border-collapse: collapse; text-align: left; font-size: .875rem; }
.wms-table th { padding: .875rem 1rem; background: var(--wms-canvas); color: var(--wms-muted); font-weight: 600; white-space: nowrap; }
.wms-table td { padding: 1rem; border-top: 1px solid var(--wms-line); vertical-align: top; }
.wms-table td[data-label="Artikel"] { min-width: 12rem; }
.wms-table strong { font-weight: 650; }
.wms-table a { color: var(--wms-link); text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
.wms-table a:focus-visible, .wms-details summary:focus-visible { outline: 3px solid var(--wms-focus); outline-offset: 3px; border-radius: .2rem; }
.dark .wms-table th { background: oklch(1 0 0 / 0.04); color: var(--gray-300); }
.wms-number { font-variant-numeric: tabular-nums; white-space: nowrap; }
.wms-muted { display: block; margin-top: .25rem; color: var(--wms-muted); font-size: .8125rem; overflow-wrap: anywhere; }
.wms-tag { display: inline-block; margin-top: .375rem; padding: .2rem .5rem; border-radius: .375rem; font-weight: 600; background: var(--wms-warn-soft); color: var(--wms-warn-ink); }
.wms-tag-danger { background: var(--wms-danger-soft); color: var(--wms-danger-ink); }
.wms-place + .wms-place { margin-top: .75rem; }
.wms-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 1rem; }
.wms-pagination > span { font-size: .875rem; }
.wms-empty { padding: 1.5rem; color: var(--wms-muted); text-align: center; }
.wms-details { margin-top: 1rem; font-size: .875rem; }
.wms-details summary { cursor: pointer; font-weight: 600; }
.wms-details p { margin-top: .75rem; }
.wms-notes { margin: 0; padding-left: 1.25rem; list-style: disc; }
.wms-notes li + li { margin-top: .5rem; }
.wms-search { display: grid; gap: .375rem; }
.wms-caption { font-size: .875rem; color: var(--wms-muted); margin-bottom: 1rem; }
@media (max-width: 1100px) {
    .wms-table-wrap { overflow: visible; border: 0; background: transparent; }
    .wms-table, .wms-table tbody { display: block; }
    .wms-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .wms-table tr { display: block; border: 1px solid var(--wms-line); border-radius: .75rem; margin-bottom: 1rem; overflow: hidden; background: var(--wms-paper); }
    .wms-table td { display: grid; grid-template-columns: minmax(5.5rem, 30%) minmax(0, 1fr); gap: .5rem; padding: .75rem; }
    .wms-table td::before { content: attr(data-label); font-size: .8125rem; color: var(--wms-muted); font-weight: 600; }
    .wms-table td:first-child { border-top: 0; }
    .wms-table td[data-label="Artikel"] { min-width: 0; }
    .wms-table td[colspan] { display: block; }
    .wms-table td[colspan]::before { content: none; }
}

/* Statusfarben: gruen erledigt, gelb offen/begonnen, rot nur Klaerfall/Stopp, grau neutral. */
.wms-status { display: inline-block; padding: .2rem .6rem; border-radius: .375rem; font-weight: 600; font-size: .8125rem; white-space: nowrap; }
.wms-status-gruen { background: var(--wms-accent-soft); color: var(--wms-accent-ink); }
.wms-status-gelb { background: var(--wms-warn-soft); color: var(--wms-warn-ink); }
.wms-status-rot { background: var(--wms-danger-soft); color: var(--wms-danger-ink); }
.wms-status-grau { background: var(--wms-soft); color: var(--wms-muted); }
.wms-status-blau { background: oklch(0.93 0.03 250); color: oklch(0.4 0.1 255); }
.dark .wms-status-blau { background: oklch(0.6 0.12 255 / 0.2); color: oklch(0.85 0.06 255); }

/* Scanner-Seiten (Wareneingang, Produktion, Retoure, Etiketten): grosse Schaltflaechen und Eingaben. */
.wms-scanner .fi-btn { min-height: 3rem; padding: .75rem 1.25rem; font-size: 1.05rem; }
.wms-scanner input:not([type=checkbox]):not([type=radio]), .wms-scanner select, .wms-scanner textarea { min-height: 2.75rem; font-size: 1.05rem; padding: .4rem .7rem; border: 1px solid var(--gray-300); border-radius: .5rem; background: var(--wms-paper); color: var(--wms-ink); }
.dark .wms-scanner input:not([type=checkbox]):not([type=radio]), .dark .wms-scanner select, .dark .wms-scanner textarea { border-color: oklch(1 0 0 / 0.16); background: oklch(1 0 0 / 0.05); }
.wms-scanner label { font-weight: 600; }

/* Formularbausteine fuer eigene Seiten (z. B. Einkauf): ausgerichtete Felder mit Einheit. */
.wms-feld { display: flex; flex-direction: column; gap: .35rem; min-width: 0; font-size: .875rem; font-weight: 600; color: var(--wms-ink); }
.wms-feld small { font-weight: 400; color: var(--wms-muted); }
.wms-eingabe { width: 100%; min-height: 42px; padding: .5rem .75rem; border: 1px solid var(--gray-300); border-radius: .5rem; background: var(--wms-paper); color: var(--wms-ink); font-weight: 400; font-size: .95rem; }
.dark .wms-eingabe { border-color: oklch(1 0 0 / 0.16); background: oklch(1 0 0 / 0.05); }
.wms-eingabe:focus { outline: 2px solid var(--wms-focus); outline-offset: 0; border-color: transparent; }
.wms-eingabe[disabled] { opacity: .6; }
.wms-mit-einheit { display: flex; align-items: stretch; }
.wms-mit-einheit .wms-eingabe { border-top-right-radius: 0; border-bottom-right-radius: 0; font-variant-numeric: tabular-nums; }
.wms-mit-einheit > span { display: grid; place-items: center; min-width: 3.25rem; padding: 0 .6rem; border: 1px solid var(--gray-300); border-left: 0; border-radius: 0 .5rem .5rem 0; background: var(--wms-canvas); color: var(--wms-muted); font-size: .8rem; font-weight: 650; }
.dark .wms-mit-einheit > span { border-color: oklch(1 0 0 / 0.16); }
.wms-formgruppe { border: 1px solid var(--wms-line); border-radius: 12px; padding: 1rem 1.1rem 1.1rem; display: grid; gap: .9rem; min-width: 0; }
.wms-formgruppe > legend { padding: 0 .35rem; font-weight: 650; font-size: .9rem; color: var(--wms-ink); }
.wms-raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .9rem 1rem; }
.wms-aktionen { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.wms-auswahlliste { list-style: none; margin: 0; padding: 0; border: 1px solid var(--wms-line); border-radius: 10px; overflow: hidden; background: var(--wms-paper); }
.wms-auswahlliste li + li { border-top: 1px solid var(--wms-line); }
.wms-auswahlliste button { display: flex; justify-content: space-between; gap: 1rem; width: 100%; padding: .65rem .85rem; text-align: left; min-height: 44px; align-items: center; }
.wms-auswahlliste button:hover, .wms-auswahlliste button:focus-visible { background: var(--wms-soft); }
.wms-gewaehlt { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; padding: .6rem .85rem; border: 1px solid var(--wms-accent); border-radius: 10px; background: var(--wms-accent-soft); color: var(--wms-ink); }
.wms-gewaehlt strong { font-weight: 650; }
.wms-fehlerbox { padding: .75rem 1rem; border-radius: 10px; border-left: 3px solid var(--wms-danger-line); background: var(--wms-danger-soft); color: var(--wms-danger-ink); }
.wms-fehlerbox p + p { margin-top: .25rem; }
.wms-erfolgbox { padding: .75rem 1rem; border-radius: 10px; border-left: 3px solid var(--wms-accent); background: var(--wms-accent-soft); color: var(--wms-ink); }
.wms-reiter { display: flex; flex-wrap: wrap; gap: .4rem; border-bottom: 1px solid var(--wms-line); margin-bottom: 1.25rem; }
.wms-reiter a, .wms-reiter button { display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: .5rem .9rem; margin-bottom: -1px; border-bottom: 2px solid transparent; color: var(--wms-muted); font-weight: 600; font-size: .92rem; }
.wms-reiter [aria-selected=true], .wms-reiter [aria-current=page] { color: var(--wms-ink); border-bottom-color: var(--wms-accent); }
.wms-reiter a:hover, .wms-reiter button:hover { color: var(--wms-ink); }
.wms-reiter .wms-zahl { min-width: 1.5rem; padding: .05rem .45rem; border-radius: 999px; background: var(--wms-soft); color: var(--wms-muted); font-size: .75rem; font-weight: 650; text-align: center; }
.wms-filterleiste { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: flex-end; margin-bottom: 1rem; }
.wms-filterleiste .wms-feld { flex: 1 1 14rem; }
.wms-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.wms-chip { display: inline-flex; align-items: center; min-height: 36px; padding: .3rem .8rem; border: 1px solid var(--wms-line); border-radius: 999px; background: var(--wms-paper); color: var(--wms-ink); font-size: .85rem; font-weight: 550; }
.wms-chip[aria-pressed=true] { border-color: var(--wms-accent); background: var(--wms-accent-soft); color: var(--wms-accent-ink); font-weight: 650; }
.wms-auswahlleiste { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; justify-content: space-between; margin-top: 1rem; padding: .75rem 1rem; border: 1px solid var(--wms-line); border-radius: 12px; background: var(--wms-paper); }
.wms-auswahlleiste.ist-aktiv { position: sticky; bottom: .75rem; z-index: 5; border-color: var(--wms-accent); box-shadow: 0 6px 24px oklch(0 0 0 / 0.1); }
.wms-leer { display: grid; justify-items: start; gap: .5rem; padding: 1.75rem 1.5rem; border: 1px dashed var(--gray-300); border-radius: 12px; background: var(--wms-paper); }
.dark .wms-leer { border-color: oklch(1 0 0 / 0.16); }
.wms-leer h3 { font-size: 1rem; font-weight: 650; }
.wms-leer p { color: var(--wms-muted); max-width: 62ch; line-height: 1.55; font-size: .9rem; }
.wms-hinweis-klein { display: inline-flex; align-items: center; gap: .3rem; font-size: .8rem; font-weight: 600; }
.wms-hinweis-klein.ist-warnung { color: var(--wms-warn-ink); }
.dark .wms-hinweis-klein.ist-warnung { color: var(--wms-warn-ink); }
.wms-hinweis-klein.ist-problem { color: var(--wms-danger-ink); }
.wms-table input[type=checkbox], .wms-auswahl-check { width: 1.15rem; height: 1.15rem; accent-color: var(--primary-600); }
.wms-table td.wms-check, .wms-table th.wms-check { width: 2.75rem; }
.wms-table .wms-eingabe { min-height: 38px; }

/* Nachgeladene Kacheln: lesbarer Platzhalter statt leerer Flaeche. */
.wms-lade-platzhalter { display: grid; gap: .35rem; padding: 1.1rem 1.25rem; border-radius: 12px; border: 1px dashed var(--gray-300); color: var(--wms-ink); font-size: .9rem; }
.dark .wms-lade-platzhalter { border-color: oklch(1 0 0 / 0.16); }
.wms-lade-platzhalter span { color: var(--wms-muted); font-size: .82rem; }

/* ---------- Startseite und Arbeitsflaechen ---------- */
.wms-workspace { color: var(--wms-ink); width: 100%; max-width: 1360px; margin-inline: auto; }
.wms-home { display: grid; gap: 28px; }
.wms-welcome { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; padding: 2px 0 4px; }
.wms-eyebrow { font-size: .78rem; color: var(--wms-muted); margin-bottom: 8px; }
.wms-welcome h2 { font-size: 1.5rem; font-weight: 600; letter-spacing: -.03em; margin: 0 0 5px; }
.wms-lead { color: var(--wms-muted); font-size: .95rem; line-height: 1.6; margin: 0 0 22px; max-width: 68ch; }
.wms-welcome .wms-lead { margin: 0; }
.wms-live-note { display: flex; align-items: center; gap: 7px; color: var(--wms-muted); font-size: .75rem; padding-top: 5px; white-space: nowrap; }
.wms-live-note > span { width: 6px; height: 6px; border-radius: 50%; background: var(--wms-accent); }
.wms-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.wms-metric { display: flex; flex-direction: column; gap: 12px; border: 1px solid var(--wms-line); border-radius: 14px; padding: 23px 24px; background: var(--wms-paper); color: var(--wms-ink); transition: border-color .15s, box-shadow .15s; }
.wms-metric > span { color: var(--wms-muted); font-size: .85rem; }
.wms-metric strong { font-size: 2.35rem; line-height: 1.2; font-weight: 650; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.wms-metric strong em { font-style: normal; font-size: 1.4rem; }
.wms-metric small { color: var(--wms-muted); font-size: .78rem; }
.wms-metric-accent { border-top: 3px solid var(--wms-accent); padding-top: 21px; }
.wms-metric-warning { border-top: 3px solid var(--wms-warn-line); padding-top: 21px; }
.wms-metric:hover, .wms-destination:hover { border-color: var(--gray-300); box-shadow: 0 5px 18px oklch(0 0 0 / 0.05); }
.dark .wms-metric:hover, .dark .wms-destination:hover { border-color: oklch(1 0 0 / 0.2); }
.wms-home-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 22px; align-items: start; }
.wms-panel { background: var(--wms-paper); border: 1px solid var(--wms-line); border-radius: 14px; padding: 24px; min-width: 0; }
.wms-panel-heading { margin-bottom: 20px; }
.wms-panel-heading h2 { font-size: 1rem; font-weight: 650; }
.wms-panel-heading .wms-muted { font-size: .8rem; }
.wms-action-row { display: grid; grid-template-columns: 42px 1fr 16px; gap: 13px; padding: 16px 0; align-items: center; border-top: 1px solid var(--wms-line); }
.wms-action-row strong, .wms-destination strong { font-size: .92rem; font-weight: 600; }
.wms-action-row small { display: block; color: var(--wms-muted); font-size: .8rem; margin-top: 3px; }
.wms-destination-icon { width: 42px; height: 42px; display: grid; place-items: center; background: var(--wms-soft); border-radius: 10px; color: var(--wms-ink); flex-shrink: 0; }
.wms-destination-icon svg { width: 22px; height: 22px; }
.wms-notice { background: var(--wms-canvas); border: 1px solid var(--wms-line); border-radius: 10px; padding: 16px; margin-bottom: 8px; line-height: 1.55; font-size: .875rem; }
.wms-notice strong { font-weight: 600; }
.wms-notice p { color: var(--wms-muted); margin-top: 6px; font-size: .82rem; }
.wms-notice-warning { border-left: 3px solid var(--wms-warn-line); }
.wms-quiet-link { display: flex; gap: 10px; justify-content: space-between; padding: 16px 0; font-size: .875rem; border-bottom: 1px solid var(--wms-line); }
.wms-quiet-link:hover, .wms-action-row:hover strong { color: var(--wms-link); }
.wms-footnote { color: var(--wms-muted); font-size: .78rem; line-height: 1.5; margin-top: 18px; }
.wms-destinations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.wms-destination { display: flex; gap: 16px; align-items: center; padding: 24px; border: 1px solid var(--wms-line); background: var(--wms-paper); border-radius: 14px; min-height: 108px; color: var(--wms-ink); }
.wms-destination > span:nth-child(2) { flex: 1; }
.wms-destination .wms-muted { line-height: 1.5; margin-top: 5px; }
.wms-destination-arrow { color: var(--wms-muted); }
.wms-workspace a:focus-visible { outline: 3px solid var(--wms-focus); outline-offset: 4px; border-radius: 6px; }
@media (max-width: 1000px) { .wms-home-grid { grid-template-columns: 1fr; } .wms-metric { padding: 18px; } .wms-metric strong { font-size: 1.85rem; } }
@media (max-width: 640px) {
    .wms-welcome { display: block; } .wms-live-note { margin-top: 12px; }
    .wms-metrics, .wms-destinations { grid-template-columns: 1fr; }
    .wms-metric { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
    .wms-metric strong { grid-column: 2; grid-row: 1 / 3; align-self: center; }
    .wms-metric small { grid-column: 1; }
    .wms-panel, .wms-destination { padding: 18px; } .wms-home { gap: 20px; } .wms-destination { min-height: 96px; }
}
@media (prefers-reduced-motion: reduce) { .wms-metric { transition: none; } }

/* Produktion: Einordnung der drei Produktionsorte, aktuelle Seite neutral markiert. */
.wms-orientierung { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); margin-bottom: 1rem; }
.wms-ort { background: var(--wms-paper); border: 1px solid var(--wms-line); border-radius: 12px; padding: 14px 16px; color: var(--wms-ink); font-size: .875rem; line-height: 1.5; }
.wms-ort strong { font-weight: 650; }
.wms-ort a { text-decoration: underline; text-underline-offset: .2em; }
.wms-ort a:focus-visible { outline: 3px solid var(--wms-focus); outline-offset: 3px; border-radius: .2rem; }
.wms-ort p { margin-top: 6px; color: var(--wms-muted); font-size: .875rem; }
.wms-ort-aktuell { border-color: var(--wms-accent); box-shadow: inset 0 3px 0 var(--wms-accent); }
.wms-produktion .wms-notice, .wms-produktion .wms-notice p { font-size: .875rem; }
@media (max-width: 640px) { .wms-orientierung { gap: .5rem; } .wms-ort { padding: 12px 14px; } }

/* ===== UI-Paket 3 (29.09.2026): je Arbeitsbereich ein eigener Abschnitt, damit parallele Aenderungen sauber zusammengehen. ===== */
/* --- Beginn UI3 Auftraege --- */
/* Aufträge (/admin/meine-auftraege): Reiter, Übernahme-Leiste, Druckcode-Karte - kompakt für den Drucklaptop. */
.wms-auftraege { display: grid; gap: 1rem; min-width: 0; }
.wms-auftraege-leiste { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.wms-auftraege-leiste-label { font-size: .875rem; font-weight: 600; color: var(--wms-muted); margin-right: .25rem; }
.wms-auftraege-anzahl { width: 6.5rem; }
/* Zuweisen (03.10.2026): Mitarbeiter-Wahl rechts von der Anzahl, mit etwas Luft dazwischen. */
.wms-auftraege-leiste-abstand { margin-left: .75rem; }
.wms-auftraege-ziel { width: 14rem; max-width: 100%; }
.wms-auftraege-fehler { font-size: .875rem; font-weight: 600; color: var(--wms-danger-ink); }
.wms-auftraege-druck { display: grid; gap: .75rem; padding: 1rem; border: 1px solid var(--wms-accent); border-radius: .75rem; background: var(--wms-accent-soft); }
.wms-auftraege-druck-kopf { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; color: var(--wms-ink); }
.wms-auftraege-bereich { font-size: .875rem; color: var(--wms-muted); font-variant-numeric: tabular-nums; }
.wms-auftraege-code { flex: 1 1 22rem; max-width: 30rem; }
.wms-auftraege-code input { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .02em; }
.wms-auftraege-warnung { margin: .25rem 0 0; font-size: .875rem; font-weight: 600; color: var(--wms-warn-ink); }
.wms-auftraege-liste { margin: 0; padding-left: 1.1rem; list-style: disc; font-size: .875rem; }
.wms-auftraege-liste li + li { margin-top: .25rem; }
@media (max-width: 640px) { .wms-auftraege-code { flex-basis: 100%; max-width: none; } }
/* Auftragsliste der Druckauswahl (manuelles Drucken in Billbee): aufklappbar, kompakte Zeilen, lange Listen scrollen in der Karte. */
.wms-auftraege-druckliste { font-size: .875rem; color: var(--wms-ink); }
.wms-auftraege-druckliste summary { cursor: pointer; font-weight: 600; width: max-content; }
.wms-auftraege-druckliste summary:focus-visible { outline: 3px solid var(--wms-focus); outline-offset: 3px; border-radius: .2rem; }
.wms-auftraege-druckliste .wms-table-wrap { margin-top: .5rem; }
@media (min-width: 1101px) {
    .wms-auftraege-druckliste .wms-table-wrap { max-height: 24rem; overflow-y: auto; }
    .wms-auftraege-druckliste .wms-table th, .wms-auftraege-druckliste .wms-table td { padding: .375rem .75rem; }
}
/* --- Ende UI3 Auftraege --- */

/* --- Beginn UI3 Belege (Retoure, Wareneingang, Einlagern) --- */
/* Kompakte Desktop-Seiten fuer Retoure, Wareneingang und Einlagern (Inhaber 29.09.2026): Arbeit laeuft meist in der App,
   das Web ist die ruhige Reserve - normale Feldgroessen statt Scanner-Groesse, zwei Spalten ab Laptopbreite. */
/* Reiterleiste "Annehmen | Angenommen" (Pruefung 30.09.2026): eine Huelle fuer Buchungsseite und Belegliste. Die Leiste
   steht mittig wie jede Filament-Reiterleiste (auch "Aufträge"), nur so breit wie ihre Reiter - auf beiden Seiten an
   derselben Stelle, nichts springt beim Umschalten. Der Abstand nach unten gleicht die Raster aus: die Buchungsseite
   liegt im Seitenraster (2rem Abstand), die Liste im Filament-Schema (1.5rem); beide Male 2.5rem bis zum Inhalt. */
.wms-belegreiter { display: flex; }
.fi-page-content > .wms-belegreiter { margin-bottom: .5rem; }
.fi-sc-component > .wms-belegreiter { margin-bottom: 1rem; }
.wms-beleg { width: 100%; max-width: 76rem; }
.wms-beleg-spalten { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem 2.5rem; align-items: start; }
@media (min-width: 64rem) { .wms-beleg-spalten { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.wms-beleg-fuss { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .75rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--wms-line); }
.wms-beleg-fuss > .wms-fehlerbox, .wms-beleg-fuss > .wms-hinweisbox { flex: 1 1 100%; }
.wms-beleg-wert { font-size: .875rem; color: var(--wms-ink); }
.wms-beleg-wert strong { font-weight: 650; }
.wms-zeile { display: flex; gap: .5rem; align-items: stretch; }
.wms-zeile > .wms-eingabe { flex: 1 1 auto; min-width: 0; }
.wms-feldfehler { color: var(--wms-danger-ink); font-size: .8125rem; font-weight: 600; }
.wms-stack > .wms-feldfehler { margin-top: -.6rem; }
.wms-hinweisbox { padding: .75rem 1rem; border-radius: 10px; border-left: 3px solid var(--wms-warn-line); background: var(--wms-warn-soft); color: var(--wms-warn-ink); font-size: .875rem; }
.wms-hinweisbox label { display: flex; align-items: center; gap: .5rem; margin-top: .5rem; font-weight: 600; }
/* Auswahl mit einem Klick: Radiogruppe, die wie Knoepfe aussieht (Tastatur und Pflichtfeld bleiben native). */
.wms-wahl { display: grid; gap: .4rem; min-width: 0; }
.wms-wahl > legend { padding: 0; margin-bottom: .4rem; font-size: .875rem; font-weight: 600; color: var(--wms-ink); }
.wms-segmente { display: flex; flex-wrap: wrap; gap: .4rem; }
.wms-segmente label { position: relative; display: inline-flex; }
.wms-segmente input { position: absolute; top: 50%; left: 50%; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.wms-segmente span { display: inline-flex; align-items: center; min-height: 40px; padding: .45rem .85rem; border: 1px solid var(--gray-300); border-radius: .5rem; background: var(--wms-paper); color: var(--wms-ink); font-size: .875rem; font-weight: 550; cursor: pointer; }
.dark .wms-segmente span { border-color: oklch(1 0 0 / 0.16); }
.wms-segmente span:hover { background: var(--wms-soft); }
.wms-segmente input:checked + span { border-color: var(--wms-accent); background: var(--wms-accent-soft); color: var(--wms-accent-ink); font-weight: 650; box-shadow: inset 0 0 0 1px var(--wms-accent); }
.wms-segmente input:focus-visible + span { outline: 3px solid var(--wms-focus); outline-offset: 2px; }
/* Foto als kleiner Knopf statt breitem Dateifeld. */
.wms-datei { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; font-size: .875rem; }
.wms-datei-knopf { position: relative; display: inline-flex; align-items: center; gap: .4rem; min-height: 36px; padding: .35rem .75rem; border: 1px solid var(--gray-300); border-radius: .5rem; background: var(--wms-paper); color: var(--wms-ink); font-size: .875rem; font-weight: 600; cursor: pointer; }
.dark .wms-datei-knopf { border-color: oklch(1 0 0 / 0.16); }
.wms-datei-knopf:hover { background: var(--wms-soft); }
.wms-datei-knopf:focus-within { outline: 3px solid var(--wms-focus); outline-offset: 2px; }
.wms-datei-knopf input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.wms-datei-icon { width: 1.1rem; height: 1.1rem; }
.wms-datei-name { color: var(--wms-muted); overflow-wrap: anywhere; }
.wms-haken { display: flex; align-items: center; gap: .5rem; font-size: .875rem; font-weight: 600; color: var(--wms-ink); }
.wms-haken input, .wms-hinweisbox input[type=checkbox] { width: 1.1rem; height: 1.1rem; accent-color: var(--primary-600); }
/* Einlagern: Platzliste dichter, Vorschlag als Textknopf. */
.wms-table-kompakt th, .wms-table-kompakt td { padding: .5rem .75rem; }
.wms-textknopf { display: inline; padding: 0; border: 0; background: none; color: var(--wms-link); font-weight: 600; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.wms-textknopf:focus-visible { outline: 3px solid var(--wms-focus); outline-offset: 2px; border-radius: .2rem; }
.wms-hinweisbox .wms-muted { margin-top: .35rem; }
/* Stornierte Wareneingaenge bleiben in der Liste, sind aber sichtbar abgesetzt. */
.fi-ta-row.wms-zeile-storniert > td { background: var(--wms-danger-soft); }
/* --- Ende UI3 Belege --- */

/* --- Beginn UI3 Produktion (Fertigware melden, Produktionsnachweise) --- */
/* Fertigware melden: kompaktes Desktop-Formular, Felder nebeneinander statt Handy-Stapel (Web ist Rueckfall zur App).
   Alle Zeilen teilen dasselbe Spaltenraster, damit Rohware, Quelle und Fertigware buendig untereinander stehen. */
.wms-pm { max-width: 64rem; }
.wms-pm-formular { display: grid; gap: .875rem; min-width: 0; margin: 0; padding: 0; border: 0; }
.wms-pm-zeile { display: grid; gap: .75rem; align-items: start; grid-template-columns: minmax(0, 2fr) minmax(9rem, 1fr) minmax(9rem, 1fr); }
.wms-pm-feld { display: grid; gap: .3rem; min-width: 0; }
.wms-pm-feld > label { font-size: .8125rem; font-weight: 600; color: var(--wms-muted); }
.wms-pm-entfernen { align-self: start; justify-self: start; margin-top: 1.65rem; }
.wms-pm-zeile-folge { margin-top: -.375rem; }
.wms-pm-zeile-folge .wms-pm-entfernen { margin-top: .25rem; }
.wms-pm-fehler { margin: 0; color: var(--wms-danger-ink); font-size: .8125rem; font-weight: 600; }
.wms-pm-leer { margin: 0; color: var(--wms-muted); font-size: .875rem; }
.wms-pm-aktionen { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.wms-pm-pruefung { display: grid; gap: .75rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--wms-line); }
.wms-pm-pruefung dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .4rem 1.25rem; margin: 0; font-size: .875rem; }
.wms-pm-pruefung dt { color: var(--wms-muted); font-weight: 600; }
.wms-pm-pruefung dd { margin: 0; display: grid; gap: .2rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.wms-pm-ergebnis { display: grid; gap: .75rem; justify-items: start; }
.wms-pm-ergebnis-titel { font-size: 1rem; font-weight: 650; color: var(--wms-accent-ink); }
.wms-pm-lot { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1.15rem; font-weight: 700; letter-spacing: .02em; }
@media (max-width: 720px) {
    .wms-pm-zeile { grid-template-columns: minmax(0, 1fr); }
    .wms-pm-entfernen { margin-top: 0; justify-self: start; }
    .wms-pm-pruefung dl { grid-template-columns: minmax(0, 1fr); }
}
/* Produktionsnachweise: Nachweis im Seitenpanel - Kopfdaten, verbrauchte Lots, was sonst daraus entstand. */
.wms-pn { display: grid; gap: 1.25rem; font-size: .875rem; color: var(--wms-ink); }
.wms-pn-daten { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .4rem 1.25rem; margin: 0; }
.wms-pn-daten dt { color: var(--wms-muted); font-weight: 600; }
.wms-pn-daten dd { margin: 0; overflow-wrap: anywhere; }
.wms-pn-lot { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 700; margin-right: .5rem; }
.wms-pn-klein { color: var(--wms-muted); font-size: .8125rem; }
.wms-pn-link { color: var(--wms-link); text-decoration: underline; text-underline-offset: .2em; margin-right: .5rem; }
.wms-pn-link:focus-visible { outline: 3px solid var(--wms-focus); outline-offset: 2px; border-radius: .2rem; }
.wms-pn-umbruch { overflow-wrap: anywhere; }
.wms-pn-abschnitt { display: grid; gap: .5rem; }
.wms-pn-titel { font-size: .9375rem; font-weight: 650; }
.wms-pn-untertitel { font-weight: 600; margin-top: .25rem; }
.wms-pn-tabelle { width: 100%; border-collapse: collapse; text-align: left; }
.wms-pn-tabelle th { padding: .5rem .625rem; background: var(--wms-canvas); color: var(--wms-muted); font-size: .78rem; font-weight: 650; white-space: nowrap; }
.dark .wms-pn-tabelle th { background: oklch(1 0 0 / 0.04); }
.wms-pn-tabelle td { padding: .5rem .625rem; border-top: 1px solid var(--wms-line); vertical-align: top; }
.wms-pn-zahl { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.wms-pn-liste { margin: 0; padding-left: 1.1rem; list-style: disc; display: grid; gap: .25rem; }
@media (max-width: 640px) { .wms-pn-daten { grid-template-columns: minmax(0, 1fr); } }
/* Eigene HTML-Tabellen der Seiten (Einkauf, Exporte, Hintergrundauftraege, Bestand -> Billbee, Nachbestellung, MHD, EK-Abdeckung)
   sehen aus wie die Bestand-Tabelle (Inhaber 29.09.2026, Regel B): kompakt, gestreift, Zahlen rechts und farbig nach Bedeutung,
   "—" grau fuer leere Werte. Auf schmalen Bildschirmen bleiben es Karten (.wms-table), dort ohne Streifen. */
.wms-tabelle-bestand th { padding: .625rem .75rem; font-size: .78rem; font-weight: 650; }
.wms-tabelle-bestand td { padding: .625rem .75rem; vertical-align: middle; }
.wms-tabelle-bestand td strong { font-weight: 550; }
.wms-tabelle-bestand .wms-muted { margin-top: .125rem; font-size: .8125rem; }
@media (min-width: 1101px) {
    .wms-tabelle-bestand tbody tr:nth-child(even) > td { background: var(--gray-50); }
    .dark .wms-tabelle-bestand tbody tr:nth-child(even) > td { background: oklch(1 0 0 / 0.05); }
    .wms-tabelle-bestand th.wms-number, .wms-tabelle-bestand td.wms-number { text-align: right; }
    .wms-tabelle-bestand td.wms-number .wms-muted { text-align: right; }
}
/* Geoeffnete Zeile (Einkauf -> Bestellungen) bleibt markiert: die Streifen liegen auf den Zellen und verdecken jede Zeilenfarbe,
   darum liegt auch die Markierung auf den Zellen - nach den Streifen, hell und dunkel, bei jeder Breite. */
.wms-tabelle-bestand tbody tr.ist-gewaehlt > td { background: var(--wms-accent-soft); }
.dark .wms-tabelle-bestand tbody tr.ist-gewaehlt > td { background: var(--wms-accent-soft); }
.wms-ton-danger { color: var(--danger-600); }
.wms-ton-success { color: var(--success-600); }
.wms-ton-warning { color: var(--warning-600); }
.wms-ton-info { color: var(--info-600); }
.wms-ton-gray { color: var(--gray-500); }
.dark .wms-ton-danger { color: var(--danger-400); }
.dark .wms-ton-success { color: var(--success-400); }
.dark .wms-ton-warning { color: var(--warning-400); }
.dark .wms-ton-info { color: var(--info-400); }
.dark .wms-ton-gray { color: var(--gray-400); }
/* Plaketten in eigenen Zeilen und Kopfleisten: ohne Umbruch nebeneinander, mit kleinem Abstand. */
.wms-plaketten { display: inline-flex; flex-wrap: wrap; gap: .375rem; align-items: center; vertical-align: middle; }
/* Kurze Statuszeile einer Systemseite: Plakette plus Schaltername (Regel 3), Zahlen als Kennzahlen darunter. */
.wms-statuszeile { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin-bottom: 1rem; font-size: .875rem; }
.wms-statuszeile code { font-size: .8125rem; color: var(--wms-muted); }
/* --- Ende UI3 Produktion --- */

/* --- Beginn UI3 Navigation --- */
/* Kachelseite ohne Unterzeilen (Entscheidung Inhaber 29.09.2026): Kacheln nur so hoch wie Symbol und Titel. */
.wms-destinations .wms-destination { min-height: 0; padding: 16px 20px; }
/* --- Ende UI3 Navigation --- */
/* --- Beginn UI3 Dienste --- */
/* Dienste (Systemzustand, Lagebild-Platzhalter): Tabellen sehen aus wie der Bestand - gestreift, Zahlen rechts. */
@media (min-width: 1101px) {
    .wms-warteschlangen tbody tr:nth-child(even) td { background: var(--wms-canvas); }
    .wms-warteschlangen .wms-zahlspalte { text-align: right; }
}
.wms-warteschlangen .wms-zahlspalte .wms-muted { font-variant-numeric: tabular-nums; }
/* "Neu laden" ersetzt die fruehere Erklaerzeile des Ladeplatzhalters: eine Aktion statt eines Satzes. */
.wms-lade-neu { justify-self: start; padding: .35rem .75rem; border: 1px solid var(--wms-line); border-radius: .5rem; background: var(--wms-paper); color: var(--wms-ink); font-size: .82rem; font-weight: 600; cursor: pointer; }
.wms-lade-neu:hover { background: var(--wms-soft); }
.wms-lade-neu:focus-visible { outline: 3px solid var(--wms-focus); outline-offset: 2px; }
/* --- Ende UI3 Dienste --- */
/* --- Beginn UI3 Pruefung Oberflaeche (30.09.2026) --- */
/* Auftragsnummern brechen nie um: "ORD-1024" bleibt eine Zeile. Filament-Spalte mit der Klasse wms-nummer-einzeilig
   (Auftragssteuerung; nur die Nummer, die lange Marktplatznummer darunter darf umbrechen) und die Spalte "Auftrag"
   eigener Tabellen (Druckcode-Liste, Laufweg, Retouren-Klaerfaelle) - dort bricht der Link sonst an jeder Stelle. */
.fi-ta-table .fi-ta-cell .wms-nummer-einzeilig.fi-ta-text.fi-ta-text-item,
.fi-ta-table .fi-ta-cell .wms-nummer-einzeilig.fi-ta-text > .fi-ta-text-item { white-space: nowrap; }
.wms-table td[data-label="Auftrag"], .wms-table td[data-label="Auftrag"] a, .wms-table td[data-label="Auftrag"] strong { white-space: nowrap; overflow-wrap: normal; }
.wms-table td[data-label="Auftrag"] .wms-muted { white-space: normal; }
/* --- Ende UI3 Pruefung Oberflaeche --- */
/* --- Beginn UI5 Tabellen (Mohamed 03.10.2026: "a word above a word", "lot took too long space") --- */
/* Umbrechende Spalten (Artikel, Fertigware, Kunde ...) nie ein Wort je Zeile: AppServiceProvider gibt jeder solchen
   Zelle ihre Textlaenge (--wms-zeichen) mit. Die Zelle wird so breit wie der Text, begrenzt: der halbfette Hauptname
   (wms-hauptname) hoechstens 12rem (breite Bildschirme 14rem, schmale 11rem), Nebenspalten (Kunde, Lieferant,
   Rohware) 9rem. Laengere Texte laufen in zwei Zeilen, kurze Werte nehmen keinen Platz weg. */
.fi-ta-table td.wms-umbruch .fi-ta-text { min-width: min(calc(var(--wms-zeichen, 12) * 1ch + 1.5rem), 9rem); text-wrap: balance; }
.fi-ta-table td.wms-umbruch.wms-hauptname .fi-ta-text { min-width: min(calc(var(--wms-zeichen, 12) * 1ch + 1.5rem), 12rem); }
@media (min-width: 1600px) {
    .fi-ta-table td.wms-umbruch.wms-hauptname .fi-ta-text { min-width: min(calc(var(--wms-zeichen, 12) * 1ch + 1.5rem), 14rem); }
}
@media (max-width: 1365px) {
    .fi-ta-table td.wms-umbruch.wms-hauptname .fi-ta-text { min-width: min(calc(var(--wms-zeichen, 12) * 1ch + 1.25rem), 11rem); }
}
/* Laptop-Breiten (unter 1600 px): etwas schmalere Zellenraender, damit acht bis zehn Spalten nebeneinander passen. */
@media (max-width: 1599px) {
    .fi-ta-table .fi-ta-header-cell,
    .fi-ta-table .fi-ta-cell .fi-ta-text:not(.fi-inline),
    .fi-ta-table .fi-ta-cell .fi-ta-icon:not(.fi-inline) { padding-inline: .625rem; }
    .fi-ta-table .fi-ta-header-cell:first-of-type { padding-inline-start: 1.375rem; }
    .fi-ta-table .fi-ta-header-cell:last-of-type { padding-inline-end: 1.375rem; }
}
/* Ruhigere, dichtere Zeilen: etwas weniger Hoehe, Unterzeile (SKU, Ort, Datum) kleiner als der Wert darueber. */
.fi-ta-table .fi-ta-cell .fi-ta-text:not(.fi-inline) { padding-block: calc(var(--spacing) * 3); }
.fi-ta-table .fi-ta-cell .fi-ta-text > .fi-ta-text-description { font-size: .8125rem; }
/* Mengen und Betraege (rechtsbuendig) stehen ziffernweise buendig untereinander. */
.fi-ta-table .fi-ta-cell .fi-ta-text.fi-align-end { font-variant-numeric: tabular-nums; }
/* Sortierpfeile im Spaltenkopf kleiner (16 px): spart Breite bei Spalten mit kurzen Werten (Pos., Offen, Status). */
.fi-ta-header-cell .fi-ta-header-cell-sort-btn > .fi-icon { width: 1rem; height: 1rem; }
/* "Filter" und "Spalten" als beschriftete Knoepfe neben der Suche (statt zweier Symbole). */
.fi-ta-header-toolbar .fi-btn { min-height: 38px; }
/* Unterzeilen unter einem Etikett (z. B. Storno-Beleg und Zeit unter "Storniert") brechen bei Platzmangel um,
   statt die Spalte breiter als ihr Etikett zu machen. */
.fi-ta-table .fi-ta-cell .fi-ta-text.fi-ta-text-has-badges > .fi-ta-text-description { white-space: normal; }
/* Eine Lot-Zeile unter der Rohware ("Lot · Menge") bricht nie in sich um. */
.fi-ta-text-description .wms-lot-zeile { white-space: nowrap; }
/* Das gefilterte Lot in einer Lot-Liste (z. B. Rohware im Produktionsnachweis) faellt auf. */
.fi-ta-text-description .wms-lot-treffer { color: var(--primary-600); font-weight: 600; }
.dark .fi-ta-text-description .wms-lot-treffer { color: var(--primary-400); }
/* Selbstgebaute Listen (Nachbestellung, Einkauf ...): mehrwortige Spaltenkoepfe ("Ø Verbrauch je Tag") duerfen
   zweizeilig werden, statt die Tabelle breiter als den Bildschirm zu machen. */
.wms-tabelle-bestand th { white-space: normal; vertical-align: bottom; }
@media (max-width: 1599px) {
    .wms-tabelle-bestand th, .wms-tabelle-bestand td { padding-inline: .5rem; }
    .wms-tabelle-bestand td[data-label="Artikel"] { min-width: 10rem; }
}
/* Spaltenbreite ziehen wie in Google Tabellen (public/js/wms-tabellen.js): Griff am rechten Rand jedes Spaltenkopfs,
   beim Zeigen eine Linie in der Hauptfarbe. Eine gezogene Spalte (wms-breite) ist genau so breit; laengerer Inhalt
   wird abgeschnitten statt die Spalte zu verbreitern. Doppelklick auf den Rand: wieder Standardbreite. */
.fi-ta-table th[data-wms-spalte] { position: relative; }
.fi-ta-table th[data-wms-spalte]::after { content: ''; position: absolute; inset-block: .5rem; inset-inline-end: 0; width: 3px; border-radius: 2px; background: transparent; transition: background-color .1s; }
.fi-ta-table th[data-wms-spalte]:hover::after { background: var(--gray-300); }
.dark .fi-ta-table th[data-wms-spalte]:hover::after { background: var(--gray-600); }
.fi-ta-table th[data-wms-spalte].wms-zieht::after { inset-block: 0; background: var(--primary-500); }
html.wms-spaltenrand, html.wms-spaltenrand *, html.wms-spalte-zieht, html.wms-spalte-zieht * { cursor: col-resize !important; }
html.wms-spalte-zieht, html.wms-spalte-zieht * { user-select: none !important; }
.fi-ta-table td.wms-breite .fi-ta-col { width: var(--wms-breite); max-width: var(--wms-breite); overflow: hidden; }
.fi-ta-table td.wms-breite .fi-ta-text { min-width: 0 !important; max-width: 100%; }
.fi-ta-table td.wms-breite .fi-ta-text.fi-wrapped { overflow-wrap: anywhere; }
.fi-ta-table td.wms-breite .fi-ta-text:not(.fi-wrapped),
.fi-ta-table td.wms-breite .fi-ta-text:not(.fi-wrapped) > .fi-ta-text-item { overflow: hidden; text-overflow: ellipsis; }
/* --- Ende UI5 Tabellen --- */
