/* CourtOS v2 — gemeinsame visuelle Ebene für Hub und Fachmodule.
   Token-Strategie: --courtos-* sind Aliase für --cos-* (Single Source of Truth).
   Dark Mode wird einheitlich über data-cos-theme="dark" gesteuert (courtos-theme.js). */
@import url('fonts/tabler/tabler-icons.css?v=20260723-icons2');
:root {
  /* --courtos-* als Aliase für --cos-* (rückwärtskompatibel) */
  --courtos-surface:        var(--cos-surface,       #ffffff);
  --courtos-surface-2:      var(--cos-surface-2,     #f5f3ef);
  --courtos-surface-3:      var(--cos-surface-3,     #ece9e3);
  --courtos-text:           var(--cos-text,          #0c0e12);
  --courtos-text-2:         var(--cos-text-2,        #5c6470);
  --courtos-text-3:         var(--cos-text-3,        #8a929c);
  --courtos-border:         var(--cos-border,        #e6e2db);
  --courtos-border-soft:    var(--cos-border-soft,   #efece6);
  --courtos-brand:          var(--cos-brand,         #27407a);
  --courtos-brand-strong:   var(--cos-brand-strong,  #16264c);
  --courtos-header:         var(--cos-brand-strong,  #16264c);
  --courtos-accent:         var(--cos-accent,        #e0a82e);
  --courtos-accent-strong:  var(--cos-accent-strong, #be851a);
  --courtos-shadow:         var(--cos-shadow-card,   0 18px 44px -24px rgba(18,38,76,.28));
}

/* Einheitlicher Dark-Mode-Selector: data-cos-theme (gesetzt durch courtos-theme.js).
   data-courtos-theme wird von courtos-theme.js ebenfalls gesetzt — bleibt als Legacy-Alias. */
:root[data-cos-theme="dark"],
:root[data-courtos-theme="dark"] {
  color-scheme: dark;

  /* Alle --courtos-* werden über --cos-* aufgelöst;
     --cos-* Dark-Werte kommen aus courtos-ui.css [data-cos-theme="dark"] Block.
     Hier nur noch die Legacy-Raw-Tokens die außerhalb von --cos-* verwendet werden: */
  --courtos-header:    #0d1730;
  --courtos-shadow:    0 22px 52px -28px rgba(0,0,0,.72);

  /* Legacy-Raw-Token-Overrides für Apps, die noch nicht auf --cos-* migriert sind */
  --paper:       var(--cos-surface,   #121824);
  --mist:        var(--cos-surface-2, #0b1019);
  --cloud:       var(--cos-surface-3, #1b2535);
  --navy:        var(--cos-brand,     #95a6cc);
  --navy-ui:     var(--cos-brand,     #95a6cc);
  --navy-deep:   var(--cos-brand-strong, #dfe7fa);
  --navy-700:    #b9c7e4;
  --navy-mist:   #aebbe0;
  --ink:         var(--cos-text,      #f4f6fb);
  --ink-2:       #e0e6f0;
  --graphite:    var(--cos-text-2,    #bac3d2);
  --graphite-2:  var(--cos-text-3,    #8792a5);
  --line:        var(--cos-border,    rgba(225,232,244,.14));
  --line-soft:   var(--cos-border-soft, rgba(225,232,244,.08));
  --bg-primary:  var(--cos-surface,   #121824);
  --bg-secondary: var(--cos-surface-2, #0b1019);
  --bg-tertiary: var(--cos-surface-3, #1b2535);
  --text-primary:   var(--cos-text,   #f4f6fb);
  --text-secondary: var(--cos-text-2, #bac3d2);
  --text-tertiary:  var(--cos-text-3, #8792a5);
  --border-t:    var(--cos-border-soft, rgba(225,232,244,.08));
  --border-s:    var(--cos-border,    rgba(225,232,244,.14));
  --page-bg:     var(--cos-surface-2, #0b1019);
  --primary:     var(--cos-brand,     #95a6cc);
  --primary-light: var(--cos-surface-3, #1b2535);
  --primary-text:  #f0c35e;
}

html.courtos-v2,
html.courtos-v2 body {
  background: var(--courtos-surface-2);
  color: var(--courtos-text);
}

body { transition: background-color 180ms ease, color 180ms ease; }

/* Die Fachmodule behalten ihre Funktionen, erhalten aber dieselbe klare v2-Chrome. */
html.courtos-v2 .chrome,
html.courtos-v2 .tb,
html.courtos-v2 .nav,
html.courtos-v2 .topbar {
  background: var(--courtos-header) !important;
  border-color: rgba(255, 255, 255, .14) !important;
  box-shadow: 0 10px 28px -22px rgba(0, 0, 0, .55);
}

html.courtos-v2 .chrome .brand-word,
html.courtos-v2 .chrome .brand-suffix,
html.courtos-v2 .chrome .eyebrow,
html.courtos-v2 .tb .logo,
html.courtos-v2 .tb .logo-text,
html.courtos-v2 .nav .brand .name,
html.courtos-v2 .topbar .crumb,
html.courtos-v2 .topbar .crumb b {
  color: #fff !important;
}

html.courtos-v2 .chrome .tab,
html.courtos-v2 .nav .help,
html.courtos-v2 .topbar button {
  color: rgba(255, 255, 255, .82) !important;
  border-color: rgba(255, 255, 255, .16) !important;
}

html.courtos-v2 .chrome .tab.on,
html.courtos-v2 .chrome .tab.on {
  background: rgba(255, 255, 255, .12) !important;
  color: #fff !important;
}

.courtos-theme-toggle {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 10001;
  min-width: 42px;
  height: 42px;
  border: 1px solid var(--courtos-border);
  border-radius: 999px;
  background: var(--courtos-surface);
  color: var(--courtos-brand-strong);
  box-shadow: var(--courtos-shadow);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font: 700 11px/1 "Sora", system-ui, sans-serif;
  letter-spacing: .06em;
  cursor: pointer;
}

.courtos-theme-toggle:hover,
.courtos-theme-toggle:focus-visible {
  border-color: var(--courtos-accent);
  outline: none;
}

:root {
  --courtos-sidebar-expanded: 276px;
  --courtos-sidebar-collapsed: 56px;
  --courtos-sidebar-width: var(--courtos-sidebar-expanded);
}

html[data-courtos-sidebar="collapsed"] {
  --courtos-sidebar-width: var(--courtos-sidebar-collapsed);
}

.courtos-sidebar-toolbar {
  position: absolute;
  top: 16px;
  right: 14px;
  z-index: 2;
}

.courtos-sidebar-toggle {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  color: #fff;
  cursor: pointer;
  transition: background 140ms ease, border-color 140ms ease, color 140ms ease, transform 140ms ease;
}

.courtos-sidebar-toggle:hover,
.courtos-sidebar-toggle:focus-visible {
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.24);
  outline: none;
}

.courtos-sidebar-toggle i {
  font-size: 17px;
  line-height: 1;
  transition: transform 180ms ease;
}
.courtos-sidebar-toggle.is-expanded i { transform: rotate(180deg); }
.courtos-side-rail {
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--courtos-sidebar-width);
  z-index: 9500;
  transition: width 180ms ease;
}

body.courtos-has-sidebar {
  overflow-x: hidden;
  margin-left: var(--courtos-sidebar-width) !important;
  width: auto !important;
  min-height: 100vh;
}
body.courtos-has-sidebar > .sidebar:not(.v2-hub-sidebar),
body.courtos-has-sidebar .app-shell > .sidebar:not(.v2-hub-sidebar),
body.courtos-has-sidebar #sidebarRoot:not(.v2-hub-sidebar) {
  display: none !important;
}

body.courtos-has-sidebar[data-courtos-module="coachboard"] .app-shell > .sidebar#sidebarRoot {
  display: flex !important;
}

/* Gemeinsame Oberflächen: Diese Klassen kommen in allen Fachmodulen vor. */
html[data-courtos-theme="dark"] body,
html[data-courtos-theme="dark"] .shell,
html[data-courtos-theme="dark"] .wrap,
html[data-courtos-theme="dark"] .chrome,
html[data-courtos-theme="dark"] .tb,
html[data-courtos-theme="dark"] .topbar,
html[data-courtos-theme="dark"] .app-shell,
html[data-courtos-theme="dark"] .panel,
html[data-courtos-theme="dark"] .card,
html[data-courtos-theme="dark"] .modal,
html[data-courtos-theme="dark"] .login-card {
  background-color: var(--courtos-surface) !important;
  border-color: var(--courtos-border) !important;
  color: var(--courtos-text);
}

html[data-courtos-theme="dark"] .shell,
html[data-courtos-theme="dark"] .panel,
html[data-courtos-theme="dark"] .card,
html[data-courtos-theme="dark"] .summary,
html[data-courtos-theme="dark"] .hero,
html[data-courtos-theme="dark"] .kdm-scroll,
html[data-courtos-theme="dark"] .modal,
html[data-courtos-theme="dark"] .login-card {
  box-shadow: var(--courtos-shadow) !important;
}

html[data-courtos-theme="dark"] input,
html[data-courtos-theme="dark"] textarea,
html[data-courtos-theme="dark"] select,
html[data-courtos-theme="dark"] .cos-input,
html[data-courtos-theme="dark"] .cos-select,
html[data-courtos-theme="dark"] .cos-textarea {
  background: var(--courtos-surface-3) !important;
  border-color: var(--courtos-border) !important;
  color: var(--courtos-text) !important;
}

/* Version 2 Hub: linker Modul-Rail plus ein fokussiertes Arbeitsdeck. */
.v2-hub-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: var(--courtos-sidebar-width) minmax(0, 1fr);
  background: var(--courtos-surface-2);
  transition: grid-template-columns 180ms ease;
}
.v2-hub-shell--framed { grid-template-columns: minmax(0, 1fr); }

.v2-hub-sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  padding: 34px 18px 18px;
  background: #16264c;
  color: #f8f9fc;
}

/* Module dürfen ihre eigene Body-Layouts behalten. Die Rail liegt bewusst
   außerhalb ihres Flows, damit keine Ansicht nach unten oder aus dem
   Viewport gedrückt wird. */
.v2-hub-sidebar.courtos-side-rail {
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--courtos-sidebar-width) !important;
  min-width: var(--courtos-sidebar-width) !important;
  max-width: var(--courtos-sidebar-width) !important;
  box-sizing: border-box;
  padding-top: 26px;
}

.v2-hub-sidebar__brand { padding: 0 14px 24px; }
.v2-hub-sidebar__wordmark {
  font: 800 30px/1 "Sora", system-ui, sans-serif;
  letter-spacing: -1.4px;
}
.v2-hub-sidebar__wordmark span { color: var(--courtos-accent); }
.v2-hub-sidebar__caption,
.v2-hub-sidebar__label {
  margin-top: 7px;
  color: rgba(245,248,255,.58);
  font: 700 10px/1.3 "Space Grotesk", ui-monospace, monospace;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.v2-hub-sidebar__label { margin: 0 14px 12px; }
.v2-hub-sidebar__home { margin: 0 0 22px; }
.v2-hub-sidebar__home button {
  background: rgba(77, 111, 183, .46);
  box-shadow: inset 4px 0 0 var(--courtos-accent);
  color: #fff;
}
.v2-hub-sidebar__nav { display: grid; gap: 3px; }
.v2-hub-sidebar button,
.v2-hub-sidebar__operations-link {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 13px;
  border: 0;
  border-radius: 11px;
  padding: 11px 14px;
  background: transparent;
  color: rgba(248,249,252,.83);
  text-align: left;
  font: 600 14px/1.2 "Sora", system-ui, sans-serif;
  cursor: pointer;
  transition: background 140ms ease, color 140ms ease, transform 140ms ease;
}
.v2-hub-sidebar select,
.v2-hub-sidebar .cos-select {
  width: 100%;
  min-height: 38px;
  border-radius: 10px;
  line-height: 1.2;
}
.v2-hub-sidebar button i,
.v2-hub-sidebar__operations-link i { width: 18px; font-size: 18px; text-align: center; color: var(--courtos-accent); }
.v2-hub-sidebar button:hover,
.v2-hub-sidebar button:focus-visible,
.v2-hub-sidebar__operations-link:hover,
.v2-hub-sidebar__operations-link:focus-visible {
  background: rgba(255,255,255,.10);
  color: #fff;
  outline: none;
}
.v2-hub-sidebar button.is-active {
  background: rgba(77, 111, 183, .46);
  box-shadow: inset 4px 0 0 var(--courtos-accent);
  color: #fff;
}
.v2-hub-sidebar button:active { transform: translateX(2px); }
.v2-hub-sidebar__divider { height: 1px; margin: 20px 6px 12px; background: rgba(255,255,255,.13); }
.v2-hub-sidebar__utility { color: rgba(248,249,252,.94) !important; }
.v2-hub-sidebar__user {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
  padding: 18px 14px 0;
  color: rgba(248,249,252,.65);
  font: 700 11px/1 "Space Grotesk", ui-monospace, monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.v2-hub-sidebar__dot { width: 8px; height: 8px; border-radius: 50%; background: #55bf88; box-shadow: 0 0 0 3px rgba(85,191,136,.15); }
.v2-hub-sidebar__user { flex-wrap: wrap; }
.v2-hub-sidebar__user-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  width: 100%;
  margin-top: 12px;
}
.v2-hub-sidebar .v2-hub-sidebar__user-actions button {
  justify-content: center;
  min-height: 30px;
  padding: 7px 6px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  color: rgba(248,249,252,.9);
  font: 700 9px/1.1 "Space Grotesk", ui-monospace, monospace;
  letter-spacing: .04em;
  text-transform: none;
}
.v2-hub-sidebar .v2-hub-sidebar__user-actions button:hover,
.v2-hub-sidebar .v2-hub-sidebar__user-actions button:focus-visible {
  background: rgba(255,255,255,.14);
  color: #fff;
}

/* Der Griff ist ein eigenständiges Steuerelement, kein Navigationseintrag. */
.v2-hub-sidebar .courtos-sidebar-toggle {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  min-height: 36px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  color: #fff;
  text-align: center;
}
.v2-hub-sidebar .courtos-sidebar-toggle i {
  width: auto;
  margin: 0;
  color: #ffffff;
  font-size: 17px;
  line-height: 1;
  font-family: Arial, sans-serif;
  font-style: normal;
  font-weight: 800;
}
/* Fallback, falls ein App-Build das Chevron-Glyph nicht im Tabler-Font enthält. */
.v2-hub-sidebar .courtos-sidebar-toggle i::after {
  content: "›";
  display: block;
  color: #e0a82e;
  font-size: 24px;
  line-height: .7;
  text-shadow: 0 1px 0 rgba(0,0,0,.2);
}
.v2-hub-sidebar .courtos-sidebar-toggle i::before { display: none !important; }
.v2-hub-sidebar .courtos-sidebar-toggle:hover,
.v2-hub-sidebar .courtos-sidebar-toggle:focus-visible {
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.28);
}
.v2-hub-sidebar .courtos-sidebar-toggle:active { transform: none; }

/* Eingeklappte Sidebar: Icon-only Rail mit klar getrenntem Toggle oben. */
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar {
  padding: 68px 8px 14px;
  overflow-y: auto;
  overflow-x: hidden;
}
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar__wordmark,
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar__caption,
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar__label,
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar__divider,
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar__user {
  display: none;
}
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar__brand {
  height: 0;
  padding: 0;
}
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar__home {
  margin: 0 0 8px;
}
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar__nav,
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar__management,
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar__operations {
  display: grid;
  gap: 8px;
}
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar__switchgroup {
  display: contents;
}
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar button {
  justify-content: center;
  gap: 0;
  width: 40px;
  height: 40px;
  min-height: 40px;
  padding: 10px 0;
  margin: 0 auto;
  border-radius: 10px;
  box-shadow: none;
}
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar button.is-active,
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar__home button {
  box-shadow: inset 4px 0 0 var(--courtos-accent);
}
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar button span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar button i {
  width: 20px;
  font-size: 18px;
}
html[data-courtos-sidebar="collapsed"] .courtos-sidebar-toolbar {
  top: 12px;
  right: auto;
  left: 10px;
}
html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar .courtos-sidebar-toggle {
  width: 36px;
  height: 36px;
  margin: 0;
  box-shadow: none;
}

.v2-hub-main { min-width: 0; padding: 0 34px 44px; }
.v2-hub-main { background: #fff; }
.v2-hub-main .cos-v2-dashboard { max-width: 1135px !important; padding: 30px 0 0 !important; }
.v2-hub-main .cos-v2-hub-header {
  min-height: 56px;
  align-items: center !important;
  margin-bottom: 28px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.v2-hub-main .cos-v2-hub-brand { color: var(--courtos-brand-strong) !important; font-size: 31px !important; }
.v2-hub-main .cos-v2-hub-tagline { display: none; }
.v2-hub-main .cos-v2-hub-actions { flex-direction: row !important; align-items: center !important; gap: 9px !important; }
.v2-hub-main .cos-v2-hub-header button { color: var(--courtos-text-2) !important; }
.v2-primary-label { display: none; }
.v2-primary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.v2-secondary-label { margin: 28px 0 12px 6px; color: #16264c; font: 800 19px/1.2 "Sora", system-ui, sans-serif; letter-spacing: -.4px; }
.v2-secondary-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }

.cos-v2-dashboard { max-width: 1120px !important; }
.cos-v2-dashboard .cos-v2-hub-header {
  align-items: center !important;
  margin-bottom: 30px !important;
  padding: 18px 22px !important;
  border: 0 !important;
  border-radius: 18px !important;
  background: var(--courtos-header) !important;
  box-shadow: var(--courtos-shadow) !important;
}
.cos-v2-dashboard .cos-v2-hub-brand,
.cos-v2-dashboard .cos-v2-hub-header [style*="letter-spacing"] { color: #fff !important; }
.cos-v2-dashboard .cos-v2-hub-header .cos-v2-hub-actions { gap: 7px !important; }
.cos-v2-dashboard .cos-v2-hub-header button { color: rgba(255,255,255,.82) !important; }
.cos-v2-dashboard .cos-app-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 14px !important;
}
.v2-primary-grid .cos-app-card--primary {
  min-height: 468px;
  padding: 56px 58px 34px !important;
  background: #fff !important;
  border-color: #e6e2db !important;
  box-shadow: none !important;
}
.v2-primary-grid .cos-app-card__marker { display: none; }
.v2-primary-grid .cos-app-card__icon {
  width: 145px;
  height: 145px;
  margin-bottom: 28px;
  border-radius: 17px;
  background: #16264c;
  color: #fff;
  font-size: 76px;
}
.v2-primary-grid .cos-app-card__name { display: inline-block; font-size: 36px !important; color: #16264c !important; border-bottom: 3px solid #e0a82e; padding-bottom: 12px; margin-bottom: 18px !important; }
.v2-primary-grid .cos-app-card__sub { display: none; }
.v2-primary-grid .cos-app-card__desc { max-width: 300px; font-size: 17px !important; color: #5c6470 !important; line-height: 1.55 !important; }
.v2-primary-grid .cos-app-card__meta { position: absolute; right: 52px; bottom: 42px; border: 0 !important; padding: 0 !important; }
.v2-primary-grid .cos-app-card__meta > div:first-child { display: none; }
.v2-primary-grid .cos-app-card__meta > div:last-child { color: #e0a82e !important; font-size: 26px !important; }

.v2-secondary-grid .cos-app-card {
  min-height: 162px;
  padding: 24px 10px 18px !important;
  background: #fff !important;
  border-color: #e6e2db !important;
  box-shadow: none !important;
  text-align: center;
}
.v2-secondary-grid .cos-app-card__marker { display: none; }
.v2-secondary-grid .cos-app-card__icon { width: auto; height: auto; margin: 0 0 14px; border-radius: 0; background: transparent; color: #16264c; font-size: 40px; }
.v2-secondary-grid .cos-app-card__name { font-size: 16px !important; color: #16264c !important; }
.v2-secondary-grid .cos-app-card__sub,
.v2-secondary-grid .cos-app-card__desc,
.v2-secondary-grid .cos-app-card__meta { display: none; }

/* Priority Deck desktop overrides: these come last so they win over the shared card rules. */
.v2-hub-main .cos-v2-hub-header {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.v2-hub-main .cos-v2-hub-brand { color: #16264c !important; }
.v2-hub-main .cos-v2-hub-header button { color: #5c6470 !important; }
.v2-primary-grid .cos-app-card--primary {
  grid-column: auto !important;
  min-height: 468px !important;
  padding: 56px 58px 34px !important;
}
.v2-primary-grid .cos-app-card--primary .cos-app-card__icon {
  width: auto !important;
  height: auto !important;
  margin: 0 0 24px !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #16264c !important;
  font-size: 48px !important;
}
.v2-primary-grid .cos-app-card--primary .cos-app-card__name {
  font-size: 36px !important;
  color: #16264c !important;
}
.v2-secondary-grid .cos-app-card--standard,
.v2-secondary-grid .cos-app-card--secondary { grid-column: auto !important; }
.v2-hub-main .cos-v2-dashboard .cos-v2-hub-header .cos-v2-hub-brand { color: #16264c !important; }
.v2-primary-grid .cos-app-card--primary .cos-app-card__icon { display: grid !important; justify-items: start !important; justify-content: start !important; }
.v2-primary-grid .cos-app-card--primary .cos-app-card__meta > div:last-child { font-size: 0 !important; }
.v2-primary-grid .cos-app-card--primary .cos-app-card__meta > div:last-child::after { content: "→"; font-size: 34px; }
.v2-hub-divider { margin: 26px 0 18px !important; background: #e9e5de !important; }
.v2-management-label { margin: 0 0 12px !important; color: #16264c !important; font: 800 19px/1.2 "Sora", system-ui, sans-serif !important; letter-spacing: -.4px !important; text-transform: none !important; }
.v2-management-panel { min-height: 78px; border: 1px solid #e6e2db !important; border-radius: 12px !important; background: #fff !important; box-shadow: none !important; }
.v2-management-panel--people { background: linear-gradient(90deg, #fff8e6 0%, #fffdf8 100%) !important; border-color: #f2dfad !important; }
.v2-management-title { color: #16264c !important; font-size: 17px !important; }
.v2-management-link { color: #be851a !important; font-size: 14px !important; }
.v2-hub-statusbar { margin: 34px -34px -44px !important; padding: 20px 34px !important; min-height: 72px; background: #16264c !important; border: 0 !important; color: rgba(255,255,255,.88) !important; }
.v2-hub-statusbar, .v2-hub-statusbar * { color: rgba(255,255,255,.83) !important; }
.v2-hub-statusbar > div:last-child { color: rgba(255,255,255,.5) !important; }
html[data-courtos-theme="dark"] .v2-hub-main { background: var(--courtos-surface-2) !important; }
html[data-courtos-theme="dark"] .v2-primary-grid .cos-app-card--primary, html[data-courtos-theme="dark"] .v2-secondary-grid .cos-app-card, html[data-courtos-theme="dark"] .v2-management-panel { background: var(--courtos-surface) !important; border-color: var(--courtos-border) !important; }
html[data-courtos-theme="dark"] .v2-primary-grid .cos-app-card__name, html[data-courtos-theme="dark"] .v2-secondary-grid .cos-app-card__name, html[data-courtos-theme="dark"] .v2-secondary-label, html[data-courtos-theme="dark"] .v2-management-label, html[data-courtos-theme="dark"] .v2-management-title { color: var(--courtos-text) !important; }
html[data-courtos-theme="dark"] .v2-primary-grid .cos-app-card__desc { color: var(--courtos-text-2) !important; }
html[data-courtos-theme="dark"] .v2-hub-sidebar button i,
html[data-courtos-theme="dark"] .v2-hub-sidebar__home button i,
html[data-courtos-theme="dark"] .v2-hub-sidebar__utility i {
  color: #ffffff !important;
}
html[data-courtos-theme="dark"] .v2-primary-grid .cos-app-card__icon {
  background: transparent !important;
  color: #ffffff !important;
  box-shadow: none !important;
}
html[data-courtos-theme="dark"] .v2-primary-grid .cos-app-card--primary .cos-app-card__icon {
  color: #ffffff !important;
}
html[data-courtos-theme="dark"] .v2-secondary-grid .cos-app-card__icon {
  background: transparent !important;
  color: #ffffff !important;
}

/* Dark-Mode-Absicherung der älteren Einzelmodule. Diese Screens verwenden
   eigene, historische Variablen; deshalb werden die sichtbaren Flächen und
   nicht nur ihre Schriftfarbe umgestellt. */
html[data-courtos-theme="dark"] .vt-brand-name,
html[data-courtos-theme="dark"] .hdr-title { color: var(--courtos-text) !important; }
html[data-courtos-theme="dark"] .vt-brand-tag,
html[data-courtos-theme="dark"] .hdr-sub { color: var(--courtos-text-2) !important; }
html[data-courtos-theme="dark"] .hdr {
  background: var(--courtos-surface) !important;
  border-color: var(--courtos-border) !important;
}
html[data-courtos-theme="dark"] #vs-modules-screen,
html[data-courtos-theme="dark"] #vs-analyse-screen {
  background: var(--courtos-surface-2) !important;
}
html[data-courtos-theme="dark"] .vs-mod-card,
html[data-courtos-theme="dark"] .vs-anl-header,
html[data-courtos-theme="dark"] .vs-stm-modal {
  background: var(--courtos-surface) !important;
  border-color: var(--courtos-border) !important;
  box-shadow: var(--courtos-shadow) !important;
}
html[data-courtos-theme="dark"] .vs-mod-title,
html[data-courtos-theme="dark"] .vs-mod-btn .vs-mod-name,
html[data-courtos-theme="dark"] .vs-anl-title-main { color: var(--courtos-text) !important; }
html[data-courtos-theme="dark"] .vs-mod-hint,
html[data-courtos-theme="dark"] .vs-mod-btn .vs-mod-desc,
html[data-courtos-theme="dark"] .vs-anl-title-sub { color: var(--courtos-text-2) !important; }
html[data-courtos-theme="dark"] .vs-mod-btn {
  background: var(--courtos-surface-3) !important;
  border-color: var(--courtos-border) !important;
}
html[data-courtos-theme="dark"] #cos-start main { background: var(--courtos-surface-2) !important; }
html[data-courtos-theme="dark"] #cos-start header { border-color: var(--courtos-border) !important; }
html[data-courtos-theme="dark"] #cos-start h1 { color: var(--courtos-text) !important; }
html[data-courtos-theme="dark"] #cos-start p,
html[data-courtos-theme="dark"] #cos-start header + div div:last-child { color: var(--courtos-text-2) !important; }
html[data-courtos-theme="dark"] #cos-start .drills-note {
  background: var(--courtos-surface-3) !important;
  color: var(--courtos-text) !important;
}
html[data-courtos-theme="dark"] #cos-start .drills-entry {
  background: var(--courtos-surface) !important;
  border-color: var(--courtos-border) !important;
}
html[data-courtos-theme="dark"] #cos-start .drills-entry__title { color: var(--courtos-text) !important; }
html[data-courtos-theme="dark"] #cos-start .drills-entry__body,
html[data-courtos-theme="dark"] #cos-start .drills-entry__detail { color: var(--courtos-text-2) !important; }
html[data-courtos-theme="dark"] #cos-start .drills-entry__detail { border-color: var(--courtos-border) !important; }

@media (max-width: 760px) {
  #cos-start main > div > div:nth-of-type(2),
  #cos-start main > div > section { grid-template-columns: 1fr !important; }
}

/* Kontrastvertrag für die älteren Fachmodule: nie weiß auf weiß oder
   dunkel auf dunkel bei Hilfs- und Navigations-Controls. */
.hub-back-btn, .logout-btn, .tb-btn, .tb-ic, .help, .pill, .iconbtn, .cbtn {
  color: #16264c;
  border-color: rgba(22, 38, 76, .32);
}
/* Replay nutzt diese drei Controls als span-Elemente; IDs halten den Kontrast
   auch dann stabil, wenn alte globale Header-Regeln nachladen. */
#beamer2, #helpBtn, #memEst {
  color: #16264c !important;
  background: #fff !important;
  border: 1px solid rgba(22,38,76,.26) !important;
}
.hub-back-btn, .logout-btn {
  background: #fff !important;
  box-shadow: 0 1px 0 rgba(22,38,76,.08);
}
html[data-courtos-theme="dark"] .hub-back-btn,
html[data-courtos-theme="dark"] .logout-btn,
html[data-courtos-theme="dark"] .tb-btn,
html[data-courtos-theme="dark"] .tb-ic,
html[data-courtos-theme="dark"] .help,
html[data-courtos-theme="dark"] .pill,
html[data-courtos-theme="dark"] .iconbtn,
html[data-courtos-theme="dark"] .cbtn {
  color: #f7f9ff !important;
  background: #263d6e !important;
  border-color: rgba(255,255,255,.22) !important;
  box-shadow: none !important;
}
html[data-courtos-theme="dark"] #beamer2,
html[data-courtos-theme="dark"] #helpBtn,
html[data-courtos-theme="dark"] #memEst {
  color: #f7f9ff !important;
  background: #263d6e !important;
  border-color: rgba(255,255,255,.22) !important;
}
/* Vollbild-Steuerung bleibt über dem Videobild transparent und kontrastreich. */
.cam:fullscreen .iconbtn,
.cam:fullscreen .cbtn,
html[data-courtos-theme="dark"] .cam:fullscreen .iconbtn,
html[data-courtos-theme="dark"] .cam:fullscreen .cbtn {
  background: rgba(255,255,255,.12) !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.25) !important;
}

/* Athletik ist ein Arbeitsbereich, kein Fenster im Fenster. */
body.courtos-has-sidebar[data-courtos-module="athletik"] {
  padding: 0 !important;
  align-items: stretch !important;
  gap: 0 !important;
}
body.courtos-has-sidebar[data-courtos-module="athletik"] .page-head {
  display: none !important;
}
body.courtos-has-sidebar[data-courtos-module="athletik"] .cos-hub-btn,
body.courtos-has-sidebar[data-courtos-module="athletik"] .cos-logout-btn {
  display: none !important;
}
body.courtos-has-sidebar[data-courtos-module="athletik"] .shell {
  width: 100% !important;
  max-width: none !important;
  min-height: 100vh;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
/* Das Coach-Dashboard setzt seine eigene `.cd-shell`. Auch diese Hülle muss
   im Modulmodus die komplette Restbreite nutzen, besonders nach Einklappen
   der Rail — sonst bleibt optisch ein zweites, schwebendes Fenster stehen. */
body.courtos-has-sidebar[data-courtos-module="athletik"] .cd-shell {
  width: 100% !important;
  max-width: none !important;
  min-height: 100vh;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
html[data-courtos-sidebar="collapsed"] body.courtos-has-sidebar[data-courtos-module="athletik"] {
  padding: 0 !important;
}

/* Scout und Drills füllen die verfügbare Arbeitsfläche aus. */
body.courtos-has-sidebar[data-courtos-module="scout"] .app {
  width: 100%; max-width: none; min-height: 100vh; margin: 0; padding: 18px 22px;
}
body.courtos-has-sidebar[data-courtos-module="scout"] #vs-modules-screen {
  position: relative;
  min-height: 100vh;
  padding: clamp(24px, 5vw, 72px);
  align-items: flex-start;
  justify-content: flex-start;
}
body.courtos-has-sidebar[data-courtos-module="scout"] .vs-mod-card {
  max-width: 1120px;
  min-height: min(680px, calc(100vh - 96px));
  padding: clamp(28px, 4vw, 56px);
  border-radius: 18px;
}
body.courtos-has-sidebar[data-courtos-module="scout"] .vs-mod-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
body.courtos-has-sidebar[data-courtos-module="scout"] .vs-mod-btn { min-height: 106px; }
@media (max-width: 700px) {
  body.courtos-has-sidebar[data-courtos-module="scout"] .vs-mod-list { grid-template-columns: 1fr; }
}
body.courtos-has-sidebar[data-courtos-module="drills"] #cos-start,
body.courtos-has-sidebar[data-courtos-module="drills"] #cos-app,
body.courtos-has-sidebar[data-courtos-module="drills"] #cos-studio { min-height: 100vh; }

/* Weitere Programme brechen früh um: kein Textstau mehr bei mittleren Breiten. */
@media (max-width: 1220px) {
  .v2-secondary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .v2-primary-grid .cos-app-card--primary { padding: 42px 40px 32px !important; }
  .v2-primary-grid .cos-app-card__name { font-size: clamp(27px, 3vw, 36px) !important; }
}
@media (max-width: 900px) {
  .v2-secondary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v2-hub-main { padding-inline: 24px; }
}

/* Trainer Hub · nutzt große Arbeitsflächen aus, ohne die Readiness-Liste zu
   verdichten. Unterhalb der sicheren Zweispaltenbreite wird sauber gestapelt. */
.trainer-today.trainer-today--empty {
  width: min(1640px, 100%);
  max-width: none;
}
.trainer-today--empty .trainer-hub-grid {
  grid-template-columns: minmax(0, 1.35fr) minmax(420px, .9fr);
  gap: 24px;
}
.trainer-today--empty .trainer-focus-list {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
@media (max-width: 1320px) {
  .trainer-today--empty .trainer-hub-grid {
    grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr);
    gap: 18px;
  }
}

@media (max-width: 1050px) {
  .trainer-today.trainer-today--empty { width: min(960px, 100%); }
  .trainer-today--empty .trainer-hub-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Trainer Hub · Wochenkalender & Readiness (2026-07-23) */
.trainer-today--empty { max-width: 1440px; }
.trainer-hub-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(250px,.85fr); gap:16px; align-items:start; }
.trainer-hub-primary { display:grid; gap:16px; min-width:0; }
.trainer-week-card,
.trainer-readiness-card { background:#fff; border:1px solid #e4e8ef; border-radius:18px; box-shadow:0 7px 24px rgba(32,49,73,.06); }
.trainer-week-card { overflow:hidden; }
.trainer-week-card__head { display:flex; justify-content:space-between; gap:18px; align-items:center; padding:20px 22px 16px; border-bottom:1px solid #edf0f4; }
.trainer-week-card__head span,
.trainer-readiness-card__head > div > span { display:block; color:#718096; font-size:10px; font-weight:800; letter-spacing:.1em; }
.trainer-week-card h2,
.trainer-readiness-card h2 { margin:3px 0 0; color:#18243a; font-size:20px; letter-spacing:-.025em; }
.trainer-week-card__controls { display:flex; align-items:center; gap:7px; color:#56657a; font-size:12px; font-weight:700; white-space:nowrap; }
.trainer-week-card__controls button { display:grid; width:30px; height:30px; place-items:center; border:1px solid #e0e6ed; border-radius:8px; background:#fff; color:#263750; cursor:pointer; }
.trainer-week-card__controls button:hover { background:#f3f6f9; }
.trainer-week-grid { display:grid; grid-template-columns:repeat(7,minmax(96px,1fr)); overflow-x:auto; }
.trainer-week-day { min-height:282px; border-right:1px solid #edf0f4; padding:12px 9px; }
.trainer-week-day:last-child { border-right:0; }
.trainer-week-day.is-today { background:#f5f8ff; }
.trainer-week-day__date { display:grid; width:100%; grid-template-columns:1fr auto; align-items:center; gap:3px; padding:0 3px 11px; border:0; border-bottom:1px solid #edf0f4; background:transparent; color:#637186; text-align:left; cursor:pointer; }
.trainer-week-day__date small { grid-column:1; font-size:10px; font-weight:800; text-transform:uppercase; }
.trainer-week-day__date strong { grid-column:1; color:#22324a; font-size:20px; line-height:1; }
.trainer-week-day__date i { grid-column:2; grid-row:1 / span 2; opacity:0; font-size:15px; }
.trainer-week-day__date:hover i { opacity:1; }
.trainer-week-day.is-today .trainer-week-day__date strong { color:#1d51aa; }
.trainer-week-day__events { display:grid; gap:7px; padding-top:10px; }
.trainer-week-event { display:flex; align-items:flex-start; gap:6px; width:100%; padding:7px 6px; border:0; border-radius:8px; background:#f6f8fa; color:#283950; text-align:left; cursor:pointer; }
.trainer-week-event:hover { background:#edf2f7; }
.trainer-week-event > i { width:4px; min-width:4px; height:27px; border-radius:3px; }
.trainer-week-event span { display:grid; gap:2px; color:#738094; font-size:10px; line-height:1.1; }
.trainer-week-event b { display:block; overflow:hidden; max-width:100%; color:#25354d; font-size:11px; line-height:1.25; white-space:nowrap; text-overflow:ellipsis; }
.trainer-week-day__empty { padding:8px 5px; color:#a1acbb; font-size:11px; }
.trainer-readiness-card { padding:21px; }
.trainer-readiness-card__head { display:flex; align-items:flex-start; justify-content:space-between; }
.trainer-readiness-card__head > i { display:grid; width:38px; height:38px; place-items:center; border-radius:12px; background:#eef4ff; color:#2762bc; font-size:20px; }
.trainer-readiness-card__intro { margin:13px 0 17px; color:#657388; font-size:12px; line-height:1.45; }
.trainer-readiness__preview { display:inline-flex; align-items:center; gap:5px; margin:-4px 0 10px; padding:4px 7px; border-radius:999px; background:#f0f4fb; color:#637796; font-size:10px; font-weight:800; }
.trainer-readiness__summary { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-bottom:15px; }
.trainer-readiness__count { min-height:59px; padding:9px 10px; border:1px solid #e8edf1; border-radius:10px; }
.trainer-readiness__count strong { display:block; font-size:19px; line-height:1; }
.trainer-readiness__count span { display:block; margin-top:5px; color:#748196; font-size:10px; font-weight:700; }
.trainer-readiness__count.is-gruen strong,.trainer-readiness__signal.is-gruen { color:#17946c; }
.trainer-readiness__count.is-gelb strong,.trainer-readiness__signal.is-gelb { color:#c58512; }
.trainer-readiness__count.is-rot strong,.trainer-readiness__signal.is-rot { color:#d34a49; }
.trainer-readiness__count.is-grau strong,.trainer-readiness__signal.is-grau { color:#8c99aa; }
.trainer-readiness__list { display:grid; gap:2px; margin:0; padding:0; list-style:none; }
.trainer-readiness__list li { display:grid; grid-template-columns:9px minmax(0,1fr) auto; align-items:center; gap:8px; min-height:35px; border-bottom:1px solid #eff2f5; }
.trainer-readiness__list li.trainer-readiness__row-link { cursor:pointer; border-radius:7px; transition:background .16s, box-shadow .16s; }
.trainer-readiness__list li.trainer-readiness__row-link:hover,.trainer-readiness__list li.trainer-readiness__row-link:focus-visible { background:#f4f7fc; box-shadow:inset 0 0 0 1px #dce7f6; outline:none; }
.trainer-readiness__signal { width:8px; height:8px; border-radius:50%; background:currentColor; }
.trainer-readiness__name { overflow:hidden; color:#314159; font-size:12px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.trainer-readiness__state { color:#27384f; font-size:14px; font-weight:800; text-align:right; }
.trainer-readiness__state small { display:block; color:#8995a4; font-size:9px; font-weight:600; }
.trainer-readiness__change { display:inline-flex; align-items:center; gap:1px; margin-left:4px; font-size:9px; font-weight:800; vertical-align:2px; }
.trainer-readiness__change i { font-size:10px; }
.trainer-readiness__change.is-up { color:#17946c; }
.trainer-readiness__change.is-down { color:#d34a49; }
.trainer-readiness__empty { margin:8px 0 16px; padding:13px; border-radius:10px; background:#f6f8fa; color:#738095; font-size:12px; line-height:1.45; }
.trainer-readiness-card__action { display:flex; width:100%; align-items:center; justify-content:space-between; margin-top:16px; padding:10px 0 0; border:0; border-top:1px solid #e9edf2; background:transparent; color:#2759aa; font-size:12px; font-weight:800; cursor:pointer; }
.trainer-readiness-card__details { margin-top:15px; color:#263750; }
.trainer-history-backdrop { position:fixed; z-index:10030; inset:0; display:grid; place-items:center; padding:28px; overflow:auto; background:rgba(16,28,47,.48); backdrop-filter:blur(5px); }
.trainer-history-dialog { width:min(1120px,100%); max-height:min(880px,calc(100vh - 56px)); overflow:auto; border:1px solid #d9e1eb; border-radius:22px; background:#fbfcfe; box-shadow:0 28px 72px rgba(16,28,47,.26); }
.trainer-history-dialog__head { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:28px 30px 22px; border-bottom:1px solid #e7ecf2; background:#fff; }
.trainer-history-dialog__head > div > span,.trainer-history-load > div > span,.trainer-history-chart__eyebrow { display:block; color:#718096; font-size:10px; font-weight:800; letter-spacing:.11em; }
.trainer-history-dialog__head h2 { margin:5px 0 6px; color:#17243a; font-size:28px; letter-spacing:-.04em; }
.trainer-history-dialog__head p { max-width:560px; margin:0; color:#657388; font-size:13px; line-height:1.5; }
.trainer-history-dialog__head button { display:grid; flex:0 0 auto; width:36px; height:36px; place-items:center; border:1px solid #dde5ee; border-radius:10px; background:#fff; color:#455872; cursor:pointer; font-size:19px; }
.trainer-history-dialog__head button:hover { background:#f1f5f9; }
.trainer-history-player-picker { display:flex; gap:7px; padding:12px 30px; overflow-x:auto; border-bottom:1px solid #e7ecf2; background:#fff; }
.trainer-history-player-picker button { display:flex; align-items:baseline; gap:6px; flex:0 0 auto; padding:7px 10px; border:1px solid #e0e7ef; border-radius:9px; background:#fff; color:#5e6e83; font:700 11px inherit; cursor:pointer; }
.trainer-history-player-picker button.is-active { border-color:#84a5d8; background:#edf4ff; color:#1e528f; }
.trainer-history-player-picker small { color:#8996a8; font-size:10px; }
.trainer-history-player-picker button.is-active small { color:#356aa6; }
.trainer-history-dialog__controls { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 30px; border-bottom:1px solid #e7ecf2; background:#fff; }
.trainer-history-dialog__score { display:grid; grid-template-columns:auto auto; align-items:center; column-gap:8px; }
.trainer-history-dialog__score span { grid-column:1 / -1; color:#718096; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.trainer-history-dialog__score strong { color:#1c3150; font-size:28px; letter-spacing:-.05em; }
.trainer-history-dialog__period { display:flex; gap:5px; padding:4px; border-radius:10px; background:#eff3f7; }
.trainer-history-dialog__period button { padding:7px 11px; border:0; border-radius:7px; background:transparent; color:#68778c; font:700 11px inherit; cursor:pointer; }
.trainer-history-dialog__period button.is-active { background:#fff; color:#1e3964; box-shadow:0 1px 5px rgba(27,48,76,.11); }
.trainer-history-overview { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; padding:22px 30px; }
.trainer-history-chart { min-width:0; padding:18px; border:1px solid #e1e8f0; border-radius:15px; background:#fff; }
.trainer-history-chart header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; min-height:54px; }
.trainer-history-chart h3 { margin:3px 0 0; color:#243854; font-size:16px; letter-spacing:-.025em; }
.trainer-history-chart header p { max-width:170px; margin:1px 0 0; color:#8491a3; font-size:10px; line-height:1.35; text-align:right; }
.trainer-history-chart svg { display:block; width:100%; height:auto; margin-top:4px; overflow:visible; color:#8491a3; font:10px Sora,system-ui,sans-serif; }
.trainer-history-chart__grid { stroke:#e8edf3; stroke-width:1; }
.trainer-history-chart__reference line { stroke:currentColor; stroke-width:1; stroke-dasharray:4 4; opacity:.5; }
.trainer-history-chart__date { fill:#8491a3; font-size:10px; }
.trainer-history-chart__reference-label { display:flex; align-items:center; gap:6px; margin:2px 0 -2px; color:#77869a; font-size:10px; font-weight:700; }
.trainer-history-chart__reference-label i { width:8px; height:8px; border-radius:2px; opacity:.8; }
.trainer-history-chart--empty { display:grid; min-height:180px; place-content:center; gap:8px; color:#8794a6; text-align:center; font-size:12px; }
.trainer-history-chart--empty i { font-size:24px; }
.trainer-history-load { margin:0 30px 22px; padding:19px; border:1px solid #e1e8f0; border-radius:15px; background:#fff; }
.trainer-history-load h3 { margin:4px 0 16px; color:#243854; font-size:16px; letter-spacing:-.02em; }
.trainer-history-load__rows { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.trainer-history-load__row { display:grid; grid-template-columns:1fr auto; gap:5px 8px; padding:9px 10px; border-radius:10px; background:#f5f8fb; color:#53657d; font-size:11px; }
.trainer-history-load__row time { grid-column:1 / -1; color:#273c59; font-size:10px; font-weight:800; }
.trainer-history-load__row span { white-space:nowrap; }
.trainer-history-load__row i { margin-right:3px; color:#5877a9; }
.trainer-history-dialog footer { display:flex; align-items:flex-start; gap:7px; padding:14px 30px 22px; color:#7b8798; font-size:11px; line-height:1.45; }
.trainer-history-dialog footer i { margin-top:1px; color:#4e6f9e; }
.trainer-focus-card { padding:20px 22px; border:1px solid #e4e8ef; border-radius:18px; background:#fff; box-shadow:0 7px 24px rgba(32,49,73,.05); }
.trainer-focus-card__head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.trainer-focus-card__head span { display:block; color:#718096; font-size:10px; font-weight:800; letter-spacing:.1em; }
.trainer-focus-card__head h2 { margin:3px 0 0; color:#18243a; font-size:20px; letter-spacing:-.025em; }
.trainer-focus-card__head small { padding:5px 8px; border-radius:999px; background:#f0f4fb; color:#637796; font-size:10px; font-weight:800; }
.trainer-focus-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.trainer-focus-item { display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:10px; min-height:70px; padding:11px; border:1px solid #e8edf2; border-radius:12px; background:#fff; color:#263750; text-align:left; cursor:pointer; transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease; }
.trainer-focus-item:hover { transform:translateY(-1px); border-color:#c9d7ee; box-shadow:0 7px 16px rgba(29,65,118,.08); }
.trainer-focus-item__icon { display:grid; width:36px; height:36px; place-items:center; border-radius:10px; background:#edf3fd; color:#2c61ad; font-size:18px; }
.trainer-focus-item.is-warning .trainer-focus-item__icon { background:#fff5df; color:#b47713; }
.trainer-focus-item.is-positive .trainer-focus-item__icon { background:#eaf8f1; color:#16815d; }
.trainer-focus-item__copy { display:grid; min-width:0; gap:4px; }
.trainer-focus-item__copy strong { overflow:hidden; color:#263750; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.trainer-focus-item__copy small { color:#7a8799; font-size:10px; line-height:1.3; }
.trainer-focus-item > b { display:grid; min-width:21px; height:21px; place-items:center; border-radius:50%; background:#fff1ed; color:#c64a3e; font-size:11px; }
.trainer-focus-item > .ti { color:#8290a3; font-size:16px; }
.trainer-workspaces { margin-top:24px; padding:22px; border:1px solid #e4e8ef; border-radius:18px; background:#fff; box-shadow:0 7px 24px rgba(32,49,73,.05); }
.trainer-today--empty .trainer-workspaces { display:none !important; }
.trainer-workspaces__head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:16px; }
.trainer-workspaces__head span { display:block; color:#718096; font-size:10px; font-weight:800; letter-spacing:.1em; }
.trainer-workspaces__head h2 { margin:3px 0 0; color:#18243a; font-size:20px; letter-spacing:-.025em; }
.trainer-workspaces__head p { max-width:340px; margin:0; color:#718096; font-size:12px; line-height:1.4; text-align:right; }
.trainer-workspaces__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.trainer-workspace { display:grid; grid-template-columns:40px minmax(0,1fr); gap:11px; min-height:126px; padding:14px; border:1px solid #e6ebf1; border-radius:13px; background:#fff; color:#263750; text-align:left; cursor:pointer; transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease; }
.trainer-workspace:hover { transform:translateY(-2px); border-color:#bfcfea; box-shadow:0 10px 20px rgba(29,65,118,.09); }
.trainer-workspace__icon { display:grid; width:40px; height:40px; place-items:center; border-radius:11px; background:#eef4ff; color:#2b61ae; font-size:20px; }
.trainer-workspace__copy { display:grid; align-content:center; min-width:0; gap:5px; }
.trainer-workspace__copy strong { color:#263750; font-size:13px; }
.trainer-workspace__copy small { color:#718096; font-size:10px; line-height:1.35; }
.trainer-workspace__action { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; align-self:end; color:#2b61ae; font-size:11px; font-weight:800; }
.trainer-workspace__action i { font-size:15px; }

@media (max-width: 720px) {
  .trainer-week-card__head { align-items:flex-start; flex-direction:column; }
  .trainer-week-card__controls { width:100%; justify-content:space-between; }
  .trainer-week-grid { grid-template-columns:repeat(7,minmax(88px,1fr)); }
  .trainer-week-day { min-height:240px; }
  .trainer-focus-list { grid-template-columns:1fr; }
  .trainer-workspaces__head { align-items:flex-start; flex-direction:column; }
  .trainer-workspaces__head p { text-align:left; }
  .trainer-workspaces__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .trainer-history-backdrop { align-items:start; padding:10px; }
  .trainer-history-dialog { max-height:calc(100vh - 20px); border-radius:16px; }
  .trainer-history-dialog__head,.trainer-history-dialog__controls { padding:19px; }
  .trainer-history-player-picker { padding:10px 19px; }
  .trainer-history-dialog__head h2 { font-size:23px; }
  .trainer-history-overview { grid-template-columns:1fr; padding:14px 19px; }
  .trainer-history-load { margin:0 19px 14px; }
  .trainer-history-load__rows { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .trainer-history-dialog footer { padding:13px 19px 18px; }
}
@media (max-width: 480px) { .trainer-workspaces__grid { grid-template-columns:1fr; } }
@media (max-width: 620px) {
  .v2-secondary-grid { grid-template-columns: 1fr; }
  .v2-primary-grid .cos-app-card--primary { padding: 30px 28px 28px !important; }
  .v2-primary-grid .cos-app-card__meta { right: 28px; bottom: 26px; }
}
html[data-courtos-theme="dark"] .cos-app-card__icon {
  color: #ffffff !important;
}
.cos-v2-dashboard .cos-app-card--primary {
  grid-column: span 3;
  min-height: 272px;
  padding: 30px 30px 24px !important;
}
.cos-v2-dashboard .cos-app-card--primary .cos-app-card__name { font-size: 23px !important; }
.cos-v2-dashboard .cos-app-card--primary .cos-app-card__desc { max-width: 32rem; font-size: 13px !important; }
.cos-v2-dashboard .cos-app-card--standard { grid-column: span 2; }
.cos-v2-dashboard .cos-app-card--secondary { grid-column: span 2; opacity: .92; }
.cos-v2-dashboard .cos-app-card--primary .cos-app-card__marker {
  height: 5px !important;
  background: var(--courtos-accent) !important;
}
.cos-app-card__icon {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin: 0 0 16px;
  border-radius: 12px;
  background: var(--courtos-brand-strong);
  color: #fff;
  font-size: 22px;
}
.cos-app-card--primary .cos-app-card__icon { width: 56px; height: 56px; border-radius: 16px; font-size: 28px; }

html[data-courtos-theme="dark"] .cos-v2-dashboard,
html[data-courtos-theme="dark"] .cos-v2-dashboard [data-cos-text] { color: var(--courtos-text) !important; }
html[data-courtos-theme="dark"] .cos-v2-dashboard [data-cos-surface] {
  background: var(--courtos-surface) !important;
  border-color: var(--courtos-border) !important;
}

/* Gemeinsame Modul-Chrome: Die bestehenden Werkzeuge behalten ihre komplette
   Fachlogik, teilen aber Hierarchie, Tiefe und Arbeitsfläche des Trainer Hub. */
body.courtos-has-sidebar {
  background: var(--courtos-surface-2) !important;
  color: var(--courtos-text);
}
body.courtos-has-sidebar :is(.chrome, .tb, .topbar, .nav) {
  background: var(--courtos-header) !important;
  border-color: var(--courtos-border) !important;
  box-shadow: 0 12px 28px -24px rgba(0, 0, 0, .68);
}
body.courtos-has-sidebar :is(.chrome, .tb, .topbar, .nav) :is(button, .tab, .help, .pill, .logo, .brand, .name, .sub) {
  color: rgba(248, 250, 255, .9) !important;
}
/* Athletik: Die innere Bereichsnavigation liegt in der dunklen Kopfzeile und
   braucht eigene Kontrastwerte — nicht die generische Header-Textfarbe. */
body.courtos-has-sidebar .tb .tnav {
  background: rgba(255, 255, 255, .08) !important;
  border: 1px solid rgba(255, 255, 255, .11);
}
body.courtos-has-sidebar .tb .tnav .tn {
  color: #c6d0e3 !important;
  background: transparent !important;
}
body.courtos-has-sidebar .tb .tnav .tn:hover {
  color: #ffffff !important;
  background: rgba(255, 255, 255, .08) !important;
}
body.courtos-has-sidebar .tb .tnav .tn.on {
  color: #ffffff !important;
  background: rgba(149, 166, 204, .28) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1) !important;
}
body.courtos-has-sidebar :is(.wrap, .page-head) {
  max-width: 1440px;
}
body.courtos-has-sidebar .wrap {
  padding: 30px clamp(20px, 3vw, 42px) 80px;
}
/* Radar und Replay verwenden ihre eigene, breite Arbeitsflaeche. Sobald sie
   als Modul laufen, darf kein altes Header-Overlay oder 100vw-Layout neben der
   Rail stehen bleiben. */
body.courtos-has-sidebar[data-courtos-module="radar"] #app-screen,
body.courtos-has-sidebar[data-courtos-module="replay"] #grid {
  min-width: 0;
  width: 100%;
}
body.courtos-has-sidebar[data-courtos-module="radar"] .cos-hub-btn,
body.courtos-has-sidebar[data-courtos-module="radar"] .cos-logout-btn,
body.courtos-has-sidebar[data-courtos-module="replay"] .cos-hub-btn,
body.courtos-has-sidebar[data-courtos-module="replay"] .cos-logout-btn {
  display: none !important;
}
body.courtos-has-sidebar .shell {
  border-radius: 18px;
  border-color: var(--courtos-border) !important;
  box-shadow: 0 22px 46px -34px rgba(0, 0, 0, .76) !important;
}
body.courtos-has-sidebar :is(.panel, .card, .kdm-scroll, .summary, .hero) {
  border-color: var(--courtos-border) !important;
}
body.courtos-has-sidebar button:focus-visible {
  outline: 2px solid var(--courtos-accent) !important;
  outline-offset: 2px;
}

/* Darkmode-Kompatibilität für die älteren, eigenständigen Fachmodule.
   Sie verwenden teilweise feste helle Flächen, während ihre Texttokens bereits
   auf hell wechseln würden. Diese Ebene hält Fläche, Text und Rahmen zusammen. */
html[data-courtos-theme="dark"] .cos-legal-link {
  color: #d7e0ee !important;
  background: rgba(13, 23, 48, .9) !important;
  border-color: rgba(225, 232, 244, .22) !important;
  opacity: .94 !important;
}

html[data-courtos-theme="dark"] body[data-courtos-module="kader"] .chrome .tab.on,
html[data-courtos-theme="dark"] body[data-courtos-module="kader"] .chrome .datepill,
html[data-courtos-theme="dark"] body[data-courtos-module="kader"] .btn-primary {
  background: #27407a !important;
  color: #ffffff !important;
  border-color: rgba(225, 232, 244, .18) !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="kader"] .chrome .tab:not(.on) {
  color: #c6d0e3 !important;
}

html[data-courtos-theme="dark"] body[data-courtos-module="athletik"] .cal-mode-b {
  background: var(--courtos-surface-3) !important;
  color: var(--courtos-text-2) !important;
}

html[data-courtos-theme="dark"] body[data-courtos-module="scout"] :is(.vs-mod-btn, .vs-stm-body, .vs-stat-empty, .log-wrap, .vs-tut-body) {
  background: var(--courtos-surface) !important;
  border-color: var(--courtos-border) !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="scout"] :is(.vs-mod-name, .vs-tut-h) {
  color: var(--courtos-text) !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="scout"] :is(.vs-mod-desc, .vs-tut-p, .hl-card-body, .log-hd span) {
  color: var(--courtos-text-2) !important;
}

html[data-courtos-theme="dark"] body[data-courtos-module="replay"] .toolbar {
  background: rgba(11, 16, 25, .92) !important;
  border-color: var(--courtos-border) !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="replay"] :is(.toolbar .group, .help, .pill, .btn-ghost, .hero-card) {
  background: var(--courtos-surface) !important;
  border-color: var(--courtos-border) !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="replay"] :is(.help, .pill, .btn-ghost, .tg, .lead, .unit) {
  color: var(--courtos-text-2) !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="replay"] :is(h1, .hero-card h1, .hero-card .lead b) {
  color: var(--courtos-text) !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="replay"] .btn-primary {
  background: #27407a !important;
  color: #ffffff !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="replay"] .btn-optic {
  color: #16264c !important;
}

html[data-courtos-theme="dark"] body[data-courtos-module="radar"] .rn-mt.on,
html[data-courtos-theme="dark"] body[data-courtos-module="radar"] .rn-cta:not(.dim) {
  background: #27407a !important;
  color: #ffffff !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="radar"] .rn-cta-meta {
  color: #c6d0e3 !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="radar"] .rn-cta.dim {
  background: #37465f !important;
  color: #d7e0ee !important;
  opacity: .72;
}
html[data-courtos-theme="dark"] body[data-courtos-module="radar"] .step-tab {
  color: #c6d0e3 !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="radar"] .step-tab.active {
  color: #f0c35e !important;
  border-bottom-color: #f0c35e !important;
}

html[data-courtos-theme="dark"] body[data-courtos-module="anzeigetafel"] :is(.tb-hub, .end-heim) {
  background: #27407a !important;
  color: #ffffff !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="anzeigetafel"] .btn-plus {
  color: #16264c !important;
}

/* Drills baut weite Teile der Arbeitsoberfläche als sichere Inline-Komponenten.
   Diese Regeln erfassen genau deren helle Eingabe- und Kartenflächen im Darkmode. */
html[data-courtos-theme="dark"] body[data-courtos-module="drills"] :is([style*="background:#fff"], [style*="background: #fff"], .cosin, .costa) {
  background: var(--courtos-surface) !important;
  border-color: var(--courtos-border) !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="drills"] :is([style*="color:#0C0E12"], [style*="color: #0C0E12"], .cosin, .costa) {
  color: var(--courtos-text) !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="drills"] :is([style*="color:#5C6470"], [style*="color: #5C6470"], .coslbl) {
  color: var(--courtos-text-2) !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="drills"] #cos-start > div {
  background: radial-gradient(120% 90% at 50% -10%, #1b2535 0%, #121824 70%, #0b1019 100%) !important;
}
html[data-courtos-theme="dark"] body[data-courtos-module="drills"] #cos-start button > div:last-child {
  color: var(--courtos-text) !important;
}

@media (max-width: 900px) {
  .v2-hub-shell { grid-template-columns: var(--courtos-sidebar-width) minmax(0, 1fr); }
  .v2-hub-sidebar { padding-inline: 12px; }
  .v2-hub-sidebar__brand { padding-inline: 8px; }
  .v2-hub-sidebar__nav { grid-template-columns: 1fr; }
  .v2-hub-sidebar__user { display: none; }
  .v2-hub-main { padding: 0 18px 32px; }
  .v2-hub-statusbar { margin: 30px -18px -32px !important; padding: 18px !important; }
  .v2-primary-grid { grid-template-columns: 1fr; }
  .v2-secondary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .v2-primary-grid .cos-app-card--primary { min-height: 360px; padding: 36px !important; }
  .v2-primary-grid .cos-app-card__icon { width: 100px; height: 100px; font-size: 52px; }
  .cos-v2-dashboard .cos-app-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .cos-v2-dashboard .cos-app-card--primary,
  .cos-v2-dashboard .cos-app-card--standard,
  .cos-v2-dashboard .cos-app-card--secondary { grid-column: span 1; min-height: unset; }
}

/* 2026-07-23 · Trainer Hub v3: gleiche Prioritäten wie Operations.
   Der Einstieg führt durch den nächsten Schritt; der Monatskalender bleibt
   erreichbar, nimmt aber nicht mehr die wichtigste Fläche ein. */
.trainer-today {
  width: min(1180px, 100%);
  padding-top: 34px;
}
.trainer-today__header { margin-bottom: 24px; }
.trainer-today__header-actions { align-self: flex-start; }
.trainer-hero-card,
.trainer-progress-card {
  border: 1px solid #e2e3e6;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 42px -34px rgba(22,38,76,.28);
}
.trainer-hero-card {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 148px;
  margin-top: 0;
  padding: 24px 26px 24px 28px;
  overflow: hidden;
}
.trainer-hero-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: #e0a82e;
}
.trainer-hero-card__copy { position: relative; z-index: 1; min-width: 0; }
.trainer-hero-card__copy > span,
.trainer-progress-card__head > div > p,
.trainer-stat > span {
  color: #7b8390;
  font: 700 9px/1.2 "Space Grotesk", sans-serif;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.trainer-hero-card__copy > span { display: block; margin-bottom: 8px; }
.trainer-hero-card__copy h2 { margin: 0; color: #17213a; font-size: 24px; letter-spacing: -.7px; }
.trainer-hero-card__copy p { max-width: 680px; margin: 7px 0 12px; color: #68707c; font-size: 13px; line-height: 1.55; }
.trainer-hero-card__chips { display: flex; flex-wrap: wrap; gap: 7px; }
.trainer-hero-card__chips span {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 10px;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  background: #fff;
  color: #535c6b;
  font-size: 10px;
  font-weight: 700;
}
.trainer-hero-card__action { position: relative; z-index: 1; flex: 0 0 auto; min-width: 148px; }
.trainer-progress-card { margin-top: 14px; padding: 20px 22px; }
.trainer-progress-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.trainer-progress-card__head h2 { margin: 0; color: #17213a; font-size: 17px; letter-spacing: -.3px; }
.trainer-progress-card__head p { margin: 5px 0 0; color: #737b87; font-size: 12px; }
.trainer-progress-card__head > span { color: #7b8390; font: 700 10px/1 "Space Grotesk", sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.trainer-progress-card__steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 16px; }
.trainer-progress-step {
  display: grid;
  grid-template-columns: 30px minmax(0,1fr) 16px;
  align-items: center;
  gap: 9px;
  min-width: 0;
  min-height: 58px;
  padding: 10px 11px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: #f7f8fa;
  color: #31405a;
  text-align: left;
  cursor: pointer;
}
.trainer-progress-step:hover,
.trainer-progress-step:focus-visible { border-color: #e0a82e; outline: none; }
.trainer-progress-step__icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: #edf1f8; color: #27407a; }
.trainer-progress-step.is-done { background: #f0f8f3; }
.trainer-progress-step.is-done .trainer-progress-step__icon { background: #d9efdf; color: #287a4f; }
.trainer-progress-step > span:nth-child(2) { display: grid; min-width: 0; gap: 3px; }
.trainer-progress-step strong { overflow: hidden; color: #28364f; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.trainer-progress-step small { overflow: hidden; color: #7a8290; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.trainer-progress-step > i:last-child { color: #8992a0; font-size: 13px; }
.trainer-progress-step.is-done > i:last-child { color: #287a4f; }
.trainer-stat-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 22px;
  border-top: 1px solid #e7e8eb;
  border-bottom: 1px solid #e7e8eb;
}
.trainer-stat { display: flex; align-items: center; gap: 13px; min-height: 82px; padding: 14px 20px; border-right: 1px solid #e7e8eb; }
.trainer-stat:last-child { border-right: 0; }
.trainer-stat > i { color: #b78a24; font-size: 22px; }
.trainer-stat > span { display: grid; gap: 5px; color: #7c8490; font-size: 10px; letter-spacing: 0; text-transform: none; }
.trainer-stat > span strong { color: #17213a; font: 700 23px/1 "Sora", sans-serif; letter-spacing: -.5px; }
.trainer-today__layout { margin-top: 22px; }
.trainer-day, .trainer-handoffs { padding: 22px 24px; }
.trainer-day__head { margin-top: 0; }
.trainer-day__head-actions { display: flex; align-items: center; gap: 8px; }
.trainer-day__head-actions > .trainer-secondary-button { min-height: 34px; padding-inline: 11px; font-size: 11px; }
.trainer-calendar-details { position: relative; }
.trainer-calendar-details summary { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 11px; border: 1px solid #d9dde4; border-radius: 9px; background: #fff; color: #27407a; font-size: 11px; font-weight: 700; cursor: pointer; list-style: none; }
.trainer-calendar-details summary::-webkit-details-marker { display: none; }
.trainer-calendar-details[open] summary { border-color: #e0a82e; background: #fffaf0; }
.trainer-calendar-details__body { position: absolute; top: 42px; right: 0; z-index: 20; width: min(420px, calc(100vw - 48px)); padding: 14px; border: 1px solid #e2e3e6; border-radius: 14px; background: #fff; box-shadow: 0 24px 52px -26px rgba(22,38,76,.4); }
.trainer-calendar-details__body .trainer-cal { margin-top: 0; }
.trainer-day__empty { margin-top: 14px; }
.trainer-handoffs { min-height: 100%; }
.trainer-areas, .trainer-tools { margin-top: 28px; }
.trainer-area-card { min-height: 190px; }

@media (max-width: 1020px) {
  .trainer-progress-card__steps { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .trainer-today { padding-top: 70px; }
  .trainer-hero-card { display: block; padding: 22px 20px 20px 24px; }
  .trainer-hero-card__action { width: 100%; margin-top: 16px; }
  .trainer-progress-card { padding: 18px 14px; }
  .trainer-progress-card__steps { grid-template-columns: 1fr; }
  .trainer-stat-row { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .trainer-stat:nth-child(2) { border-right: 0; }
  .trainer-stat:nth-child(-n+2) { border-bottom: 1px solid #e7e8eb; }
  .trainer-today__layout { margin-top: 16px; }
  .trainer-day__head { align-items: flex-start; }
  .trainer-day__head-actions { flex-wrap: wrap; justify-content: flex-end; }
}
@media (max-width: 560px) {
  .trainer-day, .trainer-handoffs { padding: 18px 16px; }
  .trainer-day__head { display: block; }
  .trainer-day__head-actions { justify-content: flex-start; margin-top: 12px; }
  .trainer-calendar-details__body { left: 0; right: auto; width: min(390px, calc(100vw - 64px)); }
}

@media (max-width: 560px) {
  .v2-hub-sidebar__nav { grid-template-columns: 1fr; }
  .v2-hub-sidebar__utility { display: none !important; }
  .v2-hub-sidebar__operations-link { display: flex !important; }
  .v2-hub-sidebar__settings { display: flex !important; }
  html[data-courtos-sidebar="collapsed"] .v2-hub-sidebar button.v2-hub-sidebar__settings {
    justify-content: flex-start;
    gap: 10px;
    width: 100%;
    height: auto;
    min-height: 42px;
    margin: 0;
    padding: 10px 12px;
  }
  .v2-secondary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v2-primary-grid .cos-app-card--primary { min-height: 320px; padding: 28px !important; }
  .courtos-theme-toggle { right: 12px; bottom: 12px; }
  .cos-v2-dashboard .cos-app-grid { grid-template-columns: 1fr !important; }
  .cos-v2-dashboard .cos-app-card--primary,
  .cos-v2-dashboard .cos-app-card--standard,
  .cos-v2-dashboard .cos-app-card--secondary { grid-column: span 1; }
}

/* Kader: drei Arbeitsaktionen bleiben auf dem Telefon als eine kompakte
   Command-Row sichtbar. Konto- und Datumsaktionen wandern ins Seitenmenü. */
@media (max-width: 900px) {
  body[data-courtos-module="kader"] .chrome {
    transition: transform .2s ease, opacity .2s ease;
    will-change: transform;
  }
  body[data-courtos-module="kader"].courtos-mobile-header-hidden .chrome {
    transform: translateY(-110%);
    opacity: 0;
    pointer-events: none;
  }
  body[data-courtos-module="kader"] .chrome-r {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    gap: 6px !important;
    padding-left: 0 !important;
  }
  body[data-courtos-module="kader"] .chrome-r > .datepill,
  body[data-courtos-module="kader"] .chrome-r > .chrome-ic { display: none !important; }
  body[data-courtos-module="kader"] .chrome-r > .btn-primary,
  body[data-courtos-module="kader"] .chrome-r > .kd-linkbtn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 38px !important;
    padding: 7px 5px !important;
    border-radius: 9px !important;
    font-size: 10px !important;
    line-height: 1.1 !important;
    text-align: center;
    white-space: normal !important;
  }
  body[data-courtos-module="kader"] .chrome-r > .kd-linkbtn {
    border-color: #bd493c !important;
    background: #bd493c !important;
    color: #fff !important;
  }
}

/* Trainer Hub · eine durchgehende Arbeitsfläche statt sichtbarer Karten.
   Inhalte und Interaktionen bleiben identisch; Orientierung entsteht nur über
   Hierarchie, ruhige Abstände und zurückhaltende Trennlinien. */
.trainer-today--empty {
  background:#fff;
}
.trainer-today--empty .trainer-hub-grid {
  gap:0;
  border-top:1px solid #e8edf4;
}
.trainer-today--empty .trainer-hub-primary {
  gap:0;
  padding-right:clamp(20px,2.2vw,42px);
  border-right:1px solid #e8edf4;
}
.trainer-today--empty .trainer-week-card,
.trainer-today--empty .trainer-focus-card,
.trainer-today--empty .trainer-readiness-card,
.trainer-today--empty .trainer-workspaces {
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.trainer-today--empty .trainer-week-card {
  border-bottom:1px solid #e8edf4;
}
.trainer-today--empty .trainer-week-card--apple .trainer-apple-calendar {
  background:transparent;
}
.trainer-today--empty .trainer-focus-card {
  padding:22px 0 0;
}
.trainer-today--empty .trainer-readiness-card {
  padding:0 0 0 clamp(20px,2.2vw,42px);
}
.trainer-today--empty .trainer-readiness-card__head {
  padding-top:18px;
}
.trainer-today--empty .trainer-workspaces {
  margin-top:clamp(22px,3vh,38px);
  padding:22px 0 0;
  border-top:1px solid #e8edf4;
}
.trainer-today--empty .trainer-workspaces__grid,
.trainer-today--empty .trainer-focus-list {
  gap:0;
}
.trainer-today--empty .trainer-workspace,
.trainer-today--empty .trainer-focus-item {
  border:0;
  border-left:1px solid #e8edf4;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.trainer-today--empty .trainer-workspace:first-child,
.trainer-today--empty .trainer-focus-item:first-child {
  border-left:0;
}
.trainer-today--empty .trainer-workspace:hover {
  transform:none;
  border-color:#e8edf4;
  background:#f8faff;
  box-shadow:none;
}
.trainer-today--empty .trainer-focus-item:hover {
  background:#f8faff;
}

@media (max-width:1080px) {
  .trainer-today--empty .trainer-hub-grid { gap:0; }
  .trainer-today--empty .trainer-hub-primary {
    padding-right:0;
    border-right:0;
  }
  .trainer-today--empty .trainer-readiness-card {
    margin-top:26px;
    padding:20px 0 0;
    border-top:1px solid #e8edf4;
  }
}
@media (max-width:700px) {
  .trainer-today--empty .trainer-workspaces__grid,
  .trainer-today--empty .trainer-focus-list { gap:0; }
  .trainer-today--empty .trainer-workspace,
  .trainer-today--empty .trainer-focus-item {
    border-top:1px solid #e8edf4;
    border-left:0;
  }
  .trainer-today--empty .trainer-workspace:first-child,
  .trainer-today--empty .trainer-focus-item:first-child { border-top:0; }
}

/* Trainer Hub · nutzt die komplette Arbeitsfläche. Der rechte Bereich bleibt
   für eine lange Readiness-Liste reserviert und wird erst bei schmalen
   Fenstern unter die linke Arbeitsseite verschoben. */
.trainer-today.trainer-today--empty {
  width: 100%;
  max-width: none;
  min-height: calc(100vh - 56px);
}
.trainer-today--empty .trainer-hub-grid {
  grid-template-columns: minmax(0, 1.45fr) minmax(460px, .95fr);
  min-height: min(820px, calc(100vh - 164px));
  gap: clamp(20px, 1.6vw, 32px);
  align-items: stretch;
}
.trainer-today--empty .trainer-hub-primary {
  grid-template-rows: minmax(390px, 1fr) auto;
  align-content: stretch;
}
.trainer-today--empty .trainer-week-card { min-height: 390px; }
.trainer-today--empty .trainer-readiness-card {
  display: flex;
  flex-direction: column;
  min-height: min(820px, calc(100vh - 164px));
}
.trainer-today--empty .trainer-readiness__list {
  flex: 1 1 auto;
  align-content: start;
}
.trainer-today--empty .trainer-workspaces { margin-top: clamp(24px, 3vh, 42px); }

@media (max-width: 1320px) {
  .trainer-today--empty .trainer-hub-grid {
    grid-template-columns: minmax(0, 1.25fr) minmax(390px, .9fr);
    min-height: auto;
  }
  .trainer-today--empty .trainer-readiness-card { min-height: 0; }
}
@media (max-width: 1080px) {
  .trainer-today--empty .trainer-hub-grid { grid-template-columns: minmax(0, 1fr); }
  .trainer-today--empty .trainer-hub-primary { grid-template-rows: auto auto; }
  .trainer-today--empty .trainer-week-card { min-height: 0; }
}

/* Trainer Hub · globale Action Search Bar (KokonutUI-Muster, Vanilla-Port). */
.trainer-hub-search { position:relative; display:flex; align-items:center; width:clamp(260px,24vw,380px); min-height:42px; gap:8px; padding:0 10px; border:1px solid #dfe5ed; border-radius:12px; background:rgba(255,255,255,.88); box-shadow:0 4px 13px rgba(34,57,87,.05); transition:border-color .15s ease,box-shadow .15s ease; }
.trainer-hub-search:focus-within { border-color:#9fb8df; box-shadow:0 0 0 3px rgba(53,101,177,.11); }
.trainer-hub-search > i { color:#73839a; font-size:17px; }
.trainer-hub-search input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:#253650; font:600 12px/1.2 "Sora",system-ui,sans-serif; }
.trainer-hub-search input::placeholder { color:#97a3b3; font-weight:500; }
.trainer-hub-search kbd { flex:0 0 auto; padding:3px 5px; border:1px solid #e3e8ef; border-radius:5px; background:#f7f9fb; color:#8491a2; font:700 9px/1 "Sora",system-ui,sans-serif; white-space:nowrap; }
.trainer-hub-search__results { position:absolute; top:calc(100% + 9px); right:0; z-index:20; width:min(460px,calc(100vw - 40px)); overflow:hidden; padding:6px; border:1px solid #dfe5ed; border-radius:14px; background:rgba(255,255,255,.98); box-shadow:0 18px 42px rgba(28,48,79,.17); }
.trainer-hub-search__results > p { margin:0; padding:12px; color:#7a8798; font-size:12px; line-height:1.4; }
.trainer-hub-search__results button { display:grid; grid-template-columns:32px minmax(0,1fr) auto; width:100%; align-items:center; gap:9px; padding:8px; border:0; border-radius:9px; background:transparent; color:#263750; text-align:left; cursor:pointer; }
.trainer-hub-search__results button:hover,.trainer-hub-search__results button:focus-visible { background:#f1f5fb; outline:0; }
.trainer-hub-search__result-icon { display:grid; width:32px; height:32px; place-items:center; border-radius:9px; background:#edf3fd; color:#2c61ad; font-size:16px; }
.trainer-hub-search__results button > span:nth-child(2) { display:grid; min-width:0; gap:2px; }
.trainer-hub-search__results strong { overflow:hidden; color:#283950; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.trainer-hub-search__results small { overflow:hidden; color:#7b8798; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.trainer-hub-search__results button > .ti { color:#8290a1; font-size:15px; }
@media (max-width: 860px) { .trainer-hub-search { width:min(360px,100%); } }
@media (max-width: 680px) { .trainer-hub-search { order:-1; width:100%; } .trainer-hub-search kbd { display:none; } }

/* Header bleibt lesbar: Die Suche wird zuerst kompakter, der Hub-Titel nie. */
.trainer-today--empty .trainer-today__header { align-items:center; }
.trainer-today--empty .trainer-today__header > div:first-child { flex:1 1 auto; min-width:310px; }
.trainer-today--empty .trainer-today__header-actions { flex:0 1 auto; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
@media (max-width: 1250px) {
  .trainer-hub-search { width:clamp(210px,19vw,300px); }
  .trainer-today--empty .trainer-today__header-actions { gap:8px; }
}
@media (max-width: 900px) {
  .trainer-today--empty .trainer-today__header { align-items:flex-start; }
  .trainer-today--empty .trainer-today__header > div:first-child { min-width:0; }
  .trainer-today--empty .trainer-today__header-actions { width:100%; flex-wrap:wrap; justify-content:flex-end; }
}

/* Vollbild-Arbeitsmodus: Der Dokument-Viewport bleibt fest, nur die lange
   Readiness-Liste darf bei sehr vielen Athlet:innen intern weiterlaufen. */
@media (min-width: 1081px) {
  html.trainer-hub-active,
  html.trainer-hub-active body { overflow:hidden; }
  .trainer-today--empty .trainer-readiness__list { max-height:calc(100vh - 440px); overflow-y:auto; padding-right:5px; scrollbar-width:thin; scrollbar-color:rgba(var(--cos-accent-rgb),.55) transparent; }
  .trainer-today--empty .trainer-hub-primary { align-self:stretch; height:100%; min-height:0; grid-template-rows:minmax(0,1fr) 150px; }
  .trainer-today--empty .trainer-focus-card { display:flex; flex-direction:column; min-height:0; height:100%; }
  .trainer-today--empty .trainer-focus-list { flex:1 1 auto; align-content:center; }
}

/* Action-Bar: länger, mittig zwischen Hub-Titel und den Tagesaktionen. */
@media (min-width: 901px) {
  .trainer-today--empty .trainer-today__header { display:grid; grid-template-columns:minmax(300px,1fr) minmax(600px,1.15fr); align-items:center; gap:clamp(18px,3vw,56px); }
  .trainer-today--empty .trainer-today__header > div:first-child { min-width:0; }
  .trainer-today--empty .trainer-today__header-actions { display:grid; grid-template-columns:minmax(360px,1fr) auto auto; align-items:center; width:100%; gap:12px; }
  .trainer-today--empty .trainer-hub-search { width:100%; max-width:none; border-color:var(--cos-accent-line); background:linear-gradient(180deg,rgba(var(--cos-accent-rgb),.08),rgba(255,255,255,.9)); box-shadow:0 5px 17px rgba(var(--cos-accent-rgb),.08); }
  .trainer-today--empty .trainer-hub-search:focus-within { border-color:var(--cos-accent); box-shadow:0 0 0 3px rgba(var(--cos-accent-rgb),.15),0 7px 18px rgba(var(--cos-accent-rgb),.1); }
}
@media (max-width: 900px) {
  .trainer-today--empty .trainer-hub-search { border-color:var(--cos-accent-line); background:rgba(var(--cos-accent-rgb),.06); }
}
@media (min-width: 901px) and (max-width: 1250px) {
  .trainer-today--empty h1 { font-size:clamp(34px,3.6vw,42px); white-space:nowrap; letter-spacing:-1.4px; }
}

/* Trainer Hub · Suchfeld mittig und bewusst blau als globale Suche markiert. */
@media (min-width: 901px) {
  .trainer-today--empty .trainer-today__header {
    display:grid;
    grid-template-columns:minmax(230px,.85fr) minmax(360px,1.15fr) auto auto;
    align-items:center;
    gap:clamp(12px,1.8vw,28px);
  }
  .trainer-today--empty .trainer-today__header-actions { display:contents; }
  .trainer-today--empty .trainer-hub-search { grid-column:2; grid-row:1; width:100%; max-width:none; border-color:#4b7dcc; background:linear-gradient(180deg,rgba(75,125,204,.08),rgba(255,255,255,.94)); box-shadow:0 5px 17px rgba(44,95,173,.08); }
  .trainer-today--empty .trainer-hub-search:focus-within { border-color:#2f67b7; box-shadow:0 0 0 3px rgba(47,103,183,.14),0 7px 18px rgba(44,95,173,.1); }
  .trainer-today--empty .trainer-hub-search > i { color:#2f67b7; }
  .trainer-today--empty .trainer-today__date { grid-column:3; grid-row:1; white-space:nowrap; }
  .trainer-today--empty .trainer-today__header-actions > .trainer-secondary-button { grid-column:4; grid-row:1; white-space:nowrap; }
}

/* Readiness · Teamfilter und Median statt Status-Kachelraster. */
.trainer-readiness__filter-row { display:flex; align-items:end; justify-content:space-between; gap:12px; margin:2px 0 10px; }
.trainer-readiness__team-filter { display:grid; min-width:0; gap:5px; color:#718096; font-size:10px; font-weight:800; }
.trainer-readiness__team-filter select { min-width:170px; height:36px; padding:0 30px 0 10px; border:1px solid #d8e1ef; border-radius:9px; outline:0; background:#f8faff; color:#263750; font:700 12px/1 "Sora",system-ui,sans-serif; cursor:pointer; }
.trainer-readiness__team-filter select:focus { border-color:#4b7dcc; box-shadow:0 0 0 3px rgba(47,103,183,.12); }
.trainer-readiness__median { display:grid; min-width:112px; padding:9px 11px; border:1px solid #d8e1ef; border-radius:10px; background:#f7faff; text-align:right; }
.trainer-readiness__median span { color:#718096; font-size:9px; font-weight:800; }
.trainer-readiness__median strong { margin-top:2px; color:#2f67b7; font-size:23px; line-height:1; }
.trainer-readiness__median small { margin-top:3px; overflow:hidden; color:#8a97a8; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width: 520px) {
  .trainer-readiness__filter-row { align-items:stretch; flex-direction:column; }
  .trainer-readiness__team-filter select { width:100%; }
  .trainer-readiness__median { text-align:left; }
}

/* Letzter Desktop-Feinschliff: Titel und Suche bekommen getrennte, sichere
   Spalten; Readiness nimmt nur noch die Höhe ihres eigenen Inhalts ein. */
@media (min-width: 901px) {
  .trainer-today--empty .trainer-today__header {
    grid-template-columns:minmax(300px,.95fr) minmax(320px,1fr) auto auto;
  }
  .trainer-today--empty .trainer-readiness-card {
    align-self:start;
    min-height:0 !important;
    padding:16px;
  }
  .trainer-today--empty .trainer-readiness-card h2 { font-size:18px; }
  .trainer-today--empty .trainer-readiness-card__head > i { width:34px; height:34px; border-radius:10px; font-size:18px; }
  .trainer-today--empty .trainer-readiness-card__intro { margin:8px 0 12px; }
  .trainer-today--empty .trainer-readiness__filter-row { margin:0 0 8px; }
  .trainer-today--empty .trainer-readiness__team-filter select { height:32px; }
  .trainer-today--empty .trainer-readiness__median { padding:7px 9px; }
  .trainer-today--empty .trainer-readiness__list li { min-height:30px; }
  .trainer-today--empty .trainer-readiness-card__action { margin-top:10px; padding-top:8px; }
}
@media (min-width: 901px) and (max-width: 1250px) {
  .trainer-today--empty h1 { max-width:100%; overflow:hidden; font-size:36px; letter-spacing:-1.8px; text-overflow:clip; white-space:nowrap; }
}
@media (min-width: 1251px) {
  .trainer-today--empty .trainer-today__header { grid-template-columns:minmax(320px,.9fr) minmax(420px,1.1fr) auto auto; }
}

/* Desktop-Arbeitsfläche: Kalender, Prioritäten und Readiness bleiben gemeinsam
   im sichtbaren Rahmen. Der Kalender bekommt die flexible Resthöhe links;
   Prioritäten liegen kompakt darunter. Nur längere Datenlisten scrollen in
   ihrem eigenen Bereich, nie die gesamte Hub-Seite. */
@media (min-width: 1081px) {
  html.trainer-hub-active,
  html.trainer-hub-active body {
    height: 100%;
    overflow: hidden;
  }
  .trainer-today.trainer-today--empty {
    box-sizing: border-box;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 18px;
    height: 100vh;
    min-height: 0;
    padding: clamp(18px, 3vh, 34px) 0 clamp(16px, 2vh, 26px);
  }
  .trainer-today--empty .trainer-today__header { margin: 0; }
  .trainer-today--empty .trainer-hub-grid {
    min-height: 0;
    height: 100%;
    grid-template-columns: minmax(0, 1.45fr) minmax(390px, .9fr);
    align-items: stretch;
  }
  .trainer-today--empty .trainer-hub-primary {
    min-height: 0;
    height: 100%;
    grid-template-rows: minmax(0, 1fr) minmax(122px, auto);
  }
  .trainer-today--empty .trainer-week-card,
  .trainer-today--empty .trainer-week-card--apple .trainer-apple-calendar {
    min-height: 0;
    height: 100%;
  }
  .trainer-today--empty .trainer-week-card--apple .trainer-apple-calendar {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
  }
  .trainer-today--empty .trainer-apple-calendar__body,
  .trainer-today--empty .trainer-apple-calendar__schedule,
  .trainer-today--empty .trainer-apple-calendar__time-scroll {
    min-height: 0;
    height: 100%;
  }
  .trainer-today--empty .trainer-apple-calendar__sidebar { min-height: 0; }
  .trainer-today--empty .trainer-apple-calendar__time-scroll { max-height: none; }
  .trainer-today--empty .trainer-focus-card {
    min-height: 0;
    height: auto;
    padding-top: 14px;
  }
  .trainer-today--empty .trainer-focus-list { min-height: 0; }
  .trainer-today--empty .trainer-focus-item { min-height: 58px; padding: 8px 10px; }
  .trainer-today--empty .trainer-readiness-card {
    min-height: 0 !important;
    height: 100%;
    align-self: stretch;
  }
  .trainer-today--empty .trainer-readiness__list {
    min-height: 0;
    max-height: none;
    overflow-y: auto;
  }
}

/* Trainer Hub · Kalenderarbeitsplatz nach dem Vorbild der Apple-Kalenderlogik:
   Kalenderliste links, Ansichten oben, Zeitachse und Termine im Hauptbereich. */
.trainer-week-card--apple { overflow:hidden; }
.trainer-week-card--apple .trainer-apple-calendar { min-width:0; background:#fff; }
.trainer-apple-calendar__toolbar { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; min-height:64px; padding:12px 16px; border-bottom:1px solid #e8edf4; }
.trainer-apple-calendar__navigation,.trainer-apple-calendar__views { display:flex; align-items:center; gap:4px; }
.trainer-apple-calendar__navigation button,.trainer-apple-calendar__views button { height:30px; padding:0 9px; border:1px solid #dbe3ee; border-radius:7px; background:#fff; color:#36465f; font:700 11px/1 "Sora",system-ui,sans-serif; cursor:pointer; }
.trainer-apple-calendar__navigation button:first-child,.trainer-apple-calendar__navigation button:last-child { display:grid; width:30px; place-items:center; padding:0; }
.trainer-apple-calendar__views { padding:3px; border-radius:9px; background:#f1f4f8; }
.trainer-apple-calendar__views button { border-color:transparent; background:transparent; color:#718096; }
.trainer-apple-calendar__views button.is-active { border-color:#d8e3f4; background:#fff; color:#235aa9; box-shadow:0 1px 3px rgba(30,54,86,.09); }
.trainer-apple-calendar__toolbar h2 { min-width:0; margin:0; overflow:hidden; color:#1d2b42; font-size:17px; letter-spacing:-.03em; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.trainer-apple-calendar__body { display:grid; grid-template-columns:220px minmax(0,1fr); min-height:0; }
.trainer-apple-calendar__sidebar { min-height:510px; padding:15px 12px; border-right:1px solid #e8edf4; background:#fbfcfe; }
.trainer-apple-calendar__sidebar-head { display:flex; align-items:center; justify-content:space-between; margin:0 2px 11px; color:#718096; font-size:10px; font-weight:800; letter-spacing:.1em; }
.trainer-apple-calendar__sidebar-head button { display:grid; width:25px; height:25px; place-items:center; border:1px solid #d9e2ee; border-radius:7px; background:#fff; color:#2f67b7; cursor:pointer; }
.trainer-apple-calendar__list { display:grid; gap:2px; }
.trainer-apple-calendar__calendar { display:flex; min-width:0; align-items:center; gap:4px; padding:5px 3px; border-radius:7px; }
.trainer-apple-calendar__calendar:hover { background:#f0f5fb; }
.trainer-apple-calendar__calendar label { display:flex; min-width:0; flex:1; align-items:center; gap:7px; cursor:pointer; }
.trainer-apple-calendar__calendar input { width:14px; height:14px; margin:0; accent-color:#2f67b7; }
.trainer-apple-calendar__calendar label > span { width:8px; height:8px; flex:0 0 auto; border-radius:50%; }
.trainer-apple-calendar__calendar b { overflow:hidden; color:#405069; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.trainer-apple-calendar__calendar > button { display:grid; width:22px; height:22px; place-items:center; border:0; border-radius:5px; background:transparent; color:#7e8ca0; font-size:13px; cursor:pointer; }
.trainer-apple-calendar__calendar > button:hover { background:#e5edf8; color:#2f67b7; }
.trainer-apple-calendar__mini { margin-top:20px; padding-top:13px; border-top:1px solid #e7edf5; }
.trainer-apple-calendar__mini-head { display:grid; grid-template-columns:22px minmax(0,1fr) 22px; align-items:center; margin-bottom:8px; }
.trainer-apple-calendar__mini-head strong { overflow:hidden; color:#405069; font-size:10px; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.trainer-apple-calendar__mini-head button { border:0; background:transparent; color:#718096; cursor:pointer; }
.trainer-apple-calendar__mini-weekdays,.trainer-apple-calendar__mini-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; text-align:center; }
.trainer-apple-calendar__mini-weekdays { margin-bottom:5px; color:#98a3b3; font-size:9px; font-weight:800; }
.trainer-apple-calendar__mini-days button { min-width:0; height:23px; padding:0; border:0; border-radius:50%; background:transparent; color:#4d5c71; font-size:10px; cursor:pointer; }
.trainer-apple-calendar__mini-days button.is-out { color:#b9c1cc; }
.trainer-apple-calendar__mini-days button.is-today { color:#2460b3; font-weight:800; }
.trainer-apple-calendar__mini-days button.is-selected { background:#2f67b7; color:#fff; font-weight:800; }
.trainer-apple-calendar__hint { margin:15px 2px 0; color:#8a97a8; font-size:9px; line-height:1.45; }
.trainer-apple-calendar__schedule { min-width:0; overflow-x:auto; overflow-y:hidden; scrollbar-gutter:stable; }
.trainer-apple-calendar__day-head,.trainer-apple-calendar__all-day,.trainer-apple-calendar__time-grid { display:grid; min-width:max-content; }
.trainer-apple-calendar__day-head { border-bottom:1px solid #e8edf4; background:#fff; }
.trainer-apple-calendar__day-head > span { border-right:1px solid #e8edf4; }
.trainer-apple-calendar__day-head button { min-height:43px; padding:7px 5px 5px; border:0; border-right:1px solid #e8edf4; background:#fff; color:#68778b; cursor:pointer; }
.trainer-apple-calendar__day-head button small { display:block; font-size:9px; font-weight:800; text-transform:uppercase; }
.trainer-apple-calendar__day-head button strong { display:block; margin-top:1px; color:#2b3b53; font-size:16px; line-height:1; }
.trainer-apple-calendar__day-head button.is-today strong { display:inline-grid; width:24px; height:24px; place-items:center; border-radius:50%; background:#2f67b7; color:#fff; }
.trainer-apple-calendar__all-day { min-height:31px; border-bottom:1px solid #e8edf4; background:#fcfdff; }
.trainer-apple-calendar__all-day > span { padding:9px 6px 0; border-right:1px solid #e8edf4; color:#8a97a8; font-size:8px; font-weight:800; }
.trainer-apple-calendar__all-day > div { min-height:31px; padding:3px 4px; border-right:1px solid #e8edf4; }
.trainer-apple-calendar__all-day-event { display:block; width:100%; overflow:hidden; padding:3px 5px; border:0; border-radius:4px; color:#fff; font-size:9px; font-weight:800; text-align:left; text-overflow:ellipsis; white-space:nowrap; cursor:pointer; }
.trainer-apple-calendar__time-scroll { width:max-content; min-width:100%; max-height:490px; overflow-y:auto; overflow-x:hidden; }
.trainer-apple-calendar__time-grid { min-height:1680px; }
.trainer-apple-calendar__time-axis { position:relative; border-right:1px solid #e8edf4; background:#fcfdff; }
.trainer-apple-calendar__time-axis span { position:absolute; right:8px; color:#697990; font-size:10px; font-weight:700; line-height:1; text-align:right; transform:translateY(-50%); }
.trainer-apple-calendar__time-axis span:first-child { transform:none; }
.trainer-apple-calendar__time-axis span:last-child { transform:translateY(-100%); }
.trainer-apple-calendar__day-column { position:relative; display:grid; grid-template-rows:repeat(24,1fr); border-right:1px solid #e8edf4; background:#fff; cursor:crosshair; touch-action:none; }
.trainer-apple-calendar__day-column.is-today { background:#f7faff; }
.trainer-apple-calendar__hour-line { border-bottom:1px solid #eef2f6; }
.trainer-apple-calendar__event { position:absolute; z-index:1; left:3px; right:3px; overflow:hidden; padding:4px 5px; border:0; border-radius:5px; box-shadow:inset 3px 0 0 rgba(255,255,255,.45); color:#fff; text-align:left; cursor:pointer; }
.trainer-apple-calendar__selection { position:absolute; z-index:2; left:3px; right:3px; min-height:26px; overflow:hidden; padding:4px 5px; border:1px dashed #2f67b7; border-radius:5px; background:rgba(47,103,183,.14); color:#22539a; font-size:9px; font-weight:800; pointer-events:none; }
.trainer-apple-calendar__event strong,.trainer-apple-calendar__event small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.trainer-apple-calendar__event strong { font-size:9px; line-height:1.2; }
.trainer-apple-calendar__event small { margin-top:2px; font-size:8px; opacity:.92; }
.trainer-apple-calendar__month { min-width:0; max-height:545px; overflow:auto; padding:10px; scrollbar-gutter:stable; }
.trainer-apple-calendar__month-weekdays,.trainer-apple-calendar__month-grid { display:grid; grid-template-columns:repeat(7,minmax(98px,1fr)); min-width:max-content; }
.trainer-apple-calendar__month-weekdays span { padding:5px; color:#8a97a8; font-size:9px; font-weight:800; text-align:center; }
.trainer-apple-calendar__month-grid { border-top:1px solid #e8edf4; border-left:1px solid #e8edf4; }
.trainer-apple-calendar__month-grid article { min-height:92px; padding:5px; border-right:1px solid #e8edf4; border-bottom:1px solid #e8edf4; }
.trainer-apple-calendar__month-grid article.is-out { background:#fbfcfe; }
.trainer-apple-calendar__month-grid article.is-today { background:#f6f9ff; }
.trainer-apple-calendar__month-grid article > button:first-child { display:grid; width:22px; height:22px; place-items:center; padding:0; border:0; border-radius:50%; background:transparent; color:#536277; font-size:10px; cursor:pointer; }
.trainer-apple-calendar__month-grid article.is-today > button:first-child { background:#2f67b7; color:#fff; font-weight:800; }
.trainer-apple-calendar__month-event { display:block; width:100%; overflow:hidden; margin-top:3px; padding:2px 4px; border:0; border-left:3px solid; background:#f5f7fa; color:#405069; font-size:9px; font-weight:700; text-align:left; text-overflow:ellipsis; white-space:nowrap; cursor:pointer; }
.trainer-calendar-dialog__field { display:grid; gap:6px; margin:14px 0; color:#637186; font-size:11px; font-weight:800; }
.trainer-calendar-dialog__field input:not([type="color"]) { height:39px; padding:0 10px; border:1px solid #d8e1ec; border-radius:8px; color:#263750; font:600 13px/1 "Sora",system-ui,sans-serif; }
.trainer-calendar-dialog__field input[type="color"] { width:50px; height:32px; padding:2px; border:1px solid #d8e1ec; border-radius:7px; background:#fff; cursor:pointer; }
.trainer-calendar-dialog__choices { display:grid; gap:9px; margin:15px 0 4px; }
.trainer-calendar-dialog__choices button { display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:10px; align-items:center; padding:12px; border:1px solid #dce5f1; border-radius:11px; background:#fff; color:#30415b; text-align:left; cursor:pointer; }
.trainer-calendar-dialog__choices button:hover { border-color:#89a9d6; background:#f7faff; }
.trainer-calendar-dialog__choices i { grid-row:1 / span 2; display:grid; width:34px; height:34px; place-items:center; border-radius:9px; background:#edf3fd; color:#2f67b7; font-size:17px; }
.trainer-calendar-dialog__choices strong { font-size:12px; }
.trainer-calendar-dialog__choices span { margin-top:2px; color:#7d8ba0; font-size:10px; line-height:1.35; }
.trainer-calendar-dropzone { display:grid; min-height:122px; place-items:center; gap:5px; margin:15px 0; padding:16px; border:1px dashed #91add5; border-radius:11px; background:#f8fbff; color:#52637a; text-align:center; cursor:pointer; }
.trainer-calendar-dropzone:hover { border-color:#2f67b7; background:#f2f7ff; }
.trainer-calendar-dropzone > i { color:#2f67b7; font-size:25px; }
.trainer-calendar-dropzone strong { color:#2f3f58; font-size:12px; }
.trainer-calendar-dropzone span,.trainer-calendar-dialog__import-status { color:#718096; font-size:10px; }
.trainer-calendar-dropzone input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.trainer-calendar-url { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:8px; }
.trainer-calendar-url .trainer-calendar-dialog__field { min-width:0; }
.trainer-calendar-url .trainer-secondary-button { height:39px; }
.trainer-calendar-dialog__import-status { margin:4px 0 0; padding:8px 10px; border-radius:8px; background:#f2f6fc; color:#466183; font-weight:700; }
@media (max-width: 720px) {
  .trainer-apple-calendar__toolbar { grid-template-columns:1fr; }
  .trainer-apple-calendar__toolbar h2 { order:-1; text-align:left; }
  .trainer-apple-calendar__body { grid-template-columns:1fr; }
  .trainer-apple-calendar__sidebar { display:none; }
}

.courtos-team-switch-slot {
  flex: 0 0 auto;
  min-height: 0;
  margin-top: 0;
}
.courtos-team-switch {
  position: relative;
  margin: 8px 0 10px;
  padding: 12px 12px 13px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 12px;
  background: rgba(255,255,255,.065);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.courtos-team-switch__field + .courtos-team-switch__field { margin-top: 11px; }
.courtos-team-switch__lbl {
  margin: 0 0 7px;
  color: rgba(245,248,255,.55);
  font: 700 10px/1.2 "Space Grotesk", ui-monospace, monospace;
  letter-spacing: .14em;
  text-transform: uppercase;
}
/* Eigenes Dropdown statt <select> — sonst rendert der Optionen-Popup mit
   OS-Systemfarben/-Schrift, egal was hier an CSS steht. */
.courtos-cdd { position: relative; }
.courtos-cdd__btn {
  width: 100%;
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 9px;
  background: rgba(9,18,42,.32);
  color: #fff;
  font: 700 13px/1.2 "Sora", system-ui, sans-serif;
  text-align: left;
  cursor: pointer;
}
.courtos-cdd__val { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.courtos-cdd__chev { flex: 0 0 auto; font-size: 15px; color: var(--courtos-accent); transform: rotate(90deg); transition: transform .15s ease; }
.courtos-cdd.is-open .courtos-cdd__chev { transform: rotate(270deg); }
.courtos-cdd__btn:hover { background: rgba(255,255,255,.10); }
.courtos-cdd__btn:focus-visible {
  outline: none;
  border-color: rgba(224,168,46,.72);
  box-shadow: 0 0 0 3px rgba(224,168,46,.18);
}
.courtos-cdd.is-disabled .courtos-cdd__btn { opacity: .5; cursor: default; }
.courtos-cdd__menu {
  position: absolute;
  left: 0; right: 0; bottom: calc(100% + 6px);
  z-index: 20;
  display: none;
  flex-direction: column;
  max-height: 220px;
  overflow: auto;
  padding: 5px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 10px;
  background: #182a54;
  box-shadow: 0 12px 28px rgba(4,10,26,.45), 0 0 0 1px rgba(0,0,0,.08);
}
.courtos-cdd.is-open .courtos-cdd__menu { display: flex; }
.courtos-cdd__opt {
  display: block;
  width: 100%;
  padding: 8px 9px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: rgba(248,249,252,.9);
  font: 600 13px/1.3 "Sora", system-ui, sans-serif;
  text-align: left;
  cursor: pointer;
}
.courtos-cdd__opt:hover { background: rgba(255,255,255,.09); }
.courtos-cdd__opt.is-active { background: rgba(224,168,46,.16); color: #fff; font-weight: 700; }
html[data-courtos-sidebar="collapsed"] .courtos-team-switch-slot,
html[data-courtos-sidebar="collapsed"] .courtos-team-switch {
  display: none;
}

/* 2026-07-14 · Adaptiver Trainer-Arbeitsplatz (Mein Tag + Rollenbereiche) */
.v2-hub-main > .cos-v2-dashboard { display: none !important; }
.trainer-today {
  width: min(1180px, 100%);
  margin: 0 auto;
  padding: 42px 0 56px;
  color: #16213a;
  font-family: "Sora", system-ui, sans-serif;
}
.trainer-today button { font: inherit; }
.trainer-today__header,
.trainer-today__header-actions,
.trainer-section-heading,
.trainer-dialog__head,
.trainer-dialog__actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.trainer-today__eyebrow,
.trainer-section-heading span,
.trainer-dialog__head span {
  margin: 0 0 8px;
  color: #7a8290;
  font: 700 10px/1.2 "Space Grotesk", sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.trainer-today h1 { margin: 0; color: #16213a; font-size: clamp(32px, 4vw, 48px); line-height: 1.05; letter-spacing: -1.8px; }
.trainer-today__sub { margin: 10px 0 0; color: #68707c; font-size: 14px; }
.trainer-today__date { display: inline-flex; align-items: center; gap: 8px; color: #4d5665; font-size: 13px; text-transform: capitalize; }
.trainer-secondary-button,
.trainer-primary-button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 15px;
  border: 1px solid #d9dde4;
  border-radius: 10px;
  background: #fff;
  color: #16264c;
  font-weight: 700 !important;
  cursor: pointer;
}
.trainer-primary-button { border-color: #d79c17; background: #d79c17; color: #fff; }
.trainer-secondary-button:hover,
.trainer-secondary-button:focus-visible { border-color: #e0a82e; outline: 3px solid rgba(224,168,46,.15); }
.trainer-today__layout { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(290px, .75fr); gap: 18px; margin-top: 34px; }
.trainer-day,
.trainer-handoffs,
.trainer-area-card,
.trainer-dialog { border: 1px solid #e2e3e6; border-radius: 16px; background: #fff; box-shadow: 0 18px 42px -34px rgba(22,38,76,.28); }
.trainer-day,
.trainer-handoffs { padding: 24px; }
.trainer-section-heading h2 { margin: 0; color: #16213a; font-size: 20px; letter-spacing: -.5px; }
.trainer-status-pill { margin: 0 !important; padding: 6px 9px; border-radius: 999px; background: #f5f3ef; color: #69717e !important; letter-spacing: 0 !important; text-transform: none !important; }
.trainer-timeline { position: relative; display: grid; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; }
.trainer-timeline::before { content: ""; position: absolute; top: 24px; bottom: 24px; left: 76px; width: 1px; background: #e3e5e8; }
.trainer-timeline li { position: relative; display: grid; grid-template-columns: 52px 34px minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 66px; padding: 8px 8px 8px 0; border-radius: 12px; }
.trainer-timeline li.is-next { min-height: 104px; padding: 14px; border: 1px solid #e8c36a; background: #fffaf0; box-shadow: inset 3px 0 0 #e0a82e; }
.trainer-timeline time { color: #7e8692; font: 700 12px/1 "Space Grotesk", sans-serif; text-align: right; }
.trainer-timeline__dot { position: relative; z-index: 1; display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #d8dce2; border-radius: 50%; background: #fff; color: #68717f; }
.trainer-timeline .is-done .trainer-timeline__dot { border-color: #8ec8a5; background: #eff8f2; color: #177b45; }
.trainer-timeline .is-next .trainer-timeline__dot { border-color: #e0a82e; background: #fff5dc; color: #af7710; }
.trainer-timeline li > div { display: grid; gap: 4px; }
.trainer-timeline li strong { color: #1b2437; font-size: 14px; }
.trainer-timeline li span:not(.trainer-timeline__dot) { color: #737b87; font-size: 12px; }
.trainer-timeline li small { color: #af7710; font: 700 9px/1 "Space Grotesk", sans-serif; letter-spacing: .12em; }
.trainer-timeline li > button { min-height: 34px; padding: 0 11px; border: 1px solid #d9dde4; border-radius: 9px; background: #fff; color: #27407a; font-size: 11px; font-weight: 700; cursor: pointer; }
.trainer-timeline .is-next > button { min-height: 40px; border-color: #d79c17; background: #d79c17; color: #fff; }
.trainer-handoffs > button { width: 100%; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 14px 0; border: 0; border-top: 1px solid #eceef1; background: transparent; color: #27407a; text-align: left; cursor: pointer; }
.trainer-handoffs > button:first-of-type { margin-top: 18px; }
.trainer-handoffs > button > i:first-child { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; background: #f2f5fb; color: #27407a; }
.trainer-handoffs button span { display: grid; gap: 4px; }
.trainer-handoffs button strong { color: #1b2437; font-size: 12px; }
.trainer-handoffs button small { color: #78808c; font-size: 10px; }
.trainer-handoffs button b { display: grid; place-items: center; min-width: 24px; height: 24px; border-radius: 999px; background: #fff0ed; color: #bd493c; font-size: 11px; }
.trainer-areas,
.trainer-tools { margin-top: 30px; }
.trainer-area-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-top: 14px; }
.trainer-area-card { min-height: 220px; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: 20px; color: #16264c; text-align: left; cursor: pointer; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.trainer-area-card:hover,
.trainer-area-card:focus-visible { transform: translateY(-2px); border-color: #d7b760; outline: none; box-shadow: 0 20px 44px -28px rgba(22,38,76,.34); }
.trainer-area-card__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; background: #f1f4fa; color: #27407a; font-size: 20px; }
.trainer-area-card__body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.trainer-area-card__body small { color: #818895; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.trainer-area-card__body strong { color: #17213a; font-size: 17px; }
.trainer-area-card__body > span { color: #707884; font-size: 11px; line-height: 1.5; }
.trainer-area-card__body b { margin-top: auto; display: flex; align-items: center; gap: 6px; color: #27407a; font-size: 11px; }
.trainer-tool-row { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; margin-top: 14px; }
.trainer-tool-row button { min-height: 72px; display: flex; align-items: center; gap: 9px; padding: 12px; border: 1px solid #e2e3e6; border-radius: 12px; background: #fff; color: #33405a; cursor: pointer; }
.trainer-tool-row button i { color: #be851a; font-size: 18px; }
.trainer-tool-row button span { font-size: 11px; font-weight: 700; }
.trainer-dialog-backdrop { position: fixed; inset: 0; z-index: 12000; display: grid; place-items: center; padding: 20px; background: rgba(9,17,35,.56); backdrop-filter: blur(4px); }
.trainer-dialog { width: min(560px,100%); padding: 24px; }
.trainer-dialog__head h2 { margin: 0; color: #17213a; font-size: 22px; }
.trainer-dialog__head > button { width: 36px; height: 36px; border: 1px solid #e0e2e6; border-radius: 50%; background: #fff; cursor: pointer; }
.trainer-dialog > p { color: #69717e; font-size: 13px; line-height: 1.6; }
.trainer-dialog__options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 20px 0; }
.trainer-dialog__options label { cursor: pointer; }
.trainer-dialog__options input { position: absolute; opacity: 0; pointer-events: none; }
.trainer-dialog__options label > span { min-height: 84px; display: grid; grid-template-columns: 28px 1fr; gap: 4px 10px; padding: 14px; border: 1px solid #e0e2e6; border-radius: 11px; }
.trainer-dialog__options input:checked + span { border-color: #d79c17; background: #fffaf0; box-shadow: inset 3px 0 0 #e0a82e; }
.trainer-dialog__options label i { grid-row: span 2; color: #27407a; font-size: 20px; }
.trainer-dialog__options label b { color: #18223a; font-size: 12px; }
.trainer-dialog__options label small { color: #737b87; font-size: 10px; }

/* ── Mein Tag: Monatskalender ──────────────────────────────────── */
.trainer-cal { margin-top: 6px; }
.trainer-cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.trainer-cal__head strong { color: #16213a; font-size: 15px; text-transform: capitalize; }
.trainer-cal__head button { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #e0e2e6; border-radius: 9px; background: #fff; color: #27407a; cursor: pointer; }
.trainer-cal__head button:hover,
.trainer-cal__head button:focus-visible { border-color: #e0a82e; outline: none; }
.trainer-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.trainer-cal__weekdays { margin-bottom: 4px; }
.trainer-cal__weekdays span { text-align: center; padding: 4px 0; color: #9099a6; font: 700 10px/1 "Space Grotesk", sans-serif; letter-spacing: .06em; }
.trainer-cal__day { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; min-height: 46px; padding: 6px 2px 5px; border: 1px solid transparent; border-radius: 10px; background: #f7f8fa; color: #33405a; cursor: pointer; transition: background .12s ease, border-color .12s ease; }
.trainer-cal__day:hover { background: #eef1f6; }
.trainer-cal__day.is-out { background: transparent; color: #c2c8d2; }
.trainer-cal__day.is-today { border-color: #e0a82e; }
.trainer-cal__day.is-sel { background: #27407a; border-color: #27407a; color: #fff; }
.trainer-cal__num { font-size: 12.5px; font-weight: 600; }
.trainer-cal__day.is-sel .trainer-cal__num { color: #fff; }
.trainer-cal__dots { display: flex; gap: 3px; min-height: 6px; }
.trainer-cal__dot { display: block; width: 5px; height: 5px; border-radius: 50%; }
.trainer-cal__day.is-sel .trainer-cal__dot { box-shadow: 0 0 0 1px rgba(255,255,255,.55); }
.trainer-day__head { display: flex; align-items: center; justify-content: space-between; margin-top: 24px; }
.trainer-cal__add { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 13px; border: 1px solid #d79c17; border-radius: 9px; background: #d79c17; color: #fff; font-size: 12px; font-weight: 700; cursor: pointer; }
.trainer-cal__add:hover { background: #c58f14; }
.trainer-cal__add i { font-size: 15px; }
.trainer-day__empty { margin-top: 18px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 22px; border: 1px dashed #d9dde4; border-radius: 12px; color: #737b87; font-size: 13px; }
.trainer-day__empty button { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 0 14px; border: 1px solid #d9dde4; border-radius: 9px; background: #fff; color: #27407a; font-size: 12px; font-weight: 700; cursor: pointer; }
.trainer-day__empty button:hover { border-color: #e0a82e; }

/* ── Mein Tag: Termin-Formular (Modal) ─────────────────────────── */
.trainer-evform { display: grid; gap: 12px; margin: 18px 0; }
.trainer-evform__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.trainer-evform__field { display: grid; gap: 6px; }
.trainer-evform__field > span { color: #69717e; font: 700 10px/1 "Space Grotesk", sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.trainer-evform input,
.trainer-evform select,
.trainer-evform textarea { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid #dfe2e7; border-radius: 10px; background: #fff; color: #1b2437; font-size: 13px; font-family: inherit; }
.trainer-evform textarea { min-height: 62px; resize: vertical; }
.trainer-evform input:focus,
.trainer-evform select:focus,
.trainer-evform textarea:focus { outline: none; border-color: #e0a82e; box-shadow: 0 0 0 3px rgba(224,168,46,.15); }
.trainer-evform__hint { margin: 0 !important; padding: 9px 11px; border: 1px solid #f0e2c0; border-radius: 9px; background: #fffaf0; color: #8a5a10 !important; font-size: 11px !important; line-height: 1.5 !important; }
.trainer-evform__hint b { color: #8a5a10; }
.trainer-evform__err { margin: 0 !important; color: #bd493c !important; font-size: 12px !important; }
.trainer-evdetail { display: grid; gap: 8px; margin: 16px 0; }
.trainer-evdetail > div { display: flex; gap: 10px; color: #3f4856; font-size: 13px; }
.trainer-evdetail b { min-width: 62px; color: #8a92a0; font-weight: 700; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.trainer-evdialog__actions { display: flex; align-items: center; justify-content: space-between; margin-top: 6px; }
.trainer-evdialog__right { display: flex; gap: 8px; }
.trainer-evdialog__del { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 0 13px; border: 1px solid #e6cfca; border-radius: 9px; background: #fff5f3; color: #bd493c; font-size: 12px; font-weight: 700; cursor: pointer; }
.trainer-evdialog__del:hover:not(:disabled) { border-color: #d98a7e; }
.trainer-evdialog__del:disabled,
.trainer-evdialog__actions button:disabled { opacity: .55; cursor: not-allowed; }

/* Rollennavigation: vier Arbeitsbereiche, Werkzeuge bewusst eingeklappt. */
.v2-hub-sidebar__context { margin: 0 8px 18px; padding: 12px; border: 1px solid rgba(255,255,255,.14); border-radius: 11px; background: rgba(255,255,255,.06); }
.v2-hub-sidebar__context span { display: block; color: rgba(255,255,255,.48); font: 700 9px/1 "Space Grotesk", sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.v2-hub-sidebar__context strong { display: block; margin-top: 7px; color: #fff; font-size: 13px; }
.v2-hub-sidebar__context small { display: block; margin-top: 3px; color: rgba(255,255,255,.58); font-size: 9px; }
.v2-hub-sidebar__tools { margin-top: 8px; }
.v2-hub-sidebar__tools summary { min-height: 42px; display: flex; align-items: center; gap: 13px; padding: 10px 14px; border-radius: 10px; color: rgba(248,249,252,.8); font-size: 13px; font-weight: 600; cursor: pointer; list-style: none; }
.v2-hub-sidebar__tools summary::-webkit-details-marker { display: none; }
.v2-hub-sidebar__tools summary > i:first-child { color: #e0a82e; font-size: 18px; }
.v2-hub-sidebar__main-icon,
.v2-hub-sidebar__main-label { display: none; }
.v2-hub-sidebar__disclosure { margin-left: auto; transition: transform .16s ease; }
.v2-hub-sidebar__tools[open] { margin-top: 0; }
.v2-hub-sidebar__tools[open] summary { background: rgba(255,255,255,.07); color: #fff; }
.v2-hub-sidebar__tools[open] .v2-hub-sidebar__all-icon,
.v2-hub-sidebar__tools[open] .v2-hub-sidebar__all-label,
.v2-hub-sidebar__tools[open] .v2-hub-sidebar__disclosure { display: none; }
.v2-hub-sidebar__tools[open] .v2-hub-sidebar__main-icon,
.v2-hub-sidebar__tools[open] .v2-hub-sidebar__main-label { display: inline-block; }
.v2-hub-sidebar__tools[open] .v2-hub-sidebar__main-icon { color: #e0a82e; font-size: 18px; }
.v2-hub-sidebar__toolnav { display: grid; gap: 2px; padding-top: 4px; }
body.courtos-has-sidebar[data-courtos-module="coachboard"] .app-shell > .sidebar#sidebarRoot { display: none !important; }
.courtos-focus-actions { position: fixed; z-index: 11000; top: 14px; right: 16px; display: flex; align-items: center; gap: 8px; }
.courtos-focus-hub { min-height: 36px; display: inline-flex; align-items: center; gap: 7px; padding: 0 13px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; background: #fff; color: #16264c; box-shadow: 0 8px 24px rgba(7,14,30,.2); font: 700 11px/1 "Sora", sans-serif; cursor: pointer; }
.courtos-mobile-menu,
.courtos-mobile-backdrop { display: none; }
.tnav--mobile { display: none; }
@media (min-width: 901px) { .tnav--desktop { display: flex !important; } }

@media (max-width: 1020px) {
  .trainer-area-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .trainer-tool-row { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  :root { --courtos-sidebar-width: 0px !important; }
  body.courtos-has-sidebar { margin-left: 0 !important; }
  .v2-hub-shell { display: block; }
  .v2-hub-shell > .v2-hub-sidebar,
  body.courtos-has-sidebar > .v2-hub-sidebar { position: fixed; z-index: 9500; width: min(86vw,320px) !important; min-width: min(86vw,320px) !important; max-width: min(86vw,320px) !important; transform: translateX(-102%); transition: transform .2s ease; }
  body.courtos-mobile-nav-open > .v2-hub-sidebar,
  body.courtos-mobile-nav-open .v2-hub-shell > .v2-hub-sidebar { transform: translateX(0); }
  .courtos-mobile-menu { position: fixed; z-index: 11001; top: 12px; left: 12px; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #dfe2e7; border-radius: 11px; background: #fff; color: #16264c; box-shadow: 0 8px 24px rgba(22,38,76,.16); }
  .courtos-mobile-backdrop { position: fixed; inset: 0; z-index: 9400; border: 0; background: rgba(8,15,31,.48); }
  body.courtos-mobile-nav-open .courtos-mobile-backdrop { display: block; }
  .v2-hub-main { padding: 0 18px 32px; }
  .trainer-today { padding-top: 76px; }
  .trainer-today__header { align-items: flex-start; }
  .trainer-today__header-actions { flex-direction: column; align-items: flex-end; }
  .trainer-today__layout { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .trainer-today { padding-top: 70px; }
  .trainer-today__header { display: block; }
  .trainer-today h1 { font-size: clamp(31px,10vw,40px); }
  .trainer-today__sub { font-size: 13px; line-height: 1.45; }
  /* Einstellungen und Anpassung gehören in die mobile Seiten-Navigation.
     So bleibt der Einstieg beim eigentlichen Tagesgeschäft. */
  .trainer-today__header-actions { display: none; }
  .trainer-today__date { order: 2; }
  .trainer-timeline::before { left: 29px; }
  .trainer-timeline li { grid-template-columns: 34px minmax(0,1fr); padding: 10px 0; }
  .trainer-timeline time { grid-column: 2; text-align: left; }
  .trainer-timeline__dot { grid-row: 1 / span 2; }
  .trainer-timeline li > div { grid-column: 2; }
  .trainer-timeline li > button { grid-column: 2; justify-self: start; }
  .trainer-timeline li.is-next { padding: 14px; grid-template-columns: 34px minmax(0,1fr); }
  .trainer-area-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-top: 10px; }
  .trainer-dialog__options { grid-template-columns: 1fr; }
  .trainer-areas,
  .trainer-tools { margin-top: 22px; }
  .trainer-area-card { min-height: 132px; gap: 10px; padding: 13px; border-radius: 14px; }
  .trainer-area-card__icon { width: 32px; height: 32px; border-radius: 9px; font-size: 17px; }
  .trainer-area-card__body { gap: 4px; }
  .trainer-area-card__body small { font-size: 8px; letter-spacing: .07em; }
  .trainer-area-card__body strong { font-size: 14px; line-height: 1.15; }
  .trainer-area-card__body > span { display: none; }
  .trainer-area-card__body b { margin-top: 3px; font-size: 10px; }
  .trainer-tool-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .trainer-dialog__actions { align-items: stretch; flex-direction: column-reverse; }
}

/* Athletik: priorisierter Trainer-Arbeitsplatz statt dichtem Funktions-Dashboard. */
.ath-today { max-width: 1220px; margin: 0 auto; padding: 32px 34px 52px; color: #18223a; font-family: "Sora", system-ui, sans-serif; }
.ath-today-head,
.ath-today-sectionhead,
.ath-today-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.ath-today-head p,
.ath-today-sectionhead small { margin: 0 0 7px; color: #7b8390; font: 700 9px/1.2 "Space Grotesk",sans-serif; letter-spacing: .13em; }
.ath-today-head h1 { margin: 0; color: #17213a; font-size: 34px; letter-spacing: -1px; }
.ath-today-head > div > span { display: block; margin-top: 8px; color: #6c7480; font-size: 12px; }
.ath-today-actions > span { display: inline-flex; align-items: center; gap: 7px; color: #69717d; font-size: 11px; text-transform: capitalize; }
.ath-today-actions > button,
.ath-today-primary { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 15px; border: 0; border-radius: 10px; background: #d79c17; color: #fff; font-weight: 700; cursor: pointer; }
.ath-today-priority { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(310px,.75fr); gap: 16px; margin-top: 28px; }
.ath-today-next,
.ath-today-alerts,
.ath-today-flow,
.ath-today-areas > div > button { border: 1px solid #e1e3e7; border-radius: 15px; background: #fff; box-shadow: 0 18px 44px -36px rgba(22,38,76,.34); }
.ath-today-next,
.ath-today-alerts,
.ath-today-flow { padding: 22px; }
.ath-today-next { border-left: 3px solid #e0a82e; }
.ath-today-sectionhead h2 { margin: 0; color: #18223a; font-size: 18px; letter-spacing: -.4px; }
.ath-today-sectionhead > span { padding: 6px 8px; border-radius: 999px; background: #fff5da; color: #a46f0f; font: 700 9px/1 "Space Grotesk",sans-serif; letter-spacing: .08em; }
.ath-today-sectionhead > button { min-height: 32px; padding: 0 10px; border: 1px solid #dde0e5; border-radius: 8px; background: #fff; color: #27407a; font-size: 10px; font-weight: 700; cursor: pointer; }
.ath-today-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 20px 0; border: 1px solid #eceef1; border-radius: 12px; }
.ath-today-metrics > div { display: grid; gap: 8px; padding: 20px; }
.ath-today-metrics > div + div { border-left: 1px solid #e5e7ea; }
.ath-today-metrics small { color: #7a8290; font-size: 10px; }
.ath-today-metrics strong { color: #17213a; font-size: 24px; }
.ath-today-metrics span { color: #717985; font-size: 10px; }
.ath-today-primary { width: 100%; }
.ath-today-alert { width: 100%; display: grid; grid-template-columns: 36px minmax(0,1fr) auto 14px; align-items: center; gap: 9px; padding: 13px 0; border: 0; border-top: 1px solid #eceef1; background: transparent; text-align: left; cursor: pointer; }
.ath-today-alert:first-of-type { margin-top: 16px; }
.ath-today-avatar { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #fff0ed; color: #c14c3f; font-size: 10px; font-weight: 700; }
.ath-today-alert > span:nth-child(2) { display: grid; gap: 4px; }
.ath-today-alert strong { color: #1b2437; font-size: 11px; }
.ath-today-alert small { color: #727b87; font-size: 9px; }
.ath-today-alert b { color: #bd493c; font-size: 10px; }
.ath-today-empty { min-height: 160px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; color: #6f7885; text-align: center; }
.ath-today-empty i { color: #218552; font-size: 28px; }
.ath-today-empty strong { color: #26334d; font-size: 11px; }
.ath-today-empty span { max-width: 220px; font-size: 9px; line-height: 1.5; }
.ath-today-flow { margin-top: 16px; }
.ath-today-flow ol { display: grid; grid-template-columns: repeat(4,1fr); gap: 0; margin: 20px 0 0; padding: 0; list-style: none; }
.ath-today-flow li { position: relative; display: grid; grid-template-columns: 34px 1fr; gap: 8px; padding-right: 14px; }
.ath-today-flow li:not(:last-child)::after { content: ""; position: absolute; top: 30px; right: 4px; width: 28px; border-top: 1px solid #dfe2e6; }
.ath-today-flow time { grid-column: 2; color: #777f8b; font: 700 10px/1 "Space Grotesk",sans-serif; }
.ath-today-flow li > i { grid-row: 1 / span 2; display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #d9dde2; border-radius: 50%; color: #68717e; }
.ath-today-flow .done > i { border-color: #86c59f; background: #f0f8f3; color: #177b45; }
.ath-today-flow .next > i { border-color: #e0a82e; background: #fff6df; color: #ab7410; }
.ath-today-flow li > span { display: grid; gap: 4px; }
.ath-today-flow strong { color: #202a40; font-size: 10px; }
.ath-today-flow small { color: #7a8290; font-size: 9px; }
.ath-today-areas { margin-top: 26px; }
.ath-today-areas > div:last-child { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin-top: 12px; }
.ath-today-areas > div > button { min-height: 150px; display: flex; flex-direction: column; align-items: flex-start; gap: 7px; padding: 18px; color: #27407a; text-align: left; cursor: pointer; }
.ath-today-areas > div > button:hover,
.ath-today-areas > div > button:focus-visible { border-color: #d7b760; outline: none; transform: translateY(-1px); }
.ath-today-areas button > i { display: grid; place-items: center; width: 36px; height: 36px; margin-bottom: 5px; border-radius: 10px; background: #f1f4fa; font-size: 18px; }
.ath-today-areas button small { color: #818895; font: 700 8px/1 "Space Grotesk",sans-serif; letter-spacing: .1em; }
.ath-today-areas button strong { color: #18223a; font-size: 13px; }
.ath-today-areas button span { color: #757d89; font-size: 9px; }
@media (max-width: 980px) {
  .ath-today-priority { grid-template-columns: 1fr; }
  .ath-today-areas > div:last-child { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 700px) {
  .ath-today { padding: 72px 16px 36px; }
  .ath-today-head { align-items: flex-start; flex-direction: column; }
  .ath-today-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .ath-today-metrics,
  .ath-today-areas > div:last-child { grid-template-columns: 1fr; }
  .ath-today-metrics > div + div { border-left: 0; border-top: 1px solid #e5e7ea; }
  .ath-today-flow ol { grid-template-columns: 1fr; gap: 14px; }
  .ath-today-flow li:not(:last-child)::after { display: none; }
}

/* Mobile-first workspace pass — 2026-07-20
   Shared behavior for Trainer Hub workspaces. Individual tools keep their
   domain UI, while navigation, action chrome and wide desktop controls adapt
   to phone and tablet viewports without page-level horizontal scrolling. */
@media (max-width: 900px) {
  body.courtos-mobile-nav-open { overflow: hidden !important; touch-action: none; }
  body.courtos-mobile-nav-open .courtos-mobile-menu { left: min(calc(86vw - 58px),262px); }
  .v2-hub-shell > .v2-hub-sidebar,
  body.courtos-has-sidebar > .v2-hub-sidebar {
    width: min(86vw,320px) !important;
    height: 100dvh !important;
    padding-top: max(18px,env(safe-area-inset-top)) !important;
    padding-bottom: max(18px,env(safe-area-inset-bottom)) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }
  .v2-hub-sidebar .courtos-sidebar-toggle { display: none !important; }
  .courtos-mobile-menu {
    top: max(10px,env(safe-area-inset-top));
    left: max(10px,env(safe-area-inset-left));
    width: 46px;
    height: 46px;
    font-size: 20px;
    transition: left .2s ease,background-color .2s ease,color .2s ease;
  }
  .courtos-mobile-backdrop { height: 100dvh; }

  /* Athletik: one compact command row plus a controlled horizontal tab row. */
  body[data-courtos-module="athletik"] .tb {
    position: sticky !important;
    top: 0 !important;
    z-index: 120 !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    gap: 8px 10px !important;
    padding: 10px 12px 9px 68px !important;
    flex-wrap: nowrap !important;
  }
  body[data-courtos-module="athletik"] .tb > .logo { display: none !important; }
  body[data-courtos-module="athletik"] .ws-switch {
    grid-column: 1;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 44px !important;
  }
  body[data-courtos-module="athletik"] .cd-online { grid-column: 2; white-space: nowrap; }
  body[data-courtos-module="athletik"] .tnav--desktop { display: none !important; }
  body[data-courtos-module="athletik"] .tnav--mobile {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
    display: flex !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 4px !important;
    overflow: visible;
    position: relative;
  }
  body[data-courtos-module="athletik"] .tnav--mobile .tn {
    flex: 1 1 0 !important;
    min-height: 42px !important;
    min-width: 0;
    padding: 0 8px !important;
    white-space: nowrap;
    justify-content: center;
  }
  body[data-courtos-module="athletik"] .tnav-more { position: relative; display: block; flex: 0 0 auto; }
  body[data-courtos-module="athletik"] .tnav-more__trigger { min-width: 58px; }
  body[data-courtos-module="athletik"] .tnav-more__menu { position: absolute; z-index: 130; top: calc(100% + 8px); right: 0; display: grid; gap: 4px; width: min(220px,calc(100vw - 32px)); padding: 8px; border: 1px solid rgba(211,220,239,.34); border-radius: 14px; background: #203662; box-shadow: 0 16px 34px rgba(5,15,37,.32); }
  body[data-courtos-module="athletik"] .tnav-more__menu button { min-height: 44px; display: flex; align-items: center; gap: 10px; padding: 0 12px; border: 0; border-radius: 10px; background: transparent; color: #fff; font: inherit; font-weight: 700; text-align: left; }
  body[data-courtos-module="athletik"] .tnav-more__menu button:hover,
  body[data-courtos-module="athletik"] .tnav-more__menu button:focus-visible { background: rgba(255,255,255,.13); outline: none; }
  body[data-courtos-module="athletik"] .tb2 {
    display: block !important;
    min-width: 0;
    padding: 8px 12px !important;
    overflow: hidden;
  }
  body[data-courtos-module="athletik"] .tba {
    width: 100%;
    min-width: 0;
    display: flex !important;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }
  body[data-courtos-module="athletik"] .tba::-webkit-scrollbar { display: none; }
  body[data-courtos-module="athletik"] .tba > * { flex: 0 0 auto; min-height: 44px; }
  body[data-courtos-module="athletik"] .tb2-saved { display: none !important; }
  body[data-courtos-module="athletik"] .ath-today { padding: 28px 16px 44px !important; }

  /* Kader: brand and account actions yield to the primary view tabs. */
  body[data-courtos-module="kader"] .chrome {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 8px !important;
    padding: 10px 12px 9px 68px !important;
    height: auto !important;
    min-height: 113px !important;
    align-items: stretch !important;
    overflow: hidden;
  }
  body[data-courtos-module="kader"] .chrome-l { display: contents !important; }
  body[data-courtos-module="kader"] .chrome .brand { display: none !important; }
  body[data-courtos-module="kader"] .tabs {
    width: 100%;
    min-width: 0;
    justify-content: flex-start !important;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }
  body[data-courtos-module="kader"] .tabs::-webkit-scrollbar { display: none; }
  body[data-courtos-module="kader"] .tab {
    flex: 0 0 auto !important;
    min-width: auto !important;
    min-height: 44px !important;
    white-space: nowrap;
  }
  body[data-courtos-module="kader"] .chrome-r {
    width: 100%;
    min-width: 0;
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr));
    justify-content: stretch !important;
    overflow: visible;
    scrollbar-width: none;
    padding-left: 56px;
  }
  body[data-courtos-module="kader"] .chrome-r::-webkit-scrollbar { display: none; }
  body[data-courtos-module="kader"] .chrome-r > * { min-width: 0; width: 100%; min-height: 44px; padding-inline: 8px; white-space: normal; line-height: 1.2; }

  /* Replay: desktop camera inputs become a compact, full-width control deck. */
  body[data-courtos-module="replay"] { overflow-x: hidden; }
  body[data-courtos-module="replay"] .nav {
    height: 62px !important;
    padding: 0 12px 0 68px !important;
    gap: 8px !important;
  }
  body[data-courtos-module="replay"] .nav .brand { min-width: 0; }
  body[data-courtos-module="replay"] .nav .brand .name { font-size: 16px; white-space: nowrap; }
  body[data-courtos-module="replay"] .nav .brand .sub,
  body[data-courtos-module="replay"] #beamer2,
  body[data-courtos-module="replay"] #helpBtn,
  body[data-courtos-module="replay"] #memEst { display: none !important; }
  body[data-courtos-module="replay"] .toolbar {
    position: static !important;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr));
    align-items: end !important;
    gap: 10px !important;
    padding: 12px !important;
    overflow: hidden;
  }
  body[data-courtos-module="replay"] .toolbar > .group {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr));
    align-items: end !important;
    gap: 10px !important;
    padding: 12px !important;
  }
  body[data-courtos-module="replay"] .toolbar .field,
  body[data-courtos-module="replay"] .toolbar .field .in,
  body[data-courtos-module="replay"] .toolbar select,
  body[data-courtos-module="replay"] .toolbar input { min-width: 0; max-width: 100%; }
  body[data-courtos-module="replay"] .toolbar input.url,
  body[data-courtos-module="replay"] .toolbar input.nm { width: 100% !important; }
  body[data-courtos-module="replay"] .toolbar .btn { min-height: 44px; justify-content: center; }
  body[data-courtos-module="replay"] .toolbar > .divider { display: none; }
  body[data-courtos-module="replay"] .toolbar > .toggles {
    grid-column: 1 / -1;
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 8px !important;
  }
  body[data-courtos-module="replay"] .toolbar .tg { min-height: 44px; white-space: normal; }
  body[data-courtos-module="replay"] #grid {
    grid-template-columns: minmax(0,1fr) !important;
    padding: 14px 12px 44px !important;
  }
  body[data-courtos-module="replay"] #empty { margin: 24px auto !important; padding: 0 12px !important; }
  body[data-courtos-module="replay"] .hero-card { padding: 30px 22px !important; }

  /* Radar: every step remains reachable in a deliberate scroll row. */
  body[data-courtos-module="radar"] .hdr { padding-left: 68px !important; }
  body[data-courtos-module="radar"] .step-bar {
    justify-content: flex-start;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline proximity;
  }
  body[data-courtos-module="radar"] .step-tab {
    flex: 0 0 auto !important;
    min-width: 104px !important;
    min-height: 44px;
    scroll-snap-align: start;
  }

  /* Coachboard: fixed primary navigation respects Safari and home-indicator. */
  body[data-courtos-module="coachboard"] main {
    padding-top: 68px !important;
    padding-bottom: calc(112px + env(safe-area-inset-bottom)) !important;
  }
  body[data-courtos-module="coachboard"] .mobile-bar {
    bottom: max(8px,env(safe-area-inset-bottom)) !important;
    left: max(8px,env(safe-area-inset-left)) !important;
    right: max(8px,env(safe-area-inset-right)) !important;
    min-height: 72px;
  }
  body[data-courtos-module="coachboard"] .mobile-bar .mbtn {
    min-width: 0;
    min-height: 52px;
    padding-inline: 4px;
  }
  body[data-courtos-module="coachboard"] .cos-legal-link {
    bottom: calc(92px + env(safe-area-inset-bottom)) !important;
  }
}

@media (max-width: 560px) {
  .courtos-focus-actions { top: 8px; right: 8px; gap: 6px; }
  .courtos-focus-hub { min-height: 44px; padding: 0 12px; }
  .courtos-focus-settings { width: 44px; padding: 0; justify-content: center; }
  .courtos-focus-settings span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  body.courtos-focus-mode { overflow-x: hidden; }
  body[data-courtos-module="replay"] .toolbar { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body[data-courtos-module="replay"] .toolbar > .group { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body[data-courtos-module="replay"] .toolbar > .group:first-child > .field,
  body[data-courtos-module="replay"] .toolbar > .group:nth-child(2) > .field:first-child,
  body[data-courtos-module="replay"] .toolbar > .group:nth-child(2) > .btn-primary,
  body[data-courtos-module="replay"] .toolbar > .group:nth-child(2) > .field:nth-child(5),
  body[data-courtos-module="replay"] .toolbar > .group:nth-child(2) > div:nth-child(6) { grid-column: 1 / -1; }
  body[data-courtos-module="replay"] .toolbar > .group:nth-child(2) > div:nth-child(6) {
    display: grid !important;
    grid-template-columns: auto minmax(0,1fr) auto;
  }
  body[data-courtos-module="replay"] .toolbar > .toggles { grid-template-columns: minmax(0,1fr); }
  body[data-courtos-module="replay"] .toolbar .group > div[style] { width: 100%; }
  body[data-courtos-module="replay"] .toolbar .group > div[style] .btn { flex: 1 1 auto; }
  body[data-courtos-module="coachboard"] .mobile-bar .mbtn { font-size: 8.5px; }
  body.courtos-focus-mode[data-courtos-module="anzeigetafel"] .courtos-focus-actions {
    top: auto;
    right: auto;
    bottom: max(12px,env(safe-area-inset-bottom));
    left: 50%;
    transform: translateX(-50%);
  }
}
@media (max-width: 340px) {
  body[data-courtos-module="replay"] .toolbar > .group { grid-template-columns: minmax(0,1fr); }
  body[data-courtos-module="replay"] .toolbar > .group > * { grid-column: 1 !important; }
}

/* Final mobile override: keep Kader actions one row after the shared
   workspace pass above has established the compact chrome. */
@media (max-width: 900px) {
  body[data-courtos-module="kader"] .chrome {
    transition: transform .2s ease, opacity .2s ease;
    will-change: transform;
  }
  body[data-courtos-module="kader"].courtos-mobile-header-hidden .chrome {
    transform: translateY(-110%);
    opacity: 0;
    pointer-events: none;
  }
  body[data-courtos-module="kader"] .chrome-r {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    gap: 6px !important;
    padding-left: 0 !important;
  }
  body[data-courtos-module="kader"] .chrome-r > .datepill,
  body[data-courtos-module="kader"] .chrome-r > .chrome-ic { display: none !important; }
  body[data-courtos-module="kader"] .chrome-r > .btn-primary,
  body[data-courtos-module="kader"] .chrome-r > .kd-linkbtn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 38px !important;
    padding: 7px 5px !important;
    border-radius: 9px !important;
    font-size: 10px !important;
    line-height: 1.1 !important;
    text-align: center;
    white-space: normal !important;
  }
  body[data-courtos-module="kader"] .chrome-r > .kd-linkbtn {
    border-color: #bd493c !important;
    background: #bd493c !important;
    color: #fff !important;
  }
}
