/* ══════════════════════════════════════════════════════════════════════════
   CONTAVOX — OpenSlides-Client im Corporate Design von PONTAVOX (22.10.2026)

   Liegt im Client unter /assets/contavox/ (branding/bauen.py, Volume in
   motor/contavox.yml) und wird in index.html nach dem Stylesheet von
   OpenSlides geladen. Werte aus app/stimme/static/marke/marke.css,
   Herkunft in branding/corporate/TOKENS.md.

   Was hier steht:
   1. Schrift Poppins statt Fira Sans. OpenSlides nennt überall die Familie
      «OSFont»; dieselbe Familie mit Poppins-Dateien überschreibt sie, ohne
      eine einzige Regel des Clients anzufassen.
   2. Gemeinsame Werte (--cv-…), hell und für den Dunkelmodus von OpenSlides.
   3. Anmeldeseite wie die Kundenansicht von PONTAVOX: Eis-Grund mit
      Lichtfeldern, Navy-Band mit Glanz und hellem Wortzeichen, Glaskarte,
      Felder mit Fokusring, Glanz-Knopf.
   4. Angemeldeter Client (22.10.2026 nachmittags, Davids «zu generisch»):
      Navy-Bänder mit Glanz statt flacher Primärfarbe, Eis-Grund, helle
      Glasnavigation, Glaskarten, Glanz-Knöpfe, ruhige Listenzeilen.
   Grundfarben der Bedienung kommen weiter aus dem Theme (ops/testdaten.py
   farben). Keine Regel ändert eine Funktion, ein Mass, nach dem OpenSlides
   rechnet (Zeilenhöhen der Listen), oder blendet Bedienung aus.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Schrift ───────────────────────────────────────────────────────────
   Poppins läuft rund 11 % breiter als Fira Sans. size-adjust 96 % hält die
   x-Höhe gleich (Lesbarkeit) und begrenzt das Mehr an Breite auf rund 7 %;
   ascent/descent stellen die Grossbuchstaben in Knöpfen und Feldern mittig
   und halten die Zeilenhöhe nahe bei Fira Sans (1,25 statt 1,4 em). */
@font-face { font-family: OSFont; font-style: normal; font-weight: 400; font-display: swap;
  src: url('/assets/contavox/poppins-regular.woff2') format('woff2');
  size-adjust: 96%; ascent-override: 100%; descent-override: 30%; line-gap-override: 0%; }
@font-face { font-family: OSFont; font-style: normal; font-weight: 500; font-display: swap;
  src: url('/assets/contavox/poppins-medium.woff2') format('woff2');
  size-adjust: 96%; ascent-override: 100%; descent-override: 30%; line-gap-override: 0%; }
@font-face { font-family: OSFont; font-style: normal; font-weight: 600; font-display: swap;
  src: url('/assets/contavox/poppins-semibold.woff2') format('woff2');
  size-adjust: 96%; ascent-override: 100%; descent-override: 30%; line-gap-override: 0%; }
@font-face { font-family: OSFont; font-style: normal; font-weight: 700 900; font-display: swap;
  src: url('/assets/contavox/poppins-bold.woff2') format('woff2');
  size-adjust: 96%; ascent-override: 100%; descent-override: 30%; line-gap-override: 0%; }
/* Kursiv: Poppins gibt es hier nicht kursiv; geneigte Fassung aus branding/client/schraeg_bauen.py */
@font-face { font-family: OSFont; font-style: italic; font-weight: 400; font-display: swap;
  src: url('/assets/contavox/poppins-regular-schraeg.woff2') format('woff2');
  size-adjust: 96%; ascent-override: 100%; descent-override: 30%; line-gap-override: 0%; }
@font-face { font-family: OSFont; font-style: italic; font-weight: 500 900; font-display: swap;
  src: url('/assets/contavox/poppins-medium-schraeg.woff2') format('woff2');
  size-adjust: 96%; ascent-override: 100%; descent-override: 30%; line-gap-override: 0%; }
/* Überschriften (h1–h4, Folientitel): bei OpenSlides Fira Sans Condensed. Poppins halbfett wie die Titel von
   PONTAVOX, etwas kleiner gesetzt, weil Poppins viel breiter ist als eine Condensed. */
@font-face { font-family: 'OSFont Condensed'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url('/assets/contavox/poppins-semibold.woff2') format('woff2');
  size-adjust: 90%; ascent-override: 104%; descent-override: 34%; line-gap-override: 0%; }
/* Titel im Client: eigener Name, weil OpenSlides «OSFont Condensed» zur Laufzeit neu anmeldet (Schrifteinstellungen
   der Versammlung) und damit die Regel oben überschreibt; verwendet in Abschnitt 4 */
@font-face { font-family: 'CONTAVOX Titel'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url('/assets/contavox/poppins-semibold.woff2') format('woff2'); }
/* Projektor (Bühnenbild im Client): Namen, Folientitel */
@font-face { font-family: 'OSFont ChyronName'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url('/assets/contavox/poppins-medium.woff2') format('woff2'); }
@font-face { font-family: 'OSFont projectorH1'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url('/assets/contavox/poppins-semibold.woff2') format('woff2'); }
@font-face { font-family: 'OSFont projectorH2'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url('/assets/contavox/poppins-medium.woff2') format('woff2'); }

/* Poppins wirkt in OpenSlides' Gewicht 500 (Knöpfe, Reiter) kräftiger als Fira; Glättung wie PONTAVOX */
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* ── 2. Gemeinsame Werte ─────────────────────────────────────────────── */
:root {
  --cv-grund: #E7F2FC;
  --cv-grund-bild: radial-gradient(ellipse 60% 50% at 85% -5%, rgba(205, 234, 255, .95), transparent 70%),
                   radial-gradient(ellipse 50% 40% at 0% 100%, rgba(255, 255, 255, .7), transparent 70%);
  --cv-grund-raute: rgba(255, 255, 255, .55);
  --cv-navy-bild: radial-gradient(ellipse 60% 140% at 92% -20%, rgba(122, 204, 255, .30), transparent 60%),
                  linear-gradient(115deg, #0F2344 0%, #17345F 45%, #1F4A86 100%);
  --cv-navy-glanz: linear-gradient(180deg, rgba(255, 255, 255, .10) 0%, rgba(255, 255, 255, 0) 55%);
  --cv-navy-kante: rgba(156, 199, 255, .28);
  --cv-glas: radial-gradient(ellipse at 0% 0%, rgba(226, 242, 255, .9), transparent 60%), linear-gradient(150deg, #FFFFFF, #F2F8FF);
  --cv-glas-kante: #C9DDF0;
  --cv-glas-schatten: inset 0 1px 0 rgba(255, 255, 255, .95), 0 1px 2px rgba(23, 56, 95, .06), 0 16px 36px -26px rgba(23, 56, 95, .38);
  --cv-nav: linear-gradient(180deg, #F7FBFF 0%, #EDF5FD 100%);
  --cv-nav-kante: #D3E3F3;
  --cv-nav-aktiv: linear-gradient(90deg, rgba(0, 113, 237, .14), rgba(0, 113, 237, .05));
  --cv-zeile: #FFFFFF;
  --cv-zeile-hover: #F3F8FE;
  --cv-linie: #E1EBF5;
  --cv-tinte: #17385F;
  --cv-tinte-2: #3C597B;
  --cv-titel-verlauf: linear-gradient(90deg, #17385F 0%, #1D4C86 55%, #0068CF 110%);
  --cv-aktion-glanz: linear-gradient(180deg, #1672DD 0%, #0A64D2 48%, #0052B8 100%);   /* wie marke.css */
  --cv-aktion-glanz-hover: linear-gradient(180deg, #0B66CF 0%, #0058C2 48%, #00479F 100%);
  --cv-aktion-schatten: inset 0 1px 0 rgba(255, 255, 255, .38), inset 0 -2px 0 rgba(0, 40, 100, .22),
                        0 2px 4px rgba(0, 60, 140, .16), 0 10px 22px -10px rgba(0, 98, 209, .6);
  --cv-aktion-text: #005AB8;
  --cv-fokus: #0071ED;
  --cv-feld-kante: #8FA9C6;
}
.openslides-dark-theme {
  --cv-grund: #0B111C;
  --cv-grund-bild: radial-gradient(120% 70% at 50% 0%, #15233A 0%, rgba(11, 17, 28, 0) 70%);
  --cv-grund-raute: rgba(122, 204, 255, .05);
  --cv-glas: radial-gradient(ellipse at 0% 0%, rgba(77, 115, 179, .16), transparent 60%), linear-gradient(150deg, #142238, #0F1929);
  --cv-glas-kante: rgba(156, 199, 255, .16);
  --cv-glas-schatten: inset 0 1px 0 rgba(230, 240, 255, .06), 0 20px 50px -24px rgba(0, 0, 0, .6);
  --cv-nav: linear-gradient(180deg, #101B2C 0%, #0D1726 100%);
  --cv-nav-kante: rgba(156, 199, 255, .14);
  --cv-nav-aktiv: linear-gradient(90deg, rgba(90, 167, 255, .22), rgba(90, 167, 255, .06));
  --cv-zeile: #111C2E;
  --cv-zeile-hover: #16243A;
  --cv-linie: rgba(156, 199, 255, .12);
  --cv-tinte: #E6EEF9;
  --cv-tinte-2: #C3D1E4;
  --cv-titel-verlauf: linear-gradient(90deg, #FFFFFF 0%, #FFFFFF 45%, #8EC2FF 130%);
  --cv-aktion-text: #8EC2FF;
  --cv-fokus: #7ACCFF;
  --cv-feld-kante: #6F8DAE;
}

/* ── 3. Anmeldeseite ──────────────────────────────────────────────────── */

/* Grund: Eis-Blau, zwei Lichtfelder, feine Rauten wie hinter den Karten von PONTAVOX
   (OpenSlides setzt .background-default mit !important, darum hier ebenfalls) */
os-login-wrapper .main-login-wrapper.background-default {
  background:
    var(--cv-grund-bild),
    repeating-linear-gradient(45deg, transparent 0 179px, var(--cv-grund-raute) 179px 180px),
    repeating-linear-gradient(-45deg, transparent 0 179px, var(--cv-grund-raute) 179px 180px),
    var(--cv-grund) !important;
  color: var(--cv-tinte);
}

/* Kopf: Navy-Band mit Glanz von oben und Lichtlinie unten, darin das helle Wortzeichen (openslides-logo-dark.svg) */
os-login-wrapper .login-logo-bar {
  position: relative;
  background: var(--cv-navy-glanz), var(--cv-navy-bild) !important;
  color: #FFFFFF !important;
  box-shadow: inset 0 -1px 0 var(--cv-navy-kante), 0 24px 48px -32px rgba(15, 35, 68, .7);
}
os-login-wrapper .login-logo-bar::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(122, 204, 255, .65) 50%, transparent);
}
/* Das Wortzeichen füllt nur gut die Hälfte seiner 800 px breiten Fläche; etwas grösser als bei OpenSlides (400 px) */
os-login-wrapper .login-logo-bar a img { max-width: min(560px, 88vw) !important; }

/* Titel der Organisation («CONTAVOX …»): Poppins halbfett mit dem Navy-Blauverlauf der Titel von PONTAVOX */
os-login-wrapper .header-name h1 {
  color: var(--cv-tinte) !important;
  background: var(--cv-titel-verlauf);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: 1.12;
}

/* Hof hinter dem Formular: weiches Blaulicht wie der Hof der Marmel (nur Fläche, kein Inhalt) */
os-login-wrapper os-login-mask .form-wrapper { position: relative; isolation: isolate; }
os-login-wrapper os-login-mask .form-wrapper::before {
  content: ''; position: absolute; z-index: -1; left: 50%; top: 58%; width: 760px; height: 560px; max-width: 120vw;
  transform: translate(-50%, -50%); pointer-events: none;
  background: radial-gradient(closest-side, rgba(0, 113, 237, .14), rgba(124, 98, 255, .06) 55%, transparent);
}

/* Hinweis: helle Karte mit blauer Kante links (Information, kein Fehler) */
os-login-wrapper os-login-mask mat-card.mat-mdc-card {
  position: relative; overflow: hidden;
  background: linear-gradient(150deg, rgba(255, 255, 255, .92), rgba(236, 245, 255, .92)) !important;
  border: 1px solid var(--cv-glas-kante);
  border-radius: 18px !important;
  box-shadow: var(--cv-glas-schatten) !important;
  color: var(--cv-tinte);
}
os-login-wrapper os-login-mask mat-card.mat-mdc-card::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: linear-gradient(180deg, #1672DD, #0052B8);
}
os-login-wrapper os-login-mask mat-card.mat-mdc-card .mat-mdc-card-content { line-height: 1.6; padding-left: 22px; }

/* Formular: Glaskarte, Inhalt als Spalte (OpenSlides setzt <br> und ein leeres Fehlerfeld dazwischen: weg) */
os-login-wrapper os-login-mask form.login-container {
  box-sizing: border-box;
  display: flex; flex-direction: column; align-items: stretch;
  padding: 32px 32px 18px;
  border: 1px solid var(--cv-glas-kante);
  border-radius: 28px;
  background: var(--cv-glas);
  box-shadow: var(--cv-glas-schatten), 0 40px 80px -60px rgba(0, 98, 209, .45);
  margin-top: 16px !important;
}
os-login-wrapper os-login-mask form.login-container > br { display: none; }
os-login-wrapper os-login-mask form.login-container > mat-error:empty { display: none; }
os-login-wrapper os-login-mask form.login-container > mat-error:not(:empty) { margin: 0 4px 12px; }
os-login-wrapper os-login-mask form.login-container .mat-mdc-form-field { width: 100%; margin-bottom: 4px; }

/* Felder: weiss mit ganzer Rundung und Kante; Fokus als blauer Ring statt der Linie von Material */
os-login-wrapper .mat-mdc-text-field-wrapper.mdc-text-field--filled {
  background-color: #FFFFFF !important;
  border-radius: 14px !important;
  box-shadow: inset 0 0 0 1px var(--cv-feld-kante), inset 0 2px 4px rgba(23, 56, 95, .05);
  transition: box-shadow .2s ease;
}
os-login-wrapper .mat-mdc-text-field-wrapper.mdc-text-field--filled .mdc-line-ripple { display: none; }
os-login-wrapper .mat-mdc-text-field-wrapper.mdc-text-field--focused {
  box-shadow: inset 0 0 0 2px var(--cv-fokus), 0 0 0 4px rgba(0, 113, 237, .16) !important;
}
os-login-wrapper .mat-mdc-form-field-focus-overlay { background-color: #0062D1 !important; border-radius: 14px; }
os-login-wrapper .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label { color: var(--cv-tinte-2) !important; }
os-login-wrapper .mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-floating-label { color: var(--cv-aktion-text) !important; }

/* Anmelden: Glanz-Pille (Licht oben, Kante unten); ausgegraut ein helles Blau statt Grau, Schrift ≥ 4,5:1 */
os-login-wrapper .login-button.mat-mdc-raised-button {
  height: 52px !important;
  margin-top: 14px;
  border-radius: 999px !important;
  font-size: 16px; font-weight: 600; letter-spacing: .01em;
  transition: transform .15s ease, box-shadow .2s ease;
}
os-login-wrapper .login-button.mat-mdc-raised-button:not(.mat-mdc-button-disabled):not([disabled]) {
  background: var(--cv-aktion-glanz) !important;
  color: #FFFFFF !important;
  box-shadow: var(--cv-aktion-schatten) !important;
}
os-login-wrapper .login-button.mat-mdc-raised-button:not(.mat-mdc-button-disabled):not([disabled]):hover {
  background: var(--cv-aktion-glanz-hover) !important;
  transform: translateY(-1px);
}
os-login-wrapper .login-button.mat-mdc-raised-button.mat-mdc-button-disabled {
  background: linear-gradient(180deg, #EAF3FD, #DCEAF9) !important;
  color: #2F5A88 !important;   /* 5,9:1 auf der Fläche */
  box-shadow: inset 0 0 0 1px #C3D8EE, inset 0 1px 0 rgba(255, 255, 255, .9) !important;
}
os-login-wrapper .forgot-password-button {
  align-self: flex-end; margin-top: 6px;
  color: var(--cv-aktion-text) !important; font-weight: 500;
  border-radius: 999px !important;
}

/* Fokus sichtbar (3 px Blau wie PONTAVOX) */
os-login-wrapper a:focus-visible,
os-login-wrapper button:focus-visible {
  outline: 3px solid var(--cv-fokus);
  outline-offset: 2px;
}

/* Fusszeile: Lizenzhinweis und Rechtliches ruhig in Tinte 2, Link-Blau beim Darüberfahren */
os-login-wrapper .footer { color: var(--cv-tinte-2); }
os-login-wrapper .footer a { color: var(--cv-tinte-2) !important; }
os-login-wrapper .footer a:hover { color: var(--cv-aktion-text) !important; }

/* Dunkelmodus von OpenSlides (nur wer ihn im Menü wählt): Hinweis, Felder, ausgegrautes «Anmelden» */
.openslides-dark-theme os-login-wrapper os-login-mask mat-card.mat-mdc-card { background: var(--cv-glas) !important; }
.openslides-dark-theme os-login-wrapper .mat-mdc-text-field-wrapper.mdc-text-field--filled { background-color: #0E1828 !important; }
.openslides-dark-theme os-login-wrapper .mat-mdc-form-field-icon-suffix .mat-icon { color: #8EC2FF !important; }
.openslides-dark-theme os-login-wrapper .login-button.mat-mdc-raised-button.mat-mdc-button-disabled {
  background: rgba(255, 255, 255, .08) !important;
  color: #C3D1E4 !important;
  box-shadow: inset 0 0 0 1px rgba(156, 199, 255, .2) !important;
}

/* ── 4. Angemeldeter Client ───────────────────────────────────────────── */

/* Kopf ganz oben (Name der Versammlung, Suche, Konto): Navy-Band mit Glanz */
os-global-headbar .background-headbar {
  background: var(--cv-navy-glanz), var(--cv-navy-bild) !important;
  color: #FFFFFF !important;
}
/* Seitentitel-Leiste («Tagesordnung», «Anträge» …): gleiches Band, eine Stufe heller, Lichtlinie unten */
mat-toolbar.sticky-toolbar.mat-primary {
  position: relative;
  background: var(--cv-navy-glanz),
              radial-gradient(ellipse 50% 160% at 95% -40%, rgba(122, 204, 255, .30), transparent 60%),
              linear-gradient(115deg, #17345F 0%, #1D4C86 55%, #0B5FC4 100%) !important;
  color: #FFFFFF !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 10px 24px -18px rgba(15, 35, 68, .8);
}
mat-toolbar.sticky-toolbar.mat-primary::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(122, 204, 255, .55) 50%, transparent);
}
mat-toolbar.sticky-toolbar .title-slot, mat-toolbar.sticky-toolbar .mock-h2 { font-weight: 600; letter-spacing: -.01em; }

/* Inhalt: Eis-Grund mit Lichtfeld (Listen, Startseite, Autopilot) */
mat-sidenav-content.mat-sidenav-content { background: var(--cv-grund-bild), var(--cv-grund); }

/* Navigation links: helles Glas, Einträge als weiche Pillen, aktiver Eintrag Blau mit Kante links */
os-sidenav .sidenav-background,
os-sidenav mat-sidenav.mat-sidenav {
  background: var(--cv-nav) !important;
  border-right: 1px solid var(--cv-nav-kante) !important;
}
os-sidenav .nav-item {
  position: relative;
  box-sizing: border-box;
  width: calc(100% - 20px) !important;
  margin: 1px 10px !important;
  border-radius: 12px !important;
  color: var(--cv-tinte) !important;
  transition: background-color .15s ease;
}
os-sidenav .nav-item:hover { background: rgba(0, 113, 237, .07) !important; }
os-sidenav .nav-item .mat-icon { color: var(--cv-tinte-2); }
os-sidenav .nav-item.active {
  background: var(--cv-nav-aktiv) !important;
  color: var(--cv-aktion-text) !important;
  font-weight: 600;
  box-shadow: inset 0 0 0 1px rgba(0, 113, 237, .14);
}
os-sidenav .nav-item.active .mat-icon { color: var(--cv-aktion-text) !important; }
os-sidenav .nav-item.active::before {
  content: ''; position: absolute; left: -10px; top: 8px; bottom: 8px; width: 3px; border-radius: 0 3px 3px 0;
  background: linear-gradient(180deg, #1672DD, #0052B8);
}
/* Punkt für Neues (Chat): Blaupunkt mit hellem Ring statt eines dunklen Flecks über dem Symbol */
os-sidenav .mat-badge-content { box-shadow: 0 0 0 2px #F7FBFF; background: #0A6ADB !important; color: #FFFFFF !important; }
os-sidenav .copyright-link, os-sidenav .copyright-sign-container { color: var(--cv-tinte-2) !important; }

/* Karten (Startseite, Autopilot, Detailseiten): Glaskarten mit Kante und weichem Schatten */
mat-sidenav-content .os-card,
mat-sidenav-content mat-card.mat-mdc-card {
  background: var(--cv-glas) !important;
  border: 1px solid var(--cv-glas-kante);
  border-radius: 20px !important;
  box-shadow: var(--cv-glas-schatten) !important;
}
/* Überschriften (Startseite, Autopilot, Detailseiten): Poppins halbfett wie PONTAVOX, in Karten mit dem
   Navy-Blauverlauf (nur so breit wie der Text). Projektorfolien behalten ihre eigene Schrift. */
mat-sidenav-content h1:not(os-projector *), mat-sidenav-content h2:not(os-projector *), mat-sidenav-content h3:not(os-projector *) {
  font-family: 'CONTAVOX Titel', OSFont, sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: -.02em;
}
mat-sidenav-content .os-card h1:not(os-projector *),
mat-sidenav-content mat-card .mat-mdc-card-title {
  display: inline-block;
  background: var(--cv-titel-verlauf);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  line-height: 1.15;
}
/* Grundschrift im Inhalt: Navy-Tinte statt Schwarz (wie Stimm-App und contavox.ch) */
.openslides-light-theme mat-sidenav-content { color: var(--cv-tinte); }

/* Listen: Zeilen weiss auf dem Eis-Grund, feine Linie, zarter Blauschleier beim Darüberfahren (Masse bleiben) */
os-scrolling-table .scrolling-table-row { background: var(--cv-zeile); border-bottom-color: var(--cv-linie) !important; }
os-scrolling-table .scrolling-table-row:hover { background: var(--cv-zeile-hover); }
/* Rahmen der Liste und Fläche unter der letzten Zeile: Eis-Grund statt Weiss/Grau (OpenSlides: .background-card) */
mat-drawer-container.list-view-frame,
os-scrolling-table .virtual-scroll-viewport.background-card { background: transparent !important; }
/* Leiste über der Liste («8 von 8», Sortieren, Filter, Suche): helles Glas mit feiner Linie */
os-sort-filter-bar .custom-table-header {
  background: linear-gradient(180deg, rgba(255, 255, 255, .78), rgba(244, 249, 255, .78)) !important;
  border-bottom: 1px solid var(--cv-linie);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.openslides-dark-theme os-sort-filter-bar .custom-table-header { background: rgba(17, 28, 46, .8) !important; }
/* Dashboard: jede Gruppe (heute, künftig, beendet) als Glaskarte; Innenkarten ohne eigenen Rahmen (Höhen bleiben) */
os-dashboard .meeting-list {
  background: var(--cv-glas) !important;
  border: 1px solid var(--cv-glas-kante);
  border-radius: 16px !important;
  box-shadow: var(--cv-glas-schatten) !important;
  overflow: hidden;
}
os-dashboard .meeting-list mat-card.mat-mdc-card { background: transparent !important; border: 0; box-shadow: none !important; }
os-dashboard .meeting-box:hover { background: rgba(0, 113, 237, .05); }

/* Helle Zeilen von OpenSlides (Redeliste, Zuordnungen: .backgroundColorLight, sonst Grau): weisses Glas mit Kante
   als Schatten (ändert keine Höhe) */
.openslides-light-theme mat-sidenav-content .backgroundColorLight {
  background: linear-gradient(180deg, #FFFFFF, #F3F8FE) !important;
  border-radius: 12px;
  box-shadow: inset 0 0 0 1px var(--cv-glas-kante), 0 2px 6px -4px rgba(23, 56, 95, .3);
}

/* Erweiterbare Tafeln (Redeliste, Sprechzettel, Filter) */
mat-sidenav-content .mat-expansion-panel {
  border-radius: 16px !important;
  border: 1px solid var(--cv-glas-kante);
  box-shadow: var(--cv-glas-schatten) !important;
}

/* Knöpfe: Primär als Glanz-Pille; schwebender Knopf rund mit Glanz */
.mat-mdc-unelevated-button.mat-primary:not([disabled]):not(.mat-mdc-button-disabled),
.mat-mdc-raised-button.mat-primary:not([disabled]):not(.mat-mdc-button-disabled),
.mat-mdc-unelevated-button.mat-accent:not([disabled]):not(.mat-mdc-button-disabled),
.mat-mdc-raised-button.mat-accent:not([disabled]):not(.mat-mdc-button-disabled) {
  background: var(--cv-aktion-glanz) !important;
  color: #FFFFFF !important;
  box-shadow: var(--cv-aktion-schatten) !important;
}
.mat-mdc-unelevated-button.mat-primary:not([disabled]):not(.mat-mdc-button-disabled):hover,
.mat-mdc-raised-button.mat-primary:not([disabled]):not(.mat-mdc-button-disabled):hover,
.mat-mdc-unelevated-button.mat-accent:not([disabled]):not(.mat-mdc-button-disabled):hover,
.mat-mdc-raised-button.mat-accent:not([disabled]):not(.mat-mdc-button-disabled):hover { background: var(--cv-aktion-glanz-hover) !important; }
.mat-mdc-unelevated-button, .mat-mdc-raised-button, .mat-mdc-outlined-button { border-radius: 999px !important; }
.mat-mdc-fab.mat-primary, .mat-mdc-mini-fab.mat-primary, .mat-mdc-fab.mat-accent, .mat-mdc-mini-fab.mat-accent {
  background: var(--cv-aktion-glanz) !important;
  color: #FFFFFF !important;
  box-shadow: var(--cv-aktion-schatten) !important;
}
/* Projektor-Knopf in Listen (runder Knopf mit Kamera): helles Glas statt Weiss mit Materialschatten */
.openslides-light-theme os-projector-button .mat-mdc-fab:not(.mat-primary):not(.mat-accent),
.openslides-light-theme os-projector-button .mat-mdc-mini-fab:not(.mat-primary):not(.mat-accent) {
  background: linear-gradient(180deg, #FFFFFF, #EAF3FD) !important;
  color: var(--cv-tinte) !important;
  box-shadow: inset 0 0 0 1px var(--cv-glas-kante), 0 4px 10px -6px rgba(23, 56, 95, .4) !important;
}

/* Dialoge und Menüs: grosse Rundung, helles Glas */
.mat-mdc-dialog-container .mat-mdc-dialog-surface { border-radius: 24px !important; }
.openslides-light-theme .mat-mdc-dialog-container .mat-mdc-dialog-surface {
  background: var(--cv-glas) !important;
  box-shadow: 0 40px 90px -40px rgba(15, 35, 68, .55), inset 0 0 0 1px var(--cv-glas-kante) !important;
}
.mat-mdc-menu-panel { border-radius: 16px !important; }
.openslides-light-theme .mat-mdc-menu-panel { box-shadow: 0 24px 48px -24px rgba(15, 35, 68, .45), 0 0 0 1px var(--cv-glas-kante) !important; }

/* Zustände in Listen («eingereicht», «offen»): weiche Pillen */
.mat-mdc-chip, .mat-mdc-standard-chip, .mat-mdc-basic-chip { border-radius: 999px !important; }
