/* ==========================================================================
   Stenger Dispo – Erscheinungsbild der Spedition Stenger
   Hausfarbe Blau (#435fbc, aus dem Logo), Grau aus dem Logo, Schrift Maven Pro
   ========================================================================== */
@font-face { font-family: 'Maven Pro'; font-weight: 400; font-display: swap; src: url('/fonts/maven-pro-regular.woff2') format('woff2'); }
@font-face { font-family: 'Maven Pro'; font-weight: 500; font-display: swap; src: url('/fonts/maven-pro-500.woff2') format('woff2'); }
@font-face { font-family: 'Maven Pro'; font-weight: 600; font-display: swap; src: url('/fonts/maven-pro-600.woff2') format('woff2'); }
@font-face { font-family: 'Maven Pro'; font-weight: 700; font-display: swap; src: url('/fonts/maven-pro-700.woff2') format('woff2'); }

:root {
  --accent: #435fbc; --accent-dunkel: #2f4796; --accent-soft: #435fbc14; --accent-hell: #eef1fb; --accent-nav: #435fbc;
  --navy: #1c2541; --grau-logo: #7d8590;
  --bg: #f3f5f9; --panel: #fff; --text: #1c2541; --muted: #6b7489; --line: #e4e8f0; --line-stark: #d3d9e4;
  --rot: #c8323a; --rot-soft: #fdeeef; --gelb: #a8640a; --gelb-soft: #fff5e0; --gruen: #23845a; --gruen-soft: #e6f5ee;
  --s-offen: #7d8590; --s-disponiert: #435fbc; --s-unterwegs: #d9890b; --s-geliefert: #23845a; --s-abgerechnet: #7a55c7; --s-storniert: #b4bac6;
  --radius: 12px; --schatten: 0 1px 2px rgba(28, 37, 65, .05), 0 1px 3px rgba(28, 37, 65, .06);
  --schatten-hoch: 0 12px 32px rgba(28, 37, 65, .16);
  --schrift: 'Maven Pro', 'Segoe UI', system-ui, -apple-system, sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body { font: 14px/1.5 var(--schrift); color: var(--text); background: var(--bg); display: flex; -webkit-font-smoothing: antialiased; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
::selection { background: #435fbc33; }

/* ---------------------------------------------------------------- Navigation */
.nav { width: 232px; flex: none; background: #fff; border-right: 1px solid var(--line); display: flex; flex-direction: column; padding: 18px 14px; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.nav .logo { padding: 2px 8px 18px; margin-bottom: 8px; border-bottom: 1px solid var(--line); }
.nav .logo img { display: block; max-width: 180px; max-height: 56px; }
.nav .logo b { display: block; margin-top: 8px; font-size: 12px; font-weight: 600; letter-spacing: 2.2px; text-transform: uppercase; color: var(--grau-logo); }
.nav .logo .logo-firma { display: block; font-size: 18px; font-weight: 700; color: var(--accent); }
.nav .gruppe { font-size: 10.5px; font-weight: 600; letter-spacing: 1.4px; text-transform: uppercase; color: #a0a8b8; padding: 14px 10px 6px; }
.nav a { display: flex; align-items: center; gap: 11px; color: #3a4460; padding: 8px 10px; border-radius: 9px; font-weight: 500; margin: 1px 0; position: relative; }
.nav a svg { width: 19px; height: 19px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; opacity: .8; }
.nav a:hover { background: #f3f5f9; text-decoration: none; color: var(--navy); }
.nav a.aktiv { background: var(--accent-hell); color: var(--accent); font-weight: 600; }
.nav a.aktiv svg { opacity: 1; }
.nav a .zaehler { margin-left: auto; background: var(--rot); color: #fff; font-size: 11px; font-weight: 700; min-width: 20px; height: 20px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; padding: 0 6px; }
.nav a .zaehler:empty { display: none; }
.nav-fuss { margin-top: auto; padding: 14px 10px 0; font-size: 11.5px; color: #a0a8b8; border-top: 1px solid var(--line); line-height: 1.6; }

.nav-ich { display: flex; gap: 9px; align-items: center; }
.nav-ich b { display: block; color: var(--navy); font-size: 12.5px; } .nav-ich span { font-size: 11.5px; }
.nav-ich .avatar { width: 30px; height: 30px; font-size: 11.5px; }
#anmelde-maske { position: fixed; inset: 0; z-index: 300; background: linear-gradient(135deg, #eef1fb, #f3f5f9 60%); display: flex; align-items: center; justify-content: center; }
.anmelde-karte { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 30px 32px; width: min(380px, 92vw); box-shadow: var(--schatten-hoch); border-top: 5px solid var(--accent); }
.anmelde-karte img { height: 46px; display: block; margin-bottom: 8px; }
.anmelde-karte label { display: flex; flex-direction: column; gap: 5px; font-size: 12.5px; font-weight: 500; color: #4b556b; margin-top: 12px; }

/* ---------------------------------------------------------------- Seite */
main { flex: 1; min-width: 0; padding: 26px 32px 64px; }
h1 { font-size: 26px; margin: 0 0 18px; font-weight: 700; letter-spacing: -.2px; color: var(--navy); }
h1 .muted, h1 span.muted { font-size: 15px !important; font-weight: 500 !important; letter-spacing: 0; }
h2 { font-size: 16px; margin: 26px 0 12px; font-weight: 700; color: var(--navy); }
.leiste { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 16px; }
.leiste .rechts { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.muted { color: var(--muted); }

/* ---------------------------------------------------------------- Bedienelemente */
button, .btn { font: 500 13.5px/1 var(--schrift); border: 1px solid var(--line-stark); background: #fff; color: var(--navy); padding: 0 14px; height: 36px; border-radius: 9px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 6px; transition: background .12s, border-color .12s, box-shadow .12s; white-space: nowrap; }
button:hover, .btn:hover { border-color: #b9c2d3; background: #f8f9fc; text-decoration: none; }
button:focus-visible, .btn:focus-visible { outline: 3px solid #435fbc40; outline-offset: 1px; }
button.primaer, .btn.primaer { background: var(--accent); border-color: var(--accent); color: #fff; box-shadow: 0 1px 2px rgba(47, 71, 150, .3); }
button.primaer:hover, .btn.primaer:hover { background: var(--accent-dunkel); border-color: var(--accent-dunkel); }
button.gefahr { color: var(--rot); }
button.gefahr:hover { background: var(--rot-soft); border-color: #efc2c5; }
button:disabled { opacity: .45; cursor: default; }
input, select, textarea { font: 14px/1.4 var(--schrift); padding: 8px 11px; min-height: 38px; border: 1px solid var(--line-stark); border-radius: 9px; background: #fff; color: var(--text); width: 100%; transition: border-color .12s, box-shadow .12s; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px #435fbc26; }
input:disabled, select:disabled, textarea:disabled { background: #f4f6fa; color: #7d8590; }
input[type=checkbox] { width: 17px; height: 17px; min-height: 0; accent-color: var(--accent); vertical-align: -3px; }
input[type=color] { padding: 3px; height: 38px; }
.leiste input, .leiste select { width: auto; }
.leiste label { display: inline-flex; align-items: center; gap: 5px; }
textarea { min-height: 70px; resize: vertical; }

/* ---------------------------------------------------------------- Karten, Kacheln, Tabellen */
.karte { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--schatten); }
.kacheln { display: grid; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); gap: 14px; margin-bottom: 22px; }
.kachel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px; color: inherit; box-shadow: var(--schatten); position: relative; overflow: hidden; transition: box-shadow .15s, transform .15s; }
.kachel::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--accent); opacity: .85; }
a.kachel:hover { box-shadow: var(--schatten-hoch); transform: translateY(-1px); text-decoration: none; }
.kachel .wert { font-size: 28px; font-weight: 700; color: var(--navy); letter-spacing: -.5px; margin: 2px 0; }
.kachel .titel { color: var(--muted); font-size: 12.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .6px; }
.kachel .sub { color: var(--muted); font-size: 12.5px; }
.kachel.warn::before { background: var(--rot); }
.kachel.warn .wert { color: var(--rot); }
.raster2 { display: grid; grid-template-columns: 2fr 1fr; gap: 20px; }
@media (max-width: 1100px) { .raster2 { grid-template-columns: 1fr; } }
table.tab { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--schatten); }
.tab th, .tab td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.tab th { background: #f8f9fc; font-weight: 600; font-size: 11px; color: #6b7489; text-transform: uppercase; letter-spacing: .7px; white-space: nowrap; }
.tab tr:last-child td { border-bottom: none; }
.tab tr.klick { cursor: pointer; }
.tab tr.klick:hover td { background: #f6f8fd; }
.tab td.zahl, .tab th.zahl { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tab tfoot td { font-weight: 700; background: #f8f9fc; border-top: 1px solid var(--line); }
.tab-scroll { overflow-x: auto; border-radius: var(--radius); }
.leer { color: var(--muted); padding: 22px; text-align: center; }
.badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 99px; font-size: 11.5px; font-weight: 600; white-space: nowrap; line-height: 1.6; }
.st-offen { background: #eef0f3; color: #59606e; } .st-disponiert { background: #e8edfb; color: #3449a0; } .st-unterwegs { background: #fff1d6; color: #95580a; }
.st-geliefert, .st-bezahlt { background: #e3f4eb; color: #1c6d49; } .st-abgerechnet { background: #efe9fb; color: #5d3ea8; } .st-storniert { background: #f1f2f4; color: #8b92a0; }
.ampel { display: inline-block; width: 10px; height: 10px; border-radius: 50%; vertical-align: 0; margin-right: 7px; }
.ampel.rot { background: var(--rot); box-shadow: 0 0 0 3px #c8323a22; } .ampel.gelb { background: #e9a100; box-shadow: 0 0 0 3px #e9a10022; } .ampel.gruen { background: var(--gruen); }
.frist-rot { color: var(--rot); font-weight: 600; } .frist-gelb { color: var(--gelb); font-weight: 600; } .frist-ok { color: var(--gruen); font-weight: 600; }
.reiter { display: flex; gap: 2px; border-bottom: 1px solid var(--line); margin-bottom: 18px; }
.reiter a { padding: 10px 16px; color: var(--muted); border-bottom: 2px solid transparent; margin-bottom: -1px; font-weight: 500; }
.reiter a:hover { color: var(--navy); text-decoration: none; }
.reiter a.aktiv { color: var(--accent); border-bottom-color: var(--accent); font-weight: 600; }
.warnbox { background: var(--rot-soft); color: var(--rot); border: 1px solid #f3c9cc; border-radius: 10px; padding: 10px 14px; font-size: 13px; }
.okbox { background: var(--gruen-soft); color: var(--gruen); border: 1px solid #bfe4d1; border-radius: 10px; padding: 10px 14px; font-size: 13px; }
.infobox { background: var(--accent-hell); color: var(--accent-dunkel); border: 1px solid #d3dbf3; border-radius: 10px; padding: 10px 14px; font-size: 13px; }

/* ---------------------------------------------------------------- Dialog / Formular */
dialog { border: none; border-radius: 16px; padding: 0; width: min(900px, 96vw); max-height: 92vh; box-shadow: var(--schatten-hoch); color: var(--text); }
dialog::backdrop { background: rgba(28, 37, 65, .45); backdrop-filter: blur(2px); }
dialog form { display: flex; flex-direction: column; max-height: 92vh; }
.dlg-kopf { padding: 16px 24px; border-bottom: 1px solid var(--line); font-size: 18px; font-weight: 700; display: flex; align-items: center; gap: 10px; color: var(--navy); border-top: 4px solid var(--accent); border-radius: 16px 16px 0 0; }
.dlg-inhalt { padding: 18px 24px; overflow-y: auto; }
.dlg-fuss { padding: 14px 24px; border-top: 1px solid var(--line); display: flex; gap: 8px; flex-wrap: wrap; background: #fafbfd; border-radius: 0 0 16px 16px; }
.dlg-fuss .rechts { margin-left: auto; display: flex; gap: 8px; }
.felder { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px 16px; }
.felder label { display: flex; flex-direction: column; gap: 5px; font-size: 12.5px; font-weight: 500; color: #4b556b; }
.felder label.check { flex-direction: row; align-items: center; gap: 9px; padding-top: 22px; font-size: 13.5px; color: var(--text); }
.felder .w2 { grid-column: span 2; } .felder .w3 { grid-column: 1 / -1; }
.felder .abschnitt { grid-column: 1 / -1; font-weight: 700; color: var(--navy); font-size: 13.5px; padding: 12px 0 6px; margin-top: 6px; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 8px; }
.felder .abschnitt::before { content: ""; width: 4px; height: 15px; border-radius: 2px; background: var(--accent); }
.felder .pflicht::after { content: " *"; color: var(--rot); }
@media (max-width: 760px) {
  .felder { grid-template-columns: 1fr; } .felder .w2 { grid-column: auto; }
  body { flex-direction: column; } main { padding: 18px 16px 48px; }
  .nav { width: auto; height: auto; position: static; flex-direction: row; flex-wrap: wrap; padding: 8px; border-right: none; border-bottom: 1px solid var(--line); }
  .nav .logo, .nav-fuss, .nav .gruppe { display: none; } .nav a { padding: 6px 9px; font-size: 13px; }
}

#toast { position: fixed; bottom: 22px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 8px; z-index: 99; }
#toast div { background: var(--navy); color: #fff; padding: 11px 18px; border-radius: 10px; box-shadow: var(--schatten-hoch); max-width: 520px; font-weight: 500; }
#toast div.fehler { background: var(--rot); }

/* ---------------------------------------------------------------- Plantafel */
.tafel { border-collapse: separate; border-spacing: 0; width: 100%; table-layout: fixed; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--schatten); }
.tafel th, .tafel td { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 5px; vertical-align: top; }
.tafel th { background: #f8f9fc; font-size: 12px; font-weight: 600; color: #4b556b; padding: 9px 6px; position: sticky; top: 0; z-index: 2; }
.tafel th.heute { background: var(--accent-hell); color: var(--accent); }
.tafel td.heute { background: #f8faff; }
.tafel td.we, .tafel th.we { background: #fafbfc; width: 9%; }
.tafel .fz { width: 160px; font-size: 12.5px; background: #fbfcfe; }
.tafel .fz b { font-size: 14px; color: var(--navy); }
.tafel td.zelle { height: 78px; }
.tafel td.ziel { background: #eaf0ff !important; outline: 2px dashed var(--accent); outline-offset: -3px; }
.auftrag-karte { border-radius: 8px; padding: 5px 8px; margin-bottom: 5px; font-size: 12px; line-height: 1.35; cursor: grab; border-left: 4px solid var(--s-offen); background: #f3f4f7; overflow: hidden; box-shadow: 0 1px 1px rgba(28,37,65,.04); }
.auftrag-karte:hover { box-shadow: 0 3px 10px rgba(28, 37, 65, .14); }
.auftrag-karte .r { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--navy); }
.auftrag-karte .k { color: #5b647a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ak-disponiert { border-left-color: var(--s-disponiert); background: #eef1fb; }
.ak-unterwegs { border-left-color: var(--s-unterwegs); background: #fff5e3; }
.ak-geliefert { border-left-color: var(--s-geliefert); background: #e9f6ef; }
.ak-abgerechnet { border-left-color: var(--s-abgerechnet); background: #f3eefc; }
.ak-offen { border-left-color: var(--s-offen); background: #fff; border: 1px solid var(--line); border-left-width: 4px; }
.pool { background: var(--panel); border: 1.5px dashed var(--line-stark); border-radius: var(--radius); padding: 12px 14px; margin-bottom: 16px; min-height: 64px; }
.pool .karten { display: flex; flex-wrap: wrap; gap: 8px; }
.pool .auftrag-karte { width: 236px; margin: 0; }
.pool.ziel { background: #eef2ff; border-color: var(--accent); }
.legende { display: flex; gap: 14px; font-size: 12px; color: var(--muted); flex-wrap: wrap; align-items: center; }
.legende span::before { content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; background: var(--c); vertical-align: -1px; }
.legende span:not([style*="--c"]):not([class^="lg-"])::before { display: none; }

.link-zeile { display: flex; gap: 8px; align-items: center; margin: 6px 0; flex-wrap: wrap; }
.link-zeile code { background: #f3f5f9; border: 1px solid var(--line); padding: 6px 9px; border-radius: 8px; font-size: 12.5px; word-break: break-all; }
.cmr-info { display: flex; flex-direction: column; gap: 4px; margin-bottom: 16px; max-width: 210mm; margin-left: auto; margin-right: auto; }

/* ---------------------------------------------------------------- Zeitplan */
.umschalter { display: inline-flex; border: 1px solid var(--line-stark); border-radius: 9px; overflow: hidden; background: #fff; }
.umschalter button { border: none; border-radius: 0; border-right: 1px solid var(--line); height: 34px; }
.umschalter button:last-child { border-right: none; }
.umschalter button.aktiv { background: var(--accent); color: #fff; }
.zp { overflow-x: auto; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--schatten); }
.zp-reihe { display: flex; border-bottom: 1px solid var(--line); min-width: max-content; }
.zp-reihe:last-child { border-bottom: none; }
.zp-name { width: 160px; flex: none; padding: 7px 12px; font-size: 12.5px; background: #fbfcfe; border-right: 1px solid var(--line); position: sticky; left: 0; z-index: 4; }
.zp-name b { color: var(--navy); font-size: 13.5px; }
.zp-kopf .zp-name { background: #f8f9fc; }
.zp-kopf { position: sticky; top: 0; z-index: 5; }
.zp-spur-kopf { background: #f8f9fc; }
.zp-tage { display: flex; }
.zp-tag { flex: none; font-size: 12px; font-weight: 600; padding: 5px 7px; border-left: 1px solid var(--line-stark); white-space: nowrap; overflow: hidden; color: #4b556b; }
.zp-tag.heute { color: var(--accent); background: var(--accent-hell); }
.zp-tag.we { background: #f3f4f6; }
.zp-stunden { position: relative; height: 19px; }
.zp-std { position: absolute; top: 0; font-size: 10.5px; color: #8b93a6; padding-left: 3px; border-left: 1px solid var(--line); height: 19px; }
.zp-spur { position: relative; height: 72px; flex: none; }
.zp-spur.ziel { background: #eef2ff; outline: 2px dashed var(--accent); outline-offset: -2px; }
.zp-bg { position: absolute; top: 0; bottom: 0; }
.zp-bg.we { background: #f7f8fa; }
.zp-bg.heute { background: #f7f9ff; }
.zp-linie { position: absolute; top: 0; bottom: 0; border-left: 1px solid #eff1f5; }
.zp-linie.tag { border-left-color: #d3d9e4; }
/* Angebote / Kalkulation */
.mit-knopf { display: flex; gap: 8px; } .mit-knopf select { flex: 1; min-width: 0; } .mit-knopf button { height: 38px; flex: none; }
.kalk-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 18px; align-items: start; }
.kalk-form { display: flex; flex-direction: column; gap: 14px; }
.kalk-zwei { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.kalk-zwei .felder { grid-template-columns: 1fr 1fr; }
.kalk-titel { font-weight: 700; font-size: 14.5px; color: var(--navy); margin-bottom: 12px; display: flex; align-items: center; gap: 10px; }
.kalk-titel .rechts { margin-left: auto; display: flex; gap: 10px; align-items: center; }
.kalk-ergebnis { position: sticky; top: 16px; border-top: 4px solid var(--accent); }
.kalk-kennzahlen { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; margin-bottom: 12px; }
.kalk-kennzahlen span { display: block; font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .5px; }
.kalk-kennzahlen b { font-size: 15px; }
.kalk-kennzahlen.klein b { font-size: 13.5px; }
.kalk-pos { width: 100%; border-collapse: collapse; font-size: 13px; }
.kalk-pos td { padding: 6px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.kalk-pos td:last-child { text-align: right; white-space: nowrap; padding-left: 10px; font-variant-numeric: tabular-nums; }
.kalk-pos tr.maut td { color: var(--accent-dunkel); font-weight: 600; }
.kalk-pos tr.summe td { font-weight: 700; border-top: 1.5px solid var(--navy); }
.kalk-preis { background: var(--accent); color: #fff; border-radius: 12px; padding: 14px 16px; margin: 14px 0; display: flex; justify-content: space-between; align-items: center; }
.kalk-preis span { font-size: 13px; opacity: .9; } .kalk-preis b { font-size: 24px; letter-spacing: -.5px; }
@media (max-width: 1200px) { .kalk-layout { grid-template-columns: 1fr; } .kalk-ergebnis { position: static; } .kalk-zwei { grid-template-columns: 1fr; } }
.zp-abw { position: absolute; top: 5px; bottom: 5px; z-index: 1; border-radius: 7px; padding: 3px 8px; font-size: 11.5px; font-weight: 600; color: #1c6d49; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  background: repeating-linear-gradient(135deg, #d3eedf 0 7px, #e7f6ee 7px 14px); border: 1px solid #a7d8bc; }
.zp-abw.beantragt { color: #95580a; background: repeating-linear-gradient(135deg, #ffecc4 0 7px, #fff6e0 7px 14px); border-color: #f1cf86; }
.zp-abw.krank { color: #a12a31; background: repeating-linear-gradient(135deg, #f8dadd 0 7px, #fcecee 7px 14px); border-color: #eab0b5; }
.zp-spur-klein { height: 38px; }
.zp-abschnitt .zp-name, .zp-abschnitt-spur { background: #f8f9fc; padding: 7px 12px; font-size: 12px; }
.zp-abschnitt { border-top: 2px solid var(--line-stark); }
.pt-abw { font-size: 11px; font-weight: 600; color: #1c6d49; background: #e3f4eb; border-radius: 6px; padding: 2px 6px; margin-bottom: 4px; }
.pt-abw.beantragt { color: #95580a; background: #fff1d6; } .pt-abw.krank { color: #a12a31; background: #fbe3e5; }
.tm-zeile { font-size: 11px; line-height: 1.35; margin-top: 3px; color: var(--accent); }
.tm-zeile.frist-rot, .tm-zeile.frist-gelb { font-weight: 600; }
.zp-ist { position: absolute; top: 0; z-index: 3; width: 0; height: 0; border-left: 7px solid transparent; border-right: 7px solid transparent; border-top: 10px solid var(--s-unterwegs); transform: translateX(-7px); }
.lkw-marker { background: var(--c, #435fbc); color: #fff; font: 700 11.5px var(--schrift); padding: 3px 8px; border-radius: 10px; white-space: nowrap; box-shadow: 0 2px 6px rgba(0,0,0,.35); border: 2px solid #fff; transform: translate(-50%, -50%); display: inline-block; }
.zp-jetzt { position: absolute; top: 0; bottom: 0; border-left: 2px solid var(--rot); z-index: 3; }
.zp-balken { position: absolute; top: 28px; height: 36px; border-radius: 7px; cursor: grab; z-index: 2; box-shadow: 0 1px 3px rgba(28,37,65,.2); background: #fff; touch-action: none; }
.zp-segs { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; }
/* Kennzeichen-Schild über dem Balken: LKW-Symbol + Zugmaschine + Auflieger */
.zp-kz { position: absolute; left: 0; bottom: calc(100% + 3px); max-width: max(100%, 190px); height: 18px; z-index: 1; display: inline-flex; align-items: center; gap: 4px;
  padding: 0 6px 0 4px; background: #fff; border: 1px solid #c9d1e3; border-left: 3px solid var(--accent); border-radius: 4px;
  font-size: 10.5px; line-height: 1; color: var(--navy); white-space: nowrap; overflow: hidden; box-sizing: border-box; pointer-events: none; }
.zp-kz b { font-weight: 700; letter-spacing: .2px; flex: none; }
.zp-kz .plus { color: var(--muted); font-weight: 600; }
.zp-kz .lkw-sym { flex: none; height: 11px; width: auto; fill: var(--accent); }
.zp-balken.warn .zp-kz { border-left-color: var(--rot); }
.zp-balken:hover { box-shadow: 0 3px 12px rgba(28,37,65,.3); }
.zp-balken.warn { outline: 2px solid var(--rot); outline-offset: 1px; overflow: visible; }
.zp-balken.zieht, .auftrag-karte.zieht { opacity: .85; z-index: 50; pointer-events: none; position: relative; }
.zp-balken.zieht { position: absolute; }
.zs { position: absolute; top: 0; bottom: 0; display: block; }
.zs-leer, .lg-leer { --c: #c3cdea; background: repeating-linear-gradient(135deg, #cfd8f1 0 4px, #e8edf9 4px 8px); }
.zs-laden, .lg-laden { --c: #1c2541; background: #1c2541; }
.zs-fahrt, .lg-fahrt { --c: var(--accent); background: var(--accent); }
.zs-pause, .lg-pause { --c: #e9a100; background: #e9a100; }
.zs-ruhe, .lg-ruhe { --c: #a7afbc; background: repeating-linear-gradient(135deg, #aeb6c2 0 4px, #cbd1da 4px 8px); }
.zs-warten, .lg-warten { --c: #ecdcaa; background: #f2e8c8; }
.zs-entladen, .lg-entladen { --c: #23845a; background: #23845a; }
.legende span[class^="lg-"] { background: none; }
.legende span[class^="lg-"]::before { background: var(--c); }
.zp-text { position: absolute; left: 4px; top: 50%; transform: translateY(-50%); max-width: calc(100% - 8px); font-size: 11.5px; font-weight: 600; color: #fff; background: rgba(28, 37, 65, .78); padding: 1px 7px; border-radius: 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none; }
.zp-zeit { position: fixed; z-index: 100; background: var(--navy); color: #fff; padding: 5px 9px; border-radius: 7px; font-size: 12px; pointer-events: none; white-space: nowrap; }
.zp-pool .auftrag-karte { cursor: grab; touch-action: none; }

/* ---------------------------------------------------------------- Tourenkarte */
.karte-layout { display: grid; grid-template-columns: 1fr 370px; gap: 16px; }
#karte { height: calc(100vh - 200px); min-height: 440px; border-radius: var(--radius); border: 1px solid var(--line); background: #e9eef3; z-index: 0; box-shadow: var(--schatten); }
.karte-liste { height: calc(100vh - 200px); min-height: 440px; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; }
.kl-gruppe { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 12px; box-shadow: var(--schatten); }
.kl-kopf { display: flex; gap: 8px; align-items: center; font-size: 13px; margin-bottom: 4px; }
.kl-kopf i { width: 12px; height: 12px; border-radius: 4px; flex: none; }
.kl-kopf .rechts { margin-left: auto; font-size: 12px; white-space: nowrap; }
.kl-auftrag { padding: 6px 8px; border-radius: 8px; cursor: pointer; font-size: 12.5px; }
.kl-auftrag:hover { background: #f3f6fc; }
@media (max-width: 1000px) { .karte-layout { grid-template-columns: 1fr; } .karte-liste { height: auto; } }

/* ---------------------------------------------------------------- Auswertung */
.balken { display: flex; align-items: flex-end; gap: 10px; height: 210px; padding: 12px 4px 0; border-bottom: 1px solid var(--line); }
.balken .b { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; font-size: 11px; color: var(--muted); gap: 4px; }
.balken .b i { display: block; width: 100%; max-width: 46px; background: linear-gradient(180deg, #5f78cc, var(--accent)); border-radius: 6px 6px 0 0; min-height: 1px; }
.balken-achse { display: flex; gap: 10px; padding: 6px 4px; font-size: 12px; color: var(--muted); }
.balken-achse span { flex: 1; text-align: center; }

/* ---------------------------------------------------------------- Rechnung (Druckansicht) */
.rechnung-blatt { background: #fff; width: 210mm; min-height: 297mm; margin: 0 auto; padding: 18mm 18mm 20mm 22mm; box-shadow: var(--schatten-hoch); font: 10.5pt/1.45 var(--schrift); color: #1c2541; position: relative; border-top: 5mm solid var(--accent); }
.rb-kopf { display: flex; justify-content: space-between; align-items: flex-start; }
.rb-logo { max-height: 20mm; max-width: 68mm; display: block; }
.rb-firma { font-size: 17pt; font-weight: 700; color: var(--accent); }
.rb-firma-adr { text-align: right; font-size: 9pt; color: #4b556b; line-height: 1.5; }
.rb-absender { font-size: 7.5pt; color: #6b7489; border-bottom: 1px solid #aab2c0; display: inline-block; margin-top: 16mm; padding-bottom: 1px; }
.rb-empf { margin-top: 3mm; min-height: 32mm; line-height: 1.45; }
.rb-meta { display: grid; grid-template-columns: auto auto; gap: 1px 12px; position: absolute; right: 18mm; top: 52mm; font-size: 9.5pt; }
.rb-meta span:nth-child(odd) { color: #6b7489; }
.rb-titel { font-size: 16pt; font-weight: 700; margin: 6mm 0 4mm; color: var(--accent); }
.rb-pos { width: 100%; border-collapse: collapse; margin-top: 4mm; }
.rb-pos th { text-align: left; border-bottom: 1.5px solid var(--accent); padding: 4px; font-size: 9pt; color: var(--accent); text-transform: uppercase; letter-spacing: .5px; }
.rb-pos td { border-bottom: 1px solid #e1e5ec; padding: 5px 4px; vertical-align: top; white-space: pre-line; }
.rb-pos .zahl { text-align: right; white-space: nowrap; }
.rb-summen { margin-left: auto; width: 78mm; margin-top: 4mm; border-collapse: collapse; }
.rb-summen td { padding: 3px 4px; } .rb-summen td:last-child { text-align: right; }
.rb-summen tr.gesamt td { border-top: 1.5px solid var(--accent); font-weight: 700; font-size: 11.5pt; color: var(--accent); }
.rb-text { margin-top: 8mm; line-height: 1.5; }
.rb-fuss { position: absolute; left: 22mm; right: 18mm; bottom: 12mm; border-top: 1px solid #c9d0dc; padding-top: 3mm; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; font-size: 7.8pt; color: #6b7489; line-height: 1.45; }
.rechnung-blatt.lang .rb-fuss { position: static; margin-top: 12mm; }
.rb-pos tr { break-inside: avoid; }
.storno-stempel { position: absolute; top: 95mm; left: 50mm; font-size: 46pt; font-weight: 800; color: rgba(200,50,58,.25); transform: rotate(-18deg); border: 6px solid rgba(200,50,58,.25); padding: 0 16px; }

/* ---------------------------------------------------------------- Fahrer-Kontakt / Meldungen / Personal */
.kontakt { display: grid; grid-template-columns: 290px 1fr; gap: 16px; min-height: 560px; }
.kontakt-liste { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--schatten); align-self: start; }
.kontakt-liste a { display: flex; gap: 10px; align-items: center; padding: 11px 14px; border-bottom: 1px solid var(--line); color: inherit; }
.kontakt-liste a:last-child { border-bottom: none; }
.kontakt-liste a:hover { background: #f6f8fd; text-decoration: none; }
.kontakt-liste a.aktiv { background: var(--accent-hell); }
.avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--accent-hell); color: var(--accent); font-weight: 700; display: flex; align-items: center; justify-content: center; flex: none; font-size: 13px; }
.kontakt-liste .info { flex: 1; min-width: 0; }
.kontakt-liste .info b { display: block; color: var(--navy); }
.kontakt-liste .info span { display: block; font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zaehler-punkt { background: var(--rot); color: #fff; font-size: 11px; font-weight: 700; min-width: 20px; height: 20px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; padding: 0 6px; }
.chat { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); display: flex; flex-direction: column; box-shadow: var(--schatten); height: calc(100vh - 175px); min-height: 460px; overflow: hidden; }
.chat-kopf { padding: 14px 18px; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 10px; flex: none; }
.chat-verlauf { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 16px 18px; display: flex; flex-direction: column; gap: 8px; background: #fafbfd; overscroll-behavior: contain; }
.chat-verlauf > * { flex: none; }
.chat-eingabe { flex: none; }
.neu-trenner { align-self: stretch; display: flex; align-items: center; gap: 10px; color: var(--rot); font-size: 12px; font-weight: 700; margin: 6px 0; }
.neu-trenner::before, .neu-trenner::after { content: ""; flex: 1; border-top: 1.5px solid var(--rot); }
.blase.neu { box-shadow: 0 0 0 2px #c8323a55; }
.cmr-im-auftrag { display: flex; gap: 16px; align-items: flex-start; }
.cmr-vorschau { width: 210px; height: 297px; flex: none; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; cursor: zoom-in; background: #fff; box-shadow: var(--schatten); }
.cmr-vorschau-innen { transform: scale(.2645); transform-origin: top left; width: 210mm; pointer-events: none; }
.cmr-vorschau-innen .cmr-blatt { box-shadow: none; margin: 0; }
.cmr-sig-status { padding: 7px 10px; border-radius: 9px; background: #f6f7fa; margin-bottom: 6px; display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 10px; }
.cmr-sig-status b { font-size: 13px; color: var(--muted); } .cmr-sig-status span { grid-column: 1; font-size: 12px; color: var(--muted); }
.cmr-sig-status img { grid-column: 2; grid-row: 1 / span 2; height: 34px; max-width: 120px; object-fit: contain; }
.cmr-sig-status.ok { background: var(--gruen-soft); } .cmr-sig-status.ok b { color: var(--gruen); }
@media (max-width: 760px) { .cmr-im-auftrag { flex-direction: column; } }
.foto-fehlt { width: 74px; height: 74px; border-radius: 8px; border: 1px dashed var(--line-stark); display: inline-flex; align-items: center; justify-content: center; font-size: 11px; color: var(--muted); text-align: center; cursor: pointer; }
.blase { max-width: 72%; padding: 9px 13px; border-radius: 14px; background: #fff; border: 1px solid var(--line); align-self: flex-start; white-space: pre-line; }
.blase.buero { align-self: flex-end; background: var(--accent); color: #fff; border-color: var(--accent); }
.blase .zeit { display: block; font-size: 11px; opacity: .7; margin-top: 3px; }
.blase .bezug { display: block; font-size: 11.5px; font-weight: 600; opacity: .85; margin-bottom: 2px; }
.ereignis-zeile { align-self: center; font-size: 12px; color: var(--muted); background: #eef1f6; padding: 4px 12px; border-radius: 99px; }
.ereignis-zeile.problem { background: var(--rot-soft); color: var(--rot); font-weight: 600; }
.chat-eingabe { display: flex; gap: 8px; padding: 12px 14px; border-top: 1px solid var(--line); }
.chat-eingabe textarea { min-height: 42px; height: 42px; }
.meldung-karte { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: start; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.meldung-karte:last-child { border-bottom: none; }
.meldung-karte .symbol { width: 34px; height: 34px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 17px; background: var(--accent-hell); }
.meldung-karte.problem .symbol { background: var(--rot-soft); }
.meldung-karte.doku .symbol { background: var(--gruen-soft); }
.meldung-karte.problem.offen { background: #fff8f8; }
.fotos { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.fotos img { width: 74px; height: 74px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); cursor: zoom-in; }
.lightbox { position: fixed; inset: 0; background: rgba(10, 14, 28, .88); display: flex; align-items: center; justify-content: center; z-index: 200; cursor: zoom-out; }
.lightbox img { max-width: 94vw; max-height: 92vh; border-radius: 8px; }
.urlaub-raster { overflow-x: auto; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--schatten); }
.urlaub-raster table { border-collapse: collapse; font-size: 11.5px; }
.urlaub-raster th, .urlaub-raster td { border: 1px solid var(--line); padding: 0; width: 26px; height: 28px; text-align: center; }
.urlaub-raster th.name, .urlaub-raster td.name { width: 150px; text-align: left; padding: 0 10px; position: sticky; left: 0; background: #fff; font-size: 12.5px; white-space: nowrap; }
.urlaub-raster th { background: #f8f9fc; color: var(--muted); font-weight: 600; }
.urlaub-raster .we { background: #f5f6f8; }
.urlaub-raster .heute { outline: 2px solid var(--accent); outline-offset: -2px; }
.u-urlaub { background: #cfe9da !important; } .u-beantragt { background: repeating-linear-gradient(135deg, #fff1d6 0 4px, #ffe4ad 4px 8px) !important; }
.u-krank { background: #f6d1d4 !important; } .u-sonstig { background: #dfe5f6 !important; }

@media print {
  @page { size: A4; margin: 0; }
  body { background: #fff; display: block; }
  .nav, .leiste, #toast, .kein-druck { display: none !important; }
  main { padding: 0; }
  .tab-scroll { overflow: visible; }
  .rechnung-blatt { box-shadow: none; margin: 0; width: 210mm; height: 297mm; overflow: hidden; }
  .rechnung-blatt.lang { height: auto; min-height: 297mm; overflow: visible; }
}

/* ---------- Auflieger / Matrix / Wartungsbuch / Protokoll */
.chip { display: inline-block; padding: 1px 7px; border-radius: 99px; background: var(--accent-hell); color: var(--accent-dunkel); font-size: 11.5px; font-weight: 600; margin: 1px 0; }
.matrix th.mx-kopf { text-align: center; font-size: 11px; line-height: 1.3; }
.matrix th.mx-kopf span { font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--muted); }
.matrix td.mx-zelle { text-align: center; padding: 0; border-left: 1px solid var(--line); }
.matrix td.mx-zelle label { display: flex; align-items: center; justify-content: center; gap: 3px; min-height: 44px; cursor: pointer; }
.matrix td.mx-zelle input { width: 18px; height: 18px; accent-color: var(--accent); }
.matrix td.mx-zelle.an { background: var(--accent-hell); }
.matrix .stern { color: #c99400; font-size: 13px; }
.karte > .abschnitt, div.abschnitt { font-weight: 700; color: var(--navy); font-size: 13px; }
.tab td.gut { color: var(--gruen); }

/* ---------- Ladeplanung, Nachkalkulation, Palettenkonto */
.lp-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.lp-chip { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; padding: 7px 12px; border-radius: 10px; border: 1.5px solid var(--line); background: var(--panel); font-size: 12px; cursor: pointer; }
.lp-chip b { font-size: 13px; } .lp-chip span { color: var(--muted); }
.lp-chip.voll { border-color: #f1cf86; background: #fff8e8; } .lp-chip.teil { border-color: #bfe4d1; background: #f2faf6; } .lp-chip.rot { border-color: #f3c9cc; background: #fdf3f4; }
.lp-chip.aktiv { outline: 3px solid var(--accent); outline-offset: 1px; }
.lp-raster2 { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 14px; align-items: start; }
@media (max-width: 1200px) { .lp-raster2 { grid-template-columns: 1fr; } }
.lp-auftrag { display: flex; gap: 10px; align-items: flex-start; padding: 9px 0; border-bottom: 1px solid var(--line); cursor: pointer; }
.lp-auftrag:last-child { border-bottom: none; } .lp-auftrag i { width: 14px; height: 14px; border-radius: 4px; margin-top: 3px; flex: none; }
.lp-tab input, .lp-tab select { padding: 6px 8px; height: 34px; }
.nur-druck { display: none; }
@media print { .nav, .leiste, .kein-druck, .reiter, #toast { display: none !important; } .nur-druck { display: block !important; } main { margin: 0 !important; padding: 0 !important; } .lp-raster2 { grid-template-columns: 1fr; } }

/* ---------- Einstellungen: Seitenleiste + Bereiche */
.einst-raster { display: grid; grid-template-columns: 250px 1fr; gap: 20px; align-items: start; }
.einst-nav { position: sticky; top: 14px; display: flex; flex-direction: column; gap: 2px; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 8px; }
.einst-nav a { display: flex; gap: 10px; align-items: center; padding: 9px 12px; border-radius: 9px; color: var(--text); font-weight: 500; }
.einst-nav a span { width: 22px; text-align: center; }
.einst-nav a:hover { background: var(--accent-hell); text-decoration: none; }
.einst-nav a.aktiv { background: var(--accent); color: #fff; font-weight: 600; }
.einst-kopf h2 { margin: 0 0 2px; font-size: 20px; }
.einst-kopf p { margin: 0 0 14px; }
.einst-h3 { font-size: 14.5px; margin: 18px 0 8px; color: var(--text); }
.einst-bild { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 8px 0; }
.einst-bild span { font-size: 12.5px; color: var(--muted); flex: 1 1 260px; }
.einst-bild img { max-height: 48px; max-width: 180px; }
.einst-bild input[type=file] { width: auto; }
.einst-fuss { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.rollen-raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; }
.rollen-raster .karte { margin: 0; }
.badge.gruen { background: var(--gruen-soft); color: var(--gruen); } .badge.rot { background: var(--rot-soft); color: var(--rot); }
.badge.gelb { background: var(--gelb-soft); color: var(--gelb); } .badge.blau { background: var(--accent-hell); color: var(--accent-dunkel); }
.badge.grau { background: #eef0f4; color: var(--muted); } .badge:not(.gruen):not(.rot):not(.gelb):not(.blau):not(.grau) { background: #eef0f4; color: var(--text); }
@media (max-width: 900px) { .einst-raster { grid-template-columns: 1fr; } .einst-nav { position: static; flex-direction: row; flex-wrap: wrap; } .einst-nav a { padding: 7px 10px; } }
/* ---------- Vorlagen + Sammeltour */
.vl-raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.vl-karte { margin: 0; display: flex; flex-direction: column; gap: 4px; } .vl-karte.inaktiv { opacity: .6; }
.vl-kopf { display: flex; gap: 8px; align-items: center; justify-content: space-between; } .vl-kopf b { font-size: 15px; }
.vl-strecke { font-weight: 600; font-size: 15px; margin: 2px 0; }
.vl-wdh { background: var(--accent-hell); color: var(--accent-dunkel); border-radius: 8px; padding: 6px 9px; font-size: 12.5px; margin: 4px 0; }
.vl-knoepfe { display: flex; gap: 6px; margin-top: auto; padding-top: 8px; }
.vl-tage { display: flex; gap: 6px; flex-wrap: wrap; } .vl-tage label { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 5px; border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px; font-weight: 600; }
.vl-tage input { width: auto; }
dialog.dlg-breit { width: min(1400px, 98vw); }
.st-raster { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 16px; align-items: start; }
.st-vorschau { position: sticky; top: 0; background: var(--bg); border-radius: 12px; padding: 10px; }
.st-vorschau .ladeplan-svg { min-width: 0; }
.st-kopf { grid-template-columns: repeat(4, 1fr) !important; background: var(--accent-hell); border-radius: 12px; padding: 10px; margin-bottom: 10px; }
.st-sendung { border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: 12px; padding: 10px 12px; margin-bottom: 10px; background: var(--panel); }
.st-skopf { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; } .st-skopf b { flex: 1; font-size: 15px; } .st-skopf select { width: auto; max-width: 260px; }
.st-felder { grid-template-columns: repeat(3, 1fr) !important; }
.st-zwei { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.st-pos input, .st-pos select { padding: 5px 6px; }
@media (max-width: 1100px) { .st-raster { grid-template-columns: 1fr; } .st-kopf, .st-felder { grid-template-columns: 1fr 1fr !important; } }
/* ---------- Transportauftrag aus PDF */
#pdf-ablage { position: fixed; inset: 0; z-index: 2000; background: rgba(28, 37, 65, .55); display: none; align-items: center; justify-content: center; pointer-events: none; }
#pdf-ablage.an { display: flex; }
#pdf-ablage div { background: var(--panel); border: 3px dashed var(--accent); border-radius: 18px; padding: 34px 46px; font-size: 22px; font-weight: 700; color: var(--accent-dunkel); text-align: center; }
#pdf-ablage small { display: block; font-size: 13px; font-weight: 400; color: var(--muted); margin-top: 6px; }
.pdf-hinweis { background: var(--gelb-soft); border: 1px solid #f0d9a6; border-radius: 12px; padding: 10px 14px; margin-bottom: 12px; font-size: 13px; }
.pdf-hinweis details { margin-top: 6px; } .pdf-hinweis summary { cursor: pointer; color: var(--accent-dunkel); font-weight: 600; }
.pdf-fehlt { color: var(--rot); font-weight: 600; margin-top: 4px; }
.pdf-tab td { font-size: 12px; padding: 4px 8px; } .pdf-tab td:last-child { max-width: 380px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pdf-text { white-space: pre-wrap; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 8px; max-height: 260px; overflow: auto; font-size: 11.5px; margin: 8px 0 0; }
input.pdf-erkannt, select.pdf-erkannt, textarea.pdf-erkannt { background: #fff8db; border-color: #e8c96b; }
input.pdf-unsicher, select.pdf-unsicher { background: #fff0e0; border-color: #e0a526; }
.pdf-links { background: var(--accent-hell); border-radius: 10px; padding: 8px 12px; margin-bottom: 10px; font-size: 13px; }
/* Führerscheinkontrolle */
.fs-bilder { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 6px; } .fs-bild { height: 110px; border-radius: 8px; border: 1px solid var(--line); object-fit: cover; }

/* Tourenkarte: Ansicht-Umschalter und Tour-Nummern */
.segment { display: inline-flex; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.segment button { border: none; border-radius: 0; background: transparent; padding: 6px 12px; }
.segment button + button { border-left: 1px solid var(--line); }
.segment button.aktiv { background: var(--blau-soft, #eef1fb); color: var(--blau, #435fbc); font-weight: 600; }
.karte-nr { width: 20px; height: 20px; border-radius: 50%; background: var(--c); color: #fff; font: 700 11px/20px 'Maven Pro', Arial, sans-serif; text-align: center; border: 2px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,.35); box-sizing: content-box; margin: -2px; }
.kl-nr { display: inline-block; min-width: 16px; height: 16px; border-radius: 50%; background: var(--c); color: #fff; font-size: 10.5px; font-weight: 700; line-height: 16px; text-align: center; }

/* Adresssuche: Vorschlagsliste unter dem Straßenfeld */
.adr-halter { position: relative; }
.adr-vorschlaege { position: absolute; left: 0; right: 0; top: 100%; z-index: 50; margin-top: 2px; background: var(--panel, #fff); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 10px 28px rgba(28,37,65,.18); max-height: 300px; overflow-y: auto; min-width: 280px; font-weight: 400; }
.adr-v { padding: 7px 10px; cursor: pointer; font-size: 13px; line-height: 1.35; border-bottom: 1px solid var(--line); }
.adr-v:hover, .adr-v.aktiv { background: var(--blau-soft, #eef1fb); }
.adr-v span { color: var(--muted, #6b7489); }
.adr-hinweis { padding: 8px 10px; font-size: 12.5px; color: var(--muted, #6b7489); }
.adr-fuss { padding: 4px 10px; font-size: 11px; color: var(--muted, #6b7489); background: var(--bg, #f6f7fa); }
input.adr-neu { background: #e6f5ee !important; transition: background .6s; }
.adr-warn { color: var(--rot, #c8323a); font-size: 11.5px; font-style: normal; }
.land-kz { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 0 4px; border-radius: 3px; background: var(--blau-soft, #eef1fb); color: var(--blau, #435fbc); vertical-align: 1px; }

/* Seitenmenü: normale Größe, scrollt mit der Seite (kein eigenes Scrollen, nicht festgeklebt).
   Der weiße Hintergrund reicht über die ganze Seitenlänge; Passwort/Handbuch/Abmelden direkt unter den Einträgen. */
body { height: auto; min-height: 100vh; align-items: stretch; }
.nav { position: static; height: auto; min-height: 100vh; overflow: visible; }
.nav-fuss { margin-top: 18px; }
@media (max-width: 900px) { .nav { min-height: 0; } }
/* Fußbereich des Menüs: Passwort / Handbuch / Abmelden umbrechen statt abschneiden */
.nav-fuss a { display: inline-flex; padding: 2px 6px; margin: 0; gap: 4px; }
.nav-fuss > div:last-child { display: flex; flex-wrap: wrap; gap: 0 2px; margin-left: -6px; }
.nav-fuss a { padding: 1px 4px; font-size: 11.5px; line-height: 1.5; } .nav-fuss > div:last-child { gap: 0; margin-left: -4px; flex-wrap: nowrap; justify-content: space-between; }
.nav-fuss a { white-space: nowrap; flex: none; }

/* Echtzeit-Verkehr */
.knopf-an { background: var(--accent-hell, #eef1fb) !important; color: var(--accent, #435fbc) !important; border-color: var(--accent, #435fbc) !important; font-weight: 600; }
.vk-icon { width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 2px solid #f0932b; display: flex; align-items: center; justify-content: center; font-size: 11px; box-shadow: 0 1px 3px rgba(0,0,0,.3); box-sizing: border-box; }
.vk-icon.wichtig { width: 26px; height: 26px; font-size: 14px; border-color: #d63031; }
.vk-icon.vk-stau { border-color: #c0392b; } .vk-icon.vk-baustelle, .vk-icon.vk-spur { opacity: .85; } .vk-icon.vk-hinweis, .vk-icon.vk-sonstig { border-color: #8a94a6; }
.vk-icon.klein { width: 16px; height: 16px; font-size: 9px; border-width: 1.5px; opacity: .8; }
.vk-b { display: inline-block; font-size: 11.5px; font-weight: 600; padding: 1px 7px; border-radius: 10px; margin: 3px 3px 0 0; white-space: nowrap; }
.vk-b.rot { background: #fde3e5; color: #c8323a; } .vk-b.gelb { background: #fff1d6; color: #a86500; } .vk-b.ok { background: #e3f4ea; color: #23845a; } .vk-b.grau { background: #eef0f4; color: #5b647a; }
.kl-verkehr details { margin-top: 4px; font-size: 12px; } .kl-verkehr summary { cursor: pointer; color: var(--accent, #435fbc); }
.kl-verkehr ul { margin: 4px 0 0; padding: 0; list-style: none; max-height: 220px; overflow-y: auto; }
.kl-verkehr li { padding: 3px 4px; border-radius: 6px; cursor: pointer; line-height: 1.35; } .kl-verkehr li:hover { background: #f3f5f9; }
