/**
 * robby.css – Design-System für robby-App (rob.by)
 * Basierend auf briefing.mdc: Primär Orange, Sekundär Violett, Schrift Roboto
 * Mobile-First, Touch-freundlich (min. 44×44px)
 */

/* ========== Design Tokens (CSS Custom Properties) ========== */
:root {
  /* Primärfarben – Orange (briefing: #ff8c00) */
  --robby-primary: #ff8c00;
  --robby-primary-light: #ffa726;
  --robby-primary-dark: #e65100;

  /* Sekundärfarben – Violett (briefing: #cc00cc) */
  --robby-secondary: #cc00cc;
  --robby-secondary-light: #e040fb;
  --robby-secondary-dark: #9c00b0;

  /* Neutrale Farben */
  --robby-white: #ffffff;
  --robby-gray: #dedede;
  --robby-gray-dark: #bdbdbd;
  --robby-text: #505050;
  --robby-text-muted: #808080;
  --robby-text-inverse: #ffffff;
  --robby-bg: #ffffff;
  --robby-bg-alt: #f5f5f5;
  --robby-bg-orange-light: #fff5eb; /* sehr helles Orange für Tabellen-Zeilen */

  /* Typografie – Roboto (briefing) */
  --robby-font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --robby-font-size-xs: 0.75rem;
  --robby-font-size-sm: 0.875rem;
  --robby-font-size-base: 1rem;
  --robby-font-size-lg: 1.125rem;
  --robby-font-size-xl: 1.25rem;
  --robby-font-size-2xl: 1.5rem;
  --robby-font-size-3xl: 1.875rem;
  --robby-font-size-4xl: 2.25rem;
  --robby-line-height-tight: 1.25;
  --robby-line-height-base: 1.5;
  --robby-line-height-relaxed: 1.75;

  /* Spacing (8px-Basis) */
  --robby-space-1: 0.25rem;
  --robby-space-2: 0.5rem;
  --robby-space-3: 0.75rem;
  --robby-space-4: 1rem;
  --robby-space-5: 1.25rem;
  --robby-space-6: 1.5rem;
  --robby-space-8: 2rem;
  --robby-space-10: 2.5rem;
  --robby-space-12: 3rem;

  /* Border & Radius */
  --robby-radius-sm: 4px;
  --robby-radius: 8px;
  --robby-radius-lg: 12px;
  --robby-border: 1px solid var(--robby-gray);
  --robby-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  --robby-shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.12);

  /* Touch-Target (min. 44px) */
  --robby-touch-min: 44px;

  /* Transitions */
  --robby-transition: 0.2s ease;

  /* Container: variabel breit, max. 20px Abstand links/rechts */
  --robby-container-gutter: 20px;

  /* Breakpoint ab hier: horizontales Menü */
  --robby-nav-breakpoint: 768px;

  /* Robby-App: fixer Header, scrollbarer Content */
  --robby-app-header-height: 56px;
  --robby-app-header-pad: 6px;
  --robby-header-icon-height: var(--robby-touch-min);
  --robby-app-search-height: 56px;
  --robby-app-channel-bar-height: 48px;
  --robby-app-bottom-height: calc(var(--robby-app-search-height) + var(--robby-app-channel-bar-height));
}

/* UI-Schriftgröße (Einstellungen): Skalierung über html, alle rem-Werte skalieren mit */
html.robby-font-size-xs { font-size: 80%; }
html.robby-font-size-sm { font-size: 90%; }
html.robby-font-size-base { font-size: 100%; }
html.robby-font-size-lg { font-size: 110%; }
html.robby-font-size-xl { font-size: 125%; }

/* Icon-Größen und Abstände abhängig von Schriftgröße (Einstellungen): 20–36 px, Abstände 4–8 px */
:root {
  --robby-icon-size: 28px;
  --robby-icon-gap: 6px;
  --robby-bar-gap: 6px;
  --robby-bar-pad: 6px;
  --robby-bar-item-min: 44px;
  --robby-bar-item-pad-x: 6px;
  --robby-bar-label-size: 0.65rem;
}
html.robby-font-size-xs  { --robby-icon-size: 20px; --robby-icon-gap: 4px; --robby-bar-gap: 8px; --robby-bar-pad: 8px; --robby-bar-item-min: 40px; --robby-bar-item-pad-x: 8px; --robby-bar-label-size: 0.65rem; --robby-app-channel-bar-height: 42px; --robby-app-bottom-height: calc(var(--robby-app-search-height) + 42px); --robby-app-header-height: 44px; --robby-app-header-pad: 4px; }
html.robby-font-size-sm  { --robby-icon-size: 24px; --robby-icon-gap: 5px; --robby-bar-gap: 6px; --robby-bar-pad: 6px; --robby-bar-item-min: 38px; --robby-bar-item-pad-x: 6px; --robby-bar-label-size: 0.65rem; --robby-app-channel-bar-height: 44px; --robby-app-bottom-height: calc(var(--robby-app-search-height) + 44px); --robby-app-header-height: 48px; --robby-app-header-pad: 5px; }
html.robby-font-size-base{ --robby-icon-size: 28px; --robby-icon-gap: 6px; --robby-bar-gap: 4px; --robby-bar-pad: 5px; --robby-bar-item-min: 36px; --robby-bar-item-pad-x: 4px; --robby-bar-label-size: 0.6rem;  --robby-app-channel-bar-height: 48px; --robby-app-bottom-height: calc(var(--robby-app-search-height) + 48px); --robby-app-header-height: 56px; --robby-app-header-pad: 6px; }
html.robby-font-size-lg  { --robby-icon-size: 32px; --robby-icon-gap: 7px; --robby-bar-gap: 2px; --robby-bar-pad: 4px; --robby-bar-item-min: 32px; --robby-bar-item-pad-x: 3px; --robby-bar-label-size: 0.55rem; --robby-app-channel-bar-height: 52px; --robby-app-bottom-height: calc(var(--robby-app-search-height) + 52px); --robby-app-header-height: 60px; --robby-app-header-pad: 5px; }
html.robby-font-size-xl  { --robby-icon-size: 36px; --robby-icon-gap: 8px; --robby-bar-gap: 1px; --robby-bar-pad: 3px; --robby-bar-item-min: 28px; --robby-bar-item-pad-x: 2px; --robby-bar-label-size: 0.5rem;  --robby-app-channel-bar-height: 56px; --robby-app-bottom-height: calc(var(--robby-app-search-height) + 56px); --robby-app-header-height: 64px; --robby-app-header-pad: 4px; }

/* ========== Container ========== */
.robby-container {
  width: 100%;
  max-width: none;
  margin-left: var(--robby-container-gutter);
  margin-right: var(--robby-container-gutter);
  box-sizing: border-box;
}

/* ========== Seite / Layout (kein Inline-CSS) ========== */
.robby-page {
  padding-top: var(--robby-space-8);
  padding-bottom: var(--robby-space-8);
}

.robby-page__header {
  margin-bottom: var(--robby-space-8);
}

.robby-footer {
  margin-top: var(--robby-space-12);
  padding-top: var(--robby-space-8);
  border-top: 1px solid var(--robby-gray);
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text-muted);
}

/* ========== Base / Reset ========== */
.robby,
.robby * {
  box-sizing: border-box;
}

.robby {
  font-family: var(--robby-font-family);
  font-size: var(--robby-font-size-base);
  line-height: var(--robby-line-height-base);
  color: var(--robby-text);
  background-color: var(--robby-bg);
}

/* ========== Typografie ========== */
.robby h1, .robby .robby-heading--1 {
  font-size: 2rem;
  font-weight: 700;
  line-height: var(--robby-line-height-tight);
  color: var(--robby-primary-dark);
  margin: 0 0 var(--robby-space-4);
}

.robby h2, .robby .robby-heading--2 {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--robby-primary);
  margin: 1.5rem 0 0.875rem; /* 24px / 14px */
}

.robby h3, .robby .robby-heading--3 {
  font-size: var(--robby-font-size-2xl);
  font-weight: 600;
  margin: 1.25rem 0 0.625rem; /* 20px / 10px */
}

.robby h4, .robby .robby-heading--4 {
  font-size: var(--robby-font-size-xl);
  font-weight: 600;
  margin: var(--robby-space-4) 0 var(--robby-space-2);
}

.robby h5, .robby .robby-heading--5 {
  font-size: var(--robby-font-size-lg);
  font-weight: 600;
  margin: var(--robby-space-3) 0 var(--robby-space-2);
}

.robby h6, .robby .robby-heading--6 {
  font-size: var(--robby-font-size-base);
  font-weight: 600;
  margin: var(--robby-space-2) 0;
}

.robby p {
  margin: 0 0 var(--robby-space-4);
  color: var(--robby-text);
}

.robby .robby-text--muted {
  color: var(--robby-text-muted);
}

.robby .robby-text--small {
  font-size: var(--robby-font-size-sm);
}

.robby .robby-text--large {
  font-size: var(--robby-font-size-lg);
}

.robby a {
  color: var(--robby-primary);
  text-decoration: none;
  transition: color var(--robby-transition);
}

.robby a:hover {
  color: var(--robby-primary-dark);
  text-decoration: underline;
}

.robby strong {
  font-weight: 700;
}

.robby em {
  font-style: italic;
}

.robby code, .robby .robby-code {
  font-family: 'Roboto Mono', Consolas, monospace;
  font-size: var(--robby-font-size-sm);
  background: var(--robby-gray);
  padding: var(--robby-space-1) var(--robby-space-2);
  border-radius: var(--robby-radius-sm);
}

.robby pre {
  background: var(--robby-bg-alt);
  border: var(--robby-border);
  border-radius: var(--robby-radius);
  padding: var(--robby-space-4);
  overflow-x: auto;
  margin: 0 0 var(--robby-space-4);
}

.robby pre code {
  background: none;
  padding: 0;
}

.robby blockquote {
  margin: 0 0 var(--robby-space-4);
  padding-left: var(--robby-space-4);
  border-left: 4px solid var(--robby-primary);
  color: var(--robby-text-muted);
}

.robby ul, .robby ol {
  margin: 0 0 var(--robby-space-4);
  padding-left: var(--robby-space-6);
}

.robby li {
  margin-bottom: var(--robby-space-2);
}

/* ========== Buttons ========== */
.robby .robby-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--robby-touch-min);
  min-width: var(--robby-touch-min);
  padding: var(--robby-space-2) var(--robby-space-4);
  font-family: var(--robby-font-family);
  font-size: var(--robby-font-size-base);
  font-weight: 500;
  line-height: 1;
  border: none;
  border-radius: var(--robby-radius);
  cursor: pointer;
  transition: background-color var(--robby-transition), color var(--robby-transition), box-shadow var(--robby-transition);
}

.robby .robby-btn:focus {
  outline: 2px solid var(--robby-primary);
  outline-offset: 2px;
}

.robby .robby-btn--primary {
  padding: var(--robby-space-2) var(--robby-space-4);
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text-inverse);
  background: var(--robby-primary);
  border: 1px solid var(--robby-primary);
  border-radius: var(--robby-radius);
  transition: background-color var(--robby-transition), color var(--robby-transition), border-color var(--robby-transition);
}

.robby .robby-btn--primary:hover {
  background: var(--robby-primary-dark);
  color: var(--robby-text-inverse);
  border-color: var(--robby-primary-dark);
}

.robby .robby-btn--secondary {
  background-color: var(--robby-secondary);
  color: var(--robby-text-inverse);
}

.robby .robby-btn--secondary:hover {
  background-color: var(--robby-secondary-dark);
}

.robby .robby-btn--outline {
  background-color: transparent;
  color: var(--robby-primary);
  border: 2px solid var(--robby-primary);
}

.robby .robby-btn--outline:hover {
  background-color: var(--robby-primary);
  color: var(--robby-text-inverse);
}

.robby .robby-btn--ghost {
  background-color: transparent;
  color: var(--robby-text);
}

.robby .robby-btn--ghost:hover {
  background-color: var(--robby-gray);
}

.robby .robby-btn--small {
  min-height: var(--robby-icon-size);
  padding: var(--robby-space-2) var(--robby-space-3);
  font-size: var(--robby-font-size-sm);
}

.robby .robby-btn--large {
  min-height: 52px;
  padding: var(--robby-space-3) var(--robby-space-6);
  font-size: var(--robby-font-size-lg);
}

.robby .robby-btn:disabled,
.robby .robby-btn[aria-disabled="true"] {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ========== Formulare ========== */
.robby .robby-label {
  display: block;
  font-size: var(--robby-font-size-sm);
  font-weight: 500;
  margin-bottom: var(--robby-space-2);
  color: var(--robby-text);
}

.robby .robby-input,
.robby .robby-textarea,
.robby .robby-select {
  width: 100%;
  min-height: var(--robby-touch-min);
  padding: var(--robby-space-2) var(--robby-space-4);
  font-family: var(--robby-font-family);
  font-size: var(--robby-font-size-base);
  color: var(--robby-text);
  background: var(--robby-bg);
  border: var(--robby-border);
  border-radius: var(--robby-radius);
  transition: border-color var(--robby-transition), box-shadow var(--robby-transition);
}

.robby .robby-input:focus,
.robby .robby-textarea:focus,
.robby .robby-select:focus {
  outline: none;
  border-color: var(--robby-primary);
  box-shadow: 0 0 0 3px rgba(255, 140, 0, 0.2);
}

.robby .robby-input::placeholder,
.robby .robby-textarea::placeholder {
  color: var(--robby-text-muted);
}

.robby .robby-textarea {
  min-height: 120px;
  resize: vertical;
}

.robby .robby-select {
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23808080' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--robby-space-4) center;
  padding-right: 2.5rem;
}

.robby .robby-form-group {
  margin-bottom: var(--robby-space-4);
}

/* Checkbox & Radio */
.robby .robby-checkbox,
.robby .robby-radio {
  display: flex;
  align-items: center;
  gap: var(--robby-space-3);
  min-height: var(--robby-touch-min);
  cursor: pointer;
}

.robby .robby-checkbox input,
.robby .robby-radio input {
  width: 22px;
  height: 22px;
  accent-color: var(--robby-primary);
  cursor: pointer;
}

/* ========== Cards ========== */
.robby .robby-card {
  background: var(--robby-bg);
  border: var(--robby-border);
  border-radius: var(--robby-radius-lg);
  box-shadow: var(--robby-shadow);
  overflow: hidden;
  transition: box-shadow var(--robby-transition);
}

.robby .robby-card:hover {
  box-shadow: var(--robby-shadow-lg);
}

.robby .robby-card__header {
  padding: var(--robby-space-4);
  border-bottom: var(--robby-border);
  font-weight: 600;
  font-size: var(--robby-font-size-lg);
}

.robby .robby-card__body {
  padding: var(--robby-space-4);
}

.robby .robby-card__footer {
  padding: var(--robby-space-4);
  border-top: var(--robby-border);
  background: var(--robby-bg-alt);
}

/* Doc-Seiten (FAQ, Help, Imprint, Terms, Privacy, Contact, Settings, Recommend) als Infocards */
.robby .robby-cards--doc {
  display: flex;
  flex-direction: column;
  gap: var(--robby-space-4);
}
.robby .robby-card--doc .robby-card__header {
  padding-bottom: var(--robby-space-2);
}
.robby .robby-card--doc .robby-card__header .robby-content-title {
  margin: 0 0 0.25em;
  font-size: var(--robby-font-size-lg);
}
.robby .robby-card--doc .robby-card__header .robby-text--muted {
  margin: 0;
  font-size: var(--robby-font-size-sm);
}
.robby .robby-card--doc .robby-card__body .robby-doc-block:first-child,
.robby .robby-card--doc .robby-card__body > :first-child {
  margin-top: 0;
}
.robby .robby-doc-page .robby-doc-back {
  margin-top: var(--robby-space-6);
}

/* FAQ-Seite: orangener Titel, eine Infocard pro Frage/Antwort */
.robby .robby-content-title--primary {
  color: var(--robby-primary);
}
.robby .robby-faq-header {
  margin-bottom: var(--robby-space-4);
}
.robby .robby-faq-header .robby-faq-subtitle {
  margin: 0.25em 0 0;
  font-size: var(--robby-font-size-base);
  font-weight: 400;
  color: var(--robby-text-muted);
}
.robby .robby-cards--faq {
  display: flex;
  flex-direction: column;
  gap: var(--robby-space-4);
}
.robby .robby-card--faq .robby-card__header {
  padding: var(--robby-space-2) var(--robby-space-4);
  padding-bottom: var(--robby-space-1);
}
.robby .robby-card--faq .robby-faq-q {
  margin: 0;
  font-size: var(--robby-font-size-sm);
  font-weight: 600;
  color: var(--robby-text);
  line-height: 1.25;
}
.robby .robby-card--faq .robby-card__body .robby-faq-a {
  margin: 0;
  font-size: var(--robby-font-size-sm);
  line-height: 1.5;
  color: var(--robby-text);
}
.robby .robby-card--faq .robby-faq-a a {
  color: var(--robby-primary);
  text-decoration: underline;
}
.robby .robby-card--faq .robby-faq-a a:hover {
  color: var(--robby-primary-dark, #e67d00);
}

/* Doc-Seiten (Help, Downloads, Terms, Imprint, Privacy): einheitlicher Header wie FAQ */
.robby .robby-doc-header {
  margin-bottom: var(--robby-space-4);
}
.robby .robby-doc-header .robby-doc-subtitle {
  margin: 0.25em 0 0;
  font-size: var(--robby-font-size-base);
  font-weight: 400;
  color: var(--robby-text-muted);
}

/* ========== Badges / Tags ========== */
.robby .robby-badge {
  display: inline-flex;
  align-items: center;
  padding: var(--robby-space-1) var(--robby-space-3);
  font-size: var(--robby-font-size-sm);
  font-weight: 500;
  border-radius: 999px;
}

.robby .robby-badge--primary {
  background: var(--robby-primary);
  color: var(--robby-text-inverse);
}

.robby .robby-badge--secondary {
  background: var(--robby-secondary);
  color: var(--robby-text-inverse);
}

.robby .robby-badge--neutral {
  background: var(--robby-gray);
  color: var(--robby-text);
}

.robby .robby-badge--outline {
  background: transparent;
  border: 1px solid var(--robby-primary);
  color: var(--robby-primary);
}

/* ========== Alerts / Hinweise ========== */
.robby .robby-alert {
  padding: var(--robby-space-4);
  border-radius: var(--robby-radius);
  border-left: 4px solid;
  margin-bottom: var(--robby-space-4);
}

.robby .robby-alert--info {
  background: #e3f2fd;
  border-color: var(--robby-primary);
  color: var(--robby-primary-dark);
}

.robby .robby-alert--success {
  background: #e8f5e9;
  border-color: #4caf50;
  color: #2e7d32;
}

.robby .robby-alert--warning {
  background: #fff3e0;
  border-color: var(--robby-primary);
  color: var(--robby-primary-dark);
}

.robby .robby-alert--error {
  background: #ffebee;
  border-color: #c62828;
  color: #b71c1c;
}

/* Meldungen in Content (z. B. disciplines.php) */
.robby .robby-msg {
  margin: 0 0 var(--robby-space-4);
  padding: var(--robby-space-2) var(--robby-space-3);
  border-radius: var(--robby-radius-sm);
  font-size: var(--robby-font-size-sm);
}
.robby .robby-msg--info {
  background: #e3f2fd;
  border-left: 4px solid var(--robby-primary);
  color: var(--robby-primary-dark);
}
.robby .robby-msg--error {
  background: #ffebee;
  border-left: 4px solid #c62828;
  color: #b71c1c;
}

/* Seitentitel (Content-Seiten, Modals) */
.robby .robby-content-title {
  margin: 0 0 var(--robby-space-2);
  font-size: var(--robby-font-size-xl);
  font-weight: 600;
  color: var(--robby-text);
}

/* ========== Navigation / Tabs ========== */
.robby .robby-tabs {
  display: flex;
  gap: 0;
  border-bottom: 2px solid var(--robby-gray);
  margin-bottom: var(--robby-space-4);
}

.robby .robby-tabs__item {
  min-height: var(--robby-touch-min);
  padding: var(--robby-space-2) var(--robby-space-4);
  font-weight: 500;
  color: var(--robby-text-muted);
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
  transition: color var(--robby-transition), border-color var(--robby-transition);
}

.robby .robby-tabs__item:hover {
  color: var(--robby-text);
}

.robby .robby-tabs__item[aria-selected="true"] {
  color: var(--robby-primary);
  border-bottom-color: var(--robby-primary);
}

/* ========== Tabellen ========== */
.robby .robby-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--robby-font-size-sm);
}

.robby .robby-table th,
.robby .robby-table td {
  padding: var(--robby-space-2) var(--robby-space-3);
  text-align: left;
  border-bottom: var(--robby-border);
}

.robby .robby-table th {
  font-weight: 600;
  background: var(--robby-bg-orange-light);
  color: var(--robby-secondary);
}

.robby .robby-table tbody tr:nth-child(odd) td {
  background: var(--robby-bg);
}

.robby .robby-table tbody tr:nth-child(even) td {
  background: var(--robby-bg-orange-light);
}

.robby .robby-table tbody tr:hover td {
  background: var(--robby-gray);
}

/* ========== Listen (List-Groups) ========== */
.robby .robby-list-group {
  border: var(--robby-border);
  border-radius: var(--robby-radius);
  overflow: hidden;
}

.robby .robby-list-group__item {
  padding: var(--robby-space-4);
  border-bottom: var(--robby-border);
  min-height: var(--robby-touch-min);
  display: flex;
  align-items: center;
}

.robby .robby-list-group__item:last-child {
  border-bottom: none;
}

.robby .robby-list-group__item:hover {
  background: var(--robby-bg-alt);
}

/* ========== Breadcrumbs ========== */
.robby .robby-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--robby-space-2);
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text-muted);
  margin-bottom: var(--robby-space-4);
}

.robby .robby-breadcrumb__sep {
  color: var(--robby-gray-dark);
}

.robby .robby-breadcrumb a {
  color: var(--robby-text-muted);
}

.robby .robby-breadcrumb a:hover {
  color: var(--robby-primary);
}

/* ========== Divider ========== */
.robby .robby-divider {
  height: 1px;
  background: var(--robby-gray);
  margin: var(--robby-space-4) 0;
  border: none;
}

/* ========== Styleguide-Helfer ========== */
/* Styleguide: Abschnitts-Menü – horizontal, responsiv mit Hamburger, kompakte Abstände, kontrastreiche Links */
.robby .robby-sg-nav {
  margin-bottom: var(--robby-space-6);
  padding: var(--robby-space-2) var(--robby-space-3);
  background: var(--robby-bg-alt);
  border-radius: var(--robby-radius);
  border: var(--robby-border);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--robby-space-2);
}

.robby .robby-sg-nav__title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--robby-text);
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 1.2;
}

/* Hamburger-Button (3 Balken) – nur unter Breakpoint sichtbar */
.robby .robby-sg-nav__burger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: var(--robby-touch-min);
  min-width: var(--robby-touch-min);
  height: var(--robby-touch-min);
  padding: 0;
  background: transparent;
  border: var(--robby-border);
  border-radius: var(--robby-radius-sm);
  cursor: pointer;
  color: var(--robby-text);
  transition: background-color var(--robby-transition), border-color var(--robby-transition);
}

.robby .robby-sg-nav__burger:hover {
  background: var(--robby-gray);
}

.robby .robby-sg-nav__burger:focus {
  outline: 2px solid var(--robby-primary);
  outline-offset: 2px;
}

.robby .robby-sg-nav__burger span {
  display: block;
  width: 22px;
  height: 3px;
  background: currentColor;
  border-radius: 2px;
  transition: transform var(--robby-transition), opacity var(--robby-transition);
}

.robby .robby-sg-nav--open .robby-sg-nav__burger span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}

.robby .robby-sg-nav--open .robby-sg-nav__burger span:nth-child(2) {
  opacity: 0;
}

.robby .robby-sg-nav--open .robby-sg-nav__burger span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

@media (min-width: 768px) {
  .robby .robby-sg-nav__burger {
    display: none;
  }
}

/* Wenn Hamburger sichtbar: Hover über Nav zeigt Menüauswahl (anklickbar) */
@media (max-width: 767px) {
  .robby .robby-sg-nav:hover .robby-sg-nav__list {
    display: flex;
  }
}

/* Liste: unter Breakpoint eingeklappt, darüber horizontal – geringe Zeilenabstände */
.robby .robby-sg-nav__list {
  display: none;
  flex-direction: column;
  list-style: none;
  margin: 0;
  padding: var(--robby-space-2) 0 0;
  gap: var(--robby-space-1);
  width: 100%;
  border-top: var(--robby-border);
  line-height: 1.2;
}

.robby .robby-sg-nav--open .robby-sg-nav__list {
  display: flex;
}

@media (min-width: 768px) {
  .robby .robby-sg-nav__list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    width: auto;
    padding: 0;
    gap: var(--robby-space-1);
    border-top: none;
  }
}

.robby .robby-sg-nav__list a {
  display: block;
  min-height: 0;
  padding: var(--robby-space-1) var(--robby-space-2);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.25;
  color: var(--robby-primary-dark, #e65100);
  background: var(--robby-white);
  text-decoration: none;
  border: 1px solid var(--robby-gray);
  border-radius: var(--robby-radius-sm);
  transition: background-color var(--robby-transition), color var(--robby-transition), border-color var(--robby-transition);
}

.robby .robby-sg-nav__list a:hover {
  background: var(--robby-primary);
  color: var(--robby-text-inverse);
  border-color: var(--robby-primary);
}

.robby .robby-sg-nav__list a:focus {
  outline: 2px solid var(--robby-primary);
  outline-offset: 2px;
}

.robby .robby-sg-section {
  margin-bottom: var(--robby-space-12);
}

.robby .robby-sg-title {
  font-size: var(--robby-font-size-2xl);
  font-weight: 700;
  color: var(--robby-primary);
  margin-bottom: var(--robby-space-2);
  padding-bottom: var(--robby-space-2);
  border-bottom: 2px solid var(--robby-gray);
}

.robby .robby-sg-subtitle {
  font-size: var(--robby-font-size-lg);
  font-weight: 600;
  margin: var(--robby-space-6) 0 var(--robby-space-2);
}

.robby .robby-sg-typo-size {
  font-size: var(--robby-font-size-sm);
  font-weight: 400;
  color: var(--robby-text-muted);
}

.robby .robby-sg-demo {
  padding: var(--robby-space-4);
  background: var(--robby-bg-alt);
  border-radius: var(--robby-radius);
  margin-bottom: var(--robby-space-4);
}

.robby .robby-sg-palette {
  display: flex;
  flex-wrap: wrap;
  gap: var(--robby-space-4);
  margin-bottom: var(--robby-space-4);
}

.robby .robby-sg-swatch {
  width: 80px;
  height: 80px;
  border-radius: var(--robby-radius);
  border: var(--robby-border);
  box-shadow: var(--robby-shadow);
}

.robby .robby-sg-swatch--primary { background-color: #ff8c00; }
.robby .robby-sg-swatch--secondary { background-color: #cc00cc; }
.robby .robby-sg-swatch--white { background-color: #ffffff; border: 1px solid #ddd; }
.robby .robby-sg-swatch--gray { background-color: #dedede; }
.robby .robby-sg-swatch--text { background-color: #505050; }
.robby .robby-sg-swatch--text-muted { background-color: #808080; }

.robby .robby-sg-demo .robby-card {
  max-width: 360px;
}

.robby .robby-sg-swatch-label {
  font-size: var(--robby-font-size-xs);
  margin-top: var(--robby-space-2);
  text-align: center;
}

/* ========== Images-Seite (/images.php) ========== */
.robby .robby-img-section {
  margin-bottom: var(--robby-space-12);
}

.robby .robby-img-section h2 {
  margin-bottom: var(--robby-space-4);
}

.robby .robby-img-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: var(--robby-space-4);
}

/* Icons: fest 4 Spalten horizontal */
.robby .robby-img-grid--4col {
  grid-template-columns: repeat(2, 1fr);
}

@media (min-width: 576px) {
  .robby .robby-img-grid--4col {
    grid-template-columns: repeat(4, 1fr);
  }
}

.robby .robby-img-item {
  margin: 0;
  padding: var(--robby-space-3);
  background: var(--robby-bg);
  border: var(--robby-border);
  border-radius: var(--robby-radius);
  box-shadow: var(--robby-shadow);
}

.robby .robby-img-item__thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 80px;
  margin-bottom: var(--robby-space-2);
}

.robby .robby-img-item__thumb img {
  max-width: 100%;
  max-height: 80px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.robby .robby-img-item__caption {
  font-size: var(--robby-font-size-xs);
  color: var(--robby-text-muted);
  word-break: break-all;
  line-height: var(--robby-line-height-base);
}

@media (min-width: 576px) {
  .robby .robby-img-grid:not(.robby-img-grid--4col) {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  }
  .robby .robby-img-grid--4col {
    grid-template-columns: repeat(4, 1fr);
  }
  .robby .robby-img-item__thumb {
    min-height: 100px;
  }
  .robby .robby-img-item__thumb img {
    max-height: 100px;
  }
}

/* ========== Robby-App (index.php) ========== */
.robby-app {
  min-height: 100vh;
  max-width: 100vw;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  padding-top: var(--robby-app-header-height);
  padding-bottom: var(--robby-app-bottom-height);
  box-sizing: border-box;
}

.robby-app-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  flex-shrink: 0;
  padding: var(--robby-app-header-pad) 0;
  background: var(--robby-bg);
  border-bottom: var(--robby-border);
}

/* Header: Abstände nur aus Einstellung (--robby-icon-gap), keine rem-Abstände */
.robby-app-header__inner {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--robby-icon-gap, 6px);
  max-width: 100%;
  margin-left: var(--robby-icon-gap, 6px);
  margin-right: var(--robby-icon-gap, 6px);
  justify-content: flex-start;
}

.robby-app-header__left {
  display: flex;
  align-items: center;
  gap: var(--robby-icon-gap, 6px);
  min-width: 0;
  flex: 1 1 auto;
  justify-content: flex-start;
}

.robby-app-header-datetime {
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  color: var(--robby-text-muted, #666);
  white-space: nowrap;
}

/* Padding unten = unsichtbare Hover-Brücke, damit Maus vertikal zum Dropdown kann */
.robby-app-lang-wrap {
  position: relative;
  min-width: 0;
  padding-bottom: 4px;
}

.robby-app-lang-trigger {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--robby-touch-min);
  min-width: var(--robby-touch-min);
  height: var(--robby-touch-min);
  padding: 0;
  background: transparent;
  border: var(--robby-border);
  border-radius: var(--robby-radius-sm);
  cursor: pointer;
  transition: box-shadow var(--robby-transition), background-color var(--robby-transition);
}

.robby-app-lang-trigger:hover {
  background: var(--robby-gray);
}

.robby-app-lang-trigger:focus {
  outline: 2px solid var(--robby-primary);
  outline-offset: 2px;
}

.robby-app-lang-trigger img {
  display: block;
  width: 24px;
  height: 18px;
  object-fit: cover;
}

.robby-app-lang-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 0;
  min-width: 140px;
  background: var(--robby-bg);
  border: var(--robby-border);
  border-radius: var(--robby-radius);
  box-shadow: var(--robby-shadow-lg);
  z-index: 100;
  padding: var(--robby-space-2);
  display: none;
  flex-direction: column;
  gap: var(--robby-space-1);
}

.robby-app-lang-wrap:hover .robby-app-lang-dropdown {
  display: flex;
}

.robby-app-lang-flag {
  display: flex;
  align-items: center;
  gap: var(--robby-space-3);
  min-height: var(--robby-touch-min);
  padding: var(--robby-space-2) var(--robby-space-3);
  border-radius: var(--robby-radius-sm);
  text-decoration: none;
  font-family: var(--robby-font-family);
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text);
  transition: background-color var(--robby-transition), color var(--robby-transition);
}

.robby-app-lang-flag:hover {
  background: var(--robby-gray);
  color: var(--robby-primary);
}

.robby-app-lang-flag--active {
  box-shadow: 0 0 0 2px var(--robby-primary);
  font-weight: 600;
}

.robby-app-lang-flag img {
  display: block;
  width: 24px;
  height: 18px;
  object-fit: cover;
  flex-shrink: 0;
}

.robby-app-header__logo {
  flex-shrink: 0;
}

.robby-app-logo-link {
  display: block;
}

.robby-app-logo {
  display: block;
  height: var(--robby-header-icon-height);
  width: auto;
  max-width: 120px;
  object-fit: contain;
}

/* Padding unten = Hover-Brücke zum Menü (vertikal runterfahren); rechtsbündig */
.robby-app-header__nav-wrap {
  position: relative;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: var(--robby-icon-gap);
  padding-bottom: 4px;
  margin-left: auto;
  flex-shrink: 0;
}

.robby-app-user-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: var(--robby-touch-min);
  min-height: var(--robby-touch-min);
  flex-shrink: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 0;
}

button.robby-app-user-icon:hover {
  opacity: 0.85;
}

.robby-app-user-icon img {
  display: block;
  width: var(--robby-header-icon-height);
  height: var(--robby-header-icon-height);
  object-fit: contain;
}

.robby-app-user-icon--avatar img,
.robby-app-user-icon--avatar .robby-app-user-icon__img {
  border-radius: 50%;
  object-fit: cover;
}

.robby-app-user-icon--login:hover {
  opacity: 0.85;
}

.robby-app-login-btn {
  flex-shrink: 0;
  padding: var(--robby-space-1) var(--robby-space-2);
  font-size: 0.9375rem;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
}
.robby-app-login-btn:hover {
  color: var(--robby-text-inverse);
}

.robby-app-burger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: var(--robby-touch-min);
  min-width: var(--robby-touch-min);
  height: var(--robby-touch-min);
  padding: 0;
  background: transparent;
  border: var(--robby-border);
  border-radius: var(--robby-radius-sm);
  cursor: pointer;
  color: var(--robby-text);
}

.robby-app-burger:hover {
  background: var(--robby-gray);
}

.robby-app-burger span {
  display: block;
  width: 22px;
  height: 3px;
  background: currentColor;
  border-radius: 2px;
}

.robby-app-nav {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 0;
  max-width: min(400px, 90vw);
  background: var(--robby-bg);
  border: var(--robby-border);
  border-radius: var(--robby-radius);
  box-shadow: var(--robby-shadow-lg);
  z-index: 100;
  display: none;
  padding: var(--robby-space-2);
}

.robby-app-header__nav-wrap:hover .robby-app-nav {
  display: block;
}

.robby-app-nav__scroll {
  overflow-x: hidden;
  min-width: 0;
}

/* Menü oben rechts: immer vertikal (Spalte), nie horizontal */
.robby-app-header__nav-wrap .robby-app-nav__list,
.robby-app-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column !important;
  flex-wrap: nowrap;
  gap: 0;
}

.robby-app-nav__list > li {
  flex-shrink: 0;
  display: block;
  width: 100%;
}

.robby-app-nav__sep {
  display: block;
  padding: 0;
  pointer-events: none;
}

.robby-app-nav__hr {
  border: 0;
  margin: var(--robby-space-2) 0;
  height: 1px;
  width: 100%;
  background: var(--robby-gray);
}

.robby-app-nav__link {
  display: flex;
  align-items: center;
  gap: var(--robby-space-3);
  min-height: var(--robby-touch-min);
  padding: var(--robby-space-2) var(--robby-space-3);
  font-family: var(--robby-font-family);
  font-size: var(--robby-font-size-sm);
  font-weight: 500;
  color: var(--robby-text);
  text-decoration: none;
  border-radius: var(--robby-radius-sm);
  transition: background-color var(--robby-transition), color var(--robby-transition);
}

.robby-app-nav__link:hover {
  background: var(--robby-gray);
  color: var(--robby-primary);
}

.robby-app-nav__icon {
  display: block;
  width: var(--robby-icon-size);
  height: var(--robby-icon-size);
  flex-shrink: 0;
  object-fit: contain;
}

.robby-app-content {
  flex: 1 1 auto;
  min-height: 0;
  max-width: 100vw;
  max-height: calc(100vh - var(--robby-app-header-height) - var(--robby-app-bottom-height));
  padding: var(--robby-space-4) 5px var(--robby-space-12);
  overflow-y: auto;
  overflow-x: hidden;
  box-sizing: border-box;
}

.robby-app-content .robby-container,
.robby-app-content .robby-app-content-inner {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  display: block;
}

/* Max. 5px Abstand vom rechten/linken Rand (Content-Bereich) – einheitlich für alle Channels inkl. Soccer/Teams.
   !important überschreibt .robby-container (--robby-container-gutter: 20px), das sonst 30–40px Abstand ergibt. */
.robby-app-content .robby-container,
.robby-app-content .robby-app-content-inner {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: 100%;
}

/* Channel-Überschrift als Card (hell-orange) in allen Views */
.robby-cards--channel-headline {
  gap: var(--robby-space-2);
  margin-top: var(--robby-space-2);
  margin-bottom: 10px;
  min-height: 0;
}
.robby-card--channel-headline {
  background: var(--robby-bg-orange-light);
  color: var(--robby-primary-dark, #e65100);
  border: 1px solid rgba(255, 140, 0, 0.25);
  box-shadow: var(--robby-shadow);
  margin: 0;
  border-radius: var(--robby-radius);
  box-sizing: border-box;
  width: 100%;
}
.robby-card--channel-headline .robby-card__line {
  font-size: var(--robby-font-size-lg);
  font-weight: 600;
  padding: var(--robby-space-2) var(--robby-space-3);
  color: inherit;
}
.robby-card--channel-headline .robby-channel-headline__title {
  flex: 0 0 auto;
}
.robby-profile-session-id {
  font-size: 0.85em;
  margin-left: 0.35em;
}
.robby-user__admin-link-btn {
  font-size: 0.9em;
  padding: 0.35em 0.6em;
  cursor: pointer;
  background: transparent;
  border: 1px solid var(--robby-border-primary, #444);
  border-radius: 4px;
  color: var(--robby-text-primary, #e6edf3);
}
.robby-user__admin-link-btn:hover {
  background: rgba(255, 255, 255, 0.06);
}
.robby-user__admin-link-btn--inline {
  font-size: 0.8em;
  padding: 0.2em 0.45em;
  margin-left: 0.35em;
  vertical-align: middle;
}
.robby-card--channel-headline.robby-channel-headline--with-toggle .robby-card__line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--robby-space-1) var(--robby-icon-gap);
  min-width: 0;
  overflow-x: visible;
}
.robby-channel-headline__teamfilter {
  margin-left: auto;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  cursor: pointer;
  font-weight: 500;
  font-size: var(--robby-font-size-base, 1rem);
}
.robby-card--channel-headline .robby-channel-headline__teamfilter {
  color: var(--robby-text, #505050);
}
.robby-channel-headline__teamfilter .robby-teams-filter-checkbox {
  width: 1.1em;
  height: 1.1em;
  margin: 0;
  vertical-align: middle;
}
.robby-calendar-channels {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--robby-space-1) var(--robby-icon-gap);
  flex-shrink: 1;
  min-width: 0;
}
.robby-soccer-filters {
  /* Stile via .robby-el-inline-filter */
}
.robby-calendar-channel-cb-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  cursor: pointer;
  font-weight: 500;
  font-size: var(--robby-font-size-sm, 0.875rem);
}
.robby-card--channel-headline .robby-calendar-channel-cb-wrap {
  color: #404040;
}
.robby-calendar-channel-cb-wrap .robby-calendar-channel-cb {
  width: 1.1em;
  height: 1.1em;
  margin: 0;
  flex-shrink: 0;
}
.robby-calendar-leagues-teams-wrap {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--robby-space-1) var(--robby-icon-gap);
}
.robby-calendar-leagues-teams-label {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  font-size: var(--robby-font-size-sm, 0.875rem);
  font-weight: 500;
}
.robby-calendar-leagues-teams-lbl {
  color: var(--robby-text-muted, #666);
  white-space: nowrap;
}
.robby-calendar-leagues-input,
.robby-calendar-teams-input {
  width: 6em;
  min-width: 4em;
  max-width: 12em;
  padding: 0.2em 0.4em;
  font-size: inherit;
}
.robby-channel-subscribe-form {
  flex: 0 0 auto;
  margin: 0;
}
.robby-card--channel-headline .robby-channel-subscribe-label {
  color: var(--robby-text, #505050);
}
.robby-channel-subscribe-label {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  cursor: pointer;
  font-weight: 500;
  font-size: var(--robby-font-size-base, 1rem);
}
.robby-channel-subscribe-checkbox {
  width: 1.1em;
  height: 1.1em;
  margin: 0;
  vertical-align: middle;
}

/* Todo 048: Business-View – D3-Visualisierung nutzt den kompletten verfügbaren Platz */
.robby-app-content:has(.robby-business-iframe-wrap) {
  display: flex;
  flex-direction: column;
  padding-top: 0;
  padding-bottom: 48px; /* Platz für Footer (Use-Cases, orte.de) – sonst wird er abgeschnitten */
  overflow: hidden;
}
.robby-app-content:has(.robby-business-iframe-wrap) .robby-card--channel-headline {
  margin-top: 0;
  margin-bottom: 0;
}
.robby-app-content:has(.robby-business-iframe-wrap) .robby-container,
.robby-app-content:has(.robby-business-iframe-wrap) .robby-app-content-inner {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
/* Iframe-Höhe so, dass Footer (48px) im sichtbaren Bereich liegt */
.robby-business-iframe-wrap {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  margin: 0 -5px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.robby-business-iframe {
  flex: 1;
  width: 100%;
  min-height: 0;
  border: 0;
  box-sizing: border-box;
  display: block;
}

.robby-app-entry {
  display: block;
  margin-bottom: var(--robby-space-8);
}

.robby-app-entry__headline {
  font-size: var(--robby-font-size-lg);
  font-weight: 700;
  margin: 0 0 var(--robby-space-2);
  color: var(--robby-primary-dark);
}

.robby-app-entry__meta {
  display: block;
  font-size: var(--robby-font-size-sm);
  font-weight: 500;
  color: var(--robby-text-muted);
  margin-bottom: var(--robby-space-1);
}

.robby-app-entry__media {
  margin-bottom: var(--robby-space-3);
  border-radius: var(--robby-radius);
  overflow: hidden;
  background: var(--robby-bg-alt);
}

.robby-app-entry__media img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 280px;
  object-fit: cover;
}

.robby-app-entry__text {
  margin: 0;
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text);
  line-height: var(--robby-line-height-base);
}

/* Events-Tabelle (Todo 008). Scroll-Liste wie Native App: Content-Bereich nutzt max-height, Scroll mit Mausrad. */
.robby-events-wrap {
  width: 100%;
  max-width: calc(100vw - 10px);
  min-width: 0;
  overflow-x: auto;
  box-sizing: border-box;
}

.robby-events-count {
  margin: var(--robby-space-2) 0 0;
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text-muted, #666);
}

/* ========== Cards (view=event_location, 1-Spalten-Grid, kompakt) ========== */
.robby-cards-wrap {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.robby-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--robby-space-2);
  list-style: none;
  margin: 0;
  padding: 0;
}
.robby-cards--event-location,
.robby-cards--teams,
.robby-cards--formel1,
.robby-cards--soccer,
.robby-cards--presentation,
.robby-cards--channel,
.robby-cards--calendar,
.robby-cards--subscriptions {
  gap: var(--robby-space-1);
}
.robby-card--teams .robby-card__line-right--teams {
  display: inline-flex;
  align-items: center;
  gap: var(--robby-space-1) 12px;
  margin-left: auto;
  flex-shrink: 0;
  min-width: 0;
}
.robby-card--teams .robby-card__value--location {
  text-align: right;
  min-width: 0;
  flex: 1 1 auto;
  max-width: 14em;
}
.robby-card--teams .robby-card__line-right--teams .robby-card__line-subscription {
  margin-left: 0;
  flex-shrink: 0;
}
.robby-card--teams .robby-card__line-subscription {
  flex-shrink: 0;
}
/* Soccer: kompakte Zeile analog calendar */
.robby-card__line--soccer-match {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--robby-space-1) var(--robby-space-2);
}
.robby-card__line--soccer-match .robby-soccer-match-meta {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: var(--robby-space-1) var(--robby-space-2);
  flex-shrink: 1;
  min-width: 0;
}
.robby-card__line--soccer-match .robby-soccer-match-home {
  display: inline-flex;
  align-items: center;
  gap: var(--robby-space-1);
  min-width: 0;
  flex-shrink: 1;
  overflow-wrap: anywhere;
}
.robby-card__line--soccer-match .robby-soccer-match-sep {
  color: var(--robby-gray);
  font-weight: 300;
  flex-shrink: 0;
}
.robby-card__line--soccer-match .robby-soccer-match-away {
  display: inline-flex;
  align-items: center;
  gap: var(--robby-space-1);
  min-width: 0;
  flex-shrink: 1;
  text-align: left;
  overflow-wrap: anywhere;
}
.robby-card--subscriptions .robby-card__line-right {
  margin-left: auto;
  flex-shrink: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--robby-space-1) var(--robby-space-2);
}
.robby-card--subscriptions .robby-card__line-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--robby-space-1);
}
/* Subscriptions: min-width pro Spalte (32px, 15em, 15em, 10em, 15em, 32px, 15em, 6em) */
.robby-card--subscriptions .robby-card__icon-wrap {
  min-width: 24px;
  max-width: 24px;
}
.robby-card--subscriptions .robby-sub-col-name {
  min-width: 8em;
  flex: 0 0 8em;
  max-width: 8em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.robby-card--subscriptions .robby-sub-col-category {
  min-width: 6em;
  flex: 0 0 6em;
  max-width: 6em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.robby-card--subscriptions .robby-sub-col-filter {
  min-width: 6em;
}
.robby-card--subscriptions .robby-sub-col-reminder {
  min-width: 15em;
}
.robby-card--subscriptions .robby-subscriptions-push-toggle {
  min-width: 32px;
}
.robby-card--subscriptions .robby-sub-col-alarmtime {
  min-width: 10em;
  flex: 0 0 10em;   /* Breite auch bei leerem Inhalt "–" halten */
  flex-shrink: 0;
  font-weight: 600;
}
/* Alarmzeit-Farben analog ?view=soccer: heute rot, nächste 7 Tage orange, sonst grün */
.robby-card--subscriptions .robby-sub-col-alarmtime.robby-event-date--red {
  color: #c62828;
}
.robby-card--subscriptions .robby-sub-col-alarmtime.robby-event-date--orange {
  color: #e65100;
}
.robby-card--subscriptions .robby-sub-col-alarmtime.robby-event-date--green {
  color: #2e7d32;
}
.robby-card--subscriptions .robby-sub-col-alarmtime.robby-subscriptions-alarmzeit--sent {
  color: var(--robby-success-text, #0a5f0a);
}
.robby-card--subscriptions .robby-card__line-actions {
  min-width: 4em;
}
/* Downline-Cards: Checkbox rechtsbündig */
.robby-card--downline .robby-downline-checkbox-wrap {
  margin-left: auto;
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
/* Push-Form: Textarea vergrößert */
.robby-push-form .robby-push-form__input {
  width: 100%;
  box-sizing: border-box;
  min-height: 120px;
  margin-bottom: var(--robby-space-2, 0.5rem);
}
/* Push-Form: sichtbare Erfolgs-/Fehlermeldung */
.robby-push-form__message {
  padding: 0.75rem 1rem;
  margin-top: var(--robby-space-2, 0.5rem);
  border-radius: var(--robby-radius, 6px);
  display: block;
}
.robby-push-form__message[hidden] {
  display: none;
}
.robby-push-form__message.robby-form-message--success {
  background: var(--robby-success-bg, #d4edda);
  color: var(--robby-success-text, #155724);
  border: 1px solid var(--robby-success-border, #c3e6cb);
}
.robby-push-form__message.robby-form-message--error {
  background: var(--robby-error-bg, #f8d7da);
  color: var(--robby-error-text, #721c24);
  border: 1px solid var(--robby-error-border, #f5c6cb);
}
/* Teams-Cards: Checkbox ganz rechts, klein, orange wenn gecheckt */
.robby-card--teams .robby-teams-checkbox-checked-wrap .robby-teams-subscription-checkbox--checked {
  width: 14px;
  height: 14px;
  min-width: 14px;
  min-height: 14px;
  accent-color: var(--robby-primary, #f80);
}
.robby-card--teams .robby-teams-checkbox-empty,
.robby-card--teams .robby-teams-subscription-checkbox--link .robby-teams-checkbox-empty {
  width: 14px;
  height: 14px;
  min-width: 14px;
  min-height: 14px;
}
.robby-card--formel1 .robby-card__line-provider,
.robby-card--presentation .robby-card__line-provider,
.robby-card--channel .robby-card__line-provider {
  margin-left: auto;
  flex-shrink: 0;
}
.robby-card--formel1 .robby-card__line .robby-card__flag,
.robby-card--presentation .robby-card__line .robby-card__flag,
.robby-card--channel .robby-card__line .robby-card__flag {
  vertical-align: middle;
  width: 24px;
  height: 16px;
  margin-right: 2px;
}
.robby-card {
  background: var(--robby-bg);
  border: var(--robby-border);
  border-radius: var(--robby-radius);
  box-shadow: var(--robby-shadow);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.robby-card--compact {
  border-radius: var(--robby-radius-sm);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.robby-card--info {
  background: #e3f2fd;
  border-left: 4px solid var(--robby-primary);
  color: var(--robby-primary-dark);
}
.robby-card--info .robby-card__text {
  margin: 0;
  flex: 1 1 auto;
}
.robby-card--info .robby-card__action {
  flex-shrink: 0;
}
.robby .robby-msg--empty-search .robby-btn {
  margin-top: var(--robby-space-2);
}
.robby-card__line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--robby-space-1) var(--robby-space-2);
  padding: var(--robby-space-2) var(--robby-space-3);
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text);
  line-height: 1.4;
}
.robby-card__line .robby-card__icon-link,
.robby-card__line .robby-card__icon-wrap {
  flex-shrink: 0;
}
.robby-card__line .robby-card__icon {
  display: block;
  width: 20px;
  height: 20px;
  vertical-align: middle;
}
.robby-card__title-group {
  display: inline-flex;
  align-items: baseline;
  gap: 1em;
  flex-wrap: nowrap;
  margin-right: 1em;
  min-width: 0;
}
.robby-card__title-group .robby-card__name {
  min-width: 0;
}
.robby-cards--presentation .robby-card__title-group .robby-card__name {
  min-width: 12em;
}
.robby-cards--calendar .robby-card__title-group {
  flex-wrap: wrap;
  min-width: 0;
}
.robby-cards--calendar .robby-card__title-group .robby-card__name {
  min-width: 0;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.robby-card__name {
  font-weight: 600;
  color: var(--robby-text);
}
.robby-card__categories {
  color: var(--robby-primary);
  font-size: inherit;
  min-width: 0;
}
.robby-card__cat {
  color: var(--robby-text-muted);
  font-size: var(--robby-font-size-xs);
}
.robby-card__sep {
  color: var(--robby-gray);
  font-weight: 300;
  user-select: none;
}
.robby-card__line .robby-card__value {
  min-width: 0;
  overflow-wrap: anywhere;
}
.robby-card__line .robby-card__link {
  color: var(--robby-link-color, #06c);
  text-decoration: underline;
}
.robby-card__line .robby-card__flag {
  vertical-align: middle;
  width: 24px;
  height: 16px;
}
.robby-cards-empty {
  margin: var(--robby-space-4) 0;
  color: var(--robby-text-muted);
  font-size: var(--robby-font-size-sm);
}
.robby-cards-empty__searchkeys {
  color: var(--robby-primary, #ff8c00);
  font-weight: 500;
}
.robby-cards-wrap .robby-events-count {
  margin-top: var(--robby-space-4);
}

.robby-events-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--robby-font-size-sm);
}

.robby-events-th,
.robby-events-td {
  padding: var(--robby-space-2) 3px;
  text-align: left;
  vertical-align: top;
  border-bottom: var(--robby-border);
}

.robby-events-th {
  font-weight: 600;
  color: var(--robby-secondary, #666);
  background: rgba(255, 152, 0, 0.06);
}

.robby-events-tr:nth-child(even) .robby-events-td {
  background: rgba(255, 152, 0, 0.06);
}

.robby-events-th--icon,
.robby-events-td--icon {
  width: var(--robby-icon-size);
  min-width: var(--robby-icon-size);
  text-align: center;
}

.robby-events-th--icon .robby-events-analog-clock,
.robby-events-td--icon .robby-events-category-icon,
.robby-events-td--icon .robby-events-analog-clock {
  max-height: var(--robby-icon-size);
  height: var(--robby-icon-size);
  width: auto;
  display: block;
  margin: 0 auto;
}

.robby-events-th--icon .robby-events-analog-clock .robby-analog-clock-svg,
.robby-events-td--icon .robby-events-analog-clock .robby-analog-clock-svg {
  width: var(--robby-icon-size);
  height: var(--robby-icon-size);
}

.robby-soccer-title {
  margin: 0 0 var(--robby-space-4);
  font-size: var(--robby-font-size-xl);
  font-weight: 600;
}

.robby-soccer-wer-was-wo {
  display: inline-block;
}

.robby-soccer-wer-was-wo__league {
  font-weight: 600;
}

.robby-soccer-wer-was-wo__sep {
  margin: 0 var(--robby-space-1);
  color: var(--robby-gray, #666);
}

.robby-soccer-wer-was-wo__match {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--robby-space-1);
}

.robby-soccer-wer-was-wo__home {
  display: inline-flex;
  align-items: center;
  gap: var(--robby-space-1);
  min-width: 10em;
  flex-shrink: 0;
}

.robby-soccer-wer-was-wo__away {
  display: inline-flex;
  align-items: center;
  gap: var(--robby-space-1);
  min-width: 0;
}

.robby-soccer-wer-was-wo__icon {
  vertical-align: middle;
  flex-shrink: 0;
}

.robby-soccer-wer-was-wo__vs {
  margin: 0 var(--robby-space-1);
  color: var(--robby-gray, #666);
}

/* Hervorhebung von Suchbegriffen (verschiedene helle Hintergründe) */
.robby-highlight {
  padding: 0 2px;
  border-radius: 2px;
}
.robby-highlight--1 { background-color: #fff3cd; }
.robby-highlight--2 { background-color: #cce5ff; }
.robby-highlight--3 { background-color: #d4edda; }
.robby-highlight--4 { background-color: #f8d7da; }
.robby-highlight--5 { background-color: #e2d5f1; }
.robby-highlight--6 { background-color: #fff8e1; }

/* Todo 017: Teams-Subscription-Spalte (Alarm/Checkbox) */
.robby-teams-subscription-checkbox {
  display: inline-block;
  vertical-align: middle;
}
.robby-teams-subscription-checkbox--checked {
  accent-color: #080;
  cursor: default;
}

/* ?view=teams: angeklickte (abonnierte) Checkbox größer und orange */
.robby-teams-checkbox-checked-wrap {
  display: inline-block;
  vertical-align: middle;
}
.robby-teams-checkbox-checked-wrap .robby-teams-subscription-checkbox--checked {
  width: var(--robby-icon-size);
  height: var(--robby-icon-size);
  min-width: var(--robby-icon-size);
  min-height: var(--robby-icon-size);
  accent-color: var(--robby-primary, #f80);
  cursor: default;
}

/* Subscriptions: aktivierte Checkbox gleiche Größe wie Delete-Icon (24px), magenta */
.robby-subscriptions-push-toggle .robby-teams-subscription-checkbox--checked {
  display: inline-block;
  width: 24px;
  height: 24px;
  box-sizing: border-box;
  border: 2px solid magenta;
  background: rgba(255, 0, 255, 0.15);
  border-radius: 2px;
  color: magenta;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  pointer-events: none;
}
.robby-subscriptions-push-toggle .robby-teams-subscription-checkbox--checked::after {
  content: "✓";
}
.robby-teams-subscription-checkbox--link {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.robby-teams-checkbox-empty {
  display: inline-block;
  width: 24px;
  height: 24px;
  border: 2px solid #666;
  border-radius: 2px;
  background: #fff;
  box-sizing: border-box;
}
.robby-teams-checkbox-empty--disabled {
  border-color: #ccc;
  background: var(--robby-bg, #f5f5f5);
  cursor: default;
}

.robby-subscriptions-push-toggle {
  display: inline-block;
  min-width: 24px;
  min-height: 24px;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.robby-subscriptions-push-toggle:hover {
  opacity: 0.85;
}
.robby-subscriptions-push-toggle .robby-teams-checkbox-empty.robby-subscriptions-push-toggle--off {
  cursor: pointer;
  border-color: #666;
  pointer-events: none;
}

/* Subscriptions: Edit/Delete ohne Rand und grauen Hintergrund */
.robby-subscriptions-td--actions .robby-subscriptions-action {
  border: none;
  background: transparent;
  padding: 0;
  cursor: pointer;
}
.robby-subscriptions-td--actions .robby-subscriptions-action:hover {
  background: transparent;
  opacity: 0.85;
}

.robby-subscriptions-ck-teams {
  font-size: 0.9rem;
  color: var(--robby-text-muted, #666);
  margin-top: 0.25rem;
  margin-bottom: var(--robby-space-2);
}
.robby-subscriptions-ck-teams code {
  font-size: 0.85em;
  background: var(--robby-gray);
  padding: 0.15em 0.4em;
  border-radius: 3px;
}

.robby-subscriptions-alarmzeit--sent {
  color: var(--robby-success-text, #0a5f0a);
  font-weight: 500;
}

.robby-soccer-th-vs,
.robby-soccer-td-vs {
  width: 1%;
  white-space: nowrap;
  text-align: center;
}

.robby-events-td--place {
  display: block;
}

.robby-events-td--place .robby-events-flag {
  display: inline-block;
  vertical-align: middle;
  margin-right: var(--robby-space-1);
}

.robby-events-th--km,
.robby-events-td--km {
  text-align: right;
  font-size: calc(1em - 1pt);
}

.robby-events-td--km-magenta { color: magenta; }
.robby-events-td--km-red { color: #c00; }
.robby-events-td--km-orange { color: var(--robby-primary, #f80); }
.robby-events-td--km-green { color: #080; }

.robby-events-td--place > span {
  display: inline;
}

.robby-events-place-content {
  flex: 1;
  min-width: 0;
}

.robby-events-place-map {
  flex-shrink: 0;
  display: inline-flex;
  line-height: 0;
}

.robby-events-analog-clock {
  display: inline-block;
  max-width: 24px;
  max-height: 24px;
  color: magenta;
}

.robby-analog-clock-svg {
  display: block;
}

.robby-events-analog-clock .robby-analog-clock-svg circle,
.robby-events-analog-clock .robby-analog-clock-svg line {
  stroke: magenta;
  stroke-width: 2.5px;
}

.robby-events-analog-clock .robby-analog-clock-svg line[id="robby-clock-sec"] {
  stroke-width: 1.5px;
}

.robby-events-category-icon,
.robby-events-flag {
  display: inline-block;
  vertical-align: middle;
}

.robby-events-flag {
  margin-right: var(--robby-space-1);
}

.robby-events-td--beginn {
  min-width: 11rem;
}

.robby-events-beginn-line {
  display: inline-block;
  white-space: nowrap;
}

.robby-events-beginn-line .robby-event-date {
  display: inline;
  margin-right: var(--robby-space-1);
}

.robby-events-beginn-line .robby-event-time {
  margin-right: var(--robby-space-1);
}

.robby-events-beginn-map {
  display: inline-flex;
  vertical-align: middle;
}

/* Vertikales Mobil-Layout: Content-Tabelle und Abstände (max. 5px Rand) */
@media (max-width: 767px) {
  .robby.robby-app .robby-app-content .robby-container {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .robby.robby-app .robby-events-table .robby-events-th,
  .robby.robby-app .robby-events-table .robby-events-td {
    padding-left: 3px !important;
    padding-right: 3px !important;
  }
  .robby.robby-app .robby-events-table th:first-child,
  .robby.robby-app .robby-events-table td.robby-events-td--icon {
    width: var(--robby-icon-size) !important;
    min-width: var(--robby-icon-size) !important;
    max-width: var(--robby-icon-size) !important;
  }
  .robby.robby-app .robby-events-table th:nth-child(2),
  .robby.robby-app .robby-events-table td.robby-events-td--beginn {
    width: 90px !important;
    max-width: 90px !important;
    min-width: 90px !important;
    overflow-wrap: break-word;
    word-break: break-word;
  }
}

.robby-event-date {
  font-weight: 600;
}

.robby-event-date--red {
  color: #c62828;
}

.robby-event-date--orange {
  color: #e65100;
}

.robby-event-date--green {
  color: #2e7d32;
}

.robby-card__cfp-deadline {
  font-weight: 600;
}
.robby-cfp--past {
  color: #c62828;
}
.robby-cfp--soon {
  color: #e65100;
}
.robby-cfp--future {
  color: #2e7d32;
}

.robby-event-time {
  font-size: 0.875em;
  color: var(--robby-text-muted, #666);
}

.robby-events-td--title {
  font-weight: 500;
}

.robby-events-map-link {
  display: inline-flex;
}

.robby-events-map-link img {
  display: block;
}

.robby-events-map-empty {
  color: var(--robby-text-muted, #999);
}

.robby-events-provider-link {
  color: var(--robby-primary);
  text-decoration: none;
}

.robby-events-provider-link:hover {
  text-decoration: underline;
}

.robby-events-td--empty {
  text-align: center;
  color: var(--robby-text-muted, #999);
  font-style: italic;
}

.robby-events-pagination {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: var(--robby-space-4);
  margin-top: var(--robby-space-6);
  padding: var(--robby-space-4) 0;
}

.robby-events-pagination__info {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: var(--robby-space-2) var(--robby-space-4);
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text-muted, #666);
}

.robby-events-pagination__count {
  font-weight: 600;
  color: var(--robby-text);
}

.robby-events-pagination__range {
  color: var(--robby-text-muted, #666);
}

.robby-events-pagination__nav {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: var(--robby-space-2) var(--robby-space-4);
}

.robby-events-pagination__link {
  display: inline-flex;
}

.robby-events-pagination__link:hover {
  opacity: 0.85;
}

.robby-events-pagination__placeholder {
  display: inline-block;
  width: var(--robby-icon-size);
  height: var(--robby-icon-size);
}

.robby-events-pagination__numbers {
  display: inline-flex;
  align-items: center;
  gap: var(--robby-space-1);
}

.robby-events-pagination__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--robby-icon-size);
  width: var(--robby-icon-size);
  height: var(--robby-icon-size);
  box-sizing: border-box;
  padding: 0;
  font-size: var(--robby-font-size-sm);
  font-weight: 600;
  color: var(--robby-primary);
  text-decoration: none;
  border: var(--robby-border);
  border-radius: var(--robby-radius-sm);
  background: var(--robby-bg);
  transition: background-color var(--robby-transition), color var(--robby-transition), border-color var(--robby-transition);
}

.robby-events-pagination__num:hover {
  background: var(--robby-gray);
  color: var(--robby-primary);
}

.robby-events-pagination__num--current {
  color: var(--robby-bg);
  background: var(--robby-primary);
  border-color: var(--robby-primary);
  cursor: default;
}

/* Filter-Zeile (Liga:, Buttons) als einzeilige Card */
.robby-cards--filter {
  gap: var(--robby-space-2);
  margin-bottom: var(--robby-space-2);
}
.robby-card__line--filter {
  padding: var(--robby-space-2) var(--robby-space-3);
  display: block;
}
.robby-teams-filter--in-card {
  margin: 0;
  width: 100%;
  flex-wrap: wrap;
}
.robby-card__filter-hint {
  margin: 0;
  padding: var(--robby-space-2) var(--robby-space-3) var(--robby-space-3);
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text-muted, #666);
  line-height: 1.4;
  border-top: 1px solid var(--robby-gray, #eee);
}
.robby-card__filter-hint .robby-card__link {
  color: var(--robby-primary);
  text-decoration: underline;
}

.robby-teams-filter {
  margin-bottom: var(--robby-space-2);
  gap: var(--robby-space-2);
}

.robby-event-location-filter {
  margin-top: 5px;
  margin-bottom: 5px;
}
.robby-card__line.robby-el-headline-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--robby-space-1) var(--robby-space-2);
  font-size: var(--robby-font-size-base);
  font-weight: normal;
}
.robby-card__line.robby-el-headline-line .robby-channel-headline__title {
  font-size: var(--robby-font-size-lg);
  font-weight: 600;
}
.robby-card__line.robby-el-headline-line .robby-channel-headline__title {
  flex-shrink: 0;
  white-space: nowrap;
}
.robby-el-inline-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--robby-space-1) var(--robby-space-2);
  justify-content: flex-start;
  flex: 1 1 auto;
  min-width: 0;
}
.robby-teams-filter__link--active-el {
  background: var(--robby-primary) !important;
  color: var(--robby-bg) !important;
  font-weight: 700;
}
.robby-el-inline-filter .robby-teams-filter__link {
  padding-top: 2px;
  padding-bottom: 2px;
  font-size: 0.8em;
}
.robby-teams-filter__label {
  font-weight: 600;
  color: var(--robby-text-muted, #666);
  margin-right: var(--robby-space-1);
}
/* Spezifisch: Liga-Filter-Buttons (Magenta) – überschreibt .robby a */
nav.robby-teams-filter .robby-teams-filter__link,
.robby-teams-filter .robby-teams-filter__link {
  display: inline-block;
  padding: var(--robby-space-1) var(--robby-space-2);
  border-radius: var(--robby-radius-sm);
  background: var(--robby-gray);
  color: var(--robby-text);
  font-weight: 600;
  text-decoration: none;
  transition: background-color var(--robby-transition), color var(--robby-transition);
}
.robby-teams-filter .robby-teams-filter__link:hover {
  background: var(--robby-primary);
  color: var(--robby-bg) !important;
}
.robby-teams-filter .robby-teams-filter__link--active,
.robby-teams-filter__link--active {
  background: var(--robby-primary) !important;
  color: var(--robby-bg) !important;
}

/* Todo 043: Toggle „Teams filtern“ rechtsbündig neben Liga-Filter */
.robby-teams-filter--row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--robby-space-2);
}
/* Abstand zwischen Liga-Buttons in ?view=teams und ?view=soccer: max 12px, nicht auseinanderziehen */
.robby-teams-filter--view-teams.robby-teams-filter--row {
  gap: 12px;
  justify-content: flex-start;
}
.robby-teams-filter__group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--robby-space-1);
}
.robby-teams-filter__group--other-leagues {
  flex-basis: 100%;
}
.robby-teams-filter__toggle,
.robby-teams-filter__toggle-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  padding: var(--robby-space-1) var(--robby-space-2);
  border-radius: var(--robby-radius-sm);
  background: var(--robby-gray);
  color: var(--robby-text);
  font-weight: 600;
  text-decoration: none;
  transition: background-color var(--robby-transition), color var(--robby-transition);
  cursor: pointer;
  border: none;
}
.robby-teams-filter__toggle-wrap input.robby-teams-filter-checkbox {
  width: 1.1em;
  height: 1.1em;
  margin: 0;
  flex-shrink: 0;
}
.robby-teams-filter__toggle:hover,
.robby-teams-filter__toggle-wrap:hover {
  background: var(--robby-primary);
  color: var(--robby-bg);
}
.robby-teams-filter__toggle--active,
.robby-teams-filter__toggle-wrap.robby-teams-filter__toggle--active {
  background: var(--robby-primary);
  color: var(--robby-bg);
}

.robby-teams-filter__right {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--robby-space-2);
}
.robby-teams-filter__input {
  min-width: 8em;
  max-width: 260px;
  width: auto;
  background: var(--robby-bg-alt);
  border: 1px solid var(--robby-border-color, var(--robby-gray));
  border-radius: var(--robby-radius-sm);
  padding: var(--robby-space-1) var(--robby-space-2);
  font-size: var(--robby-font-size-sm);
  font-family: var(--robby-font-family);
  color: var(--robby-text-muted);
  cursor: default;
  pointer-events: none;
  line-height: 1.4;
}

.robby-teams-filter__status {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}
.robby-teams-filter__status-icon {
  display: block;
}
.robby-teams-filter__status--on .robby-teams-filter__status-icon {
  color: #0a7c0a;
}
.robby-teams-filter__status--off .robby-teams-filter__status-icon {
  color: #c62828;
}

.robby-app-bottom {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 50;
  display: flex;
  flex-direction: column;
  background: var(--robby-bg);
  border-top: var(--robby-border);
}

.robby-app-channel-bar {
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: var(--robby-bar-gap);
  flex-wrap: nowrap;
  padding: var(--robby-bar-pad) 10px var(--robby-bar-pad) var(--robby-bar-pad);
  min-height: var(--robby-app-channel-bar-height);
  border-top: 1px solid var(--robby-gray, #eee);
  overflow: hidden;
}

.robby-app-channel-bar__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  padding: 2px var(--robby-bar-item-pad-x);
  font-size: var(--robby-bar-label-size);
  color: var(--robby-text);
  text-decoration: none;
  border-radius: var(--robby-radius-sm);
  transition: background-color var(--robby-transition), color var(--robby-transition);
  min-width: var(--robby-bar-item-min);
  flex: 1 1 0;
  max-width: 80px;
  overflow: hidden;
}

/* Block 3–6 (Formel 1, Fussball, Präsentation, Teams): Textbereich 40px breiter */
.robby-app-channel-bar__item:nth-child(2),
.robby-app-channel-bar__item:nth-child(3),
.robby-app-channel-bar__item:nth-child(4),
.robby-app-channel-bar__item:nth-child(5) {
  min-width: calc(var(--robby-bar-item-min) + 40px);
  max-width: 120px;
}

.robby-app-channel-bar__item:hover {
  background: var(--robby-gray);
  color: var(--robby-primary);
}

.robby-app-channel-bar__item--active {
  background: var(--robby-gray);
  color: var(--robby-primary);
  font-weight: 600;
}

.robby-app-channel-bar__item img {
  display: block;
  width: var(--robby-icon-size);
  height: var(--robby-icon-size);
}

.robby-app-search {
  padding: var(--robby-space-2) 10px var(--robby-space-2) var(--robby-space-2);
  flex-shrink: 0;
}

.robby-app-search__form {
  display: flex;
  align-items: center;
  gap: var(--robby-icon-gap);
  max-width: 100%;
}

/* Padding oben = Hover-Brücke zum Dropdown (vertikal rauffahren) */
.robby-app-search-channel {
  position: relative;
  flex-shrink: 0;
  padding-top: 4px;
}

.robby-app-search-channel__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--robby-touch-min);
  height: var(--robby-touch-min);
  border-radius: var(--robby-radius-sm);
  transition: background-color var(--robby-transition);
}

.robby-app-search-channel__icon:hover {
  background: var(--robby-gray);
}

.robby-app-search-channel__icon img {
  display: block;
  width: var(--robby-icon-size);
  height: var(--robby-icon-size);
}

.robby-app-search-channel__dropdown {
  position: absolute;
  bottom: 100%;
  left: 0;
  margin-bottom: 0;
  min-width: 140px;
  background: var(--robby-bg);
  border: var(--robby-border);
  border-radius: var(--robby-radius);
  box-shadow: var(--robby-shadow-lg);
  z-index: 60;
  padding: var(--robby-space-2);
  display: none;
  flex-direction: column;
  gap: var(--robby-space-1);
}

.robby-app-search-channel:hover .robby-app-search-channel__dropdown {
  display: flex;
}

.robby-app-search-channel__hr {
  margin: var(--robby-space-2) 0;
  border: 0;
  border-top: 1px solid var(--robby-gray);
  flex-shrink: 0;
}

.robby-app-search-channel__item {
  display: flex;
  align-items: center;
  gap: var(--robby-space-3);
  min-height: var(--robby-touch-min);
  padding: var(--robby-space-2) var(--robby-space-3);
  font-family: var(--robby-font-family);
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text);
  text-decoration: none;
  border-radius: var(--robby-radius-sm);
  transition: background-color var(--robby-transition), color var(--robby-transition);
}

.robby-app-search-channel__item:hover {
  background: var(--robby-gray);
  color: var(--robby-primary);
}

.robby-app-search-channel__item--active {
  background: var(--robby-gray);
  color: var(--robby-primary);
  font-weight: 600;
}

.robby-app-search-channel__item img {
  display: block;
  width: var(--robby-icon-size);
  height: var(--robby-icon-size);
  flex-shrink: 0;
}

.robby-app-search__input {
  flex: 1;
  min-width: 0;
  min-height: var(--robby-touch-min);
  padding: var(--robby-space-2) var(--robby-space-4);
  font-family: var(--robby-font-family);
  font-size: var(--robby-font-size-base);
  border: var(--robby-border);
  border-radius: var(--robby-radius);
  background: var(--robby-bg);
  color: var(--robby-text);
}

.robby-app-search__input--location {
  flex: 1;
  min-width: 0;
}

.robby-app-search__form .robby-app-search__input:not(.robby-app-search__input--location) {
  flex: 3;
}

.robby-app-search__input:focus {
  outline: none;
  border-color: var(--robby-primary);
  box-shadow: 0 0 0 3px rgba(255, 140, 0, 0.2);
}

.robby-app-search__btn {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--robby-touch-min);
  height: var(--robby-touch-min);
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--robby-text);
}

.robby-app-search__btn:hover {
  color: var(--robby-primary);
}

.robby-app-search__btn img {
  display: block;
  width: var(--robby-icon-size);
  height: var(--robby-icon-size);
}

.robby-search-msg {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  padding: 0.5rem 0.75rem;
  margin-bottom: 0.25rem;
  background: var(--robby-primary, #1976d2);
  color: #fff;
  font-size: 0.875rem;
  border-radius: 4px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s, visibility 0.2s;
}

.robby-search-msg--visible {
  opacity: 1;
  visibility: visible;
}

.robby-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Modal (About) */
.robby-modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--robby-space-4);
}

.robby-modal[hidden] {
  display: none;
}

.robby-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  cursor: pointer;
}

.robby-modal__dialog {
  position: relative;
  width: 100%;
  max-width: 90vw;
  max-height: 90vh;
  min-width: 280px;
  min-height: 200px;
  overflow: auto;
  resize: both;
  background: var(--robby-bg);
  border-radius: var(--robby-radius-lg);
  box-shadow: var(--robby-shadow-lg);
  padding: var(--robby-space-8);
}

.robby-modal__close {
  position: absolute;
  top: var(--robby-space-2);
  right: var(--robby-space-2);
  width: var(--robby-touch-min);
  height: var(--robby-touch-min);
  padding: 0;
  font-size: 1.5rem;
  line-height: 1;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--robby-text-muted);
}

.robby-modal__close:hover {
  color: var(--robby-text);
}

.robby-modal__body {
  padding-top: var(--robby-space-4);
}

.robby-modal__body--profile {
  padding-top: 0;
}

.robby-modal__body--profile .robby-user__table-wrap {
  width: 100%;
  box-sizing: border-box;
}

.robby-modal__body--profile .robby-user__table {
  table-layout: fixed;
  width: 100%;
}

.robby-modal__body--profile .robby-user__th {
  width: 38%;
  max-width: 12em;
}

.robby-modal__body--profile .robby-user__td {
  width: 62%;
  padding-left: var(--robby-space-3);
  padding-right: var(--robby-space-3);
}

.robby-modal__body--profile .robby-user__td .robby-form-input,
.robby-modal__body--profile .robby-user__td .robby-form-textarea,
.robby-modal__body--profile .robby-user__td select.robby-form-input {
  width: 100%;
  box-sizing: border-box;
}

.robby-login-spacer {
  margin-top: 20px;
}

.robby-login-actions--row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.robby-btn--gray {
  background-color: var(--robby-gray, #dedede);
  color: var(--robby-text, #505050);
}

.robby-btn--gray:hover {
  background-color: var(--robby-gray-dark, #bdbdbd);
}

.robby-modal--doc .robby-modal__dialog {
  max-width: 36rem;
}

.robby-modal__body--doc .robby-doc-modal-content {
  padding: 0;
}

body.robby-modal-open {
  overflow: hidden;
}

.robby-user__title {
  margin: 0 0 var(--robby-space-4);
  padding: 0;
  font-size: var(--robby-font-size-2xl);
  color: var(--robby-primary);
}

.robby-user .robby-user__title:first-child {
  margin-top: 0;
}

.robby-user__subtitle {
  margin: 0 0 var(--robby-space-4);
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text-muted);
}

.robby-user__message {
  margin-bottom: var(--robby-space-4);
  padding: 0.75rem;
  border-radius: var(--robby-radius);
  font-size: var(--robby-font-size-sm);
}
.robby-user__message--success {
  background: var(--robby-success-bg, #d4edda);
  color: var(--robby-success-text, #155724);
  border: 1px solid var(--robby-success-border, #c3e6cb);
}
.robby-user__message--error {
  background: var(--robby-error-bg, #f8d7da);
  color: var(--robby-error-text, #721c24);
  border: 1px solid var(--robby-error-border, #f5c6cb);
}
.robby-user .robby-form-message--success {
  background: var(--robby-success-bg, #d4edda);
  color: var(--robby-success-text, #155724);
  border: 1px solid var(--robby-success-border, #c3e6cb);
}
.robby-user .robby-form-message--error {
  background: var(--robby-error-bg, #f8d7da);
  color: var(--robby-error-text, #721c24);
  border: 1px solid var(--robby-error-border, #f5c6cb);
}

.robby-user__actions {
  margin-top: var(--robby-space-4);
  padding-top: var(--robby-space-4);
  border-top: 1px solid var(--robby-gray);
}
.robby-user__actions .robby-btn-primary {
  padding: var(--robby-space-2) var(--robby-space-4);
  font-size: var(--robby-font-size-sm);
  font-family: var(--robby-font-family);
  background: var(--robby-primary);
  color: var(--robby-text-inverse, #fff);
  border: 1px solid var(--robby-primary);
  border-radius: var(--robby-radius);
  cursor: pointer;
  transition: background-color var(--robby-transition), color var(--robby-transition), border-color var(--robby-transition);
}
.robby-user__actions .robby-btn-primary:hover:not(:disabled) {
  background: var(--robby-primary-dark);
  border-color: var(--robby-primary-dark);
}
.robby-user__actions .robby-btn-primary:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.robby-user__td .robby-form-input,
.robby-user__td .robby-form-textarea,
.robby-user__td select.robby-form-input {
  width: 100%;
  padding: 0.5rem 0.75rem;
  font-size: var(--robby-font-size-sm);
  font-family: inherit;
  border: 1px solid var(--robby-gray);
  border-radius: var(--robby-radius);
  background: var(--robby-bg-primary);
  color: var(--robby-text);
  box-sizing: border-box;
}

/* Todo 049: Passwort ein-/ausblenden (Eye-Button) */
.robby-password-wrap {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  width: 100%;
}
.robby-password-wrap .robby-form-input,
.robby-password-wrap .form-control {
  flex: 1;
  min-width: 0;
}
.robby-password-toggle {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 1px solid var(--robby-gray);
  border-radius: var(--robby-radius);
  background: var(--robby-bg-primary);
  color: var(--robby-text);
  cursor: pointer;
}
.robby-password-toggle:hover {
  background: var(--robby-gray-light, #e0e0e0);
}
.robby-password-toggle .robby-icon-eye,
.robby-password-toggle .robby-icon-eye-slash {
  display: block;
}

.robby-user__td .robby-form-textarea {
  min-height: 4rem;
  resize: vertical;
}
.robby-user__td .robby-btn-primary {
  padding: var(--robby-space-2) var(--robby-space-4);
  font-size: var(--robby-font-size-sm);
  font-family: var(--robby-font-family);
  background: var(--robby-primary);
  color: var(--robby-text-inverse, #fff);
  border: 1px solid var(--robby-primary);
  border-radius: var(--robby-radius);
  cursor: pointer;
  transition: background-color var(--robby-transition), color var(--robby-transition), border-color var(--robby-transition);
}
.robby-user__td .robby-btn-primary:hover:not(:disabled) {
  background: var(--robby-primary-dark);
  border-color: var(--robby-primary-dark);
}
.robby-user__td .robby-btn-primary:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.robby-user__avatar {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--robby-space-4);
  margin-bottom: var(--robby-space-4);
}

.robby-user__avatar-img-wrap {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid var(--robby-gray);
  background: var(--robby-bg-alt);
  flex-shrink: 0;
}

.robby-user__avatar-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.robby-user__avatar-img--fallback {
  object-fit: contain;
  padding: var(--robby-space-2);
}

.robby-user__upload-form {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.robby-user__file-input {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.robby-user__upload-btn {
  display: inline-block;
  padding: var(--robby-space-2) var(--robby-space-4);
  font-size: var(--robby-font-size-sm);
  font-family: var(--robby-font-family);
  color: var(--robby-primary);
  background: transparent;
  border: 1px solid var(--robby-primary);
  border-radius: var(--robby-radius);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.robby-user__upload-btn:hover {
  background: var(--robby-primary);
  color: var(--robby-text-inverse);
}

.robby-user__upload-wrap {
  display: flex;
  flex-direction: column;
  gap: var(--robby-space-1);
}

.robby-user__upload-hint {
  font-size: var(--robby-font-size-xs);
  color: var(--robby-text-muted);
  margin: 0;
}

.robby-user__upload-msg {
  font-size: var(--robby-font-size-sm);
  margin: 0;
}

.robby-user__upload-msg--ok {
  color: var(--robby-success, #2e7d32);
}

.robby-user__upload-msg--error {
  color: var(--robby-danger, #c62828);
}

.robby-user__geo {
  margin-top: var(--robby-space-4);
  padding-top: var(--robby-space-4);
  border-top: 1px solid var(--robby-gray);
}

/* Einstellungen: Schriftgröße (settings_modal.php) */
.robby-settings-font-size {
  margin-top: var(--robby-space-4);
}
.robby-settings-font-size__btns {
  display: flex;
  flex-wrap: wrap;
  gap: var(--robby-space-2);
  margin-top: var(--robby-space-2);
}
.robby-settings-font-btn {
  padding: var(--robby-space-2) var(--robby-space-4);
  font-family: var(--robby-font-family);
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text);
  background: var(--robby-bg);
  border: var(--robby-border);
  border-radius: var(--robby-radius);
  cursor: pointer;
  transition: background-color var(--robby-transition), color var(--robby-transition);
}
.robby-settings-font-btn:hover {
  background: var(--robby-gray);
  color: var(--robby-primary);
}
.robby-settings-font-btn--active {
  background: var(--robby-primary);
  color: var(--robby-text-inverse);
  border-color: var(--robby-primary);
}

/* Einstellungen: Channels im Kalender */
.robby-settings-divider {
  border: 0;
  margin: var(--robby-space-6) 0 0;
  height: 1px;
  background: var(--robby-gray);
}

.robby-settings-about-logo {
  margin-top: var(--robby-space-4);
  margin-bottom: var(--robby-space-2);
}

.robby-settings-about-logo__img {
  display: block;
  height: 36px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
}
.robby-settings-channels-subtitle {
  margin-top: var(--robby-space-4);
}
.robby-settings-channels-hint {
  margin-top: var(--robby-space-2);
  font-size: var(--robby-font-size-sm);
}
.robby-settings-calendar-channels {
  display: flex;
  flex-wrap: wrap;
  gap: var(--robby-space-4);
  margin-top: var(--robby-space-2);
}
.robby-settings-channel-cb {
  display: inline-flex;
  align-items: center;
  gap: var(--robby-space-2);
  cursor: pointer;
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text);
}
.robby-settings-channel-input {
  width: 1.25rem;
  height: 1.25rem;
  accent-color: var(--robby-primary);
}

.robby-settings-actions {
  margin-top: var(--robby-space-6);
}
.robby-settings-apply-btn {
  display: inline-block;
  padding: var(--robby-space-2) var(--robby-space-4);
  font-family: var(--robby-font-family);
  font-size: var(--robby-font-size-sm);
  font-weight: 500;
  color: var(--robby-text-inverse);
  background: var(--robby-primary);
  border: 1px solid var(--robby-primary);
  border-radius: var(--robby-radius);
  cursor: pointer;
  transition: background-color var(--robby-transition), border-color var(--robby-transition), color var(--robby-transition);
}
.robby-settings-apply-btn:hover {
  background: var(--robby-primary-dark);
  border-color: var(--robby-primary-dark);
}

.robby-user__geo-label {
  display: flex;
  align-items: center;
  gap: var(--robby-space-2);
  cursor: pointer;
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text);
}

.robby-user__geo-checkbox {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  accent-color: var(--robby-primary);
}

.robby-user__geo-text {
  flex: 1;
}

.robby-user__geo-coords {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--robby-space-2);
  margin-top: var(--robby-space-2);
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text);
}

.robby-user__geo-coords-text {
  flex: 1;
}

.robby-user__geo-coords-empty {
  color: var(--robby-text-muted);
  font-style: italic;
}

.robby-user__geo-map-link {
  display: inline-flex;
  flex-shrink: 0;
  line-height: 0;
}

.robby-user__geo-map-link:hover {
  opacity: 0.85;
}

.robby-user__geo-map-icon {
  display: block;
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.robby-user__geo-request-btn {
  flex-shrink: 0;
  padding: var(--robby-space-2) var(--robby-space-3);
  font-size: var(--robby-font-size-sm);
  font-family: var(--robby-font-family);
  color: var(--robby-primary);
  background: transparent;
  border: 1px solid var(--robby-primary);
  border-radius: var(--robby-radius);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.robby-user__geo-request-btn:hover:not(:disabled) {
  background: var(--robby-primary);
  color: var(--robby-text-inverse);
}

.robby-user__geo-request-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.robby-user__geo-error {
  flex-basis: 100%;
  display: block;
  margin-top: var(--robby-space-2);
  font-size: var(--robby-font-size-sm);
  color: var(--robby-primary-dark);
}

.robby-user__geo-error[hidden] {
  display: none;
}

.robby-user__error {
  margin: 0;
  color: var(--robby-primary-dark);
  font-size: var(--robby-font-size-sm);
}

.robby-user__caption {
  font-weight: 600;
  text-align: left;
  padding-bottom: var(--robby-space-2);
  color: var(--robby-text-muted);
}

.robby-user__heading-2 {
  font-size: 1.1rem;
  margin: 1rem 0 0.5rem;
  font-weight: 600;
  color: var(--robby-primary);
}

/* User page (?view=user): Abstände zwischen Cards und Innenabstände */
.robby-app-content .robby-container > .robby-cards-wrap + .robby-cards-wrap {
  margin-top: var(--robby-space-4);
}
.robby-app-content .robby-container > .robby-user--page {
  margin-top: var(--robby-space-4);
  padding: 0 var(--robby-space-4);
}
.robby-app-content .robby-container > .robby-user--page + .robby-cards-wrap {
  margin-top: var(--robby-space-4);
}
.robby-card--user-location,
.robby-card--user-geo,
.robby-card--push-send {
  padding: var(--robby-space-4);
}
.robby-card--user-location .robby-user__heading-2:first-child,
.robby-card--user-geo .robby-user__heading-2:first-child,
.robby-card--push-send .robby-user__heading-2:first-child {
  margin-top: 0;
}
.robby-card--user-location .robby-user__table-wrap,
.robby-card--user-location .robby-user__grid4-wrap,
.robby-card--user-geo .robby-user__geo,
.robby-card--push-send .robby-push-form {
  margin-top: var(--robby-space-3);
}
.robby-user--page .robby-user__avatar {
  margin-bottom: var(--robby-space-4);
}
.robby-user--page .robby-user__table-wrap,
.robby-user--page .robby-user__grid4-wrap {
  margin-top: 0;
}

.robby-user__muted {
  color: var(--robby-text-muted);
  font-size: var(--robby-font-size-sm);
  margin: 0.5rem 0;
}

.robby-dashboard-downline-wrap {
  margin-top: var(--robby-space-4);
}

.robby-dashboard-downline-table {
  table-layout: auto;
  width: 100%;
}

.robby-modal__body--profile .robby-dashboard-downline-table {
  table-layout: auto;
}

.robby-dashboard-downline-table .robby-user__th,
.robby-dashboard-downline-table .robby-user__td {
  width: auto;
  max-width: none;
}

.robby-user__td.robby-user__td--status-pending {
  color: #e65100;
}

.robby-user__td.robby-user__td--status-active {
  color: #2e7d32;
}

.robby-user__table-wrap {
  overflow-x: auto;
  border: 1px solid var(--robby-gray);
  border-radius: var(--robby-radius);
}

.robby-user__table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--robby-font-size-sm);
}

.robby-user__row {
  border-bottom: 1px solid var(--robby-gray);
}

.robby-user__row:last-child {
  border-bottom: 0;
}

.robby-user__grid4-wrap {
  border: 1px solid var(--robby-gray);
  border-radius: var(--robby-radius);
  overflow: hidden;
}

.robby-user__grid4 {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr;
  margin: 0;
  padding: 0;
  font-size: var(--robby-font-size-sm);
}

.robby-user__grid4-label,
.robby-user__grid4-value {
  padding: var(--robby-space-2) var(--robby-space-3);
  border-bottom: 1px solid var(--robby-gray);
  vertical-align: top;
  margin: 0;
}

.robby-user__grid4-label:nth-last-child(-n+4),
.robby-user__grid4-value:nth-last-child(-n+4) {
  border-bottom: 0;
}

.robby-user__grid4-label {
  font-weight: 600;
  color: var(--robby-text-muted);
  background: var(--robby-bg-alt);
  white-space: nowrap;
}

.robby-user__grid4-value {
  color: var(--robby-text);
  word-break: break-word;
}

@media (max-width: 600px) {
  .robby-user__grid4 {
    grid-template-columns: auto 1fr;
  }
  .robby-user__grid4-label:nth-last-child(-n+4),
  .robby-user__grid4-value:nth-last-child(-n+4) {
    border-bottom: 1px solid var(--robby-gray);
  }
  .robby-user__grid4-label:last-child,
  .robby-user__grid4-value:last-child {
    border-bottom: 0;
  }
}

/* Registrierung: Optional-Felder erst nach Anlegen des Kontos anzeigen */
.robby-register-optional-section {
  display: none;
}
.robby-registration-done .robby-register-optional-section {
  display: table-row-group;
}

.robby-user__th {
  text-align: left;
  padding: var(--robby-space-2) var(--robby-space-3);
  font-weight: 600;
  color: var(--robby-text-muted);
  background: var(--robby-bg-alt);
  white-space: nowrap;
  width: 1%;
  vertical-align: top;
}

.robby-user__td {
  padding: var(--robby-space-2) var(--robby-space-3);
  color: var(--robby-text);
  vertical-align: top;
}

.robby-about__title {
  margin: 0 0 var(--robby-space-4);
  font-size: var(--robby-font-size-2xl);
  color: var(--robby-primary);
}

.robby-about__company,
.robby-about__address,
.robby-about__legal,
.robby-about__links {
  margin: 0 0 var(--robby-space-4);
  font-size: var(--robby-font-size-sm);
  color: var(--robby-text);
}

.robby-about__links a {
  color: var(--robby-primary);
}

/* ========== Responsive ========== */
@media (min-width: 768px) {
  .robby h1, .robby .robby-heading--1 {
    font-size: 2rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .robby .robby-btn,
  .robby a {
    transition: none;
  }
}

/* Doc pages (imprint, privacy, terms, help, faq) */
.robby-doc-page {
  padding: var(--robby-space-4, 1rem);
  max-width: 60rem;
  margin-left: auto;
  margin-right: auto;
}
.robby-doc-block {
  margin-top: 1.5rem;
}
.robby-doc-back {
  margin-top: 2rem;
}
.robby-heading--2 {
  font-size: 1.25rem;
  margin: 0 0 var(--robby-space-2, 0.5rem);
}
.robby-faq-q {
  margin-top: 0.5rem;
}
.robby-faq-a {
  margin-left: 0;
  margin-bottom: 0.5rem;
}

/* Contact / Recommend modal forms (Todo 027) */
.robby-doc-modal-content .robby-content-title {
  margin: 0 0 var(--robby-space-2, 0.5rem);
  font-size: 1.25rem;
}
.robby-doc-modal-content .robby-form-row {
  margin-bottom: var(--robby-space-4, 1rem);
}
.robby-doc-modal-content .robby-form-label {
  display: block;
  margin-bottom: 0.25rem;
  font-size: var(--robby-font-size-sm, 0.875rem);
}
.robby-doc-modal-content .robby-form-input,
.robby-doc-modal-content .robby-form-textarea {
  width: 100%;
  padding: 0.5rem 0.75rem;
  font-size: 1rem;
  font-family: inherit;
  border: 1px solid var(--robby-gray, #ccc);
  border-radius: var(--robby-radius, 6px);
  background: var(--robby-bg-primary, #fff);
  color: var(--robby-text-primary, #111);
  box-sizing: border-box;
}
.robby-doc-modal-content .robby-form-textarea {
  min-height: 4rem;
  resize: vertical;
}
.robby-doc-modal-content .robby-form-required {
  color: var(--robby-error, #c00);
}
.robby-doc-modal-content .robby-form-message {
  padding: 0.75rem;
  margin-bottom: 1rem;
  border-radius: var(--robby-radius, 6px);
  font-size: var(--robby-font-size-sm, 0.875rem);
}
.robby-doc-modal-content .robby-form-message--success {
  background: var(--robby-success-bg, #d4edda);
  color: var(--robby-success-text, #155724);
  border: 1px solid var(--robby-success-border, #c3e6cb);
}
.robby-doc-modal-content .robby-form-message--error {
  background: var(--robby-error-bg, #f8d7da);
  color: var(--robby-error-text, #721c24);
  border: 1px solid var(--robby-error-border, #f5c6cb);
}
.robby-doc-modal-content .robby-btn-primary {
  padding: var(--robby-space-2) var(--robby-space-4);
  font-size: var(--robby-font-size-sm);
  font-family: var(--robby-font-family);
  background: var(--robby-primary, #06c);
  color: var(--robby-text-inverse, #fff);
  border: 1px solid var(--robby-primary);
  border-radius: var(--robby-radius, 6px);
  cursor: pointer;
  transition: background-color var(--robby-transition), color var(--robby-transition), border-color var(--robby-transition);
}
.robby-doc-modal-content .robby-btn-primary:hover:not(:disabled) {
  background: var(--robby-primary-dark);
  border-color: var(--robby-primary-dark);
}
.robby-doc-modal-content .robby-btn-primary:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

/* Passwort-Stärke (Todo 041) */
.robby-password-strength {
  margin-top: 0.5rem;
  font-size: var(--robby-font-size-sm, 0.875rem);
}
.robby-password-strength__bar {
  height: 6px;
  border-radius: 3px;
  background: var(--robby-gray, #ddd);
  transition: width 0.2s ease, background-color 0.2s ease;
}
.robby-password-strength__bar--weak {
  background: #e53935;
}
.robby-password-strength__bar--medium {
  background: #fb8c00;
}
.robby-password-strength__bar--strong {
  background: #43a047;
}
.robby-password-strength__label {
  display: inline-block;
  margin-top: 0.25rem;
  color: var(--robby-text-muted, #808080);
}

/* ========== Plans (Todo 055) – Infocards wie b2b-explorer ========== */
/* Container variable Breite, max. 30px Abstand links/rechts; Farben an Theme angepasst */
.robby-plans-page {
  padding: var(--robby-space-4, 1rem) 30px;
  max-width: none;
  width: 100%;
  box-sizing: border-box;
  margin-left: 0;
  margin-right: 0;
  color: var(--robby-text, #1a1a1a);
  background: var(--robby-bg-alt, #f5f5f5);
  border-radius: var(--robby-radius-lg, 12px);
  border: 1px solid var(--robby-gray, #dedede);
}
.robby-plans-page-header {
  display: flex;
  align-items: center;
  gap: var(--robby-space-3, 0.75rem);
  margin-bottom: var(--robby-space-4, 1rem);
}
.robby-plans-page-logo {
  flex-shrink: 0;
  display: block;
}
.robby-plans-page .robby-content-title {
  margin: 0;
  color: var(--robby-primary-dark, #e65100);
}
.robby-plans-current-inline {
  font-weight: 600;
  color: var(--robby-primary-dark, #e65100);
}
.robby-plans-message {
  margin: 0 0 var(--robby-space-3, 0.75rem);
  padding: 0.5rem 1rem;
  border-radius: var(--robby-radius, 8px);
  font-size: var(--robby-font-size-sm, 0.875rem);
}
.robby-plans-message--success {
  background: rgba(46, 125, 50, 0.15);
  color: #1b5e20;
}
.robby-plans-message--info {
  background: rgba(2, 119, 189, 0.1);
  color: #01579b;
}
.robby-plans-message--error {
  background: rgba(198, 40, 40, 0.1);
  color: #b71c1c;
}
.robby-plan-card__current-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--robby-touch-min, 44px);
  padding: 0.5rem 1rem;
  font-size: var(--robby-font-size-sm, 0.875rem);
  font-weight: 600;
  color: var(--robby-primary-dark, #e65100);
  background: var(--robby-bg-orange-light, #fff5eb);
  border-radius: var(--robby-radius, 8px);
  box-sizing: border-box;
}
.robby-plans-hero {
  margin: 0 0 var(--robby-space-2, 0.5rem);
  font-size: var(--robby-font-size-lg, 1.125rem);
  font-weight: 700;
  line-height: 1.35;
  color: var(--robby-text, #1a1a1a);
}
.robby-plans-intro {
  margin: 0 0 var(--robby-space-4, 1rem);
  max-width: none;
  line-height: var(--robby-line-height-relaxed, 1.75);
  color: var(--robby-text, #1a1a1a);
}
.robby-plans-trust {
  margin: 0 0 var(--robby-space-6, 1.5rem);
  max-width: none;
  font-size: var(--robby-font-size-sm, 0.875rem);
  color: var(--robby-text, #1a1a1a);
}
/* Info-Card: Intro mit Aufzählung (Todo 009: Abstand Titel→oben max 10px, Hover) */
.robby-plans-page .robby-info-card.robby-card {
  max-width: none;
  margin-bottom: var(--robby-space-6, 1.5rem);
  border: 1px solid var(--robby-gray, #dedede);
  background: var(--robby-bg, #fff);
  color: var(--robby-text, #1a1a1a);
  border-radius: var(--robby-radius-lg, 12px);
  box-shadow: var(--robby-shadow, 0 2px 8px rgba(0,0,0,0.2));
  overflow: hidden;
  transition: box-shadow 0.2s ease;
}
.robby-plans-page .robby-info-card.robby-card:hover {
  box-shadow: 0 4px 14px rgba(0,0,0,0.12);
}
.robby-plans-page .robby-info-card .robby-card__header {
  padding: min(10px, 0.5 * var(--robby-space-4, 1rem)) var(--robby-space-4, 1rem);
  border-bottom: 1px solid var(--robby-gray, #dedede);
  font-weight: 600;
  font-size: var(--robby-font-size-lg, 1.125rem);
  color: var(--robby-primary-dark, #e65100);
  background: var(--robby-bg, #fff);
}
.robby-plans-page .robby-info-card .robby-card__body {
  padding: var(--robby-space-4, 1rem);
  color: var(--robby-text, #1a1a1a);
  background: var(--robby-bg, #fff);
}
.robby-plans-page .robby-info-card__list {
  margin: 0;
  padding-left: 1.5rem;
  line-height: var(--robby-line-height-relaxed, 1.75);
  color: var(--robby-text, #1a1a1a);
  list-style-type: disc;
  list-style-position: outside;
}
.robby-plans-page .robby-info-card__list li {
  margin-bottom: 0.35rem;
  display: list-item;
}
/* Sparplan: Laufzeit – Infobox (Todo 009: Abstände oben/unten max 10px, Hover) */
.robby-plans-cycle-box {
  max-width: none;
  margin-bottom: var(--robby-space-8, 2rem);
  padding: min(10px, var(--robby-space-4, 1rem)) var(--robby-space-3, 0.75rem);
  border: 1px solid var(--robby-gray, #dedede);
  border-radius: var(--robby-radius-lg, 12px);
  background: var(--robby-bg, #fff);
  box-shadow: var(--robby-shadow, 0 2px 8px rgba(0,0,0,0.08));
  color: var(--robby-text, #1a1a1a);
  transition: box-shadow 0.2s ease;
}
.robby-plans-cycle-box:hover {
  box-shadow: 0 4px 14px rgba(0,0,0,0.12);
}
.robby-plans-cycle-box__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--robby-space-3, 0.75rem);
}
.robby-plans-cycle-box__title {
  font-size: var(--robby-font-size-base, 1rem);
  font-weight: 600;
  margin: 0;
  line-height: 1.3;
  color: var(--robby-text, #1a1a1a);
}
.robby-plans-cycle {
  display: flex;
  flex-wrap: wrap;
  gap: var(--robby-space-2, 0.5rem);
}
/* Laufzeit-Buttons: Schrift immer weiß (überschreibt .robby .robby-btn) */
.robby-plans-cycle .robby-plans-cycle__btn,
.robby-plans-cycle__btn {
  color: #fff !important;
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  padding: 0.65rem 1.1rem;
  font-size: var(--robby-font-size-base, 1rem);
  font-weight: 700;
  border-radius: var(--robby-radius, 8px);
  border: none;
  text-decoration: none;
  font-family: inherit;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
  transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
  min-height: var(--robby-touch-min, 44px);
  box-sizing: border-box;
}
.robby-plans-cycle__btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.2);
}
.robby-plans-cycle__btn:focus {
  outline: 2px solid rgba(0, 0, 0, 0.3);
  outline-offset: 2px;
}
/* 12 Monate: hell rot (Normal + ausgewählt), weiße Schrift; hover = rot */
.robby-plans-cycle__btn--neutral {
  background: #ef9a9a;
  color: #fff !important;
}
.robby-plans-cycle__btn--neutral:hover {
  background: #c62828;
  color: #fff !important;
}
.robby-plans-cycle__btn--neutral.robby-plans-cycle__link--active {
  background: #c62828;
  color: #fff !important;
  box-shadow: none;
}
.robby-plans-cycle__btn--neutral.robby-plans-cycle__link--active:hover {
  background: #b71c1c;
  color: #fff !important;
}
/* 2 Jahre: ausgewählt = dunkles Orange (Todo 009) */
.robby-plans-cycle__btn--orange {
  background: #ffcc80;
  color: #fff !important;
}
.robby-plans-cycle__btn--orange:hover {
  background: #e65100;
  color: #fff !important;
}
.robby-plans-cycle__btn--orange.robby-plans-cycle__link--active {
  background: #e65100;
  color: #fff !important;
  box-shadow: none;
}
.robby-plans-cycle__btn--orange.robby-plans-cycle__link--active:hover {
  background: #bf360c;
  color: #fff !important;
}
/* 3 Jahre: ausgewählt = dunkles Grün (Todo 009) */
.robby-plans-cycle__btn--green {
  background: #a5d6a7;
  color: #fff !important;
}
.robby-plans-cycle__btn--green:hover {
  background: #2e7d32;
  color: #fff !important;
}
.robby-plans-cycle__btn--green.robby-plans-cycle__link--active {
  background: #2e7d32;
  color: #fff !important;
  box-shadow: none;
}
.robby-plans-cycle__btn--green.robby-plans-cycle__link--active:hover {
  background: #1b5e20;
  color: #fff !important;
}
.robby-plans-cycle__btn.robby-plans-cycle__link--active {
  font-weight: 700;
}
.robby-plans-cycle__link {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  padding: 0.5rem 1rem;
  font-size: var(--robby-font-size-sm, 0.875rem);
  font-weight: 700;
  color: #fff;
  background: #546e7a;
  border: 1px solid #455a64;
  border-radius: var(--robby-radius, 8px);
  text-decoration: none;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.robby-plans-cycle__link:hover {
  background: #455a64;
  border-color: #37474f;
  color: #fff;
}
.robby-plans-cycle__link--active {
  background: var(--robby-primary);
  border-color: var(--robby-primary);
  color: #fff;
}
.robby-plans-cycle__badge {
  font-size: 0.85em;
  font-weight: inherit;
  color: #fff;
}
.robby-plans-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: var(--robby-space-4, 1rem);
  margin-bottom: var(--robby-space-8, 2rem);
  max-width: none;
}
/* B2B-Block: Vereine, Parteien & Organisationen (Info-Card) */
.robby-plans-page .robby-card--plans-b2b.robby-info-card {
  max-width: none;
  margin-bottom: var(--robby-space-4, 1rem);
}
.robby-card--plans-b2b .robby-plans-b2b__teaser {
  margin: 0 0 var(--robby-space-4, 1rem);
  line-height: var(--robby-line-height-relaxed, 1.75);
  color: var(--robby-text, #1a1a1a);
  font-size: var(--robby-font-size-sm, 0.875rem);
}
.robby-plans-b2b__cta {
  margin: 0;
}
.robby-plans-b2b__cta .robby-btn {
  min-height: var(--robby-touch-min, 44px);
  padding: 0.6rem 1rem;
  font-weight: 600;
  text-decoration: none;
  display: inline-block;
  border-radius: var(--robby-radius, 8px);
  border: 1px solid transparent;
  font-family: inherit;
  color: #fff;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.robby-plans-b2b__cta .robby-btn:hover {
  color: #fff;
}
.robby-plan-card {
  max-width: none;
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: var(--robby-space-4, 1rem) var(--robby-space-3, 0.75rem);
  padding-top: min(10px, 0.5 * var(--robby-space-4, 1rem));
  border: 1px solid var(--robby-gray, #dedede);
  border-radius: var(--robby-radius-lg, 12px);
  background: var(--robby-bg, #fff);
  color: var(--robby-text, #1a1a1a);
  box-shadow: var(--robby-shadow, 0 2px 8px rgba(0,0,0,0.08));
  transition: box-shadow 0.2s ease;
}
.robby-plan-card:hover {
  box-shadow: 0 4px 14px rgba(0,0,0,0.12);
}
.robby-plan-card__footer {
  margin-top: auto;
  padding-top: var(--robby-space-3, 0.75rem);
}
.robby-plan-card__footer .robby-plan-card__cta {
  margin-top: var(--robby-space-2, 0.5rem);
  margin-bottom: 0;
}
.robby-plan-card__name {
  font-size: var(--robby-font-size-sm, 0.875rem);
  margin: 0 0 0.2rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--robby-primary-dark, #e65100);
}
.robby-plan-card__price {
  margin-bottom: var(--robby-space-2, 0.5rem);
}
.robby-plan-card__price-line {
  display: inline;
}
.robby-plan-card__amount {
  font-size: var(--robby-font-size-base, 1rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--robby-text, #1a1a1a);
}
.robby-plan-card__period {
  font-size: var(--robby-font-size-sm, 0.875rem);
  font-weight: 500;
  color: var(--robby-text, #1a1a1a);
  margin-left: 0.35em;
}
.robby-plan-card__per-month {
  display: block;
  font-size: var(--robby-font-size-sm, 0.875rem);
  font-weight: 500;
  color: var(--robby-primary-dark, #e65100);
  margin-top: 0.2rem;
  margin-left: 0;
}
.robby-plan-card__savings {
  display: block;
  font-size: var(--robby-font-size-xs, 0.75rem);
  color: var(--robby-primary-dark, #2e7d32);
  font-weight: 600;
  margin-top: 0.25rem;
}
.robby-plan-card__features {
  margin: 0 0 var(--robby-space-4, 1rem);
  padding-left: 1.5rem;
  list-style-type: disc;
  list-style-position: outside;
  color: var(--robby-text, #1a1a1a);
}
.robby-plan-card__features li {
  margin-bottom: 0.35rem;
  color: var(--robby-text, #1a1a1a);
  display: list-item;
}
.robby-plan-card__cta {
  margin: 0 0 0.25rem;
}
.robby-plan-card__cta .robby-btn {
  width: 100%;
  min-height: var(--robby-touch-min, 44px);
  padding: 0.6rem 1rem;
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  box-sizing: border-box;
  cursor: pointer;
  border-radius: var(--robby-radius, 8px);
  border: 1px solid transparent;
  font-family: inherit;
  color: #fff;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.robby-plan-card__cta .robby-btn:hover {
  color: #fff;
}
.robby-plan-card__note {
  font-size: var(--robby-font-size-xs, 0.75rem);
  margin: 0;
  color: var(--robby-text-muted, #666);
}
.robby-plan-card__note + .robby-plan-card__note {
  margin-top: 0.25rem;
}
/* Free-Plan: Registrierungstext als Aufzählung, gleiche Schriftgröße/Farbe wie Features (Todo 009) */
.robby-plan-card__note-list {
  margin: 0 0 0.5rem;
  padding-left: 1.5rem;
  list-style-type: disc;
  list-style-position: outside;
  font-size: var(--robby-font-size-base, 1rem);
  color: var(--robby-text, #1a1a1a);
  line-height: var(--robby-line-height-relaxed, 1.75);
}
.robby-plan-card__note-list li {
  margin-bottom: 0.35rem;
  display: list-item;
}
/* Registrieren-Button: Grün mit gutem Kontrast */
.robby-plan-card__cta .robby-btn-secondary {
  background: #2e7d32;
  border-color: #1b5e20;
  color: #fff;
}
.robby-plan-card__cta .robby-btn-secondary:hover {
  background: #1b5e20;
  border-color: #0d3310;
  color: #fff;
}
/* Upgrade Pro: Rot (Todo 009) */
.robby-plan-card__btn--red.robby-btn-primary {
  background: #c62828;
  border-color: #b71c1c;
  color: #fff;
}
.robby-plan-card__btn--red.robby-btn-primary:hover {
  background: #b71c1c;
  border-color: #8e0000;
  color: #fff;
}
/* Upgrade Prime: Orange (Todo 009) */
.robby-plan-card__btn--orange.robby-btn-primary {
  background: #e65100;
  border-color: #bf360c;
  color: #fff;
}
.robby-plan-card__btn--orange.robby-btn-primary:hover {
  background: #bf360c;
  border-color: #8d2a08;
  color: #fff;
}
/* Upgrade Ultra: Grün (Todo 009) */
.robby-plan-card__btn--green.robby-btn-primary {
  background: #2e7d32;
  border-color: #1b5e20;
  color: #fff;
}
.robby-plan-card__btn--green.robby-btn-primary:hover {
  background: #1b5e20;
  border-color: #0d3310;
  color: #fff;
}
.robby-plans-notes {
  margin: 0 0 var(--robby-space-4, 1rem);
  max-width: none;
  color: var(--robby-text, #1a1a1a);
}
.robby-plans-notes__p {
  margin: 0 0 var(--robby-space-2, 0.5rem);
  line-height: var(--robby-line-height-relaxed, 1.75);
  color: var(--robby-text, #1a1a1a);
  font-size: var(--robby-font-size-sm, 0.875rem);
}
.robby-plans-notes__p:last-child {
  margin-bottom: 0;
}

/* Disziplinen (view=disciplines, Todo 008) – Überschrift + Register in Cards wie andere Views */
.robby-disciplines-wrap {
  padding: var(--robby-space-3, 0.75rem) 0;
}
.robby-disciplines-wrap .robby-card--channel-headline .robby-card__line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--robby-space-2);
}
.robby-disciplines-wrap .robby-disciplines-back-link {
  margin-left: auto;
  font-size: var(--robby-font-size-sm, 0.875rem);
  font-weight: 400;
  color: inherit;
  text-decoration: none;
}
.robby-disciplines-wrap .robby-disciplines-back-link:hover {
  text-decoration: underline;
}
.robby-disciplines-wrap .robby-cards-wrap + .robby-cards-wrap {
  margin-top: var(--robby-space-2, 0.5rem);
}
.robby-card--disciplines-nav .robby-card__body {
  padding: var(--robby-space-2, 0.5rem) var(--robby-space-3, 0.75rem);
}
.robby-disciplines-nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--robby-space-1, 0.25rem);
  margin: 0;
  padding: 0;
}
.robby-disciplines-nav__link {
  display: inline-block;
  min-width: 1.75em;
  padding: 0.2em 0.35em;
  font-size: var(--robby-font-size-sm, 0.875rem);
  font-weight: 600;
  color: var(--robby-link-color, #1976d2);
  text-decoration: none;
  text-align: center;
  border-radius: 2px;
}
.robby-disciplines-nav__link:hover {
  text-decoration: underline;
  background: var(--robby-bg-subtle, #f5f5f5);
}
.robby-disciplines-body {
  margin-top: var(--robby-space-2, 0.5rem);
  display: flex;
  flex-direction: column;
  gap: var(--robby-space-2, 0.5rem);
}
.robby-disciplines-card {
  display: flex;
  align-items: baseline;
  gap: var(--robby-space-2, 0.5rem);
  margin: 0;
  padding: var(--robby-space-1, 0.25rem) var(--robby-space-2, 0.5rem);
  background: var(--robby-bg);
  border: var(--robby-border);
  border-radius: var(--robby-radius);
  box-shadow: var(--robby-shadow);
  font-size: var(--robby-font-size-xs, 0.8125rem);
}
.robby-disciplines-card__letter {
  flex-shrink: 0;
  font-weight: 700;
  color: var(--robby-text-muted, #666);
  min-width: 1.25em;
}
.robby-disciplines-card__terms {
  margin: 0;
  padding: 0;
  line-height: 1.4;
  overflow-wrap: break-word;
}
.robby-disciplines-card__link {
  color: var(--robby-link-color, #1976d2);
  text-decoration: none;
}
.robby-disciplines-card__link:hover {
  text-decoration: underline;
}

/* ========== Landing Page (Todo 001/002 landing-page.mdc) – Google Ads ========== */
/* Todo 002: Hintergrund per body style = nahtlose Kachel, 20 % Transparenz; Fallback wenn kein Bild */
html.robby-landing-html,
html.robby-landing-html body.robby-landing {
  margin: 0;
  padding: 0;
}
.robby-landing {
  font-family: var(--robby-font-family);
  color: var(--robby-text);
  background-color: #e8e8e8;
  min-height: 100vh;
}
.robby-landing__main {
  padding: var(--robby-space-6, 1.5rem) 0;
}
.robby-landing .robby-container {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--robby-container-gutter);
  padding-right: var(--robby-container-gutter);
}
/* Todo 005: Header-Titel orange; Titel-Container Deckkraft 50 % */
.robby.robby-landing .robby-landing__hero {
  text-align: left;
  padding: var(--robby-space-8, 2rem) 0;
  background: transparent;
  border-bottom: var(--robby-border);
}
.robby.robby-landing .robby-landing__title-wrap {
  display: flex;
  align-items: center;
  gap: var(--robby-space-4);
  background: rgba(255, 255, 255, 0.5);
  padding: var(--robby-space-4);
  border-radius: var(--robby-radius-lg);
}
.robby.robby-landing .robby-landing__hero-logo {
  flex-shrink: 0;
  display: block;
  width: 80px;
  height: 80px;
  object-fit: contain;
}
/* Todo 021/022: Titel „Keinen Anstoss bei …“ – Schrift weiter verkleinert */
.robby.robby-landing .robby-landing__title {
  margin: 0;
  font-size: clamp(1.05rem, 3.2vw, 1.6rem);
  font-weight: 700;
  line-height: var(--robby-line-height-tight);
  color: var(--robby-primary) !important;
}
.robby.robby-landing .robby-landing__subtitle {
  margin: 0.25rem 0 0;
  font-size: 2rem;
  line-height: var(--robby-line-height-relaxed);
  color: #555555;
}
.robby.robby-landing .robby-landing__subtitle--small {
  font-size: 1rem;
}
.robby.robby-landing .robby-landing__subtitle--with-follow {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
}
.robby.robby-landing .robby-landing__subtitle-text {
  flex: 1 1 auto;
  min-width: 0;
}
.robby.robby-landing .robby-landing__follow-inline {
  flex-shrink: 0;
}
.robby-landing__solution-cta {
  font-weight: 600;
  color: var(--robby-primary);
}
.robby-landing__solution-cta:hover {
  text-decoration: underline;
}
/* Problem + Lösung: 2er-Grid als Cards (Todo 002) */
.robby-landing__two-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--robby-space-4);
}
@media (max-width: 540px) {
  .robby-landing__two-grid {
    grid-template-columns: 1fr;
  }
}
.robby-landing__card {
  background: var(--robby-bg);
  border-radius: var(--robby-radius-lg);
  padding: var(--robby-space-6);
  border: var(--robby-border);
  box-shadow: var(--robby-shadow);
}
.robby-landing__card .robby-landing__heading {
  margin-top: 0;
}
.robby-landing__card--solution-with-btn {
  display: flex;
  flex-direction: column;
}
.robby-landing__card--solution-with-btn .robby-landing__card-actions {
  margin-top: auto;
  margin-bottom: 0;
  padding-top: var(--robby-space-4);
}
.robby-landing__card--solution-with-btn .robby-landing__card-actions .robby-landing__live-block-btn {
  display: inline-block;
}
/* Todo 005: Abschnitte abwechselnd 25 % und 30 % Deckkraft */
.robby-landing__section {
  padding: var(--robby-space-8, 2rem) 0;
  background: rgba(255, 255, 255, 0.25);
}
.robby-landing__section.robby-landing__section--alt {
  background: rgba(255, 255, 255, 0.3);
}
.robby-landing__section + .robby-landing__section {
  border-top: 1px solid var(--robby-gray);
}
/* Todo 005: Alle Überschriften (Header) orange */
.robby.robby-landing .robby-landing__heading {
  margin: 0 0 var(--robby-space-4, 1rem);
  font-size: var(--robby-font-size-2xl);
  font-weight: 700;
  color: var(--robby-primary) !important;
}
.robby-landing__subheading {
  margin: var(--robby-space-4, 1rem) 0 var(--robby-space-2, 0.5rem);
  font-size: var(--robby-font-size-xl);
  font-weight: 600;
  color: var(--robby-primary);
}
.robby.robby-landing .robby-landing__text {
  margin: 0 0 var(--robby-space-4, 1rem);
  font-size: var(--robby-font-size-base);
  line-height: var(--robby-line-height-relaxed);
  color: #1a1a1a !important;
}
.robby.robby-landing .robby-landing__testimonial-name,
.robby.robby-landing .robby-landing__testimonial-name {
  color: #0d0d0d !important;
}
.robby.robby-landing .robby-landing__testimonial,
.robby.robby-landing .robby-landing__testimonial {
  color: #1a1a1a !important;
}
/* Todo 006: Live-Daten als 2er-Grid (4 Container) */
.robby-landing__live-data .robby-landing__heading {
  margin-bottom: var(--robby-space-6);
}
.robby-landing__live-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--robby-space-6);
  align-items: start;
}
@media (max-width: 640px) {
  .robby-landing__live-grid {
    grid-template-columns: 1fr;
  }
}
.robby-landing__live-block {
  background: var(--robby-bg);
  border-radius: var(--robby-radius-lg);
  padding: var(--robby-space-4);
  border: var(--robby-border);
  box-shadow: var(--robby-shadow);
}
.robby-landing__live-block-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--robby-space-3);
  margin-bottom: var(--robby-space-3);
}
.robby-landing__live-block-title {
  margin: 0;
  min-width: 0;
}
.robby-landing__live-block-actions {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  gap: var(--robby-space-2);
}
.robby.robby-landing .robby-landing__live-block-title {
  margin: 0;
  font-size: var(--robby-font-size-lg);
  font-weight: 700;
  color: var(--robby-primary) !important;
}
.robby-landing__live-block-link {
  flex-shrink: 0;
  font-size: var(--robby-font-size-sm);
  color: var(--robby-primary);
  text-decoration: none;
  white-space: nowrap;
}
.robby-landing__live-block-link:hover {
  text-decoration: underline;
}
.robby-landing__live-block-btn {
  flex-shrink: 0;
  display: inline-block;
  min-height: 28px;
  padding: 4px 12px;
  font-size: var(--robby-font-size-sm);
  font-weight: 600;
  line-height: 1.25;
  color: #fff !important;
  text-decoration: none;
  white-space: nowrap;
  background: var(--robby-primary);
  border: 1px solid var(--robby-primary-dark);
  border-radius: var(--robby-radius);
  box-sizing: border-box;
  text-align: center;
}
.robby-landing__live-block-btn:hover {
  background: var(--robby-primary-dark);
  color: #fff !important;
  text-decoration: none;
}
.robby-landing__live-block-btn--deutschland {
  background: #c00 !important;
  border-color: #a00;
}
.robby-landing__live-block-btn--deutschland:hover {
  background: #a00 !important;
}
.robby-landing__live-block-btn--deutschland[aria-pressed="true"] {
  background: #a00 !important;
  border-color: #800;
}
.robby-landing__live-block-btn--follow {
  background: #c00 !important;
  border-color: #a00;
}
.robby-landing__live-block-btn--follow:hover {
  background: #a00 !important;
}
.robby-landing__live-data .robby-cards {
  display: flex;
  flex-direction: column;
  gap: var(--robby-space-2);
}
.robby-landing__live-empty {
  margin: 0;
  font-size: var(--robby-font-size-sm);
  color: #333333;
}
/* Screenshots: 3 Spalten im 800px-Container, Karten max 280px, zentriert */
.robby-landing .robby-landing__screenshots-section .robby-landing__screenshots-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: var(--robby-space-6);
  align-items: start;
  justify-items: center;
  width: 100%;
}
@media (max-width: 768px) {
  .robby-landing .robby-landing__screenshots-section .robby-landing__screenshots-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--robby-space-4);
  }
}
@media (max-width: 500px) {
  .robby-landing .robby-landing__screenshots-section .robby-landing__screenshots-grid {
    grid-template-columns: 1fr;
    gap: var(--robby-space-4);
  }
}
.robby-landing .robby-landing__screenshots-section .robby-landing__screenshot-card {
  display: flex;
  flex-direction: column;
  background: var(--robby-bg);
  border-radius: var(--robby-radius-lg);
  overflow: hidden;
  border: var(--robby-border);
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.14), 0 4px 12px rgba(0, 0, 0, 0.08);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  width: 100%;
  min-width: 0;
  max-width: 280px !important;
  justify-self: center;
}
.robby-landing .robby-landing__screenshots-section .robby-landing__screenshot-card img {
  max-width: 100% !important;
}
.robby-landing__screenshot-card:hover,
.robby-landing .robby-landing__screenshots-section .robby-landing__screenshot-card:hover {
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.18), 0 6px 16px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}
.robby-landing__screenshot-card img,
.robby-landing .robby-landing__screenshots-section .robby-landing__screenshot-card img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  min-height: 0;
  border-radius: 0;
  box-shadow: none;
}
.robby.robby-landing .robby-landing__screenshot-caption {
  margin: 0;
  padding: var(--robby-space-3);
  font-size: var(--robby-font-size-sm);
  color: #1a1a1a !important;
  text-align: center;
  background: var(--robby-bg);
  flex-shrink: 0;
}
.robby-landing__flag-wrap {
  display: inline-flex;
  vertical-align: middle;
}
.robby-landing__flag {
  border-radius: 2px;
  object-fit: cover;
}
.robby-landing__screenshot {
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 0;
  box-shadow: none;
  object-fit: cover;
}
.robby-landing__testimonials-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
  gap: var(--robby-space-4);
  margin-top: var(--robby-space-4);
}
.robby-landing__testimonial {
  margin: 0;
  padding: var(--robby-space-4);
  font-size: var(--robby-font-size-sm);
  line-height: var(--robby-line-height-relaxed);
  color: var(--robby-text);
  background: var(--robby-bg-alt);
  border-radius: var(--robby-radius);
  border: var(--robby-border);
}
.robby-landing__testimonial-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  margin-right: var(--robby-space-3);
  float: left;
}
.robby-landing__testimonial-avatar--placeholder {
  display: inline-block;
  background: var(--robby-gray);
  vertical-align: top;
}
.robby-landing__testimonial-name {
  font-weight: 600;
  color: var(--robby-primary-dark);
  margin-bottom: var(--robby-space-1);
}
.robby-landing__testimonial blockquote {
  margin: 0;
  font-style: italic;
}
.robby-landing__actions {
  margin: var(--robby-space-4) 0 0;
}
.robby-landing__actions .robby-btn {
  min-height: var(--robby-touch-min);
  padding: 0.75rem 1.5rem;
  font-size: var(--robby-font-size-lg);
}
.robby-landing__store-badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--robby-space-4);
  align-items: stretch;
  justify-content: center;
  margin-top: var(--robby-space-4);
}
.robby-landing__store-link {
  display: inline-flex;
  align-items: center;
}
/* Einheitliche Höhe für beide Store-Badges (Todo 002) */
.robby-landing__badge {
  display: block;
  height: 50px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
  object-position: center;
}
@media (min-width: 540px) {
  .robby-landing__badge {
    height: 52px;
    max-width: 206px;
  }
}
.robby-landing__legal {
  margin: var(--robby-space-6) 0 0;
  font-size: var(--robby-font-size-xs);
  color: #333333;
  max-width: 36rem;
}
/* Todo 027: Disclaimer-Container (keine Verbindung zu FIFA/Formula One) */
.robby-landing__disclaimer {
  padding-top: var(--robby-space-4);
  padding-bottom: var(--robby-space-6);
}
.robby-landing__disclaimer-text,
.robby-landing__disclaimer-meta {
  margin: 0 0 0.25rem;
  font-size: var(--robby-font-size-xs);
  color: #555555;
  max-width: 42rem;
}
.robby-landing__disclaimer-meta {
  font-style: italic;
}
