/* 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); }
/* Drei Gruppen in der Kopfzeile: links Zeitraum-Wahl, Mitte das Blättern, rechts die Filter. Die
   Aussengruppen teilen sich den Rest, damit die Mitte wirklich mittig steht. Der Kern-Nachbarabstand
   gilt für GESTAPELTE Blöcke — nebeneinanderliegende Gruppen bekommen ihn hier zurückgesetzt. */
.co-toolbar > .cc-row + .cc-row { margin-top: 0; }
/* Basis 0 (nicht 180 px): die Aussengruppen WACHSEN gleich und erzwingen keinen Umbruch. Mit einer
   Grundbreite sprang die Zeile in schmalen Fenstern um; liess man die leere Gruppe dagegen ganz
   zusammenfallen, stand die Mitte im Arbeitszeitblatt links (10 px zu 715 px). So bleibt sie mittig,
   auch wenn links — wie im Arbeitszeitblatt — keine Zeitraum-Wahl steht. */
.co-tb-left, .co-tb-right { flex: 1 1 0; min-width: 0; }
.co-tb-right { justify-content: flex-end; }
.co-tb-mid { flex: 0 0 auto; justify-content: center; }
.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); }
/* Aufklapp-Pfeil vor dem Namen — dieselbe Anordnung wie im Arbeitszeitblatt (Kern zeichnet den Knopf). */
.co-zb-toggle { width: var(--sz-28); height: var(--sz-28); transition: transform var(--dur-fast) var(--ease); }
.co-zb-toggle.co-open { transform: rotate(90deg); }
/* Unterzeile: die Kern-Listenzeilen der Aufgaben liegen direkt untereinander. */
.co-sub-row { padding-right: var(--sp-5); }

/* Arbeitszeitblatt: Raster wie im Vorbild — Summe oben, heute hervorgehoben, Wochenende schraffiert,
   Personen aufklappbar, Projekte eingerückt. Tageszellen, heutige Spalte, Summen- und Gruppenzeile zeichnet der
   Kern (Design::gridCell, cc-col-today, cc-row-sum, cc-row-group); hier nur die Anordnung. */
.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-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-project { padding-left: var(--sp-8); }

/* 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); }

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