/* Controlling — nur Anordnung (Kern-Tokens). Text-Rollen, Farben, Schriften, Tabellen, Kennzahlen und
   Plaketten kommen aus den Kern-Bausteinen; die Berichts-Bibliothek ist eine gewöhnliche Kern-Tabelle. */
.co-main { min-width: 0; }

/* Werkzeugleisten über den Zeit-Ansichten: umbrechen statt herauslaufen. */
.co-toolbar, .co-groupbar { flex-wrap: wrap; row-gap: var(--sp-2); align-items: center; gap: var(--sp-4); }
.co-nav-period { align-items: center; flex-direction: row; gap: var(--sp-2); }
.co-nav-right { margin-left: auto; }
.co-period-label { min-width: var(--sz-180); text-align: center; }
.co-filter { min-width: var(--sz-160); max-width: var(--sz-260); }

/* Kennzahlen (Gesamt · Verrechenbar · Personen · Ø) */
.co-kpis { margin: var(--sp-4) 0 var(--sp-5); }

/* Zeitbericht: Name mit Avatar, Balken füllt seine Spalte. */
.co-name { display: inline-flex; align-items: center; gap: var(--sp-3); min-width: 0; }
.co-zb-table .cc-progress { min-width: var(--sz-40); }

/* Arbeitszeitblatt: Raster wie im Vorbild — Summe oben, heute hervorgehoben, Wochenende schraffiert,
   Personen aufklappbar, Projekte eingerückt. (Tages-Markierung im Raster: Kern-Bedarf, siehe Bericht.) */
.co-az-table th.co-az-day, .co-az-table th.co-az-sum { text-align: center; }
.co-az-table td { vertical-align: middle; }
.co-az-cell { display: block; text-align: center; font-family: var(--mono); min-height: var(--sz-20); }
.co-az-table .co-cell { cursor: pointer; color: var(--ink); font-weight: var(--fw-bold); }
.co-az-table .co-cell:hover { color: var(--o); }
.co-az-table th.co-az-today { color: var(--o); border-bottom: 2px solid var(--o); }
.co-az-table .co-az-cell.co-az-today { background: color-mix(in srgb, var(--o) 8%, transparent); }
.co-az-table .co-az-cell.co-az-weekend { background: repeating-linear-gradient(135deg, transparent 0 var(--sz-6), color-mix(in srgb, var(--grey-300) 45%, transparent) var(--sz-6) calc(var(--sz-6) + 1px)); }
.co-az-table tbody tr.co-sum-row td { background: var(--grey-50); font-weight: var(--fw-bold); border-bottom: 2px solid var(--border); }
.co-az-table tbody tr.co-sum-row .txt-mono { display: block; text-align: center; }
.co-az-table tbody tr.co-az-row td { border-top: 1px solid var(--border); }
.co-az-table tbody tr.co-az-empty { opacity: var(--op-half); }
.co-az-toggle { width: var(--sz-28); height: var(--sz-28); transition: transform var(--dur-fast) var(--ease); }
.co-az-toggle.co-az-open { transform: rotate(90deg); }
.co-az-toggle-spacer { display: inline-block; width: var(--sz-28); }
.co-az-sub td { background: color-mix(in srgb, var(--grey-100) 60%, var(--surface)); font-size: var(--fs-sm); }
.co-az-project { padding-left: var(--sp-8); color: var(--text); }
.co-az-project .bi { color: var(--muted); }
.co-az-sub .txt-mono, .co-az-row .txt-mono { display: block; text-align: center; }

/* Rail: ActiveCollab-Stand */
.co-sync { padding: 0 var(--sp-4) var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-2); }
.co-sync-line { display: flex; align-items: center; gap: var(--sp-2); min-width: 0; }
.co-sync-line .txt-muted { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.co-sync-btn { align-self: flex-start; margin-top: var(--sp-2); }
.co-ac-test { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }

/* Seitenleisten (Einzeleinträge, Bericht) */
.co-detail { min-width: 0; }
