/* ══════════════════════════════════════════════════════════════════════
   Design „Weitblick“ — Schicht über portal.css (Entwurf + CSS: Codex, Einbau/Prüfung: Claude)
   Wirkt nur mit <body class="theme-weitblick"> (Vorschau-Schalter, Cookie portal_design).
   Schriften: static/vendor/fonts/weitblick-fonts.css. Stand 26.09.2026.
   ══════════════════════════════════════════════════════════════════════ */
/* Klaus — Weitblick | zusätzliche Schicht nach portal.css | 26.09.2026
   Aktivierung: <body class="… theme-weitblick">. Keine Fonts/Assets nachladen.
   Nur Bildschirm: vorhandene Druckansichten behalten exakt ihre bisherigen Regeln.
   !important nur gegen Bootstrap-Utilities, bestehende Important-Regeln oder
   bekannte Inline-Typografie; fachliche Inline-Farben siehe farben-in-templates.md. */
@media screen {
  /* 1. Tokens: Altmodule und Bootstrap ziehen über ihre Variablen mit. */
  body.theme-weitblick {
    --wb-ink: #193b3d;
    --wb-muted: #526762;
    --wb-petrol: #173e3e;
    --wb-lime: #dcf292;
    --wb-mint: #e8f0e9;
    --wb-bg: #f4f6f3;
    --wb-line: #dfe5df;
    --wb-control: #788b83;
    --wb-success: #2f5d50;
    --wb-success-bg: #e5efe6;
    --wb-warning: #795719;
    --wb-warning-bg: #f5edd6;
    --wb-danger: #943b32;
    --wb-danger-bg: #f8e8e5;
    --wb-info: #325d75;
    --wb-info-bg: #e6eef4;
    --wb-sans: 'IBM Plex Sans', Arial, sans-serif;
    --wb-display: 'Manrope', Arial, sans-serif;
    --portal-primary: #174847;
    --portal-primary-600: #103534;
    --portal-primary-400: #396a60;
    --portal-primary-50: var(--wb-mint);
    --portal-primary-light: var(--wb-mint);
    --portal-primary-soft: var(--wb-mint);
    /* Akzent muss auch als Hintergrund mit weißem Text funktionieren.
       Hellgrün deshalb separat; vorhandenes --portal-accent bleibt dunkles Ocker. */
    --portal-accent: var(--wb-warning);
    --portal-accent-soft: var(--wb-warning-bg);
    --portal-violet: var(--wb-info);
    --portal-cyan: var(--portal-primary);
    --portal-bg: var(--wb-bg);
    --portal-surface: #fff;
    --portal-surface-glass: #fff;
    --portal-text: var(--wb-ink);
    --portal-muted: var(--wb-muted);
    --portal-border: var(--wb-line);
    --portal-border-strong: var(--wb-control);
    --portal-shadow-sm: 0 1px 2px rgb(23 62 62 / 5%);
    --portal-shadow-md: 0 8px 26px rgb(23 62 62 / 12%);
    --portal-shadow-glow: var(--portal-shadow-md);
    --portal-radius: .5rem;
    --portal-radius-lg: .65rem;
    --c-success: var(--wb-success);
    --c-success-bg: var(--wb-success-bg);
    --c-warn: var(--wb-warning);
    --c-warn-bg: var(--wb-warning-bg);
    --c-danger: var(--wb-danger);
    --c-danger-bg: var(--wb-danger-bg);
    --fs-xs: .6875rem;
    --fs-sm: .75rem;
    --fs-md: .8125rem;
    --fs-num: 1.4rem;
    --sidebar-width: 224px;
    --topbar-height: 56px;
    --bs-font-sans-serif: var(--wb-sans);
    --bs-body-font-family: var(--wb-sans);
    --bs-body-color: var(--wb-ink);
    --bs-body-color-rgb: 25, 59, 61;
    --bs-body-bg: var(--wb-bg);
    --bs-body-bg-rgb: 244, 246, 243;
    --bs-emphasis-color: var(--wb-ink);
    --bs-emphasis-color-rgb: 25, 59, 61;
    --bs-secondary-color: var(--wb-muted);
    --bs-secondary-color-rgb: 82, 103, 98;
    --bs-tertiary-color: var(--wb-muted);
    --bs-secondary-bg: var(--wb-mint);
    --bs-tertiary-bg: var(--wb-bg);
    --bs-border-color: var(--wb-line);
    --bs-border-color-translucent: var(--wb-line);
    --bs-border-radius: .4rem;
    --bs-border-radius-lg: .5rem;
    --bs-link-color: var(--portal-primary);
    --bs-link-color-rgb: 23, 72, 71;
    --bs-link-hover-color: var(--portal-primary-600);
    --bs-link-hover-color-rgb: 16, 53, 52;
    font-family: var(--wb-sans);
    font-size: .875rem;
    line-height: 1.45;
    color: var(--wb-ink);
    background: var(--wb-bg);
    accent-color: var(--portal-primary);
  }

  /* 2. Typografie und ruhige Arbeitsflächen. */
  body.theme-weitblick :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,
      .display-portal,.navbar-brand,.sidebar-brand-name,.kt-val,.pt-date .d) {
    font-family: var(--wb-display);
    font-weight: 700;
    letter-spacing: -.025em;
  }
  body.theme-weitblick h1 { font-size: 1.8rem; line-height: 1.2; }
  body.theme-weitblick h1:is(.h3,.h4) { font-size: 1.65rem; }
  body.theme-weitblick h2 { font-size: 1.15rem; }
  body.theme-weitblick :is(h2.h6,h3.h6) { font-size: .875rem; }
  body.theme-weitblick :is(button,input,select,textarea) { font-family: var(--wb-sans); }
  /* Bestehende Inline-Fontnamen im Core-Dashboard gezielt ersetzen. */
  body.theme-weitblick [style*="font-family:"][style*="Inter Tight"] {
    font-family: var(--wb-display) !important;
  }
  body.theme-weitblick a { color: var(--portal-primary); }
  body.theme-weitblick a:hover { color: var(--portal-primary-600); }
  body.theme-weitblick :is(.text-muted,.text-body-secondary,.text-body-tertiary) {
    color: var(--wb-muted) !important;
  }
  body.theme-weitblick :is(.portal-navbar,.portal-topbar) {
    background: #fff; border-bottom-color: var(--wb-line); box-shadow: none;
  }
  body.theme-weitblick :is(.topbar-brand,.topbar-toggle,.topbar-action) { color: var(--wb-ink); }
  body.theme-weitblick .portal-main { padding: 1.5rem 1.25rem 3rem; }
  body.theme-weitblick .portal-main-inner { max-width: 1480px; }
  body.theme-weitblick .portal-bg-mesh { display: none !important; }
  body.theme-weitblick .portal-hero {
    background: var(--wb-mint); color: var(--wb-ink);
    border: 1px solid var(--wb-line); margin-top: 0; padding: 1.5rem 1.75rem;
  }
  body.theme-weitblick .portal-hero::after { content: none; }
  body.theme-weitblick .portal-hero h1 {
    font-family: var(--wb-display); font-size: clamp(1.8rem, 2.6vw, 2.4rem);
    color: var(--wb-ink); -webkit-text-fill-color: currentColor; line-height: 1.2;
  }
  body.theme-weitblick .portal-hero .lead { color: var(--wb-muted); }
  body.theme-weitblick :is(.hero-eyebrow,.portal-hero .eyebrow,.hero-status-pill) {
    background: #fff; color: var(--wb-ink); border-color: var(--wb-line);
  }
  body.theme-weitblick .hero-status-pill.pill-warn {
    background: var(--wb-warning-bg); color: var(--wb-warning); border-color: var(--wb-warning);
  }
  body.theme-weitblick :is(.hero-dot,.portal-hero .eyebrow .dot) {
    background: var(--wb-success); box-shadow: none;
  }
  body.theme-weitblick :is(.card,.module-card,.pt-rowcard,.bd-card) {
    background: #fff; color: var(--wb-ink); border-color: var(--wb-line);
    border-radius: var(--portal-radius); box-shadow: none;
  }
  body.theme-weitblick .card.border-0 { border: 1px solid var(--wb-line) !important; }
  body.theme-weitblick .card.shadow-sm { box-shadow: none !important; }
  body.theme-weitblick :is(.card-header,.card-footer) {
    background: #fff; color: var(--wb-ink); border-color: var(--wb-line);
    padding: .65rem .9rem; font-size: .8125rem;
  }
  body.theme-weitblick .card-body { padding: 1rem; }
  body.theme-weitblick .module-card:hover { transform: none; border-color: var(--wb-control); }
  body.theme-weitblick :is(.module-icon-wrap,.kt-stat,.pt-date) {
    background: var(--wb-mint); color: var(--portal-primary);
  }
  body.theme-weitblick :is(.list-group,.dropdown-menu) {
    --bs-list-group-color: var(--wb-ink);
    --bs-list-group-bg: #fff;
    --bs-list-group-border-color: var(--wb-line);
    --bs-list-group-action-hover-bg: var(--wb-mint);
    --bs-list-group-active-bg: var(--portal-primary);
    --bs-list-group-active-border-color: var(--portal-primary);
    --bs-dropdown-bg: #fff;
    --bs-dropdown-color: var(--wb-ink);
    --bs-dropdown-link-color: var(--wb-ink);
    --bs-dropdown-link-hover-color: var(--wb-ink);
    --bs-dropdown-link-hover-bg: var(--wb-mint);
    --bs-dropdown-link-active-bg: var(--portal-primary);
    --bs-dropdown-link-active-color: #fff;
    --bs-dropdown-border-color: var(--wb-line);
  }

  /* 3. Seitenleiste: bestehendes Offcanvas, Scrollen und Sortieren bleiben erhalten. */
  body.theme-weitblick .portal-sidebar {
    --portal-text: #edf3ed;
    --portal-muted: #bbcec5;
    --portal-border: #42645d;
    --bs-offcanvas-bg: var(--wb-petrol);
    --bs-offcanvas-color: #edf3ed;
    color: #edf3ed;
    background: var(--wb-petrol) !important;
  }
  body.theme-weitblick .portal-sidebar .sidebar-inner {
    display: flex !important; background: var(--wb-petrol);
    border-right: 0; padding: 1.4rem .85rem .75rem;
  }
  body.theme-weitblick :is(.sidebar-brand,.sidebar-brand:hover) { color: #fff; border-color: #42645d; }
  body.theme-weitblick .sidebar-brand { padding: .35rem .35rem 1.2rem; margin-bottom: .8rem; }
  body.theme-weitblick .sidebar-brand-name { font-size: .97rem; }
  body.theme-weitblick .sidebar-brand-sub { font-size: .625rem; margin-top: .35rem; color: #bbcec5; }
  body.theme-weitblick .sidebar-link {
    color: #edf3ed; font-size: .8125rem; line-height: 1.25;
    padding: .5rem .65rem; border-radius: .4rem; min-height: 34px; gap: .65rem;
  }
  body.theme-weitblick .sidebar-link:hover { background: #28504b; color: #fff; }
  /* Aktiv: dunkle Fläche, weiße fette Schrift, ohne Kante (Simon 01.10.2026: „Giftgrün … muss ruhiger werden“,
     dann „nimm B ohne den weißen Rand“; Entwurf Codex). Eine Stufe heller als Hover, damit beides unterscheidbar bleibt. */
  body.theme-weitblick .sidebar-link.active,
  body.theme-weitblick .sidebar-link.active:hover {
    background: #315c56; color: #fff; box-shadow: none; font-weight: 600;
  }
  body.theme-weitblick .sidebar-link .sidebar-icon { color: inherit !important; }
  body.theme-weitblick :is(.sidebar-section,.sidebar-drag-handle,.sidebar-mod-edit-btn,.sidebar-mod-done-btn) {
    color: #bbcec5; font-size: .6875rem;
  }
  body.theme-weitblick :is(.sidebar-mod-edit-btn,.sidebar-mod-done-btn):hover {
    background: #28504b; color: #fff;
  }
  body.theme-weitblick .sidebar-section { padding-top: 1rem; letter-spacing: .1em; }
  body.theme-weitblick #sidebar-modules { scrollbar-color: #9bb8a9 transparent; }
  body.theme-weitblick #sidebar-modules::-webkit-scrollbar-thumb { background: #9bb8a9; }
  body.theme-weitblick .sidebar-drag-ghost { background: #28504b; }
  body.theme-weitblick .sidebar-user { border-color: #42645d; }
  body.theme-weitblick .sidebar-user-btn { color: #edf3ed; }
  body.theme-weitblick .sidebar-user-btn:hover { background: #28504b; border-color: #42645d; }
  body.theme-weitblick .sidebar-user-role { font-size: .6875rem; color: #bbcec5; }
  body.theme-weitblick .sidebar-user .dropdown-menu {
    --portal-muted: var(--wb-muted); --portal-text: var(--wb-ink);
  }
  body.theme-weitblick :is(.avatar,.avatar-initials) {
    font-family: var(--wb-display); background: var(--wb-mint); color: var(--wb-petrol); text-shadow: none;
  }
  body.theme-weitblick .portal-sidebar .offcanvas-header .btn-close { filter: invert(1); opacity: 1; }

  /* 4. Knöpfe: Bootstrap-Zustände inklusive Radio-/Checkbox-Buttons. */
  body.theme-weitblick .btn {
    font-size: .8125rem; font-weight: 600; border-radius: .4rem;
    padding: .4rem .8rem; box-shadow: none;
  }
  body.theme-weitblick .btn-sm {
    font-size: .75rem !important; padding: .25rem .6rem !important; border-radius: .35rem !important;
  }
  body.theme-weitblick .btn-lg { font-size: .9375rem; padding: .6rem 1rem; }
  body.theme-weitblick .btn:active { transform: none; }
  body.theme-weitblick .btn-link { --bs-btn-color: var(--portal-primary); --bs-btn-hover-color: var(--portal-primary-600); }
  body.theme-weitblick :is(.pt-btn-action,.pt-icon-btn) {
    color: var(--portal-primary); border-color: var(--wb-control); background: #fff;
  }
  body.theme-weitblick :is(.pt-btn-action,.pt-icon-btn):hover { background: var(--wb-mint); }
  body.theme-weitblick .pt-icon-btn.pt-icon-danger { color: var(--wb-danger); border-color: var(--wb-danger); }

  /* 5. Formulare: erkennbare Konturen, lesbare Platzhalter, echte Validierungsfarben. */
  body.theme-weitblick :is(.form-control,.form-select,.input-group-text,.begr-edit,.bd-chat-editbox) {
    color: var(--wb-ink); background-color: #fff; border: 1px solid var(--wb-control);
    border-radius: .35rem; font-size: .8125rem; line-height: 1.4;
  }
  body.theme-weitblick :is(.form-control,.form-select) { padding-top: .4rem; padding-bottom: .4rem; }
  body.theme-weitblick :is(.form-control-sm,.form-select-sm) { font-size: .75rem; padding-top: .3rem; padding-bottom: .3rem; }
  body.theme-weitblick .input-group-text { background: var(--wb-mint); }
  body.theme-weitblick :is(input,textarea)::placeholder { color: var(--wb-muted); opacity: 1; }
  body.theme-weitblick :is(.form-label,.form-check-label) { color: var(--wb-ink); font-size: .8125rem; }
  body.theme-weitblick :is(.form-text,.valid-feedback,.invalid-feedback) { font-size: .75rem; }
  body.theme-weitblick :is(.form-text,.form-control:disabled,.form-select:disabled) { color: var(--wb-muted); }
  body.theme-weitblick :is(.form-control:disabled,.form-select:disabled,.form-control[readonly]) { background: var(--wb-bg); }
  body.theme-weitblick .form-check-input { border-color: var(--wb-control); }
  body.theme-weitblick .form-check-input:checked { background-color: var(--portal-primary); border-color: var(--portal-primary); }
  body.theme-weitblick :is(.form-control,.form-select,.begr-edit):focus {
    border-color: var(--portal-primary); box-shadow: 0 0 0 3px rgb(23 72 71 / 15%);
  }
  body.theme-weitblick :is(.is-invalid,.was-validated :invalid) { border-color: var(--wb-danger); }
  body.theme-weitblick .invalid-feedback { color: var(--wb-danger); }
  body.theme-weitblick :is(.is-valid,.was-validated :valid) { border-color: var(--wb-success); }
  body.theme-weitblick .valid-feedback { color: var(--wb-success); }

  /* 6. Tabellen: 12 px Text / 11 px Kopf / 6 px vertikales Polster.
     Keine pauschale Rechtsausrichtung: nur bereits als Zahlen markierte Zellen. */
  body.theme-weitblick table {
    font-family: var(--wb-sans); font-size: .75rem; line-height: 1.35;
    font-variant-numeric: tabular-nums; border-color: var(--wb-line);
  }
  body.theme-weitblick :is(.table,.pt-table,.va-tbl,.bu-tbl,.vf-tbl,.va-ew-tbl,.sv-table) {
    font-size: .75rem;
    --bs-table-color: var(--wb-ink);
    --bs-table-bg: #fff;
    --bs-table-border-color: var(--wb-line);
    --bs-table-striped-bg: #f4f7f2;
    --bs-table-striped-color: var(--wb-ink);
    --bs-table-hover-bg: var(--wb-mint);
    --bs-table-hover-color: var(--wb-ink);
    --bs-table-active-bg: var(--wb-mint);
    --bs-table-active-color: var(--wb-ink);
  }
  body.theme-weitblick :is(table,.table) > :is(thead,tbody,tfoot) > tr > :is(th,td) {
    padding: 6px 8px; font-size: .75rem; vertical-align: middle; border-bottom-color: var(--wb-line);
  }
  body.theme-weitblick :is(table,.table) > thead > tr > th,
  body.theme-weitblick .va-ew-tbl th {
    font-size: .6875rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em;
    background: var(--wb-bg); color: var(--wb-muted); border-bottom: 1px solid var(--wb-line);
  }
  body.theme-weitblick :is(table,.table) > tfoot > tr > :is(th,td) { font-weight: 600; background: var(--wb-mint); }
  body.theme-weitblick table :is(.num,.numeric,.va-num,.vf-num,.text-end),
  body.theme-weitblick input[type="number"] { text-align: right; font-variant-numeric: tabular-nums; }
  body.theme-weitblick table :is(.num,.numeric,.va-num,.vf-num) { white-space: nowrap; overflow-wrap: normal; }
  body.theme-weitblick :is(.pt-table,.va-tbl,.vf-tbl,.bu-tbl) > tbody > tr:hover > td { background-color: var(--wb-mint); }
  body.theme-weitblick .va-row.open { background: var(--wb-mint); }
  body.theme-weitblick .va-detail > td { background: var(--wb-bg); padding: .9rem 1rem; }
  body.theme-weitblick .bu-tbl tbody tr.meldepflicht td { background: var(--wb-danger-bg) !important; }
  /* Schmale feste Zahlenspalten in Budgetüberwachung: nur horizontales Polster reduzieren. */
  body.theme-weitblick table.bu-tbl > :is(thead,tbody,tfoot) > tr > :is(th,td) { padding-inline: 4px; }
  body.theme-weitblick table :is(.btn-sm,.pt-btn-action) { font-size: .6875rem !important; padding: .15rem .45rem !important; }
  body.theme-weitblick :is(.va-konto,.konto-code) { font-family: var(--wb-sans); font-variant-numeric: tabular-nums; }

  /* 7. Unter- und Filternavigation: durchgehend Pillen, kein Unterstrich. */
  body.theme-weitblick :is(.nav-tabs,.nav-pills,.va-nav,.vf-nav,.rv-tab-bar) {
    border: 0; gap: .35rem; flex-wrap: wrap;
    --bs-nav-link-color: var(--wb-ink);
    --bs-nav-link-hover-color: var(--portal-primary);
    --bs-nav-pills-link-active-bg: var(--portal-primary);
    --bs-nav-pills-link-active-color: #fff;
  }
  body.theme-weitblick :is(.nav-tabs .nav-link,.nav-pills .nav-link,.va-nav a,.vf-nav a,
      .va-pill,.vf-pill,.stichtag-pill,.filter-btn,.bd-fbtn,.rv-tab-btn) {
    display: inline-flex; align-items: center; gap: .3rem;
    padding: .3rem .75rem; margin-bottom: 0; border: 1px solid var(--wb-control);
    border-radius: 999px; color: var(--wb-ink); background: #fff;
    font-family: var(--wb-sans); font-size: .75rem; font-weight: 500;
    line-height: 1.4; text-decoration: none; box-shadow: none;
  }
  body.theme-weitblick :is(.nav-tabs .nav-link,.nav-pills .nav-link,.va-nav a,.vf-nav a,
      .va-pill,.vf-pill,.stichtag-pill,.filter-btn,.bd-fbtn,.rv-tab-btn):hover {
    background: var(--wb-mint); color: var(--portal-primary); border-color: var(--portal-primary);
  }
  body.theme-weitblick :is(.nav-tabs .nav-link,.nav-pills .nav-link,.va-nav a,.vf-nav a,
      .va-pill,.vf-pill,.stichtag-pill,.filter-btn,.bd-fbtn,.rv-tab-btn).active,
  body.theme-weitblick :is(.nav-tabs,.nav-pills) .show > .nav-link {
    background: var(--portal-primary); color: #fff; border-color: var(--portal-primary); font-weight: 600;
  }
  body.theme-weitblick .filter-btn.active.warn { background: var(--wb-warning); border-color: var(--wb-warning); }
  body.theme-weitblick :is(.nav-tabs,.nav-pills) .nav-link.active .text-muted { color: #fff !important; }
  body.theme-weitblick :is(.nav-tabs .nav-link,.nav-pills .nav-link,.rv-tab-btn)::after { content: none; }
  body.theme-weitblick :is(.nav-tabs,.nav-pills) .dropdown-toggle::after { content: ""; } /* Menü-Pfeil behalten. */
  body.theme-weitblick :is(.nav-tabs,.nav-pills) .nav-link:is(.disabled,:disabled) {
    color: var(--wb-muted); background: var(--wb-bg); border-color: var(--wb-line); opacity: 1;
  }
  body.theme-weitblick .stichtag-row { background: var(--wb-bg); border-color: var(--wb-line); }

  /* 8. Alle sechs KPI-Familien: gleiche Fläche, Zahl und Beschriftung.
     Altes kpi-card-Markup zeigt das Label per Flex-Reihenfolge zuerst. */
  body.theme-weitblick :is(.kpi-card,.va-kpi,.vf-kpi,.liq-kpi,.bd-stat,.kpi-mini) {
    background: #fff !important; border: 1px solid var(--wb-line) !important;
    border-radius: .5rem; padding: .75rem 1rem; height: 100%;
    color: var(--wb-ink); text-align: left !important; box-shadow: none;
  }
  body.theme-weitblick .kpi-card { padding: 0; }
  body.theme-weitblick .kpi-card .card-body { padding: .75rem 1rem; display: flex; flex-direction: column; align-items: flex-start; }
  body.theme-weitblick .kpi-card .kpi-label { order: -1; }
  body.theme-weitblick :is(.kpi-card,.va-kpi,.vf-kpi,.liq-kpi,.bd-stat,.kpi-mini)
      :is(.kpi-value,.v,.num) {
    font-family: var(--wb-display); font-size: 1.4rem; font-weight: 700;
    line-height: 1.2; letter-spacing: -.025em; font-variant-numeric: tabular-nums;
    margin-top: .25rem; overflow-wrap: anywhere;
  }
  body.theme-weitblick :is(.kpi-card,.va-kpi,.vf-kpi,.liq-kpi,.bd-stat,.kpi-mini)
      :is(.kpi-label,.l,.lbl,.kpi-heading) {
    font-family: var(--wb-sans); font-size: .6875rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .04em; line-height: 1.4; color: var(--wb-muted);
  }
  body.theme-weitblick :is(.kpi-card,.va-kpi,.vf-kpi,.liq-kpi,.bd-stat,.kpi-mini) :is(.s,.text-muted) {
    font-size: .6875rem; line-height: 1.4; color: var(--wb-muted);
  }
  body.theme-weitblick :is(.va-kpi,.liq-kpi).warn { border-left: 3px solid var(--wb-danger) !important; }
  body.theme-weitblick :is(.liq-kpi.ok,.kpi-mini.hw2) { border-left: 3px solid var(--wb-success) !important; }
  body.theme-weitblick .kpi-mini.hw1 { border-left: 3px solid var(--wb-warning) !important; }
  body.theme-weitblick .kpi-mini .kpi-nums { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin-top: .25rem; }
  body.theme-weitblick .kpi-mini .kpi-heading.hw1 { color: var(--wb-warning); }
  body.theme-weitblick .kpi-mini .kpi-heading.hw2 { color: var(--wb-success); }
  /* Kooperationen hat noch keine KPI-Klasse: eng auf die vier Übersichtskarten begrenzt. */
  body.theme-weitblick .mod-kooperationen #pane-uebersicht > .row:first-child .card {
    background: #fff !important; text-align: left !important;
  }
  body.theme-weitblick .mod-kooperationen #pane-uebersicht > .row:first-child .card-body { padding: .75rem 1rem !important; }
  body.theme-weitblick .mod-kooperationen #pane-uebersicht > .row:first-child .h4 { font-size: 1.4rem; font-variant-numeric: tabular-nums; }

  /* 9. Hinweise, Dialoge und semantische Statusfarben (Varianten unten). */
  body.theme-weitblick :is(.badge,.pt-chip,.va-chip,.va-st,.sp-best,.sp-warn,.sp-res,.sp-ab,.sp-erl) {
    font-family: var(--wb-sans); font-size: .6875rem; font-weight: 600;
    line-height: 1.4; border-radius: .3rem; padding: .15rem .45rem;
  }
  body.theme-weitblick .alert { padding: .75rem 1rem; border-radius: .45rem; font-size: .8125rem; }
  body.theme-weitblick .alert-dismissible { padding-right: 3rem; }
  body.theme-weitblick .alert a:not(.btn) { color: inherit; text-decoration: underline; }
  body.theme-weitblick .modal {
    --bs-modal-color: var(--wb-ink);
    --bs-modal-bg: #fff;
    --bs-modal-border-color: var(--wb-line);
    --bs-modal-border-radius: .65rem;
    --bs-modal-header-border-color: var(--wb-line);
    --bs-modal-footer-border-color: var(--wb-line);
  }
  body.theme-weitblick .modal-content { box-shadow: var(--portal-shadow-md); }
  body.theme-weitblick :is(.modal-header,.modal-footer) { background: var(--wb-bg); padding: .85rem 1rem; }
  body.theme-weitblick .modal-title { font-size: 1.1rem; }
  body.theme-weitblick .modal-body { padding: 1rem; }
  body.theme-weitblick .btn-close { opacity: .75; }
  body.theme-weitblick .btn-close:hover { opacity: 1; }
  body.theme-weitblick .modal-backdrop { --bs-backdrop-bg: #173e3e; --bs-backdrop-opacity: .45; }

  /* 10. Bekannte Modulflächen, Textreste und Statushilfen. */
  body.theme-weitblick :is(.va-muted,.vf-muted,.pt-empty,.pt-chevron,.pt-group-label,.pt-sub,
      .va-konto,.va-leg,.va-ew-leg,.va-verlauf,.va-rf .kopf,.va-jahr label,
      .stichtag-row .label,.filter-row .label,.bu-dropzone-hint,
      .bd-group,.bd-grip,.bd-chev,.bd-chat-meta,.bd-chat-edited,.bd-chat-del,
      .bd-blitz-zahlen .g,.pt-rowcard .pt-title .pt-nr,.chr-tick,.chr-group-title,.chr-legend,.dash-ki-typing) { color: var(--wb-muted); }
  body.theme-weitblick :is(.vf-ablauf .vorbei,.vf-ablauf .erledigt) { color: var(--wb-muted); }
  body.theme-weitblick .vf-ablauf .ueberfaellig { color: var(--wb-danger); }
  body.theme-weitblick :is(.woche-empty-row,.bd-person-x) { opacity: 1; }
  body.theme-weitblick .bd-chat-txt { color: var(--wb-ink); }
  body.theme-weitblick :is(.bd-detail,.dash-ki-messages,.woche-day-header.normal,.calendar-cell.empty) { background: var(--wb-bg); }
  body.theme-weitblick :is(.bd-chat-msg,.va-info,.va-ew-tbl .lfd) { background: var(--wb-info-bg); }
  body.theme-weitblick .bd-chat-msg.mein { background: var(--wb-warning-bg); border-color: var(--wb-warning); }
  body.theme-weitblick .bd-card.open { border-color: var(--wb-control); box-shadow: none; }
  body.theme-weitblick .bd-card.has-inhalt { border-left-color: var(--wb-info); }
  body.theme-weitblick :is(.va-fort,.budget-bar-track,.bu-wrap .bar,.bd-blitz-bar) { background: var(--wb-line); }
  body.theme-weitblick :is(.pct-warn,.va-hint) { color: var(--wb-warning); }
  body.theme-weitblick .bu-wrap .bar.warn > span { background: var(--wb-warning); }
  body.theme-weitblick .va-mark { background: var(--wb-warning); }
  body.theme-weitblick .va-mark.rf { background: var(--wb-danger); }
  body.theme-weitblick .va-hint { background: var(--wb-warning-bg); border-left-color: var(--wb-warning); }
  body.theme-weitblick .va-hint.ok { background: var(--wb-success-bg); border-left-color: var(--wb-success); color: var(--wb-success); }
  body.theme-weitblick .va-begruendung { border-color: var(--wb-danger); }
  body.theme-weitblick .va-begruendung.ok { border-color: var(--wb-success); }
  body.theme-weitblick .bu-dropzone { border-color: var(--wb-control); background: var(--wb-bg); }
  body.theme-weitblick .bu-dropzone:is(:hover,.dragover) { border-color: var(--portal-primary); background: var(--wb-mint); }
  body.theme-weitblick .bu-dropzone-icon { color: var(--portal-primary); }
  body.theme-weitblick .bu-dropzone-title { color: var(--wb-ink); }
  body.theme-weitblick .begruendung-cell .begr:empty::before { color: var(--wb-muted); }
  body.theme-weitblick .begruendung-cell .begr { color: var(--wb-ink); }

  /* 11. Tastaturfokus: dunkler Ring auf hellen Flächen, heller auf Petrol. */
  body.theme-weitblick :focus-visible {
    outline: 3px solid var(--portal-primary); outline-offset: 3px;
  }
  body.theme-weitblick .btn-check:focus-visible + .btn {
    outline: 3px solid var(--portal-primary); outline-offset: 3px;
  }
  body.theme-weitblick .portal-sidebar :focus-visible { outline-color: var(--wb-mint); outline-offset: -3px; }  body.theme-weitblick .portal-sidebar .dropdown-menu :focus-visible { outline-color: var(--portal-primary); }
  body.theme-weitblick .bu-dropzone:focus-within { outline: 3px solid var(--portal-primary); outline-offset: 3px; }
  body.theme-weitblick .begruendung-cell textarea.begr-edit:focus-visible {
    outline: 3px solid var(--portal-primary); outline-offset: 2px;
  }
  body.theme-weitblick .dash-row .row-link:focus-visible { outline: 3px solid var(--portal-primary); outline-offset: -3px; }

  @media (min-width: 992px) {
    body.theme-weitblick .portal-main { padding: 1.75rem 2rem 4rem; }
  }
  @media (prefers-reduced-motion: reduce) {
    body.theme-weitblick *, body.theme-weitblick *::before, body.theme-weitblick *::after {
      animation: none !important; transition: none !important; scroll-behavior: auto !important;
    }
  }

  /* 12. Explizite Bootstrap-Varianten: lokale Komponentenvariablen überschreiben. */
  body.theme-weitblick {
    --bs-primary: #174847; --bs-primary-rgb: 23, 72, 71;
    --bs-primary-text-emphasis: #174847; --bs-primary-bg-subtle: #e8f0e9;
    --bs-primary-border-subtle: #174847;
  }
  body.theme-weitblick :is(.btn-primary,.btn-outline-primary) {
    --bs-btn-color: #fff; --bs-btn-bg: #174847; --bs-btn-border-color: #174847;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #174847; --bs-btn-hover-border-color: #174847;
    --bs-btn-active-color: #fff; --bs-btn-active-bg: #174847; --bs-btn-active-border-color: #174847;
    --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #174847; --bs-btn-disabled-border-color: #174847;
    --bs-btn-focus-shadow-rgb: 23, 72, 71;
    color: var(--bs-btn-color); background: var(--bs-btn-bg); border-color: var(--bs-btn-border-color);
  }
  body.theme-weitblick .btn-outline-primary {
    --bs-btn-color: #174847; --bs-btn-bg: transparent;
    --bs-btn-disabled-color: #174847; --bs-btn-disabled-bg: transparent;
  }
  body.theme-weitblick .alert-primary {
    --bs-alert-color: #174847; --bs-alert-bg: #e8f0e9; --bs-alert-border-color: #174847;
    --bs-alert-link-color: #174847;
  }
  body.theme-weitblick :is(.badge.bg-primary,.badge.text-bg-primary) {
    color: #174847 !important; background-color: #e8f0e9 !important;
  }
  body.theme-weitblick .table-primary {
    --bs-table-color: #174847; --bs-table-bg: #e8f0e9;
    --bs-table-striped-color: #174847; --bs-table-striped-bg: #e8f0e9;
    --bs-table-hover-color: #174847; --bs-table-hover-bg: #e8f0e9;
  }
  body.theme-weitblick {
    --bs-secondary: #526762; --bs-secondary-rgb: 82, 103, 98;
    --bs-secondary-text-emphasis: #526762; --bs-secondary-bg-subtle: #edf1ed;
    --bs-secondary-border-subtle: #526762;
  }
  body.theme-weitblick :is(.btn-secondary,.btn-outline-secondary) {
    --bs-btn-color: #fff; --bs-btn-bg: #526762; --bs-btn-border-color: #526762;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #526762; --bs-btn-hover-border-color: #526762;
    --bs-btn-active-color: #fff; --bs-btn-active-bg: #526762; --bs-btn-active-border-color: #526762;
    --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #526762; --bs-btn-disabled-border-color: #526762;
    --bs-btn-focus-shadow-rgb: 82, 103, 98;
    color: var(--bs-btn-color); background: var(--bs-btn-bg); border-color: var(--bs-btn-border-color);
  }
  body.theme-weitblick .btn-outline-secondary {
    --bs-btn-color: #526762; --bs-btn-bg: transparent;
    --bs-btn-disabled-color: #526762; --bs-btn-disabled-bg: transparent;
  }
  body.theme-weitblick .alert-secondary {
    --bs-alert-color: #526762; --bs-alert-bg: #edf1ed; --bs-alert-border-color: #526762;
    --bs-alert-link-color: #526762;
  }
  body.theme-weitblick :is(.badge.bg-secondary,.badge.text-bg-secondary) {
    color: #526762 !important; background-color: #edf1ed !important;
  }
  body.theme-weitblick .table-secondary {
    --bs-table-color: #526762; --bs-table-bg: #edf1ed;
    --bs-table-striped-color: #526762; --bs-table-striped-bg: #edf1ed;
    --bs-table-hover-color: #526762; --bs-table-hover-bg: #edf1ed;
  }
  body.theme-weitblick {
    --bs-success: #2f5d50; --bs-success-rgb: 47, 93, 80;
    --bs-success-text-emphasis: #2f5d50; --bs-success-bg-subtle: #e5efe6;
    --bs-success-border-subtle: #2f5d50;
  }
  body.theme-weitblick :is(.btn-success,.btn-outline-success) {
    --bs-btn-color: #fff; --bs-btn-bg: #2f5d50; --bs-btn-border-color: #2f5d50;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #2f5d50; --bs-btn-hover-border-color: #2f5d50;
    --bs-btn-active-color: #fff; --bs-btn-active-bg: #2f5d50; --bs-btn-active-border-color: #2f5d50;
    --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #2f5d50; --bs-btn-disabled-border-color: #2f5d50;
    --bs-btn-focus-shadow-rgb: 47, 93, 80;
    color: var(--bs-btn-color); background: var(--bs-btn-bg); border-color: var(--bs-btn-border-color);
  }
  body.theme-weitblick .btn-outline-success {
    --bs-btn-color: #2f5d50; --bs-btn-bg: transparent;
    --bs-btn-disabled-color: #2f5d50; --bs-btn-disabled-bg: transparent;
  }
  body.theme-weitblick .alert-success {
    --bs-alert-color: #2f5d50; --bs-alert-bg: #e5efe6; --bs-alert-border-color: #2f5d50;
    --bs-alert-link-color: #2f5d50;
  }
  body.theme-weitblick :is(.badge.bg-success,.badge.text-bg-success) {
    color: #2f5d50 !important; background-color: #e5efe6 !important;
  }
  body.theme-weitblick .table-success {
    --bs-table-color: #2f5d50; --bs-table-bg: #e5efe6;
    --bs-table-striped-color: #2f5d50; --bs-table-striped-bg: #e5efe6;
    --bs-table-hover-color: #2f5d50; --bs-table-hover-bg: #e5efe6;
  }
  body.theme-weitblick {
    --bs-danger: #943b32; --bs-danger-rgb: 148, 59, 50;
    --bs-danger-text-emphasis: #943b32; --bs-danger-bg-subtle: #f8e8e5;
    --bs-danger-border-subtle: #943b32;
  }
  body.theme-weitblick :is(.btn-danger,.btn-outline-danger) {
    --bs-btn-color: #fff; --bs-btn-bg: #943b32; --bs-btn-border-color: #943b32;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #943b32; --bs-btn-hover-border-color: #943b32;
    --bs-btn-active-color: #fff; --bs-btn-active-bg: #943b32; --bs-btn-active-border-color: #943b32;
    --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #943b32; --bs-btn-disabled-border-color: #943b32;
    --bs-btn-focus-shadow-rgb: 148, 59, 50;
    color: var(--bs-btn-color); background: var(--bs-btn-bg); border-color: var(--bs-btn-border-color);
  }
  body.theme-weitblick .btn-outline-danger {
    --bs-btn-color: #943b32; --bs-btn-bg: transparent;
    --bs-btn-disabled-color: #943b32; --bs-btn-disabled-bg: transparent;
  }
  body.theme-weitblick .alert-danger {
    --bs-alert-color: #943b32; --bs-alert-bg: #f8e8e5; --bs-alert-border-color: #943b32;
    --bs-alert-link-color: #943b32;
  }
  body.theme-weitblick :is(.badge.bg-danger,.badge.text-bg-danger) {
    color: #943b32 !important; background-color: #f8e8e5 !important;
  }
  body.theme-weitblick .table-danger {
    --bs-table-color: #943b32; --bs-table-bg: #f8e8e5;
    --bs-table-striped-color: #943b32; --bs-table-striped-bg: #f8e8e5;
    --bs-table-hover-color: #943b32; --bs-table-hover-bg: #f8e8e5;
  }
  body.theme-weitblick {
    --bs-warning: #795719; --bs-warning-rgb: 121, 87, 25;
    --bs-warning-text-emphasis: #795719; --bs-warning-bg-subtle: #f5edd6;
    --bs-warning-border-subtle: #795719;
  }
  body.theme-weitblick :is(.btn-warning,.btn-outline-warning) {
    --bs-btn-color: #fff; --bs-btn-bg: #795719; --bs-btn-border-color: #795719;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #795719; --bs-btn-hover-border-color: #795719;
    --bs-btn-active-color: #fff; --bs-btn-active-bg: #795719; --bs-btn-active-border-color: #795719;
    --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #795719; --bs-btn-disabled-border-color: #795719;
    --bs-btn-focus-shadow-rgb: 121, 87, 25;
    color: var(--bs-btn-color); background: var(--bs-btn-bg); border-color: var(--bs-btn-border-color);
  }
  body.theme-weitblick .btn-outline-warning {
    --bs-btn-color: #795719; --bs-btn-bg: transparent;
    --bs-btn-disabled-color: #795719; --bs-btn-disabled-bg: transparent;
  }
  body.theme-weitblick .alert-warning {
    --bs-alert-color: #795719; --bs-alert-bg: #f5edd6; --bs-alert-border-color: #795719;
    --bs-alert-link-color: #795719;
  }
  body.theme-weitblick :is(.badge.bg-warning,.badge.text-bg-warning) {
    color: #795719 !important; background-color: #f5edd6 !important;
  }
  body.theme-weitblick .table-warning {
    --bs-table-color: #795719; --bs-table-bg: #f5edd6;
    --bs-table-striped-color: #795719; --bs-table-striped-bg: #f5edd6;
    --bs-table-hover-color: #795719; --bs-table-hover-bg: #f5edd6;
  }
  body.theme-weitblick {
    --bs-info: #325d75; --bs-info-rgb: 50, 93, 117;
    --bs-info-text-emphasis: #325d75; --bs-info-bg-subtle: #e6eef4;
    --bs-info-border-subtle: #325d75;
  }
  body.theme-weitblick :is(.btn-info,.btn-outline-info) {
    --bs-btn-color: #fff; --bs-btn-bg: #325d75; --bs-btn-border-color: #325d75;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #325d75; --bs-btn-hover-border-color: #325d75;
    --bs-btn-active-color: #fff; --bs-btn-active-bg: #325d75; --bs-btn-active-border-color: #325d75;
    --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #325d75; --bs-btn-disabled-border-color: #325d75;
    --bs-btn-focus-shadow-rgb: 50, 93, 117;
    color: var(--bs-btn-color); background: var(--bs-btn-bg); border-color: var(--bs-btn-border-color);
  }
  body.theme-weitblick .btn-outline-info {
    --bs-btn-color: #325d75; --bs-btn-bg: transparent;
    --bs-btn-disabled-color: #325d75; --bs-btn-disabled-bg: transparent;
  }
  body.theme-weitblick .alert-info {
    --bs-alert-color: #325d75; --bs-alert-bg: #e6eef4; --bs-alert-border-color: #325d75;
    --bs-alert-link-color: #325d75;
  }
  body.theme-weitblick :is(.badge.bg-info,.badge.text-bg-info) {
    color: #325d75 !important; background-color: #e6eef4 !important;
  }
  body.theme-weitblick .table-info {
    --bs-table-color: #325d75; --bs-table-bg: #e6eef4;
    --bs-table-striped-color: #325d75; --bs-table-striped-bg: #e6eef4;
    --bs-table-hover-color: #325d75; --bs-table-hover-bg: #e6eef4;
  }
  body.theme-weitblick {
    --bs-light: #526762; --bs-light-rgb: 82, 103, 98;
    --bs-light-text-emphasis: #526762; --bs-light-bg-subtle: #f4f6f3;
    --bs-light-border-subtle: #526762;
  }
  body.theme-weitblick :is(.btn-light,.btn-outline-light) {
    --bs-btn-color: #fff; --bs-btn-bg: #526762; --bs-btn-border-color: #526762;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #526762; --bs-btn-hover-border-color: #526762;
    --bs-btn-active-color: #fff; --bs-btn-active-bg: #526762; --bs-btn-active-border-color: #526762;
    --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #526762; --bs-btn-disabled-border-color: #526762;
    --bs-btn-focus-shadow-rgb: 82, 103, 98;
    color: var(--bs-btn-color); background: var(--bs-btn-bg); border-color: var(--bs-btn-border-color);
  }
  body.theme-weitblick .btn-outline-light {
    --bs-btn-color: #526762; --bs-btn-bg: transparent;
    --bs-btn-disabled-color: #526762; --bs-btn-disabled-bg: transparent;
  }
  body.theme-weitblick .alert-light {
    --bs-alert-color: #526762; --bs-alert-bg: #f4f6f3; --bs-alert-border-color: #526762;
    --bs-alert-link-color: #526762;
  }
  body.theme-weitblick :is(.badge.bg-light,.badge.text-bg-light) {
    color: #526762 !important; background-color: #f4f6f3 !important;
  }
  body.theme-weitblick .table-light {
    --bs-table-color: #526762; --bs-table-bg: #f4f6f3;
    --bs-table-striped-color: #526762; --bs-table-striped-bg: #f4f6f3;
    --bs-table-hover-color: #526762; --bs-table-hover-bg: #f4f6f3;
  }
  body.theme-weitblick {
    --bs-dark: #193b3d; --bs-dark-rgb: 25, 59, 61;
    --bs-dark-text-emphasis: #193b3d; --bs-dark-bg-subtle: #e8f0e9;
    --bs-dark-border-subtle: #193b3d;
  }
  body.theme-weitblick :is(.btn-dark,.btn-outline-dark) {
    --bs-btn-color: #fff; --bs-btn-bg: #193b3d; --bs-btn-border-color: #193b3d;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #193b3d; --bs-btn-hover-border-color: #193b3d;
    --bs-btn-active-color: #fff; --bs-btn-active-bg: #193b3d; --bs-btn-active-border-color: #193b3d;
    --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #193b3d; --bs-btn-disabled-border-color: #193b3d;
    --bs-btn-focus-shadow-rgb: 25, 59, 61;
    color: var(--bs-btn-color); background: var(--bs-btn-bg); border-color: var(--bs-btn-border-color);
  }
  body.theme-weitblick .btn-outline-dark {
    --bs-btn-color: #193b3d; --bs-btn-bg: transparent;
    --bs-btn-disabled-color: #193b3d; --bs-btn-disabled-bg: transparent;
  }
  body.theme-weitblick .alert-dark {
    --bs-alert-color: #193b3d; --bs-alert-bg: #e8f0e9; --bs-alert-border-color: #193b3d;
    --bs-alert-link-color: #193b3d;
  }
  body.theme-weitblick :is(.badge.bg-dark,.badge.text-bg-dark) {
    color: #193b3d !important; background-color: #e8f0e9 !important;
  }
  body.theme-weitblick .table-dark {
    --bs-table-color: #193b3d; --bs-table-bg: #e8f0e9;
    --bs-table-striped-color: #193b3d; --bs-table-striped-bg: #e8f0e9;
    --bs-table-hover-color: #193b3d; --bs-table-hover-bg: #e8f0e9;
  }
  /* Zustände nach den Varianten, damit portal.css :hover/:focus nicht zurückfärbt. */
  body.theme-weitblick .btn:not(.btn-link):is(:hover,:focus-visible) {
    color: var(--bs-btn-hover-color); background-color: var(--bs-btn-hover-bg); border-color: var(--bs-btn-hover-border-color);
  }
  body.theme-weitblick .btn:not(.btn-link):is(:active,.active),
  body.theme-weitblick .btn-check:checked + .btn {
    color: var(--bs-btn-active-color); background-color: var(--bs-btn-active-bg); border-color: var(--bs-btn-active-border-color);
  }
  body.theme-weitblick .btn:not(.btn-link):is(:disabled,.disabled) {
    color: var(--bs-btn-disabled-color); background-color: var(--bs-btn-disabled-bg); border-color: var(--bs-btn-disabled-border-color);
  }
  body.theme-weitblick :is(.btn-light,.btn-outline-light) {
    --bs-btn-color: var(--wb-ink); --bs-btn-bg: #fff; --bs-btn-border-color: var(--wb-control);
  }
  body.theme-weitblick .btn-check:checked + .btn .text-muted { color: #fff !important; }
  body.theme-weitblick .progress { --bs-progress-bg: var(--wb-line); --bs-progress-bar-bg: var(--portal-primary); }
  body.theme-weitblick .pagination {
    --bs-pagination-color: var(--portal-primary); --bs-pagination-hover-color: var(--portal-primary);
    --bs-pagination-hover-bg: var(--wb-mint); --bs-pagination-active-bg: var(--portal-primary);
    --bs-pagination-active-border-color: var(--portal-primary); --bs-pagination-border-color: var(--wb-control);
  }
  body.theme-weitblick :is(.pt-chip-green,.pt-chip-teal,.sp-best,.schluessel-ok,.booking.status-genehmigt,.va-chip.erledigt,.va-st.uebernommen,.bd-vbtn.voted) { color: #2f5d50; background: #e5efe6; }
  body.theme-weitblick :is(.pt-chip-amber,.sp-warn,.schluessel-warn,.booking.status-offen,.va-chip.offen,.va-st.offen) { color: #795719; background: #f5edd6; }
  body.theme-weitblick :is(.pt-chip-red,.sp-ab,.schluessel-danger,.booking.status-abgelehnt,.va-chip.gestrichen,.va-chip.pflicht,.bd-vbtn.rejected) { color: #943b32; background: #f8e8e5; }
  body.theme-weitblick :is(.pt-chip-blue,.pt-chip-violet,.sp-res,.va-chip.gestellt,.va-st.abgegeben) { color: #325d75; background: #e6eef4; }
  body.theme-weitblick :is(.pt-chip-gray,.sp-erl,.va-chip.neu,.abt-badge) { color: #526762; background: #edf1ed; }
  /* Helle Bootstrap-Flächen bleiben hell; Button-/Badge-Texte separat oben. */
  body.theme-weitblick {
    --bs-light: #f4f6f3; --bs-light-rgb: 244, 246, 243;
    --bs-dark: #193b3d; --bs-dark-rgb: 25, 59, 61;
  }
  body.theme-weitblick .va-wrap #t-positionen { overflow-x: auto; }
  body.theme-weitblick .va-wrap .va-tbl { min-width: 1180px; }
  body.theme-weitblick .chr-obl { background: var(--wb-info); }
  body.theme-weitblick .bd-stat .num.green { color: var(--wb-success); }
  body.theme-weitblick .bd-chat-badge { color: #fff; background: var(--wb-warning); }
  body.theme-weitblick .bd-vortrag { background: var(--wb-success-bg); border-left-color: var(--wb-success); }
  body.theme-weitblick .bd-vortrag .al { color: var(--wb-success); }
  body.theme-weitblick .bd-blitz-bar .ja { background: var(--wb-success); }
  body.theme-weitblick .bd-blitz-bar .nein { background: var(--wb-danger); }
  body.theme-weitblick .bd-blitz-zahlen .ja { color: var(--wb-success); }
  body.theme-weitblick .bd-blitz-zahlen .nein { color: var(--wb-danger); }
  body.theme-weitblick .va-hint.ok .antwort { color: var(--wb-success); }
  body.theme-weitblick .va-ent-wert { color: var(--wb-danger); }

}

/* ── Ergänzungen Claude (Prüfung an echten Seiten, 26.09.2026) ─────────────────────────── */
@media screen {
  /* Niederschriften: eigene Reiterleiste (.ns-tabs) → Pillen wie überall (Simon: keine Reiter mit Linie). */
  body.theme-weitblick .ns-tabs { border-bottom: 0; gap: .35rem; }
  body.theme-weitblick .ns-tab {
    display: inline-flex; align-items: center; gap: .3rem; padding: .3rem .75rem; border: 1px solid var(--wb-control);
    border-radius: 999px; color: var(--wb-ink); background: #fff; font-size: .75rem; font-weight: 500;
    text-decoration: none; /* Fördermittel/Verordnungen nutzen .ns-tab ohne eigenen Seiten-Stil → sonst Link-Unterstrich. */
  }
  body.theme-weitblick .ns-tab:hover { background: var(--wb-mint); color: var(--portal-primary); border-color: var(--portal-primary); }
  body.theme-weitblick .ns-tab.active { background: var(--portal-primary); color: #fff; border-color: var(--portal-primary); font-weight: 600; }
}

/* ── Login-Seite (core/login.html, Klasse wb-login) ───────────────────────────────────── */
@media screen {
  body.theme-weitblick.wb-login .portal-navbar { display: none; }
  body.theme-weitblick.wb-login > main.container { max-width: 1120px; padding-top: 2rem; padding-bottom: 2rem; }
  body.theme-weitblick .wb-login-karte {
    display: grid; grid-template-columns: 1.1fr 1fr; min-height: min(640px, calc(100vh - 4rem));
    background: #fff; border: 1px solid var(--wb-line); border-radius: .75rem; overflow: hidden;
  }
  body.theme-weitblick .wb-login-bild {
    position: relative; display: flex; flex-direction: column; background: var(--wb-petrol);
    color: #edf3ed; padding: 2rem 2.25rem 0; overflow: hidden;
  }
  body.theme-weitblick .wb-login-marke { display: flex; align-items: center; gap: .75rem; color: #fff; text-decoration: none; }
  body.theme-weitblick .wb-login-marke:hover { color: #fff; }
  body.theme-weitblick .wb-login-marke img { width: 30px; height: auto; }
  body.theme-weitblick .wb-login-marke b { display: block; font-family: var(--wb-display); font-size: 1rem; }
  body.theme-weitblick .wb-login-marke small { display: block; font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: #bbcec5; }
  body.theme-weitblick .wb-login-text { margin-top: 3.5rem; position: relative; z-index: 1; }
  body.theme-weitblick .wb-login-titel {
    font-family: var(--wb-display); font-weight: 700; font-size: 2.6rem; line-height: 1.12;
    letter-spacing: -.035em; color: #fff; margin: 0 0 1rem;
  }
  body.theme-weitblick .wb-login-unter { max-width: 30ch; color: #c9d9d0; font-size: .9375rem; line-height: 1.55; margin: 0; }
  body.theme-weitblick .wb-login-landschaft { display: block; width: calc(100% + 4.5rem); margin: auto -2.25rem 0; height: auto; }
  body.theme-weitblick .wb-login-form { display: flex; flex-direction: column; justify-content: center; padding: 3rem 3.25rem; }
  body.theme-weitblick .wb-login-form h1 { font-size: 1.75rem; margin: 0 0 .35rem; }
  body.theme-weitblick .wb-login-hinweis { color: var(--wb-muted); font-size: .875rem; margin: 0 0 1.75rem; }
  body.theme-weitblick .wb-login-form .form-control { font-size: .9375rem; padding: .6rem .75rem; }
  body.theme-weitblick .wb-login-form .form-label { font-weight: 600; }
  body.theme-weitblick .wb-login-form .btn-primary { padding: .65rem 1rem; font-size: .9375rem; }
  body.theme-weitblick .wb-login-fuss { margin: 1.75rem 0 0; font-size: .8125rem; color: var(--wb-muted); line-height: 1.7; }
  @media (max-width: 767.98px) {
    body.theme-weitblick .wb-login-karte { grid-template-columns: 1fr; }
    body.theme-weitblick .wb-login-text { margin-top: 1.75rem; }
    body.theme-weitblick .wb-login-titel { font-size: 2rem; }
    body.theme-weitblick .wb-login-form { padding: 2rem 1.5rem; }
  }
}

/* Hintergrund auch unterhalb kurzer Seiten (das <html>-Element trägt die Theme-Klasse nicht). */
@media screen {
  html:has(> body.theme-weitblick) { background: #f4f6f3; }
  body.theme-weitblick { min-height: 100vh; }
}

/* ── Öffentliche Startseite (core/landing.html) ───────────────────────────────────────── */
@media screen {
  body.theme-weitblick .wb-landing { max-width: 1120px; margin: 0 auto; padding-top: 1rem; }
  body.theme-weitblick .wb-landing-kopf {
    position: relative; display: flex; min-height: 280px; overflow: hidden;
    background: #e5eee5; border-radius: .75rem;
  }
  body.theme-weitblick .wb-landing-text { position: relative; z-index: 1; flex: 0 0 55%; padding: 2.25rem 2.5rem; }
  body.theme-weitblick .wb-landing-ueber {
    font-size: .6875rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
    color: var(--wb-muted); margin: 0 0 1rem;
  }
  body.theme-weitblick .wb-landing h1 {
    font-size: clamp(2.2rem, 4vw, 3rem); line-height: 1.1; letter-spacing: -.035em; margin: 0 0 .5rem; color: var(--wb-petrol);
  }
  body.theme-weitblick .wb-landing-frage { font-family: var(--wb-display); font-size: 1.35rem; font-weight: 600; color: #587064; margin: 0; }
  body.theme-weitblick .wb-landing-landschaft { position: absolute; right: 0; bottom: 0; width: 55%; height: 100%; }
  /* 200 px: fünf Kacheln (inkl. Grundstücksinfo) passen in die 1120-px-Breite nebeneinander */
  body.theme-weitblick .wb-landing-kacheln {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-top: 1.5rem;
  }
  body.theme-weitblick .wb-kachel {
    display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; padding: 1.4rem 1.4rem 1.25rem;
    background: #fff; border: 1px solid var(--wb-line); border-radius: .6rem; color: var(--wb-ink); text-decoration: none;
  }
  body.theme-weitblick a.wb-kachel:hover { border-color: var(--portal-primary); color: var(--wb-ink); }
  body.theme-weitblick .wb-kachel-icon {
    display: grid; place-items: center; width: 42px; height: 42px; border-radius: .5rem;
    background: var(--wb-mint); color: var(--portal-primary); font-size: 1.2rem;
  }
  body.theme-weitblick .wb-kachel h2 { font-size: 1.15rem; margin: .35rem 0 0; }
  body.theme-weitblick .wb-kachel p { color: var(--wb-muted); font-size: .8125rem; line-height: 1.55; margin: 0 0 .5rem; }
  body.theme-weitblick .wb-kachel-link { margin-top: auto; color: var(--portal-primary); font-weight: 600; font-size: .8125rem; }
  body.theme-weitblick .wb-kachel-aus { background: var(--wb-bg); }
  body.theme-weitblick .wb-kachel-aus :is(h2, p, .wb-kachel-icon) { opacity: .6; }
  body.theme-weitblick .wb-kachel-bald {
    margin-top: auto; font-size: .6875rem; font-weight: 600; color: var(--wb-muted);
    border: 1px solid var(--wb-line); border-radius: 999px; padding: .1rem .6rem; background: #fff;
  }
  body.theme-weitblick .wb-landing-kontakt {
    display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 1.5rem 0 0; font-size: .8125rem; color: var(--wb-muted);
  }
  body.theme-weitblick .portal-navbar .navbar-brand { color: var(--wb-petrol); }
  body.theme-weitblick .portal-navbar .nav-link { color: var(--portal-primary); font-weight: 600; }
  @media (max-width: 767.98px) {
    body.theme-weitblick .wb-landing-text { flex-basis: 100%; padding: 1.75rem 1.5rem 7rem; }
    body.theme-weitblick .wb-landing-landschaft { width: 100%; height: 45%; }
  }
}

/* ── Seitenleiste: Wortmarke und Gruppen (templates/base.html, nur im neuen Design) ──────── */
@media screen {
  body.theme-weitblick .wb-marke { align-items: center; gap: .7rem; }
  body.theme-weitblick .wb-wortmarke {
    font-family: var(--wb-display); font-weight: 800; font-size: 1.45rem; line-height: 1;
    letter-spacing: -.04em; color: #fff;
  }
  body.theme-weitblick .wb-wortmarke i {
    display: inline-block; width: 6px; height: 6px; margin-left: 2px; background: var(--wb-lime); border-radius: 1px;
  }
  body.theme-weitblick .wb-marke .sidebar-brand-sub { margin-top: .3rem; letter-spacing: .12em; text-transform: uppercase; }
  body.theme-weitblick .wb-gruppe { padding: 1rem .65rem .35rem; }
  body.theme-weitblick .wb-gruppe-erste { padding-top: .25rem; }
}

/* ── Startseite „Mein Tag“: Landschaft im Kopf (core/dashboard.html) ───────────────────── */
@media screen {
  body.theme-weitblick .portal-hero.wb-hero { position: relative; overflow: hidden; min-height: 200px; background: #e5eee5; }
  body.theme-weitblick .wb-hero > :not(.wb-hero-landschaft) { position: relative; z-index: 1; }
  body.theme-weitblick .wb-hero-landschaft { position: absolute; right: 0; bottom: 0; width: 46%; height: 100%; }
  @media (max-width: 991.98px) { body.theme-weitblick .wb-hero-landschaft { opacity: .35; width: 70%; } }
}

/* ── Schnellsuche „Gehe zu …“ (static/js/weitblick.js) ──────────────────────────────────── */
@media screen {
  body.theme-weitblick .wb-suche-knopf {
    display: flex; align-items: center; gap: .5rem; width: 100%; margin: 0 0 .75rem;
    padding: .45rem .65rem; border: 1px solid #42645d; border-radius: .4rem;
    background: #1f4a48; color: #c9d9d0; font-size: .75rem; text-align: left;
  }
  body.theme-weitblick .wb-suche-knopf:hover { background: #28504b; color: #fff; }
  body.theme-weitblick .wb-suche-knopf span { flex: 1; }
  body.theme-weitblick .wb-suche-knopf kbd {
    font: 600 .625rem var(--wb-sans); color: #c9d9d0; background: transparent;
    border: 1px solid #42645d; border-radius: .25rem; padding: .05rem .3rem;
  }
  body.theme-weitblick dialog.wb-suche {
    width: min(560px, calc(100vw - 2rem)); margin-top: 12vh; padding: 0; border: 1px solid var(--wb-line);
    border-radius: .65rem; box-shadow: var(--portal-shadow-md); color: var(--wb-ink); background: #fff;
  }
  body.theme-weitblick dialog.wb-suche::backdrop { background: rgb(23 62 62 / 45%); }
  body.theme-weitblick .wb-suche-kopf {
    display: flex; align-items: center; gap: .6rem; padding: .75rem 1rem; border-bottom: 1px solid var(--wb-line);
  }
  body.theme-weitblick .wb-suche-kopf input {
    flex: 1; border: 0; outline: 0; font-size: .9375rem; color: var(--wb-ink); background: transparent;
  }
  body.theme-weitblick .wb-suche ul { list-style: none; margin: 0; padding: .35rem; max-height: 55vh; overflow-y: auto; }
  body.theme-weitblick .wb-suche li {
    display: flex; align-items: center; gap: .65rem; padding: .5rem .65rem; border-radius: .4rem;
    font-size: .8125rem; cursor: pointer;
  }
  body.theme-weitblick .wb-suche li:hover { background: var(--wb-mint); }
  /* gewählter Treffer: eine Stufe dunkler als Hover, kein Gelbgrün mehr (01.10.2026) */
  body.theme-weitblick .wb-suche li[aria-selected="true"] { background: #d9e6da; color: var(--wb-petrol); font-weight: 600; }
  body.theme-weitblick .wb-suche li.wb-suche-leer { color: var(--wb-muted); cursor: default; }
  body.theme-weitblick .wb-suche-fuss {
    margin: 0; padding: .5rem 1rem; border-top: 1px solid var(--wb-line); font-size: .6875rem; color: var(--wb-muted);
  }
}

/* ── Kopfzeile mit Pfad und Suchfeld (templates/base.html, nur Desktop) ────────────────── */
@media screen {
  body.theme-weitblick .wb-kopfzeile {
    align-items: center; gap: 1.25rem; min-height: 56px; margin: -1.5rem -1.25rem 1.5rem;
    padding: 0 1.25rem; background: #fff; border-bottom: 1px solid var(--wb-line);
  }
  @media (min-width: 992px) {
    body.theme-weitblick .wb-kopfzeile { margin: -1.75rem -2rem 1.5rem; padding: 0 2rem; }
    body.theme-weitblick .wb-suche-knopf { display: none; }
  }
  body.theme-weitblick .wb-pfad { display: flex; align-items: center; gap: .5rem; font-size: .8125rem; color: var(--wb-muted); }
  body.theme-weitblick .wb-pfad a { color: var(--wb-muted); text-decoration: none; }
  body.theme-weitblick .wb-pfad a:hover { color: var(--portal-primary); }
  body.theme-weitblick .wb-pfad span { color: var(--wb-ink); font-weight: 600; }
  body.theme-weitblick .wb-pfad a.wb-pfad-modul { color: var(--wb-ink); font-weight: 600; }
  body.theme-weitblick .wb-pfad a.wb-pfad-modul:hover { color: var(--portal-primary); }
  body.theme-weitblick .wb-pfad i { font-size: .625rem; }
  body.theme-weitblick .wb-suchfeld {
    display: flex; align-items: center; gap: .5rem; margin-left: auto; width: 300px;
    padding: .4rem .65rem; border: 1px solid var(--wb-line); border-radius: .4rem; background: var(--wb-bg);
    color: var(--wb-muted); cursor: text;
  }
  body.theme-weitblick .wb-suchfeld:hover { border-color: var(--wb-control); }
  body.theme-weitblick .wb-suchfeld input {
    flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-size: .8125rem; color: var(--wb-ink);
  }
  body.theme-weitblick .wb-suchfeld:focus-within { outline: 3px solid var(--portal-primary); outline-offset: 2px; }
  body.theme-weitblick .wb-suchfeld kbd {
    font: 600 .625rem var(--wb-sans); color: var(--wb-muted); background: #fff;
    border: 1px solid var(--wb-line); border-radius: .25rem; padding: .05rem .3rem;
  }
  body.theme-weitblick .wb-version {
    font-size: .6875rem; color: var(--wb-muted); white-space: nowrap;
    border: 1px solid var(--wb-line); border-radius: 999px; padding: .15rem .6rem; background: #fff;
  }
}

/* ── Druck: Die Schicht gilt nur am Bildschirm; die neuen Zusatzelemente im Druck ausblenden ─ */
@media print {
  body.theme-weitblick :is(.wb-kopfzeile, .wb-suche-knopf, dialog.wb-suche, .wb-hero-landschaft,
      .wb-landing-landschaft, .wb-login-landschaft) { display: none !important; }
}

/* ── Vereinsportal (vereinsfoerderung/portal/_base.html, Klasse vp-weitblick) ──────────────── */
@media screen {
  body.theme-weitblick.vp-weitblick .vp-header { border-bottom-color: var(--wb-line); }
  body.theme-weitblick.vp-weitblick .vp-header .fw-bold { font-family: var(--wb-display); font-weight: 800; color: var(--wb-petrol); }
  body.theme-weitblick.vp-weitblick .vp-card { border-color: var(--wb-line); border-radius: .6rem; }
  body.theme-weitblick.vp-weitblick .vp-muted { color: var(--wb-muted); }
  body.theme-weitblick.vp-weitblick .vp-check { border-bottom-color: var(--wb-line); }
  body.theme-weitblick.vp-weitblick footer hr { border-color: var(--wb-line); opacity: 1; }
}
/* Vereinsportal: Vereine arbeiten selten im Portal → größere, ruhigere Schrift als im Büro-Portal. */
@media screen {
  body.theme-weitblick.vp-weitblick { font-size: .9375rem; }
  body.theme-weitblick.vp-weitblick .small, body.theme-weitblick.vp-weitblick small { font-size: .8125rem; }
  body.theme-weitblick.vp-weitblick :is(.form-control, .form-select) { font-size: .9375rem; padding: .5rem .7rem; }
  body.theme-weitblick.vp-weitblick :is(.form-label, .form-check-label) { font-size: .875rem; }
  body.theme-weitblick.vp-weitblick .btn { font-size: .875rem; padding: .5rem .9rem; }
  body.theme-weitblick.vp-weitblick .btn-sm { font-size: .8125rem !important; padding: .3rem .7rem !important; }
  body.theme-weitblick.vp-weitblick :is(table, .table) > :is(thead, tbody, tfoot) > tr > :is(th, td) { font-size: .8125rem; padding: .5rem .6rem; }
  body.theme-weitblick.vp-weitblick .alert { font-size: .875rem; }
}

/* ── Restliche fest eingestellte Schriften (Templates) auf Weitblick umstellen ─────────────── */
@media screen {
  body.theme-weitblick .ns-kpi .num { font-family: var(--wb-display); }
  body.theme-weitblick [style*="font-family"]:not([style*="monospace"]):not([style*="Inter Tight"]):not([style*="Bricolage"]):not([style*="Arial"]) {
    font-family: var(--wb-sans) !important;
  }
  body.theme-weitblick [style*="font-family"][style*="Bricolage"] { font-family: var(--wb-display) !important; }
}

/* ── Kopfleiste am Handy: Wortmarke dunkel auf Weiß ────────────────────────────────────── */
@media screen {
  body.theme-weitblick .wb-wortmarke-dunkel { color: var(--wb-petrol); font-size: 1.3rem; }
  body.theme-weitblick .wb-wortmarke-dunkel i { background: #9bb85a; }
  body.theme-weitblick .portal-topbar .topbar-brand { display: inline-flex; align-items: center; gap: .5rem; }
}

/* ── „Mein Tag“ (core/dashboard_weitblick.html, 27.09.2026) ─────────────────────────────────
   Nach dem Codex-Entwurf (Kopf, „Jetzt im Fokus“, „Heute im Haus“, „Gut im Blick“), Schrift
   gegenüber dem Entwurf etwas größer (Desktop-Lesbarkeit). */
@media screen {
  body.theme-weitblick .wb-tag-kopf { min-height: 240px; padding: 2rem 2.25rem; }
  body.theme-weitblick .wb-tag-ueber { font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted); }
  body.theme-weitblick .wb-tag-kopf h1 { font-family: var(--wb-display); font-size: 2.6rem; line-height: 1.12; letter-spacing: -.045em; font-weight: 600; margin: .75rem 0 .6rem; color: var(--wb-ink); max-width: 52%; }
  body.theme-weitblick .wb-tag-satz { color: #587064; font-size: .9375rem; margin: 0; }
  body.theme-weitblick .wb-tag-links { display: flex; gap: 1.25rem; margin-top: 1.25rem; flex-wrap: wrap; }
  body.theme-weitblick .wb-tag-links a, body.theme-weitblick .wb-textlink {
    display: inline-flex; align-items: center; gap: .45rem; color: var(--wb-petrol); font-size: .8125rem; font-weight: 600; text-decoration: none; }
  body.theme-weitblick .wb-tag-links a:hover, body.theme-weitblick .wb-textlink:hover { text-decoration: underline; }
  /* „Mein ToDo“ als ruhiger Knopf statt Textlink (#90, Feedback 06.10.2026: „etwas größer … die Schrift oder die
     Maske“). Eigene Regel – .wb-textlink bleibt überall sonst klein; der Kopf wird nicht höher (min-height). */
  body.theme-weitblick .wb-tag-links a.wb-tag-todo {
    gap: .5rem; padding: .4rem .85rem; margin-block: -.5rem; font-size: .9375rem; background: #fff; border: 1px solid #d1ded1; border-radius: .5rem; }
  body.theme-weitblick .wb-tag-links a.wb-tag-todo:hover { text-decoration: none; border-color: var(--wb-petrol); }
  body.theme-weitblick .wb-tag-todo .bi-check2-square { font-size: 1.05rem; }
  body.theme-weitblick .wb-tag-todo .wb-pille { font-size: .75rem; font-weight: 600; }

  body.theme-weitblick .wb-tag-raster { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 1.5rem; align-items: stretch; }
  /* Beide Spalten gleich hoch, keine Lücke unter der kürzeren Karte (Simon 27.09.) */
  body.theme-weitblick .wb-tag-raster > section { display: flex; flex-direction: column; min-width: 0; }
  body.theme-weitblick .wb-tag-raster > section > .wb-fokus, body.theme-weitblick .wb-tag-raster > section > .wb-haus { flex: 1 1 auto; }
  body.theme-weitblick .wb-tag-raster-voll { grid-template-columns: 1fr; }
  body.theme-weitblick .wb-tag-abschnitt { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .85rem; }
  body.theme-weitblick .wb-tag-abschnitt h2 { font-family: var(--wb-display); font-size: 1.2rem; font-weight: 600; letter-spacing: -.02em; margin: 0; color: var(--wb-ink); }
  body.theme-weitblick .wb-tag-abschnitt h2 span { font-family: var(--wb-sans); font-size: .75rem; font-weight: 400; letter-spacing: 0; color: var(--wb-muted); margin-left: .4rem; }
  body.theme-weitblick .wb-tag-hinweis { font-size: .75rem; color: var(--wb-muted); }

  /* Jetzt im Fokus */
  body.theme-weitblick .wb-fokus { border: 1px solid var(--wb-line); border-radius: 8px; background: #fff; overflow: hidden; }
  body.theme-weitblick .wb-fokus-eintrag { display: block; color: var(--wb-ink); text-decoration: none; border-top: 1px solid var(--wb-line); }
  body.theme-weitblick .wb-fokus > .wb-fokus-eintrag:first-child { border-top: 0; }
  body.theme-weitblick a.wb-fokus-eintrag, body.theme-weitblick .wb-fokus-eintrag > summary {
    display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1.05rem 1.35rem; }
  body.theme-weitblick .wb-fokus-eintrag > summary { list-style: none; cursor: pointer; }
  body.theme-weitblick .wb-fokus-eintrag > summary::-webkit-details-marker { display: none; }
  body.theme-weitblick a.wb-fokus-eintrag:hover, body.theme-weitblick .wb-fokus-eintrag > summary:hover { background: #f7faf5; }
  body.theme-weitblick .wb-fokus-icon { width: 38px; height: 38px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 1.05rem; background: var(--wb-mint); color: var(--wb-petrol); }
  body.theme-weitblick .wb-fokus-dang .wb-fokus-icon { background: var(--wb-danger-bg); color: var(--wb-danger); }
  body.theme-weitblick .wb-fokus-warn .wb-fokus-icon { background: var(--wb-warning-bg); color: var(--wb-warning); }
  body.theme-weitblick .wb-fokus-info .wb-fokus-icon { background: var(--wb-info-bg); color: var(--wb-info); }
  body.theme-weitblick .wb-fokus-text { display: flex; flex-direction: column; min-width: 0; }
  body.theme-weitblick .wb-fokus-ueber { font-size: .625rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted); }
  body.theme-weitblick .wb-fokus-ueber b { font-weight: 500; letter-spacing: 0; text-transform: none; font-size: .75rem; margin-left: .5rem; color: #6a7f6c; }
  body.theme-weitblick .wb-fokus-dang .wb-fokus-ueber b { color: var(--wb-danger); }
  body.theme-weitblick .wb-fokus-titel { font-size: .9375rem; font-weight: 600; margin: .2rem 0 .15rem; }
  body.theme-weitblick .wb-fokus-sub { font-size: .8125rem; color: var(--wb-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  body.theme-weitblick .wb-fokus-aktion { font-size: .8125rem; font-weight: 600; color: var(--wb-petrol); white-space: nowrap; }
  body.theme-weitblick .wb-fokus-pfeil { transition: transform .15s; color: var(--wb-petrol); }
  body.theme-weitblick .wb-fokus-auftraege[open] .wb-fokus-pfeil { transform: rotate(180deg); }
  body.theme-weitblick .wb-fokus-mehr { border-top: 1px solid var(--wb-line); }
  body.theme-weitblick .wb-fokus-mehr > summary { padding: .8rem 1.35rem; font-size: .8125rem; font-weight: 600; color: var(--wb-petrol); cursor: pointer; }
  body.theme-weitblick .wb-fokus-mehr > summary span { font-weight: 400; color: var(--wb-muted); margin-left: .35rem; }
  body.theme-weitblick .wb-fokus-leer { padding: 1.4rem 1.35rem; color: var(--wb-muted); font-size: .875rem; }
  body.theme-weitblick .wb-fokus-leer i { color: var(--wb-success); margin-right: .35rem; }

  /* Aufträge (aufgeklappt, mit „Erledigt“) */
  body.theme-weitblick .wb-auftraege { padding: 0 1.35rem .9rem calc(1.35rem + 38px + 1rem); }
  body.theme-weitblick .wb-auftrag { display: flex; gap: 1rem; align-items: flex-start; padding: .8rem 0; border-top: 1px dashed var(--wb-line); }
  body.theme-weitblick .wb-auftrag-text { flex: 1; min-width: 0; }
  body.theme-weitblick .wb-auftrag-titel { font-weight: 600; font-size: .875rem; }
  body.theme-weitblick .wb-auftrag-sub { font-size: .75rem; color: var(--wb-muted); margin: .1rem 0 .3rem; }
  body.theme-weitblick .wb-auftrag-inhalt { font-size: .875rem; }
  body.theme-weitblick .wb-auftrag-form { display: flex; flex-direction: column; gap: .35rem; width: 170px; flex-shrink: 0; }
  body.theme-weitblick .wb-auftraege-alle { display: inline-block; font-size: .8125rem; color: var(--wb-petrol); padding-top: .4rem; }

  /* Pillen */
  body.theme-weitblick .wb-pille { display: inline-flex; align-items: center; padding: .1rem .5rem; border-radius: 4px; font-size: .6875rem; line-height: 1.6; background: #edf1ed; color: #536a62; white-space: nowrap; }
  body.theme-weitblick .wb-pille-gut { background: var(--wb-success-bg); color: var(--wb-success); }
  body.theme-weitblick .wb-pille-schlecht { background: var(--wb-danger-bg); color: var(--wb-danger); }
  body.theme-weitblick .wb-pille-warn { background: var(--wb-warning-bg); color: var(--wb-warning); }
  body.theme-weitblick .wb-pille-rand { background: transparent; border: 1px solid #d1ded1; }

  /* Heute im Haus */
  body.theme-weitblick .wb-haus { display: flex; flex-direction: column; border: 1px solid var(--wb-line); border-radius: 8px; background: #fff; padding: 1.2rem 1.35rem; }
  body.theme-weitblick .wb-haus-kopf { display: flex; justify-content: space-between; align-items: center; padding-bottom: .9rem; }
  body.theme-weitblick .wb-haus-kopf strong { font: 600 1.9rem var(--wb-display); letter-spacing: -.04em; color: var(--wb-ink); }
  body.theme-weitblick .wb-haus-kopf div span { font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; color: var(--wb-muted); margin-left: .45rem; }
  body.theme-weitblick .wb-zeit { display: grid; grid-template-columns: 46px 1fr; gap: .9rem; padding: .7rem 0; }
  body.theme-weitblick .wb-zeit time { font-size: .8125rem; color: var(--wb-muted); padding-top: 1px; }
  body.theme-weitblick .wb-zeit > div { border-left: 2px solid #d4e1d1; padding-left: .85rem; min-width: 0; }
  body.theme-weitblick .wb-haus .wb-zeit:first-of-type > div { border-color: #739475; }
  body.theme-weitblick .wb-zeit b { font-weight: 600; font-size: .875rem; display: block; }
  body.theme-weitblick .wb-zeit p { font-size: .75rem; color: var(--wb-muted); margin: .2rem 0 0; }
  body.theme-weitblick .wb-raum-punkt { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: .35rem; vertical-align: 1px; }
  body.theme-weitblick .wb-haus-leer { color: var(--wb-muted); font-size: .875rem; margin: .25rem 0 .5rem; }
  body.theme-weitblick .wb-haus-naechster { font-size: .8125rem; margin: 0; }
  body.theme-weitblick .wb-haus .wb-textlink { margin-top: auto; padding-top: .75rem; align-self: flex-start; }

  /* Gut im Blick */
  body.theme-weitblick .wb-blick { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
  body.theme-weitblick .wb-blick-karte { position: relative; display: flex; flex-direction: column; border: 1px solid var(--wb-line); border-radius: 8px; background: #fff; padding: 1.25rem 1.35rem; color: var(--wb-ink); text-decoration: none; }
  body.theme-weitblick a.wb-blick-karte:hover { border-color: var(--wb-petrol); color: var(--wb-ink); }
  body.theme-weitblick .wb-blick-ueber { font-size: .625rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted); }
  body.theme-weitblick .wb-blick-pfeil { position: absolute; right: 1.2rem; top: 1.2rem; color: var(--wb-petrol); }
  body.theme-weitblick .wb-blick-karte strong { font: 600 1.7rem/1.2 var(--wb-display); letter-spacing: -.04em; margin: .9rem 0 .35rem; }
  body.theme-weitblick .wb-blick-klein { font-size: .8125rem; color: var(--wb-muted); }
  body.theme-weitblick .wb-blick-zeile { display: flex; gap: .5rem; align-items: center; margin-top: .75rem; }
  body.theme-weitblick .wb-balken { display: block; height: 4px; background: #eaf0e7; border-radius: 5px; overflow: hidden; margin-top: .9rem; }
  body.theme-weitblick .wb-balken i { display: block; height: 100%; background: #709575; }
  body.theme-weitblick .wb-blick-linie { width: 100%; height: 34px; margin-top: .5rem; }
  body.theme-weitblick .wb-blick-fuss { margin-top: .6rem; }
  body.theme-weitblick .wb-negativ { color: var(--wb-danger); font-weight: 600; }
  body.theme-weitblick .wb-positiv { color: var(--wb-success); font-weight: 600; }


  @media (max-width: 991.98px) {
    body.theme-weitblick .wb-tag-raster { grid-template-columns: 1fr; }
    body.theme-weitblick .wb-tag-kopf h1 { max-width: none; font-size: 2rem; }
    body.theme-weitblick .wb-auftraege { padding-left: 1.35rem; }
    body.theme-weitblick .wb-auftrag { flex-direction: column; }
    body.theme-weitblick .wb-auftrag-form { width: 100%; }
  }
}

/* ── Seitenleiste ohne eigenen Scrollbalken (Simon 27.09.2026: nur ein Scrollbalken rechts) ──
   Desktop: die Leiste läuft mit der Seite mit und ist so hoch wie ihr Inhalt, statt auf
   Bildschirmhöhe fixiert mit scrollender Modul-Liste. Handy (Off-Canvas) bleibt unverändert. */
@media screen and (min-width: 992px) {
  body.theme-weitblick .portal-sidebar,
  body.theme-weitblick .portal-sidebar.offcanvas-lg { position: relative; height: auto; min-height: 100vh; align-self: stretch; }
  body.theme-weitblick .portal-sidebar .sidebar-inner { height: auto; min-height: 100vh; }
  /* innerer Teil so hoch wie die ganze Leiste — sonst kann das Konto unten nicht „kleben“ */
  body.theme-weitblick .portal-sidebar.offcanvas-lg { display: flex; flex-direction: column; }
  body.theme-weitblick .portal-sidebar .sidebar-inner { flex: 1 1 auto; padding-bottom: 0; }
  body.theme-weitblick .portal-sidebar .sidebar-nav { overflow: visible; flex-grow: 0; }
  body.theme-weitblick #sidebar-modules { overflow: visible; flex: none; }
  /* Konto ganz unten und beim Scrollen am unteren Bildschirmrand sichtbar (Simon 28.09.2026) */
  body.theme-weitblick .portal-sidebar .sidebar-user { margin-top: auto; position: sticky; bottom: 0; z-index: 3;
    background: var(--wb-petrol); padding-top: .6rem; padding-bottom: .6rem; }
}

/* ── Sitzungs-Dashboard (beschluesse/dashboard.html, 27.09.2026) ─────────────────────────────
   Nach dem Codex-Entwurf: Unternavigation als Pillen, Sitzungsband mit großem Datum,
   Tagesordnung links, gewählter TOP rechts, Werkzeuge der Sitzung darunter. */
@media screen {
  /* Unternavigation (Pillen, keine Reiterleiste — Simons Vorgabe) */
  body.theme-weitblick .wb-subnav { display: flex; gap: .4rem; flex-wrap: wrap; margin: 0 0 1.1rem; }
  body.theme-weitblick .wb-subnav a { padding: .38rem .9rem; border-radius: 999px; font-size: .8125rem; font-weight: 600;
    color: var(--wb-petrol); background: #fff; border: 1px solid var(--wb-line); text-decoration: none; }
  body.theme-weitblick .wb-subnav a:hover { border-color: var(--wb-petrol); }
  body.theme-weitblick .wb-subnav a.aktiv { background: var(--wb-petrol); border-color: var(--wb-petrol); color: #fff; }
  body.theme-weitblick .beschl-dash .wb-alt-zurueck { display: none; }

  /* Reihenfolge: Kopf, Tagesordnung, danach die Werkzeuge */
  body.theme-weitblick .beschl-dash { display: flex; flex-direction: column; }
  body.theme-weitblick .beschl-dash > * { order: 4; }
  body.theme-weitblick .beschl-dash > .wb-subnav { order: 1; }
  body.theme-weitblick .beschl-dash > .bd-kopf { order: 2; }
  body.theme-weitblick .beschl-dash > .wb-sitz-raster { order: 3; }
  body.theme-weitblick .beschl-dash > .card { margin-bottom: .75rem !important; }

  /* Sitzungsband */
  body.theme-weitblick .bd-kopf.card { background: #e5eee5; border: 0 !important; border-radius: 10px; padding: 1.4rem 1.75rem !important; margin-bottom: 1.5rem !important; }
  body.theme-weitblick .bd-kopf > .d-flex { align-items: center !important; gap: 1.25rem 1.5rem !important; }
  body.theme-weitblick .wb-sitz-datum { display: flex; flex-direction: column; align-items: center; padding-right: 1.5rem; border-right: 1px solid #c6d6c7; min-width: 88px; }
  body.theme-weitblick .wb-sitz-datum strong { font: 600 2.6rem/1 var(--wb-display); letter-spacing: -.04em; color: var(--wb-ink); }
  body.theme-weitblick .wb-sitz-datum span { font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; color: var(--wb-muted); margin-top: .35rem; font-weight: 600; }
  body.theme-weitblick .wb-sitz-titel { flex: 1 1 320px; min-width: 0; }
  body.theme-weitblick .bd-kopf h1 { font-family: var(--wb-display); font-size: 1.6rem; font-weight: 600; letter-spacing: -.03em; margin: 0 0 .3rem; color: var(--wb-ink); }
  body.theme-weitblick .bd-kopf .bd-actions { flex: 1 1 100%; justify-content: flex-end; }

  /* Zwei Spalten */
  body.theme-weitblick .wb-sitz-raster { display: grid; grid-template-columns: minmax(300px, 400px) minmax(0, 1fr); gap: 1.5rem; align-items: start; margin-bottom: 2rem; }
  body.theme-weitblick .wb-sitz-to { background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; overflow: hidden; }
  body.theme-weitblick .wb-sitz-to-kopf { padding: 1rem 1.1rem .6rem; font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted); }
  body.theme-weitblick .wb-sitz-to .bd-stats { display: none; }
  body.theme-weitblick .wb-sitz-to > .d-flex { padding: 0 1.1rem .75rem; margin-bottom: 0 !important; border-bottom: 1px solid var(--wb-line); }
  body.theme-weitblick .wb-sitz-to .bd-prog { width: 100%; }

  /* Tagesordnung als Liste */
  body.theme-weitblick .wb-sitz-to #bd-cards .bd-card { border: 0; border-radius: 0; margin: 0; border-bottom: 1px solid var(--wb-line); box-shadow: none; border-left: 3px solid transparent; }
  body.theme-weitblick .wb-sitz-to #bd-cards .bd-card.has-inhalt { border-left-color: transparent; }
  body.theme-weitblick .wb-sitz-to #bd-cards .bd-card.wb-gewaehlt { background: #eef3ea; border-left-color: var(--wb-petrol); }
  body.theme-weitblick .wb-sitz-to .bd-head { display: flex; flex-wrap: wrap; align-items: flex-start; gap: .3rem .5rem; padding: .85rem 1rem .85rem .75rem; cursor: pointer; }
  body.theme-weitblick .wb-sitz-to .bd-head:hover { background: #f7faf5; }
  body.theme-weitblick .wb-sitz-to .bd-card.wb-gewaehlt .bd-head:hover { background: transparent; }
  body.theme-weitblick .wb-sitz-to .bd-grip { order: 0; margin-top: .15rem; }
  body.theme-weitblick .wb-sitz-to .bd-nr { order: 1; min-width: 3.4rem; font-size: .75rem; color: var(--wb-muted); padding-top: .12rem; white-space: nowrap; }
  body.theme-weitblick .wb-sitz-to .bd-tt { order: 2; flex: 1 1 calc(100% - 5.2rem); min-width: 0; }
  body.theme-weitblick .wb-sitz-to .bd-tt .t { font-size: .875rem; font-weight: 600; line-height: 1.35; color: var(--wb-ink); }
  body.theme-weitblick .wb-sitz-to .bd-tt .s { font-size: .75rem; color: var(--wb-muted); margin-top: .1rem; }
  body.theme-weitblick .wb-sitz-to .bd-head > :is(.pt-chip, .bd-pdfchip) { order: 3; }
  body.theme-weitblick .wb-sitz-to .bd-tt + * { margin-left: 4.9rem; }
  body.theme-weitblick .wb-sitz-to .bd-chev { display: none; }
  body.theme-weitblick .wb-sitz-to .bd-card > .bd-detail { display: none !important; }
  body.theme-weitblick .wb-sitz-to .bd-add-card { margin: .75rem 1rem 1rem; width: calc(100% - 2rem); }

  /* Gewählter TOP rechts */
  body.theme-weitblick .wb-top-panel { background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; padding: 1.6rem 1.9rem; min-width: 0; }
  body.theme-weitblick .wb-top-panel-kopf { padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--wb-line); }
  body.theme-weitblick .wb-top-ueber { font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted); }
  body.theme-weitblick .wb-top-panel h2 { font-family: var(--wb-display); font-size: 1.55rem; font-weight: 600; letter-spacing: -.03em; line-height: 1.25; margin: .55rem 0 0; color: var(--wb-ink); }
  body.theme-weitblick .wb-top-leer { color: var(--wb-muted); margin: 0; }
  body.theme-weitblick .wb-top-panel .bd-detail { display: block !important; border: 0; padding: 0; background: transparent; }
  body.theme-weitblick .wb-top-panel .bd-lbl { font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted); margin: 1.1rem 0 .5rem; }
  body.theme-weitblick .wb-top-panel .sv-rich { font-size: .9375rem; line-height: 1.65; }
  body.theme-weitblick .wb-top-panel .bd-antrag { background: #eef3ea; border-left: 3px solid #739475; border-radius: 0 6px 6px 0; padding: 1rem 1.25rem; margin: 1.1rem 0; }
  body.theme-weitblick .wb-top-panel .bd-antrag .al { font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: #4f6a55; margin-bottom: .45rem; }
  body.theme-weitblick .wb-top-panel .bd-antrag .at { font-size: .9375rem; line-height: 1.6; }
  body.theme-weitblick .wb-top-panel .bd-vortrag { border-radius: 6px; }

  /* Werkzeuge der Sitzung */
  body.theme-weitblick .wb-sitz-abschnitt { font-family: var(--wb-display); font-size: 1.2rem; font-weight: 600; letter-spacing: -.02em; color: var(--wb-ink); margin: .25rem 0 .85rem; }

  @media (max-width: 991.98px) {
    body.theme-weitblick .wb-sitz-raster { grid-template-columns: 1fr; }
    body.theme-weitblick .wb-top-panel { padding: 1.2rem; }
  }
}

/* Sitzungsliste: nächste Sitzung als Band (27.09.2026) */
@media screen {
  body.theme-weitblick .wb-sitz-band { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; background: #e5eee5; border-radius: 10px; padding: 1.3rem 1.75rem; margin-bottom: 1.75rem; }
  body.theme-weitblick .wb-sitz-band-text { flex: 1 1 320px; min-width: 0; }
  body.theme-weitblick .wb-sitz-band-ueber { font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted); }
  body.theme-weitblick .wb-sitz-band-titel { font: 600 1.45rem/1.25 var(--wb-display); letter-spacing: -.03em; color: var(--wb-ink); margin: .25rem 0 .2rem; }
  body.theme-weitblick .wb-sitz-band-meta { font-size: .8125rem; color: var(--wb-muted); }
  body.theme-weitblick .mod-beschluesse > .wb-subnav + .d-flex h1 { font-family: var(--wb-display); }
}

/* Druck: Sitzungsseiten wie bisher — Weitblick-Zusätze ausblenden (Codex-Befund: leeres TOP-Feld) */
@media print {
  body.theme-weitblick :is(.wb-top-panel, .wb-subnav, .wb-sitz-datum, .wb-sitz-abschnitt, .wb-sitz-to-kopf, .wb-sitz-band) { display: none !important; }
}

/* ── Alle Anwendungen (core/module_uebersicht.html, 27.09.2026) — Karten nach dem Entwurf ── */
@media screen {
  body.theme-weitblick .wb-apps-kopf { margin-bottom: 1.5rem; }
  body.theme-weitblick .wb-apps-ueber { font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted); }
  body.theme-weitblick .wb-apps-kopf h1 { font: 600 2rem/1.15 var(--wb-display); letter-spacing: -.035em; color: var(--wb-ink); margin: .45rem 0 .4rem; }
  body.theme-weitblick .wb-apps-kopf p { color: var(--wb-muted); font-size: .875rem; margin: 0; }
  body.theme-weitblick .wb-apps { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 1rem; }
  body.theme-weitblick .wb-app { position: relative; display: flex; flex-direction: column; gap: .5rem; min-height: 175px;
    background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; padding: 1.35rem 1.45rem; }
  body.theme-weitblick .wb-app:not(.wb-app-zu):hover { border-color: var(--wb-petrol); }
  body.theme-weitblick .wb-app-icon { font-size: 1.2rem; color: #759078; }
  body.theme-weitblick .wb-app h3 { font: 600 1.05rem/1.3 var(--wb-display); letter-spacing: -.01em; margin: .2rem 0 0; color: var(--wb-ink); }
  body.theme-weitblick .wb-app h3 a { color: inherit; text-decoration: none; }
  body.theme-weitblick .wb-app p { font-size: .8125rem; line-height: 1.5; color: var(--wb-muted); margin: 0; }
  body.theme-weitblick .wb-app-fuss { margin-top: auto; padding-top: .4rem; }
  body.theme-weitblick .wb-app-anfrage { cursor: pointer; font-family: inherit; position: relative; z-index: 2; }
  body.theme-weitblick .wb-app-anfrage:hover { border-color: var(--wb-petrol); color: var(--wb-petrol); }
  body.theme-weitblick .wb-app-inaktiv { background: var(--wb-bg); }
  body.theme-weitblick .wb-app-inaktiv :is(.wb-app-icon, h3) { opacity: .75; }
  body.theme-weitblick .wb-apps-gruppe { font: 600 1.2rem var(--wb-display); letter-spacing: -.02em; color: var(--wb-ink); margin: 2.25rem 0 .9rem; }
  body.theme-weitblick .wb-apps-gruppe span { font-family: var(--wb-sans); font-size: .8125rem; font-weight: 400; letter-spacing: 0; color: var(--wb-muted); margin-left: .5rem; }
}

/* ── Raumbelegung (raumverwaltung/admin/kalender_woche.html + Monat, 27.09.2026) ─────────────
   Nach dem Codex-Entwurf: Wochenraster mit Zeitachse, Blöcke in Raumfarbe (heller Grund +
   Farbkante), Status über Rand/Hinweis, Raumfilter, Legende. */
@media screen {
  body.theme-weitblick .wb-kal-steuer { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin: .25rem 0 .9rem; }
  body.theme-weitblick .wb-kal-steuer-monat { justify-content: flex-end; margin-bottom: .5rem; }
  body.theme-weitblick .wb-kal-nav { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
  body.theme-weitblick .wb-kal-titel { font: 600 1.25rem var(--wb-display); letter-spacing: -.02em; color: var(--wb-ink); margin: 0 .35rem 0 .5rem; }
  body.theme-weitblick .wb-kal-ansicht { margin: 0; }
  body.theme-weitblick .wb-kal-raeume { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: 1rem; }
  body.theme-weitblick .wb-kal-raum { display: inline-flex; align-items: center; gap: .4rem; padding: .28rem .7rem; border-radius: 999px;
    border: 1px solid var(--wb-line); background: #fff; font-size: .75rem; font-weight: 600; color: var(--wb-ink); text-decoration: none; }
  body.theme-weitblick .wb-kal-raum i, body.theme-weitblick .wb-kal-legende i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; }
  body.theme-weitblick .wb-kal-raum:hover { border-color: var(--wb-petrol); }
  body.theme-weitblick .wb-kal-raum.aktiv { background: var(--wb-petrol); border-color: var(--wb-petrol); color: #fff; }

  body.theme-weitblick .wb-kal { display: grid; grid-template-columns: 56px repeat(7, minmax(0, 1fr)); background: #fff;
    border: 1px solid var(--wb-line); border-radius: 8px; overflow: hidden; }
  body.theme-weitblick .wb-kal-ecke { border-bottom: 1px solid var(--wb-line); }
  body.theme-weitblick .wb-kal-ecke-leiste { font-size: .625rem; color: var(--wb-muted); padding: .45rem .3rem; text-align: right; }
  body.theme-weitblick .wb-kal-tag { display: flex; flex-direction: column; align-items: center; padding: .7rem 0 .6rem;
    border-bottom: 1px solid var(--wb-line); border-left: 1px solid var(--wb-line); }
  body.theme-weitblick .wb-kal-tag span { font-size: .6875rem; color: var(--wb-muted); }
  body.theme-weitblick .wb-kal-tag strong { font: 600 1.35rem var(--wb-display); color: var(--wb-ink); margin-top: .15rem; }
  body.theme-weitblick .wb-kal-tag.heute { background: #eef3ea; }
  body.theme-weitblick .wb-kal-leiste { border-left: 1px solid var(--wb-line); border-bottom: 1px solid var(--wb-line);
    padding: .3rem; display: flex; flex-direction: column; gap: .2rem; min-height: 2rem; }
  body.theme-weitblick .wb-kal-chip { display: block; font-size: .6875rem; line-height: 1.35; padding: .15rem .4rem; border-radius: 4px;
    text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    background: color-mix(in srgb, var(--farbe, #52606d) 14%, #fff); color: var(--wb-ink); border-left: 3px solid var(--farbe, #52606d); }
  body.theme-weitblick .wb-kal-sperre { background: repeating-linear-gradient(135deg, #f8e8e5 0 6px, #fff 6px 11px); color: var(--wb-danger); border-left-color: var(--wb-danger); font-weight: 600; }
  body.theme-weitblick .wb-kal-vormerk { background: #f4f6f3; color: var(--wb-muted); border: 1px dashed #a9b7ae; border-left-width: 1px; }

  body.theme-weitblick .wb-kal-zeiten > div { height: 44px; font-size: .6875rem; color: var(--wb-muted); text-align: right; padding: 2px .45rem 0 0; }
  body.theme-weitblick .wb-kal-spalte { position: relative; height: calc(var(--stunden) * 44px); border-left: 1px solid var(--wb-line); cursor: copy;
    background-image: linear-gradient(to bottom, var(--wb-line) 1px, transparent 1px); background-size: 100% 44px; }
  body.theme-weitblick .wb-kal-spalte.heute { background-color: #f7faf4; }
  body.theme-weitblick .wb-kal-spalte:hover { background-color: #fbfcfa; }
  body.theme-weitblick .wb-kal-block { position: absolute; box-sizing: border-box; padding: .3rem .45rem; margin: 1px 2px; overflow: hidden;
    border-radius: 5px; text-decoration: none; color: var(--wb-ink); cursor: pointer; min-height: 20px;
    width: calc(100% - 4px); background: color-mix(in srgb, var(--farbe) 16%, #fff); border-left: 3px solid var(--farbe);
    display: flex; flex-direction: column; gap: .05rem; }
  body.theme-weitblick .wb-kal-block:hover { background: color-mix(in srgb, var(--farbe) 26%, #fff); color: var(--wb-ink); z-index: 3; }
  body.theme-weitblick .wb-kal-block .z { font-size: .6875rem; color: #4d625c; white-space: nowrap; }
  body.theme-weitblick .wb-kal-block .t { font-size: .75rem; font-weight: 600; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  body.theme-weitblick .wb-kal-block .r { font-size: .625rem; color: var(--wb-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  /* Status: Anfrage gestrichelt (Ocker), reserviert / Ausweichraum mit gepunktetem Rand */
  body.theme-weitblick :is(.wb-kal-block, .wb-kal-chip, .wb-mon-chip).wb-kal-st-offen { outline: 1.5px dashed #b4862e; outline-offset: -2px; }
  body.theme-weitblick :is(.wb-kal-block, .wb-kal-chip, .wb-mon-chip).wb-kal-st-reserviert { outline: 1.5px dotted var(--farbe, #52606d); outline-offset: -2px; }

  body.theme-weitblick .wb-kal-legende { display: flex; flex-wrap: wrap; gap: .5rem 1.1rem; align-items: center; font-size: .75rem; color: var(--wb-muted); margin: .8rem 0 1.5rem; }
  body.theme-weitblick .wb-kal-legende span { display: inline-flex; align-items: center; gap: .35rem; }
  body.theme-weitblick .wb-kal-legende b { display: inline-block; width: 18px; height: 11px; border-radius: 3px; background: #fff; }
  body.theme-weitblick .wb-kal-legende b.wb-kal-st-offen { outline: 1.5px dashed #b4862e; outline-offset: -2px; }
  body.theme-weitblick .wb-kal-legende b.wb-kal-st-reserviert { outline: 1.5px dotted #52606d; outline-offset: -2px; }
  body.theme-weitblick .wb-kal-legende b.wb-kal-vormerk { border: 1px dashed #a9b7ae; }

  /* Monatsansicht: Balken in Raumfarbe (Inline-Farben des alten Designs überschreiben) */
  body.theme-weitblick a.wb-mon-chip { background: color-mix(in srgb, var(--farbe) 16%, #fff) !important; color: var(--wb-ink) !important;
    border-left: 3px solid var(--farbe); box-shadow: none !important; }
}

/* Wochenansicht: kurze Blöcke kompakt — bis ~1¼ Std. eine Zeile (Zeit + Titel), bis ~2 Std. ohne Raum */
@media screen {
  body.theme-weitblick .wb-kal-block.kurz { flex-direction: row; align-items: baseline; gap: .35rem; padding: .12rem .4rem; }
  body.theme-weitblick .wb-kal-block.kurz .z { flex-shrink: 0; }
  body.theme-weitblick .wb-kal-block.kurz .t { min-width: 0; }
  body.theme-weitblick .wb-kal-block:is(.kurz, .mittel) .r { display: none; }
  body.theme-weitblick .wb-kal-block.mittel { padding: .2rem .45rem; }
}

/* ── Gemeinsame Grundschicht für alle Module (27.09.2026) ─────────────────────────────────────
   Nach dem Entwurf: Überzeile mit dem Fachbereich, ruhiger Titel ohne Symbol, Kennzahlen als
   zusammenhängendes Band, freistehende Tabellen in einer weißen Karte. Gilt modulübergreifend;
   Seiten mit eigenem Kopf (Mein Tag, Sitzungsband, Alle Anwendungen) sind ausgenommen. */
@media screen {
  body.theme-weitblick .wb-seiten-ueber { font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase;
    font-weight: 600; color: var(--wb-muted); margin: 0 0 .3rem; }
  /* Titel: Symbol am Anfang weglassen (Entwurf), Größe wie die übrigen Seitenköpfe */
  body.theme-weitblick .portal-main-inner h1:not(:is(.wb-tag-kopf, .bd-kopf, .wb-apps-kopf, .wb-landing, .nd-doc, .ds-doc, .sv-rich) h1) > i.bi:first-child { display: none; }
  body.theme-weitblick .portal-main-inner h1:not(:is(.wb-tag-kopf, .bd-kopf, .wb-apps-kopf, .wb-landing, .nd-doc, .ds-doc, .sv-rich) h1) {
    font-family: var(--wb-display) !important; font-size: 1.9rem; font-weight: 600 !important;
    letter-spacing: -.035em; line-height: 1.15; color: var(--wb-ink); }

  /* Kennzahlen als Band: Zeile mit Kennzahl-Kacheln → eine Karte mit Trennlinien */
  body.theme-weitblick .portal-main-inner .row:has(> [class*="col"] > :is(.kpi-card, .va-kpi, .vf-kpi, .liq-kpi, .mv-kpi)) {
    --bs-gutter-x: 0; --bs-gutter-y: 0; margin-left: 0; margin-right: 0;
    background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; overflow: hidden; }
  body.theme-weitblick .portal-main-inner .row:has(> [class*="col"] > :is(.kpi-card, .va-kpi, .vf-kpi, .liq-kpi, .mv-kpi))
      > [class*="col"] > :is(.kpi-card, .va-kpi, .vf-kpi, .liq-kpi, .mv-kpi) {
    border: 0 !important; border-radius: 0 !important; background: #fff !important; height: 100%;
    box-shadow: inset -1px 0 0 var(--wb-line), inset 0 -1px 0 var(--wb-line) !important; padding: 1.05rem 1.25rem; }
  body.theme-weitblick .portal-main-inner .row:has(> [class*="col"] > :is(.kpi-card, .va-kpi, .vf-kpi, .liq-kpi, .mv-kpi))
      :is(.kpi-value, .v, .num) { font-family: var(--wb-display); font-size: 1.65rem; letter-spacing: -.03em; }
  body.theme-weitblick .portal-main-inner .row:has(> [class*="col"] > .kpi-card) .kpi-card .card-body { padding: 0; }
  /* Warn-/Ok-Kanten bleiben als farbiger Strich links */
  body.theme-weitblick .portal-main-inner .row > [class*="col"] > :is(.va-kpi, .liq-kpi).warn { box-shadow: inset 3px 0 0 var(--wb-danger), inset -1px 0 0 var(--wb-line), inset 0 -1px 0 var(--wb-line) !important; }
  body.theme-weitblick .portal-main-inner .row > [class*="col"] > :is(.liq-kpi, .mv-kpi).ok { box-shadow: inset 3px 0 0 var(--wb-success), inset -1px 0 0 var(--wb-line), inset 0 -1px 0 var(--wb-line) !important; }
  body.theme-weitblick .portal-main-inner .row > [class*="col"] > .mv-kpi:is(.warn, .fehler) { box-shadow: inset 3px 0 0 var(--wb-danger), inset -1px 0 0 var(--wb-line), inset 0 -1px 0 var(--wb-line) !important; }

  /* Freistehende Tabellen (nicht in Karte/Dialog) in einer weißen Karte */
  body.theme-weitblick .portal-main-inner .table-responsive:not(.card .table-responsive):not(.modal .table-responsive) {
    background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; }
  body.theme-weitblick .portal-main-inner table.table:not(.card table):not(.modal table):not(.table-responsive table) {
    background: #fff; box-shadow: 0 0 0 1px var(--wb-line); border-radius: 8px; }
  body.theme-weitblick .portal-main-inner .table-responsive:not(.card .table-responsive) > table.table { margin-bottom: 0; }
}
@media print {
  body.theme-weitblick .wb-seiten-ueber { display: none !important; }
}

/* ── Voranschlag (27.09.2026): Ansatz-Abschnitte des Bogens als Karten, Dichte unverändert ──
   Simons Vorgabe: Zahlen-Module kompakt (Voranschlag-Dichte) — nur Rahmen/Kopf ändern sich. */
@media screen {
  body.theme-weitblick .mod-voranschlag .va-grp { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
    background: #fff; border: 1px solid var(--wb-line); border-bottom: 1px solid var(--wb-line); border-radius: 8px 8px 0 0;
    padding: .75rem 1rem; margin-top: 1.25rem; font-family: var(--wb-display); font-size: .9375rem; color: var(--wb-ink); }
  body.theme-weitblick .mod-voranschlag .va-grp .text-muted { font-family: var(--wb-sans); font-size: .8125rem; }
  body.theme-weitblick .mod-voranschlag .va-grp + table.va-tbl { background: #fff; border: 1px solid var(--wb-line); border-top: 0;
    border-collapse: separate; border-spacing: 0; border-radius: 0 0 8px 8px; }
  body.theme-weitblick .mod-voranschlag .va-grp + table.va-tbl > tbody > tr:last-child > td { border-bottom: 0; }
  body.theme-weitblick .mod-voranschlag .va-grp + table.va-tbl > tbody > tr:last-child > td:first-child { border-bottom-left-radius: 8px; }
  body.theme-weitblick .mod-voranschlag .va-grp + table.va-tbl > tbody > tr:last-child > td:last-child { border-bottom-right-radius: 8px; }
  body.theme-weitblick .mod-voranschlag .va-info { background: var(--wb-info-bg); border-left-color: var(--wb-info); border-radius: 0 6px 6px 0; }
}

/* ── Modul-Feinarbeit (27.09.2026): KidsSommer- und Niederschriften-Kennzahlen als Band ── */
@media screen {
  /* KidsSommer: Kacheln mit Symbol → linksbündig, Bezeichnung oben, Symbol weg (wie überall) */
  body.theme-weitblick .portal-main-inner .row:has(> [class*="col"] > .ks-kpi) {
    --bs-gutter-x: 0; --bs-gutter-y: 0; margin-left: 0; margin-right: 0;
    background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; overflow: hidden; }
  body.theme-weitblick .portal-main-inner .ks-kpi { border: 0 !important; border-radius: 0 !important; box-shadow: inset -1px 0 0 var(--wb-line), inset 0 -1px 0 var(--wb-line) !important;
    text-align: left !important; display: flex; flex-direction: column; padding: 1.05rem 1.25rem !important; }
  body.theme-weitblick .portal-main-inner .ks-kpi .ks-kpi-icon { display: none; }
  body.theme-weitblick .portal-main-inner .ks-kpi > .text-muted { order: -1; font-weight: 600; letter-spacing: .08em !important; }
  body.theme-weitblick .portal-main-inner .ks-kpi > .fw-bold { font-family: var(--wb-display) !important; font-size: 1.65rem !important; letter-spacing: -.03em; font-weight: 600 !important; }
  /* Niederschriften: eigenes Raster .ns-kpis → Band */
  body.theme-weitblick .ns-kpis { gap: 0 !important; background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; overflow: hidden; }
  body.theme-weitblick .ns-kpis .ns-kpi { border: 0; border-radius: 0; box-shadow: inset -1px 0 0 var(--wb-line), inset 0 -1px 0 var(--wb-line); padding: 1.05rem 1.25rem; }
  body.theme-weitblick .ns-kpis .ns-kpi .num { font-size: 1.65rem; font-weight: 600; }
}

/* ── Formulare & Textfelder (27.09.2026) ───────────────────────────────────────────────────────
   Freistehende Formulare (form direkt in der Seite, z. B. Gremien/Kooperationen) in einer Karte wie
   im Entwurf. Textfelder wachsen mit dem Inhalt (Simon: keine inneren Scrollbalken, Textfelder
   mitwachsen lassen) — field-sizing wird von Chrome/Edge unterstützt, sonst bleibt die alte Höhe. */
@media screen {
  body.theme-weitblick .portal-main-inner:is(.mod-gremien, .mod-kooperationen) > form:is(.row, [style*="max-width"]):not(.d-inline) {
    background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; padding: .35rem 1.5rem 1.4rem;
    margin-left: 0; margin-right: 0; margin-top: .5rem; }
  body.theme-weitblick textarea.form-control { field-sizing: content; min-height: 2.4rem; resize: vertical; }
}

/* Kooperation-Detail (28.09.2026): Kennzahlen als Band, Bezeichnung oben, linksbündig */
@media screen {
  body.theme-weitblick .portal-main-inner .row:has(> [class*="col"] > .ko-kpi) {
    --bs-gutter-x: 0; --bs-gutter-y: 0; margin-left: 0; margin-right: 0;
    background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; overflow: hidden; }
  body.theme-weitblick .portal-main-inner .ko-kpi { border: 0 !important; border-radius: 0 !important; background: #fff !important; text-align: left !important;
    box-shadow: inset -1px 0 0 var(--wb-line), inset 0 -1px 0 var(--wb-line) !important; }
  body.theme-weitblick .portal-main-inner .ko-kpi .card-body { display: flex; flex-direction: column; padding: 1.05rem 1.25rem !important; }
  body.theme-weitblick .portal-main-inner .ko-kpi .card-body > .small { order: -1; text-transform: uppercase; letter-spacing: .08em;
    font-size: .6875rem !important; font-weight: 600; margin-bottom: .35rem; }
  body.theme-weitblick .portal-main-inner .ko-kpi .card-body > .h4 { font-family: var(--wb-display); font-size: 1.65rem; letter-spacing: -.03em;
    font-weight: 600; color: var(--wb-ink) !important; }
}

/* ── Akten-Kopf für Detailseiten (templates/_wb_akte.html, 28.09.2026) ─────────────────────────
   Nach der „Förderakte“ im Entwurf: Zurück-Link, Überzeile (Art · Kennung) + Status, großer Titel,
   Meta-Zeile, Aktionen rechts; optional Kennzahlen-Band. */
@media screen {
  body.theme-weitblick .wb-akte-kopf { margin: 0 0 1.25rem; }
  body.theme-weitblick .wb-akte-zurueck { display: inline-flex; align-items: center; gap: .35rem; font-size: .8125rem;
    color: var(--wb-muted); text-decoration: none; margin-bottom: .5rem; }
  body.theme-weitblick .wb-akte-zurueck:hover { color: var(--wb-petrol); }
  body.theme-weitblick .wb-akte-zeile { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem 1.5rem; flex-wrap: wrap; }
  body.theme-weitblick .wb-akte-text { min-width: 0; flex: 1 1 420px; }
  body.theme-weitblick .wb-akte-ueber { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
    font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted); }
  body.theme-weitblick .wb-akte-ueber .wb-pille { letter-spacing: 0; text-transform: none; font-weight: 600; }
  body.theme-weitblick .wb-akte-kopf h1 { margin: .45rem 0 .3rem; overflow-wrap: anywhere; }
  body.theme-weitblick .wb-akte-meta { color: var(--wb-muted); font-size: .875rem; margin: 0; }
  body.theme-weitblick .wb-akte-aktionen { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
  body.theme-weitblick .wb-akte-aktionen form { margin: 0; }
  body.theme-weitblick .wb-akte-band { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; overflow: hidden; margin: 0 0 1.25rem; }
  body.theme-weitblick .wb-akte-kachel { display: flex; flex-direction: column; padding: 1rem 1.25rem;
    box-shadow: inset -1px 0 0 var(--wb-line), inset 0 -1px 0 var(--wb-line); min-width: 0; }
  body.theme-weitblick .wb-akte-kachel span { font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted); }
  body.theme-weitblick .wb-akte-kachel strong { font: 600 1.45rem/1.2 var(--wb-display); letter-spacing: -.03em; color: var(--wb-ink); margin-top: .35rem; overflow-wrap: anywhere; }
  body.theme-weitblick .wb-akte-kachel small { font-size: .75rem; color: var(--wb-muted); margin-top: .15rem; }
}
@media print { body.theme-weitblick .wb-akte-zurueck, body.theme-weitblick .wb-akte-aktionen { display: none !important; } }

/* Akten-Seiten: Bereichs-Überzeile entfällt (der Akten-Kopf hat eine eigene) */
@media screen { body.theme-weitblick .portal-main-inner:has(.wb-akte-kopf) > .wb-seiten-ueber { display: none; } }

/* Vereins-Akte: großer Modulkopf entfällt, Pillen-Navigation bleibt */
@media screen {
  body.theme-weitblick .portal-main-inner.mod-vereine:has(.wb-akte-kopf) .d-flex:has(> h1.h3),
  body.theme-weitblick .portal-main-inner.mod-vereine:has(.wb-akte-kopf) .d-flex:has(> h1.h3) + p.text-muted { display: none !important; }
}

/* ── Budgetüberwachung nach Entwurf „Finanzen“ (templates/budgetueberwachung/dashboard.html, 28.09.2026) ──
   Stand-Pillen, Band mit Klärungsbedarf, Hinweis, Bereichstabelle, Verlauf (SVG), „Was hinter den Zahlen steht“. */
@media screen {
  body.theme-weitblick .wb-bu-stand { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; margin: -.35rem 0 1rem; font-size: .8125rem; }
  body.theme-weitblick .wb-bu-stand > span { font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted); margin-right: .25rem; }
  body.theme-weitblick .wb-bu-stand a { padding: .2rem .6rem; border-radius: 999px; border: 1px solid var(--wb-line); color: var(--wb-ink); text-decoration: none; font-variant-numeric: tabular-nums; background: #fff; }
  body.theme-weitblick .wb-bu-stand a:hover { border-color: var(--wb-petrol); }
  body.theme-weitblick .wb-bu-stand a.aktiv { background: var(--wb-petrol); border-color: var(--wb-petrol); color: #fff; }

  body.theme-weitblick .wb-bu-band { margin-bottom: .4rem; }
  body.theme-weitblick a.wb-bu-klaerung { text-decoration: none; color: inherit; }
  body.theme-weitblick a.wb-bu-klaerung:hover { background: #f7faf6; }
  body.theme-weitblick a.wb-bu-klaerung.offen strong { color: var(--wb-warning); }
  body.theme-weitblick .wb-bu-fuss { font-size: .75rem; color: var(--wb-muted); margin: 0 0 1.1rem; }

  body.theme-weitblick .wb-bu-hinweis { display: flex; align-items: center; gap: .6rem 1rem; flex-wrap: wrap; padding: .75rem 1rem; margin: 0 0 1.25rem;
    background: var(--wb-warning-bg); border: 1px solid #ecd9a8; border-radius: 8px; font-size: .875rem; }
  body.theme-weitblick .wb-bu-hinweis > i { color: var(--wb-warning); font-size: 1.05rem; }
  body.theme-weitblick .wb-bu-hinweis > span { flex: 1 1 320px; }
  body.theme-weitblick .wb-bu-hinweis a { font-weight: 600; color: var(--wb-petrol); text-decoration: none; white-space: nowrap; }
  body.theme-weitblick .wb-bu-hinweis a:hover { text-decoration: underline; }

  body.theme-weitblick .wb-bu-panel { background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; margin: 0 0 1.25rem; overflow: hidden; }
  body.theme-weitblick .wb-bu-panel-kopf { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem 1rem; flex-wrap: wrap; padding: .9rem 1.25rem .6rem; }
  body.theme-weitblick .wb-bu-panel-kopf h2 { font: 600 1.05rem/1.3 var(--wb-display); letter-spacing: -.01em; margin: 0; }
  body.theme-weitblick .wb-bu-panel-kopf > span { font-size: .75rem; color: var(--wb-muted); }
  body.theme-weitblick .wb-bu-leer { color: var(--wb-muted); font-size: .8125rem; }
  body.theme-weitblick .wb-bu-panel > p.wb-bu-leer { padding: 0 1.25rem 1rem; margin: 0; }

  body.theme-weitblick table.wb-bu-bereiche { width: 100%; border-collapse: collapse; font-size: .8125rem; }
  body.theme-weitblick table.wb-bu-bereiche th { font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted);
    padding: .5rem .75rem; border-top: 1px solid var(--wb-line); border-bottom: 1px solid var(--wb-line); background: #f7f9f6; white-space: nowrap; }
  body.theme-weitblick table.wb-bu-bereiche td { padding: .55rem .75rem; border-bottom: 1px solid var(--wb-line); vertical-align: middle; }
  body.theme-weitblick table.wb-bu-bereiche tr:last-child td { border-bottom: 0; }
  body.theme-weitblick table.wb-bu-bereiche :is(th, td):first-child { padding-left: 1.25rem; }
  body.theme-weitblick table.wb-bu-bereiche :is(th, td):last-child { padding-right: 1.25rem; }
  body.theme-weitblick table.wb-bu-bereiche .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
  body.theme-weitblick table.wb-bu-bereiche td a { color: var(--wb-ink); text-decoration: none; }
  body.theme-weitblick table.wb-bu-bereiche td a:hover b { color: var(--wb-petrol); text-decoration: underline; }
  body.theme-weitblick table.wb-bu-bereiche td small { display: block; color: var(--wb-muted); font-size: .75rem; }
  body.theme-weitblick table.wb-bu-bereiche tbody tr:hover { background: #f9fbf8; }
  body.theme-weitblick .wb-bu-balken { display: inline-block; vertical-align: middle; width: 120px; height: 6px; border-radius: 3px; background: var(--wb-line); overflow: hidden; margin-right: .5rem; }
  body.theme-weitblick .wb-bu-balken i { display: block; height: 100%; background: var(--wb-success); }
  body.theme-weitblick .wb-bu-balken.knapp i { background: #c9a227; }
  body.theme-weitblick .wb-bu-balken.ueber i { background: var(--wb-danger); }
  body.theme-weitblick .wb-bu-pct { font-variant-numeric: tabular-nums; font-size: .75rem; color: var(--wb-muted); }

  body.theme-weitblick .wb-bu-unten { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 1.25rem; align-items: stretch; }
  @media (max-width: 991.98px) { body.theme-weitblick .wb-bu-unten { grid-template-columns: minmax(0, 1fr); } }

  body.theme-weitblick .wb-bu-unten > .wb-bu-panel { display: flex; flex-direction: column; margin-bottom: 1.25rem; }
  body.theme-weitblick .wb-bu-staende { margin-top: auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); border-top: 1px solid var(--wb-line); }
  body.theme-weitblick .wb-bu-staende a { display: flex; flex-direction: column; padding: .6rem .9rem; color: inherit; text-decoration: none; box-shadow: inset -1px 0 0 var(--wb-line); font-variant-numeric: tabular-nums; }
  body.theme-weitblick .wb-bu-staende a:hover { background: #f9fbf8; }
  body.theme-weitblick .wb-bu-staende a.aktiv { background: #f1f6ee; }
  body.theme-weitblick .wb-bu-staende span { font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted); }
  body.theme-weitblick .wb-bu-staende b { font-size: .875rem; margin-top: .15rem; }
  body.theme-weitblick .wb-bu-staende small { font-size: .6875rem; color: var(--wb-muted); }
  body.theme-weitblick a.wb-bu-grund { display: block; padding: .7rem 1.25rem; border-top: 1px solid var(--wb-line); color: inherit; text-decoration: none; }
  body.theme-weitblick a.wb-bu-grund:hover { background: #f9fbf8; }
  body.theme-weitblick .wb-bu-grund-kopf { display: flex; justify-content: space-between; gap: .75rem; font-size: .8125rem; }
  body.theme-weitblick .wb-bu-grund-kopf b { overflow-wrap: anywhere; }
  body.theme-weitblick .wb-bu-abw { color: var(--wb-danger); font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
  body.theme-weitblick a.wb-bu-grund small { display: block; color: var(--wb-muted); font-size: .75rem; margin: .1rem 0 .3rem; }
  body.theme-weitblick a.wb-bu-alle { display: block; padding: .7rem 1.25rem; border-top: 1px solid var(--wb-line); font-size: .8125rem; font-weight: 600; color: var(--wb-petrol); text-decoration: none; }
  body.theme-weitblick a.wb-bu-alle:hover { text-decoration: underline; }
  body.theme-weitblick .wb-bu-text { display: block; font-size: .8125rem; color: var(--wb-ink); }

  body.theme-weitblick #positionen { scroll-margin-top: 80px; }
}
/* Verlauf-SVG auch im Druck (nicht nur screen) — sonst schwarze Flächen */
body.theme-weitblick .wb-bu-verlauf { display: block; width: 100%; height: auto; padding: 0 .75rem .75rem; }
body.theme-weitblick .wb-bu-verlauf text { font: 10px var(--wb-sans); fill: var(--wb-muted); }
body.theme-weitblick .wb-bu-verlauf .raster { stroke: #e7ece5; stroke-width: 1; }
body.theme-weitblick .wb-bu-verlauf .va { stroke: var(--wb-petrol); stroke-width: 1.2; stroke-dasharray: 5 4; opacity: .7; }
body.theme-weitblick .wb-bu-verlauf .va-text { fill: var(--wb-petrol); font-weight: 600; }
body.theme-weitblick .wb-bu-verlauf .flaeche { fill: #eaf0df; }
body.theme-weitblick .wb-bu-verlauf .linie { fill: none; stroke: #648966; stroke-width: 2.5; stroke-linejoin: round; }
body.theme-weitblick .wb-bu-verlauf .punkt { fill: #fff; stroke: #648966; stroke-width: 2; }
body.theme-weitblick .wb-bu-verlauf .aktiv { fill: #416a45; stroke: #fff; stroke-width: 2; }
body.theme-weitblick .wb-bu-verlauf .wert { fill: #355d3c; font-weight: 600; font-size: 11px; }
@media print { body.theme-weitblick :is(.wb-bu-stand, .wb-bu-hinweis) { display: none !important; } }

/* ── Liquidität nach Entwurf „Finanzen › Liquidität“ (templates/liquiditaet/dashboard.html, 28.09.2026) ──
   Band (Verfügbar / Eingänge / Fällig / erwarteter Stand), Reichweite als Hinweis, „Anstehende Zahlungen“. */
@media screen {
  body.theme-weitblick .wb-liq-band { margin-bottom: 1rem; }
  body.theme-weitblick .wb-liq-band strong { font-variant-numeric: tabular-nums; }
  body.theme-weitblick .wb-liq-plus { color: var(--wb-success) !important; }
  body.theme-weitblick .wb-liq-minus { color: var(--wb-danger) !important; }
  body.theme-weitblick .wb-liq-alt { color: var(--wb-warning); font-weight: 600; }

  body.theme-weitblick .wb-liq-reicht { display: flex; align-items: center; gap: .6rem 1rem; flex-wrap: wrap; padding: .75rem 1rem; margin: 0 0 1.25rem;
    background: var(--wb-success-bg); border: 1px solid #cfe2cf; border-radius: 8px; font-size: .875rem; }
  body.theme-weitblick .wb-liq-reicht > i { color: var(--wb-success); font-size: 1.05rem; }
  body.theme-weitblick .wb-liq-reicht.warn { background: var(--wb-danger-bg); border-color: #efc9c4; }
  body.theme-weitblick .wb-liq-reicht.warn > i { color: var(--wb-danger); }
  body.theme-weitblick .wb-liq-reicht > span { flex: 1 1 320px; }
  body.theme-weitblick .wb-liq-reicht a { font-weight: 600; color: var(--wb-petrol); text-decoration: none; white-space: nowrap; }
  body.theme-weitblick .wb-liq-reicht a:hover { text-decoration: underline; }

  body.theme-weitblick .wb-liq-panel { background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; margin: 0 0 1.25rem; overflow: hidden; }
  body.theme-weitblick .wb-liq-panel-kopf { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem 1rem; flex-wrap: wrap; padding: .9rem 1.25rem .6rem; }
  body.theme-weitblick .wb-liq-panel-kopf h2 { font: 600 1.05rem/1.3 var(--wb-display); letter-spacing: -.01em; margin: 0; }
  body.theme-weitblick .wb-liq-panel-kopf > span { font-size: .75rem; color: var(--wb-muted); }
  body.theme-weitblick table.wb-liq-tbl { width: 100%; border-collapse: collapse; font-size: .8125rem; }
  body.theme-weitblick table.wb-liq-tbl th { font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted);
    padding: .5rem .75rem; border-top: 1px solid var(--wb-line); border-bottom: 1px solid var(--wb-line); background: #f7f9f6; white-space: nowrap; }
  body.theme-weitblick table.wb-liq-tbl td { padding: .55rem .75rem; border-bottom: 1px solid var(--wb-line); vertical-align: middle; }
  body.theme-weitblick table.wb-liq-tbl :is(th, td):first-child { padding-left: 1.25rem; }
  body.theme-weitblick table.wb-liq-tbl :is(th, td):last-child { padding-right: 1.25rem; }
  body.theme-weitblick table.wb-liq-tbl .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 600; }
  body.theme-weitblick table.wb-liq-tbl td small { display: block; color: var(--wb-muted); font-size: .75rem; }
  body.theme-weitblick .wb-liq-kurz { font-size: .75rem; color: var(--wb-warning); padding: 0 1.25rem .8rem; margin: 0; }
  body.theme-weitblick .wb-liq-leer { color: var(--wb-muted); font-size: .8125rem; padding: 0 1.25rem 1rem; margin: 0; }
  body.theme-weitblick .wb-liq-fuss { display: flex; justify-content: space-between; align-items: center; gap: .5rem 1rem; flex-wrap: wrap;
    padding: .65rem 1.25rem; background: #f7f9f6; font-size: .75rem; color: var(--wb-muted); }
  body.theme-weitblick .wb-liq-fuss a { font-weight: 600; color: var(--wb-petrol); text-decoration: none; white-space: nowrap; }
  body.theme-weitblick .wb-liq-fuss a:hover { text-decoration: underline; }
}

/* ── Mein ToDo nach Entwurf „Meine Aufgaben“ (templates/mein_todo/index.html, 28.09.2026) ── */
@media screen {
  body.theme-weitblick .wb-todo-panel { background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; overflow: hidden; margin-bottom: 1.25rem; }
  body.theme-weitblick .wb-todo-neu { display: flex; gap: .5rem; flex-wrap: wrap; padding: 1rem 1.25rem .35rem; }
  body.theme-weitblick .wb-todo-neu input[type=text] { flex: 1 1 320px; }
  body.theme-weitblick .wb-todo-neu input[type=date] { flex: 0 0 170px; }
  body.theme-weitblick .wb-todo-hinweis { font-size: .75rem; color: var(--wb-muted); margin: 0; padding: 0 1.25rem .8rem; }
  body.theme-weitblick .wb-todo-filter { display: flex; gap: .35rem; flex-wrap: wrap; padding: .75rem 1.25rem; border-top: 1px solid var(--wb-line); border-bottom: 1px solid var(--wb-line); background: #f7f9f6; }
  body.theme-weitblick .wb-todo-filter a { padding: .28rem .8rem; border-radius: 999px; border: 1px solid var(--wb-line); background: #fff; color: var(--wb-ink); font-size: .8125rem; font-weight: 600; text-decoration: none; }
  body.theme-weitblick .wb-todo-filter a b { font-weight: 600; color: var(--wb-muted); margin-left: .2rem; font-variant-numeric: tabular-nums; }
  body.theme-weitblick .wb-todo-filter a:hover { border-color: var(--wb-petrol); }
  body.theme-weitblick .wb-todo-filter a.aktiv { background: var(--wb-petrol); border-color: var(--wb-petrol); color: #fff; }
  body.theme-weitblick .wb-todo-filter a.aktiv b { color: #cfe3dc; }
  body.theme-weitblick .wb-todo-liste { list-style: none; margin: 0; padding: 0; }
  body.theme-weitblick .wb-todo { display: flex; align-items: center; gap: .85rem; padding: .7rem 1.25rem; border-bottom: 1px solid var(--wb-line); }
  body.theme-weitblick .wb-todo:last-child { border-bottom: 0; }
  body.theme-weitblick .wb-todo:hover { background: #f9fbf8; }
  body.theme-weitblick .wb-todo-haken { width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid #b7c6bd; background: #fff; color: transparent;
    display: inline-flex; align-items: center; justify-content: center; padding: 0; font-size: .95rem; flex: 0 0 auto; }
  body.theme-weitblick .wb-todo-haken:hover { border-color: var(--wb-success); color: var(--wb-success); }
  body.theme-weitblick .wb-todo.erledigt .wb-todo-haken { background: var(--wb-success); border-color: var(--wb-success); color: #fff; }
  body.theme-weitblick .wb-todo-text { flex: 1 1 auto; min-width: 0; }
  body.theme-weitblick .wb-todo-titel { font-size: .9rem; font-weight: 500; color: var(--wb-ink); overflow-wrap: anywhere; margin-right: .35rem; }
  body.theme-weitblick .wb-todo-text small { display: block; font-size: .75rem; color: var(--wb-muted); }
  body.theme-weitblick .wb-todo.erledigt .wb-todo-titel { text-decoration: line-through; color: var(--wb-muted); }
  body.theme-weitblick .wb-todo-rechts { display: flex; align-items: center; gap: .15rem; flex: 0 0 auto; }
  body.theme-weitblick .wb-todo-rechts .wb-pille { margin-right: .35rem; }
  body.theme-weitblick .wb-todo-leer { padding: 2rem 1.25rem; text-align: center; color: var(--wb-muted); font-size: .875rem; }
  /* „Mein ToDo“ auf „Mein Tag“ (#91, 06.10.2026): dieselben Bausteine, kompakt in zwei Spalten, Linien statt Abstände */
  body.theme-weitblick .wb-tag-todos { margin-bottom: 0; }
  body.theme-weitblick .wb-tag-todo-neu { display: flex; gap: .5rem; padding: .7rem 1.25rem; }
  body.theme-weitblick .wb-tag-todo-neu input[type=text] { flex: 1 1 auto; }
  body.theme-weitblick .wb-tag-todo-neu .btn { flex: 0 0 auto; white-space: nowrap; }
  body.theme-weitblick .wb-tag-todo-liste { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--wb-line); }
  body.theme-weitblick .wb-tag-todo-liste .wb-todo { padding: .5rem 1.25rem; gap: .7rem; border-bottom: 0; border-top: 1px solid var(--wb-line); }
  body.theme-weitblick .wb-tag-todo-liste .wb-todo:nth-child(-n+2) { border-top: 0; }
  body.theme-weitblick .wb-tag-todo-liste .wb-todo:nth-child(even) { border-left: 1px solid var(--wb-line); }
  body.theme-weitblick .wb-tag-todo-liste .wb-todo-haken { width: 22px; height: 22px; }
  body.theme-weitblick .wb-tag-todo-liste .wb-todo-titel { font-size: .875rem; }
  @media (max-width: 767.98px) {
    body.theme-weitblick .wb-tag-todo-liste { grid-template-columns: minmax(0, 1fr); }
    body.theme-weitblick .wb-tag-todo-liste .wb-todo:nth-child(2) { border-top: 1px solid var(--wb-line); }
    body.theme-weitblick .wb-tag-todo-liste .wb-todo:nth-child(even) { border-left: 0; }
  }
}

/* ── Vereine & Organisationen: Liste nach Entwurf (templates/vereine/liste.html, 28.09.2026) ── */
@media screen {
  body.theme-weitblick .wb-ver-meta { max-width: 820px; }
  body.theme-weitblick .wb-ver-band { margin: .25rem 0 1rem; }
  body.theme-weitblick .wb-ver-warn { color: var(--wb-warning) !important; }
  body.theme-weitblick .wb-ver-hinweis { display: flex; align-items: center; gap: .6rem 1rem; flex-wrap: wrap; padding: .75rem 1rem; margin: 0 0 1.25rem;
    background: var(--wb-warning-bg); border: 1px solid #ecd9a8; border-radius: 8px; font-size: .875rem; }
  body.theme-weitblick .wb-ver-hinweis > i { color: var(--wb-warning); font-size: 1.05rem; }
  body.theme-weitblick .wb-ver-hinweis > span { flex: 1 1 320px; }
  body.theme-weitblick .wb-ver-link { background: none; border: 0; padding: 0; font-weight: 600; color: var(--wb-petrol); white-space: nowrap; }
  body.theme-weitblick .wb-ver-link:hover { text-decoration: underline; }

  body.theme-weitblick .wb-ver-panel { background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; overflow: hidden; margin-bottom: 1.25rem; }
  body.theme-weitblick .wb-ver-werkzeug { display: flex; justify-content: space-between; align-items: center; gap: .6rem 1rem; flex-wrap: wrap;
    padding: .8rem 1.25rem; border-bottom: 1px solid var(--wb-line); background: #f7f9f6; }
  body.theme-weitblick .wb-ver-filter { display: flex; gap: .35rem; flex-wrap: wrap; }
  body.theme-weitblick .wb-ver-werkzeug #vf-suche { max-width: 240px; margin-left: auto; }
  body.theme-weitblick table.wb-ver-tbl { width: 100%; border-collapse: collapse; font-size: .8125rem; margin: 0; }
  body.theme-weitblick table.wb-ver-tbl th { font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted);
    padding: .55rem .75rem; border-bottom: 1px solid var(--wb-line); white-space: nowrap; background: #fff; }
  body.theme-weitblick table.wb-ver-tbl td { padding: .65rem .75rem; border-bottom: 1px solid var(--wb-line); vertical-align: middle; }
  body.theme-weitblick table.wb-ver-tbl tr:last-child td { border-bottom: 0; }
  body.theme-weitblick table.wb-ver-tbl :is(th, td):first-child { padding-left: 1.25rem; }
  body.theme-weitblick table.wb-ver-tbl :is(th, td):last-child { padding-right: 1.25rem; }
  body.theme-weitblick table.wb-ver-tbl tbody tr:hover { background: #f9fbf8; }
  body.theme-weitblick table.wb-ver-tbl td small { display: block; color: var(--wb-muted); font-size: .75rem; margin-top: .1rem; }
  body.theme-weitblick .wb-ver-name a { font-weight: 600; color: var(--wb-ink); text-decoration: none; font-size: .875rem; }
  body.theme-weitblick .wb-ver-name a:hover { color: var(--wb-petrol); text-decoration: underline; }
  body.theme-weitblick .wb-ver-pillen { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; margin-top: .15rem; }
  body.theme-weitblick .wb-ver-pillen small { margin: 0 !important; }
  body.theme-weitblick .wb-ver-inaktiv td { opacity: .6; }
  body.theme-weitblick .wb-ver-neu td { background: var(--wb-success-bg); }
  body.theme-weitblick .wb-ver-warntext { color: var(--wb-warning); font-weight: 600; }
  body.theme-weitblick tr.vf-zeile[data-foerderung="0"] .wb-ver-iban { display: none !important; }
  body.theme-weitblick td.wb-ver-portal { min-width: 250px; }
  body.theme-weitblick .wb-ver-portal .wb-pille { margin-right: .35rem; }
  body.theme-weitblick .wb-ver-portal small { display: inline !important; }
  body.theme-weitblick .wb-ver-portal-aktion { display: flex; align-items: center; gap: .25rem; margin-top: .35rem; flex-wrap: wrap; }
  body.theme-weitblick .wb-ver-portal-aktion .btn { white-space: nowrap; display: inline-flex; align-items: center; }
  body.theme-weitblick .wb-ver-leer { padding: 1.5rem; text-align: center; color: var(--wb-muted); }
  body.theme-weitblick .wb-ver-hilfe { border-top: 1px solid var(--wb-line); padding: .65rem 1.25rem; background: #f7f9f6; font-size: .8125rem; }
  body.theme-weitblick .wb-ver-hilfe summary { cursor: pointer; font-weight: 600; color: var(--wb-petrol); }
  body.theme-weitblick .wb-ver-hilfe p { margin: .5rem 0 .2rem; color: var(--wb-muted); }
}

/* ── Vereinsportal nach Entwurf (portal/login.html, dashboard.html, _weg.html, 28.09.2026) ──
   Willkommen mit Landschaft, Kopf mit Pillen, Stufenleiste „Euer Weg zur Förderung“. */
@media screen {
  body.vp-weitblick .vp-ueber { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; font-size: .6875rem; letter-spacing: .12em;
    text-transform: uppercase; font-weight: 600; color: var(--wb-muted); }
  body.vp-weitblick .vp-willkommen { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 1.5rem; align-items: stretch; margin-top: .5rem; }
  @media (max-width: 767.98px) { body.vp-weitblick .vp-willkommen { grid-template-columns: minmax(0, 1fr); } }
  body.vp-weitblick .vp-willkommen-text { position: relative; overflow: hidden; background: #e5eee5; border-radius: 10px; padding: 2rem 2rem 0;
    display: flex; flex-direction: column; min-height: 420px; }
  body.vp-weitblick .vp-willkommen-text h1 { font: 700 clamp(1.8rem, 3.2vw, 2.5rem)/1.1 var(--wb-display); letter-spacing: -.035em; color: var(--wb-ink); margin: .6rem 0 .8rem; }
  body.vp-weitblick .vp-willkommen-text > p { color: #3f5a52; max-width: 34rem; margin-bottom: 1rem; }
  body.vp-weitblick .vp-willkommen-punkte { list-style: none; padding: 0; margin: 0 0 1.25rem; font-size: .875rem; color: #2f4a43; position: relative; z-index: 1; }
  body.vp-weitblick .vp-willkommen-punkte li { display: flex; gap: .55rem; align-items: baseline; margin-bottom: .35rem; }
  body.vp-weitblick .vp-willkommen-punkte i { color: var(--wb-petrol); }
  body.vp-weitblick .vp-landschaft { display: block; width: calc(100% + 4rem); height: 190px; margin: auto -2rem 0; }
  body.vp-weitblick .vp-anmelden { padding: 2rem !important; align-self: center; }

  body.vp-weitblick .vp-kopf { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem 1.5rem; flex-wrap: wrap; margin: .25rem 0 1.25rem; }
  body.vp-weitblick .vp-kopf h1 { font: 700 clamp(1.6rem, 2.6vw, 2.1rem)/1.15 var(--wb-display); letter-spacing: -.03em; margin: .45rem 0 .2rem; overflow-wrap: anywhere; }
  body.vp-weitblick .vp-kopf-text p { color: var(--wb-muted); margin: 0; font-size: .875rem; }
  body.vp-weitblick .vp-kopf-aktionen { display: flex; gap: .5rem; flex-wrap: wrap; }
  body.vp-weitblick .vp-pille { display: inline-flex; align-items: center; padding: .1rem .5rem; border-radius: 4px; font-size: .6875rem; line-height: 1.6;
    letter-spacing: 0; text-transform: none; font-weight: 600; background: transparent; border: 1px solid #d1ded1; color: #536a62; }
  body.vp-weitblick .vp-pille.gut { background: var(--wb-success-bg); border-color: transparent; color: var(--wb-success); }
  body.vp-weitblick .vp-pille.warn { background: var(--wb-warning-bg); border-color: transparent; color: var(--wb-warning); }

  body.vp-weitblick .vp-weg { list-style: none; margin: .5rem 0 .9rem; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0;
    border: 1px solid var(--wb-line); border-radius: 8px; overflow: hidden; background: #fff; }
  body.vp-weitblick .vp-weg li { display: flex; align-items: center; gap: .5rem; padding: .6rem .75rem; font-size: .8125rem; color: var(--wb-muted);
    box-shadow: inset -1px 0 0 var(--wb-line); min-width: 0; }
  body.vp-weitblick .vp-weg li:last-child { box-shadow: none; }
  body.vp-weitblick .vp-weg-nr { flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
    font-size: .6875rem; font-weight: 700; border: 1.5px solid #c9d6cf; color: var(--wb-muted); background: #fff; font-variant-numeric: tabular-nums; }
  body.vp-weitblick .vp-weg-name { overflow-wrap: anywhere; }
  body.vp-weitblick .vp-weg li.erledigt { color: var(--wb-success); }
  body.vp-weitblick .vp-weg li.erledigt .vp-weg-nr { background: var(--wb-success); border-color: var(--wb-success); color: #fff; }
  body.vp-weitblick .vp-weg li.aktiv { background: #eef5ea; color: var(--wb-ink); font-weight: 700; }
  body.vp-weitblick .vp-weg li.aktiv .vp-weg-nr { background: var(--wb-petrol); border-color: var(--wb-petrol); color: #fff; }
  @media (max-width: 575.98px) {
    body.vp-weitblick .vp-weg { grid-template-columns: minmax(0, 1fr); }
    body.vp-weitblick .vp-weg li { box-shadow: inset 0 -1px 0 var(--wb-line); }
  }
  body.vp-weitblick .vp-weg-hinweis { font-size: .8125rem; color: var(--wb-muted); margin: -.4rem 0 .75rem; }
}

/* ── Vereinsförderung: Stufenleiste des Förderjahres (vereinsfoerderung/dashboard.html, 28.09.2026) ── */
@media screen {
  body.theme-weitblick .wb-weg { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
    border: 1px solid var(--wb-line); border-radius: 8px; overflow: hidden; background: #fff; }
  body.theme-weitblick .wb-weg li { display: flex; align-items: flex-start; gap: .55rem; padding: .7rem .85rem; color: var(--wb-muted);
    box-shadow: inset -1px 0 0 var(--wb-line); min-width: 0; }
  body.theme-weitblick .wb-weg li:last-child { box-shadow: none; }
  body.theme-weitblick .wb-weg-nr { flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
    font-size: .6875rem; font-weight: 700; border: 1.5px solid #c9d6cf; background: #fff; font-variant-numeric: tabular-nums; margin-top: .05rem; }
  body.theme-weitblick .wb-weg-text { display: flex; flex-direction: column; min-width: 0; }
  body.theme-weitblick .wb-weg-text b { font-size: .8125rem; font-weight: 600; overflow-wrap: anywhere; }
  body.theme-weitblick .wb-weg-text small { font-size: .6875rem; font-variant-numeric: tabular-nums; }
  body.theme-weitblick .wb-weg li.erledigt { color: var(--wb-success); }
  body.theme-weitblick .wb-weg li.erledigt .wb-weg-nr { background: var(--wb-success); border-color: var(--wb-success); color: #fff; }
  body.theme-weitblick .wb-weg li.aktiv { background: #eef5ea; color: var(--wb-ink); }
  body.theme-weitblick .wb-weg li.aktiv b { font-weight: 700; }
  body.theme-weitblick .wb-weg li.aktiv .wb-weg-nr { background: var(--wb-petrol); border-color: var(--wb-petrol); color: #fff; }
  @media (max-width: 767.98px) {
    body.theme-weitblick .wb-weg { grid-template-columns: minmax(0, 1fr); }
    body.theme-weitblick .wb-weg li { box-shadow: inset 0 -1px 0 var(--wb-line); }
  }
}

/* ── Schlüsselverwaltung nach Entwurf „Räume & Betrieb › Schlüssel“ (schluesselverwaltung/dashboard.html, 28.09.2026) ── */
@media screen {
  body.theme-weitblick .wb-sl-band { margin-bottom: 1rem; }
  body.theme-weitblick .wb-sl-warn { color: var(--wb-warning) !important; }
  body.theme-weitblick .wb-sl-gut { color: var(--wb-success) !important; }
  body.theme-weitblick .wb-sl-rot { color: var(--wb-danger) !important; }
  body.theme-weitblick .wb-sl-hinweis { display: flex; gap: .7rem; padding: .8rem 1rem; margin: 0 0 1.25rem; background: var(--wb-danger-bg);
    border: 1px solid #efc9c4; border-radius: 8px; font-size: .875rem; }
  body.theme-weitblick .wb-sl-hinweis > i { color: var(--wb-danger); font-size: 1.05rem; }
  body.theme-weitblick .wb-sl-hinweis ul { margin: .35rem 0 0; padding-left: 1.1rem; }
  body.theme-weitblick .wb-sl-hinweis a { color: var(--wb-ink); font-weight: 600; }

  body.theme-weitblick .wb-sl-panel { background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; overflow: hidden; margin-bottom: 1.25rem; }
  body.theme-weitblick .wb-sl-werkzeug { display: flex; align-items: center; gap: .6rem 1rem; flex-wrap: wrap; padding: .8rem 1.25rem;
    border-bottom: 1px solid var(--wb-line); background: #f7f9f6; }
  body.theme-weitblick .wb-sl-filter { display: flex; gap: .35rem; flex-wrap: wrap; }
  body.theme-weitblick .wb-sl-filter button { padding: .28rem .8rem; border-radius: 999px; border: 1px solid var(--wb-line); background: #fff; color: var(--wb-ink);
    font-size: .8125rem; font-weight: 600; }
  body.theme-weitblick .wb-sl-filter button b { font-weight: 600; color: var(--wb-muted); margin-left: .2rem; font-variant-numeric: tabular-nums; }
  body.theme-weitblick .wb-sl-filter button:hover { border-color: var(--wb-petrol); }
  body.theme-weitblick .wb-sl-filter button.active { background: var(--wb-petrol); border-color: var(--wb-petrol); color: #fff; }
  body.theme-weitblick .wb-sl-filter button.active b { color: #cfe3dc; }
  body.theme-weitblick .wb-sl-zahl { font-size: .75rem; color: var(--wb-muted); }
  body.theme-weitblick .wb-sl-werkzeug #dashSearch { max-width: 260px; margin-left: auto; }
  body.theme-weitblick table.wb-sl-tbl { width: 100%; border-collapse: collapse; font-size: .8125rem; margin: 0; }
  body.theme-weitblick table.wb-sl-tbl th { font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted);
    padding: .55rem .75rem; border-bottom: 1px solid var(--wb-line); white-space: nowrap; }
  body.theme-weitblick table.wb-sl-tbl td { padding: .6rem .75rem; border-bottom: 1px solid var(--wb-line); vertical-align: middle; }
  body.theme-weitblick table.wb-sl-tbl tbody tr:last-child td { border-bottom: 0; }
  body.theme-weitblick table.wb-sl-tbl :is(th, td):first-child { padding-left: 1.25rem; }
  body.theme-weitblick table.wb-sl-tbl :is(th, td):last-child { padding-right: 1.25rem; }
  body.theme-weitblick table.wb-sl-tbl tbody tr:hover { background: #f9fbf8; }
  body.theme-weitblick table.wb-sl-tbl td small { display: block; color: var(--wb-muted); font-size: .75rem; }
  body.theme-weitblick .wb-sl-name { font-weight: 600; color: var(--wb-ink); text-decoration: none; font-size: .875rem; }
  body.theme-weitblick a.wb-sl-name:hover { color: var(--wb-petrol); text-decoration: underline; }
  body.theme-weitblick .wb-sl-leer { color: var(--wb-muted); }
  body.theme-weitblick .wb-sl-deaktiviert { border-top: 1px solid var(--wb-line); background: #f7f9f6; }
  body.theme-weitblick .wb-sl-deaktiviert summary { cursor: pointer; padding: .65rem 1.25rem; font-size: .8125rem; font-weight: 600; color: var(--wb-muted); }
  body.theme-weitblick .wb-sl-deaktiviert table { background: #fff; border-top: 1px solid var(--wb-line); }
}

/* ── Posteingang nach Entwurf (templates/core/posteingang.html, 28.09.2026) ── */
@media screen {
  body.theme-weitblick .wb-pe-ablage { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1rem; margin-bottom: 1.25rem; }
  @media (max-width: 767.98px) { body.theme-weitblick .wb-pe-ablage { grid-template-columns: minmax(0, 1fr); } }
  body.theme-weitblick .wb-pe-drop { display: flex; align-items: center; gap: 1rem; padding: 1.25rem 1.4rem; margin: 0; cursor: pointer;
    border: 1.5px dashed #9fb8ad; border-radius: 10px; background: #fff !important; transition: border-color .15s, background-color .15s; }
  body.theme-weitblick .wb-pe-drop:hover, body.theme-weitblick .wb-pe-drop.ziehen { border-color: var(--wb-petrol); background: #eef5ea !important; }
  body.theme-weitblick .wb-pe-drop > i { font-size: 2rem; color: var(--wb-petrol); }
  body.theme-weitblick .wb-pe-drop b { display: block; font-size: .9rem; color: var(--wb-ink); }
  body.theme-weitblick .wb-pe-drop small { display: block; font-size: .75rem; color: var(--wb-muted); }
  body.theme-weitblick .wb-pe-gewaehlt { display: block; font-size: .8125rem; font-weight: 600; color: var(--wb-petrol); margin-top: .25rem; }
  body.theme-weitblick .wb-pe-hinweis { display: flex; flex-direction: column; gap: .4rem; background: #fff; border: 1px solid var(--wb-line); border-radius: 10px; padding: .9rem 1rem; }
  body.theme-weitblick .wb-pe-hinweis .form-label { font-size: .8125rem; font-weight: 600; margin: 0; }
  body.theme-weitblick .wb-pe-hinweis .form-label span { font-weight: 400; color: var(--wb-muted); }
  body.theme-weitblick .wb-pe-hinweis .btn { align-self: flex-end; }

  body.theme-weitblick .wb-pe-panel { background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; overflow: hidden; margin-bottom: 1.25rem; }
  body.theme-weitblick .wb-pe-kopf { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem 1rem; padding: .9rem 1.25rem .6rem; border-bottom: 1px solid var(--wb-line); }
  body.theme-weitblick .wb-pe-kopf h2 { font: 600 1.05rem/1.3 var(--wb-display); margin: 0; }
  body.theme-weitblick .wb-pe-kopf > span { font-size: .75rem; color: var(--wb-muted); }
  body.theme-weitblick .wb-pe-eintrag { display: flex; align-items: center; gap: .85rem; padding: .75rem 1.25rem; border-bottom: 1px solid var(--wb-line); }
  body.theme-weitblick .wb-pe-eintrag:last-child { border-bottom: 0; }
  body.theme-weitblick .wb-pe-eintrag:hover { background: #f9fbf8; }
  body.theme-weitblick .wb-pe-symbol { font-size: 1.35rem; color: var(--wb-petrol); flex: 0 0 auto; }
  body.theme-weitblick .wb-pe-text { flex: 1 1 auto; min-width: 0; color: inherit; text-decoration: none; }
  body.theme-weitblick .wb-pe-text b { display: block; font-size: .875rem; color: var(--wb-ink); overflow-wrap: anywhere; }
  body.theme-weitblick .wb-pe-text:hover b { color: var(--wb-petrol); text-decoration: underline; }
  body.theme-weitblick .wb-pe-text small { display: block; font-size: .75rem; color: var(--wb-muted); }
  body.theme-weitblick .wb-pe-notiz { display: block; font-size: .8125rem; color: #2f4a43; margin-top: .2rem; }
  body.theme-weitblick .wb-pe-leer { padding: 1.75rem 1.25rem; text-align: center; color: var(--wb-muted); font-size: .875rem; }
  body.theme-weitblick .wb-pe-leer i { color: var(--wb-success); }
  body.theme-weitblick .wb-pe-drop:focus-within { border-color: var(--wb-petrol); box-shadow: 0 0 0 3px rgba(23,62,62,.18); }
}

/* Zahnrad „Modul-Zugriff verwalten“ direkt neben dem Seitentitel (28.09.2026, weitblick.js) */
@media screen {
  body.theme-weitblick .wb-zahnrad {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.9rem; height: 1.9rem; margin-left: .6rem; padding: 0; vertical-align: .3em;
    border: 1px solid var(--wb-line); border-radius: 50%; background: transparent;
    color: var(--wb-muted); font-size: 1rem; line-height: 1; cursor: pointer;
  }
  body.theme-weitblick .wb-zahnrad:hover { color: var(--wb-petrol); border-color: var(--wb-petrol); background: #fff; }
}
@media print { body.theme-weitblick .wb-zahnrad { display: none !important; } }

/* „Mein Tag“: „Meine Aufträge“ als eigene Liste UNTER „Gut im Blick“ (01.10.2026, Simon: die Karte in der
   Kennzahl-Reihe „schaut nicht mehr gut aus“; Entwurf Codex) + Link zur Leseansicht beim offenen Auftrag.
   Eigene Namen `.wb-meine*` — `.wb-auftraege`/`.wb-auftrag` gehören zur aufgeklappten Fokus-Zeile. */
@media screen {
  body.theme-weitblick .wb-blick-karte { min-width: 0; }
  /* eine einzelne Kennzahl wird keine seitenbreite Karte */
  body.theme-weitblick .wb-blick > .wb-blick-karte:only-child { max-width: 480px; }
  body.theme-weitblick .wb-meine { list-style: none; margin: 0; padding: 0; border: 1px solid var(--wb-line); border-radius: 8px; background: #fff; overflow: hidden; }
  body.theme-weitblick .wb-meine li + li { border-top: 1px solid var(--wb-line); }
  body.theme-weitblick .wb-meine a { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: .2rem 1.5rem;
    padding: .6rem 1.35rem; color: var(--wb-ink); text-decoration: none; }
  body.theme-weitblick .wb-meine a:hover { background: #f7faf5; }
  body.theme-weitblick .wb-meine a:hover b { text-decoration: underline; }
  body.theme-weitblick .wb-meine a:focus-visible { outline: 2px solid var(--wb-petrol); outline-offset: -2px; }
  body.theme-weitblick .wb-meine b { font-weight: 600; font-size: .875rem; line-height: 1.4; overflow-wrap: anywhere;
    display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }   /* Auftrag bis 2 Zeilen, voller Text als Tooltip */
  body.theme-weitblick .wb-meine-meta { display: inline-flex; align-items: center; gap: .5rem; font-size: .75rem; color: var(--wb-muted); white-space: nowrap; }
  body.theme-weitblick .wb-auftrag-link { display: inline-block; margin-top: .35rem; font-size: .8125rem; }
}

/* ── Fraktionsunterlagen (beschluesse/fraktion.html, Klasse fr-weitblick, 30.09.2026) ─────────────
   Öffentlicher Code-Zugang ohne Login (Simon: „noch auf dem alten Stand“). Anmeldung wie die
   Mitarbeiter-Anmeldung (.wb-login-karte), Sitzung als Band wie in der Sitzungsliste (.wb-sitz-band);
   hier nur die festen Blautöne der Vorlage auf die Palette. Die Fraktion liest oft am Handy →
   Lesetext etwas größer, Eingaben am Handy 16 px (sonst zoomt iOS beim Antippen). */
@media screen {
  body.fr-weitblick { font-size: .9375rem; }
  body.fr-weitblick .fr-kopf { background: #fff; border-bottom: 1px solid var(--wb-line); padding: .75rem 0; }
  body.fr-weitblick .fr-kopf-marke { font-family: var(--wb-display); font-weight: 800; color: var(--wb-petrol); }
  body.fr-weitblick .fr-kopf-ort { color: var(--wb-muted); }
  body.fr-weitblick footer hr { border-color: var(--wb-line); opacity: 1; }
  /* Wie das Vereinsportal: seltene Nutzer → etwas größere Eingaben und Knöpfe */
  body.fr-weitblick :is(.form-control, .form-select) { font-size: .9375rem; }
  body.fr-weitblick .btn { font-size: .875rem; }
  body.fr-weitblick .btn-sm { font-size: .8125rem !important; }

  /* Anmeldung */
  body.fr-weitblick.fr-login main.fr-wrap { max-width: 1120px; padding-top: 2rem !important; padding-bottom: .5rem !important; }
  body.fr-weitblick .wb-login-marke b { color: #fff; }
  body.fr-weitblick .wb-login-form .fr-code-input { font: 700 1.3rem/1.4 var(--wb-display); letter-spacing: .3em; text-align: center; text-transform: uppercase; }
  body.fr-weitblick .fr-login-notiz { font-size: .8125rem; color: var(--wb-muted); margin: 0 0 1.25rem; }

  /* Sitzungsband */
  body.fr-weitblick .fr-band { margin-bottom: 1rem; }
  body.fr-weitblick .fr-band h1.wb-sitz-band-titel { margin: .25rem 0 .2rem; }
  body.fr-weitblick .fr-band-hinweis { font-size: .8125rem; color: var(--wb-muted); margin-top: .45rem; }

  /* Karten und TOPs */
  body.fr-weitblick .fr-card { border-color: var(--wb-line); border-radius: 8px; box-shadow: none; }
  body.fr-weitblick .fr-top { border-color: var(--wb-line); border-radius: 8px; }
  body.fr-weitblick .fr-top.has-inhalt { border-left-color: #a9c4b2; }
  body.fr-weitblick .fr-top.open { border-left-color: var(--wb-petrol); }
  body.fr-weitblick .fr-top-head:hover { background: #f7faf5; }
  body.fr-weitblick .fr-nr { color: var(--wb-muted); font-weight: 600; }
  body.fr-weitblick .fr-tt .t { font-family: var(--wb-display); font-weight: 600; color: var(--wb-ink); line-height: 1.35; }
  body.fr-weitblick .fr-tt .s { color: var(--wb-muted); }
  body.fr-weitblick .fr-chev { color: var(--wb-control); }
  body.fr-weitblick :is(.fr-lbl, .fr-rk-lbl) { color: var(--wb-muted); font-weight: 600; letter-spacing: .1em; }
  body.fr-weitblick :is(.fr-text, .sv-rich) { color: var(--wb-ink); font-size: .9375rem; line-height: 1.65; }
  body.fr-weitblick .sv-rich .sv-h { color: var(--wb-petrol); }
  body.fr-weitblick .sv-rich .sv-sub { color: var(--wb-ink); }
  body.fr-weitblick .sv-rich .sv-table { font-size: .875rem; }
  body.fr-weitblick .sv-rich .sv-table :is(th, td) { border-bottom-color: var(--wb-line); }
  body.fr-weitblick .sv-rich .sv-table th { background: var(--wb-bg); color: var(--wb-ink); }
  body.fr-weitblick .fr-antrag { background: #eef3ea; border-left-color: #739475; border-radius: 0 6px 6px 0; padding: .85rem 1.1rem; }
  body.fr-weitblick .fr-antrag .al { color: #4f6a55; font-weight: 600; letter-spacing: .1em; }
  body.fr-weitblick .fr-antrag .at { color: var(--wb-ink); font-size: .9375rem; }
  body.fr-weitblick .fr-komm { background: var(--wb-warning-bg); border-left-color: #c9a55a; border-radius: 0 6px 6px 0; padding: .85rem 1.1rem; }
  body.fr-weitblick .fr-komm .al { color: var(--wb-warning); font-weight: 600; letter-spacing: .1em; }
  body.fr-weitblick .fr-komm .at { color: #4d3b12; font-size: .9375rem; }
  body.fr-weitblick .fr-pdf a { color: var(--wb-petrol); }
  body.fr-weitblick :is(.fr-rk, .fr-thread) { border-top-color: var(--wb-line); }

  /* Stimme (nur der Bürgermeister sieht sie) */
  body.fr-weitblick .fr-vbtn { border-color: #c9d6cf; color: var(--wb-muted); }
  body.fr-weitblick .fr-vbtn:hover { border-color: var(--wb-control); }
  body.fr-weitblick .fr-vbtn.is-checked { color: #fff; }
  body.fr-weitblick .fr-vbtn-dafuer.is-checked   { background: var(--wb-success); border-color: var(--wb-success); }
  body.fr-weitblick .fr-vbtn-dagegen.is-checked  { background: var(--wb-danger); border-color: var(--wb-danger); }
  body.fr-weitblick .fr-vbtn-unsicher.is-checked { background: var(--wb-warning); border-color: var(--wb-warning); }
  body.fr-weitblick .fr-vbtn-keine.is-checked    { background: var(--wb-muted); border-color: var(--wb-muted); }
  body.fr-weitblick .fr-saved.ok { color: var(--wb-success); }
  body.fr-weitblick .fr-saved.err { color: var(--wb-danger); }
  body.fr-weitblick #fr-name.is-invalid { border-color: var(--wb-danger); box-shadow: 0 0 0 .2rem rgb(148 59 50 / 15%); }

  /* Diskussion je TOP */
  body.fr-weitblick .fr-post { background: #f7faf5; border-color: var(--wb-line); }
  body.fr-weitblick .fr-post-name { color: var(--wb-petrol); }
  body.fr-weitblick .fr-post-time { color: var(--wb-muted); }
  body.fr-weitblick .fr-post-edit { color: var(--wb-muted); }
  body.fr-weitblick .fr-post-edit:hover { color: var(--wb-petrol); }
  body.fr-weitblick .fr-post-text { color: var(--wb-ink); }

  /* Chat zur Sitzung */
  body.fr-weitblick :is(.fr-chat-hint, .fr-chat-empty, .fr-msg-meta, .fr-msg-edited) { color: var(--wb-muted); }
  body.fr-weitblick .fr-msg { background: #f1f4f0; }
  body.fr-weitblick .fr-msg.mein { background: #e2eedb; }
  body.fr-weitblick .fr-msg.bm { background: var(--wb-warning-bg); border-color: #e8d9b0; }
  body.fr-weitblick .fr-msg-name { color: var(--wb-petrol); }
  body.fr-weitblick .fr-msg-bm-badge { background: var(--wb-warning); }
  body.fr-weitblick .fr-msg-del { color: #a9b8b1; }
  body.fr-weitblick .fr-msg-del:hover { color: var(--wb-danger); }
  body.fr-weitblick .fr-msg-text { color: var(--wb-ink); }

  /* Blitzabstimmung */
  body.fr-weitblick #fr-blitz { border-left-color: var(--wb-warning); }
  body.fr-weitblick .fr-blitz-lbl { color: var(--wb-warning); }
  body.fr-weitblick .fr-blitz-frage { font-family: var(--wb-display); color: var(--wb-ink); }
  body.fr-weitblick .fr-blitz-btn { border-color: #c9d6cf; color: var(--wb-muted); }
  body.fr-weitblick .fr-blitz-btn.ja.on { background: var(--wb-success); border-color: var(--wb-success); color: #fff; }
  body.fr-weitblick .fr-blitz-btn.nein.on { background: var(--wb-danger); border-color: var(--wb-danger); color: #fff; }
  body.fr-weitblick .fr-blitz-bar { background: #edf1ed; }
  body.fr-weitblick .fr-blitz-bar .ja { background: var(--wb-success); }
  body.fr-weitblick .fr-blitz-bar .nein { background: var(--wb-danger); }
  body.fr-weitblick .fr-blitz-zahlen .ja { color: var(--wb-success); }
  body.fr-weitblick .fr-blitz-zahlen .nein { color: var(--wb-danger); }
  body.fr-weitblick .fr-blitz-zahlen .g { color: var(--wb-muted); }

  @media (max-width: 767.98px) {
    /* Anmeldung am Handy: Petrol-Fläche kurz halten, damit das Formular ohne Scrollen sichtbar ist */
    body.fr-weitblick.fr-login main.fr-wrap { padding-top: .75rem !important; }
    body.fr-weitblick.fr-login .wb-login-karte { min-height: 0; }
    body.fr-weitblick.fr-login .wb-login-bild { padding-bottom: 1.25rem; }
    body.fr-weitblick.fr-login :is(.wb-login-landschaft, .wb-login-unter) { display: none; }
    body.fr-weitblick.fr-login .wb-login-text { margin-top: 1rem; }
    body.fr-weitblick.fr-login .wb-login-titel { font-size: 1.5rem; margin: 0; }
  }
  @media (max-width: 576px) {
    body.fr-weitblick :is(.form-control, .form-select), body.fr-weitblick .wb-login-form .form-control { font-size: 16px; }
    body.fr-weitblick .wb-login-form .fr-code-input { font-size: 1.3rem; }
    body.fr-weitblick .fr-band { padding: 1rem 1.1rem; gap: .9rem; }
    body.fr-weitblick .fr-band .wb-sitz-datum { padding-right: .9rem; min-width: 64px; }
    body.fr-weitblick .fr-band .wb-sitz-datum strong { font-size: 2rem; }
    body.fr-weitblick .fr-band .wb-sitz-band-text { flex-basis: 180px; }
  }
}

/* ── Links in Tabellen und Listen (01.10.2026, Simon: „das haben wir nirgends so“) ──────────────
   Standard im Portal: Links in Tabellen sind NICHT unterstrichen (Budget, Schlüssel, Kooperationen …),
   erst beim Überfahren. Neue Module erbten sonst den Browser-Unterstrich (Fördermittel, Verordnungen,
   Grundstücke). :where() hält die Regel schwach – eigene Modul-Regeln gehen weiter vor. */
@media screen {
  body.theme-weitblick :where(.portal-main-inner table) a:where(:not(.btn, .alert-link)) { text-decoration: none; }
  body.theme-weitblick :where(.portal-main-inner table) a:where(:not(.btn, .alert-link)):hover { text-decoration: underline; }
  /* Zeilentitel (erste Zeile einer Tabellenzeile/Karte, führt zur Detailseite): dunkel + halbfett wie in den Finanz-Tabellen. */
  body.theme-weitblick a.wb-zeilentitel { color: var(--wb-ink); font-weight: 600; text-decoration: none; }
  body.theme-weitblick a.wb-zeilentitel:hover { color: var(--wb-petrol); text-decoration: underline; }
  /* Verweise in Karten (Quelle, „im RIS öffnen“, Bezugs-Verordnung): Farbe zeigt den Link, Unterstrich erst beim Überfahren. */
  body.theme-weitblick a.wb-verweis { text-decoration: none; }
  body.theme-weitblick a.wb-verweis:hover { text-decoration: underline; }
}

/* ── Kompakte Tafel-Tabelle (01.10.2026, Codex-Prüfung Fördermittel/Verordnungen) ──────────────
   Tabellen in .wb-liq-panel mit derselben Kopfzeile wie Liquidität/Budget, aber dichten Zeilen.
   Neue Module: <section class="wb-liq-panel dicht"> + Kopf + <table class="wb-tbl"> + .wb-liq-fuss –
   keinen eigenen Tabellenstil je Modul erfinden. */
@media screen {
  body.theme-weitblick table:is(.wb-tbl, .fm-tbl, .vo-tbl) { width: 100%; border-collapse: collapse; font-size: .8125rem; }
  body.theme-weitblick table:is(.wb-tbl, .fm-tbl, .vo-tbl) thead th { font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600;
    color: var(--wb-muted); padding: .4rem .5rem; border-top: 1px solid var(--wb-line); border-bottom: 1px solid var(--wb-line); background: #f7f9f6; white-space: nowrap; }
  body.theme-weitblick table:is(.wb-tbl, .fm-tbl, .vo-tbl) td { padding: .35rem .5rem; border-bottom: 1px solid var(--wb-line); vertical-align: middle; }
  body.theme-weitblick table:is(.wb-tbl, .fm-tbl, .vo-tbl) tbody tr:hover td { background: #f9fbf8; }
  body.theme-weitblick .wb-liq-panel table:is(.wb-tbl, .fm-tbl, .vo-tbl) :is(th, td):first-child { padding-left: 1rem; }
  body.theme-weitblick .wb-liq-panel table:is(.wb-tbl, .fm-tbl, .vo-tbl) :is(th, td):last-child { padding-right: 1rem; }
  body.theme-weitblick .wb-liq-panel table:is(.wb-tbl, .fm-tbl, .vo-tbl) tbody tr:last-child td { border-bottom: 0; }
  body.theme-weitblick .wb-liq-panel.dicht .wb-liq-panel-kopf { padding: .65rem 1rem .5rem; }
  body.theme-weitblick .wb-liq-panel.dicht .wb-liq-panel-kopf h2 { font-size: .95rem; }
  body.theme-weitblick .wb-liq-panel.dicht .wb-liq-fuss { padding: .5rem 1rem; border-top: 1px solid var(--wb-line); }
  /* Zähler in einer aktiven Pille erben die helle Schrift (sonst grau auf Petrol). */
  body.theme-weitblick .ns-tab.active :is(.vo-klein, .fm-klein, .text-muted) { color: inherit; }
}

/* ── Öffentliche Raumanfrage (raumverwaltung/public/*, 02.10.2026) ─────────────────────────────
   Nur Abstände und Raster – Kopf (.wb-akte-kopf), Stufenleiste (.wb-weg), Panels (.wb-liq-panel),
   Hinweis (.wb-bu-hinweis) und Kacheln (.wb-kachel) sind die zentralen Bausteine. */
@media screen {
  body.theme-weitblick .rb-seite { max-width: 880px; margin: 0 auto; padding-top: .5rem; }
  body.theme-weitblick .rb-seite .wb-weg { margin-bottom: 1.25rem; }
  body.theme-weitblick .rb-feld { padding: .35rem 1.25rem 1.25rem; }
  body.theme-weitblick .rb-feld .form-label { font-weight: 600; margin-bottom: .25rem; }
  body.theme-weitblick .rb-feld .form-text { margin: .35rem 0 0; }
  body.theme-weitblick .rb-gruppe { border: 0; padding: 0; margin: 0 0 1.1rem; min-width: 0; }
  body.theme-weitblick .rb-gruppe > legend { float: none; width: auto; padding: 0; margin: 0 0 .35rem;
    font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted); }
  body.theme-weitblick .rb-feld > .row + .rb-gruppe, body.theme-weitblick .rb-feld > .form-text + .rb-gruppe { margin-top: 1.1rem; }
  body.theme-weitblick .rb-feld > .rb-gruppe + .row:not(:last-child) { margin-bottom: 1.1rem; }
  body.theme-weitblick .rb-feld > :last-child { margin-bottom: 0; }
  body.theme-weitblick .rb-einschub { margin-top: .6rem; padding: .8rem 1rem; border: 1px solid var(--wb-line); border-radius: 8px; }
  body.theme-weitblick .rb-zusatz { margin-top: 0; }
  body.theme-weitblick .rb-gruppe > .form-text { margin-top: .5rem; }
  body.theme-weitblick .rb-absenden { display: flex; align-items: center; gap: .6rem 1rem; flex-wrap: wrap; margin-top: 1.1rem;
    padding-top: 1rem; border-top: 1px solid var(--wb-line); }
  body.theme-weitblick .rb-absenden > span { font-size: .75rem; color: var(--wb-muted); }
  body.theme-weitblick .rb-angaben { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1.5rem; margin: 0; padding: .35rem 1.25rem 1.25rem; }
  body.theme-weitblick .rb-angaben dt { font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted); }
  body.theme-weitblick .rb-angaben dd { margin: .1rem 0 0; font-weight: 600; overflow-wrap: anywhere; }
  body.theme-weitblick .rb-angaben-breit { grid-column: 1 / -1; }
  body.theme-weitblick .rb-angaben-breit dd { font-weight: 400; white-space: pre-line; }
  @media (min-width: 768px) { body.theme-weitblick .rb-seite .wb-weg { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (max-width: 575.98px) { body.theme-weitblick .rb-angaben { grid-template-columns: minmax(0, 1fr); } }
}

/* ── Rechtliches: Fuß-Links aller öffentlichen Seiten (templates/_rechtliches.html) und die Leseseiten
   Impressum/Datenschutz (templates/core/impressum.html, datenschutz.html) — 02.10.2026.
   Kopf (.wb-akte-kopf), Panels (.wb-liq-panel) und Angaben (.rb-angaben) kommen von oben; hier nur
   Lesebreite, Fließtext im Panel und die ruhigen Links. */
@media screen {
  body.theme-weitblick .wb-recht a { color: var(--wb-muted); text-decoration: none; }
  body.theme-weitblick .wb-recht a:hover { color: var(--portal-primary-600); text-decoration: underline; }
  body.theme-weitblick .wb-recht-fuss { padding-top: .25rem; padding-bottom: 1.5rem; font-size: .8125rem; }
  /* Fuß bündig mit dem Inhalt darüber: Startfläche 1120 px, Leseseite 860 px, Formularseite 880 px (+ Container-Rand) */
  body.theme-weitblick .wb-recht-fuss { max-width: calc(1120px + 1.5rem); }
  body.theme-weitblick.wb-login .wb-recht-fuss { max-width: 1120px; }
  body.theme-weitblick:has(.wb-recht-seite) .wb-recht-fuss { max-width: calc(860px + 1.5rem); }
  body.theme-weitblick:has(.rb-seite) .wb-recht-fuss { max-width: calc(880px + 1.5rem); }
  body.theme-weitblick .wb-recht-seite { max-width: 860px; margin: 0 auto; padding-top: .5rem; }
  body.theme-weitblick .wb-recht-text { padding: .35rem 1.25rem 1.25rem; line-height: 1.6; }
  body.theme-weitblick .wb-recht-text > :last-child { margin-bottom: 0; }
  body.theme-weitblick .wb-recht-text p, body.theme-weitblick .wb-recht-text ul { margin: 0 0 .7rem; }
  body.theme-weitblick .wb-recht-text ul { padding-left: 1.15rem; }
  body.theme-weitblick .wb-recht-text li + li { margin-top: .3rem; }
  body.theme-weitblick .wb-recht-stand { font-size: .75rem; color: var(--wb-muted); margin: 0 0 1rem; }
  body.theme-weitblick .wb-liq-panel[id] { scroll-margin-top: 5rem; }
}

/* ── Meine Mappe / Frage des Tages (03.10.2026, Weiterentwicklung #80) — templates/mappe/*.
   Karte auf „Mein Tag“ und Seite /mappe/frage teilen sich das Formular (mappe/_frage.html); die Mappe ist eine
   dichte Liste mit aufklappbaren Zeilen. Panels, Band, Pillen und Tabellen kommen von oben. */
@media screen {
  body.theme-weitblick .mp-frage .wb-liq-panel-kopf h2 i { color: var(--wb-petrol); margin-right: .25rem; }
  body.theme-weitblick .mp-frage-inhalt { padding: 0 1.25rem 1rem; }
  body.theme-weitblick .mp-frage-titel { font: 600 1.05rem/1.35 var(--wb-display); letter-spacing: -.01em; color: var(--wb-ink); }
  body.theme-weitblick .mp-hinweis { font-size: .8125rem; color: var(--wb-muted); margin-top: .15rem; }
  body.theme-weitblick .mp-form { margin-top: .75rem; }
  body.theme-weitblick .mp-optionen { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .4rem; }
  body.theme-weitblick .mp-optionen-reihe { grid-template-columns: repeat(auto-fill, minmax(150px, max-content)); margin-top: .6rem; }
  body.theme-weitblick .mp-option { display: flex; align-items: center; gap: .5rem; margin: 0; padding: .35rem .65rem; border: 1px solid var(--wb-line);
    border-radius: 6px; background: #fff; font-size: .8125rem; color: var(--wb-ink); cursor: pointer; }
  body.theme-weitblick .mp-option:hover { border-color: var(--wb-control); }
  body.theme-weitblick .mp-option:has(input:checked) { background: var(--wb-mint); border-color: var(--portal-primary-400); }
  body.theme-weitblick .mp-option input { margin: 0; accent-color: var(--portal-primary); flex: none; }
  body.theme-weitblick .mp-option-nichts { color: var(--wb-muted); }
  body.theme-weitblick .mp-option-einzeln { display: inline-flex; margin-top: .4rem; }
  body.theme-weitblick .mp-anderes { margin-top: .45rem; max-width: 520px; }
  /* Textfelder wachsen beim Schreiben mit (Simon 09.10.2026: „mehr Platz für Kommentare“). textarea.… nötig: die
     allgemeine Regel textarea.form-control (min-height 2.4rem) ist sonst stärker → Felder nur zwei Zeilen hoch. */
  body.theme-weitblick textarea.mp-text { max-width: 880px; min-height: 6.5rem; max-height: 28rem; field-sizing: content; resize: vertical; margin-top: .45rem; }
  body.theme-weitblick textarea.mp-text-gross { min-height: 9rem; }
  body.theme-weitblick .mp-anmerkung { display: block; margin: .85rem 0 0; font-size: .8125rem; font-weight: 600; color: var(--wb-ink); }
  body.theme-weitblick .mp-anmerkung span { font-weight: 400; color: var(--wb-muted); margin-left: .35rem; }
  body.theme-weitblick .mp-anmerkung + .mp-text { margin-top: .25rem; }
  body.theme-weitblick .mp-anm-datum { display: block; font-size: .6875rem; color: var(--wb-muted); }
  body.theme-weitblick .mp-person-frage { display: flex; align-items: center; gap: .6rem; margin-top: .6rem; font-size: .8125rem; }
  body.theme-weitblick .mp-person-frage select { width: auto; min-width: 14rem; }
  body.theme-weitblick .mp-tabelle { overflow-x: auto; }
  body.theme-weitblick table.mp-matrix { width: auto; min-width: 60%; }
  body.theme-weitblick table.mp-matrix :is(th, td) { text-align: center; padding: .3rem .45rem; }
  body.theme-weitblick table.mp-matrix tbody th { text-align: left; font-weight: 400; padding-left: 0; padding-right: 1rem; }
  body.theme-weitblick table.mp-matrix thead th:first-child { padding-left: 0; }
  body.theme-weitblick table.mp-matrix input { accent-color: var(--portal-primary); width: 1rem; height: 1rem; }
  body.theme-weitblick .mp-zeilen { display: grid; gap: .4rem; max-width: 720px; }
  body.theme-weitblick .mp-zeile-wahl { display: grid; grid-template-columns: minmax(0, 1fr) 16rem; align-items: center; gap: .75rem; margin: 0; font-size: .8125rem; }
  body.theme-weitblick .mp-fuss { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-top: .85rem; }
  body.theme-weitblick .mp-privat { margin-left: auto; font-size: .75rem; color: var(--wb-muted); }
  body.theme-weitblick .mp-erledigt { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; padding: .6rem 1rem; border: 1px solid var(--wb-line);
    border-radius: 8px; background: #fff; font-size: .8125rem; color: var(--wb-muted); }
  body.theme-weitblick .mp-erledigt > i { color: var(--wb-success); font-size: 1.05rem; }
  body.theme-weitblick .mp-erledigt > span { flex: 1 1 320px; }
  body.theme-weitblick .mp-seite { max-width: 1100px; }
  body.theme-weitblick .mp-leer { padding: 0 1.25rem 1rem; margin: 0; font-size: .875rem; color: var(--wb-muted); }
  /* Mappe: Liste mit aufklappbaren Zeilen */
  body.theme-weitblick .mp-spalten { display: grid; grid-template-columns: minmax(0, 2.4fr) minmax(0, 1fr) minmax(0, 1.2fr) 7rem 8.5rem; gap: .75rem; align-items: center; }
  body.theme-weitblick .mp-zeile-kopf { padding: .3rem 1rem; font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--wb-muted);
    border-bottom: 1px solid var(--wb-line); }
  body.theme-weitblick .mp-gruppe { padding: .55rem 1rem .2rem; font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--portal-primary-400); }
  body.theme-weitblick .mp-zeile { border-bottom: 1px solid var(--wb-line); }
  body.theme-weitblick .mp-zeile:last-child { border-bottom: 0; }
  body.theme-weitblick .mp-zeile > summary { list-style: none; cursor: pointer; padding: .4rem 1rem; font-size: .8125rem; }
  body.theme-weitblick .mp-zeile > summary::-webkit-details-marker { display: none; }
  body.theme-weitblick .mp-zeile > summary:hover { background: #f9fbf8; }
  body.theme-weitblick .mp-name { font-weight: 600; color: var(--wb-ink); }
  body.theme-weitblick .mp-pfeil { font-size: .7rem; color: var(--wb-control); margin-right: .4rem; display: inline-block; transition: transform .15s; }
  body.theme-weitblick .mp-zeile[open] .mp-pfeil { transform: rotate(90deg); }
  body.theme-weitblick .mp-rot { color: var(--wb-danger); }
  body.theme-weitblick .mp-punkte { display: inline-flex; gap: 3px; }
  body.theme-weitblick .mp-punkt { width: 8px; height: 8px; border-radius: 2px; background: var(--wb-line); }
  body.theme-weitblick .mp-punkt.voll { background: var(--portal-primary-400); }
  body.theme-weitblick .mp-felder { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: .25rem 1rem; margin: 0; padding: .3rem 1rem .8rem 2.2rem;
    font-size: .8125rem; background: #f9fbf8; }
  body.theme-weitblick .mp-felder dt { font-weight: 400; color: var(--wb-muted); }
  body.theme-weitblick .mp-felder dd { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
  body.theme-weitblick .mp-felder-breit { grid-template-columns: minmax(12rem, 22rem) minmax(0, 1fr); padding: 0 1.25rem 1rem; background: transparent; }
  body.theme-weitblick .mp-felder-rahmen { padding: .6rem .8rem; border: 1px solid var(--wb-line); border-radius: 6px; max-width: 720px; }
  body.theme-weitblick .mp-fehlt { color: var(--wb-muted); font-style: italic; }
  body.theme-weitblick .mp-ki-vermerk { display: block; font-size: .6875rem; color: var(--wb-muted); margin-top: .1rem; }
  body.theme-weitblick .mp-ki-frage { display: block; color: var(--wb-muted); }
  body.theme-weitblick .mp-info-text { max-width: 760px; font-size: .875rem; line-height: 1.55; }
  body.theme-weitblick .mp-info-text p { margin: 0 0 .55rem; }
  body.theme-weitblick .mp-info-text ul { margin: 0 0 .7rem; padding-left: 1.15rem; }
  body.theme-weitblick .mp-info-text li + li { margin-top: .25rem; }
  body.theme-weitblick table.mp-kalender :is(th, td) { text-align: center; padding: .3rem .2rem; }
  body.theme-weitblick table.mp-kalender :is(tbody th, thead th:first-child) { text-align: left; font-weight: 400; width: 30%; }
  body.theme-weitblick table.mp-kalender tbody th { font-weight: 600; }
  body.theme-weitblick .mp-kal { display: block; height: 12px; border-radius: 3px; background: #eef2ee; }
  body.theme-weitblick .mp-kal.an { background: var(--portal-primary-400); }
  body.theme-weitblick .mp-zwei { display: grid; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 0 1.25rem; }
  body.theme-weitblick .mp-formular { display: grid; gap: .6rem; padding: 0 1.25rem 1.1rem; font-size: .8125rem; }
  body.theme-weitblick .mp-formular label { display: grid; gap: .2rem; margin: 0; color: var(--wb-muted); }
  body.theme-weitblick .mp-formular-reihe { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); align-items: end; }
}

/* ── Hallenplan (raumverwaltung/admin/hallenplan.html, 08.10.2026) ─────────────────────────────
   Raster und Blöcke kommen von der Wochenansicht (.wb-kal*); hier nur die Hälften (links/rechts),
   Schulzeiten zurückgenommen und der Stichtag. Feinschliff nach Codex (Astra) 08.10.2026. */
@media screen {
  body.theme-weitblick .hp-stand .form-control { width: auto; }
  body.theme-weitblick .wb-kal-titel.hp-titel { margin-left: 0; }
  body.theme-weitblick .hp-tag { padding: .55rem 0 .35rem; }
  body.theme-weitblick .hp-tag strong { font-size: 1.05rem; margin-top: 0; }
  body.theme-weitblick .hp-teile { display: grid; grid-template-columns: 1fr 1fr; width: 100%; margin-top: .2rem;
    font-size: .625rem; color: #526864; text-align: center; }
  body.theme-weitblick .hp-spalte.hp-geteilt { background-image: linear-gradient(to bottom, var(--wb-line) 1px, transparent 1px),
    repeating-linear-gradient(to bottom, #e6ece6 0 4px, transparent 4px 8px);
    background-size: 100% 44px, 1px 100%; background-position: 0 0, 50% 0; background-repeat: repeat, repeat-y; }
  body.theme-weitblick .hp-lesen .hp-spalte { cursor: default; }
  body.theme-weitblick .hp-block.hp-schule { background: #f0f2f1; border-left-color: #8a948f; color: #4d5652; }
  body.theme-weitblick .hp-block.hp-schule .t { font-weight: 400; }
  body.theme-weitblick .hp-block.hp-halb { padding-left: 3px; padding-right: 3px; }
  body.theme-weitblick .hp-block.hp-halb .z { font-size: .625rem; letter-spacing: -.01em; }
  body.theme-weitblick .hp-block.hp-zwei .t { white-space: normal; line-height: 1.15; display: -webkit-box;
    -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  body.theme-weitblick .hp-sperre-neu { justify-content: flex-start; }
  body.theme-weitblick .hp-sperre-neu .form-control, body.theme-weitblick .hp-sperre-neu .form-select { width: auto; min-width: 0; }
  body.theme-weitblick .hp-sperre-neu input[name="titel"] { min-width: 14rem; }
  body.theme-weitblick .wb-kal-chip.hp-chip { background: #f4f6f3; color: #3f524d; border-left-color: #a9b7ae; font-variant-numeric: tabular-nums; }
  body.theme-weitblick .wb-kal-chip.hp-chip-aus s { text-decoration-thickness: 1px; text-decoration-color: #73837e; }
  body.theme-weitblick .wb-kal-block.hp-plan { background: repeating-linear-gradient(135deg, #fff 0 5px, rgba(44, 70, 76, .07) 5px 8px);
    border-left-style: dashed; }
  body.theme-weitblick .hp-steuer-rechts { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
  body.theme-weitblick .hp-schalter { display: inline-flex; align-items: center; gap: .4rem; font-size: .8125rem; font-weight: 600;
    color: var(--wb-muted); text-decoration: none; white-space: nowrap; }
  body.theme-weitblick .hp-schalter i { font-size: 1.35rem; line-height: 1; }
  body.theme-weitblick .hp-schalter:hover, body.theme-weitblick .hp-schalter.an { color: var(--wb-petrol); }
  body.theme-weitblick .wb-kal-legende b.hp-leg-plan { background: repeating-linear-gradient(135deg, #fff 0 4px, rgba(44, 70, 76, .12) 4px 7px); border-left: 2px dashed #52606d; }
}
