/*
 * LoGi – Oberfläche für Staplerterminal (1024 × 768, Touch + Scanner) und Büro-PC (27.10.2026)
 * Grundlage: Analyse L2_oberflaeche.md (U-01 … U-20), Stufe 1 (V2, Paket A, Paket B).
 *
 * Wird in views/layout.php NACH css/logi.min.css (Generat) geladen und gewinnt dadurch. Das Generat bleibt unverändert.
 * Vorgabe Maximilian: gleiche Abläufe, Knöpfe, Reihenfolge und Begriffe – nur lesbarer, größer und zuverlässiger.
 * Deshalb bleiben: blaue/ockerfarbene/rote Kacheln im Cockpit, gelbe <my_button*>-Knöpfe, blaue „Speichern/Hinzufügen“-Knöpfe.
 * Optik wie TMS/VMSM/FMS: IBM Plex Sans, helle Leisten, Burda-Rot nur als Akzent (aktiv/Hover/Marke).
 *
 * Geräte nach Bildschirmbreite:  Terminal/Tablet 600–1199 px (ODRKSTAP1–6: 1024 px)  ·  PC ≥ 1200 px
 */

/* ---------------------------------------------------------------------------------------------------------------
   Schrift (aus TMS/VMSM, im Repo gebündelt – kein Internetaufruf) und Farben
   --------------------------------------------------------------------------------------------------------------- */
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/ibm-plex-sans-400-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/ibm-plex-sans-400-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/ibm-plex-sans-500-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/ibm-plex-sans-500-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/ibm-plex-sans-600-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/ibm-plex-sans-600-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  --logi-schrift: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --logi-papier: #F4F5F7; --logi-flaeche: #FFFFFF; --logi-tinte: #1B2430; --logi-grau: #5B6470;
  --logi-linie: #D3D9E0; --logi-linie2: #E9ECF0; --logi-hover: #F7F8FA;
  --logi-rot: #C8102E; --logi-rot-dunkel: #A30D25; --logi-rot-hell: #FBE9EC;
  --logi-blau: #1D4ED8; --logi-blau-hell: #E8EEFC;
  --logi-ok: #1E6B34; --logi-ok-hell: #E6F4EA;
  --logi-fehler: #8A0016; --logi-fehler-rand: #C8102E; --logi-fehler-hell: #FDECEE;
  --logi-warn: #6B4A00; --logi-warn-hell: #FFF4D6;
  --logi-gelb: #FED500; --logi-gelb-rand: #8A6D00;
  --logi-ocker: #99681A;      /* Cockpit-Kacheln: gleicher Ockerton, etwas dunkler für weiße Schrift (vorher #cc9933 = 2,6:1, jetzt 4,8:1) */
  --logi-touch: 48px;         /* Mindesthöhe für alles, was man antippt */
  --bs-body-font-family: var(--logi-schrift);
  --bs-body-color: var(--logi-tinte);
}
body, .tooltip, .popover, .dropdown-menu, .btn, .form-control, .form-select, input, select, textarea { font-family: var(--logi-schrift); }
body { background: var(--logi-papier); color: var(--logi-tinte); font-variant-numeric: tabular-nums; }
.wrapper, .content-wrapper { background: var(--logi-papier) !important; }

/* ---------------------------------------------------------------------------------------------------------------
   Kopfleiste hell (statt dunkelgrau), Einträge einzeilig, Benutzer/Abmelden immer im Bild (U-01, U-17)
   --------------------------------------------------------------------------------------------------------------- */
.main-header.navbar { background: var(--logi-flaeche) !important; border-bottom: 1px solid var(--logi-linie) !important; box-shadow: none;
  min-height: 56px; flex-wrap: nowrap; padding-top: 0; padding-bottom: 0; }
.main-header .container-fluid { flex-wrap: nowrap; min-width: 0; padding-left: .25rem; padding-right: .25rem; }
.main-header #ew-navbar { flex-wrap: nowrap; overflow-x: auto; overflow-y: visible; scrollbar-width: none; min-width: 0; align-items: center; }
.main-header #ew-navbar::-webkit-scrollbar { display: none; }
.main-header #ew-navbar-end { flex-wrap: nowrap; flex-shrink: 0; align-items: center; }
.main-header .navbar-nav .nav-link { color: var(--logi-tinte) !important; font-weight: 500; white-space: nowrap; min-height: var(--logi-touch);
  display: flex; align-items: center; gap: .35rem; padding: .25rem .6rem; border-bottom: 3px solid transparent; }
.main-header .navbar-nav .nav-link:hover, .main-header .navbar-nav .nav-item.show > .nav-link,
.main-header .navbar-nav .nav-item.active > .nav-link, .main-header .navbar-nav .nav-link.active { color: var(--logi-rot) !important; border-bottom-color: var(--logi-rot); }
.main-header .navbar-nav .nav-link .ew-icon, .main-header .navbar-nav .nav-link > i { color: var(--logi-grau); }
#ew-navbar-end .nav-link.active, #ew-navbar-end .nav-item.active > .nav-link { border-bottom-color: transparent; color: var(--logi-tinte) !important; font-weight: 700; }
.main-header .dropdown-menu { border: 1px solid var(--logi-linie); border-radius: 8px; box-shadow: 0 8px 24px rgba(27, 36, 48, .12); padding: .35rem;
  max-height: calc(100vh - 70px); overflow-y: auto; }
.main-header .dropdown-item { border-radius: 5px; padding: .55rem .8rem; min-height: var(--logi-touch); display: flex; align-items: center; gap: .4rem; }
.main-header .dropdown-item:hover, .main-header .dropdown-item.active { background: var(--logi-rot-hell) !important; color: var(--logi-rot) !important; }
/* Logo einmal (in der Leiste), Test-Kennzeichen */
.main-header .navbar-brand.logi-brand { display: inline-flex !important; align-items: center; gap: .5rem; padding: 0 .5rem 0 .25rem; margin: 0; }
.main-header .navbar-brand.logi-brand .ew-brand-image { max-height: 38px; width: auto; }
.logi-test { padding: 2px 8px; border-radius: 999px; background: #FFF1B8; color: #6B5200; border: 1px solid #E0B800; font-size: 13px; font-weight: 600; }
/* altes, per js/userfn.js vor die Leiste gehängtes Logo (entfällt; falls ein alter Cache es noch einhängt) */
.wrapper > img[src$="ohl_burda_logo.png"] { display: none; }
/* Benutzermenü: nur, was am Terminal gebraucht wird (Zwei-Faktor/Backup-Codes/Personenbezogene Daten nur Administrator) */
body:not(.logi-rolle--1) #personal-data, body:not(.logi-rolle--1) #enable-2fa, body:not(.logi-rolle--1) #backup-codes, body:not(.logi-rolle--1) #disable-2fa { display: none !important; }
.dropdown-header { font-size: 14px; color: var(--logi-grau); }
#ew-navbar-end .dropdown-footer .btn { min-height: var(--logi-touch); min-width: 140px; font-weight: 600; }
#ew-nav-link-user { min-width: var(--logi-touch); justify-content: center; }

/* 27.10.2026: Seitenleiste entfällt (Wunsch Maximilian, wie Fuhrpark/FMS) – ganzes Menü in der Kopfzeile, Inhalt volle Breite.
   Was nicht in die eine Zeile passt (Terminal 1024 px, Admin-Rollen auch am PC), legt js/logi-ui.js der Reihe nach von hinten
   in das Aufklappmenü „Mehr“ (Gruppen dort zum Aufklappen). Die Leiste bricht nie um. */
.main-sidebar { display: none !important; }
.content-wrapper, .main-header, .main-footer { margin-left: 0 !important; }
.main-header #ew-navbar { overflow: visible; }   /* rollt nicht mehr (vorher overflow-x: auto) – Aufklappmenüs hängen normal unter ihrem Punkt */
.main-header #ew-navbar > li.logi-im-mehr { display: none !important; }
.main-header .logi-mehr > .dropdown-menu { min-width: 300px; }
.main-header .logi-mehr > .dropdown-toggle::after { display: none; }   /* Symbol ☰ statt Pfeil */
.logi-mehr-gruppe { display: flex; align-items: center; gap: .4rem; width: 100%; min-height: var(--logi-touch); padding: .55rem .8rem; border: 0; border-radius: 5px;
  background: none; color: var(--logi-tinte); font: inherit; font-weight: 600; text-align: left; }
.logi-mehr-gruppe > i:first-child { color: var(--logi-grau); width: 1.2em; text-align: center; }
.logi-mehr-gruppe .logi-pfeil { margin-left: auto; color: var(--logi-grau); transition: transform .15s; }
.logi-mehr-gruppe[aria-expanded="true"] { background: var(--logi-hover); color: var(--logi-rot); }
.logi-mehr-gruppe[aria-expanded="true"] .logi-pfeil { transform: rotate(180deg); }
.logi-mehr-gruppe.active { color: var(--logi-rot); }
.logi-mehr-inhalt { padding-left: 1.1rem; border-left: 2px solid var(--logi-linie2); margin: 0 0 .25rem .9rem; }
.logi-mehr-inhalt[hidden] { display: none; }
.main-header .logi-mehr .dropdown-item > i { color: var(--logi-grau); width: 1.2em; text-align: center; }
@media (min-width: 576px) and (max-width: 1199.98px) { /* Terminal/Tablet: Einträge etwas enger, damit Tools noch in die Leiste passt (Ziel weiter ≥ 48 px hoch) */
  .main-header .navbar-nav .nav-link { padding-left: .35rem; padding-right: .35rem; gap: .25rem; font-size: 15px; }
  .main-header #ew-navbar .dropdown-toggle::after { margin-left: .15em; }
  .main-header .navbar-brand.logi-brand { padding-right: .25rem; gap: .35rem; }
  .main-header .navbar-brand.logi-brand .ew-brand-image { max-height: 32px; }
  .logi-test { padding: 1px 6px; font-size: 12px; }
}
@media (max-width: 575.98px) { /* Handy: PHPMaker blendet Kopfzeilen-Menüs aus (d-none d-sm-block) – als Symbole zeigen */
  .main-header #ew-navbar > .ew-navbar-item { display: block !important; }
  .main-header #ew-navbar .dropdown-menu > li { display: block !important; }
  .main-header #ew-navbar > .ew-navbar-item > .nav-link > span { display: none; }
  .main-header #ew-navbar > .ew-navbar-item > .nav-link { padding-left: .55rem; padding-right: .55rem; min-width: var(--logi-touch); justify-content: center; }
  .main-header #ew-navbar .dropdown-menu.show { position: fixed !important; inset: 56px 8px auto auto !important; transform: none !important; max-width: calc(100vw - 16px); }
  .main-header .navbar-brand.logi-brand .logi-test { display: none; }
}

/* ---------------------------------------------------------------------------------------------------------------
   Seitenkopf: Titel + rechts Konto und aktive Ladung/Palette/LKW (U-14, A7). Brotkrumen nur am PC.
   --------------------------------------------------------------------------------------------------------------- */
.content-header { padding: 10px .5rem 4px; }
.content-header .row { align-items: center; row-gap: 4px; }
.content-header .row > .col-sm-6:last-child { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 4px 12px; }
.content-header .row > .col-sm-6:last-child .breadcrumb { float: none !important; }
.content-header h1, .content-header h1.text-dark { font-size: 24px; font-weight: 600; color: var(--logi-tinte) !important; letter-spacing: -.01em; }
.content-header h1 small { font-size: .7em; color: var(--logi-grau) !important; }
.breadcrumb { font-size: 14px; margin-bottom: 0; }
.breadcrumb a, .breadcrumb-item.active, .breadcrumb-item + .breadcrumb-item::before { color: var(--logi-grau); text-decoration: none; }
.logi-kopfinfo { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; font-size: 15px; line-height: 1.2; }
.logi-kopfinfo > span { background: var(--logi-flaeche); border: 1px solid var(--logi-linie); border-radius: 999px; padding: 4px 10px; color: var(--logi-grau); white-space: nowrap; }
.logi-kopfinfo > span b { color: var(--logi-tinte); font-weight: 600; }
.logi-kopfinfo > span.logi-kopf-ladung { border-color: #9DB3F0; background: var(--logi-blau-hell); }
@media (max-width: 1199.98px) { .content-header .breadcrumb { display: none; } }
@media (max-width: 575.98px) { .logi-kopfinfo { justify-content: flex-start; } }

/* ---------------------------------------------------------------------------------------------------------------
   Meldungen: oben, Fehler groß und deutlich, Hinweise in normaler Größe (U-08, U-11).
   Die Generat-Regel .alert{font-size:28px} galt für alle Meldungen, auch „Keine Datensätze gefunden“.
   --------------------------------------------------------------------------------------------------------------- */
.alert { font-size: 17px; border: 1px solid var(--logi-linie); border-left: 6px solid; border-radius: 8px; padding: .7rem 1rem; }
.alert-danger, .alert.ew-error { background: var(--logi-fehler-hell) !important; color: var(--logi-fehler) !important; border-left-color: var(--logi-fehler-rand) !important;
  font-size: 24px; font-weight: 600; line-height: 1.3; }
.alert-success { background: var(--logi-ok-hell) !important; color: var(--logi-ok) !important; border-left-color: var(--logi-ok) !important; font-size: 20px; font-weight: 600; }
.alert-warning { background: var(--logi-warn-hell) !important; color: var(--logi-warn) !important; border-left-color: #E0B800 !important; }
.alert-info { background: var(--logi-blau-hell) !important; color: #173CA8 !important; border-left-color: var(--logi-blau) !important; }
.alert .btn-close { width: 44px; height: 44px; padding: 0; background-size: 16px; }
.alert-dismissible { padding-right: 3.6rem; }
.alert-dismissible .btn-close { top: 2px; right: 2px; }
.logi-technik { display: inline-block; margin-left: .5rem; font-size: .6em; font-weight: 500; opacity: .8; }
.ew-message-dialog { margin-bottom: .8rem; }
.invalid-feedback { font-size: 16px; font-weight: 600; }
/* leere Liste: Hinweis in normaler Größe */
.ew-grid .alert, .ew-list .alert, .alert.ew-no-record { font-size: 16px; font-weight: 500; }

/* ---------------------------------------------------------------------------------------------------------------
   Masken (Scannen, Entnahme, LKW beladen, Pal.=>Pal., …): Felder, Auswahl, Knöpfe tippsicher (U-05, A2)
   --------------------------------------------------------------------------------------------------------------- */
.ew-form .col-form-label, .ew-form .ew-label { font-weight: 600; color: var(--logi-tinte); }
.ew-form .form-control, .ew-form .form-select { min-height: var(--logi-touch); border-color: #B7C0CB; }
.ew-form .form-control:focus, .ew-form .form-select:focus { border-color: var(--logi-blau) !important; box-shadow: 0 0 0 4px rgba(29, 78, 216, .22) !important; }
/* Scanfelder: 56 px hoch, 24 px Schrift, Breite der Karte */
#x_code, #x_scan_code, #x_scan_vms, #x_pal_von, #x_lagerplatz, #x_anzahl2, .logi-scanform input[name="eingabe"] {
  min-height: 56px; font-size: 24px !important; font-weight: 500; padding: .35rem .75rem; width: 100% !important; max-width: 640px; }
#x_code:focus, #x_scan_code:focus, #x_scan_vms:focus, #x_pal_von:focus, #x_lagerplatz:focus, #x_anzahl2:focus, .logi-scanform input[name="eingabe"]:focus {
  border: 2px solid var(--logi-blau) !important; box-shadow: 0 0 0 5px rgba(29, 78, 216, .28) !important; outline: none; }
#x_anzahl2 { max-width: 200px; }
/* Auswahlknöpfe (Anzahl 1/5/10/Rest/alle, prüfen ja/nein, Vollballen/Spitzen, 1.–5. Pal.): Kreis 28 px, ganze Fläche tippbar */
.ew-form .ew-item-list { display: flex; flex-wrap: wrap; gap: 0 .4rem; }
.ew-form .ew-item-list .d-sm-table-cell, .ew-form .ew-item-list > div { padding-right: 0; }
.ew-form .form-check { display: inline-flex; align-items: center; min-height: var(--logi-touch); padding-left: 0; margin: 0 .9rem 0 0; }
.ew-form .form-check-input { width: 28px; height: 28px; margin: 0 .45rem 0 0; float: none; flex: 0 0 auto; border: 2px solid #8A95A3; cursor: pointer; }
.ew-form .form-check-label { padding: .55rem .35rem; cursor: pointer; font-size: 1.1em; }
/* Reiter „Scannen | Daten“ */
.ew-multi-page .nav-tabs .nav-link { min-height: 44px; display: flex; align-items: center; font-weight: 500; color: var(--logi-blau); }
.ew-multi-page .nav-tabs .nav-link.active { border-top: 3px solid var(--logi-rot); color: var(--logi-tinte); }
/* Knöpfe unter der Maske: blau/grau wie bisher, aber 48 px hoch und mit Abstand (Fehltipp auf „Abbrechen“) */
.ew-buttons .btn, .ew-form .btn.ew-btn, .ew-form button[type="submit"] { min-height: var(--logi-touch); min-width: 150px; font-weight: 600; font-size: 18px; margin: 4px 18px 4px 0; }
.ew-buttons { margin-top: .6rem; }
.btn { border-radius: 6px; }
.btn-default { background: var(--logi-flaeche); border-color: var(--logi-linie); color: var(--logi-tinte); }

/* Gewohnte gelbe/blaue/grüne Knöpfe aus dem Eigencode (<my_button*>): Farbe bleibt, 48 px hoch, ein ruhiger Schatten statt Wildwuchs */
my_button, my_button1, my_button_red, my_button_niedrig, my_button_blau, my_button_pal, my_button_todo_sand, my_button_vms,
my_button_niedrig_hellgruen, my_button_schmal, my_button_schmal_gelb, round_button {
  display: inline-flex !important; align-items: center; justify-content: center; min-height: var(--logi-touch); padding: 8px 16px !important;
  font-family: var(--logi-schrift); font-weight: 600; font-size: 17px !important; line-height: 1.15; border-radius: 6px !important;
  margin: 6px 10px 6px 0 !important; box-shadow: 0 2px 0 rgba(0, 0, 0, .28) !important; transition: transform .05s, filter .1s !important; }
my_button_pal, my_button_vms, my_button_todo_sand { font-size: 20px !important; }
my_button_schmal, my_button_schmal_gelb { min-height: 40px; font-size: 15px !important; padding: 6px 12px !important; margin: 3px 6px 3px 0 !important; }
my_button_blau { background-color: #1A6FD0 !important; }                  /* gleiches Blau, Kontrast 5:1 statt 3,2:1 */
my_button_niedrig_hellgruen { border: 2px solid #3E8E3E !important; }      /* Schalter „Ladereihenfolge“ als Knopf erkennbar */
my_button_niedrig { border: 2px solid var(--logi-gelb-rand) !important; }
a:hover > my_button, a:hover > my_button1, a:hover > my_button_pal, a:hover > my_button_vms, a:hover > my_button_niedrig, a:hover > my_button_niedrig_hellgruen,
a:hover > my_button_blau, a:hover > my_button_schmal, a:hover > my_button_schmal_gelb, a:hover > my_button_todo_sand { filter: brightness(1.05); }
a:active > my_button, a:active > my_button1, a:active > my_button_pal, a:active > my_button_vms, a:active > my_button_niedrig, a:active > my_button_niedrig_hellgruen,
a:active > my_button_blau, a:active > my_button_todo_sand { transform: translateY(2px); }
a:has(> my_button), a:has(> my_button1), a:has(> my_button_pal), a:has(> my_button_vms), a:has(> my_button_niedrig), a:has(> my_button_niedrig_hellgruen),
a:has(> my_button_blau), a:has(> my_button_schmal), a:has(> my_button_schmal_gelb), a:has(> my_button_todo_sand) { text-decoration: none; display: inline-block; }
my_button2:hover { box-shadow: none; }

/* ---------------------------------------------------------------------------------------------------------------
   Tabellen: globale Zellregel aus logi.scss (th, td { border:1px solid black; padding:8px; height:10px }) entschärfen –
   sie traf alle Tabellen inkl. Listen und Kalender (U-18). Eigene Tabellen (Entnahme: id="tabellen", LKW: class="tabellen")
   behalten ihre Rahmen, nur hell und lesbar.
   --------------------------------------------------------------------------------------------------------------- */
th, td { border-color: var(--logi-linie2); height: auto; }
.fc th, .fc td { border-color: var(--logi-linie); }
table#tabellen, table.tabellen { border-collapse: collapse; margin: 1.4rem 0 .6rem; background: var(--logi-flaeche); font-size: 17px; }
table#tabellen td, table#tabellen th, table.tabellen td, table.tabellen th { border: 1px solid var(--logi-linie); padding: .4rem .6rem; vertical-align: middle; }
table#tabellen tr.first_row td, table.tabellen tr.first_row td, .first_row { background: var(--logi-papier); color: var(--logi-grau); font-weight: 600; font-size: 15px; }
table#tabellen .btn, table.tabellen .btn { min-height: var(--logi-touch); min-width: 130px; font-size: 16px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; }
my_table { border-collapse: collapse; margin: 18px auto; }
my_th, my_td { border-color: var(--logi-linie); }

/* PHPMaker-Listen (U-07, U-08): ohne Gitter, Kopf hell, Liste scrollt in der Karte statt die Seite zu verbreitern */
.card.ew-grid { border: 1px solid var(--logi-linie); border-radius: 8px; box-shadow: none; overflow: hidden; }
.content-wrapper .card.ew-grid { display: block; width: fit-content; max-width: 100%; min-width: min(100%, 420px); }
.content-wrapper .card.ew-grid .ew-grid-middle-panel { overflow-x: auto; max-width: 100%; }
.card.ew-grid .card-header, .card.ew-grid .card-footer { background: var(--logi-flaeche); border-color: var(--logi-linie); }
.table.ew-table { --bs-table-bg: transparent; font-size: 15px; margin-bottom: 0; }
.table.ew-table.table-bordered > :not(caption) > * > * { border-width: 0 0 1px 0; border-color: var(--logi-linie2); }
.table.ew-table thead th, .ew-grid .ew-table > thead > tr > th { background: var(--logi-papier) !important; color: var(--logi-grau) !important; font-weight: 600;
  font-size: 14px; white-space: nowrap; border-bottom: 1px solid var(--logi-linie) !important; }
.table.ew-table thead th a, .table.ew-table thead th .ew-table-header-caption { color: var(--logi-grau) !important; }
.table.ew-table tbody td { padding: .45rem .6rem; vertical-align: middle; }
.table.ew-table.table-hover > tbody > tr:hover > * { --bs-table-accent-bg: var(--logi-hover); --bs-table-hover-bg: var(--logi-hover); }
body:not(.dark-mode) .ew-grid { border-color: var(--logi-linie) !important; }
body:not(.dark-mode) .ew-grid .ew-table > thead > tr > th, body:not(.dark-mode) .ew-grid .ew-table > thead > tr > td { border-color: var(--logi-linie) !important; }
.ew-grid .badge, .ew-table .badge { font-size: 14px; font-weight: 600; }
.ew-grid .btn-sm, .ew-table .btn-sm, .ew-grid .btn-group-sm > .btn, .ew-table .btn-group-sm > .btn { font-size: 14px; }
/* Zellfarben aus den Modellen (Inline-Stil): Ton bleibt, Schrift lesbar. Grau auf Hellgrün 3,7:1 → 7:1, Weiß auf Rot (Titel) 2,8:1 → dunkel.
   Absichtlich unsichtbare Nullen (Schrift = Hintergrund #E1FFDB) bleiben unsichtbar. */
td[style*="color: #808080"] { color: #3F4752 !important; }
td[style*="background-color: #ff6b6b"][style*="color: white"] { color: var(--logi-tinte) !important; font-weight: 600; }
/* Zeilen-Symbole (Ansehen/Bearbeiten) als 44-px-Ziele */
.ew-table .ew-list-option-body .btn, .ew-table .ew-row-link { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
/* Kalender (Startseite): Termine lesbar */
.fc { font-size: 15px; }
.fc .fc-event, .fc .fc-event-main, .fc .fc-list-event { font-size: 14px; }
.fc .fc-button { min-height: 44px; }
.fc .fc-daygrid-more-link { font-size: 14px; }
/* Kalender-Termine: gleiche Statusfarben wie die Legende, Schrift lesbar (vorher Weiß auf Gold 1,5:1, auf Hellgrün 1,9:1, auf Grün 3,3:1) */
.fc-event[style*="rgb(17, 160, 112)"] { background-color: #0C7A55 !important; border-color: #0C7A55 !important; }
.fc-event[style*="rgb(128, 128, 128)"] { background-color: #6B6B6B !important; border-color: #6B6B6B !important; }
.fc-event[style*="rgb(153, 204, 102)"], .fc-event[style*="rgb(153, 204, 102)"] *, .fc-event[style*="rgb(255, 204, 0)"], .fc-event[style*="rgb(255, 204, 0)"] * { color: var(--logi-tinte) !important; }

/* Legenden-Farben (<leg_*>): gleicher Ton, Schrift lesbar (Kontrast ≥ 4,5:1; vorher bis 1,5:1) */
leg_t, leg_weiss, leg_grau, leg_gelb, leg_gelb14, leg_gelb_20, leg_blau, leg_hellgruen, leg_hellgruen14, leg_hellgruen_20, leg_gruen, leg_dunkelgruen,
leg_rot, leg_rot14, leg_rot_dezent, leg_rot_20, leg_orange, leg_beige, leg_gold, leg_cyan, leg_sladeblue, leg_olive, leg_grey80, leg_komfertig,
leg_beladen, leg_lieferschein, leg_blau_niedrig, disponent { border-radius: 4px; padding: 1px 6px; display: inline-block; line-height: 1.35; }
leg_grau { background-color: #6B6B6B !important; }
leg_gold { color: var(--logi-tinte) !important; }
leg_olive, leg_komfertig { color: var(--logi-tinte) !important; }
leg_beladen { background-color: #0C7A55 !important; }
leg_rot, leg_rot14, leg_rot_20 { background-color: #D40000 !important; }
leg_sladeblue { background-color: #5555BB !important; }
leg_grey80 { color: #0A5C0A !important; }
leg_gelb14, leg_hellgruen14, leg_rot14, leg_blau_niedrig { font-size: 15px !important; }
disponent { background-color: #0062CC !important; }

/* ---------------------------------------------------------------------------------------------------------------
   Cockpit = ToDo-Anwahl (views/ToDoAuswahl.php): alle Kacheln auf einen 1024×768-Bildschirm (U-02, A1).
   Kopf 2 Zeilen, Kacheln 3,4 cm hoch (Breite 4 cm wie bisher, damit „Kom.Übersicht“ nicht umbricht) mit 0,6 cm Abstand
   (4 Zeilen = 581 px). Reihenfolge, Farben, Bilder, Texte unverändert,
   Raster beginnt links wie bisher. Erst ab 1000 px Bildschirmhöhe wieder 4 cm.
   --------------------------------------------------------------------------------------------------------------- */
.content .logi-cockpit { padding: 0 .25rem; }
.logi-cockpit .logi-cockpit-kopf { margin: 0 0 .5rem; font-size: 19px; line-height: 1.35; }
.logi-cockpit .logi-cockpit-kopf > div { white-space: normal; }
.logi-cockpit .logi-cockpit-kopf .logi-ladestand { margin-left: .6rem; }
.content .logi-cockpit .button-container { display: grid; grid-template-columns: repeat(3, 4cm); grid-template-rows: none; grid-auto-rows: 3.4cm;
  gap: .6cm; margin-top: 10px; justify-content: center; } /* 30.10.2026: Kachelraster mittig wie Überschrift (vorher start = links) */
.content .logi-cockpit .button-container > a { width: 4cm; height: 3.4cm; line-height: 1.15; display: flex; align-items: center; justify-content: center;
  text-align: center; font-size: 18px; font-weight: 700; color: #fff; border-radius: 8px; padding: 4px; box-shadow: 0 3px 0 rgba(0, 0, 0, .25);
  text-decoration: none; overflow: hidden; overflow-wrap: anywhere; }
.content .logi-cockpit .button-container > a:active { transform: translateY(2px); box-shadow: 0 1px 0 rgba(0, 0, 0, .25); }
.content .logi-cockpit .button-container > a.button2 { background-color: var(--logi-ocker); }
.content .logi-cockpit .button-container > a.buttonRed { background-color: #D40000; }
.content .logi-cockpit .button-container > a.button2:hover { background-color: #85590F; }
.content .logi-cockpit .button-container > a.buttonRed:hover { background-color: #B00000; }
.content .logi-cockpit .button-container > a img { width: 3cm !important; height: 3cm !important; object-fit: contain; }
@media (min-height: 1000px) {
  .content .logi-cockpit .button-container { grid-template-columns: repeat(3, 4cm); grid-auto-rows: 4cm; gap: 1cm; }
  .content .logi-cockpit .button-container > a { width: 4cm; height: 4cm; }
  .content .logi-cockpit .button-container > a img { width: 3.5cm !important; height: 3.5cm !important; }
}
/* Cockpit am Terminal: Seitentitel kompakt, damit alle Kacheln über dem Rand bleiben */
body:has(.logi-cockpit) .content-header { padding-top: 6px; padding-bottom: 0; }
body:has(.logi-cockpit) .content-header h1 { font-size: 20px; }
body:has(.logi-cockpit) .content-header .breadcrumb { display: none; }

/* Kom.-Anwahl und Etiketten Drucker (eigene Seiten, jetzt im Layout statt zweitem HTML-Dokument, U-12) */
.logi-scanform { max-width: 640px; margin: 8px 0 0; padding: 18px 20px; background: var(--logi-flaeche); border: 1px solid var(--logi-linie); border-radius: 10px; }
.logi-scanform h2 { font-size: 24px; font-weight: 600; margin: 0 0 12px; }
.logi-scanform .logi-aktiv { font-size: 20px; margin: 0 0 4px; }
.logi-scanform .logi-hinweis { color: var(--logi-grau); margin: 0 0 10px; font-size: 17px; }
.logi-scanform form { display: flex; flex-direction: column; gap: 12px; margin-top: 10px; }
.logi-scanform input[type="submit"] { min-height: 56px; font-size: 20px; font-weight: 600; color: #fff; background: #2E7D32; border: 0; border-radius: 6px; cursor: pointer; }
.logi-scanform input[type="submit"]:active { transform: translateY(2px); }
.logi-scanform .logi-drucker-aktuell { font-size: 26px; margin-top: 12px; }

/* ---------------------------------------------------------------------------------------------------------------
   Sperre während des Buchens (A3) und Rückfrage vor Buchungs-Links (A5)
   --------------------------------------------------------------------------------------------------------------- */
.logi-bucht { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, .55); }
.logi-bucht > div { background: var(--logi-tinte); color: #fff; font-size: 28px; font-weight: 600; padding: 1rem 2rem; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, .25); }
.logi-frage { position: fixed; inset: 0; z-index: 2100; display: flex; align-items: center; justify-content: center; background: rgba(27, 36, 48, .55); padding: 16px; }
.logi-frage > div { background: var(--logi-flaeche); border-radius: 12px; max-width: 640px; width: 100%; padding: 24px 24px 20px; box-shadow: 0 12px 32px rgba(0, 0, 0, .3); border-top: 6px solid var(--logi-rot); }
.logi-frage p { font-size: 24px; font-weight: 600; line-height: 1.3; margin: 0 0 8px; color: var(--logi-tinte); }
.logi-frage .logi-frage-klein { font-size: 17px; font-weight: 400; color: var(--logi-grau); margin-bottom: 18px; }
.logi-frage .logi-frage-knoepfe { display: flex; flex-wrap: wrap; gap: 16px; justify-content: flex-end; }
.logi-frage button { min-height: 56px; min-width: 180px; font-size: 20px; font-weight: 600; border-radius: 8px; border: 2px solid var(--logi-linie); background: var(--logi-flaeche); color: var(--logi-tinte); }
.logi-frage button.logi-ja { background: var(--logi-rot); border-color: var(--logi-rot); color: #fff; }
.logi-frage button:active { transform: translateY(2px); }

/* ---------------------------------------------------------------------------------------------------------------
   Anmeldung zweispaltig wie TMS/VMS/VMSM (views/Login.php); Felder 48 px
   --------------------------------------------------------------------------------------------------------------- */
body:has(.logi-login-page) .content-header { display: none; }
body:has(.logi-login-page) .content-wrapper > .content, body:has(.logi-login-page) .content-wrapper > .content > .container-fluid { padding: 0 !important; }
.logi-login-page { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); min-height: calc(100vh - 110px); }
.logi-login-links { background: linear-gradient(160deg, #243044 0%, #1B2430 60%); color: #fff; padding: 48px 52px; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
.logi-login-links::after { content: ""; position: absolute; right: -120px; bottom: -120px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, rgba(200, 16, 46, .35) 0%, rgba(200, 16, 46, 0) 70%); pointer-events: none; }
.logi-login-links .logi-wort { font-size: 34px; font-weight: 600; letter-spacing: -.01em; }
.logi-login-links .logi-wort span { color: #FF9AA9; }
.logi-login-links p { max-width: 40ch; color: #C9D0D9; font-size: 17px; line-height: 1.55; margin: 14px 0 0; }
.logi-login-links .logi-fuss { font-size: 13px; color: #AEB7C2; position: relative; }
.logi-login-rechts { padding: 40px 48px; display: flex; flex-direction: column; justify-content: center; background: var(--logi-flaeche); }
.logi-login-rechts h1 { font-size: 26px; margin: 0 0 4px; font-weight: 600; }
.logi-login-rechts .logi-unter { color: var(--logi-grau); margin: 0 0 18px; font-size: 16px; }
.logi-login-rechts .logi-unter strong { color: var(--logi-rot); }
.logi-login-rechts .ew-login-box { width: 100%; max-width: 440px; margin: 0; }
.logi-login-rechts .ew-login-card { border: 0; box-shadow: none; background: transparent; }
.logi-login-rechts .card-body { padding: 0; }
.logi-login-rechts .login-box-msg { display: none; }
.logi-login-rechts .ew-login-form .row { margin-bottom: 12px; }
.logi-login-rechts .ew-login-form .form-control { height: var(--logi-touch); font-size: 18px; }
.logi-login-rechts .ew-login-form .input-group { flex-wrap: nowrap; }
.logi-login-rechts .ew-login-form .ew-toggle-password { min-width: var(--logi-touch); }
.logi-login-rechts .ew-login-form .form-check-input { width: 24px; height: 24px; margin-top: 0; }
.logi-login-rechts .ew-login-form .form-check { display: flex; align-items: center; gap: .5rem; min-height: 44px; }
.logi-login-rechts .ew-login-form .btn-primary { height: 52px; font-size: 20px; font-weight: 600; }
.logi-login-rechts .login-page-links { text-align: left !important; font-size: 15px; }
.logi-login-rechts .logi-login-hinweis { font-size: 15px; color: var(--logi-grau); margin: -6px 0 12px; }
/* Anmeldefehler stand doppelt (unter Benutzer und Passwort) – nur unter dem Passwort zeigen */
.logi-login-rechts #username ~ .invalid-feedback { display: none !important; }
@media (max-width: 900px) { .logi-login-page { grid-template-columns: 1fr; min-height: 0; } .logi-login-links { display: none; } .logi-login-rechts { padding: 24px 16px; } }

/* Fußzeile unaufdringlich, ohne Personennamen (layout.php) */
.main-footer { background: transparent; border-top: 1px solid var(--logi-linie); color: var(--logi-grau); font-size: 14px; padding: .5rem 1rem; }

/* ---------------------------------------------------------------------------------------------------------------
   Terminal/Tablet 600–1199 px: Schrift größer, Leiste kompakter, damit alle Hauptpunkte + Abmelden in 1024 px passen
   --------------------------------------------------------------------------------------------------------------- */
@media (min-width: 600px) and (max-width: 1199.98px) {
  body { font-size: 17px; }
  .main-header .navbar-nav .nav-link { padding-left: .45rem; padding-right: .45rem; font-size: 15px; }
  .main-header .navbar-brand.logi-brand .ew-brand-image { max-height: 32px; }
  .ew-form .col-form-label, .ew-form .ew-label { font-size: 18px; }
  .ew-form .form-control { font-size: 19px; }
  .table.ew-table { font-size: 15px; }
}
/* PC ≥ 1200 px: Listen mit Kopf, der beim Scrollen stehen bleibt */
@media (min-width: 1200px) {
  body { font-size: 15px; }
  .ew-grid .ew-grid-middle-panel.table-responsive { max-height: calc(100vh - 230px); }
  .ew-grid .ew-table > thead > tr > th { position: sticky; top: 0; z-index: 2; }
}

/* =================================================================================================================
   29.10.2026 – Oberfläche Paket U4 (Analyse logi-analyse-2026-10-29/A3_mobil_symbole.md): Handy, Symbole, Menü, Listen.
   Keine Umgewöhnung (Vorgabe Maximilian): gleiche Knöpfe, gleiche Reihenfolge, gleiche Farben und Begriffe –
   nur passend fürs Handy, größer, beschriftet. Terminal 1024 und PC bleiben wie bisher (nur Feinschliff).
   ================================================================================================================= */

/* A3-06 / A3-07 Aufklappmenüs der Leiste (Tools, Reports, „Mehr“ …): Einträge 44 px, damit „Tools“ bei 768 px Höhe ganz
   sichtbar ist (15 × 44 px); Symbole 16 px in fester Breite; Einträge ohne Symbol mit Leerplatz, damit alle Texte fluchten.
   Rollt eine Liste weiter, zeigt ein leichter Schatten oben/unten, dass da noch etwas kommt. */
.main-header .dropdown-item { min-height: 44px; padding-top: .4rem; padding-bottom: .4rem; }
#ew-navbar .dropdown-item > i:first-child { flex: 0 0 1.25em; width: 1.25em; text-align: center; font-size: 16px; color: var(--logi-grau); }
#ew-navbar .dropdown-item:hover > i:first-child, #ew-navbar .dropdown-item.active > i:first-child { color: inherit; }
#ew-navbar .dropdown-menu .dropdown-item:not(:has(> i))::before { content: ""; flex: 0 0 1.25em; }
#ew-navbar .dropdown-menu {
  background:
    linear-gradient(var(--logi-flaeche) 30%, rgba(255, 255, 255, 0)) top / 100% 24px no-repeat local,
    linear-gradient(rgba(255, 255, 255, 0), var(--logi-flaeche) 70%) bottom / 100% 24px no-repeat local,
    radial-gradient(farthest-side at 50% 0, rgba(27, 36, 48, .2), rgba(27, 36, 48, 0)) top / 100% 12px no-repeat scroll,
    radial-gradient(farthest-side at 50% 100%, rgba(27, 36, 48, .2), rgba(27, 36, 48, 0)) bottom / 100% 12px no-repeat scroll,
    var(--logi-flaeche); }

/* A3-05 Sprachschalter: „OHL“ statt „AT“ (Vorlage in src/Language.php), Tippfläche ≥ 44 px breit (vorher 29–32 px).
   Damit „Tools“ am Terminal (1024 px) weiter in der Leiste bleibt, holen die Einträge die Breite über etwas weniger Innenabstand zurück. */
#ew-navbar-end .logi-sprache { min-width: 44px; justify-content: center; padding-left: 0 !important; padding-right: 0 !important; }
@media (min-width: 576px) and (max-width: 1199.98px) {
  .main-header .navbar-nav .nav-link { padding-left: .3rem; padding-right: .3rem; gap: .2rem; }
  #ew-nav-link-user { min-width: 44px; }
}

/* A3-02 Eigene Tabellen unter dem Scanfeld (Entnahme/Vollpalette: id="tabellen", LKW beladen: class="tabellen"):
   eigener Scrollbereich statt breiter Seite – Kopfleiste und Scanfeld bleiben stehen, nur die Tabelle lässt sich wischen. */
table#tabellen, table.tabellen { display: block; width: max-content; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.content-wrapper div:has(> table.tabellen) { min-width: 0; max-width: 100%; }

/* A3-09 Listen: Werkzeugleiste (Suchen, Zurücksetzen, Erweitert, Filter, Spalten …), Blättern und Spaltenfilter 44 px.
   Ab Terminal-Breite steht der Name neben dem Symbol (bisher nur im Tooltip, den man am Touch-Gerät nicht sieht).
   Symbole und Reihenfolge bleiben. Name erst ab 768 px (Zebra-Tablet hoch 601 px: Leiste lief sonst über, 29.10.2026). */
.ew-search-option .btn, .ew-list-other-options .btn, .ew-filter-option .btn, .ew-list-options .btn, .ew-pager .btn {
  min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; }
.ew-pager .form-control, .ew-pager .form-select, .ew-pager .input-group-text { min-height: 44px; font-size: 15px; }
.ew-pager .ew-page-number { width: 4.2em; text-align: center; }
.ew-table .ew-filter-dropdown-btn { display: flex; align-items: center; }
.ew-table .ew-table-header-filter { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.ew-table .ew-table-header-filter i { font-size: 15px; }
@media (min-width: 768px) {
  .ew-search-option .btn > i.ew-icon:has(> .visually-hidden), .ew-list-other-options .btn > i.ew-icon:has(> .visually-hidden),
  .ew-filter-option .btn > i.ew-icon:has(> .visually-hidden) { width: auto; display: inline-flex; align-items: center; }
  .ew-search-option .btn > i.ew-icon > .visually-hidden, .ew-list-other-options .btn > i.ew-icon > .visually-hidden,
  .ew-filter-option .btn > i.ew-icon > .visually-hidden {
    position: static !important; width: auto !important; height: auto !important; margin: 0 0 0 .45em !important; padding: 0 !important;
    overflow: visible !important; clip: auto !important; white-space: nowrap !important; display: inline;
    font-family: var(--logi-schrift); font-weight: 500; font-size: 15px; font-style: normal; letter-spacing: 0; }
}

/* A3-14 Palettenliste u. a.: Spalte „Code“ (BURDA|00|0001|01|…, ≈ 300 px) bricht am Terminal/Handy um, damit die
   Zeilenknöpfe („Ansehen“) ohne Seitwärtsscrollen erreichbar sind. PC unverändert. */
@media (max-width: 1199.98px) {
  .table.ew-table td[data-name="code"] { width: 11em; min-width: 11em; overflow-wrap: anywhere; word-break: break-all; }
}
/* A3-14 Anmeldung: Link „Passwort zurücksetzen“ als 44-px-Ziel (vorher 19 px) */
.logi-login-rechts .login-page-links a { display: inline-flex; align-items: center; min-height: 44px; }

/* A3-13 Kalender (Startseite): Kopfleiste darf umbrechen (Handy lief rechts über), Knöpfe 44 px.
   Termine statt nur „+N mehr“ am Handy/Tablet hoch: js/logi-ui.js (Kalender wächst mit, 3 Termine je Tag). */
.fc .fc-header-toolbar { flex-wrap: wrap; gap: 8px; }
.fc .fc-button, .fc .btn { min-height: 44px; min-width: 44px; }
@media (max-width: 899.98px) {
  .fc .fc-toolbar-title { font-size: 20px; }
}

/* A3-01 Cockpit (ToDo-Anwahl) am Handy: dieselben 3 Spalten, Reihenfolge, Farben, Bilder und Texte – nur so breit wie der
   Bildschirm (vorher fest 4 cm je Kachel = 526 px, die dritte Spalte lag außerhalb). Kacheln quadratisch. */
@media (max-width: 575.98px) {
  .content .logi-cockpit { padding: 0; }
  .logi-cockpit .logi-cockpit-kopf { font-size: 16px; }
  .content .logi-cockpit .button-container { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: auto; gap: 10px; }
  .content .logi-cockpit .button-container > a { width: auto; height: auto; aspect-ratio: 1 / 1; font-size: clamp(13px, 3.6vw, 15px); padding: 2px; overflow-wrap: normal; }
  .content .logi-cockpit .button-container > a img { width: 82% !important; height: 82% !important; }
}

/* A3-04 Kopfleiste am Handy: Symbol mit kurzem Text darunter (vorher nur Symbole ohne Text – Druckersymbol las sich als
   „Drucken“). DE/OHL ausgeblendet (bleibt am Terminal/PC), Logo etwas kleiner – dann passen Etiketten Drucker,
   Kom.-Anwahl und ToDo-Anwahl neben „Mehr“. Was nicht passt, legt js/logi-ui.js wie bisher nach „Mehr“. */
@media (max-width: 767.98px) { /* 29.10.2026 Zebra-Tablet hoch (601 px): Symbol mit Text darunter wie am Handy, damit Kom.-Anwahl und ToDo-Anwahl in der Leiste bleiben */
  .main-header #ew-navbar > .ew-navbar-item > .nav-link { flex-direction: column; justify-content: center; gap: 2px; padding: 3px 3px 1px;
    min-width: 54px; max-width: 74px; }
  .main-header #ew-navbar > .ew-navbar-item > .nav-link > i { font-size: 18px; }
  .main-header #ew-navbar > .ew-navbar-item > .nav-link > span { display: block; font-size: 12px; line-height: 1.1; font-weight: 600;
    white-space: normal; text-align: center; }
  .main-header #ew-navbar > .ew-navbar-item > .nav-link.dropdown-toggle::after { display: none; }
}
@media (max-width: 575.98px) {
  #ew-navbar-end li:has(> a[data-ew-action="language"]) { display: none !important; }
  .main-header .navbar-brand.logi-brand { padding-right: .15rem; }
  .main-header .navbar-brand.logi-brand .ew-brand-image { max-height: 30px; }
  #ew-navbar-end #ew-nav-link-user { min-width: 44px; padding-left: .3rem; padding-right: .3rem; }
}

/* 29.10.2026 Zebra-Tablet quer (962 × 601, ET4x 8"): Cockpit passt auf einen Bildschirm. Bei niedrigem Bild (≤ 700 px hoch)
   Kacheln 2,6 statt 3,4 cm hoch und 0,35 cm Abstand – Breite (4 cm), Reihenfolge, Farben, Texte und Bilder bleiben.
   Terminal 1024 × 768 und PC sind nicht betroffen (höher als 700 px). */
@media (min-width: 576px) and (max-height: 700px) {
  .content .logi-cockpit .button-container { grid-auto-rows: 2.6cm; gap: .35cm; margin-top: 6px; }
  .content .logi-cockpit .button-container > a { height: 2.6cm; }
  .content .logi-cockpit .button-container > a img { width: 2.3cm !important; height: 2.3cm !important; }
  .logi-cockpit .logi-cockpit-kopf { margin-bottom: .3rem; font-size: 17px; }
  body:has(.logi-cockpit) .content-header h1 { font-size: 18px; }
}
/* 02.11.2026: Rest-/Aufgebraucht-Zeile in der Entnahme-Meldung war hellgrün (#7FFFD4) auf grün und am Tablet nicht lesbar.
   Jetzt dunkel auf dem grünen Kasten; „aufgebraucht“ in Orange, weil der Fahrer dann eine neue Palette braucht. */
.alert-success h4.logi-rest { color: #0f5132; font-size: 17px; font-weight: 600; margin: 6px 0 0; }
.alert-success h4.logi-rest-leer { color: #9a3412; font-weight: 700; }

/* =================================================================================================================
   02.11.2026 Dunkelmodus (Wunsch Max): greift, sobald <html data-bs-theme="dark"> gesetzt ist.
   LoGi-Portal (PHPMaker 2025): Schalter im Zahnrad-Menü (Hell/Dunkel/Auto) setzt das Attribut selbst.
   LoGi (PHPMaker 2023, Bootstrap 5.2 ohne eigenen Dunkelmodus): Mond/Sonne-Knopf in der Kopfleiste (js/logi-ui.js),
   Wahl je Gerät im Browser gespeichert. Gleiche Abläufe und Farben der Status-Kacheln/Legende, nur Flächen und Schrift dunkel.
   ================================================================================================================= */
html[data-bs-theme="dark"] {
  color-scheme: dark;
  --logi-papier: #13171D; --logi-flaeche: #1D232B; --logi-tinte: #E5E8EC; --logi-grau: #A4ADB8;
  --logi-linie: #3A434F; --logi-linie2: #2B323C; --logi-hover: #252C35;
  --logi-rot: #FF6B7D; --logi-rot-dunkel: #E8485C; --logi-rot-hell: #3B1E25;
  --logi-blau: #82A6FF; --logi-blau-hell: #1B2846;
  --logi-ok: #86D9A0; --logi-ok-hell: #15301F;
  --logi-fehler: #FFA3AE; --logi-fehler-rand: #FF6B7D; --logi-fehler-hell: #3B1E25;
  --logi-warn: #F3CF73; --logi-warn-hell: #362C12;
  --bs-body-bg: var(--logi-papier); --bs-body-color: var(--logi-tinte); --bs-emphasis-color: #fff;
  --bs-secondary-color: var(--logi-grau); --bs-tertiary-bg: var(--logi-hover); --bs-border-color: var(--logi-linie);
  --bs-link-color: #8FB0FF; --bs-link-hover-color: #B3C9FF; --bs-link-color-rgb: 143, 176, 255; --bs-link-hover-color-rgb: 179, 201, 255;
  --bs-heading-color: var(--logi-tinte);
}
html[data-bs-theme="dark"] body, html[data-bs-theme="dark"] .wrapper, html[data-bs-theme="dark"] .content-wrapper { background: var(--logi-papier) !important; color: var(--logi-tinte); }
html[data-bs-theme="dark"] a:not(.btn):not(.nav-link):not(.dropdown-item):not(.page-link):not([class*="fc-"]) { color: var(--bs-link-color); }
html[data-bs-theme="dark"] .text-dark, html[data-bs-theme="dark"] .text-body, html[data-bs-theme="dark"] .text-black { color: var(--logi-tinte) !important; }
html[data-bs-theme="dark"] .text-muted, html[data-bs-theme="dark"] .text-body-secondary, html[data-bs-theme="dark"] .text-secondary { color: var(--logi-grau) !important; }
html[data-bs-theme="dark"] .bg-white, html[data-bs-theme="dark"] .bg-light, html[data-bs-theme="dark"] .bg-body { background-color: var(--logi-flaeche) !important; }
html[data-bs-theme="dark"] hr { border-color: var(--logi-linie); opacity: 1; }
/* Kopfleiste: Fläche/Schrift kommen über die Variablen; Logo (gelb) bleibt; Schatten der Menüs dunkler */
html[data-bs-theme="dark"] .main-header .dropdown-menu, html[data-bs-theme="dark"] .dropdown-menu {
  --bs-dropdown-bg: var(--logi-flaeche); --bs-dropdown-color: var(--logi-tinte); --bs-dropdown-link-color: var(--logi-tinte);
  --bs-dropdown-link-hover-bg: var(--logi-hover); --bs-dropdown-link-hover-color: var(--logi-tinte); --bs-dropdown-border-color: var(--logi-linie);
  --bs-dropdown-divider-bg: var(--logi-linie); --bs-dropdown-header-color: var(--logi-grau);
  background-color: var(--logi-flaeche); color: var(--logi-tinte); border-color: var(--logi-linie); box-shadow: 0 8px 24px rgba(0, 0, 0, .5); }
html[data-bs-theme="dark"] .dropdown-item { color: var(--logi-tinte); }
html[data-bs-theme="dark"] #ew-navbar .dropdown-menu { background: var(--logi-flaeche); }
html[data-bs-theme="dark"] .navbar-toggler, html[data-bs-theme="dark"] .btn-close { filter: invert(1) grayscale(1) brightness(1.6); }
/* Karten, Listen, Tabellen */
html[data-bs-theme="dark"] .card { --bs-card-bg: var(--logi-flaeche); --bs-card-cap-bg: var(--logi-hover); --bs-card-border-color: var(--logi-linie);
  --bs-card-color: var(--logi-tinte); background-color: var(--logi-flaeche); color: var(--logi-tinte); border-color: var(--logi-linie); }
html[data-bs-theme="dark"] .card-header, html[data-bs-theme="dark"] .card-footer { background-color: var(--logi-hover); border-color: var(--logi-linie); color: var(--logi-tinte); }
html[data-bs-theme="dark"] .table { --bs-table-color: var(--logi-tinte); --bs-table-bg: transparent; --bs-table-border-color: var(--logi-linie2);
  --bs-table-striped-bg: rgba(255, 255, 255, .03); --bs-table-striped-color: var(--logi-tinte); --bs-table-hover-bg: var(--logi-hover);
  --bs-table-hover-color: var(--logi-tinte); --bs-table-active-bg: var(--logi-hover); --bs-table-active-color: var(--logi-tinte); color: var(--logi-tinte); border-color: var(--logi-linie2); }
html[data-bs-theme="dark"] .ew-grid, html[data-bs-theme="dark"] .ew-grid .ew-table > thead > tr > th, html[data-bs-theme="dark"] .ew-grid .ew-table > thead > tr > td { border-color: var(--logi-linie) !important; }
html[data-bs-theme="dark"] .ew-table tbody tr.ew-table-alt-row > *, html[data-bs-theme="dark"] .ew-table tbody tr:nth-child(even):not([style]) > *:not([style*="background"]) { background-color: rgba(255, 255, 255, .025); }
html[data-bs-theme="dark"] .ew-table tbody td:not([style*="background"]), html[data-bs-theme="dark"] .ew-table tbody th:not([style*="background"]) { color: var(--logi-tinte); }
html[data-bs-theme="dark"] .ew-rpt-grp-field-1, html[data-bs-theme="dark"] .ew-rpt-grp-field-2, html[data-bs-theme="dark"] .ew-rpt-grp-field-3,
html[data-bs-theme="dark"] .ew-rpt-grp-field-4, html[data-bs-theme="dark"] .ew-rpt-grp-field-5, html[data-bs-theme="dark"] [class*="ew-rpt-grp-summary"],
html[data-bs-theme="dark"] .ew-rpt-grp-aggregate { background-color: var(--logi-hover) !important; color: var(--logi-tinte) !important; }
/* Formulare, Auswahl, Suche */
html[data-bs-theme="dark"] .form-control, html[data-bs-theme="dark"] .form-select, html[data-bs-theme="dark"] .input-group-text,
html[data-bs-theme="dark"] .ew-form .form-control, html[data-bs-theme="dark"] .ew-form .form-select {
  background-color: #11151A; color: var(--logi-tinte); border-color: #4A5462; }
html[data-bs-theme="dark"] .form-control::placeholder { color: #7D8794; }
html[data-bs-theme="dark"] .form-control:disabled, html[data-bs-theme="dark"] .form-control[readonly], html[data-bs-theme="dark"] .form-select:disabled { background-color: var(--logi-hover); color: var(--logi-grau); }
html[data-bs-theme="dark"] .form-select { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23c6ccd4' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }
html[data-bs-theme="dark"] .form-check-input { background-color: #11151A; border-color: #6B7684; }
html[data-bs-theme="dark"] .form-check-input:checked { background-color: var(--logi-blau); border-color: var(--logi-blau); }
html[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-selection, html[data-bs-theme="dark"] .select2-dropdown,
html[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-dropdown { background-color: #11151A !important; color: var(--logi-tinte) !important; border-color: #4A5462 !important; }
html[data-bs-theme="dark"] .select2-container .select2-selection__rendered, html[data-bs-theme="dark"] .select2-results__option { color: var(--logi-tinte) !important; }
html[data-bs-theme="dark"] .select2-results__option--highlighted { background-color: var(--logi-hover) !important; }
html[data-bs-theme="dark"] .ew-search-panel, html[data-bs-theme="dark"] .ew-extended-search, html[data-bs-theme="dark"] .ew-multi-column-form { color: var(--logi-tinte); }
/* Knöpfe ohne eigene Farbe, Blättern, Reiter, Brotkrumen */
html[data-bs-theme="dark"] .btn-default, html[data-bs-theme="dark"] .btn-light, html[data-bs-theme="dark"] .btn-outline-secondary,
html[data-bs-theme="dark"] .btn-outline-dark, html[data-bs-theme="dark"] .ew-search-option .btn, html[data-bs-theme="dark"] .ew-list-other-options .btn,
html[data-bs-theme="dark"] .ew-filter-option .btn, html[data-bs-theme="dark"] .ew-pager .btn {
  background-color: var(--logi-hover); border-color: var(--logi-linie); color: var(--logi-tinte); }
html[data-bs-theme="dark"] .btn-default:hover, html[data-bs-theme="dark"] .btn-light:hover, html[data-bs-theme="dark"] .ew-search-option .btn:hover,
html[data-bs-theme="dark"] .ew-list-other-options .btn:hover, html[data-bs-theme="dark"] .ew-filter-option .btn:hover { background-color: #303845; color: #fff; }
html[data-bs-theme="dark"] .page-link { background-color: var(--logi-flaeche); border-color: var(--logi-linie); color: var(--bs-link-color); }
html[data-bs-theme="dark"] .page-item.active .page-link { background-color: var(--logi-blau); border-color: var(--logi-blau); color: #0B1220; }
html[data-bs-theme="dark"] .page-item.disabled .page-link { background-color: var(--logi-flaeche); color: #6B7684; }
html[data-bs-theme="dark"] .nav-tabs { border-color: var(--logi-linie); }
html[data-bs-theme="dark"] .nav-tabs .nav-link.active, html[data-bs-theme="dark"] .ew-multi-page .nav-tabs .nav-link.active { background-color: var(--logi-flaeche); border-color: var(--logi-linie) var(--logi-linie) var(--logi-flaeche); color: var(--logi-tinte); }
html[data-bs-theme="dark"] .modal-content { background-color: var(--logi-flaeche); color: var(--logi-tinte); border-color: var(--logi-linie); }
html[data-bs-theme="dark"] .modal-header, html[data-bs-theme="dark"] .modal-footer { border-color: var(--logi-linie); }
html[data-bs-theme="dark"] .list-group-item { background-color: var(--logi-flaeche); color: var(--logi-tinte); border-color: var(--logi-linie); }
html[data-bs-theme="dark"] .popover { --bs-popover-bg: var(--logi-flaeche); --bs-popover-body-color: var(--logi-tinte); --bs-popover-header-bg: var(--logi-hover); --bs-popover-border-color: var(--logi-linie); }
/* Meldungen: Info-Schrift war fest dunkelblau; Rest-Zeile der Entnahme (02.11.) hell auf dunkelgrün */
html[data-bs-theme="dark"] .alert-info { color: #B9CCFF !important; }
html[data-bs-theme="dark"] .alert-warning { border-left-color: #C9A227 !important; }
html[data-bs-theme="dark"] .alert-success h4.logi-rest { color: #B8F0C8; }
html[data-bs-theme="dark"] .alert-success h4.logi-rest-leer { color: #FDBA74; }
html[data-bs-theme="dark"] .logi-kopfinfo > span.logi-kopf-ladung { border-color: #3D5BA8; }
html[data-bs-theme="dark"] .logi-bucht { background: rgba(0, 0, 0, .55); }
html[data-bs-theme="dark"] .logi-bucht > div { background: #E5E8EC; color: #13171D; }
html[data-bs-theme="dark"] .logi-test { background: #4A3D00; color: #FFE27A; border-color: #8A6D00; }
/* Kalender: Raster, Kopf, heute; Termin-Farben (Status) bleiben */
html[data-bs-theme="dark"] .fc { --fc-page-bg-color: var(--logi-flaeche); --fc-neutral-bg-color: var(--logi-hover); --fc-border-color: var(--logi-linie);
  --fc-today-bg-color: rgba(255, 213, 0, .12); --fc-list-event-hover-bg-color: var(--logi-hover); color: var(--logi-tinte); }
html[data-bs-theme="dark"] .fc .fc-scrollgrid, html[data-bs-theme="dark"] .fc th, html[data-bs-theme="dark"] .fc td { border-color: var(--logi-linie); }
html[data-bs-theme="dark"] .fc .fc-col-header-cell, html[data-bs-theme="dark"] .fc .fc-list-day-cushion { background-color: var(--logi-hover); }
html[data-bs-theme="dark"] .fc .fc-daygrid-day-number, html[data-bs-theme="dark"] .fc .fc-col-header-cell-cushion, html[data-bs-theme="dark"] .fc .fc-daygrid-more-link,
html[data-bs-theme="dark"] .fc .fc-toolbar-title { color: var(--logi-tinte); }
html[data-bs-theme="dark"] .fc .fc-day-other .fc-daygrid-day-number { color: #6B7684; }
/* Helle Statusfarben (Gold, Hellgrün) behalten dunkle Schrift, sonst hell auf hell */
html[data-bs-theme="dark"] .fc-event[style*="rgb(153, 204, 102)"], html[data-bs-theme="dark"] .fc-event[style*="rgb(153, 204, 102)"] *,
html[data-bs-theme="dark"] .fc-event[style*="rgb(255, 204, 0)"], html[data-bs-theme="dark"] .fc-event[style*="rgb(255, 204, 0)"] *,
html[data-bs-theme="dark"] leg_gold, html[data-bs-theme="dark"] leg_olive, html[data-bs-theme="dark"] leg_komfertig { color: #1B2430 !important; }
/* Eigene Tabellen (Entnahme/LKW) und Scan-Seiten */
html[data-bs-theme="dark"] table#tabellen td:not([style*="background"]), html[data-bs-theme="dark"] table.tabellen td:not([style*="background"]) { color: var(--logi-tinte); }
html[data-bs-theme="dark"] th, html[data-bs-theme="dark"] td { border-color: var(--logi-linie2); }
/* Anmeldeseite LoGi: rechte Hälfte dunkel, linke bleibt dunkelblau */
html[data-bs-theme="dark"] .logi-login-rechts h1 { color: var(--logi-tinte); }
/* Schalter Hell/Dunkel in der LoGi-Kopfleiste (js/logi-ui.js) */
#logi-theme-knopf { min-width: 44px; justify-content: center; }
#logi-theme-knopf .fa-sun { display: none; }
html[data-bs-theme="dark"] #logi-theme-knopf .fa-sun { display: inline-block; }
html[data-bs-theme="dark"] #logi-theme-knopf .fa-moon { display: none; }
/* Knopf nur am PC (≥ 1200 px): am Terminal/Tablet (1024 px) schob er „Tools“ ins Menü „Mehr“ – dort bleibt LoGi hell wie bisher */
@media (max-width: 1199.98px) { #ew-navbar-end li:has(> #logi-theme-knopf) { display: none !important; } }
