/* AVmemora – gemeinsame Design-Token (Audit F-06, 2026-09-13).
   ───────────────────────────────────────────────────────────────────────────
   EINE Quelle für Farben, Warn-/Statusfarben, Skalen (Radius, Schatten, Abstand, Schrift)
   und Schriftrollen. Wird von index.html (Dashboard) UND scout.html (vor avorge.css) geladen;
   vorher standen dieselben Blöcke doppelt in index.html und avorge.css (Audit D-02/D-03/D-04).
   Seitenspezifisch bleiben nur: --hdr-bg, --mat, --font (avorge.css).

   Drei Blöcke, immer gleich pflegen:
     :root                                        hell (Standard)
     @media dark  :root:not([data-theme="light"]) System dunkel, ohne ausdrückliche Wahl
     [data-theme="dark"]                          ausdrückliche Wahl in den Einstellungen
   Neuer Token = in ALLEN drei Blöcken (oder bewusst nur hell, wenn er dem Thema nicht folgt).
   Akzent-Presets setzen --acc/--acc-l/--acc-t/--acc-s/--acc-btn zusätzlich per Skript
   (applyAccent, Inline-Style am <html>) — das gewinnt gegen alles hier.
   Deploy: `*.css` im Cloudflare-Build-Befehl (CLAUDE.md §Cloudflare Pages) und in den sw.js-ASSETS. */
:root{
  color-scheme:light;   /* native Rollbalken/Formularelemente folgen dem Thema (2026-10-04, Chris: weißer Rollbalken im Dunkelmodus) */
  --bg-p:#ffffff;--bg-s:#f5f5f4;--bg-t:#eeece8;
  --txt:#1a1a18;--txt2:#6b6b68;--txt3:#727270; /* Audit D-07: #9b9b98 war 2,79:1 auf Weiß */
  --bdr:rgba(0,0,0,.1);--bdr2:rgba(0,0,0,.30); /* Audit D-09: .18 war 1,5:1 */
  --hover:#e8e6e2;--hover-bdr:rgba(0,0,0,.32);
  --acc:#0F766E;--acc-l:#E3F4F1;--acc-t:#0B4F4A;--acc-s:#2DD4BF;--acc-btn:#0F766E;
  /* Kontrast (Chris 2026-10-05): --acc-sel = Fläche einer gewählten Zeile ohne Rahmen (kräftiger als --acc-l, folgt jedem Akzent per color-mix),
     --acc-btn-h = Hover eines gefüllten Knopfs mit weißer Schrift (hell: dunkler, dunkel: nur leicht heller — --acc-t ist dort Schriftfarbe) */
  --acc-sel:color-mix(in srgb,var(--acc) 20%,var(--bg-p));--acc-btn-h:var(--acc-t);--acc-btn-ring:transparent;
  /* Markenfarben (Logo Chris 2026-09-19): fest, folgen NICHT dem wählbaren Akzent. --brand-ink = „AV“ im Schriftzug. */
  --brand:#0F766E;--brand-2:#2DD4BF;--brand-ink:#0F766E;
  --ctl-h:34px;   /* eine Bedienhöhe: Feld, Dropdown, Segmentreihe, Knopf (Chris 2026-09-09) */
  /* Höhenstufen (Chris 2026-10-21, Design-Inventur C1): 28 = Chips, kleine Knöpfe (.btn-s), Segmente in Leisten/Panels/Dialogzeilen,
     Symbolknöpfe; 20 = Pillen und Plaketten. Touch hebt einzelne Elemente weiter auf 44 (Regeln je Element). */
  --ctl-h-s:28px;--ctl-h-xs:20px;
  /* Warnung („bald", offene Punkte) und Verspätung als Token: hell Amber/Rot wie bisher,
     dunkel Signalgelb (Entscheidung Chris 2026-09-10). --ok-btn = dunkleres Grün als FLÄCHE unter weißem Symbol
     (Reiter-Kreise, Weiß darauf 5,0:1; Chris 2026-09-29). --ok = gedämpftes Grün für erledigte
     Wizard-Reiter (Chris 2026-09-10: „dezenter" als #16A34A). */
  --warn:#B45309;--warn-fill:#F5A623;--warn-ink:#1a1a18; /* Audit D-06: Weiß auf Amber war 2,03:1 */
  --late:#c0392b;--late-fill:#c0392b;--late-ink:#ffffff;
  --ok:#4E9A63;--ok-btn:#2F7D4A;--danger:#A32D2D;--danger-fill:#FCEBEB;--danger-bdr:#F7C1C1;
  /* Design-Inventur C3 (2026-10-21): --on-fill = Schrift/Symbol auf gefüllter Fläche (Akzentknopf, Status, dunkles Overlay);
     --info-fill/--info-ink und --ok-fill/--ok-ink = getönte Etiketten (Änderungsverlauf „Verbessert“/„Behoben“), vorher als Hexwerte mit
     Dunkel-Doppelregeln. Kein Sternchen-Schrägstrich in Kommentaren: Bis 2026-10-28 stand hier „--info-“ gefolgt von Sternchen und Schrägstrich, das beendete den
     Kommentar und verschluckte --on-fill im Hellmodus (Audit K-01; tools/test.js prüft die Token-Blöcke). */
  --on-fill:#fff;--info-fill:#dbeafe;--info-ink:#1e40af;--ok-fill:#dcfce7;--ok-ink:#166534;
  --shadow-card:0 1px 2px rgba(0,0,0,.04),0 6px 16px rgba(0,0,0,.05);
  --shadow-sheet:0 12px 40px rgba(0,0,0,.16);
  /* Audit D-02 Block 2 (Entscheidung Chris 2026-09-10): Skalen als Token.
     Radius 4/6/8/12/16/pill · Schatten s/card/pop/sheet · Abstand 4er-Raster · Schrift 7 Stufen. */
  --r-xs:4px;--r-s:6px;--r-m:8px;--r-l:12px;--r-xl:16px;--r-pill:999px;
  --shadow-s:0 1px 3px rgba(0,0,0,.08);--shadow-pop:0 8px 28px rgba(0,0,0,.16);
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:28px;--sp-8:32px;
  --fs-2xs:10px;--fs-xs:11px;--fs-s:12px;--fs-m:13px;--fs-l:15px;--fs-xl:18px;--fs-2xl:22px;
  /* Statusfarben als RGB-Tripel (für rgb(… / Alpha) in Pillen und Punkten). Eine Farbe je
     Status, zwei Darstellungen. „begehung" fehlt bewusst: der folgt der Akzentfarbe.
     Alle Werte mind. 4,5:1 gegen die getönte Fläche (10 px fett ist kein „großer Text"). */
  --st-entwurf:91 100 114;   --st-angebot:146 64 14;   --st-beauftragt:22 101 52;
  --st-abgeschlossen:71 85 105; --st-kein:185 28 28;   --st-keine-rueck:126 34 206;
  /* Schriftrollen (avtools.js hält Fallbacks): Auszeichnung schmal (Bahnschrift = DIN-Derivat,
     auf jedem Windows, variabel → font-stretch), Lauftext humanistisch, Kennzahlen dicktengleich
     mit tabellarischen Ziffern. Bewusst NICHT in den Dunkelblöcken: Schriften folgen dem Thema nicht. */
  --f-display:'Bahnschrift','DIN Next LT Pro','Segoe UI Variable Display','Avenir Next Condensed',system-ui,sans-serif;
  /* Seit 2026-10-21 (Chris, Variante C „Mischung“ aus docs/mockup-schrift.html): Lauftext Inter wie in SEPP, lokal aus
     vendor/inter (OFL, @font-face am Dateiende); Zahlen in Bahnschrift statt Mono. `--f-mono` heißt historisch so und ist
     die KENNZAHLEN-Schrift (rund 100 Stellen, immer mit tabular-nums); Cascadia Mono steht nur noch in `--f-code` für
     Kennzeichen (Projektnummer, Farbcode, Tastenkürzel). */
  --f-body:'Inter','Segoe UI Variable Text','Segoe UI',system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
  --f-mono:'Bahnschrift','DIN Next LT Pro','Segoe UI Variable Display',system-ui,sans-serif;
  --f-code:'Cascadia Mono',Consolas,ui-monospace,monospace;
  --st-disp:87.5%;
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
  color-scheme:dark;
  --bg-p:#1c1c1a;--bg-s:#252523;--bg-t:#111110;
  --txt:#f0ede8;--txt2:#a0a09c;--txt3:#93938f; /* Audit D-07: #6b6b68 war 3,19:1 */
  --bdr:rgba(255,255,255,.1);--bdr2:rgba(255,255,255,.30);
  --hover:#2e2e2c;--hover-bdr:rgba(255,255,255,.32);
  --acc:#2DD4BF;--acc-l:#0B2E2B;--acc-t:#A7F0E4;--acc-s:#2DD4BF;--acc-btn:#0F766E;
  --acc-sel:color-mix(in srgb,var(--acc) 22%,var(--bg-p));--acc-btn-h:color-mix(in srgb,var(--acc-btn) 90%,#fff);--acc-btn-ring:var(--acc-s);
  --brand:#0F766E;--brand-2:#2DD4BF;--brand-ink:#2DD4BF;
  --ctl-h:34px;--ctl-h-s:28px;--ctl-h-xs:20px;
  --warn:#FFD43B;--warn-fill:#FFD43B;--warn-ink:#1c1c1a;
  --late:#FF5A5A;--late-fill:#FF5A5A;--late-ink:#1c1c1a;
  --ok:#5AA872;--ok-btn:#2F7D4A;--danger:#FF5A5A;--danger-fill:#3A0F0F;--danger-bdr:#7A2C2C;
  --on-fill:#fff;--info-fill:#1e3a5f;--info-ink:#bfdbfe;--ok-fill:#14532d;--ok-ink:#bbf7d0;
  --shadow-card:0 1px 2px rgba(0,0,0,.3);
  --shadow-sheet:0 12px 40px rgba(0,0,0,.55);
  --shadow-s:0 1px 3px rgba(0,0,0,.4);--shadow-pop:0 8px 28px rgba(0,0,0,.5);
  /* Statusfarben aufgehellt — auf dunklem Grund muss die Schrift die helle Seite sein. */
  --st-entwurf:156 163 175;  --st-angebot:245 166 35;  --st-beauftragt:74 222 128;
  --st-abgeschlossen:148 163 184; --st-kein:248 113 113; --st-keine-rueck:192 132 252;
}}
[data-theme="dark"]{
  color-scheme:dark;
  --bg-p:#1c1c1a;--bg-s:#252523;--bg-t:#111110;
  --txt:#f0ede8;--txt2:#a0a09c;--txt3:#93938f; /* Audit D-07: #6b6b68 war 3,19:1 */
  --bdr:rgba(255,255,255,.1);--bdr2:rgba(255,255,255,.30);
  --hover:#2e2e2c;--hover-bdr:rgba(255,255,255,.32);
  --acc:#2DD4BF;--acc-l:#0B2E2B;--acc-t:#A7F0E4;--acc-s:#2DD4BF;--acc-btn:#0F766E;
  --acc-sel:color-mix(in srgb,var(--acc) 22%,var(--bg-p));--acc-btn-h:color-mix(in srgb,var(--acc-btn) 90%,#fff);--acc-btn-ring:var(--acc-s);
  --brand:#0F766E;--brand-2:#2DD4BF;--brand-ink:#2DD4BF;
  --ctl-h:34px;--ctl-h-s:28px;--ctl-h-xs:20px;
  --warn:#FFD43B;--warn-fill:#FFD43B;--warn-ink:#1c1c1a;
  --late:#FF5A5A;--late-fill:#FF5A5A;--late-ink:#1c1c1a;
  --ok:#5AA872;--ok-btn:#2F7D4A;--danger:#FF5A5A;--danger-fill:#3A0F0F;--danger-bdr:#7A2C2C;
  --on-fill:#fff;--info-fill:#1e3a5f;--info-ink:#bfdbfe;--ok-fill:#14532d;--ok-ink:#bbf7d0;
  --shadow-card:0 1px 2px rgba(0,0,0,.3);
  --shadow-sheet:0 12px 40px rgba(0,0,0,.55);
  --shadow-s:0 1px 3px rgba(0,0,0,.4);--shadow-pop:0 8px 28px rgba(0,0,0,.5);
  /* Statusfarben aufgehellt — auf dunklem Grund muss die Schrift die helle Seite sein. */
  --st-entwurf:156 163 175;  --st-angebot:245 166 35;  --st-beauftragt:74 222 128;
  --st-abgeschlossen:148 163 184; --st-kein:248 113 113; --st-keine-rueck:192 132 252;
}

/* Lauftext Inter (seit 2026-10-21, s. --f-body): lokal, kein CDN; lädt die Datei nicht, greift Segoe UI. In den sw.js-ASSETS. */
@font-face{font-family:'Inter';src:url('vendor/inter/InterVariable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}
/* Inter-Variante wie in SEPP: einstöckiges „a“ wäre cv11 — bewusst NICHT gesetzt, AVmemora bleibt beim Standard-Schnitt. */

/* ── Beschriftungen normal geschrieben (Chris 2026-10-21, Vorschlag 3 aus docs/mockup-sepp-auswahl.html, nach SEPP) ──
   Bis hierher standen Feld-, Karten-, Spalten- und Abschnittsetiketten in Bahnschrift-Versalien mit Laufweite, verteilt über
   index.html, avorge.css und die Module. Diese EINE Regel schreibt sie normal in der Lauftextschrift (Inter), Gewicht 500, eine Stufe
   größer (10 → 11 px, 11 → 12 px), Farbe bleibt die der jeweiligen Regel. `:root` davor gewinnt gegen die erst zur Laufzeit
   eingehängten Modulstile (avtools, avexportui, avtour, avrestore). Bewusst ausgenommen: Würfelseiten im Raumplan (.lc-face),
   Zonen-Etikett der Tour (.avtour-zone span), Test-Etikett der Anmeldung (.lg-test). Ausgaben (Druck, Word, Excel) unberührt.
   Neues Etikett = normal schreiben, nicht versal; gehört es in eine Liste hier, dort eintragen. */
:root :is(.chg-k,.plh-title,.plh-head,.cp-sec,.cp-hd,.stat-label,.s-nav-grp,.room-table th,.room-table tr.room-group-header td,.ob-card-lbl,.acc-wheel-llbl,
  .prog-blk,.bcp-hdr,.ltyp-pop .lp-t,.rk-lbl,.csel-grp,.avm-title,.steu-abg-l,.room-nav-hdr,.room-panel-section,.lay-wallmenu .lwm-t,.msh-hdr,
  #blk-layout .lay-ps,#blk-layout .lvm-sec,#blk-layout .pr label,#blk-layout .pr-hd > span,#blk-layout .pk-typ,#blk-layout .pg-hd b,
  .avx-one .avx-hd,.avx-lbl,.avx-ed-sec,.avx-ed-k,.avr-r.hd span){
  font-family:var(--f-body);font-stretch:normal;text-transform:none;letter-spacing:0;font-weight:500;font-size:var(--fs-xs);}
:root :is(.fl,.sub-lbl,.opa-room,.op-header,.form-section-title,.acc-wheel-hd,.unterueb,#blk-layout .slot-lbl,
  .avt-cat,.avt-half-hd,.avt-field label,.avtour-eb,.avtour-lbl,.avtour-seg button,.lg-lbl){
  font-family:var(--f-body);font-stretch:normal;text-transform:none;letter-spacing:0;font-weight:500;font-size:var(--fs-s);}
:root .room-hdr-desk{text-transform:none;letter-spacing:0;}

/* ── Knöpfe in der Lauftextschrift, 6 px Radius (Chris 2026-10-21, Vorschlag 4 aus docs/mockup-sepp-auswahl.html, nach SEPP) ──
   Höhe bleibt --ctl-h (34 px, am Handy 44) — die Begehung läuft am Tablet. Gilt für Aktionsknöpfe in Dashboard, Scout und Modulen;
   Auswahlkacheln (.nutz-btn, .anz-btn …) und Felder (.csel-btn) bleiben wie sie sind. */
:root :is(.btn-prim,.btn-sec,.btn-ghost,.s-btn,.next-tab-btn,.add-btn,.photo-btn,.lc-btn,.calc-open-btn,.cp-cta,.proj-go,.pipe-all,.avt-btn,.avtour-btn,.lg-btn){
  font-family:var(--f-body);font-stretch:normal;letter-spacing:0;}
:root :is(.btn-prim,.btn-sec,.btn-ghost,.btn-icon,.s-btn,.next-tab-btn,.add-btn,.photo-btn,.topbar-btn,.avt-btn,.avtour-btn,.lg-btn,.avx-dlg-row button,.avx-ed-bar button){border-radius:var(--r-s);}
/* ── Kleiner Knopf .btn-s (Chris 2026-10-21, Design-Inventur B11): 28 px, Inter 12/600, Radius 6; .prim gefüllt, .out Akzent-Umriss.
   Dieselbe Gestalt tragen die älteren Klassen .cp-act (Fällig) und .proj-go (Kachel) — neue kleine Knöpfe = .btn-s, keine eigene Klasse. */
.btn-s{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);height:var(--ctl-h-s);padding:0 var(--sp-3);border-radius:var(--r-s);
  border:.5px solid var(--bdr2);background:var(--bg-p);color:var(--txt);font-family:var(--f-body);font-size:var(--fs-s);font-weight:600;cursor:pointer;white-space:nowrap;}
.btn-s:hover{background:var(--hover);border-color:var(--hover-bdr);}
.btn-s.prim{background:var(--acc-btn);border-color:var(--acc-btn);color:var(--on-fill);}
.btn-s.prim:hover{background:var(--acc-btn-h);outline:2px solid var(--acc-btn-ring);outline-offset:0;}
.btn-s.out{background:transparent;border-color:var(--acc);color:var(--acc-t);}
.btn-s.out:hover{background:var(--acc-btn);border-color:var(--acc-btn);color:var(--on-fill);}
/* .lg-btn (Anmeldung) seit Design-Inventur A2 dabei; Höhe dort 44 px (Handy-Seite). */

/* ── Überschriften und Namen: Auszeichnung, Gewicht 600 (Chris 2026-10-21, Design-Inventur B2, Vorlage docs/mockup-design-inventur.html) ──
   Seitentitel, Projekttitel, Dialogtitel, Kartenköpfe, Projekt- und Raumnamen in Bahnschrift 600 über Dashboard, Scout und Module;
   die Größe trägt die Hierarchie, nicht das Gewicht. Etiketten (Sammelregel oben) bleiben Lauftext. Neue Überschrift = hier eintragen. */
:root :is(.page-head h1,.detail-title,.modal-title,.s-card-title,.card-hd,.avx-hd,.avt-title,.avt-tt-name,.sheet-title,.avs-h,
  .proj-name,.plc-name,.pipe-name,.opa-name,.folder-name,.room-name-desk){
  font-family:var(--f-display);font-stretch:var(--st-disp,87.5%);font-weight:600;letter-spacing:0;}
:root .detail-title{font-size:23px;}

/* ── „Gewählt“ = EINE Gestalt (Chris 2026-10-21, Design-Inventur B5 Variante C) ──
   Akzentrahmen, getönte Fläche --acc-sel, Schrift --acc-t, Gewicht 600 — für Segmente, Chips, Auswahlknöpfe und Kacheln in Dashboard,
   Scout, Raumplan und Modulen. Segmente zeigen den Rahmen als Innenring (die Reihe trägt den Außenrahmen). Kacheln: Fläche halb getönt,
   Haken bleibt. Ampel-Knöpfe (.acou-btn.amp) zeigen die Stufe weiter über den Farbpunkt, der Rahmen ist Akzent.
   AUSGENOMMEN (Mulde, eigene Regel): .view-toggle, .pseg, .ps-seg, .avtour-seg; Farbfelder .sw-btn (Ring); Listenzeilen in Dropdowns;
   Werkzeuge im Raumplan (.tl); erledigt-Haken (.op-chk). Neue Auswahl = in eine der drei Listen, keine eigene Gestalt. */
:root .anz-btn.sel,:root .acou-btn.sel,:root .acou-btn.amp.sel[data-amp],:root .dir-btn.sel,:root .mont-btn.sel,:root .extra-btn.sel,
:root .vc-opt-btn.sel,:root .plat-btn.sel,:root .fchip.sel,:root .setup-chip.sel,:root .est-btn.sel,:root .chip-row .anz-btn.sel,
:root .moe-spez-btn.on,:root .csel-status.on .csel-btn,:root .pipe-chip.on,:root .tb-arc.on,:root .opw-row .btn-sec.on,:root .avx-chk.on{
  border-color:var(--acc);background:var(--acc-sel);color:var(--acc-t);font-weight:600;}
:root .dt-btn.sel,:root .sp-t.sel,:root .sp-n.sel,:root .nutz-btn.sel,:root .vc-sys-btn.sel{
  border-color:var(--acc);background:color-mix(in srgb,var(--acc-sel) 55%,var(--bg-p));}
:root .seg-row .anz-btn.sel,:root #blk-layout .lay-seg button.on,:root #blk-layout .l3d-seg button.on,:root #blk-layout .sm-seg button.on,
:root .share-seg button.on,:root .avx-seg button.on,:root .avr-seg button.on,:root .avx-ed-ctl button.on{
  background:var(--acc-sel);color:var(--acc-t);font-weight:600;border-color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc);}

/* ── Umgebungs-Etikett (Chris 2026-11-04): kleines gelbes Schild oben mittig unter der Safe-Area — „Dev“ auf localhost/Vorschau, „Main“ auf
   app.avmemora.com; gleiche Stelle und Optik auf Dashboard und Scout (avkopf.js hängt es an <body>) und auf der Anmeldeseite (Markup in login.html,
   avlogin.js setzt Text). Keine Bedienung dahinter blockiert (pointer-events:none), im Druck weg. Fällt nach dem Pilot ggf. wieder raus. ── */
.env-tag{position:fixed;top:calc(2px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:1000;pointer-events:none;
  font-family:var(--f-display);text-transform:uppercase;letter-spacing:.08em;font-size:var(--fs-2xs);font-weight:700;line-height:1;
  padding:3px 7px;border-radius:var(--r-xs);background:var(--warn-fill);color:var(--warn-ink);box-shadow:0 1px 2px rgba(0,0,0,.15);}
.env-tag[hidden]{display:none;}
@media print{.env-tag{display:none;}}
