/* aicoyo-theme.css (aicoyo-design-v1) - ERZEUGT von /opt/marketing-agents/aicoyo_design/bauen.py, nicht von Hand aendern.
   Teil 1: aus spn_edition/overlay/static/css/spn-theme.css (nur Aussehen, ohne SPN-Zuschnitt; Klasse html.aicoyo-design).
   Teil 2: aicoyo-zusatz.css (bestehende Seitenleiste mit Gruppen, Marke, Reste des vollen Funktionsumfangs).
   Aus SPN entfernt: 5 Ausblendungen, 181 SPN-eigene Regeln, 1 Einzelselektoren. */
/* spn-theme.css (spn-design-v1, 01.10.2026) - Aussehen aicoyo fuer die SPN-Edition.
   Konzept: docs/SPN_Designkonzept_2026-10-01 (Abschnitt 3). Wird als LETZTES Stylesheet geladen.
   Grundsatz: nur Werte (Tokens) + Formen. Fest eingetragene Altfarben stellt der Build-Schritt
   spn_oberflaeche.design() auf diese Tokens um (spn_manifest.FARBEN).
   Alle Regeln haengen an html.aicoyo-design, damit sie die Bestandsregeln (.v2-layout ... !important)
   ueber die Spezifitaet schlagen, ohne die Bestandsdateien anzufassen. */
/* ------------------------------------------------------------------ 1. Tokens */
html.aicoyo-design {
  color-scheme: light;
  --spn-bg: #f3f6f6; --spn-surface: #ffffff; --spn-surface-2: #f8fafa; --spn-surface-3: #eef3f3;
  --spn-line: #dde6e5; --spn-line-strong: #c6d3d2;
  --spn-ink: #0d1f26; --spn-ink-2: #44575d; --spn-ink-3: #5d6f74;
  --spn-primary: #145b7a; --spn-primary-hover: #0f4a64; --spn-on-primary: #ffffff;
  --spn-primary-soft: #e4f0f3; --spn-accent: #a7f3d0; --spn-accent-soft: #e4f6ee; --spn-focus: #2a8fb8;
  --spn-side-bg: #0a1622; --spn-side-ink: #9fb6b3; --spn-side-ink-hi: #e9f4f1;
  --spn-side-active: rgba(167,243,208,.10); --spn-side-line: rgba(167,243,208,.12);
  --spn-s1: #1f7fa8; --spn-s2: #e0702f; --spn-s3: #7a5cd6; --spn-s4: #1a9e72; --spn-neutral: #c9d3d3;
  --spn-good: #0ca30c; --spn-warning: #fab219; --spn-serious: #ec835a; --spn-critical: #d03b3b;
  --spn-warning-ink: #8a5a00; --spn-serious-ink: #a8491f; --spn-critical-ink: #b42323; --spn-good-ink: #0b7a0b;
  --spn-r-card: 10px; --spn-r-ctl: 8px; --spn-r-chip: 6px;
  --spn-side-w: 212px;   /* spn-feinschliff-v1: vorher 250 px (Michael: 'etwas schmaler') */
  --spn-font: 'IBM Plex Sans', 'Segoe UI', system-ui, sans-serif;
  --spn-mono: 'IBM Plex Mono', ui-monospace, monospace;
  --spn-brand: 'Righteous', 'IBM Plex Sans', sans-serif;

  /* Bootstrap 5.3 */
  --bs-body-font-family: var(--spn-font);
  --bs-font-sans-serif: var(--spn-font);
  --bs-font-monospace: var(--spn-mono);
  --bs-body-bg: var(--spn-bg); --bs-body-bg-rgb: 243, 246, 246;
  --bs-body-color: var(--spn-ink); --bs-body-color-rgb: 13, 31, 38;
  --bs-emphasis-color: var(--spn-ink);
  --bs-secondary-color: var(--spn-ink-3);
  --bs-border-color: var(--spn-line); --bs-border-color-translucent: rgba(13, 31, 38, .10);
  --bs-border-radius: var(--spn-r-ctl); --bs-border-radius-sm: 6px; --bs-border-radius-lg: var(--spn-r-card);
  --bs-primary: #145b7a; --bs-primary-rgb: 20, 91, 122;
  --bs-primary-text-emphasis: #0f4a64; --bs-primary-bg-subtle: #e4f0f3; --bs-primary-border-subtle: #b7d3dd;
  --bs-link-color: #145b7a; --bs-link-color-rgb: 20, 91, 122;
  --bs-link-hover-color: #0f4a64; --bs-link-hover-color-rgb: 15, 74, 100;
  --bs-focus-ring-color: rgba(42, 143, 184, .35);
  --bs-heading-color: var(--spn-ink);
}
html.aicoyo-design[data-bs-theme="dark"] {
  color-scheme: dark;
  --spn-bg: #060f1a; --spn-surface: #0f2130; --spn-surface-2: #0b1a27; --spn-surface-3: #132a3b;
  --spn-line: rgba(167,243,208,.12); --spn-line-strong: rgba(167,243,208,.22);
  --spn-ink: #e9f4f1; --spn-ink-2: #a9bfbc; --spn-ink-3: #86a09c;
  --spn-primary: #a7f3d0; --spn-primary-hover: #c4f7df; --spn-on-primary: #06231f;
  --spn-primary-soft: rgba(167,243,208,.10); --spn-accent-soft: rgba(167,243,208,.10); --spn-focus: #a7f3d0;
  --spn-side-bg: #060f1a; --spn-side-active: rgba(167,243,208,.08);
  --spn-s1: #3592c0; --spn-s2: #d9692c; --spn-s3: #8f78e6; --spn-s4: #22a077; --spn-neutral: #3a4f5a;
  --spn-warning-ink: #fab219; --spn-serious-ink: #ec835a; --spn-critical-ink: #f08080; --spn-good-ink: #4cc94c;

  --bs-body-bg: var(--spn-bg); --bs-body-bg-rgb: 6, 15, 26;
  --bs-body-color: var(--spn-ink); --bs-body-color-rgb: 233, 244, 241;
  --bs-emphasis-color: var(--spn-ink);
  --bs-secondary-color: var(--spn-ink-3);
  --bs-secondary-bg: var(--spn-surface-3); --bs-tertiary-bg: var(--spn-surface-2);
  --bs-border-color: var(--spn-line); --bs-border-color-translucent: rgba(167, 243, 208, .12);
  --bs-primary: #a7f3d0; --bs-primary-rgb: 167, 243, 208;
  --bs-link-color: #a7f3d0; --bs-link-color-rgb: 167, 243, 208;
  --bs-link-hover-color: #c4f7df; --bs-link-hover-color-rgb: 196, 247, 223;
  --bs-heading-color: var(--spn-ink);
  /* Dunkelmodus-Bestand (css/darkmode.css) auf dieselben Werte */
  --dm-grund: var(--spn-bg); --dm-leiste: var(--spn-side-bg); --dm-karte: var(--spn-surface);
  --dm-karte-hoch: var(--spn-surface-3); --dm-rand: var(--spn-line-strong);
  --dm-text: var(--spn-ink); --dm-text-2: var(--spn-ink-2); --dm-text-3: var(--spn-ink-3); --dm-link: var(--spn-primary);
}
/* Bestandsvariablen der V2-Oberflaeche auf die Tokens (hell + dunkel, gleiche Namen) */
html.aicoyo-design body .v2-layout,
html.aicoyo-design[data-bs-theme="dark"] body .v2-layout,
html.aicoyo-design[data-bs-theme="dark"]:not(.physio-edition) body .v2-layout {
  --v2-primary: var(--spn-primary);
  --v2-primary-light: var(--spn-primary);        /* Verlaeufe primary->light werden flach */
  --v2-surface: var(--spn-bg);
  --v2-surface-low: var(--spn-surface-2);
  --v2-surface-high: var(--spn-surface-3);
  --v2-surface-card: var(--spn-surface);
  --v2-text: var(--spn-ink);
  --v2-text-secondary: var(--spn-ink-2);
  --v2-text-muted: var(--spn-ink-3);
  --v2-success: var(--spn-good-ink);
  --v2-danger: var(--spn-critical-ink);         /* als Text auf hellem Grund 4,5:1 (#d03b3b nur 4,4) */
  --v2-outline: var(--spn-line);
  --v2-radius: var(--spn-r-card);
  --v2-shadow: none;
  background: var(--spn-bg) !important;
}
/* ------------------------------------------------------------------ 2. Grundlage */
html.aicoyo-design body { font-family: var(--spn-font); background: var(--spn-bg); color: var(--spn-ink);
  -webkit-font-smoothing: antialiased; font-size: 14px; }
html.aicoyo-design body .v2-layout,
html.aicoyo-design body .v2-layout h1,
html.aicoyo-design body .v2-layout h2,
html.aicoyo-design body .v2-layout h3,
html.aicoyo-design body .v2-layout h4,
html.aicoyo-design body .v2-layout h5,
html.aicoyo-design body .v2-layout h6,
html.aicoyo-design body .v2-layout .card-header,
html.aicoyo-design body .v2-layout .card-title,
html.aicoyo-design body .v2-layout .modal-title,
html.aicoyo-design body .modal,
html.aicoyo-design body .modal h5,
html.aicoyo-design body .login-screen2,
html.aicoyo-design body .login-screen2 h1,
html.aicoyo-design body .login-screen2 h2 {
  font-family: var(--spn-font) !important; letter-spacing: -.005em;
}
html.aicoyo-design body .v2-layout h1,
html.aicoyo-design body .v2-layout .h1 { font-size: 22px !important; font-weight: 600 !important; }
html.aicoyo-design body .v2-layout h2,
html.aicoyo-design body .v2-layout .h2 { font-size: 20px !important; font-weight: 600 !important; }
html.aicoyo-design body .v2-layout h3,
html.aicoyo-design body .v2-layout .h3 { font-size: 17px !important; font-weight: 600 !important; }
html.aicoyo-design body .v2-layout h4,
html.aicoyo-design body .v2-layout h5 { font-weight: 600 !important; }
html.aicoyo-design code,
html.aicoyo-design kbd,
html.aicoyo-design pre,
html.aicoyo-design .font-monospace { font-family: var(--spn-mono) !important; }
html.aicoyo-design a { color: var(--spn-primary); }
html.aicoyo-design code { color: var(--spn-ink-2); }
/* spn-feinschliff-v1: Bootstrap-Magenta raus (IDs, Adressen) */
html.aicoyo-design ::selection { background: rgba(42, 143, 184, .25); }
html.aicoyo-design .text-primary { color: var(--spn-primary) !important; }
html.aicoyo-design .bg-primary { background-color: var(--spn-primary) !important; color: var(--spn-on-primary) !important; }
html.aicoyo-design .border-primary { border-color: var(--spn-primary) !important; }
html.aicoyo-design .text-muted,
html.aicoyo-design .text-secondary { color: var(--spn-ink-3) !important; }
/* ------------------------------------------------------------------ 3. Huelle: Seitenleiste */
/* Hauptflaeche beginnt an der Leiste (Bestand index_v2.html setzt fest 250px !important) - steht VOR dem Handy-Block */
html.aicoyo-design body .v2-layout .v2-sidebar-bottom { border-top: 1px solid var(--spn-side-line) !important; padding: 10px 0 0 !important; margin-top: 8px; background: transparent !important; }
html.aicoyo-design body .v2-layout .v2-user-info { padding: 4px 8px 8px !important; gap: 10px; }
html.aicoyo-design body .v2-layout .v2-user-avatar { background: #145b7a !important; color: #e9f4f1 !important; width: 30px !important; height: 30px !important;
  border-radius: 50% !important; font-size: 12px !important; font-weight: 600 !important; }
html.aicoyo-design body .v2-layout .v2-user-name { color: var(--spn-side-ink-hi) !important; font-weight: 500 !important; }
html.aicoyo-design body .v2-layout .v2-user-email { color: var(--spn-side-ink) !important; }
html.aicoyo-design body .v2-layout .v2-logout-btn { color: var(--spn-side-ink) !important; background: transparent !important; border: 0 !important;
  border-radius: var(--spn-r-ctl) !important; font-size: 13.5px !important; padding: 8px 10px !important; gap: 11px; }
html.aicoyo-design body .v2-layout .v2-logout-btn:hover { background: rgba(255,255,255,.05) !important; color: var(--spn-side-ink-hi) !important; }
html.aicoyo-design body .v2-layout .v2-logout-btn i { width: 17px; text-align: center; }
html.aicoyo-design body .v2-layout .v2-dm-pille { background: rgba(255,255,255,.18) !important; }
html.aicoyo-design body .v2-layout .v2-darkmode-btn.ist-an .v2-dm-pille { background: var(--spn-accent) !important; }
/* Hauptflaeche */
/* Reiter fuer Seitengruppen (Telefonie, Team & Rechte) - spnShell.js */
/* ------------------------------------------------------------------ 4. Bausteine (Bootstrap + Bestand) */
/* Karten: flach, Linie statt Schatten */
html.aicoyo-design body .v2-layout .card,
html.aicoyo-design body .v2-layout .dv2-panel,
html.aicoyo-design body .modal-content {
  background: var(--spn-surface) !important; border: 1px solid var(--spn-line) !important;
  border-radius: var(--spn-r-card) !important; box-shadow: none !important;
}
html.aicoyo-design body .v2-layout .card:hover { box-shadow: none !important; transform: none !important; }
html.aicoyo-design body .v2-layout .card-header { background: transparent !important; border-bottom: 1px solid var(--spn-line) !important;
  font-weight: 600 !important; font-size: 14px !important; padding: 14px 18px !important; color: var(--spn-ink) !important; }
html.aicoyo-design body .v2-layout .card-body { background: transparent !important; }
/* Knoepfe: Petrol, flach, 8 px - keine Pillen, keine Verlaeufe, kein Anheben */
html.aicoyo-design body .btn { border-radius: var(--spn-r-ctl) !important; font-weight: 500 !important; box-shadow: none !important;
  transform: none !important; background-image: none !important; font-family: var(--spn-font) !important; }
html.aicoyo-design body .btn-primary,
html.aicoyo-design body .v2-layout .btn-primary,
html.aicoyo-design body .v2-layout #loadMoreSummariesBtn,
html.aicoyo-design body .v2-layout #filterButton {
  background: var(--spn-primary) !important; border: 1px solid var(--spn-primary) !important; color: var(--spn-on-primary) !important;
  border-radius: var(--spn-r-ctl) !important; box-shadow: none !important;
}
html.aicoyo-design body .btn-primary:hover,
html.aicoyo-design body .v2-layout .btn-primary:hover,
html.aicoyo-design body .btn-primary:focus,
html.aicoyo-design body .v2-layout .btn-primary:active {
  background: var(--spn-primary-hover) !important; border-color: var(--spn-primary-hover) !important; color: var(--spn-on-primary) !important;
  box-shadow: none !important; transform: none !important;
}
html.aicoyo-design body .btn-outline-primary,
html.aicoyo-design body .v2-layout .btn-outline-primary {
  background: var(--spn-surface) !important; border: 1px solid var(--spn-line-strong) !important; color: var(--spn-ink) !important;
  border-radius: var(--spn-r-ctl) !important;
}
html.aicoyo-design body .btn-outline-primary:hover,
html.aicoyo-design body .v2-layout .btn-outline-primary:hover {
  background: var(--spn-primary-soft) !important; border-color: var(--spn-primary) !important; color: var(--spn-ink) !important;
}
html.aicoyo-design body .btn-secondary,
html.aicoyo-design body .btn-light,
html.aicoyo-design body .btn-outline-secondary,
html.aicoyo-design body .btn-outline-dark,
html.aicoyo-design body .btn-dark,
html.aicoyo-design body .btn-outline-info,
html.aicoyo-design body .btn-info {
  background: var(--spn-surface) !important; border: 1px solid var(--spn-line-strong) !important; color: var(--spn-ink) !important;
}
html.aicoyo-design body .btn-secondary:hover,
html.aicoyo-design body .btn-light:hover,
html.aicoyo-design body .btn-outline-secondary:hover,
html.aicoyo-design body .btn-outline-dark:hover,
html.aicoyo-design body .btn-dark:hover,
html.aicoyo-design body .btn-outline-info:hover,
html.aicoyo-design body .btn-info:hover {
  background: var(--spn-surface-3) !important; color: var(--spn-ink) !important;
}
/* .btn-success / .btn-warning / .btn-danger ausserhalb von Dialogen: Abschnitt 9 (spn-feinschliff-v1) */
html.aicoyo-design body .modal .btn-danger { background: var(--spn-critical) !important; border-color: var(--spn-critical) !important; color: #fff !important; }
html.aicoyo-design body .btn-outline-danger { background: var(--spn-surface) !important; border: 1px solid var(--spn-line-strong) !important; color: var(--spn-critical-ink) !important; }
html.aicoyo-design body .btn-outline-danger:hover { background: rgba(208,59,59,.08) !important; border-color: var(--spn-critical) !important; }
html.aicoyo-design body .btn-link { color: var(--spn-primary) !important; background: transparent !important; border: 0 !important; }
html.aicoyo-design body .btn:focus-visible,
html.aicoyo-design body .form-control:focus,
html.aicoyo-design body .form-select:focus,
html.aicoyo-design body .form-check-input:focus {
  outline: 2px solid var(--spn-focus) !important; outline-offset: 1px; box-shadow: none !important; border-color: var(--spn-focus) !important;
}
html.aicoyo-design body .v2-layout .v2-quick-action { border-radius: var(--spn-r-ctl) !important; background: var(--spn-surface) !important;
  border: 1px solid var(--spn-line-strong) !important; color: var(--spn-ink) !important; box-shadow: none !important; }
/* Formulare */
html.aicoyo-design body .form-control,
html.aicoyo-design body .form-select,
html.aicoyo-design body .input-group-text {
  border-radius: var(--spn-r-ctl) !important; border: 1px solid var(--spn-line-strong) !important; font-size: 14px;   /* Bestand index_v2: border none (graue Felder) -> auf weisser Karte unsichtbar */
  background-color: var(--spn-surface) !important; color: var(--spn-ink) !important; box-shadow: none !important;
}
html.aicoyo-design body .input-group > :not(:first-child) { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }
html.aicoyo-design body .input-group > :not(:last-child):not(.dropdown-menu) { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
html.aicoyo-design body .form-control::placeholder { color: var(--spn-ink-3); }
html.aicoyo-design body .form-label,
html.aicoyo-design body label { color: var(--spn-ink-2); }
html.aicoyo-design body .form-check-input:checked { background-color: var(--spn-primary) !important; border-color: var(--spn-primary) !important; }
html.aicoyo-design[data-bs-theme="dark"] body .form-check-input:checked {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%2306231f' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e") !important;
}
html.aicoyo-design[data-bs-theme="dark"] body .form-switch .form-check-input:checked {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2306231f'/%3e%3c/svg%3e") !important;
}
/* Tabellen: dicht, Linie statt Zebra */
html.aicoyo-design body .v2-layout .table { --bs-table-bg: transparent; --bs-table-striped-bg: transparent;
  --bs-table-hover-bg: var(--spn-surface-2); color: var(--spn-ink) !important; font-size: 13px; background: transparent !important; }
html.aicoyo-design body .v2-layout .table > thead > tr > th,
html.aicoyo-design body .v2-layout .table thead th {
  background: transparent !important; color: var(--spn-ink-3) !important; font-weight: 500 !important; font-size: 12px !important;
  text-transform: none !important; letter-spacing: 0 !important; border-bottom: 1px solid var(--spn-line) !important; padding: 8px 10px !important;
}
html.aicoyo-design body .v2-layout .table > tbody > tr > td { border-bottom: 1px solid var(--spn-line) !important; padding: 9px 10px !important;
  vertical-align: middle; background: transparent !important; color: var(--spn-ink); }
html.aicoyo-design body .v2-layout .table tbody tr:hover > td { background: var(--spn-surface-2) !important; }
/* Schilder, Reiter, Klappmenues, Dialoge */
html.aicoyo-design body .badge { border-radius: var(--spn-r-chip) !important; font-weight: 500 !important; }
html.aicoyo-design body .badge.bg-primary { background: var(--spn-primary-soft) !important; color: var(--spn-ink) !important; }
html.aicoyo-design body .v2-layout .nav-tabs { border-bottom: 1px solid var(--spn-line) !important; }
html.aicoyo-design body .v2-layout .nav-tabs .nav-link { border: 0 !important; border-bottom: 2px solid transparent !important; border-radius: 0 !important;
  color: var(--spn-ink-2) !important; background: transparent !important; font-weight: 500; }
html.aicoyo-design body .v2-layout .nav-tabs .nav-link.active { color: var(--spn-ink) !important; border-bottom-color: var(--spn-primary) !important; }
html.aicoyo-design body .v2-layout .nav-pills .nav-link { border-radius: var(--spn-r-ctl) !important; color: var(--spn-ink-2) !important; background: transparent !important; }
html.aicoyo-design body .v2-layout .nav-pills .nav-link.active { background: var(--spn-primary-soft) !important; color: var(--spn-ink) !important; }
html.aicoyo-design body .dropdown-menu { border: 1px solid var(--spn-line) !important; border-radius: var(--spn-r-ctl) !important;
  box-shadow: 0 6px 24px rgba(13,31,38,.10) !important; background: var(--spn-surface) !important; }
html.aicoyo-design body .dropdown-item:active,
html.aicoyo-design body .dropdown-item.active { background: var(--spn-primary-soft) !important; color: var(--spn-ink) !important; }
html.aicoyo-design body .modal-header,
html.aicoyo-design body .modal-footer { border-color: var(--spn-line) !important; background: transparent !important; }
html.aicoyo-design body .modal-header { color: var(--spn-ink) !important; }
/* spn-feinschliff-v1: Bestand index_v2 'body:has(.v2-layout) .modal-title { color: white }' und '.modal .form-control { border: none }'
   sind ueber :has() spezifischer -> Titel weiss auf weiss, Felder ohne Rahmen. Gleiche Werte wie auf den Seiten. */
html.aicoyo-design body .modal .modal-title { color: var(--spn-ink) !important; }
html.aicoyo-design body .modal .modal-header .btn-close { filter: none !important; opacity: .6; }
html.aicoyo-design body .modal :is(.form-control, .form-select) { background: var(--spn-surface) !important; border: 1px solid var(--spn-line-strong) !important; }
html.aicoyo-design body .modal-header .btn-close { filter: none; }
html.aicoyo-design[data-bs-theme="dark"] body .modal-header .btn-close { filter: invert(1) grayscale(1) brightness(1.6); }
html.aicoyo-design body .alert { border-radius: var(--spn-r-ctl) !important; border: 1px solid var(--spn-line) !important; }
html.aicoyo-design body .alert-info,
html.aicoyo-design body .alert-primary { background: var(--spn-primary-soft) !important; color: var(--spn-ink) !important; }
html.aicoyo-design body .progress-bar { background-color: var(--spn-primary) !important; }
html.aicoyo-design body .spinner-border { color: var(--spn-primary) !important; }
html.aicoyo-design body .page-link { color: var(--spn-primary) !important; }
html.aicoyo-design body .page-item.active .page-link { background: var(--spn-primary) !important; border-color: var(--spn-primary) !important; color: var(--spn-on-primary) !important; }
html.aicoyo-design body #toast-container > div { border-radius: var(--spn-r-ctl) !important; box-shadow: 0 6px 24px rgba(13,31,38,.18) !important; opacity: 1 !important; }
/* Statusfarben als Text: dunklere Stufen (Konzept 3.5 - Warnfarben auf Weiss sind zu schwach) */
html.aicoyo-design .text-warning { color: var(--spn-warning-ink) !important; }
html.aicoyo-design .text-danger { color: var(--spn-critical-ink) !important; }
html.aicoyo-design .text-success { color: var(--spn-good-ink) !important; }
html.aicoyo-design .text-info { color: var(--spn-ink-2) !important; }
html.aicoyo-design body .badge.bg-warning { color: #2b1d00 !important; }
html.aicoyo-design body .badge.bg-info,
html.aicoyo-design body .badge.bg-success,
html.aicoyo-design body .badge.bg-secondary {
  background: var(--spn-primary-soft) !important; color: var(--spn-ink) !important; }
html.aicoyo-design body .alert-warning { background: rgba(250, 178, 25, .12) !important; color: var(--spn-warning-ink) !important; border-color: rgba(250, 178, 25, .45) !important; }
html.aicoyo-design body .alert-danger { background: rgba(208, 59, 59, .08) !important; color: var(--spn-critical-ink) !important; border-color: rgba(208, 59, 59, .35) !important; }
/* Kontakte: Aktionsknoepfe wie ueberall (Bestand: Pillen mit Verlauf, weisse Schrift), Initialen neutral statt Zufallsfarbe */
html.aicoyo-design body .v2-layout .contact-actions-container .btn {
  border-radius: var(--spn-r-ctl) !important; padding: 6px 14px !important; background: var(--spn-surface) !important;
  border: 1px solid var(--spn-line-strong) !important; color: var(--spn-ink) !important; }
html.aicoyo-design body .v2-layout .contact-actions-container .btn-primary {
  background: var(--spn-primary) !important; border-color: var(--spn-primary) !important; color: var(--spn-on-primary) !important; }
html.aicoyo-design .contact-avatar { background: var(--spn-primary-soft) !important; color: var(--spn-ink) !important; }
/* Seitenkoepfe des Bestands (…-header mit Verlauf und Schatten) */
html.aicoyo-design body .v2-layout #mainContent [class$="-header"]:not(.card-header):not(.modal-header) {
  background: transparent !important; box-shadow: none !important; border: 0 !important; padding-left: 0 !important; padding-right: 0 !important;
}
/* ------------------------------------------------------------------ 5. eigene Ansichten (Leitstand, Meldungen) */
/* spn-loeschen-v1: Loeschen - Rotton nur als Schrift/Linie, voll rot erst beim endgueltigen Schritt */
/* Status: Farbe nie allein - immer Symbol + Wort */
/* Raus-Liste (Konzept 5.3/5.4): Elemente bleiben im DOM (der Bestandscode liest sie), sind aber unsichtbar */
/* spn-teamflow-v1 (05.10.2026): .agent-flow-visualization (Team-Flow der Assistenten, rein lokal) wieder sichtbar -
   war faelschlich als Cloud-'KI-Team' ausgeblendet; der Team-Assistent (Cloud-KI, .team-optimizer-input) bleibt raus */
/* ------------------------------------------------------------------ 6. Anmeldung */
html.aicoyo-design body #loginScreen2.login-screen2 { background: var(--spn-surface) !important; padding: 0 !important; }
/* spn-login-v1: Hoehen/Abstaende/Schrift wachsen mit dem Fenster (dvh = sichtbare Hoehe auf dem Handy, vh als Rueckfall);
   Formularspalte nie schmaler als das Formular, sonst schneidet sie rechts ab (Tablet hochkant) */
html.aicoyo-design body #loginScreen2:not(.d-none):not([style*="display: none"]):not([style*="display:none"]) { display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(min(100%, 420px), 1fr); grid-template-rows: minmax(100vh, auto); grid-template-rows: minmax(100dvh, auto);
  align-items: stretch !important; justify-content: stretch !important; min-height: 100vh; min-height: 100dvh; }
html.aicoyo-design .spn-login-marke { background: radial-gradient(1000px 600px at 15% 110%, rgba(42,143,184,.38), transparent 60%),
  radial-gradient(700px 500px at 100% 0%, rgba(167,243,208,.16), transparent 60%), #060f1a;
  color: #e9f4f1; padding: clamp(20px, 6vh, 44px) clamp(22px, 4vw, 52px); display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
html.aicoyo-design .spn-login-marke img { width: clamp(120px, 12vw + 2vh, 180px); height: auto; }
html.aicoyo-design .spn-login-marke .claim { margin-top: auto; padding-top: clamp(14px, 4vh, 40px); font-family: var(--spn-brand);
  font-size: clamp(20px, 1.6vw + 2.2vh, 38px); line-height: 1.15; letter-spacing: .01em; max-width: 440px; overflow-wrap: break-word; }
html.aicoyo-design .spn-login-marke .claim span { background: linear-gradient(120deg, #a7f3d0 0%, #2a8fb8 60%); -webkit-background-clip: text; background-clip: text; color: transparent; }
html.aicoyo-design .spn-login-marke .unter { color: #9fb6b3; margin-top: clamp(8px, 1.6vh, 14px); max-width: 420px; font-size: clamp(13px, .4vw + 1vh, 15px); }
html.aicoyo-design .spn-login-marke .fuss { margin-top: clamp(16px, 4.5vh, 40px); font-size: 12px; color: #86a09c; display: flex; gap: 18px; flex-wrap: wrap; }
html.aicoyo-design body #loginScreen2 .login-container { display: grid; place-items: center; padding: clamp(20px, 5vh, 40px) clamp(20px, 4vw, 40px); background: var(--spn-surface) !important;
  max-width: none !important; width: auto !important; margin: 0 !important; min-width: 0; grid-template-columns: minmax(0, 1fr); }
html.aicoyo-design body #loginScreen2 .login-box { width: min(360px, 100%); max-width: 100%; background: transparent !important; box-shadow: none !important;
  border: 0 !important; padding: 0 !important; text-align: left !important; }
html.aicoyo-design body #loginScreen2 .login-box .login-logo { display: none !important; }
html.aicoyo-design body #loginScreen2 .spn-login-titel { font-size: 24px; font-weight: 600; margin: 0; color: var(--spn-ink); }
html.aicoyo-design body #loginScreen2 .spn-login-unter { color: var(--spn-ink-3); margin: 6px 0 22px; font-size: 14px; }
html.aicoyo-design body #loginScreen2 .form-label { font-size: 13px; font-weight: 500; color: var(--spn-ink); margin-bottom: 6px; }
html.aicoyo-design body #loginScreen2 .form-control { height: 42px; }
html.aicoyo-design body #loginScreen2 #togglePassword { border-color: var(--spn-line-strong) !important; background: var(--spn-surface) !important; color: var(--spn-ink-3) !important; }
html.aicoyo-design body #loginScreen2 #loginForm .btn-primary { height: 42px; font-size: 14px !important; margin-top: 8px; }
html.aicoyo-design body #loginScreen2 #resetPasswordLink { color: var(--spn-primary) !important; font-weight: 500; font-size: 13px; }
/* ------------------------------------------------------------------ 7. Dunkelmodus: Reste des Bestands */
html.aicoyo-design[data-bs-theme="dark"] body .v2-layout .table thead th { background: transparent !important; }
html.aicoyo-design[data-bs-theme="dark"] body .v2-layout .card,
html.aicoyo-design[data-bs-theme="dark"] body .v2-layout .card-body { background: var(--spn-surface) !important; background-image: none !important; }
html.aicoyo-design[data-bs-theme="dark"] body .btn-primary { background-color: var(--spn-primary) !important; border-color: var(--spn-primary) !important; color: var(--spn-on-primary) !important; }
html.aicoyo-design[data-bs-theme="dark"] body #loginScreen2 .login-container { background: var(--spn-surface) !important; }
/* ------------------------------------------------------------------ 8. Handy: Seitenleiste wird untere Leiste */
/* Anmeldung schmal/hochkant: Marke als flacher Kopfstreifen, Formular direkt darunter (nicht mittig im Rest verteilt) */
@media (max-width: 600px), (max-width: 900px) and (orientation: portrait) {
  html.aicoyo-design body #loginScreen2:not(.d-none):not([style*="display: none"]):not([style*="display:none"]) {
    grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; align-content: start !important; }
  html.aicoyo-design .spn-login-marke { padding: clamp(16px, 3vh, 26px) clamp(18px, 5vw, 32px); }
  html.aicoyo-design .spn-login-marke img { width: clamp(110px, 30vw, 150px); }
  html.aicoyo-design .spn-login-marke .claim { margin-top: 0; padding-top: clamp(10px, 2vh, 16px); font-size: clamp(17px, 4.6vw, 26px); max-width: none; }
  html.aicoyo-design .spn-login-marke .unter,
  html.aicoyo-design .spn-login-marke .fuss { display: none; }
  html.aicoyo-design body #loginScreen2 .login-container { padding: clamp(20px, 4vh, 36px) clamp(18px, 5vw, 32px); place-items: start center; }
}
/* Anmeldung niedrige Fenster (Laptop klein, Handy quer): Nebentexte weg, Formularabstaende enger */
@media (max-height: 560px) {
  html.aicoyo-design .spn-login-marke .fuss { display: none; }
  html.aicoyo-design body #loginScreen2 .spn-login-unter { margin-bottom: 14px; }
  html.aicoyo-design body #loginScreen2 #loginForm .mb-3 { margin-bottom: 10px !important; }
}
@media (max-height: 420px) {
  html.aicoyo-design .spn-login-marke .unter { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html.aicoyo-design * { transition: none !important; animation: none !important; }
}
/* ---- Stufe 3 Schadenmeldung (spn-schaden-v1) ---- */
/* Kennzeichen als Schild: Schrift Mono, Rahmen, links das blaue Euro-Feld als schmaler Streifen */
/* ------------------------------------------------------------------ 9. Feinschliff (spn-feinschliff-v1, Konzept Stufe 4) */
/* Agentenmaske: Bereiche, die auf dieser Maschine nicht funktionieren koennen (Beleg je Zeile). Pfade bewusst streng
   (> .card-body > .form-check > #feld), damit keine umgebende Karte mitverschwindet. Werte setzt _collectFormData fest. */
/* Kopf der Agentenmaske: eine Zeile, Speichern als einzige Hauptaktion rechts, Loeschen dezent */
html.aicoyo-design .d-flex:has(> div > #backToAgentsBtn) { gap: 16px; flex-wrap: wrap; align-items: center !important; }
html.aicoyo-design .d-flex:has(> div > #backToAgentsBtn) > h5 { font-size: 20px !important; font-weight: 600 !important; margin: 0; }
html.aicoyo-design .d-flex:has(> div > #backToAgentsBtn) > div { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; margin-left: auto; }
html.aicoyo-design .d-flex:has(> div > #backToAgentsBtn) > div > .btn { margin: 0 !important; }
html.aicoyo-design .d-flex:has(> div > #backToAgentsBtn) > div > .btn-danger { order: 8; }
html.aicoyo-design body .d-flex:has(> div > #backToAgentsBtn) > div > #cloneAgentBtn {
  background: var(--spn-surface) !important; border: 1px solid var(--spn-line-strong) !important; color: var(--spn-ink) !important; }
html.aicoyo-design .d-flex:has(> div > #backToAgentsBtn) > div > #saveAgentBtn,
html.aicoyo-design .d-flex:has(> div > #backToAgentsBtn) > div > #createAgentBtn { order: 9; }
/* Knopffarben aus dem Bestand: Gruen = Hauptaktion, Gold/Hellblau = Nebenaktion, Rot nur als Linie (ausser im Dialog) */
/* .v2-layout im Selektor: darkmode.css setzt 'html[data-bs-theme=dark] .v2-layout .btn-warning' (gold) / '.btn-success' (weisse Schrift) */
html.aicoyo-design body :is(.v2-layout, .modal) .btn-success,
html.aicoyo-design body .btn-success { background: var(--spn-primary) !important; border-color: var(--spn-primary) !important; color: var(--spn-on-primary) !important; }
html.aicoyo-design body :is(.v2-layout, .modal) .btn-success:hover,
html.aicoyo-design body .btn-success:hover { background: var(--spn-primary-hover) !important; border-color: var(--spn-primary-hover) !important; }
html.aicoyo-design body :is(.v2-layout, .modal) :is(.btn-warning, .btn-info, .btn-secondary, .btn-light, .btn-outline-warning, .btn-outline-info, .btn-outline-success),
html.aicoyo-design body :is(.btn-warning, .btn-info, .btn-secondary, .btn-light, .btn-outline-warning, .btn-outline-info, .btn-outline-success) {
  background: var(--spn-surface) !important; border: 1px solid var(--spn-line-strong) !important; color: var(--spn-ink) !important; }
html.aicoyo-design body :is(.v2-layout, .modal) :is(.btn-warning, .btn-info, .btn-secondary, .btn-light, .btn-outline-warning, .btn-outline-info, .btn-outline-success):hover,
html.aicoyo-design body :is(.btn-warning, .btn-info, .btn-secondary, .btn-light, .btn-outline-warning, .btn-outline-info, .btn-outline-success):hover {
  background: var(--spn-surface-3) !important; }
html.aicoyo-design body .v2-layout .btn-danger:not(.modal .btn-danger),
html.aicoyo-design body .btn-danger:not(.modal .btn-danger) { background: var(--spn-surface) !important; border: 1px solid rgba(208, 59, 59, .55) !important; color: var(--spn-critical-ink) !important; }
html.aicoyo-design body .btn-danger:not(.modal .btn-danger):hover { background: rgba(208, 59, 59, .08) !important; }
/* Bestand styles.css: .btn-secondary i / .btn-info i ... { color: rgba(255,255,255,.9) !important } -> Symbol in hellen Knoepfen weiss */
html.aicoyo-design body .btn i[class*="fa-"] { color: inherit !important; }
html.aicoyo-design .form-range { accent-color: var(--spn-primary); }
html.aicoyo-design .form-range::-webkit-slider-thumb { background: var(--spn-primary) !important; }
html.aicoyo-design .form-range::-moz-range-thumb { background: var(--spn-primary) !important; }
html.aicoyo-design .form-range::-webkit-slider-runnable-track { background: var(--spn-surface-3) !important; }
/* Mitarbeiter: Kennzahlen wie im Leitstand (Bestand: bunte Flaechen mit display-4) */
html.aicoyo-design .row:has(> div > .card #activeEmployeesCount) > div > .card {
  background: var(--spn-surface) !important; color: var(--spn-ink) !important; border: 1px solid var(--spn-line) !important; }
html.aicoyo-design .row:has(> div > .card #activeEmployeesCount) .card-title { font-size: 12.5px !important; font-weight: 500 !important; color: var(--spn-ink-3) !important; margin-bottom: 6px; }
html.aicoyo-design .row:has(> div > .card #activeEmployeesCount) .display-4 { font-size: 30px !important; font-weight: 600 !important; line-height: 1.1; margin: 0; color: var(--spn-ink) !important; font-variant-numeric: tabular-nums; }
/* Kontakte: Kennzeichen-Spalte */
/* Schnittstellen: ibi-Karte */
/* Font-Awesome-Reste auf Umrisssymbole (css/spn-symbole.css): Strichstaerke wirkt bei kleinen Groessen kraeftiger -
   dezenter Grauton fuer reine Schmucksymbole in Kartenkoepfen */
html.aicoyo-design .card-header > i[class*="fa-"],
html.aicoyo-design .card-header h5 > i[class*="fa-"] { color: var(--spn-ink-3); margin-right: 6px; }
/* Assistenten-Liste: auf dem Handy eine Karte je Zeile (Bestand: zwei schmale Spalten, Name brach mitten im Wort) */
@media (max-width: 760px) {
  html.aicoyo-design .row:has(> .col > .agent-card) > .col { flex: 0 0 100%; max-width: 100%; }
}

/* ================================================================== Teil 2: aicoyo-zusatz.css */
/* aicoyo-zusatz.css (aicoyo-design-v1) - Teil 2 von aicoyo-theme.css, wird von bauen.py angehaengt.
   SPN hat eine eigene flache Navigation (7 Punkte). Auf den Reseller-Domains bleibt die BESTEHENDE Leiste mit
   ihren Gruppen - sie bekommt hier nur das aicoyo-Aussehen: dunkles Petrol, Mint als Akzent, Pillen statt Balken. */

/* ---------------------------------------------------------------- Seitenleiste: Farben ueber die Bestandsvariablen */
/* Die Bestandsregeln der Leiste lesen --v2-text*, --v2-surface-high, --v2-outline, --v2-primary. Auf der Leiste
   selbst gesetzt, gelten sie nur dort - die Hauptflaeche behaelt die Werte aus Teil 1. */
html.aicoyo-design body div.v2-layout nav.v2-sidebar,
html.aicoyo-design body div#mainApp.v2-layout > nav#mainSidebar {
  --v2-text: var(--spn-side-ink-hi); --v2-text-secondary: var(--spn-side-ink); --v2-text-muted: #7f9895;
  --v2-surface-high: rgba(255,255,255,.05); --v2-surface-low: var(--spn-side-bg); --v2-surface-card: rgba(255,255,255,.04);
  --v2-outline: var(--spn-side-line); --v2-primary: var(--spn-accent); --v2-primary-light: var(--spn-accent);
  --bs-body-color: var(--spn-side-ink);
  background: var(--spn-side-bg) !important; color: var(--spn-side-ink) !important;
  border-right: 1px solid var(--spn-side-line) !important; box-shadow: none !important;
}
/* Marke: helles Logo (aicoyo) bzw. Reseller-Logo weiss - eingesetzt von aicoyoTheme.js; Original bleibt fuer logoService */
html.aicoyo-design body .v2-layout .v2-sidebar-logo { padding: 18px 20px 14px !important; }
html.aicoyo-design body .v2-layout .v2-sidebar-logo #sidebarLogo { display: none !important; }
html.aicoyo-design body .v2-layout .v2-sidebar-logo .ac-marke img { display: block; width: auto !important; max-width: 100%; height: auto;
  max-height: 34px; object-fit: contain; object-position: left center; }
html.aicoyo-design img.ac-logo-weiss { filter: brightness(0) invert(1); opacity: .94; }

/* Menuepunkte: Pillen mit Abstand zum Rand, aktiver Punkt mit Mint-Strich am Leistenrand (wie SPN) */
html.aicoyo-design body .v2-layout .v2-nav-scroll .nav-link:not(.v2-hidden),
html.aicoyo-design body .v2-layout .v2-nav-group .nav-link:not(.v2-hidden) {
  margin: 1px 10px !important; padding: 7px 10px !important; border-radius: var(--spn-r-ctl) !important;
  color: var(--spn-side-ink) !important; gap: 11px !important;
}
html.aicoyo-design body .v2-layout .v2-nav-scroll .nav-link:hover,
html.aicoyo-design body .v2-layout .v2-nav-group .nav-link:hover { background: rgba(255,255,255,.05) !important; color: var(--spn-side-ink-hi) !important; }
html.aicoyo-design body .v2-layout .v2-nav-scroll .nav-link.active,
html.aicoyo-design body .v2-layout .v2-nav-group .nav-link.active {
  background: var(--spn-side-active) !important; color: var(--spn-side-ink-hi) !important; font-weight: 500 !important;
}
html.aicoyo-design body .v2-layout .v2-nav-scroll .nav-link.active::before,
html.aicoyo-design body .v2-layout .v2-nav-group .nav-link.active::before {
  left: -10px !important; top: 8px !important; bottom: 8px !important; height: auto !important; transform: none !important;
  width: 3px !important; border-radius: 0 3px 3px 0 !important; background: var(--spn-accent) !important;
}
html.aicoyo-design body .v2-layout .v2-nav-scroll .nav-link i,
html.aicoyo-design body .v2-layout .v2-nav-group .nav-link i { font-size: 15px !important; opacity: .9; }
html.aicoyo-design body .v2-layout .v2-group-header { padding: 16px 20px 6px !important; color: #7f9895 !important; letter-spacing: .08em !important; }
html.aicoyo-design body .v2-layout .v2-group-header:hover { color: var(--spn-side-ink-hi) !important; }
html.aicoyo-design body .v2-layout .v2-chevron { color: #7f9895 !important; }
html.aicoyo-design body .v2-layout nav.v2-sidebar .v2-divider { background: var(--spn-side-line) !important; }
html.aicoyo-design body .v2-layout nav.v2-sidebar .badge.bg-danger { background: var(--spn-critical) !important; color: #fff !important; }

/* Hauptaktion der Leiste (Neuer Chat): Mint auf Petrol statt Verlaufspille */
html.aicoyo-design body .v2-layout .v2-new-chat-btn {
  background: var(--spn-accent) !important; color: #06231f !important; border-radius: var(--spn-r-ctl) !important;
  font-weight: 500 !important; box-shadow: none !important; padding: 9px 14px !important;
}
html.aicoyo-design body .v2-layout .v2-new-chat-btn:hover { background: #c4f7df !important; transform: none !important; }
html.aicoyo-design body .v2-layout .v2-new-chat-btn i { color: inherit !important; }

/* Tarifkarte in der Leiste (nur falls sichtbar) */
html.aicoyo-design body .v2-layout nav.v2-sidebar .v2-plan-card { background: rgba(255,255,255,.04) !important; border-color: var(--spn-side-line) !important; box-shadow: none !important; }
html.aicoyo-design body .v2-layout nav.v2-sidebar .v2-plan-card-btn.is-primary { background: var(--spn-accent) !important; color: #06231f !important; }

/* Unterer Bereich: Funktionswunsch/Hilfe wie die Knoepfe darunter (SPN Teil 1 gestaltet Konto, Dunkelmodus, Abmelden) */
html.aicoyo-design body .v2-layout .v2-sidebar-bottom .nav-link {
  display: flex !important; align-items: center; gap: 11px; padding: 8px 10px !important; margin: 0 !important;
  border-radius: var(--spn-r-ctl) !important; color: var(--spn-side-ink) !important; background: transparent !important; font-size: 13.5px !important;
}
html.aicoyo-design body .v2-layout .v2-sidebar-bottom .nav-link:hover { background: rgba(255,255,255,.05) !important; color: var(--spn-side-ink-hi) !important; }
html.aicoyo-design body .v2-layout .v2-sidebar-bottom .nav-link i { width: 17px; text-align: center; }
html.aicoyo-design body .v2-layout .v2-sidebar-bottom { padding: 10px 10px 12px !important; }

/* ---------------------------------------------------------------- Anmeldung: Reste des vollen Umfangs */
/* SPN zeigt nur E-Mail/Passwort. Hier gibt es zusaetzlich Passkey und Sprachwahl - im selben Aussehen. */
html.aicoyo-design body #loginScreen2 .btn-outline-primary,
html.aicoyo-design body #loginScreen2 #passkeyLoginBtn { color: var(--spn-ink) !important; }
html.aicoyo-design body #loginScreen2 .lang-btn, html.aicoyo-design body #loginScreen2 [class*="lang"] button {
  border-color: var(--spn-line-strong) !important; color: var(--spn-ink-2) !important; background: var(--spn-surface) !important; box-shadow: none !important; }
html.aicoyo-design body #loginScreen2 .lang-btn.active, html.aicoyo-design body #loginScreen2 [class*="lang"] button.active {
  background: var(--spn-primary) !important; color: var(--spn-on-primary) !important; border-color: var(--spn-primary) !important; }
html.aicoyo-design .spn-login-marke img.ac-logo { width: clamp(120px, 12vw + 2vh, 180px); height: auto; max-height: 64px; object-fit: contain; object-position: left center; }

/* ---------------------------------------------------------------- Gewaehlte Knoepfe (btn-check / .active) */
/* Bootstrap faerbt den gewaehlten Zustand ueber --bs-btn-active-* mit weisser Schrift; Teil 1 setzt nur den Ruhezustand.
   Im Dunkelmodus waere das weiss auf Mint (1,3:1) - gemessen an den Filtern der Gespraechsuebersicht. */
/* :is(.v2-layout, .modal) + #kanbanView: darkmode.css setzt 'html[data-bs-theme=dark] .v2-layout .btn-check:checked +
   .btn-outline-primary { color: #fff !important }' (0,5,1) bzw. mit #kanbanView - hier jeweils eine Stufe hoeher. */
html.aicoyo-design body :is(.v2-layout, .modal, .login-screen2) .btn-check:checked + .btn,
html.aicoyo-design body :is(.v2-layout, .modal) .btn-check:active + .btn,
html.aicoyo-design body .v2-layout #kanbanView .btn-check:checked + .btn,
html.aicoyo-design body .btn-check:checked + .btn, html.aicoyo-design body .btn-check:active + .btn,
html.aicoyo-design body :is(.v2-layout, .modal) .btn.active:not(.nav-link):not(.dropdown-item),
html.aicoyo-design body .btn.active:not(.nav-link):not(.dropdown-item), html.aicoyo-design body .btn:first-child:active {
  background: var(--spn-primary) !important; border-color: var(--spn-primary) !important; color: var(--spn-on-primary) !important; }
html.aicoyo-design body .btn-check:checked + .btn i, html.aicoyo-design body .btn.active i { color: inherit !important; }

/* Schilder mit festem Gelb als Flaeche (Bewertung 6/10 in der Gespraechsuebersicht): der Dunkelmodus-Bestand hellt deren
   Schrift auf (1,2:1 auf Gelb) - auf Gelb gehoert dunkle Schrift, hell wie dunkel. */
/* :not(#ac-z) hebt um eine ID-Stufe: darkmode.css hat 'html[data-bs-theme=dark] [style*="color:#212529"]:not(..):not(..)' (0,4,1)
   und hellt damit die bewusst dunkle Inline-Schrift auf (gemessen: 1,23:1 am Bewertungs-Badge). */
html.aicoyo-design body :is(.badge, .v2-layout span)[style*="ffc107"]:not(#ac-z), html.aicoyo-design body :is(.badge, .v2-layout span)[style*="f59e0b"]:not(#ac-z),
html.aicoyo-design body :is(.badge, .v2-layout span)[style*="fab219"]:not(#ac-z), html.aicoyo-design body .badge.bg-warning:not(#ac-z) { color: #2b1d00 !important; }

/* Kontrast Dunkelmodus (Pruefstand 06.10.): darkmode.css setzt weisse Schrift auf Hauptknoepfe bis Spezifitaet 0,4,1
   ('.cal-v2 .calendar-actions .btn-primary', FullCalendar aktiv) - im Dunklen ist die Hauptfarbe Mint (1,28:1). */
html.aicoyo-design[data-bs-theme="dark"] body :is(.btn-primary, .fc-button-primary.fc-button-active, .fc-button-primary:not(:disabled):active):not(#ac-z) {
  color: var(--spn-on-primary) !important; }
html.aicoyo-design[data-bs-theme="dark"] body :is(.btn-primary, .fc-button-primary.fc-button-active):not(#ac-z) i { color: inherit !important; }
/* Kanban-Kopf 'Diese Woche' u. a.: darkmode.css '.v2-layout .bg-warning' weiss auf Bernstein (2,65:1) */
html.aicoyo-design body .v2-layout .bg-warning:not(#ac-z), html.aicoyo-design body .modal .bg-warning:not(#ac-z) { color: #2b1d00 !important; }

/* aicoyo-design-v1b Rundgang: volle Signalflaechen (Abzeichen, Kennzahlkarten). aicoyoTheme.js schreibt feste Gruen/Rot/
   Gelb/Orange/Blau-Flaechen auf diese Paare um. Jedes Paar >= 4,5:1, hell wie dunkel. */
html.aicoyo-design {
  --ac-sig-ok: #0b7a0b; --ac-sig-ok-fg: #ffffff; --ac-sig-krit: #b42323; --ac-sig-krit-fg: #ffffff;
  --ac-sig-warn: #fab219; --ac-sig-warn-fg: #2b1d00; --ac-sig-orange: #a8481a; --ac-sig-orange-fg: #ffffff;
  --ac-sig-blau: var(--spn-primary); --ac-sig-blau-fg: var(--spn-on-primary); }
html.aicoyo-design[data-bs-theme="dark"] {
  --ac-sig-ok: #4cc94c; --ac-sig-ok-fg: #04210a; --ac-sig-krit: #f08080; --ac-sig-krit-fg: #2a0707;
  --ac-sig-orange: #e0702f; --ac-sig-orange-fg: #1f0d02; }

/* Bootstrap-Signalklassen mit text-white (Werbung/Automatisierung u. a.): dieselben Paare. Ueberschriften darin erben. */
html.aicoyo-design body :is(.bg-success, .bg-danger, .bg-info, .bg-primary).text-white:not(#ac-z) { color: var(--ac-sig-ok-fg) !important; }
html.aicoyo-design body .bg-success.text-white:not(#ac-z) { background: var(--ac-sig-ok) !important; color: var(--ac-sig-ok-fg) !important; }
html.aicoyo-design body .bg-danger.text-white:not(#ac-z) { background: var(--ac-sig-krit) !important; color: var(--ac-sig-krit-fg) !important; }
html.aicoyo-design body :is(.bg-info, .bg-primary).text-white:not(#ac-z) { background: var(--spn-primary) !important; color: var(--spn-on-primary) !important; }
html.aicoyo-design body .bg-warning.text-white:not(#ac-z) { background: var(--ac-sig-warn) !important; color: var(--ac-sig-warn-fg) !important; }
html.aicoyo-design body :is(.bg-success, .bg-danger, .bg-info, .bg-primary, .bg-warning).text-white:not(#ac-z) :is(h1, h2, h3, h4, h5, h6, small, span, p, div, i) { color: inherit !important; }
/* zartes Erfolgsschild (Zeiterfassung 'Abrechenbar' 4,26:1) */
html.aicoyo-design body .badge.bg-success-subtle:not(#ac-z) { background: rgba(12,163,12,.08) !important; color: var(--spn-good-ink) !important; }

/* Abo-Seite: Zusicherungen/Abrechnungswahl in Tailwind-Grau 4,3-4,45:1; Hauptknopf weiss auf weiss/Mint; Enterprise dunkel auf dunkel */
html.aicoyo-design body :is(.vo-pr-assure, .vo-pr-billing, .vo-pr-cycle):not(#ac-z), html.aicoyo-design body .vo-pr-assure span:not(#ac-z) { color: var(--spn-ink-2) !important; }
html.aicoyo-design body .vo-pr-cycle.active:not(#ac-z), html.aicoyo-design body .vo-pr-cycle[aria-pressed="true"]:not(#ac-z) { color: var(--spn-ink) !important; }
html.aicoyo-design body .vo-pr-cta:not(#ac-z), html.aicoyo-design body .vo-pr-card--featured .vo-pr-cta:not(#ac-z) {
  background: var(--spn-primary) !important; border-color: var(--spn-primary) !important; color: var(--spn-on-primary) !important; }
html.aicoyo-design body .vo-pr-ent-btn:not(#ac-z) { background: var(--spn-surface) !important; border: 1px solid var(--spn-line-strong) !important; color: var(--spn-ink) !important; }
/* Anmeldung: Sprachwahl DE/EN */
html.aicoyo-design body #loginScreen2 .btn-group .btn:not(#ac-z) { background: var(--spn-surface) !important; color: var(--spn-ink-2) !important; border-color: var(--spn-line-strong) !important; }
html.aicoyo-design body #loginScreen2 .btn-group .btn.btn-primary:not(#ac-z) { background: var(--spn-primary) !important; color: var(--spn-on-primary) !important; border-color: var(--spn-primary) !important; }

/* Dunkelmodus: Flaechen, die die App fest weiss/hellgrau traegt (Google-Kontakte, Werbekampagnen, Restaurant-Leitstand) */
html.aicoyo-design[data-bs-theme="dark"] body :is(.integration-card, .campaign-card, .stat-box, #rmc-shell, .rmc-shell, .rmc-panel, .rmc-card):not(#ac-z) {
  background: var(--spn-surface) !important; border-color: var(--spn-line) !important; color: var(--spn-ink) !important; }
html.aicoyo-design[data-bs-theme="dark"] body .campaign-card :is(table, th, td, tr):not(#ac-z) { background: transparent !important; color: var(--spn-ink-2) !important; border-color: var(--spn-line) !important; }
html.aicoyo-design body .rmc-cmd-k kbd:not(#ac-z) { background: var(--spn-surface-3) !important; color: var(--spn-ink-2) !important; border: 1px solid var(--spn-line-strong) !important; }
html.aicoyo-design[data-bs-theme="dark"] body .rmc-voice span:not(#ac-z) { color: var(--spn-ink) !important; }

/* Videoraeume: Markenetikett 'voiceOne' gehoert nicht auf die Reseller-Domain; Kennwerte im Dunkeln 10 % Mint = unlesbar */
html.aicoyo-design body .vr-card-brand.brand-voiceone { display: none !important; }
html.aicoyo-design body .vr-card-meta-value:not(#ac-z) { color: var(--spn-ink) !important; }

/* Pastellflaechen (aicoyoTheme.js color-mix): Anteil des Originaltons je Darstellung */
html.aicoyo-design { --ac-pastel: 100%; }
html.aicoyo-design[data-bs-theme="dark"] { --ac-pastel: 10%; }
