/* Lambie Gebäudeenergieberatung — Design Tokens v3.0.0
   Eine Schriftfamilie: IBM Plex Sans für Text UND Zahlen (Ziffern gleich breit).
   IBM Plex Mono nur noch für Code und technische Kennungen.
   Zwei Temperaturen: --lb-web-* (weich, Website) und --lb-doc-* (gerade, Bericht/Folie).
   Grundlagen (Farbe, Schrift) gelten für beide. */
:root {
  /* Farbe */
  --lb-blue: #23415A;
  --lb-blue-hover: #1B3348;
  --lb-blue-muted: #4C6478;
  --lb-green: #58897A;
  --lb-green-light: #EAF0EC;
  --lb-green-pale: #9FBBA9;
  --lb-green-dark: #2E5749;     /* Dunkelgrün: Logo-Unterzeile, Zahl auf Grün hell; Kontrast 8,2:1 */
  /* Logo L8c: Treppe hell → mittel → dunkel, Unterzeile Dunkelgrün */
  --lb-logo-stufe-1: #9FBBA9;
  --lb-logo-stufe-2: #58897A;
  --lb-logo-stufe-3: #23415A;
  --lb-logo-name: #23415A;
  --lb-logo-unterzeile: #2E5749;
  --lb-text: #1C2530;
  --lb-text-muted: #4A4E54;
  --lb-text-subtle: #7A7E84;
  --lb-label: #8A939B;
  --lb-stage: #F2F1EF;        /* Bühne, nur Web */
  --lb-surface: #FFFFFF;
  --lb-surface-alt: #F4F5F3;
  --lb-field: #F5F4F2;
  --lb-border: #D9DDD8;
  --lb-border-web: #E4E3E0;
  --lb-hairline: #EDEFEC;
  --lb-on-dark: #FFFFFF;
  --lb-on-dark-muted: #C9D6DF;
  --lb-on-dark-label: #9FBBA9;
  --lb-chart-1: #23415A;
  --lb-chart-2: #4C6478;
  --lb-chart-3: #8CA3AE;
  --lb-chart-4: #DCE2DE;
  --lb-chart-target: #58897A;
  /* Ampel (3.1.0, Vorschlag, Freigabe Praxisinhaber offen): immer mit Wort, nie Farbe allein */
  --lb-status-gut: #58897A;
  --lb-status-knapp: #C29A3A;
  --lb-status-kritisch: #A8513C;

  /* Schrift */
  --lb-font-body: 'IBM Plex Sans', 'Segoe UI', Arial, system-ui, sans-serif;
  --lb-font-display: var(--lb-font-body);   /* Alias, bleibt aus Kompatibilität bestehen */
  --lb-font-zahl: var(--lb-font-body);   /* Zahlen: Plex Sans, gleich breite Ziffern */
  --lb-font-mono: 'IBM Plex Mono', Consolas, monospace;   /* nur Code und technische Kennungen */
  --lb-tracking-display: -0.016em;
  --lb-tracking-heading: -0.014em;
  --lb-tracking-label: 0.12em;

  /* Typo Web */
  --lb-size-hero: 52px;
  --lb-size-h1: 44px;
  --lb-size-h2: 29px;
  --lb-size-h3: 20px;
  --lb-size-body: 16px;
  --lb-size-small: 13.5px;
  --lb-size-label: 12px;
  --lb-lh-body: 1.65;
  --lb-lh-heading: 1.18;

  /* Abstände, Basis 6 */
  --lb-space-1: 6px;
  --lb-space-2: 12px;
  --lb-space-3: 18px;
  --lb-space-4: 26px;
  --lb-space-5: 34px;
  --lb-space-6: 44px;
  --lb-space-7: 64px;

  /* Web: weich */
  --lb-web-radius: 20px;
  --lb-web-radius-image: 14px;
  --lb-web-radius-field: 12px;
  --lb-web-radius-pill: 100px;
  --lb-web-shadow: 0 1px 3px rgba(28, 37, 48, 0.07);
  --lb-web-card-padding: 26px;
  --lb-web-gap: 18px;
  --lb-web-button-height: 50px;
  --lb-web-touch-min: 48px;

  /* Dokument: gerade */
  --lb-doc-radius: 0;
  --lb-doc-shadow: none;
  --lb-doc-hairline: 0.75pt solid var(--lb-hairline);
  --lb-doc-head-rule: 1.5pt solid var(--lb-blue);
  --lb-doc-sum-rule: 3pt solid var(--lb-green);   /* jetzt linker Strich, nicht unterstrichen */
  --lb-doc-margin: 22mm;

  /* Typo Dokument — Untergrenzen, nicht Vorschläge */
  --lb-doc-size-title: 22pt;
  --lb-doc-size-title-cover: 26pt;
  --lb-doc-size-section: 15pt;
  --lb-doc-size-body: 10pt;
  --lb-doc-lh-body: 1.68;
  --lb-doc-size-table: 10pt;
  --lb-doc-size-table-head: 9pt;
  --lb-doc-size-label: 9pt;
  --lb-doc-size-meta: 8pt;          /* Kopf- und Fußzeile */
  --lb-doc-size-logo-sub: 8pt;
  /* Folie 16:9, Raster B (1280 × 720 px) — v3.0.0 */
  --lb-slide-size-min: 12pt;       /* Fließtext, Tabelle, Verzeichnis */
  --lb-slide-size-title: 24pt;
  --lb-slide-size-body: 15pt;      /* Kurzteil */
  --lb-slide-size-anhang: 13pt;    /* Anhang */
  --lb-slide-size-table: 13pt;
  --lb-slide-size-metric: 36pt;
  --lb-slide-size-nav: 12pt;
  --lb-slide-size-label: 10pt;     /* Labels, Tabellenkopf */
  --lb-slide-size-footer: 9pt;     /* nur Fußzeile */
  --lb-slide-rail: 280px;
  --lb-slide-rail-bg: #F4F5F3;

  /* Merkmale */
  --lb-accent-bar: 4px;                 /* grüner Strich, links, 14px Textabstand */
  --lb-accent-bar-gap: 14px;
  --lb-top-edge: 7px;                   /* Kopfkante Titelseite */
  --lb-top-edge-line: 3px;

  /* Motion */
  --lb-motion-color: 160ms;
  --lb-motion-size: 200ms;
  --lb-motion-fade: 240ms;
  --lb-easing: cubic-bezier(0, 0, 0.2, 1);

  /* Fokus */
  --lb-focus: 2px solid var(--lb-green);
  --lb-focus-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  :root { --lb-motion-color: 0ms; --lb-motion-size: 0ms; --lb-motion-fade: 0ms; }
}

/* Bausteine, kanonisch */
.lb-btn { font-family: var(--lb-font-body); font-weight: 600; font-size: 15px;
  border-radius: var(--lb-web-radius-pill); padding: 17px 26px; border: 0; cursor: pointer;
  background: var(--lb-blue); color: var(--lb-on-dark);
  transition: background var(--lb-motion-color) var(--lb-easing); }
.lb-btn:hover { background: var(--lb-blue-hover); }
.lb-btn:focus-visible { outline: var(--lb-focus); outline-offset: var(--lb-focus-offset); }
.lb-btn--secondary { background: transparent; color: var(--lb-blue);
  border: 1px solid var(--lb-blue); padding: 16px 25px; }
.lb-btn--tertiary { background: transparent; color: var(--lb-blue); border-radius: 0;
  border-bottom: 2px solid var(--lb-green); padding: 16px 4px; }
.lb-btn[disabled] { background: #C9CCD1; cursor: not-allowed; }

.lb-card { background: var(--lb-surface); border-radius: var(--lb-web-radius);
  padding: var(--lb-web-card-padding); box-shadow: var(--lb-web-shadow); }

/* Grüner Strich: Hinweis, Annahme, Kennzahl, Preis, Summe, Zitat */
.lb-accent { border-left: var(--lb-accent-bar) solid var(--lb-green);
  padding-left: var(--lb-accent-bar-gap); }

/* Kopfkante: nur Titelseite / Titelfolie */
.lb-top-edge { height: var(--lb-top-edge); background: var(--lb-blue);
  border-bottom: var(--lb-top-edge-line) solid var(--lb-green); }

/* Dokumenttabelle */
.lb-table { width: 100%; border-collapse: collapse; font-family: var(--lb-font-body); }
.lb-table thead th { font: 500 var(--lb-doc-size-table-head)/1 var(--lb-font-body);
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--lb-blue-muted); text-align: left;
  padding-bottom: 9px; border-bottom: var(--lb-doc-head-rule); }
.lb-table td { font-size: var(--lb-doc-size-table); color: var(--lb-text);
  padding: 9px 8px 9px 0; border-bottom: var(--lb-doc-hairline); }
.lb-table td.num, .lb-table th.num { text-align: right; font-family: var(--lb-font-zahl);
  font-variant-numeric: tabular-nums; }
.lb-table tr.sum td { font-family: var(--lb-font-body); font-weight: 600; color: var(--lb-blue);
  border-bottom: 0; padding-top: 12px; padding-bottom: 12px; }
.lb-table tr.sum td:first-child { border-left: var(--lb-doc-sum-rule); padding-left: 14px; }
.lb-table tr.sum td.num { font-family: var(--lb-font-zahl); font-weight: 600; border-left: 0; }

/* Jede Zahl: Plex Sans mit gleich breiten Ziffern. */
.lb-num { font-family: var(--lb-font-zahl); font-variant-numeric: tabular-nums; }

/* Label, Kapitel-, Kopf- und Fußzeile — Plex Sans 500, nie Mono */
.lb-label { font-family: var(--lb-font-body); font-weight: 500; font-size: var(--lb-size-label);
  letter-spacing: var(--lb-tracking-label); text-transform: uppercase; color: var(--lb-label); }

a { color: var(--lb-blue); text-decoration: none; }
a:hover { color: var(--lb-blue); border-bottom: 1px solid var(--lb-green); }
