/* Heckmann Dispo (Patch 2.1) – baut auf den Tokens aus index.html auf */
:root{ --done:#0F5E33; --stripe:var(--line); }
:root[data-theme="dark"]{ --done:#3FB273; }

.dmain{ max-width:none; }
.dtopbar{ min-height:0; padding:0; margin:0; }
.dtop{ display:flex; flex-wrap:wrap; gap:14px 22px; align-items:flex-end; justify-content:space-between; margin-bottom:16px; }
.dnav input[type=date]{ padding:7px 8px; }
.dsub{ font-size:14px; margin:18px 0 8px; color:var(--ink); }
.grow{ flex:1; }
.iconbtn{ background:none; border:1px solid var(--line); border-radius:3px; width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; color:var(--ink); font-size:15px; line-height:1; }
.iconbtn:hover{ background:var(--soft); }
tr.off td{ opacity:.55; }

/* Plan: links Fahrer, rechts Touren, daneben der Pool */
.dplan{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:18px; align-items:start; }
.dboard{ background:var(--panel); border:1px solid var(--line); border-radius:4px; }
.drow{ display:grid; grid-template-columns:220px minmax(0,1fr); border-bottom:1px solid var(--line); min-height:96px; transition:background .12s; }
.drow:last-child{ border-bottom:0; }
.drow.blocked .dtours{ background:repeating-linear-gradient(135deg, transparent 0 9px, var(--soft) 9px 18px); }
.drow.dover, .dpool.dover{ background:color-mix(in srgb, var(--blue) 10%, var(--panel)); outline:2px dashed var(--blue); outline-offset:-3px; }
.dwho{ padding:12px 14px; border-right:1px solid var(--line); display:flex; flex-direction:column; gap:6px; }
.dname{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.dname b{ font-size:15px; }
.dplates{ display:flex; gap:4px; flex-wrap:wrap; }
.dload{ display:flex; align-items:center; gap:8px; }
.lbar{ flex:1; max-width:120px; height:6px; background:var(--soft); border-radius:3px; overflow:hidden; border:1px solid var(--line); }
.lbar i{ display:block; height:100%; background:var(--green); }
.lbar.gelb i{ background:var(--yellow); } .lbar.rot i{ background:var(--red); }
.lval{ font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }
.lval.gruen{ color:var(--ink2); } .lval.gelb{ color:var(--yellow-ink); } .lval.rot{ color:var(--red-ink); }
.dtours{ display:flex; flex-wrap:wrap; gap:10px; padding:10px 12px; align-content:flex-start; }
.dempty{ color:var(--ink2); font-size:13px; align-self:center; padding:6px 2px; }

/* Tour-Karte: wie ein Frachtzettel, Fortschritt an der Unterkante */
.tchip{ position:relative; width:232px; background:var(--panel); border:1px solid var(--line); border-left:5px solid var(--stripe); border-radius:3px;
  padding:7px 10px 10px; display:flex; flex-direction:column; gap:2px; cursor:grab; overflow:hidden; font-size:13px; }
.tchip:hover{ border-color:var(--ink2); border-left-color:var(--stripe); }
.tchip:focus-visible{ outline:2px solid var(--blue); outline-offset:2px; }
.tchip.dragging{ opacity:.35; }
.tchip header{ display:flex; align-items:center; gap:5px; }
.tno{ font-family:var(--cond); font-weight:700; font-size:15px; letter-spacing:.02em; white-space:nowrap; }
.tchip .st{ margin-left:auto; font-size:12px; font-weight:600; white-space:nowrap; }
.tchip .st.blue{ color:var(--blue-ink); }
.tchip .cust{ font-size:14px; line-height:1.25; }
.tchip .route{ color:var(--ink); }
.tchip .meta{ color:var(--ink2); }
.tchip .fix{ background:var(--ink); color:var(--panel); font-size:11px; font-weight:700; padding:0 5px; border-radius:2px; white-space:nowrap; }
.tchip .tim{ color:var(--ink2); font-size:12px; font-weight:600; }
.tchip .flag, .fcard .flag{ color:var(--orange-ink); font-weight:600; font-size:12px; }
.prog{ position:absolute; left:0; bottom:0; height:4px; background:var(--blue); }
.prog.done{ background:var(--done); }
.st-entwurf{ border-style:dashed; border-left-style:solid; --stripe:var(--ink2); background:var(--soft); }
.st-offen{ --stripe:var(--orange); }
.st-geplant{ --stripe:var(--ink2); }
.st-zugewiesen, .st-unterwegs{ --stripe:var(--blue); }
.st-erledigt{ --stripe:var(--done); cursor:default; }
.tchip.chg{ box-shadow:inset 0 0 0 1px var(--orange); }
.tchip.ovr::after{ content:"!"; position:absolute; right:6px; bottom:6px; width:16px; height:16px; border-radius:50%; background:var(--red); color:#fff; font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; }

.dpool{ background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:14px; display:flex; flex-direction:column; gap:10px; position:sticky; top:12px; max-height:calc(100vh - 24px); overflow:auto; }
.dpool h2{ margin:0; }
.dpool .tchip{ width:100%; }
.dmap{ height:360px; border:1px solid var(--line); border-radius:4px; margin-bottom:16px; background:var(--soft); }
.dmk{ display:inline-block; background:var(--blue); color:#000; font-family:var(--cond); font-weight:700; font-size:13px; padding:0 6px; white-space:nowrap; border:1px solid #000; transform:translate(-50%,-50%); }
:root[data-theme="dark"] .dmap .leaflet-tile-pane{ filter:grayscale(1) invert(1) brightness(.8) contrast(.9); }

/* Dialoge */
.modal .panel.wide{ max-width:860px; }
.dwarn{ list-style:none; margin:0; padding:0; }
.dwarn li{ padding:8px 10px; border-left:4px solid currentColor; background:var(--soft); margin-bottom:6px; font-weight:500; }
.dchips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }
.dchip{ position:relative; }
.dchip input{ position:absolute; opacity:0; inset:0; }
.dchip span{ display:inline-block; border:1px solid var(--line); border-radius:3px; padding:5px 10px; color:var(--ink); font-size:13px; cursor:pointer; }
.dchip input:checked + span{ background:var(--ink); color:var(--panel); border-color:var(--ink); }
.dchip input:focus-visible + span{ outline:2px solid var(--blue); outline-offset:2px; }
.dstop{ border:1px solid var(--line); border-radius:3px; padding:10px; margin-bottom:8px; display:flex; flex-direction:column; gap:8px; background:var(--soft); }
.dstoph{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.dstopc{ display:grid; grid-template-columns:1fr 150px 1fr; gap:8px; }
.dstop input.soft{ opacity:.6; }
.dtourfoot{ margin-top:18px; padding-top:14px; border-top:1px solid var(--line); }
.dtel{ font-family:var(--cond); font-weight:700; font-size:22px; color:var(--ink); }
.dpick{ display:flex; flex-direction:column; gap:8px; }
.dpickbtn{ text-align:left; background:var(--panel); border:1px solid var(--line); border-radius:3px; padding:10px 12px; cursor:pointer; display:flex; flex-direction:column; gap:1px; }
.dpickbtn:hover{ border-color:var(--ink); }

@media (max-width:1100px){ .dplan{ grid-template-columns:1fr; } .dpool{ position:static; max-height:none; order:-1; } }
@media (max-width:760px){
  .drow{ grid-template-columns:1fr; }
  .dwho{ border-right:0; border-bottom:1px solid var(--line); flex-direction:row; flex-wrap:wrap; align-items:center; }
  .tchip{ width:100%; }
  .dstopc{ grid-template-columns:1fr; }
}

/* ---------- Fahrer-App ---------- */
.fapp{ min-height:100vh; display:flex; flex-direction:column; max-width:640px; margin:0 auto; background:var(--bg); }
.fhead{ position:sticky; top:0; z-index:5; display:flex; align-items:center; gap:12px; padding:10px 14px; background:var(--panel); border-bottom:1px solid var(--line); }
.flogo img{ width:92px; display:block; background:#fff; padding:4px; border-radius:3px; }
.fhead div{ flex:1; display:flex; flex-direction:column; line-height:1.2; }
.fhead span{ font-size:13px; color:var(--ink2); }
.fmain{ flex:1; padding:16px 14px 90px; display:flex; flex-direction:column; gap:12px; }
.fmain h1{ margin:4px 0 0; }
.ffoot{ position:fixed; left:0; right:0; bottom:0; display:flex; background:var(--panel); border-top:1px solid var(--line); padding-bottom:env(safe-area-inset-bottom,0px); z-index:6; }
.ffoot a{ flex:1; text-align:center; padding:14px 4px; font-weight:600; font-size:14px; color:var(--ink2); text-decoration:none; border-top:3px solid transparent; }
.ffoot a.on{ color:var(--ink); border-top-color:var(--blue); }
.fbanner{ padding:12px 14px; font-weight:600; font-size:14px; border-left:5px solid currentColor; background:var(--panel); margin:0; }
.fbanner.orange{ color:var(--orange-ink); } .fbanner.red{ color:var(--red-ink); } .fbanner.green{ color:var(--done); }
.fcard{ position:relative; display:flex; flex-direction:column; gap:4px; background:var(--panel); border:1px solid var(--line); border-left:6px solid var(--blue); border-radius:4px; padding:12px 14px 16px; color:var(--ink); text-decoration:none; overflow:hidden; }
.fcard.cancelled{ border-left-color:var(--red); opacity:.7; }
.fcard.chg{ border-left-color:var(--orange); }
.fcard b{ font-size:17px; }
.fstop{ font-size:15px; } .fstop em{ font-style:normal; color:var(--ink2); display:inline-block; min-width:72px; }
.fstop strong{ background:var(--ink); color:var(--panel); padding:0 5px; border-radius:2px; font-size:13px; }
.fback{ color:var(--blue-ink); font-weight:600; text-decoration:none; }
.flead{ font-size:16px; margin:0; }
.fbig{ display:block; width:100%; text-align:center; background:var(--blue); color:#000; border:0; border-radius:6px; padding:20px 16px; font-family:var(--cond); font-weight:700; font-size:24px; letter-spacing:.01em; cursor:pointer; text-decoration:none; }
.fbig:active{ transform:translateY(1px); }
.fbig:disabled{ opacity:.5; }
.frow{ display:flex; flex-wrap:wrap; gap:8px; }
.frow .btn{ flex:1; text-align:center; padding:12px 10px; }
.fsec{ background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:12px 14px; display:flex; flex-direction:column; gap:6px; }
.fsec p{ margin:0; font-size:15px; } .fsec em{ font-style:normal; color:var(--ink2); }
.fsec .fix{ font-weight:700; }
.fnotes{ display:flex; flex-direction:column; gap:8px; }
.fnote{ background:var(--panel); border-left:5px solid var(--orange); padding:10px 12px; display:flex; flex-direction:column; gap:2px; }
.fform input, .fform select, .fform textarea{ width:100%; }
.sigbox{ margin-top:12px; display:flex; flex-direction:column; gap:4px; }
.sigbox span{ font-size:13px; color:var(--ink2); }
canvas.sig{ width:100%; height:150px; background:#fff; border:1px solid var(--ink2); border-radius:4px; touch-action:none; }
.sigbox .linkbtn{ align-self:flex-end; }
.tag.blue, .blue{ color:var(--blue-ink); }

/* ---------- Patch 2.2: Einsatzplan als Tabelle, Live-Status, Kombi, Abschluss ---------- */
:root{ --xred:#C62F28; --xmark:#FFE45C; }
:root[data-theme="dark"]{ --xred:#FF7A6E; --xmark:#8A7A12; }

.seg{ display:inline-flex; border:1px solid var(--line); border-radius:3px; overflow:hidden; }
.seg button{ background:var(--panel); border:0; padding:8px 12px; font-weight:600; cursor:pointer; color:var(--ink2); }
.seg button + button{ border-left:1px solid var(--line); }
.seg button[aria-pressed="true"]{ background:var(--ink); color:var(--panel); }

.dlive{ display:flex; flex-wrap:wrap; gap:6px 14px; margin:2px 0 14px; font-size:14px; color:var(--ink2); }
.dlive b{ font-family:var(--cond); font-size:18px; color:var(--ink); margin-right:2px; }
.dlive .blue b{ color:var(--blue-ink); } .dlive .green b{ color:var(--done); } .dlive .red b, .dlive .red{ color:var(--red-ink); }
.dchanged{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; border-left:5px solid var(--orange); background:var(--panel); padding:10px 14px; margin-bottom:12px; }
.dchanged b{ color:var(--orange-ink); }
.dauto{ margin:-4px 0 12px; }

/* Live-Zeile an Karte und Zeile */
.live{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:var(--blue-ink); }
.live i{ width:8px; height:8px; border-radius:50%; background:currentColor; flex:none; animation:livepulse 1.6s ease-in-out infinite; }
.live.over{ color:var(--orange-ink); } .live.prob{ color:var(--red-ink); }
@keyframes livepulse{ 0%,100%{ opacity:1; } 50%{ opacity:.25; } }
@media (prefers-reduced-motion: reduce){ .live i{ animation:none; } }
.tchip .tags{ display:flex; flex-wrap:wrap; gap:4px; margin-top:2px; }
.tchip .tags span{ font-size:11px; font-weight:600; border:1px solid var(--line); border-radius:2px; padding:0 5px; color:var(--ink2); }
.tchip .tags .kst, .tchip .tags .prc{ color:var(--xred); border-color:currentColor; }
.tchip .tags .cmb{ background:var(--ink); color:var(--panel); border-color:var(--ink); }
.tchip.combo{ box-shadow:inset 0 0 0 1px var(--ink); }
.tchip.prob{ border-color:var(--red); }
.flag.red{ color:var(--red-ink) !important; } .flag.green{ color:var(--done) !important; }
.drow.toomuch .dwho, .xdrv.toomuch .xwho{ background:color-mix(in srgb, var(--red) 9%, var(--panel)); }
.dday{ font-size:12px; color:var(--ink2); }

/* Vorschläge */
.dsug{ display:flex; flex-direction:column; gap:8px; }
.dsug h2{ margin:0; font-size:15px; }
.sug{ border-left:4px solid var(--green); background:var(--soft); padding:8px 10px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; font-size:13px; }
.sug p{ margin:0; flex:1; min-width:200px; }
.xsug{ background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:12px 14px; margin-bottom:12px; }

/* Tabelle wie der Excel-Einsatzplan */
.xsheet{ background:var(--panel); border:1px solid var(--line); border-radius:4px; overflow-x:auto; }
.xtab{ border-collapse:collapse; width:100%; min-width:980px; font-size:13.5px; }
.xtab col.c1{ width:210px; } .xtab col.c2{ width:140px; } .xtab col.c3{ width:96px; } .xtab col.c4{ width:84px; } .xtab col.c6{ width:220px; }
.xtab thead th{ position:sticky; top:0; z-index:2; background:var(--panel); font-size:13px; color:var(--ink); border-bottom:2px solid var(--ink); padding:8px; }
.xtab td{ padding:7px 8px; border-bottom:1px solid var(--line); vertical-align:top; }
.xdrv{ border-top:2px solid var(--ink); }
.xdrv.dover td, .xpool.dover td{ background:color-mix(in srgb, var(--blue) 9%, var(--panel)); }
.xwho{ background:var(--soft); border-right:1px solid var(--line); display:table-cell; }
.xwho .dname{ margin-bottom:6px; } .xwho .dplates{ margin-bottom:6px; } .xwho .dload{ margin:2px 0; }
.xwho > span, .xwho > .linkbtn{ display:block; margin-top:3px; font-size:12px; }
.xrow{ cursor:pointer; }
.xrow:hover td:not(.xwho){ background:var(--soft); }
.xrow:focus-visible{ outline:2px solid var(--blue); outline-offset:-2px; }
.xrow.dragging{ opacity:.35; }
.xrow.prob td:not(.xwho){ background:color-mix(in srgb, var(--red) 7%, var(--panel)); }
.xkst{ color:var(--xred); font-weight:700; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.xprice{ color:var(--xred); font-weight:600; font-style:italic; }
.xtime b{ display:block; font-variant-numeric:tabular-nums; }
.xmark{ display:inline-block; background:var(--xmark); color:#000; font-size:12px; font-weight:600; padding:0 5px; margin-top:2px; }
.xdesc{ line-height:1.4; } .xdesc b{ text-decoration:underline; text-underline-offset:2px; }
.xtags{ display:flex; flex-wrap:wrap; gap:4px; margin-top:4px; }
.xtag{ font-size:11px; font-weight:600; border:1px solid var(--line); border-radius:2px; padding:0 5px; color:var(--ink2); }
.xtag.cmb{ background:var(--ink); color:var(--panel); border-color:var(--ink); }
.xtag.late{ color:var(--red-ink); border-color:currentColor; }
.xdoc{ font:inherit; font-size:11px; font-weight:700; background:var(--panel); color:var(--blue-ink); border:1px solid currentColor; border-radius:2px; padding:0 6px; cursor:pointer; }
.xst{ position:relative; }
.xst .live{ display:flex; margin-top:4px; }
.xst .prog{ position:absolute; left:0; bottom:0; height:3px; }
.pill{ display:inline-block; font-size:12px; font-weight:700; padding:1px 7px; border-radius:2px; border:1px solid currentColor; white-space:nowrap; }
.pill.na{ color:var(--ink2); } .pill.blue{ color:var(--blue-ink); } .pill.orange{ color:var(--orange-ink); } .pill.red{ color:#fff; background:var(--red); border-color:var(--red); }
.pill.done{ color:#fff; background:var(--done); border-color:var(--done); }
.xempty td{ color:var(--ink2); font-size:13px; height:44px; vertical-align:middle; }
.xdrv.blocked .xempty td{ background:repeating-linear-gradient(135deg, transparent 0 9px, var(--soft) 9px 18px); }
.xsec td{ background:var(--soft); border-top:2px solid var(--ink); font-size:14px; }
.xpw{ font-size:12px; color:var(--ink2); }
.xin{ width:100%; font:inherit; padding:3px 5px; border:2px solid var(--blue); border-radius:2px; background:var(--panel); }
.xin.sm{ width:80px; padding:2px 5px; }

/* Tagesreiter unten wie Tabellenblätter */
.xdays{ position:sticky; bottom:0; z-index:5; display:flex; flex-direction:row; align-items:stretch; flex-wrap:wrap; gap:2px; margin-top:18px; padding:6px 0 calc(6px + env(safe-area-inset-bottom,0px)); background:var(--bg); border-top:1px solid var(--line); }
.xday{ background:var(--panel); border:1px solid var(--line); border-top:0; border-radius:0 0 4px 4px; padding:8px 12px; font-weight:600; font-size:13px; cursor:pointer; color:var(--ink2); }
.xday.on{ background:var(--ink); color:var(--panel); border-color:var(--ink); }
.xday.now:not(.on){ color:var(--blue-ink); box-shadow:inset 0 -3px 0 var(--blue); }
.xday.dover{ background:var(--blue); color:#000; }
.xtabhint{ align-self:center; margin-left:8px; }

/* Unterlagen, Abschluss, Route */
.dorig ul.log a{ font-weight:600; }
.ddocs{ display:grid; grid-template-columns:1fr 1fr; gap:0 22px; }
@media (max-width:760px){ .ddocs{ grid-template-columns:1fr; } }
.dwarn li.info{ color:var(--ink); border-left-color:var(--blue); }
.dover2{ font-size:13px; margin-bottom:4px; }
.rtab td{ font-size:13px; } .rpause td{ color:var(--ink2); font-style:italic; } .rlate{ color:var(--red-ink); font-weight:600; }
.fixb{ background:var(--ink); color:var(--panel); font-size:11px; font-weight:700; padding:0 5px; border-radius:2px; }
.orangebtn{ background:var(--orange); color:#000; }

/* Planungskarte */
.dmapwrap{ display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:14px; margin-bottom:16px; }
.dmap.big{ height:min(620px, 70vh); margin:0; }
.dmapside{ background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:12px 14px; overflow:auto; max-height:min(620px, 70vh); display:flex; flex-direction:column; gap:6px; }
.dmapside h2{ margin:0 0 4px; font-size:15px; }
.dmapdrv{ display:flex; gap:10px; align-items:flex-start; text-align:left; background:none; border:1px solid transparent; border-radius:3px; padding:6px; cursor:pointer; color:var(--ink); font:inherit; }
.dmapdrv:hover:not(:disabled){ border-color:var(--line); background:var(--soft); }
.dmapdrv:disabled{ opacity:.55; cursor:default; }
.dmapdrv i{ width:14px; height:14px; border-radius:3px; background:var(--c); flex:none; margin-top:3px; }
.dmapdrv span{ display:flex; flex-direction:column; line-height:1.3; }
.dmapdrv small{ font-size:12px; color:var(--ink2); } .dmapdrv small.blue{ color:var(--blue-ink); } .dmapdrv em{ font-style:normal; font-weight:700; }
.dmapnote{ font-size:12px; margin-top:auto !important; padding-top:10px; }
.dhof{ display:inline-block; transform:translate(-50%,-50%); background:#000; color:#fff; font-family:var(--cond); font-weight:700; font-size:13px; padding:2px 7px; border-radius:3px; border:2px solid #fff; box-shadow:0 1px 4px rgba(0,0,0,.35); }
.dstop2{ display:inline-flex; align-items:center; justify-content:center; transform:translate(-50%,-50%); width:20px; height:20px; border-radius:50%; background:#fff; color:#000; border:3px solid var(--c); font-size:11px; font-weight:700; box-shadow:0 1px 3px rgba(0,0,0,.3); }
.dstop2.done{ background:var(--c); color:#fff; }
.dtruck{ display:inline-flex; flex-direction:column; align-items:center; transform:translate(-50%,-100%); background:var(--c); color:#fff; font-size:11px; line-height:1.15; padding:3px 7px 4px; border-radius:4px; border:2px solid #fff; box-shadow:0 2px 6px rgba(0,0,0,.35); position:relative; white-space:nowrap; }
.dtruck b{ font-family:var(--cond); font-size:13px; letter-spacing:.02em; }
.dtruck::after{ content:""; position:absolute; left:50%; bottom:-8px; transform:translateX(-50%); border:6px solid transparent; border-top-color:var(--c); }
.dtruck.prob{ outline:3px solid var(--red); outline-offset:1px; }
.dpoolmk{ display:inline-block; transform:translate(-50%,-50%); background:#fff; color:var(--c); border:2px dashed var(--c); font-family:var(--cond); font-weight:700; font-size:13px; padding:1px 6px; border-radius:3px; box-shadow:0 1px 3px rgba(0,0,0,.25); }
.leaflet-popup-content .btn{ color:#000; }
@media (max-width:1100px){ .dmapwrap{ grid-template-columns:1fr; } .dmapside{ max-height:none; } }

/* ---------- Patch 2.6: Verfügbarkeit, Kombi-Klammer, Scanner ---------- */
.avail{ background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:12px 14px; margin-bottom:14px; }
.avail.haswarn{ border-left:5px solid var(--orange); }
.avhead{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; }
.avhead h2{ margin:0; font-size:16px; }
.avhead p{ margin:0; color:var(--ink2); font-size:14px; flex:1; min-width:220px; }
.avgrid{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px; margin-top:10px; }
.avcol{ border-top:3px solid var(--line); padding-top:6px; min-width:0; }
.avcol h3{ margin:0 0 6px; font-size:13px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink2); }
.avcol.ok{ border-top-color:var(--green); } .avcol.cap{ border-top-color:var(--blue); } .avcol.bad{ border-top-color:var(--red); } .avcol.warn{ border-top-color:var(--orange); }
.avcol ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; font-size:13.5px; line-height:1.35; }
.avcol li{ display:block; }
.avcol .plate.sm{ font-size:11px; padding:0 4px; margin:0 2px 2px 0; }
.avcol.warn li{ color:var(--ink); }
.avcol p{ margin:0; font-size:13px; }
@media (max-width:1100px){ .avgrid{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .avgrid{ grid-template-columns:1fr; } }
.plate.bad{ background:var(--panel) !important; color:var(--red-ink) !important; outline:2px solid var(--red); text-decoration:line-through; }
.plate.warnp{ outline:2px solid var(--orange); }
.xtag.okm{ color:var(--done); border-color:currentColor; }
/* Kombi: farbige Klammer über alle Zeilen, die gemeinsam geladen werden */
tr.xcombo td:not(.xwho){ background:color-mix(in srgb, var(--cc) 6%, var(--panel)); }
tr.xcombo td.xkst{ box-shadow:inset 5px 0 0 var(--cc); }
.xtag.cmb{ background:var(--cc, var(--ink)) !important; border-color:var(--cc, var(--ink)) !important; color:#fff !important; }
.tchip .tags .cmb{ background:var(--cc, var(--ink)); border-color:var(--cc, var(--ink)); color:#fff; }
.tchip.combo{ box-shadow:inset 0 0 0 2px var(--cc, var(--ink)); }
tr.xhint td{ background:color-mix(in srgb, var(--orange) 8%, var(--panel)); font-size:13.5px; border-left:4px solid var(--orange); }
tr.xhint .btn{ margin-left:8px; }
/* Fahrer-App */
.fbanner.blue{ color:var(--blue-ink); }
.flag.blue{ color:var(--blue-ink) !important; font-weight:600; font-size:13px; }
.scanov{ position:fixed; inset:0; z-index:1000; background:var(--bg); display:flex; flex-direction:column; overflow:auto; }
.schead{ position:sticky; top:0; display:flex; justify-content:space-between; align-items:center; padding:12px 14px; padding-top:calc(12px + env(safe-area-inset-top,0px)); background:var(--panel); border-bottom:1px solid var(--line); }
.scmain{ padding:14px; display:flex; flex-direction:column; gap:14px; max-width:640px; width:100%; margin:0 auto; padding-bottom:calc(20px + env(safe-area-inset-bottom,0px)); }
.scpages{ display:grid; grid-template-columns:repeat(auto-fill, minmax(120px, 1fr)); gap:10px; }
.scpages figure{ margin:0; background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:6px; }
.scpages img{ width:100%; display:block; border:1px solid var(--line); }
.scpages figcaption{ font-size:12px; margin-top:4px; display:flex; justify-content:space-between; }
.scanbtn{ cursor:pointer; }
.sccrop{ position:relative; margin:0 auto; touch-action:none; max-width:100%; }
.sccrop canvas, .sccrop svg{ position:absolute; inset:0; display:block; }
.schandle{ position:absolute; width:34px; height:34px; margin:-17px 0 0 -17px; border-radius:50%; background:rgba(0,152,216,.25); border:3px solid #0098D8; box-shadow:0 0 0 2px #fff; touch-action:none; cursor:grab; }

/* ---------- Patch 2.7: Google Maps live ---------- */
.modal .panel.xwide{ max-width:1200px; width:min(1200px, 96vw); }
.gmwrap{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:12px; margin-top:12px; }
.gmmap{ height:min(600px, 68vh); border:1px solid var(--line); border-radius:4px; background:var(--soft); }
.gmside{ border:1px solid var(--line); border-radius:4px; padding:12px; overflow:auto; max-height:min(600px, 68vh); display:flex; flex-direction:column; gap:12px; font-size:13.5px; background:var(--panel); }
.gmnow{ border-left:4px solid var(--blue); padding-left:10px; }
.gmnext{ border-left:4px solid var(--orange); padding-left:10px; }
.gmlist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.gmlist li{ display:flex; gap:10px; align-items:flex-start; }
.gmlist li .dstop2{ transform:none; flex:none; }
.gmlist li.done{ opacity:.6; }
.gmlist li.foc{ background:var(--soft); outline:2px solid var(--blue); outline-offset:3px; border-radius:2px; }
.gmlist small{ color:var(--ink2); }
.gmnote{ font-size:12px; margin:auto 0 0 !important; }
.gmov{ position:absolute; }
.dstop2.foc{ width:26px; height:26px; font-size:13px; box-shadow:0 0 0 4px rgba(0,152,216,.35); }
@media (max-width:900px){ .gmwrap{ grid-template-columns:1fr; } .gmside{ max-height:none; } }
