/* Eigenflotte: Dispo-Board, Werkstatt, Prüfprotokoll (Patch 4.4) */
:root{ --fl-line:var(--line,#d3dae0); --fl-soft:var(--soft,#f6f8f9); --fl-ink:var(--ink,#000); --fl-mute:var(--ink2,#4b5661); --fl-blue:var(--blue,#0098d8); --fl-card:var(--panel,#fff);
  --fl-anf:color-mix(in srgb, var(--fl-mute) 12%, var(--fl-card)); --fl-anf-b:color-mix(in srgb, var(--fl-mute) 55%, var(--fl-card));
  --fl-ang:color-mix(in srgb, var(--fl-blue) 20%, var(--fl-card)); --fl-ang-b:color-mix(in srgb, var(--fl-blue) 55%, var(--fl-card));
  --fl-auf:var(--blue,#0098d8); --fl-akt:var(--green,#1c8a4c); --fl-bee:#e8a33a; --fl-abg:#8a94a0;
  --fl-ws:var(--red,#c62f28); --fl-ws2:color-mix(in srgb, var(--red,#c62f28) 72%, #fff); --fl-int:#14837f; --fl-res:#c8b7ec; --fl-alt:#7656c0; --fl-gfk:var(--orange,#d26400);
  --fl-nw:320px; --fl-r:4px; }
.fl-h1{ margin:0 0 2px; }
[data-ico="board"]::before,[data-ico="board"]::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='17' rx='1.5'/%3E%3Cpath d='M3 9h18M7 13h7M10 17h7'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='17' rx='1.5'/%3E%3Cpath d='M3 9h18M7 13h7M10 17h7'/%3E%3C/svg%3E");}
.fl-tabs{ display:flex; gap:2px; align-items:flex-end; border-bottom:1px solid var(--fl-line); margin:-4px 0 14px; }
.fl-tabs a{ white-space:nowrap; padding:8px 14px 7px; text-decoration:none; color:var(--fl-mute); font-weight:600; border-bottom:3px solid transparent; margin-bottom:-1px; }
.fl-tabs a .cnt{ margin-left:6px; }
.fl-tabs a.on{ color:var(--fl-ink); border-color:var(--fl-blue); }
.fl-tabs a:focus-visible, .fl-tabs button:focus-visible{ outline:2px solid var(--fl-blue); outline-offset:2px; }
.fl-navtoggle{ margin-left:auto; margin-bottom:6px; border:1px solid var(--fl-line); background:var(--fl-card); color:var(--fl-mute); border-radius:var(--fl-r); padding:5px 10px; font:inherit; font-size:12px; cursor:pointer; }
body.fl-navoff #aside, body.fl-navoff .sidebar{ display:none !important; }
body.fl-navoff main{ margin-left:0 !important; max-width:none !important; min-width:0; }
.shell > main{ min-width:0; }
main:has(.fl-board){ max-width:none; min-width:0; }

#fb_neu[hidden], #fb_add[hidden], #fb_sperre[hidden], #fb_att[hidden], #fb_collectbtn[hidden], .fl-board [hidden]{ display:none !important; }
body.fl-navoff .shell, body.fl-navoff .layout, body.fl-navoff .app{ grid-template-columns:minmax(0,1fr) !important; }

/* Werkzeugleiste */
.fl-tool{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:12px 0 10px; }
.fl-tool input[type=search]{ min-width:230px; }
.fl-tool .grow{ flex:1; }
.fl-nav{ display:inline-flex; gap:4px; align-items:center; }
.fl-nav input[type=date]{ width:140px; }
.fl-seg{ display:inline-flex; border:1px solid var(--fl-line); border-radius:var(--fl-r); overflow:hidden; background:var(--fl-card); }
.fl-seg button{ border:0; background:transparent; padding:6px 11px; font:inherit; font-size:13px; cursor:pointer; color:var(--fl-ink); }
.fl-seg button + button{ border-left:1px solid var(--fl-line); }
.fl-seg button.on{ background:var(--fl-ink); color:var(--fl-card); }
.fl-chips{ display:inline-flex; flex-wrap:wrap; gap:4px; }
.fl-chips button{ border:1px solid var(--fl-line); background:var(--fl-card); border-radius:999px; padding:4px 11px; font:inherit; font-size:12px; cursor:pointer; color:var(--fl-ink); }
.fl-chips button.on{ background:var(--fl-ink); border-color:var(--fl-ink); color:var(--fl-card); }

/* Hinweisleisten */
.fl-sugg, .fl-collect{ border-radius:var(--fl-r); padding:10px 12px; margin:10px 0 0; }
.fl-sugg{ background:color-mix(in srgb, var(--fl-gfk) 9%, var(--fl-card)); border-left:4px solid var(--fl-gfk); }
.fl-sg{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 12px; align-items:center; padding:7px 0 0; margin-top:7px; border-top:1px solid color-mix(in srgb, var(--fl-gfk) 25%, var(--fl-card)); }
.fl-collect{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; align-items:center; background:color-mix(in srgb, var(--fl-blue) 10%, var(--fl-card)); border-left:4px solid var(--fl-blue); }

/* Board */
.fl-board{ position:relative; width:100%; max-width:100%; overflow:auto; max-height:calc(100vh - 250px); min-height:320px; border:1px solid var(--fl-line); border-radius:var(--fl-r); background:var(--fl-card); overscroll-behavior:contain; }
.fl-grid{ position:relative; width:calc(var(--fl-nw) + var(--tw)); }
.fl-cal{ display:flex; position:sticky; top:0; z-index:6; background:var(--fl-card); border-bottom:1px solid var(--fl-line); }
.fl-name{ flex:0 0 var(--fl-nw); width:var(--fl-nw); position:sticky; left:0; z-index:4; background:var(--fl-card); border-right:1px solid var(--fl-line);
  display:flex; align-items:center; gap:6px; padding:0 8px; overflow:hidden; white-space:nowrap; box-sizing:border-box; }
.fl-corner{ z-index:7; flex-direction:column; align-items:flex-start; justify-content:center; gap:2px; font-size:11px; line-height:1.25; white-space:normal; }
.fl-corner .linkbtn{ font-size:11px; padding:0; }
.fl-days{ width:var(--tw); }
.fl-months{ position:relative; height:19px; }
.fl-months span{ position:absolute; top:3px; padding-left:5px; border-left:1px solid var(--fl-line); font-size:11px; font-weight:600; color:var(--fl-mute); white-space:nowrap; }
.fl-dayrow{ display:flex; position:relative; cursor:col-resize; user-select:none; touch-action:pan-y; }
.fl-d{ flex:0 0 auto; text-align:center; font-size:12px; line-height:1.15; padding:2px 0 4px; border-left:1px solid var(--fl-soft); font-variant-numeric:tabular-nums; }
.fl-d small{ display:block; font-size:10px; color:var(--fl-mute); }
.fl-d.we{ background:color-mix(in srgb, var(--fl-mute) 7%, var(--fl-card)); }
.fl-d.today{ background:var(--fl-blue); color:#000; font-weight:700; }
.fl-d.today small{ color:#00000099; }
.fl-body{ position:relative; }
.fl-bg{ position:absolute; left:var(--fl-nw); top:0; bottom:0; width:var(--tw); pointer-events:none; z-index:0; }
.fl-we{ position:absolute; top:0; bottom:0; background:rgba(110,122,138,.075); }
.fl-today{ position:absolute; top:0; bottom:0; width:2px; margin-left:-1px; background:var(--fl-blue); opacity:.55; }
.fl-rng{ position:absolute; top:0; bottom:0; background:rgba(43,138,85,.09); box-shadow:inset 2px 0 0 var(--fl-akt), inset -2px 0 0 var(--fl-akt); }
.fl-row{ display:flex; height:30px; border-bottom:1px solid var(--fl-soft); position:relative; }
.fl-head{ height:28px; background:var(--fl-soft); }
.fl-head .fl-name{ background:var(--fl-soft); font-size:13px; gap:8px; }
.fl-head .fl-name .muted{ font-size:12px; }
.fl-coll{ border:0; background:none; font-size:12px; width:16px; padding:0; cursor:pointer; color:var(--fl-mute); }
.fl-track{ position:relative; width:var(--tw); z-index:1; cursor:crosshair; touch-action:pan-x pan-y;
  background-image:repeating-linear-gradient(90deg, transparent 0 calc(var(--dw) - 1px), var(--fl-soft) calc(var(--dw) - 1px) var(--dw)); }
.fl-head .fl-track{ background:none; cursor:default; }
.fl-row.kid .fl-name{ padding-left:20px; color:var(--fl-mute); }
.fl-kidline{ position:absolute; left:11px; top:-1px; bottom:50%; width:6px; border-left:1px solid #b9c1ca; border-bottom:1px solid #b9c1ca; }
.fl-no{ min-width:40px; font-variant-numeric:tabular-nums; font-size:13px; }
.fl-model{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; font-size:13px; }
.fl-row.kid .fl-model{ font-size:12px; }
.fl-cpl, .fl-tu, .fl-ws{ font-style:normal; font-size:10px; line-height:14px; padding:0 4px; border-radius:3px; border:1px solid var(--fl-line); color:var(--fl-mute); flex:0 0 auto; }
.fl-tu{ width:7px; height:7px; padding:0; border:0; border-radius:50%; background:#3b82d6; font-size:0; }
.fl-ws{ background:var(--fl-ws); border-color:var(--fl-ws); color:#fff; }
.fl-row.busy{ opacity:.35; }
.fl-row.free .fl-name{ box-shadow:inset 4px 0 0 var(--fl-akt); }
.fl-row.drop, .fl-row.drop .fl-name{ background:color-mix(in srgb, var(--fl-gfk) 16%, var(--fl-card)); }
.fl-empty{ padding:20px; }

/* Balken */
.fl-bar{ position:absolute; top:4px; height:22px; box-sizing:border-box; border-radius:4px; padding:0 6px; display:flex; align-items:center; gap:4px; z-index:2;
  font-size:12px; line-height:22px; white-space:nowrap; overflow:hidden; cursor:pointer; user-select:none; touch-action:manipulation; }
.fl-bar span{ overflow:hidden; text-overflow:ellipsis; min-width:0; }
.fl-bar:hover{ filter:brightness(.96); }
.fl-bar:focus-visible{ outline:2px solid var(--fl-ink); outline-offset:1px; }
.fl-bar.cut-l{ border-top-left-radius:0; border-bottom-left-radius:0; }
.fl-bar.cut-r{ border-top-right-radius:0; border-bottom-right-radius:0; }
.fl-bar.open{ -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent); mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent); }
.s-anfrage{ background:var(--fl-anf); color:var(--fl-ink); border:1px dashed var(--fl-anf-b); }
.s-angebot{ background:var(--fl-ang); color:var(--fl-ink); border:1px solid var(--fl-ang-b); }
.s-auftrag{ background:var(--fl-auf); color:#000; }
.s-aktiv{ background:var(--fl-akt); color:#fff; }
.s-beendet{ background:var(--fl-bee); color:#3c2900; }
.s-abgerechnet{ background:var(--fl-abg); color:#fff; }
.k-werkstatt, .k-defekt{ background:repeating-linear-gradient(135deg, var(--fl-ws) 0 6px, var(--fl-ws2) 6px 12px); color:#fff; }
.k-intern{ background:var(--fl-int); color:#fff; }
.k-reserviert{ background:var(--fl-res); color:#2f1f59; }
.fl-row.busy .fl-bar{ filter:none; }
.k-altvertrag{ background:var(--fl-alt); color:#fff; }
.k-sonstiges{ background:#5b6470; color:#fff; }
.fl-bar.ended{ opacity:.5; }
.fl-bar.gfk{ box-shadow:inset 0 0 0 2px var(--fl-gfk); }
.fl-bar.conflict{ box-shadow:inset 0 0 0 2px #b00020, 0 0 0 1px #fff; }
.fl-gfk{ font-style:normal; font-size:9px; font-weight:700; letter-spacing:.02em; line-height:13px; padding:0 3px; border-radius:3px; background:var(--fl-gfk); color:#fff; flex:0 0 auto; }
.fl-ic{ width:11px; height:11px; flex:0 0 auto; }
.fl-sel{ position:absolute; top:3px; height:24px; box-sizing:border-box; z-index:3; pointer-events:none; border:2px solid var(--fl-blue); border-radius:4px;
  background:rgba(29,95,191,.16); color:var(--fl-blue); font-style:normal; font-size:11px; font-weight:600; line-height:20px; padding:0 4px; white-space:nowrap; }
.fl-dayrow .fl-sel{ top:0; height:100%; }
.fl-ghost{ position:fixed; z-index:9999; pointer-events:none; opacity:.92; box-shadow:0 8px 20px rgba(20,30,45,.28); }
body.fl-dragging, body.fl-dragging *{ cursor:grabbing !important; user-select:none; }
.fl-legend{ display:flex; flex-wrap:wrap; gap:6px 14px; margin:10px 0 4px; font-size:12px; color:var(--fl-mute); align-items:center; }
.fl-sw{ display:inline-block; width:20px; height:11px; border-radius:3px; vertical-align:-1px; margin-right:5px; box-sizing:border-box; }
.fl-sw.gfk{ box-shadow:inset 0 0 0 2px var(--fl-gfk); }

/* Dialoge */
.fl-mode{ margin:12px 0 4px; }
.fl-h3{ font-size:15px; margin:14px 0 6px; }
.fl-attl{ display:grid; gap:2px; }
.fl-att{ display:flex; gap:8px; align-items:flex-start; padding:4px 0; cursor:pointer; }
.fl-att input{ margin-top:3px; }
.fl-att.busy{ opacity:.5; cursor:default; }
.fl-attg{ margin:6px 0 4px; }
.fl-attg > .muted{ display:block; font-size:12px; margin-bottom:2px; }
details summary{ cursor:pointer; padding:4px 0; }
.fl-chk{ margin:8px 0; padding-left:18px; }
.fl-chk li{ margin:3px 0; }
.fl-chk.bad li{ color:#b42318; }
.fl-chk.warn2 li{ color:#8f5300; }
.fl-chk.info li{ color:#1d4f9a; }
:root[data-theme="dark"] .fl-chk.bad li{ color:#FF8F85; } :root[data-theme="dark"] .fl-chk.warn2 li{ color:#F2B35E; } :root[data-theme="dark"] .fl-chk.info li{ color:#8FB9F5; }
.fl-cands{ display:grid; gap:6px; max-height:52vh; overflow:auto; }
.fl-cand{ display:flex; flex-wrap:wrap; gap:4px 10px; align-items:center; text-align:left; border:1px solid var(--fl-line); background:var(--fl-card); border-radius:var(--fl-r); padding:9px 11px; font:inherit; cursor:pointer; color:var(--fl-ink); }
.fl-cand:hover, .fl-cand:focus-visible{ border-color:var(--fl-blue); outline:none; }
.fl-ok-box{ background:color-mix(in srgb, var(--fl-akt) 10%, var(--fl-card)); border-left:4px solid var(--fl-akt); padding:8px 10px; border-radius:6px; margin:8px 0; }

/* Werkstatt */
.fl-tasks{ display:grid; gap:8px; }
.fl-task{ display:grid; grid-template-columns:auto 1fr auto; grid-template-areas:"tag name due" "tag meta due"; gap:2px 10px; align-items:center; text-align:left; width:100%;
  min-height:58px; padding:10px 12px; border:1px solid var(--fl-line); border-radius:var(--fl-r); background:var(--fl-card); color:var(--fl-ink); font:inherit; cursor:pointer; }
.fl-task > .tag:first-child{ grid-area:tag; } .fl-task > b{ grid-area:name; font-size:15px; } .fl-task > .muted{ grid-area:meta; font-size:13px; } .fl-task > .tag:last-child{ grid-area:due; }
.fl-task:hover, .fl-task:focus-visible{ border-color:var(--fl-blue); outline:none; }

/* Prüfprotokoll (Tablet) */
.fl-li{ display:flex; gap:10px; align-items:flex-start; padding:7px 0; border-bottom:1px solid var(--fl-soft); }
.fl-li input{ width:22px; height:22px; flex:0 0 auto; }
.fl-li span{ display:flex; flex-direction:column; }
.fl-ck{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px; padding:9px 0; border-bottom:1px solid var(--fl-soft); }
.fl-ck > span{ flex:1 1 220px; }
.fl-ck input:not(.fl-ckn){ width:110px; }
.fl-ckn{ flex:1 0 100%; }
.fl-ok, .fl-fuel{ display:inline-flex; gap:6px; }
.fl-ok button, .fl-fuel button{ min-width:64px; min-height:42px; border:1px solid var(--fl-line); background:var(--fl-card); border-radius:var(--fl-r); font:inherit; font-weight:600; cursor:pointer; color:var(--fl-ink); }
.fl-fuel button{ min-width:52px; }
.fl-ok button.on.ok{ background:var(--fl-akt); border-color:var(--fl-akt); color:#fff; }
.fl-ok button.on.bad{ background:var(--fl-ws); border-color:var(--fl-ws); color:#fff; }
.fl-fuel button.on{ background:var(--fl-ink); border-color:var(--fl-ink); color:var(--fl-card); }
.fl-ok button:disabled, .fl-fuel button:disabled{ cursor:default; }
.fl-photos{ display:grid; grid-template-columns:repeat(auto-fill, minmax(112px, 1fr)); gap:8px; margin-top:10px; }
.fl-photos.big{ grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); }
.fl-photos figure{ margin:0; position:relative; }
.fl-photos img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:7px; background:var(--fl-soft); }
.fl-photos figcaption{ font-size:11px; margin-top:2px; }
.fl-px{ position:absolute; top:4px; right:4px; width:26px; height:26px; border-radius:50%; border:0; background:rgba(20,28,40,.7); color:#fff; font-size:16px; line-height:24px; cursor:pointer; }
.fl-finish{ position:sticky; bottom:8px; z-index:3; box-shadow:0 -4px 18px rgba(20,30,45,.08); }
.fl-finish .btn{ min-height:48px; font-size:16px; }

/* Geräte */
.fl-atab td{ vertical-align:top; font-size:14px; }

/* Panel im Vorgang */
.fl-rp{ border-top:1px solid var(--fl-line); padding:10px 0; margin-top:10px; }
.fl-rpatt{ background:var(--fl-soft); border-radius:var(--fl-r); padding:4px 10px 8px; margin-top:8px; }
.fl-attrow{ display:flex; justify-content:space-between; align-items:center; gap:8px; padding:4px 0; }
.fl-rpins{ display:grid; gap:6px; }
.fl-rpi{ text-align:left; border:1px solid var(--fl-line); background:var(--fl-card); color:var(--fl-ink); border-radius:var(--fl-r); padding:8px 10px; font:inherit; cursor:pointer; }
.fl-rpi:hover, .fl-rpi:focus-visible{ border-color:var(--fl-blue); outline:none; }
a.tag{ text-decoration:none; }

@media (max-width:760px){
  :root{ --fl-nw:150px; }
  .fl-no{ min-width:0; }
  .fl-cpl, .fl-tu{ display:none; }
  .fl-tool input[type=search]{ min-width:0; flex:1 1 100%; }
  .fl-board{ max-height:calc(100vh - 210px); }
  .fl-navtoggle{ display:none; }
  .fl-tabs a{ padding:8px 10px 7px; }
  .fl-h1 + .sub{ display:none; }
}
@media (prefers-reduced-motion:reduce){ .fl-ghost{ box-shadow:none; } }
@media print{ .fl-tabs, .fl-tool, .fl-legend{ display:none; } .fl-board{ max-height:none; overflow:visible; } }
/* Aktiver Menüpunkt im Dunkelmodus lesbar (vorher heller Hintergrund mit heller Schrift, betrifft alle Menüpunkte) */
:root[data-theme="dark"] nav a.on{ background:var(--soft); }
:root[data-theme="dark"] nav a.on{ background:var(--soft); }

/* Patch 4.7: Reiter Eigen-/Fremdgeräte, Fremdgeräte und zugemietete Positionen */
.fl-own{ display:flex; gap:0; margin:0 0 12px; border:1px solid var(--fl-line); border-radius:var(--fl-r); overflow:hidden; width:max-content; max-width:100%; background:var(--fl-card); }
.fl-own button{ border:0; background:transparent; padding:8px 16px; font:inherit; font-weight:600; font-size:14px; cursor:pointer; color:var(--fl-mute); display:inline-flex; gap:8px; align-items:center; }
.fl-own button + button{ border-left:1px solid var(--fl-line); }
.fl-own button.on{ background:var(--fl-ink); color:var(--fl-card); }
.fl-own button:focus-visible{ outline:2px solid var(--fl-blue); outline-offset:-2px; }
.fl-owncnt{ font-size:12px; font-weight:600; padding:0 6px; border-radius:999px; background:color-mix(in srgb, currentColor 14%, transparent); }
.fl-sup{ font-style:normal; font-size:10px; line-height:14px; padding:0 4px; border-radius:3px; flex:0 1 auto; max-width:92px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  color:var(--fl-gfk); border:1px solid color-mix(in srgb, var(--fl-gfk) 55%, var(--fl-card)); }
.fl-xrow .fl-name{ background:color-mix(in srgb, var(--fl-gfk) 5%, var(--fl-card)); }
.fl-xrow .fl-track{ cursor:default; }
.fl-bar.fx{ background-image:repeating-linear-gradient(135deg, transparent 0 6px, color-mix(in srgb, #fff 26%, transparent) 6px 9px); outline:1px dashed color-mix(in srgb, var(--fl-gfk) 70%, transparent); outline-offset:-1px; }
.fl-sw.fx{ background-color:var(--fl-auf); background-image:repeating-linear-gradient(135deg, transparent 0 3px, rgba(255,255,255,.45) 3px 5px); outline:1px dashed var(--fl-gfk); outline-offset:-1px; }
@media (max-width:760px){ .fl-own{ width:100%; } .fl-own button{ flex:1; justify-content:center; padding:8px 6px; } .fl-sup{ display:none; } }

/* Patch 4.40: Gruppen nach Kategoriebaum (Dispo-Board, Geräte, Katalog, Filter, Stammdaten › Gruppen) */
.fl-row .fl-name{ padding-left:calc(8px + var(--ind, 0px)); }
.fl-row.kid .fl-name{ padding-left:calc(20px + var(--ind, 0px)); }
.fl-row.kid .fl-kidline{ left:calc(11px + var(--ind, 0px)); }
.fl-head .fl-name{ padding-left:calc(4px + var(--ind, 0px)); }
.fl-head.lv0{ height:32px; background:color-mix(in srgb, var(--fl-blue) 17%, var(--fl-card)); border-top:1px solid color-mix(in srgb, var(--fl-blue) 40%, var(--fl-card)); border-bottom-color:color-mix(in srgb, var(--fl-blue) 40%, var(--fl-card)); }
.fl-head.lv0 .fl-name{ background:color-mix(in srgb, var(--fl-blue) 17%, var(--fl-card)); font-size:14px; }
.fl-head.lv0 .fl-name .muted{ color:var(--fl-ink); opacity:.7; }
.fl-head.lv1{ height:28px; }
.fl-head.lv2, .fl-head.lv3{ height:26px; background:color-mix(in srgb, var(--fl-soft) 55%, var(--fl-card)); }
.fl-head.lv2 .fl-name, .fl-head.lv3 .fl-name{ background:color-mix(in srgb, var(--fl-soft) 55%, var(--fl-card)); font-size:12.5px; }
.fl-head.lv2 b, .fl-head.lv3 b{ font-weight:600; }
.fl-head .fl-coll{ flex:0 0 18px; width:18px; height:22px; border-radius:3px; }
.fl-head .fl-coll:hover{ background:color-mix(in srgb, var(--fl-ink) 8%, transparent); color:var(--fl-ink); }

.ct-pick{ position:relative; display:inline-block; }
.ct-pickbtn{ display:inline-flex; align-items:center; gap:8px; max-width:260px; border:1px solid var(--fl-line); background:var(--fl-card); color:var(--fl-ink); border-radius:var(--fl-r); padding:6px 10px; font:inherit; font-size:14px; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ct-pickbtn svg{ width:10px; height:6px; flex:0 0 auto; color:var(--fl-mute); }
.ct-pickbtn.on{ border-color:var(--fl-blue); background:color-mix(in srgb, var(--fl-blue) 12%, var(--fl-card)); font-weight:600; }
.ct-panel{ position:absolute; top:calc(100% + 4px); left:0; z-index:40; width:min(340px, 92vw); background:var(--fl-card); color:var(--fl-ink); border:1px solid var(--fl-line); border-radius:6px; box-shadow:0 10px 28px rgba(0,0,0,.2); }
.ct-ptop{ display:flex; align-items:center; gap:14px; padding:8px 12px; border-bottom:1px solid var(--fl-line); }
.ct-ptop .grow{ flex:1; }
.ct-plist{ max-height:min(60vh, 520px); overflow:auto; padding:4px 0; overscroll-behavior:contain; }
.ct-pr{ display:flex; align-items:center; gap:2px; padding:2px 12px 2px calc(6px + var(--d) * 18px); }
.ct-pr:hover{ background:var(--fl-soft); }
.ct-pr label{ flex:1; display:flex; align-items:center; gap:8px; padding:4px 0; cursor:pointer; font-size:14px; min-width:0; }
.ct-pr label span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ct-pr.g label span{ font-weight:700; }
.ct-pr small{ color:var(--fl-mute); font-variant-numeric:tabular-nums; font-size:12px; }
.ct-tw{ flex:0 0 20px; width:20px; height:22px; border:0; background:none; padding:0; color:var(--fl-mute); cursor:pointer; font-size:12px; border-radius:3px; }
button.ct-tw:hover{ background:color-mix(in srgb, var(--fl-ink) 8%, transparent); }

.ct-sec{ margin:26px 0 10px; font-size:20px; }
.ct-sec:first-child{ margin-top:4px; }
.ct-crumb{ font-size:12.5px; color:var(--fl-mute); margin-bottom:2px; }
.ct-chiph{ font-size:13px; font-weight:600; color:var(--fl-mute); margin:14px 0 6px; }
.ct-chiph:first-child{ margin-top:0; }

table tr.ct-grow td{ padding:6px 8px 6px calc(6px + var(--ind, 0px)); background:var(--fl-soft); border-bottom:1px solid var(--fl-line); }
table tr.ct-grow.lv0 td{ background:color-mix(in srgb, var(--fl-blue) 17%, var(--fl-card)); font-size:15px; }
table tr.ct-grow.lv2 td, table tr.ct-grow.lv3 td{ background:color-mix(in srgb, var(--fl-soft) 55%, var(--fl-card)); font-size:13px; }
table tr.ct-grow .fl-coll{ width:20px; margin-right:4px; }

.ct-ed{ margin-top:14px; border-top:1px solid var(--fl-line); }
.ct-er{ display:flex; align-items:center; gap:10px; padding:7px 8px 7px calc(8px + var(--d) * 24px); border-bottom:1px solid var(--fl-line); background:var(--fl-card); }
.ct-er.g{ background:color-mix(in srgb, var(--fl-blue) 9%, var(--fl-card)); }
.ct-er.vl{ background:color-mix(in srgb, var(--orange, #d26400) 8%, var(--fl-card)); }
.ct-grip{ cursor:grab; color:var(--fl-mute); user-select:none; font-size:16px; line-height:1; }
.ct-en{ flex:1; min-width:0; }
.ct-ec{ font-size:13px; white-space:nowrap; }
.ct-ea{ display:flex; gap:4px; }
.ct-er.drag{ opacity:.45; }
.ct-er.dz-in{ outline:2px solid var(--fl-blue); outline-offset:-2px; background:color-mix(in srgb, var(--fl-blue) 14%, var(--fl-card)); }
.ct-er.dz-vor{ box-shadow:inset 0 3px 0 var(--fl-blue); }
.ct-er.dz-nach{ box-shadow:inset 0 -3px 0 var(--fl-blue); }
@media (max-width:760px){
  .ct-panel{ position:fixed; left:8px; right:8px; top:auto; bottom:8px; width:auto; }
  .ct-plist{ max-height:65vh; }
  .ct-pr label{ padding:8px 0; }
  .ct-er{ flex-wrap:wrap; padding-left:calc(8px + var(--d) * 14px); }
  .ct-ec{ display:none; }
  .ct-grip{ display:none; }
  .fl-head .fl-name{ padding-left:calc(4px + var(--ind, 0px) / 2); }
  .fl-row .fl-name{ padding-left:calc(8px + var(--ind, 0px) / 2); }
}

/* ---------- Patch 4.51: Protokoll wie KlickCheck ---------- */
.fl-grp{ margin-top:6px; } .fl-grp h3{ margin:14px 0 4px; font-size:13px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink2); border-bottom:2px solid var(--blue); padding-bottom:4px; }
.fl-ok button.on.nv{ background:var(--ink2); border-color:var(--ink2); color:#fff; }
.fl-ck.carried{ background:color-mix(in srgb, var(--red) 8%, transparent); border-radius:6px; }
.fl-carry{ display:block; color:var(--red-ink); font-weight:600; } .fl-aus{ display:block; color:var(--ink2); font-weight:500; }
.fl-ftag{ display:inline-block; font-size:11px; color:var(--ink2); font-weight:500; margin-left:4px; } .fl-ftag.pflicht{ color:var(--blue-ink); } .fl-ftag.bei_mangel{ color:var(--orange-ink); }
.fl-iph{ display:inline-flex; align-items:center; gap:6px; margin:0 6px; } .fl-cam{ display:inline-flex; align-items:center; gap:4px; min-height:42px; padding:0 12px; border:1px solid var(--line); border-radius:8px; cursor:pointer; background:var(--panel); color:var(--ink); font-weight:600; }
.fl-pcnt{ font-size:12px; color:var(--green-ink); font-weight:600; } .fl-pcnt.none{ display:none; } .fl-known{ margin-bottom:8px; }
.fl-foto{ align-items:center; }
.fl-anb{ margin:-4px 0 8px 34px; }
.fl-ck.needph .fl-cam{ border-color:var(--red); color:var(--red-ink); box-shadow:0 0 0 2px color-mix(in srgb, var(--red) 25%, transparent); }
.fl-ck.needph .fl-iph::after{ content:'Foto Pflicht'; font-size:12px; font-weight:700; color:var(--red-ink); }
