/* ===========================================================================
   Zeiterfassung — Zeit-Dialog nach Completion, Stundenzettel (Mein Tag /
   Drill-down) + Team-Matrix. Alles über Design-Tokens.
   =========================================================================== */

.ze-root { padding:16px; }
@media (min-width:640px) { .ze-root { padding:24px; } }

/* „Zeit erfassen"-Button im 30s-Pending-Strip der Karten — bewusst groß genug
   zum Treffen, öffnet den zeTime-Dialog. */
.ze-chips { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:6px; }
.ze-logbtn { display:inline-flex; align-items:center; gap:6px; padding:5px 12px;
  border-radius:var(--r-pill, 999px); border:1px solid var(--accent); background:var(--accent-soft);
  color:var(--accent); font-size:12px; font-weight:var(--weight-body-strong); line-height:1.4;
  cursor:pointer; transition:background .12s; }
.ze-logbtn:hover { background:var(--accent); color:var(--surface-base, #fff); }
.ze-chips--done { font-size:12px; color:var(--accent); font-weight:var(--weight-body-strong); margin-top:6px; }

/* Dauer-Chips (Eintrags-Formular) + Typ-Wahl Frei/Kunde/Produkt.
   surface-base statt surface-2: surface-2 ist im Light-Theme weiß und wäre
   auf weißen Karten/Modals unsichtbar. */
.ze-chip { display:inline-flex; align-items:center; justify-content:center; padding:6px 12px;
  border-radius:var(--r-pill, 999px); border:1px solid var(--hairline-bright); background:var(--surface-base);
  color:var(--text-primary); font-size:12px; font-weight:var(--weight-body-strong); line-height:1.4;
  cursor:pointer; transition:background .12s, border-color .12s, color .12s; }
.ze-chip:hover { background:var(--accent-soft); border-color:var(--accent); color:var(--accent); }
.ze-chip.is-active { background:var(--accent); border-color:var(--accent); color:#fff; }

/* Große Auswahl-Buttons im Zeit-Dialog (Ein-Tap-Buchung) — müssen klar als
   klickbare Buttons erkennbar sein, auch auf weißem Modal-Grund. */
.ze-pickgrid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
@media (max-width:480px) { .ze-pickgrid { grid-template-columns:repeat(2,1fr); } }
.ze-pick { padding:16px 6px; border-radius:var(--r-md); border:1.5px solid var(--accent);
  background:var(--accent-soft); color:var(--accent); font-size:15px;
  font-weight:var(--weight-body-strong); cursor:pointer;
  transition:background .12s, color .12s, transform .08s; }
.ze-pick:hover { background:var(--accent); color:#fff; }
.ze-pick:active { transform:scale(.97); }

/* Datums-/Wochen-Navigation */
.ze-daynav { display:flex; align-items:center; gap:var(--s-2); flex-wrap:wrap; margin-bottom:var(--s-4); }
.ze-daynav__label { font-size:14px; font-weight:var(--weight-body-strong); color:var(--text-display); }

/* Stundenzettel: linierte Tabelle mit Summenzeile */
.ze-sheet { width:100%; border-collapse:collapse; }
.ze-sheet__th { padding:6px 10px; font-size:11px; text-transform:uppercase; letter-spacing:.05em;
  color:var(--text-secondary); text-align:left; border-bottom:2px solid var(--border); white-space:nowrap; }
.ze-sheet__th--num { text-align:right; }
.ze-sheet__td { padding:9px 10px; font-size:13px; color:var(--text-display); border-bottom:1px solid var(--hairline); vertical-align:top; }
.ze-sheet__td--kind { white-space:nowrap; width:92px; }
.ze-sheet__td--num { text-align:right; font-weight:var(--weight-body-strong); white-space:nowrap; font-variant-numeric:tabular-nums; }
.ze-sheet__td--del { width:36px; text-align:right; }
.ze-sheet__total-label { padding:10px; font-size:12px; text-transform:uppercase; letter-spacing:.05em;
  color:var(--text-secondary); font-weight:var(--weight-body-strong); border-top:2px solid var(--border); }
.ze-sheet__total { padding:10px; font-size:15px; font-weight:var(--weight-body-strong); color:var(--text-display);
  text-align:right; border-top:2px solid var(--border); font-variant-numeric:tabular-nums; white-space:nowrap; }

.ze-row__del { border:none; background:none; width:24px; height:24px; border-radius:var(--r-sm);
  color:var(--text-secondary); font-size:16px; line-height:1; cursor:pointer; }
.ze-row__del:hover { color:var(--danger); background:var(--danger-soft, rgba(220,38,38,.1)); }

/* Eintrags-Formular */
.ze-free { display:flex; align-items:center; gap:var(--s-2); flex-wrap:wrap; }

/* Team-Matrix */
.ze-table { width:100%; border-collapse:collapse; }
.ze-th { padding:6px 10px; font-size:11px; text-transform:uppercase; letter-spacing:.05em;
  color:var(--text-secondary); text-align:center; border-bottom:1px solid var(--border); white-space:nowrap; }
.ze-th--name { text-align:left; }
.ze-th--sum { text-align:right; }
.ze-td { padding:7px 10px; font-size:13px; text-align:center; border-bottom:1px solid var(--hairline); white-space:nowrap; }
.ze-td--name { text-align:left; font-weight:var(--weight-body-strong); color:var(--text-display); }
.ze-td--sum { text-align:right; font-weight:var(--weight-body-strong); color:var(--text-display); }
.ze-th--today, .ze-td--today { background:var(--accent-soft); }
.ze-tr { cursor:pointer; }
.ze-tr:hover .ze-td { background:var(--surface-2); }
.ze-tr.is-active .ze-td { background:var(--accent-soft); }
