/* ==========================================================================
   CraftX — Arbeitszeiten (HR)  ·  scoped styles
   Everything scoped under .cx-arbeitszeit so the generic class names (.seg,
   .btn, .tag, .status, .src, .timebar, .ztable …) cannot clash with the rest
   of the app. Tokens are declared locally on .cx-arbeitszeit and reuse the
   CraftX palette — mirrors the cx-users / cx-staff / cx-leave convention
   (app.css only exposes a subset of the palette, so each cockpit redeclares
   the full set locally). The timeline / place colour system is shared by
   several components (HeuteBoard, PresenceRow, and — later — the day drawer),
   which is why this lives in one global, gated file rather than scoped CSS.
   ========================================================================== */
.cx-arbeitszeit{
  --ink:#1C1915; --ink-2:#2A251F; --walnut:#4A443C; --stone:#8E8679;
  --sand:#F0ECE4; --sand-2:#E8E2D4; --paper:#FAF7F2; --paper-2:#F5F1E8; --white:#fff;
  --copper:#B8601F; --copper-dark:#8A4514; --copper-light:#E6A06B; --copper-50:#FBEFE5; --copper-100:#F6DEC6;
  --blue:#1F4A82; --blue-dark:#153663; --blue-50:#EEF3FB; --blue-100:#DCE7F5;
  --patina:#3F7D5B; --patina-50:#EAF3EE; --ochre:#A97514; --ochre-50:#FAF1DE;
  --brick:#9A3B33; --brick-50:#F7E7E5; --violet:#5B4B8A; --violet-50:#EEEBF5;
  --hairline:rgba(28,25,21,.08); --hairline-soft:rgba(28,25,21,.05); --hairline-strong:rgba(28,25,21,.14);
  --sh-xs:0 1px 2px rgba(28,25,21,.06);
  --sh-sm:0 2px 6px rgba(28,25,21,.08),0 1px 2px rgba(28,25,21,.04);
  --sh-md:0 6px 14px rgba(28,25,21,.10),0 2px 4px rgba(28,25,21,.06);
  --sh-lg:0 14px 28px rgba(28,25,21,.12),0 6px 10px rgba(28,25,21,.08);
  --sh-xl:0 28px 56px rgba(28,25,21,.18),0 10px 20px rgba(28,25,21,.10);
  --sh-copper:0 8px 20px rgba(184,96,31,.28),0 2px 6px rgba(184,96,31,.16);
  --font-display:'Bricolage Grotesque',system-ui,sans-serif;
  --font-sans:'Inter',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.22,.61,.36,1);
  color:var(--ink);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;
  padding:28px 32px 40px;
}
@media (max-width:768px){.cx-arbeitszeit{padding:20px 16px 32px}}
.cx-arbeitszeit button{font-family:inherit;cursor:pointer}
.cx-arbeitszeit a{color:var(--copper-dark)} .cx-arbeitszeit a:hover{color:var(--copper)}

/* ── Page header ───────────────────────────────────────── */
.cx-arbeitszeit .pg-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px;flex-wrap:wrap}
.cx-arbeitszeit .pg-eyebrow{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--copper);display:inline-flex;align-items:center;gap:8px;margin-bottom:9px}
.cx-arbeitszeit .pg-eyebrow::before{content:'';width:16px;height:1.5px;background:var(--copper)}
.cx-arbeitszeit .pg-title{font-family:var(--font-display);font-size:29px;font-weight:700;letter-spacing:-.025em;margin:0;line-height:1.05}
.cx-arbeitszeit .pg-sub{font-size:13.5px;color:var(--walnut);margin:6px 0 0}
.cx-arbeitszeit .pg-sub b{color:var(--ink);font-weight:600}
.cx-arbeitszeit .pg-sub .ochre{color:var(--ochre)}
.cx-arbeitszeit .pg-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* ── Segmented control (Heute / Woche / Hinweise) ──────── */
.cx-arbeitszeit .seg{display:inline-flex;background:var(--sand);border-radius:9px;padding:3px;gap:2px}
.cx-arbeitszeit .seg button{background:transparent;border:none;padding:7px 14px;font-size:12.5px;font-weight:600;border-radius:6px;color:var(--walnut);display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.cx-arbeitszeit .seg button .ic{display:grid;place-items:center}
.cx-arbeitszeit .seg button.on{background:var(--white);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.07)}
.cx-arbeitszeit .seg button:not(.on):not(:disabled):hover{color:var(--ink)}
.cx-arbeitszeit .seg button:disabled{opacity:.5;cursor:not-allowed}
.cx-arbeitszeit .seg button .cnt{font-family:var(--font-mono);font-size:10.5px;color:var(--stone)}
.cx-arbeitszeit .seg button.on .cnt{color:var(--copper-dark)}
.cx-arbeitszeit .seg button .segbadge{min-width:18px;height:16px;padding:0 5px;border-radius:8px;background:var(--ochre);color:#fff;font-family:var(--font-mono);font-size:10px;font-weight:700;display:grid;place-items:center}

/* ── Buttons ───────────────────────────────────────────── */
.cx-arbeitszeit .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 16px;border-radius:8px;font-size:13px;font-weight:600;border:1.5px solid transparent;background:transparent;color:var(--ink);white-space:nowrap}
.cx-arbeitszeit .btn .ic{display:grid;place-items:center}
.cx-arbeitszeit .btn.primary{background:var(--copper);color:#fff;box-shadow:var(--sh-copper)}
.cx-arbeitszeit .btn.primary:hover{background:var(--copper-dark)}
.cx-arbeitszeit .btn.outline{border-color:var(--hairline-strong);background:var(--white)}
.cx-arbeitszeit .btn.outline:hover{border-color:var(--ink)}
.cx-arbeitszeit .btn.ghost{background:transparent}
.cx-arbeitszeit .btn.ghost:hover{background:var(--sand)}
.cx-arbeitszeit .btn.sm{height:31px;padding:0 12px;font-size:12px}
.cx-arbeitszeit .btn:active{transform:translateY(1px)}

/* ── Slim stat bar ─────────────────────────────────────── */
.cx-arbeitszeit .statbar{display:grid;grid-template-columns:repeat(4,1fr);background:var(--white);border:1px solid var(--hairline);border-radius:12px;box-shadow:var(--sh-xs);margin-bottom:16px}
.cx-arbeitszeit .stat{padding:11px 16px;display:flex;align-items:center;gap:11px;border-right:1px solid var(--hairline-soft);min-width:0}
.cx-arbeitszeit .stat:last-child{border-right:none}
.cx-arbeitszeit .stat .sic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex-shrink:0;font-size:15px}
.cx-arbeitszeit .stat .sic.i-present{background:var(--patina-50);color:var(--patina)}
.cx-arbeitszeit .stat .sic.i-hours{background:var(--copper-50);color:var(--copper)}
.cx-arbeitszeit .stat .sic.i-hints{background:var(--ochre-50);color:var(--ochre)}
.cx-arbeitszeit .stat .sic.i-over{background:var(--blue-50);color:var(--blue)}
.cx-arbeitszeit .stat .slab{font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--stone);white-space:nowrap}
.cx-arbeitszeit .stat .sval{font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-.02em;line-height:1.1;display:flex;align-items:baseline;gap:6px;color:var(--ink)}
.cx-arbeitszeit .stat .sval small{font-family:var(--font-sans);font-size:11px;font-weight:600;color:var(--stone)}
@media(max-width:1200px){.cx-arbeitszeit .statbar{grid-template-columns:repeat(2,1fr)} .cx-arbeitszeit .statbar .stat:nth-child(2){border-right:none}}
@media(max-width:560px){.cx-arbeitszeit .statbar{grid-template-columns:1fr} .cx-arbeitszeit .stat{border-right:none;border-bottom:1px solid var(--hairline-soft)} .cx-arbeitszeit .stat:last-child{border-bottom:none}}

/* ── Bob nudge card ────────────────────────────────────── */
/* Compact one-line nudge: avatar · summary · action chip · close. */
.cx-arbeitszeit .bob{background:linear-gradient(120deg,var(--violet-50) 0%,#fff 65%);border:1px solid rgba(91,75,138,.2);border-radius:12px;padding:9px 12px 9px 14px;display:flex;gap:12px;align-items:center;overflow:hidden;margin-bottom:16px}
.cx-arbeitszeit .bob .bav{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--violet),#8370c0);color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px;flex-shrink:0;box-shadow:0 2px 6px rgba(91,75,138,.22);font-family:var(--font-display)}
.cx-arbeitszeit .bob .btext{font-size:13.5px;color:var(--ink);line-height:1.45;margin:0;flex:1;min-width:0}
.cx-arbeitszeit .bob .btext b{color:var(--violet);font-weight:700}
.cx-arbeitszeit .bob .bclose{background:transparent;border:none;color:var(--stone);display:grid;place-items:center;padding:4px;flex-shrink:0}
.cx-arbeitszeit .bob .bclose:hover{color:var(--ink)}

/* Former employee marker on a week-review row (Austritt recorded; row kept up to the exit date). */
.cx-arbeitszeit .former-chip{display:inline-block;margin-left:6px;font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--stone);background:var(--sand);border:1px solid var(--hairline-strong);border-radius:5px;padding:1px 5px;vertical-align:middle}

/* ── Toolbar (day navigator + filter chips + search) ───── */
/* Sticky within the .erp-content scrollport: date, filters and search stay put while the
   list scrolls beneath. Padding (not margin) below, so the background covers the gap. */
.cx-arbeitszeit .toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;position:sticky;top:0;z-index:30;background:var(--cx-content-bg,#FAF7F2);padding:10px 0 12px;margin-bottom:4px;box-shadow:0 1px 0 var(--hairline)}
.cx-arbeitszeit .daterow{display:flex;align-items:center;gap:10px}
.cx-arbeitszeit .daterow .dlab{font-family:var(--font-display);font-size:16px;font-weight:700;letter-spacing:-.015em;white-space:nowrap}
.cx-arbeitszeit .daterow .today{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;background:var(--copper-50);color:var(--copper-dark);border-radius:999px;padding:3px 9px}
.cx-arbeitszeit .navbtn{width:30px;height:30px;border-radius:8px;border:1px solid var(--hairline-strong);background:var(--white);display:grid;place-items:center;color:var(--walnut)}
.cx-arbeitszeit .navbtn:not(:disabled):hover{border-color:var(--ink);color:var(--ink)}
.cx-arbeitszeit .navbtn:disabled{opacity:.4;cursor:not-allowed}
.cx-arbeitszeit .toolbar .spacer{flex:1}
.cx-arbeitszeit .filterchips{display:inline-flex;gap:6px;flex-wrap:wrap}
.cx-arbeitszeit .fchip{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border-radius:999px;border:1px solid var(--hairline-strong);background:var(--white);color:var(--walnut);font-size:12.5px;font-weight:600}
.cx-arbeitszeit .fchip .cnt{font-family:var(--font-mono);font-size:11px;color:var(--stone)}
.cx-arbeitszeit .fchip:hover{border-color:var(--ink)}
.cx-arbeitszeit .fchip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.cx-arbeitszeit .fchip.on .cnt{color:rgba(255,255,255,.6)}
.cx-arbeitszeit .fchip .sd{width:7px;height:7px;border-radius:50%}
.cx-arbeitszeit .tb-search{display:flex;align-items:center;gap:10px;width:260px;height:34px;padding:0 13px;background:var(--white);border:1px solid var(--hairline-strong);border-radius:9px;color:var(--stone);font-size:13px}
.cx-arbeitszeit .tb-search i{font-size:14px}
.cx-arbeitszeit .tb-search input{border:none;background:transparent;outline:none;font-family:inherit;font-size:13px;color:var(--ink);width:100%}
.cx-arbeitszeit .tb-search input::placeholder{color:var(--stone)}

/* ── Erfassung info popover ────────────────────────────── */
.cx-arbeitszeit .popwrap{position:relative}
.cx-arbeitszeit .popscrim{position:fixed;inset:0;z-index:55}
.cx-arbeitszeit .pop{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:344px;background:#fff;border:1px solid var(--hairline-strong);border-radius:12px;box-shadow:var(--sh-lg);padding:8px;animation:cxaz-popin .14s var(--ease)}
@keyframes cxaz-popin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.cx-arbeitszeit .pop .plab{font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);padding:8px 10px 5px}
.cx-arbeitszeit .pop .prow{display:flex;align-items:center;gap:11px;padding:10px;border-radius:9px}
.cx-arbeitszeit .pop .pic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;flex-shrink:0;background:var(--sand);color:var(--stone);font-size:15px}
.cx-arbeitszeit .pop .prow.on .pic.nfc{background:var(--copper-50);color:var(--copper)}
.cx-arbeitszeit .pop .prow.on .pic.gps{background:var(--blue-50);color:var(--blue)}
.cx-arbeitszeit .pop .pt{font-size:13px;font-weight:700}
.cx-arbeitszeit .pop .ps{font-size:11px;color:var(--stone);margin-top:1px}
.cx-arbeitszeit .pop .pstate{margin-left:auto;font-family:var(--font-mono);font-size:10px;font-weight:600;white-space:nowrap}
.cx-arbeitszeit .pop .pstate.on{color:var(--patina)}
.cx-arbeitszeit .pop .pstate.off{color:var(--stone)}
.cx-arbeitszeit .pop .pfoot{border-top:1px solid var(--hairline-soft);margin-top:6px;padding:10px 10px 6px;font-size:11.5px;color:var(--stone);line-height:1.5;display:flex;gap:8px;align-items:flex-start}
.cx-arbeitszeit .pop .pfoot i{flex-shrink:0;margin-top:2px;color:var(--stone)}

/* ── Avatar ────────────────────────────────────────────── */
.cx-arbeitszeit .av{border-radius:11px;display:grid;place-items:center;font-weight:700;color:#fff;flex-shrink:0;font-family:var(--font-display);letter-spacing:-.01em;position:relative}
.cx-arbeitszeit .av .on-dot{position:absolute;right:-2px;bottom:-2px;width:11px;height:11px;border-radius:50%;background:var(--patina);border:2px solid var(--white)}
.cx-arbeitszeit .av.dim{opacity:.55;filter:grayscale(.3)}

/* ── Status cell / pill ────────────────────────────────── */
.cx-arbeitszeit .status{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600}
.cx-arbeitszeit .status .sd{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.cx-arbeitszeit .status.in{color:var(--patina)} .cx-arbeitszeit .status.in .sd{background:var(--patina);box-shadow:0 0 0 3px var(--patina-50)}
.cx-arbeitszeit .status.done{color:var(--walnut)} .cx-arbeitszeit .status.done .sd{background:var(--stone);box-shadow:0 0 0 3px var(--sand)}
.cx-arbeitszeit .status.absent{color:var(--blue)} .cx-arbeitszeit .status.absent .sd{background:var(--blue);box-shadow:0 0 0 3px var(--blue-50)}
.cx-arbeitszeit .statuscell{min-width:0}
.cx-arbeitszeit .statuscell .st-sub{font-family:var(--font-mono);font-size:10px;color:var(--stone);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── Tag ───────────────────────────────────────────────── */
.cx-arbeitszeit .tag{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-family:var(--font-mono);font-size:10.5px;font-weight:500;letter-spacing:.04em;background:var(--sand);color:var(--walnut);white-space:nowrap}
.cx-arbeitszeit .tag.stone{background:var(--sand);color:var(--stone)}

/* ── Source badge ──────────────────────────────────────── */
.cx-arbeitszeit .src{display:inline-flex;align-items:center;gap:7px;padding:4px 11px 4px 8px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap;border:1px solid transparent}
.cx-arbeitszeit .src .ic{display:grid;place-items:center;font-size:13px}
.cx-arbeitszeit .src.nfc{background:var(--sand);color:var(--walnut)}
.cx-arbeitszeit .src.gps{background:var(--blue-50);color:var(--blue)}
.cx-arbeitszeit .src.ex{background:var(--ochre-50);color:var(--ochre);border-color:rgba(169,117,20,.35)}
.cx-arbeitszeit .src.warn{background:var(--brick-50);color:var(--brick)}
.cx-arbeitszeit .src.man{background:var(--paper-2);color:var(--stone);border-color:var(--hairline)}
.cx-arbeitszeit .srccell{display:flex;flex-direction:column;gap:5px;align-items:flex-start;min-width:0}
.cx-arbeitszeit .srccell .exnote{font-family:var(--font-mono);font-size:10px;color:var(--ochre);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cx-arbeitszeit .srccell .exnote.brick{color:var(--brick)}

/* ── Tages-Timeline bar ────────────────────────────────── */
.cx-arbeitszeit .timewrap{min-width:0}
.cx-arbeitszeit .timebar{position:relative;height:14px;border-radius:5px;background:var(--paper-2);border:1px solid var(--hairline-soft);overflow:hidden}
.cx-arbeitszeit .timebar .tk{position:absolute;top:0;bottom:0;width:1px;background:var(--hairline)}
.cx-arbeitszeit .timebar .sg{position:absolute;top:2px;bottom:2px;border-radius:3px}
.cx-arbeitszeit .sg.werkstatt{background:var(--patina)}
.cx-arbeitszeit .sg.kunde{background:var(--blue)}
.cx-arbeitszeit .sg.fahrt{background:repeating-linear-gradient(45deg,#D8CDB6 0 4px,#EAE4D5 4px 8px)}
.cx-arbeitszeit .sg.arbeit{background:var(--walnut)}
.cx-arbeitszeit .sg.excluded{background:var(--sand-2);outline:1px solid var(--hairline-strong);outline-offset:-1px}
.cx-arbeitszeit .sg.unknown{background:var(--stone);opacity:.55}
.cx-arbeitszeit .sg.provisional{opacity:.5;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.35) 0 3px,transparent 3px 6px)}
.cx-arbeitszeit .timewrap .tscale{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:8.5px;color:var(--stone);margin-top:3px}

/* ── Heute table ───────────────────────────────────────── */
/* overflow:clip (not hidden) keeps the corner clipping without creating a scroll container,
   so the sticky .zhead below can stick to the .erp-content scrollport. */
.cx-arbeitszeit .ztable{background:var(--white);border:1px solid var(--hairline);border-radius:12px;box-shadow:var(--sh-xs);overflow:clip}
.cx-arbeitszeit .zhead,.cx-arbeitszeit .zrow{display:grid;grid-template-columns:minmax(196px,1.25fr) 118px minmax(150px,.95fr) 52px 62px 48px 52px minmax(210px,1.35fr) 26px;align-items:center;gap:16px}
.cx-arbeitszeit .zhead{padding:11px 20px;background:var(--paper-2);border-bottom:1px solid var(--hairline);font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--stone)}
/* Column header sticks right below the toolbar (56px = 34px controls + 10/12px padding).
   Wide screens only — below that the toolbar wraps to two lines and the offset would be wrong. */
@media (min-width:1160px){.cx-arbeitszeit .zhead{position:sticky;top:56px;z-index:5}}
.cx-arbeitszeit .zrow{padding:12px 20px;border-bottom:1px solid var(--hairline-soft);position:relative;cursor:pointer}
.cx-arbeitszeit .zrow:hover{background:var(--copper-50)}
.cx-arbeitszeit .zrow .chev{color:var(--stone);opacity:0;transition:opacity .15s,transform .15s var(--ease);justify-self:end}
.cx-arbeitszeit .zrow:hover .chev{opacity:1;transform:translateX(2px)}
.cx-arbeitszeit .zrow:last-child{border-bottom:none}
.cx-arbeitszeit .zrow.dim{opacity:.62}
.cx-arbeitszeit .zrow.exrow{box-shadow:inset 3px 0 0 var(--ochre)}
.cx-arbeitszeit .zrow.warnrow{box-shadow:inset 3px 0 0 var(--brick)}
.cx-arbeitszeit .zrow .num{font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink)}
.cx-arbeitszeit .zrow .num small{color:var(--stone);font-size:10px}
.cx-arbeitszeit .zrow .num.dimt{color:var(--stone)}
.cx-arbeitszeit .zrow .num.running{color:var(--patina);font-weight:600}
.cx-arbeitszeit .zuser{display:flex;align-items:center;gap:12px;min-width:0}
.cx-arbeitszeit .zuser .un{font-size:13.5px;font-weight:700;color:var(--ink);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-arbeitszeit .zuser .pos{font-size:11.5px;color:var(--stone);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-arbeitszeit .tfoot{display:flex;justify-content:flex-end;padding:9px 4px 0}
.cx-arbeitszeit .legend{display:inline-flex;align-items:center;gap:13px;font-size:11.5px;color:var(--walnut);flex-wrap:wrap}
.cx-arbeitszeit .legend .li{display:inline-flex;align-items:center;gap:6px}
.cx-arbeitszeit .legend .sw{width:10px;height:10px;border-radius:3px;flex-shrink:0}

/* ── Pending-arrival band (above the table) ────────────── */
.cx-arbeitszeit .exbanner{background:var(--ochre-50);border:1px solid rgba(169,117,20,.3);border-radius:12px;padding:13px 14px;display:flex;gap:11px;align-items:flex-start;margin-bottom:14px}
.cx-arbeitszeit .exbanner.brick{background:var(--brick-50);border-color:rgba(154,59,51,.3)}
.cx-arbeitszeit .exbanner .ic{color:var(--ochre);flex-shrink:0;margin-top:1px;font-size:16px}
.cx-arbeitszeit .exbanner.brick .ic{color:var(--brick)}
.cx-arbeitszeit .exbanner .bt{font-size:12.5px;font-weight:700;color:var(--ochre)}
.cx-arbeitszeit .exbanner.brick .bt{color:var(--brick)}
.cx-arbeitszeit .exbanner .bs{font-size:12px;color:var(--walnut);margin-top:2px}
.cx-arbeitszeit .exbanner .bpeople{display:flex;flex-direction:column;gap:6px;margin-top:9px}
.cx-arbeitszeit .exbanner .bp{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--ink)}
.cx-arbeitszeit .exbanner .bp .bp-t{font-family:var(--font-mono);font-size:11px;color:var(--stone)}
.cx-arbeitszeit .exbanner .bp.bp-click{border:none;background:transparent;text-align:left;padding:2px 6px;border-radius:7px;cursor:pointer}
.cx-arbeitszeit .exbanner .bp.bp-click:hover{background:rgba(169,117,20,.12)}

/* ── Placeholder panel (Woche/Hinweise before their waves) ── */
.cx-arbeitszeit .exempty{text-align:center;padding:52px 0;color:var(--stone)}
.cx-arbeitszeit .exempty i{font-size:30px}
.cx-arbeitszeit .exempty b{display:block;color:var(--walnut);margin:10px 0 3px;font-size:14px}
.cx-arbeitszeit .exempty .es{font-size:13px}

/* ── Reveal animation ──────────────────────────────────── */
@media (prefers-reduced-motion: no-preference){
  .cx-arbeitszeit .reveal{animation:cxaz-rise .45s var(--ease) both}
  @keyframes cxaz-rise{from{transform:translateY(8px);opacity:.4}to{transform:none;opacity:1}}
}

@keyframes cxaz-fade{from{opacity:0}to{opacity:1}}

/* ── Day drawer (persistent visibility pattern — never @if-destroyed while pending interop) ── */
.cx-arbeitszeit .az-drawer{position:fixed;inset:0;z-index:1200;visibility:hidden;pointer-events:none}
.cx-arbeitszeit .az-drawer.open{visibility:visible;pointer-events:auto}
.cx-arbeitszeit .az-drawer:focus{outline:none}
.cx-arbeitszeit .az-drawer__backdrop{position:fixed;inset:0;background:rgba(28,25,21,.34);backdrop-filter:blur(2px);opacity:0;transition:opacity .22s var(--ease)}
.cx-arbeitszeit .az-drawer.open .az-drawer__backdrop{opacity:1}
.cx-arbeitszeit .az-drawer__panel{position:fixed;top:0;right:0;bottom:0;width:560px;max-width:96vw;background:var(--paper);box-shadow:var(--sh-xl);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .28s var(--ease)}
.cx-arbeitszeit .az-drawer.open .az-drawer__panel{transform:none}

/* drawer header */
.cx-arbeitszeit .dr-head{padding:18px 20px 16px;background:var(--white);border-bottom:1px solid var(--hairline);position:relative;flex-shrink:0}
.cx-arbeitszeit .dr-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:8px;border:none;background:var(--sand);display:grid;place-items:center;color:var(--walnut)}
.cx-arbeitszeit .dr-close:hover{background:var(--sand-2);color:var(--ink)}
.cx-arbeitszeit .dr-id{display:flex;align-items:center;gap:14px;padding-right:38px}
.cx-arbeitszeit .dr-id .dn{font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:-.02em;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-arbeitszeit .dr-id .dp{font-size:12.5px;color:var(--stone);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-arbeitszeit .dr-nav{display:flex;align-items:center;gap:9px;margin-top:14px;flex-wrap:wrap}
.cx-arbeitszeit .dr-nav .dr-date{font-family:var(--font-display);font-size:15px;font-weight:700;letter-spacing:-.015em}
.cx-arbeitszeit .dr-statusrow{display:flex;align-items:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--hairline-soft);flex-wrap:wrap}

/* drawer body / sections */
.cx-arbeitszeit .dr-body{flex:1;overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:20px}
.cx-arbeitszeit .dr-sec .dr-lab{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);margin-bottom:10px}
.cx-arbeitszeit .dr-foot{padding:14px 20px;background:var(--white);border-top:1px solid var(--hairline);display:flex;gap:10px;flex-shrink:0}
.cx-arbeitszeit .dr-foot .btn{flex:1}

/* summary boxes */
.cx-arbeitszeit .sumgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cx-arbeitszeit .sumbox{background:var(--white);border:1px solid var(--hairline);border-radius:10px;padding:12px 13px}
.cx-arbeitszeit .sumbox .sl{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--stone)}
.cx-arbeitszeit .sumbox .sv{font-family:var(--font-display);font-size:20px;font-weight:700;margin-top:3px;color:var(--ink)}
.cx-arbeitszeit .sumbox .sv small{font-family:var(--font-sans);font-size:11px;font-weight:600;color:var(--stone)}

/* event timeline */
.cx-arbeitszeit .tl{background:var(--white);border:1px solid var(--hairline);border-radius:12px;padding:4px 14px}
.cx-arbeitszeit .tlev{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--hairline-soft)}
.cx-arbeitszeit .tlev:last-child{border-bottom:none}
.cx-arbeitszeit .tlev .tt{font-family:var(--font-mono);font-size:12px;font-weight:600;width:42px;flex-shrink:0;padding-top:5px;font-variant-numeric:tabular-nums;color:var(--ink)}
.cx-arbeitszeit .tlev .tic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;background:var(--sand);color:var(--walnut)}
.cx-arbeitszeit .tlev.k-gps .tic{background:var(--blue-50);color:var(--blue)}
.cx-arbeitszeit .tlev.k-clock .tic{background:var(--copper-50);color:var(--copper)}
.cx-arbeitszeit .tlev .tlab{font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cx-arbeitszeit .tlev .tsub{font-size:11.5px;color:var(--stone);margin-top:2px}

/* week strip */
.cx-arbeitszeit .dr-week{background:var(--white);border:1px solid var(--hairline);border-radius:12px;padding:12px 14px}
.cx-arbeitszeit .dr-week-days{display:flex;gap:6px}
.cx-arbeitszeit .dr-week-day{flex:1;text-align:center;border-radius:8px;padding:6px 2px}
.cx-arbeitszeit .dr-week-day.sel{background:var(--copper-50);outline:1px solid var(--copper-100)}
.cx-arbeitszeit .dr-week-day .wd-lab{font-family:var(--font-mono);font-size:9px;color:var(--stone);margin-bottom:4px;text-transform:uppercase}
.cx-arbeitszeit .dr-week-day .wd-val{font-family:var(--font-mono);font-size:12.5px;font-weight:600;color:var(--ink)}
.cx-arbeitszeit .dr-week-day .wd-val.muted{color:var(--stone);font-weight:400}
.cx-arbeitszeit .dr-week-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--hairline-soft);font-size:12px}
.cx-arbeitszeit .dr-week-foot .wf-lab{color:var(--stone)}
.cx-arbeitszeit .dr-week-foot .wf-val{font-family:var(--font-mono);font-weight:600}
.cx-arbeitszeit .dr-week-foot .plus{color:var(--patina)}
.cx-arbeitszeit .dr-week-foot .minus{color:var(--brick)}
.cx-arbeitszeit .dr-week-foot .zero{color:var(--stone)}

/* overtime one-liner */
.cx-arbeitszeit .dr-overtime{display:flex;align-items:center;gap:9px;background:var(--white);border:1px solid var(--hairline);border-radius:12px;padding:12px 14px;font-size:13px;color:var(--walnut)}
.cx-arbeitszeit .dr-overtime i{color:var(--stone)}
.cx-arbeitszeit .dr-overtime b.plus{color:var(--patina)}
.cx-arbeitszeit .dr-overtime b.minus{color:var(--brick)}
.cx-arbeitszeit .dr-overtime b.zero{color:var(--ink)}
.cx-arbeitszeit .dr-overtime .muted{color:var(--stone)}
.cx-arbeitszeit .dr-overtime-link{margin-left:auto;font-size:12px;font-weight:600;white-space:nowrap}

/* danger button (shared with the Hinweise queue) */
.cx-arbeitszeit .btn.danger{color:var(--brick);border-color:rgba(154,59,51,.3);background:var(--white)}
.cx-arbeitszeit .btn.danger:hover{background:var(--brick-50);border-color:var(--brick)}

/* ── Tagesprotokoll (editable block list) ─────────────────── */
.cx-arbeitszeit .tp-empty{text-align:center;padding:30px 0;color:var(--stone)}
.cx-arbeitszeit .tp-empty.small{padding:16px 0}
.cx-arbeitszeit .tp-empty i{font-size:26px}
.cx-arbeitszeit .tp-empty b{display:block;color:var(--walnut);margin:8px 0 3px;font-size:13.5px}
.cx-arbeitszeit .tp-empty-s{font-size:12.5px;color:var(--stone)}
.cx-arbeitszeit .tp-note{display:flex;align-items:flex-start;gap:9px;border-radius:10px;padding:10px 12px;font-size:12.5px;margin-bottom:12px;line-height:1.45}
.cx-arbeitszeit .tp-note i{flex-shrink:0;margin-top:1px}
.cx-arbeitszeit .tp-note.lock{background:var(--paper-2);color:var(--walnut);border:1px solid var(--hairline)}
.cx-arbeitszeit .tp-note.live{background:var(--ochre-50);color:var(--ochre);border:1px solid rgba(169,117,20,.3)}
.cx-arbeitszeit .tp-note.live b{color:var(--ochre-dark,#7a530e)}
.cx-arbeitszeit .tp-envelope{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.cx-arbeitszeit .tp-env-field{display:flex;flex-direction:column;gap:5px}
.cx-arbeitszeit .tp-env-field label{font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--stone)}
.cx-arbeitszeit .tp-env-field .cxinput{height:34px}
.cx-arbeitszeit .tp-list{display:flex;flex-direction:column;gap:8px}
.cx-arbeitszeit .tp-block{background:var(--white);border:1px solid var(--hairline);border-radius:10px;border-left:3px solid var(--stone)}
.cx-arbeitszeit .tp-block.werkstatt{border-left-color:var(--patina)}
.cx-arbeitszeit .tp-block.kunde{border-left-color:var(--blue)}
.cx-arbeitszeit .tp-block.fahrt{border-left-color:var(--sand-2)}
.cx-arbeitszeit .tp-block.pause{border-left-color:var(--stone)}
.cx-arbeitszeit .tp-block.excluded{border-left-color:var(--sand-2)}
.cx-arbeitszeit .tp-block.unknown{border-left-color:var(--ochre)}
.cx-arbeitszeit .tp-block.live{box-shadow:0 0 0 2px var(--patina-50)}
.cx-arbeitszeit .tp-block-main{display:grid;grid-template-columns:96px 118px 1fr auto 28px;align-items:center;gap:10px;padding:10px 12px}
.cx-arbeitszeit .tp-time{font-family:var(--font-mono);font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.cx-arbeitszeit .tp-time .dash{color:var(--stone);margin:0 2px}
.cx-arbeitszeit .tp-place{display:inline-flex;align-items:center;gap:7px;min-width:0}
.cx-arbeitszeit .tp-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0}
.cx-arbeitszeit .tp-dot.werkstatt{background:var(--patina)}
.cx-arbeitszeit .tp-dot.kunde{background:var(--blue)}
.cx-arbeitszeit .tp-dot.fahrt{background:repeating-linear-gradient(45deg,#D8CDB6 0 4px,#EAE4D5 4px 8px)}
.cx-arbeitszeit .tp-dot.pause{background:var(--paper-2);border:1px solid var(--hairline-strong)}
.cx-arbeitszeit .tp-dot.excluded{background:var(--sand-2);outline:1px solid var(--hairline-strong);outline-offset:-1px}
.cx-arbeitszeit .tp-dot.unknown{background:var(--ochre)}
.cx-arbeitszeit .tp-place-l{font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-arbeitszeit .tp-attr{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:11.5px;color:var(--walnut)}
.cx-arbeitszeit .tp-attr span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-arbeitszeit .tp-attr i{color:var(--stone);flex-shrink:0}
.cx-arbeitszeit .tp-desc{color:var(--stone);font-style:italic;max-width:100%}
.cx-arbeitszeit .be-desc{min-height:60px}
.cx-arbeitszeit .tp-meta{display:flex;flex-direction:column;gap:3px;align-items:flex-end;white-space:nowrap}
.cx-arbeitszeit .tp-src{font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.03em;padding:2px 7px;border-radius:999px;background:var(--sand);color:var(--stone)}
.cx-arbeitszeit .tp-src.man{background:var(--copper-50);color:var(--copper-dark)}
.cx-arbeitszeit .tp-src.ok{background:var(--patina-50);color:var(--patina)}
.cx-arbeitszeit .tp-src.corr{background:var(--ochre-50);color:var(--ochre)}
.cx-arbeitszeit .tp-orig{font-family:var(--font-mono);font-size:9.5px;color:var(--stone)}
.cx-arbeitszeit .tp-edit{width:28px;height:28px;border-radius:7px;border:1px solid var(--hairline-strong);background:var(--white);color:var(--walnut);display:grid;place-items:center}
.cx-arbeitszeit .tp-edit:hover{border-color:var(--copper);color:var(--copper)}
.cx-arbeitszeit .tp-auto{color:var(--stone);display:grid;place-items:center;font-size:13px}
.cx-arbeitszeit .tp-add{margin-top:10px;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;border-radius:9px;border:1.5px dashed var(--hairline-strong);background:transparent;color:var(--walnut);font-size:13px;font-weight:600}
.cx-arbeitszeit .tp-add:hover{border-color:var(--copper);color:var(--copper);background:var(--copper-50)}

/* ── BlockEditor (in-place) ───────────────────────────────── */
.cx-arbeitszeit .be{padding:12px 13px;display:flex;flex-direction:column;gap:12px}
.cx-arbeitszeit .be-row.be-times{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cx-arbeitszeit .be-field{display:flex;flex-direction:column;gap:6px}
.cx-arbeitszeit .be-field>label{font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--stone)}
.cx-arbeitszeit .be-field .cxinput{height:36px}
.cx-arbeitszeit .be-seg{display:flex;flex-wrap:wrap;gap:6px}
.cx-arbeitszeit .be-segbtn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border-radius:8px;border:1px solid var(--hairline-strong);background:var(--white);color:var(--walnut);font-size:12px;font-weight:600}
.cx-arbeitszeit .be-segbtn:hover{border-color:var(--ink)}
.cx-arbeitszeit .be-segbtn.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.cx-arbeitszeit .be-hint{font-size:11.5px;color:var(--ochre);margin-top:2px}
.cx-arbeitszeit .be-chosen{display:flex;align-items:center;gap:8px;height:36px;padding:0 6px 0 12px;border:1px solid var(--hairline-strong);border-radius:9px;background:var(--white)}
.cx-arbeitszeit .be-chosen i{color:var(--stone)}
.cx-arbeitszeit .be-chosen-t{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.cx-arbeitszeit .be-clear{width:26px;height:26px;border-radius:7px;border:none;background:var(--sand);color:var(--walnut);display:grid;place-items:center;flex-shrink:0}
.cx-arbeitszeit .be-clear:hover{background:var(--sand-2);color:var(--ink)}
.cx-arbeitszeit .be-picker{display:flex;flex-direction:column;gap:6px}
.cx-arbeitszeit .be-search{display:flex;align-items:center;gap:9px;height:36px;padding:0 12px;background:var(--white);border:1px solid var(--hairline-strong);border-radius:9px;color:var(--stone)}
.cx-arbeitszeit .be-search input{border:none;background:transparent;outline:none;font-family:inherit;font-size:13px;color:var(--ink);width:100%}
.cx-arbeitszeit .be-results{display:flex;flex-direction:column;gap:4px;max-height:190px;overflow-y:auto}
.cx-arbeitszeit .be-result{display:flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid var(--hairline);border-radius:9px;background:var(--white);text-align:left;font-size:13px;font-weight:500;color:var(--ink)}
.cx-arbeitszeit .be-result i{color:var(--stone)}
.cx-arbeitszeit .be-result:hover{border-color:var(--copper);background:var(--copper-50)}
.cx-arbeitszeit .be-empty{font-size:12.5px;color:var(--stone);padding:6px 2px;display:inline-flex;align-items:center;gap:8px}
.cx-arbeitszeit .be-joblist{display:flex;flex-direction:column;gap:5px;max-height:220px;overflow-y:auto}
.cx-arbeitszeit .be-jobitem{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid var(--hairline);border-radius:9px;background:var(--white);text-align:left;width:100%}
.cx-arbeitszeit .be-jobitem:hover{border-color:var(--copper);background:var(--copper-50)}
.cx-arbeitszeit .be-jobitem.on{border-color:var(--copper);background:var(--copper-50);box-shadow:0 0 0 2px var(--copper-100)}
.cx-arbeitszeit .be-jobitem .jn{font-family:var(--font-mono);font-size:11px;color:var(--copper-dark);font-weight:600;flex-shrink:0}
.cx-arbeitszeit .be-jobitem .jt{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.cx-arbeitszeit .be-jobitem i{margin-left:auto;color:var(--copper)}
.cx-arbeitszeit .be-error{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--brick);background:var(--brick-50);border-radius:8px;padding:8px 10px}
.cx-arbeitszeit .be-actions{display:flex;align-items:center;gap:8px;padding-top:2px}

/* ── Tag colour variants (queue status pills etc.) ─────── */
.cx-arbeitszeit .tag.patina{background:var(--patina-50);color:var(--patina)}
.cx-arbeitszeit .tag.blue{background:var(--blue-50);color:var(--blue)}
.cx-arbeitszeit .tag.ochre{background:var(--ochre-50);color:var(--ochre)}
.cx-arbeitszeit .tag.brick{background:var(--brick-50);color:var(--brick)}
.cx-arbeitszeit .tag.copper{background:var(--copper-50);color:var(--copper-dark)}

/* ── Bob action chips ──────────────────────────────────── */
.cx-arbeitszeit .bchip{flex-shrink:0;font-size:12.5px;padding:7px 13px;border-radius:999px;background:rgba(255,255,255,.85);border:1px solid rgba(91,75,138,.25);color:var(--violet);font-weight:600;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.cx-arbeitszeit .bchip:hover{background:#fff}
.cx-arbeitszeit .bchip.solid{background:var(--violet);color:#fff;border-color:var(--violet)}
.cx-arbeitszeit .bchip.solid:hover{background:#4a3d73}

/* ── Woche: week toolbar + info line ───────────────────── */
.cx-arbeitszeit .wk-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.cx-arbeitszeit .wk-toolbar .spacer{flex:1}
.cx-arbeitszeit .wklabel{display:flex;flex-direction:column;line-height:1.15;margin:0 4px}
.cx-arbeitszeit .wklabel .kw{font-family:var(--font-display);font-size:16px;font-weight:700;letter-spacing:-.015em;white-space:nowrap}
.cx-arbeitszeit .wklabel .rng{font-family:var(--font-mono);font-size:10.5px;color:var(--stone);white-space:nowrap}
.cx-arbeitszeit .wk-info{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--walnut);margin-bottom:12px;flex-wrap:wrap}
.cx-arbeitszeit .wk-info .sep{color:var(--hairline-strong)}
.cx-arbeitszeit .wk-info .ok{color:var(--patina)}
.cx-arbeitszeit .wk-info .warn{color:var(--ochre)}

/* ── Woche grid ────────────────────────────────────────── */
.cx-arbeitszeit .wk{background:var(--white);border:1px solid var(--hairline);border-radius:12px;box-shadow:var(--sh-xs);overflow:hidden}
.cx-arbeitszeit .wk-head,.cx-arbeitszeit .wk-row{display:grid;align-items:center;gap:12px}
.cx-arbeitszeit .wk-head{padding:11px 20px;background:var(--paper-2);border-bottom:1px solid var(--hairline);font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--stone)}
.cx-arbeitszeit .wk-head .ri,.cx-arbeitszeit .wk-row .ri{text-align:right}
.cx-arbeitszeit .wk-row{padding:11px 20px;border-bottom:1px solid var(--hairline-soft)}
.cx-arbeitszeit .wk-row:last-child{border-bottom:none}
.cx-arbeitszeit .wk-row.locked{background:var(--paper-2)}
.cx-arbeitszeit .wk-row.locked .dcell,.cx-arbeitszeit .wk-row.locked .wk-tot,.cx-arbeitszeit .wk-row.locked .wk-diff{opacity:.55}
.cx-arbeitszeit .wk-row.dim{opacity:.62}
.cx-arbeitszeit .dcell{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
.cx-arbeitszeit .dcell .sd{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.cx-arbeitszeit .dcell .sd.nfc{background:var(--stone)}
.cx-arbeitszeit .dcell .sd.app{background:var(--ochre)}
.cx-arbeitszeit .dcell .sd.gps{background:var(--blue)}
.cx-arbeitszeit .dcell.abs{color:var(--stone);font-weight:600}
.cx-arbeitszeit .dcell.abs.leave{color:var(--patina)}
.cx-arbeitszeit .dcell.abs.sick{color:var(--brick)}
.cx-arbeitszeit .dcell.abs.holiday{color:var(--violet)}
.cx-arbeitszeit .dcell .half{font-size:10px;color:var(--stone)}
.cx-arbeitszeit .dcell.empty{color:var(--sand-2)}
.cx-arbeitszeit .wk-tot{font-family:var(--font-mono);font-size:12.5px;font-weight:600;text-align:right;white-space:nowrap}
.cx-arbeitszeit .wk-tot .soll{color:var(--stone);font-weight:400}
.cx-arbeitszeit .wk-diff{font-family:var(--font-mono);font-size:11.5px;text-align:right;white-space:nowrap}
.cx-arbeitszeit .wk-diff.plus{color:var(--patina)}
.cx-arbeitszeit .wk-diff.minus{color:var(--brick)}
.cx-arbeitszeit .wk-diff.zero{color:var(--stone)}
.cx-arbeitszeit .wk-flags{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.cx-arbeitszeit .zuser-click{cursor:pointer;border-radius:8px;margin:-4px -6px;padding:4px 6px}
.cx-arbeitszeit .zuser-click:hover{background:var(--copper-50)}
.cx-arbeitszeit .dcell.cell-click{cursor:pointer;border-radius:7px;padding:3px 5px;margin:-3px -2px}
.cx-arbeitszeit .dcell.cell-click:hover{background:var(--copper-50)}

/* anomaly count badge (expands the detail row) */
.cx-arbeitszeit .anom-badge{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:999px;border:1px solid transparent;font-family:var(--font-mono);font-size:11px;font-weight:700}
.cx-arbeitszeit .anom-badge.info{background:var(--blue-50);color:var(--blue);border-color:rgba(31,74,130,.2)}
.cx-arbeitszeit .anom-badge.warning{background:var(--ochre-50);color:var(--ochre);border-color:rgba(169,117,20,.3)}
.cx-arbeitszeit .anom-badge.error{background:var(--brick-50);color:var(--brick);border-color:rgba(154,59,51,.3)}
.cx-arbeitszeit .anom-badge.on{outline:2px solid currentColor;outline-offset:1px}
.cx-arbeitszeit .fahrt-badge{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:999px;background:var(--brick-50);color:var(--brick);border:1px solid rgba(154,59,51,.3);font-family:var(--font-mono);font-size:10.5px;font-weight:600;white-space:nowrap}

/* lock chip + row actions */
.cx-arbeitszeit .lockchip{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:999px;background:var(--patina-50);color:var(--patina);font-family:var(--font-mono);font-size:10.5px;font-weight:600;white-space:nowrap}
.cx-arbeitszeit .btn.mini{height:28px;padding:0 11px;font-size:12px;border-radius:7px}
.cx-arbeitszeit .btn.mini.lock{border-color:rgba(63,125,91,.4);background:var(--white);color:var(--patina)}
.cx-arbeitszeit .btn.mini.lock:hover{background:var(--patina-50);border-color:var(--patina)}
.cx-arbeitszeit .btn.mini.unlock{border-color:var(--hairline-strong);background:var(--white);color:var(--walnut)}
.cx-arbeitszeit .btn.mini.unlock:hover{border-color:var(--ink);color:var(--ink)}

/* expandable anomaly detail row */
.cx-arbeitszeit .wk-detail{padding:0 20px 14px;border-bottom:1px solid var(--hairline-soft);background:var(--paper-2)}
.cx-arbeitszeit .wk-detail .anomaly-item{display:flex;align-items:center;gap:9px;font-size:12.5px;padding:7px 0;color:var(--walnut)}
.cx-arbeitszeit .wk-detail .anomaly-item i{flex-shrink:0}
.cx-arbeitszeit .wk-detail .anomaly-item.info i{color:var(--blue)}
.cx-arbeitszeit .wk-detail .anomaly-item.warning i{color:var(--ochre)}
.cx-arbeitszeit .wk-detail .anomaly-item.error i{color:var(--brick)}

/* ── Hinweise triage queue ─────────────────────────────── */
.cx-arbeitszeit .exlist{display:flex;flex-direction:column;gap:14px}
.cx-arbeitszeit .excard{background:var(--white);border:1px solid var(--hairline);border-radius:14px;box-shadow:var(--sh-xs);padding:16px 18px;display:flex;gap:14px;align-items:flex-start}
.cx-arbeitszeit .excard.open{box-shadow:inset 3px 0 0 var(--ochre),var(--sh-xs)}
.cx-arbeitszeit .excard.warn{box-shadow:inset 3px 0 0 var(--brick),var(--sh-xs)}
.cx-arbeitszeit .excard.info{box-shadow:inset 3px 0 0 var(--blue),var(--sh-xs)}
.cx-arbeitszeit .excard .xic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;flex-shrink:0;font-size:19px}
.cx-arbeitszeit .excard.open .xic{background:var(--ochre-50);color:var(--ochre)}
.cx-arbeitszeit .excard.warn .xic{background:var(--brick-50);color:var(--brick)}
.cx-arbeitszeit .excard.info .xic{background:var(--blue-50);color:var(--blue)}
.cx-arbeitszeit .excard .xbody{flex:1;min-width:0}
.cx-arbeitszeit .excard .xt{font-size:14px;font-weight:700;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.cx-arbeitszeit .excard .xs{font-size:12.5px;color:var(--walnut);margin-top:3px;max-width:80ch}
.cx-arbeitszeit .excard .xs b{color:var(--ink)}
.cx-arbeitszeit .excard .xmeta{display:flex;gap:14px;flex-wrap:wrap;margin-top:9px;font-size:11.5px;color:var(--stone)}
.cx-arbeitszeit .excard .xmeta .mi{display:inline-flex;align-items:center;gap:6px}
.cx-arbeitszeit .excard .xacts{display:flex;gap:8px;margin-left:auto;flex-shrink:0;align-items:center}

/* ── Modal dialog (custom, no Syncfusion) ──────────────── */
.cx-arbeitszeit .cxdlg-scrim{position:fixed;inset:0;background:rgba(28,25,21,.4);backdrop-filter:blur(2px);z-index:1300;display:grid;place-items:center;padding:20px;animation:cxaz-fade .16s var(--ease)}
.cx-arbeitszeit .cxdlg{width:440px;max-width:100%;max-height:90vh;overflow-y:auto;background:var(--paper);border-radius:16px;box-shadow:var(--sh-xl);display:flex;flex-direction:column;animation:cxaz-dlgin .2s var(--ease)}
@keyframes cxaz-dlgin{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.cx-arbeitszeit .cxdlg-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px}
.cx-arbeitszeit .cxdlg-head h3{font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-.02em;margin:0}
.cx-arbeitszeit .cxdlg-x{width:30px;height:30px;border-radius:8px;border:none;background:var(--sand);display:grid;place-items:center;color:var(--walnut)}
.cx-arbeitszeit .cxdlg-x:hover{background:var(--sand-2);color:var(--ink)}
.cx-arbeitszeit .cxdlg-body{padding:0 20px 8px;display:flex;flex-direction:column;gap:14px}
.cx-arbeitszeit .cxdlg-info{font-size:13px;color:var(--walnut);background:var(--white);border:1px solid var(--hairline);border-radius:10px;padding:11px 13px}
.cx-arbeitszeit .cxdlg-info strong{color:var(--ink)}
.cx-arbeitszeit .cxdlg-hint{font-size:12.5px;color:var(--stone);margin:0;line-height:1.5}
.cx-arbeitszeit .cxfield{display:flex;flex-direction:column;gap:6px}
.cx-arbeitszeit .cxfield.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cx-arbeitszeit .cxfield label{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--stone)}
.cx-arbeitszeit .cxfield label .req{color:var(--brick)}
.cx-arbeitszeit .cxinput{height:38px;padding:0 12px;border:1px solid var(--hairline-strong);border-radius:9px;background:var(--white);font-family:inherit;font-size:14px;color:var(--ink);width:100%}
.cx-arbeitszeit .cxinput:focus{outline:none;border-color:var(--copper);box-shadow:0 0 0 3px var(--copper-50)}
.cx-arbeitszeit textarea.cxinput{height:auto;padding:9px 12px;resize:vertical;line-height:1.5}
.cx-arbeitszeit .cxdlg-foot{display:flex;gap:10px;justify-content:flex-end;padding:14px 20px 18px}
.cx-arbeitszeit .cxdlg-foot .btn{min-width:96px}

/* job typeahead (assign dialog) */
.cx-arbeitszeit .joblist{display:flex;flex-direction:column;gap:6px;max-height:280px;overflow-y:auto}
.cx-arbeitszeit .jobitem{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--hairline);border-radius:10px;background:var(--white);text-align:left;width:100%}
.cx-arbeitszeit .jobitem:hover{border-color:var(--copper);background:var(--copper-50)}
.cx-arbeitszeit .jobitem.on{border-color:var(--copper);background:var(--copper-50);box-shadow:0 0 0 2px var(--copper-100)}
.cx-arbeitszeit .jobitem .jn{font-family:var(--font-mono);font-size:11px;color:var(--copper-dark);font-weight:600;flex-shrink:0}
.cx-arbeitszeit .jobitem .jt{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-arbeitszeit .qspin{display:inline-flex;align-items:center;gap:9px;color:var(--stone);font-size:13px;padding:10px 0}

/* ── Hinweise: Mehrfachauswahl (bulk delete) ───────────── */
.cx-arbeitszeit .az-selbar{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.cx-arbeitszeit .az-selbar.compact{justify-content:flex-end}
.cx-arbeitszeit .az-selall{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--walnut);cursor:pointer}
.cx-arbeitszeit .az-selall input{width:16px;height:16px;accent-color:var(--copper);cursor:pointer}
.cx-arbeitszeit .az-selall b{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--stone)}
.cx-arbeitszeit .az-selbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.cx-arbeitszeit .btn.danger.solid{background:var(--brick);border-color:var(--brick);color:#fff}
.cx-arbeitszeit .btn.danger.solid:hover{background:#7f2f28;border-color:#7f2f28}
.cx-arbeitszeit .btn.danger.solid:disabled{opacity:.5;cursor:not-allowed;background:var(--brick);border-color:var(--brick)}
.cx-arbeitszeit .excard .xcheck{display:grid;place-items:center;flex-shrink:0;padding-top:2px;cursor:pointer}
.cx-arbeitszeit .excard .xcheck input{width:18px;height:18px;accent-color:var(--copper);cursor:pointer}
.cx-arbeitszeit .excard.selected{outline:2px solid var(--copper);outline-offset:-1px;background:var(--copper-50)}

/* drawer day navigation: jump-to-date input + unsaved-changes hint */
.cx-arbeitszeit .dr-nav .dr-dateinput{height:30px;padding:0 9px;border:1px solid var(--hairline-strong);border-radius:8px;background:var(--white);font-family:var(--font-mono);font-size:12px;color:var(--walnut);cursor:pointer}
.cx-arbeitszeit .dr-nav .dr-dateinput:focus{outline:none;border-color:var(--copper);box-shadow:0 0 0 3px var(--copper-50)}
.cx-arbeitszeit .dr-nav .dr-dateinput:disabled{opacity:.4;cursor:not-allowed}
.cx-arbeitszeit .dr-nav .dr-navhint{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--ochre-50);color:var(--ochre);border-radius:999px;padding:3px 9px}

/* drawer month summary one-liner (Ist/Soll/Differenz for the shown day's month) */
.cx-arbeitszeit .dr-month{display:flex;align-items:center;gap:9px;margin-bottom:10px;font-size:13px;color:var(--walnut)}
.cx-arbeitszeit .dr-month i{color:var(--stone)}
.cx-arbeitszeit .dr-month b{font-family:var(--font-mono);font-weight:700;color:var(--ink)}
.cx-arbeitszeit .dr-month b.plus{color:var(--patina)}
.cx-arbeitszeit .dr-month b.minus{color:var(--brick)}
.cx-arbeitszeit .dr-month b.zero{color:var(--ink)}

/* week review: attendance-without-a-job badge (clickable, expands the row detail) */
.cx-arbeitszeit .unalloc-badge{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:999px;background:var(--blue-50);color:var(--blue);border:1px solid rgba(31,74,130,.2);font-family:var(--font-mono);font-size:10.5px;font-weight:600;white-space:nowrap}
.cx-arbeitszeit .unalloc-badge:hover{border-color:var(--blue)}
.cx-arbeitszeit .unalloc-badge.on{outline:2px solid currentColor;outline-offset:1px}

/* week review: days the worker rebuilt at Feierabend — visibility only, so deliberately the quietest
   chip in the row (stone on sand, never a warning colour) */
.cx-arbeitszeit .edit-badge{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:999px;background:var(--sand);color:var(--stone);border:1px solid var(--hairline-strong);font-family:var(--font-mono);font-size:10.5px;font-weight:600;white-space:nowrap;cursor:pointer}
.cx-arbeitszeit .edit-badge:hover{border-color:var(--stone);color:var(--walnut)}
.cx-arbeitszeit .edit-badge.on{outline:2px solid currentColor;outline-offset:1px}
.cx-arbeitszeit .dcell .hev{margin-left:4px;font-size:8.5px;color:var(--stone);vertical-align:middle}

/* ── Block entity links ── */
.cx-arbeitszeit .tp-attr a.tp-link{display:inline-flex;align-items:center;gap:5px;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}
.cx-arbeitszeit .tp-attr a.tp-link:hover{text-decoration:underline}
.cx-arbeitszeit .tp-attr a.tp-link i{color:var(--stone);flex-shrink:0}
.cx-arbeitszeit .be-open{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;color:var(--copper-dark);text-decoration:none}
.cx-arbeitszeit .be-open:hover{background:var(--copper-50);color:var(--copper)}
.cx-arbeitszeit .be-jobrow{display:flex;align-items:center;gap:6px}
.cx-arbeitszeit .be-jobrow .be-jobitem{flex:1;min-width:0}

/* ── Fahrten detail list ── */
.cx-arbeitszeit button.fahrt-badge{cursor:pointer}
.cx-arbeitszeit button.fahrt-badge:hover{border-color:var(--brick)}
.cx-arbeitszeit button.fahrt-badge.on{outline:2px solid currentColor;outline-offset:1px}
.cx-arbeitszeit .fahrten-list{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.cx-arbeitszeit .fahrten-loading{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--stone);padding:4px 0}
.cx-arbeitszeit .fahrten-empty{font-size:12.5px;color:var(--stone);padding:4px 0}
.cx-arbeitszeit .fahrt-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:7px 10px;border-radius:8px;background:var(--white);border:1px solid var(--hairline);font-size:12.5px;color:var(--walnut)}
.cx-arbeitszeit .fahrt-row .fr-when{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--ink);white-space:nowrap}
.cx-arbeitszeit .fahrt-row .fr-route{display:inline-flex;align-items:center;gap:5px;min-width:0}
.cx-arbeitszeit .fahrt-row .fr-route i{color:var(--stone);font-size:11px}
.cx-arbeitszeit .fahrt-row .fr-dur{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--walnut);margin-left:auto;white-space:nowrap}
.cx-arbeitszeit .fahrt-row .fr-est{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--blue);white-space:nowrap}
.cx-arbeitszeit .fahrt-row .fr-est.muted{color:var(--stone);font-weight:500}
