/* ═══════════════════════════════════════════════════════════════════
   Beealth Design-System v5 — EINE Datei, eine Wahrheit („Wachspapier, Honig und eine Biene mit Gesicht")
   ───────────────────────────────────────────────────────────────────
   Aufbau
     1  Schriften (selbst gehostet, OFL: Nunito + Baloo 2, variable woff2)
     2  Tokens   :root  = Palette · Semantik · Skalen · Alias-Layer
        html.dark-mode  = dunkle Palette (Klasse setzt app/templates/theme_boot.js)
     3  Basis    (Reset-light, Typo, Fokus, Reduced-Motion, Skip-Link, sr-only)
     4  Navbar   (Markup = app/templates/nav.html, Verhalten = scripts/core/site-nav.js)
     5  Komponenten (Buttons, Karten, Sticker, Listenzeile, Wabe, Wochen-Waben, Chips, Formulare, Zustände, Overlays,
        Tabs, Tabelle, Breadcrumb, Pagination, Accordion, Tooltip, Ring, Level, Kicker/Display/Zahl, Bühne, Bea, Wortmarke)
     6  Footer, Feier-Engine (scripts/core/fx.js), Blütenfall, Reduced-Motion je Komponente, Druck
   Kontrast v5 (WCAG 2.x, geprüft mit tools/contrast_check.py + tools/contrast_pairs.json; Spec docs/DESIGN-BEEALTH.md §2):
     --text auf --cream 14,96:1 · --muted auf --cream 5,85:1 / --wax 5,53:1 / --wax-2 5,19:1 · --honey-d (Links) auf --cream 5,95:1 / --wax 5,63:1 / --honey-l 5,88:1
     --on-primary auf --primary (Honig-Button) 11,26:1 · --on-brand auf --brand-bg 6,27:1 · UI: --border-ui auf --card 4,38:1 · --honey-ui auf --card 3,61:1 · Fokus --honey-dd auf --card 9,07:1
     dunkel: --honey-d-Text 11,52:1 · --muted 6,87:1 · --warn 9,65:1 · --border-ui 4,49:1 · Fokus 12,74:1 · Honig-Füllung auf Track 8,74:1
   Regeln
     * Kein Hex in Seiten — nur Tokens (Gate: tools/gate_pages.py, Regel hex). In dieser Datei nur in Token-Definitionen (--name: #…) und /* hex-ok */-Zeilen.
     * --honey / --mint / --peach / --berry (Grundton) sind DEKOR (Flächen, Verläufe, Glow, Sticker-Tint mit --on-tint) —
       für Text immer die -d Stufe (≥ 4,5:1), für UI-Marker -m bzw. --honey-ui (≥ 3:1); Honig-Flächen tragen dunklen Text (--on-primary).
     * Papier ist Standard (Hairline 1 px, kein Schatten in Ruhe), Wabe = gesammelt/Status, Pille = drücken, Kreis = Person/Tier.
     * Ein Honig-Button, eine Bewegung, eine Bea je Bildschirm. Motion nur transform/opacity/clip-path/background-position;
       prefers-reduced-motion UND html.reduce-motion wirken gleich.
     * Alias-Layer (Abschnitt 2c) bildet die Upstream-Tokennamen ab, damit noch
       nicht migrierte Seiten sofort im Beealth-Look laufen; fällt in Phase 6.
   ═══════════════════════════════════════════════════════════════════ */

/* ── 1 · Schriften ─────────────────────────────────────────────────── */
@font-face{font-family:'Nunito';font-style:normal;font-weight:400 800;font-display:swap;src:url('/fonts/nunito-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400 800;font-display:swap;src:url('/fonts/nunito-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Baloo 2';font-style:normal;font-weight:600 800;font-display:swap;src:url('/fonts/baloo2-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Baloo 2';font-style:normal;font-weight:600 800;font-display:swap;src:url('/fonts/baloo2-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ── 2a · Palette + Semantik (hell) — html:root (0,1,1) gewinnt gegen Seiten-:root ── */
html:root{
  color-scheme:light;
  /* Honig — die Marke (Biene). Text nur -d/-dd (≥ 4,5:1), UI-Marker --honey-ui (≥ 3:1), Flächen -l/Grundton;
     --honey-hi = Glanz/Verlaufsstart (nie Text), --honey-m = satter Verlaufsrand (Deko, kein Marker auf hellem Grund) */
  --honey-l:#FFF8DC;--honey:#FFD65A;--honey-hi:#FFE38A;--honey-m:#F5B800;--honey-ui:#B87A00;--honey-d:#8A5407;--honey-dd:#78350F;
  /* Blatt-Mint — Gesundheit, Erfolg, „kommt an" */
  --mint-l:#E6F7EC;--mint:#34C77B;--mint-m:#1F9D5A;--mint-d:#1B7A47;--mint-dd:#145C36;
  /* Pfirsich — Wärme, Kochen */
  --peach-l:#FFF1E4;--peach:#FB923C;--peach-m:#D9641A;--peach-d:#C2410C;
  /* Beere — Freude, Belohnung, Familie */
  --berry-l:#FCE7F3;--berry:#F472B6;--berry-m:#DB2777;--berry-d:#B23478;
  /* Bernstein = Honig-Stufen (Alias), Rot (nur Fehler), Cyan (Info, Wasser, Pause), Violett (Lernen) */
  --amber-l:var(--honey-l);--amber:var(--honey);--amber-m:#D97706;--amber-d:var(--honey-d);
  --red-l:#FFE4E6;--red:#FB7185;--red-m:#E11D48;--red-d:#BE123C;
  --cyan-l:#E0F2FE;--cyan:#38BDF8;--cyan-m:#0284C7;--cyan-d:#0369A1;
  --violet-l:#EDE9FE;--violet:#A78BFA;--violet-m:#7C3AED;--violet-d:#6D28D9;
  /* Neutral — Papier · Wachs · Tinte (alles mit Braunanteil, nie Grau) */
  --cream:#FFF9E6;--card:#FFFFFF;--card-soft:#FFF3C4;--wax-2:#FFEBA8;--field-bg:#FFFDF5;--ink:#2B2118;
  --text:#2B2118;--text-2:#4A3B2A;--muted:#6F5F4A;--muted-strong:#5B4A32;--border:#F0E3C2;--border-strong:#E2CF9E;--border-ui:#8C7645;--xp-track:#F5E9C8;
  --on-accent:#2B2118;--on-dark:#FFF6D1;--on-dark-2:#C4B89C;--on-brand:#FFFFFF;--on-primary:#2B2118;--on-solid:#FFFFFF;
  /* Rollen-Aliasse v5: --wax = Wachs-Ebene (Sektionen, Karte-in-Karte), --ring-track = Track von Ring/Progress/Level,
     --fill-edge = 2-px-Meniskus an jeder Füllfront, --on-tint = Text auf kräftigen Grundton-Flächen (Sticker) */
  --wax:var(--card-soft);--ring-track:var(--xp-track);--fill-edge:var(--honey-dd);--on-tint:var(--on-primary);
  /* Semantik: --brand = Text-Akzent (Links, aktive Zustände) · --brand-bg = Fläche für weißen Text ·
     --primary = die leuchtende Honig-Fläche (Buttons, CTA) mit dunklem Text (--on-primary) · --brand-ui = nicht-textlicher Marker */
  --brand:var(--honey-d);--brand-hover:var(--honey-dd);--brand-soft:var(--honey-l);--brand-ui:var(--honey-ui);
  --brand-bg:var(--honey-d);--brand-bg-h:var(--honey-dd);
  --primary:var(--honey);--primary-hover:#F2C230;--primary-soft:var(--honey-l);
  --link:var(--honey-d);--link-hover:var(--honey-dd);
  --bg:var(--cream);--surface:var(--card);--surface-2:var(--card-soft);
  --ok:var(--mint-d);--ok-l:var(--mint-l);--warn:#9A4A06;--warn-l:#FEF3C7;--danger:var(--red-d);--danger-l:var(--red-l);--info:var(--cyan-d);--info-l:var(--cyan-l);
  --rest:var(--cyan-d);--rest-l:var(--cyan-l);
  /* Illustration (dieselben Werte stehen als Hex in SVG-Dateien, dort mit Kommentar „token: …") — Kontur bleibt in beiden Modi */
  --ill-ink:#2B2118;--ill-ink-2:#3B2D1F;--blush:#F9A8D4;--wing:#BAE6FD;--petal-4:var(--card);
  /* Nacht-Wachs für Bühnen (data-time=night, Begleiter) — in beiden Modi gleich */
  --wax-night:#2E271F;--cream-night:#1B1710;
  /* Verläufe & Schatten — Honig immer mit Licht von oben links; Schatten nur schwebend (Hover, Popover, Modal), nie auf ruhenden Karten */
  --grad-honey:radial-gradient(120% 90% at 18% 0%,var(--honey-hi) 0%,var(--honey) 48%,var(--honey-m) 100%);--grad-brand:linear-gradient(135deg,var(--brand-bg),var(--brand-bg-h));
  --grad-mint:linear-gradient(135deg,#5EDCA0,#1F9D5A);--grad-peach:linear-gradient(135deg,var(--peach),var(--peach-m));--grad-berry:linear-gradient(135deg,#F9A8D4,#F472B6);
  --grad-hero:linear-gradient(135deg,var(--honey-l) 0%,var(--peach-l) 55%,var(--berry-l) 100%);
  --grad-wax:linear-gradient(160deg,var(--card) 0%,var(--wax) 100%);
  --shadow-sm:inset 0 1px 0 rgba(255,255,255,.7),0 1px 2px rgba(43,33,24,.04),0 6px 20px rgba(120,90,20,.06);--shadow:0 8px 26px rgba(120,90,20,.11);--shadow-lg:0 16px 40px rgba(120,90,20,.17);--shadow-pop:0 14px 40px rgba(43,33,24,.16);
  --glow-honey:0 8px 24px rgba(245,184,0,.28);--glow-honey-press:0 4px 12px rgba(245,184,0,.14);
  --focus-ring:0 0 0 2px var(--surface),0 0 0 4px var(--honey-dd);
  /* Formen: die eine Wabe (Spitze oben) und das Wabenmuster als Data-URI (aus index.html herausgelöst; Deckung 4–6 % am Element) */
  --hex-clip:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  --waben:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='48.5' viewBox='0 0 56 48.5'%3E%3Cpath d='M28 1 L52 14.5 L52 41.5 L28 55 L4 41.5 L4 14.5 Z M28 -47.5 L52 -34 L52 -7 L28 6.5 L4 -7 L4 -34 Z' fill='none' stroke='currentColor' stroke-width='1.5'/%3E%3C/svg%3E");
  --select-arrow:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236F5F4A' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");  /* Pfeil in --muted: currentColor wirkt in background-image nicht */
  /* Flächen für weißen Text — in BEIDEN Modi gleich (≥ 4,5:1 mit --on-solid) */
  --btn-ok:#1B7A47;--btn-ok-h:#145C36;--btn-peach:#C2410C;--btn-peach-h:#9A3412;--btn-berry:#BE185D;--btn-berry-h:#9D174D;--btn-danger:#BE123C;--btn-danger-h:#9F1239;--btn-info:#0369A1;--btn-warn:#9A4A06;--btn-violet:#6D28D9;--btn-violet-h:#5B21B6;
  --overlay:rgba(43,33,24,.55);
  /* Skalen */
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:40px;--sp-8:48px;--sp-9:64px;--sp-10:96px;
  --fs-xs:.72rem;--fs-sm:.82rem;--fs-md:.95rem;--fs-lg:1.1rem;--fs-xl:1.4rem;--fs-2xl:1.9rem;--fs-3xl:clamp(1.8rem,4vw,2.6rem);--fs-4xl:clamp(2.2rem,5.2vw,3.6rem);
  --lh-display:1.1;--lh-tight:1.2;--lh-body:1.6;--track-display:-.015em;--track-label:.06em;--wrap-read:680px;
  --r-sm:8px;--r-md:14px;--r-lg:22px;--r-xl:26px;--r-2xl:32px;--r-pill:999px;
  --z-nav:30;--z-menu:50;--z-sheet:900;--z-modal:1000;--z-toast:1100;--z-celebrate:9998;
  --font-body:'Nunito',system-ui,-apple-system,'Segoe UI',sans-serif;--font-display:'Baloo 2','Nunito',system-ui,sans-serif;
  --ease-spring:cubic-bezier(.34,1.56,.64,1);--ease-soft:cubic-bezier(.22,.61,.36,1);--ease-bee:cubic-bezier(.22,1,.36,1);--ease-honey:cubic-bezier(.7,0,.3,1);--ease-petal:cubic-bezier(.45,.05,.55,.95);
  --t-fast:.15s;--t-med:.25s;--t-slow:.45s;--t-data:.9s;
  --nav-h:60px;--wrap:980px;--wrap-wide:1200px;
}
@media(max-width:640px){html:root{--sp-9:var(--sp-7);--sp-10:var(--sp-8)}}
/* ── 2b · Dunkle Palette „Bienenstock bei Nacht" — Licht aus, Honig bleibt (Klasse auf <html> UND <body>; Boot: app/templates/theme_boot.js) ── */
html.dark-mode{
  --select-arrow:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9BBA0' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");  /* Pfeil in --muted-strong dunkel (8,1:1 auf --field-bg) */
  color-scheme:dark;
  --honey-l:#3A2E12;--honey:#FFD65A;--honey-hi:#FFE38A;--honey-m:#F5B800;--honey-ui:#F5B800;--honey-d:#FFD65A;--honey-dd:#FFE38A;
  --mint-l:#14311F;--mint:#34C77B;--mint-m:#3ED08A;--mint-d:#4ADE95;--mint-dd:#86EFB8;
  --peach-l:#3A2414;--peach-m:#F59E4B;--peach-d:#FDBA74;
  --berry-l:#3A1A2A;--berry-m:#F472B6;--berry-d:#F9A8D4;
  --amber-m:#FBBF24;--red-l:#3A1A1E;--red-m:#FB7185;--red-d:#FDA4AF;--cyan-l:#0F2A3A;--cyan-m:#38BDF8;--cyan-d:#7DD3FC;--violet-l:#2A1F3E;--violet-m:#A78BFA;--violet-d:#C4B5FD;
  --cream:#1B1710;--card:#26201A;--card-soft:#2E271F;--wax-2:#3A2F17;--field-bg:#1C1711;--ink:#120F0A;
  --text:#F5EBD5;--text-2:#E0D3B8;--muted:#B5A88E;--muted-strong:#C9BBA0;--border:#3D3427;--border-strong:#6B5B3B;--border-ui:#9A8555;--xp-track:#3D3427;
  --on-accent:#2B2118;--on-dark:#F5EBD5;
  --brand-bg:#8A5A0C;--brand-bg-h:#6B4509;--primary-hover:#FFE38A;
  --warn:#FBBF24;--warn-l:#3A2E12;
  --petal-4:var(--text);
  --grad-hero:linear-gradient(135deg,#3A2E12 0%,#3A2414 55%,#3A1A2A 100%);
  --grad-wax:linear-gradient(160deg,var(--card-soft) 0%,var(--card) 100%);
  --shadow-sm:inset 0 1px 0 rgba(255,214,90,.05),0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.35);--shadow:0 8px 26px rgba(0,0,0,.45);--shadow-lg:0 16px 40px rgba(0,0,0,.55);--shadow-pop:0 14px 40px rgba(0,0,0,.5);
  --glow-honey:0 8px 24px rgba(255,214,90,.16);--glow-honey-press:0 4px 12px rgba(255,214,90,.08);
  --focus-ring:0 0 0 2px var(--surface),0 0 0 4px var(--honey-dd);--overlay:rgba(0,0,0,.6);
}
/* --on-brand (weiß) gilt für --brand-bg/--grad-brand (dunkler Honig, beide Modi ≥ 5,9:1); --on-primary (dunkel) für --primary/--grad-honey;
   --on-solid (weiß) für --btn-*; --on-accent (dunkel) für --honey/--honey-l-Flächen; --on-dark für --ink-Flächen; --on-tint für Grundton-Flächen. Seiten schreiben nie Weiß als Literal. */
/* ── 2c · Alias-Layer: Upstream-Tokennamen → Beealth (fällt mit der Seiten-Migration, Phase 6) ── */
html:root,html.dark-mode{
  --blue:var(--brand);--blue-dark:var(--brand-hover);--blue-light:var(--brand-soft);
  --mint-dark:var(--mint-d);
  --sun:var(--honey);--sun-light:var(--honey-l);--sun-dark:var(--honey-d);--gold:var(--honey);--sf-gold:var(--honey);--sf-gold-light:var(--honey-l);
  --coral:var(--red);--coral-dark:var(--red-d);--coral-light:var(--red-l);
  --lavender:var(--violet);--lavender-dark:var(--violet-d);--lavender-light:var(--violet-l);
  --pink:var(--berry);--pink-dark:var(--berry-d);
  --white:var(--card);--soft:var(--muted);
  --card-radius:var(--r-lg);--pill-radius:var(--r-pill);
}
/* --blue/--blue-dark bleiben TEXT-sichere Akzente (Forum nutzt sie 81× als Textfarbe); Flächen mit weißem Text nutzen --brand-bg. */

/* ── 3 · Basis ─────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:var(--lh-tight);color:var(--text);margin:0 0 .5em}
h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}
p{margin:0 0 1em}
a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{color:var(--link-hover)}
img,svg,video{max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--honey);color:var(--ink)}
html.dark-mode ::selection{background:var(--honey-m);color:var(--ink)}
:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--r-sm)}
:focus:not(:focus-visible){outline:none}
.fg-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.fg-skip{position:absolute;left:var(--sp-3);top:-60px;z-index:calc(var(--z-modal) + 1);background:var(--primary);color:var(--on-primary);padding:.6rem 1rem;border-radius:var(--r-pill);font-weight:800;text-decoration:none;transition:top var(--t-fast)}
.fg-skip:focus-visible{top:var(--sp-3);color:var(--on-primary)}
/* Weniger Bewegung: Systemeinstellung UND Schalter html.reduce-motion (Profil, fg_reduce_motion) — gleiche Wirkung.
   Komponenten-Endzustände (Skeleton statisch, Bea sitzt, Füllstand steht, keine Blüten) stehen am Dateiende (Abschnitt 6). */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
html.reduce-motion{scroll-behavior:auto}
html.reduce-motion *,html.reduce-motion *::before,html.reduce-motion *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
/* Layout */
.fg-wrap{max-width:var(--wrap);margin:0 auto;padding:var(--sp-5) 4% 70px}
.fg-wrap--wide{max-width:var(--wrap-wide)}
.fg-wrap--tight{max-width:640px}
.fg-grid{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
.fg-grid--2{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.fg-stack{display:flex;flex-direction:column;gap:var(--sp-3)}
.fg-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.fg-sp{flex:1}
.fg-h1{font-size:var(--fs-2xl);margin:6px 2px 2px}
.fg-sub{color:var(--muted);margin:0 2px var(--sp-5);font-weight:600}
.fg-muted{color:var(--muted)}
.fg-center{text-align:center}
/* Editoriale Signatur: Kicker (Wabenpunkt + Versalien) · Display (Hero-Zeile) · Zahl (tabular, Honig-d) */
.fg-kicker{display:inline-flex;align-items:center;gap:var(--sp-2);font:800 var(--fs-xs)/1 var(--font-body);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--honey-d)}
.fg-kicker::before{content:"";width:10px;aspect-ratio:1/1.1547;clip-path:var(--hex-clip);background:var(--honey-ui);flex-shrink:0}
.fg-kicker.mint{color:var(--mint-d)}.fg-kicker.mint::before{background:var(--mint-m)}
.fg-kicker.peach{color:var(--peach-d)}.fg-kicker.peach::before{background:var(--peach-m)}
.fg-kicker.berry{color:var(--berry-d)}.fg-kicker.berry::before{background:var(--berry-m)}
.fg-kicker.cyan{color:var(--cyan-d)}.fg-kicker.cyan::before{background:var(--cyan-m)}
.fg-kicker.violet{color:var(--violet-d)}.fg-kicker.violet::before{background:var(--violet-m)}
.fg-display{font:800 var(--fs-4xl)/var(--lh-display) var(--font-display);letter-spacing:var(--track-display);color:var(--text);text-wrap:balance;max-width:14ch;margin:0 0 var(--sp-4)}
.fg-display .hl{background-image:var(--grad-honey);background-size:100% .42em;background-repeat:no-repeat;background-position:0 92%;padding:0 .06em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.fg-num{font:800 var(--fs-3xl)/1 var(--font-display);font-variant-numeric:tabular-nums;color:var(--honey-d)}
.fg-num.xl{font-size:var(--fs-4xl)}
.fg-num small{font:700 var(--fs-sm) var(--font-body);color:var(--muted);margin-left:var(--sp-1)}
.fg-num.on-honey{color:var(--on-primary)}

/* ── 4 · Navbar (Vorlage app/templates/nav.html · Verhalten site-nav.js) ── */
nav.fg-nav,body>nav{position:sticky;top:0;z-index:var(--z-nav);background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);box-shadow:none;transition:box-shadow var(--t-med)}
nav.scrolled{box-shadow:var(--shadow)}
nav .nav-inner{max-width:var(--wrap-wide);margin:0 auto;padding:0 4%;min-height:var(--nav-h);display:flex;align-items:center;gap:var(--sp-2)}
nav .logo{display:flex;align-items:center;gap:.45rem;text-decoration:none;flex-shrink:0;font-family:var(--font-display);font-size:1.3rem;font-weight:800;line-height:1;color:var(--text);margin-right:var(--sp-2)}
nav .logo-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:11px;transition:transform var(--t-med) var(--ease-bee)}
nav .logo:hover .logo-icon{transform:rotate(-8deg) translateY(-1px)}
nav .logo-icon img{width:100%;height:100%;object-fit:contain;display:block;border-radius:11px}
nav .logo-text{display:flex;align-items:center;gap:.12em;letter-spacing:var(--track-display)}
/* nav-Praefix: gewinnt gegen die Seiten-Inline-Regeln bis zur Migration */
nav .logo-base,.ssr-logo-base{color:var(--text)}
nav .logo-accent,.ssr-logo-accent{color:var(--honey-d)}
nav .nav-links{display:flex;align-items:center;gap:2px;flex-wrap:wrap;margin-left:var(--sp-2);position:relative}
nav .nav-link{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:12px;font-weight:700;font-size:.9rem;color:var(--muted);text-decoration:none;white-space:nowrap;position:relative;transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)}
nav .nav-link:hover{background:var(--brand-soft);color:var(--brand);transform:translateY(-1px)}
nav .nav-link.active{background:var(--brand-soft);color:var(--brand)}
nav .nav-link.active::after{content:"";position:absolute;left:12px;right:12px;bottom:3px;height:3px;border-radius:2px;background:var(--honey-ui)}
nav .nav-links:has(.fg-tab-ind) .nav-link.active::after{display:none}
nav .nav-link svg{width:18px;height:18px;flex-shrink:0}
nav .nav-right{display:flex;align-items:center;gap:.45rem;margin-left:auto;flex-shrink:0}
nav .nav-login{padding:.45rem 1rem;border-radius:var(--r-pill);border:1px solid var(--border);color:var(--text);font-weight:800;font-size:.82rem;text-decoration:none;white-space:nowrap;transition:border-color var(--t-fast),transform var(--t-fast)}
nav .nav-login:hover{border-color:var(--honey-ui);transform:translateY(-1px)}
nav .nav-cta,nav .nav-cta-btn{padding:.5rem 1.1rem;border-radius:var(--r-pill);background:var(--grad-honey);color:var(--on-primary);font-weight:800;font-size:.82rem;text-decoration:none;white-space:nowrap;box-shadow:var(--glow-honey);transition:transform var(--t-fast),box-shadow var(--t-fast)}
nav .nav-cta:hover,nav .nav-cta-btn:hover{transform:translateY(-1px);box-shadow:var(--glow-honey);color:var(--on-primary)}
/* Werkzeug-Punkte (Sprache · Dark · Glocke · Abmelden) — gleiche runde Form, Hairline 1 px, Hover-Marker --honey-ui */
nav .sf-lang-btn,nav .sf-dark-btn,nav .nav-notif,nav .nav-logout,nav .hamburger{width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;line-height:1;font-size:1rem;transition:border-color var(--t-fast),background var(--t-fast),transform var(--t-fast);flex-shrink:0}
nav .sf-lang-btn:hover,nav .sf-dark-btn:hover,nav .nav-notif:hover,nav .nav-logout:hover,nav .hamburger:hover{border-color:var(--honey-ui);background:var(--brand-soft);transform:translateY(-1px)}
nav .nav-logout{border-color:transparent;color:var(--muted)}
nav .nav-logout svg{width:17px;height:17px;display:block}
nav .hamburger{display:none;font-size:1.3rem}
nav .sf-lang-wrap{position:relative;display:inline-flex}
nav .sf-lang-flagge{border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.12);flex-shrink:0}
/* Popover (Sprachmenü, Profilmenü) */
.fg-pop,nav .sf-lang-menu{position:absolute;top:calc(100% + 10px);right:0;min-width:200px;background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-pop);padding:.45rem;z-index:var(--z-menu);opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .18s var(--ease-soft),transform .18s var(--ease-soft)}
.fg-pop.offen,.fg-pop.open,nav .sf-lang-menu.offen{opacity:1;transform:none;pointer-events:auto}
.fg-pop::before,nav .sf-lang-menu::before{content:"";position:absolute;top:-7px;right:16px;width:12px;height:12px;background:var(--card);border-left:1px solid var(--border);border-top:1px solid var(--border);transform:rotate(45deg)}
.fg-pop-titel,nav .sf-lang-titel{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:var(--track-label);padding:.3rem .6rem .35rem}
.fg-pop a,.fg-pop button,nav .sf-lang-eintrag{display:flex;align-items:center;gap:.6rem;width:100%;min-height:44px;height:auto;background:none;border:none;border-radius:10px;padding:.55rem .65rem;font-weight:700;font-size:.85rem;color:var(--text);cursor:pointer;text-align:left;text-decoration:none;transition:background var(--t-fast),color var(--t-fast)}
.fg-pop a:hover,.fg-pop button:hover,nav .sf-lang-eintrag:hover,nav .sf-lang-eintrag.aktiv{background:var(--brand-soft);color:var(--brand)}
.fg-pop .em{width:20px;text-align:center;font-size:1rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.fg-pop .em svg{width:18px;height:18px}
.fg-pop hr{border:none;border-top:1px solid var(--border);margin:5px 4px}
.fg-pop .danger:hover{background:var(--red-l);color:var(--red-d)}
nav .sf-lang-eintrag .haken{margin-left:auto;color:var(--brand);font-weight:800;opacity:0}
nav .sf-lang-eintrag.aktiv .haken{opacity:1}
/* Profil-Pille + Menü */
nav .nav-user-wrap{position:relative;display:inline-flex}
nav .nav-user{display:flex;align-items:center;gap:.5rem;padding:.3rem .75rem .3rem .3rem;border-radius:var(--r-pill);background:var(--brand-soft);border:none;cursor:pointer;font-weight:700;font-size:.82rem;color:var(--text);transition:background var(--t-fast),transform var(--t-fast)}
nav .nav-user:hover{transform:translateY(-1px);background:var(--honey-l)}
nav .nav-avatar{width:30px;height:30px;min-width:30px;border-radius:50%;overflow:hidden;background:var(--grad-honey);color:var(--on-primary);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.75rem;flex-shrink:0}
nav .nav-avatar svg{width:100%;height:100%;display:block}
nav .nav-uname{white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis;font-weight:800}
nav .nav-caret{width:14px;height:14px;color:var(--muted);transition:transform .18s}
nav .nav-user-wrap.offen .nav-caret{transform:rotate(180deg)}
nav .nav-menu{min-width:220px}
/* Schmaler Desktop: Links kompakt, Icons weg — alles bleibt in EINER Zeile */
@media(max-width:1180px) and (min-width:901px){nav .nav-link{padding:8px 9px;font-size:.84rem}nav .nav-link svg{display:none}nav .nav-links{margin-left:0}}
/* Mobil: Links als Drawer (deckend), Werkzeuge bleiben sichtbar, Touch-Ziele 44px; aktive Zeile wird --honey-l */
@media(max-width:900px){
  nav .sf-lang-btn,nav .sf-dark-btn,nav .nav-notif,nav .hamburger{width:44px;height:44px}
  nav .nav-links{background:var(--card)}
  nav:has(.nav-links.open){background:var(--card);backdrop-filter:none;-webkit-backdrop-filter:none}
  nav .nav-inner{flex-wrap:wrap;row-gap:.35rem;padding-top:.45rem;padding-bottom:.45rem}
  nav .hamburger{display:inline-flex;order:5}
  nav .nav-links{order:10;flex-basis:100%;flex-direction:column;align-items:stretch;gap:2px;display:none;padding:.5rem 0 .3rem;border-top:1px solid var(--border);margin:.3rem 0 0}
  nav .nav-links.open{display:flex;animation:fgPop .16s var(--ease-soft)}
  nav .nav-link{width:100%;padding:12px 14px;font-size:.95rem}
  nav .nav-link.active::after{display:none}
  nav .nav-links .fg-tab-ind{display:none}
  nav .nav-uname{display:none}
  nav .nav-user{padding-right:.3rem}
  nav .nav-login,nav .nav-cta,nav .nav-cta-btn{display:none}
  nav .nav-links .nav-mobile-cta{display:flex;gap:.5rem;padding:.5rem 4px 0}
  nav .nav-links .nav-mobile-cta a{flex:1;text-align:center;justify-content:center}
}
@media(min-width:901px){nav .nav-links .nav-mobile-cta{display:none}}
@media(max-width:640px){nav .logo{font-size:1.15rem}nav .logo-icon{width:30px;height:30px}nav .sf-lang-menu,nav .nav-menu{right:-8px}}
@media(max-width:900px){.fg-btn.sm,.fg-chip,.fg-iconbtn{min-height:44px}.fg-iconbtn{width:44px;height:44px}}
html.dark-mode nav .logo-icon img{background:transparent;padding:0}

/* ── 5 · Komponenten ───────────────────────────────────────────────── */
/* Buttons — Pille = drücken. Primär = Honig mit dunklem Text (≥ 11:1 hell und dunkel) und dem einzigen farbigen Schatten (--glow-honey);
   genau EIN Honig-Button je Bildschirm, der zweite wird .outline oder .ghost. Farbige Varianten = feste dunkle Flächen mit weißem Text, ohne Glow. */
.fg-btn{--_bg:var(--primary);--_bg-h:var(--primary-hover);--_fg:var(--on-primary);--_glow:var(--glow-honey);--_glow-press:var(--glow-honey-press);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:none;border-radius:var(--r-pill);padding:10px 20px;min-height:44px;font-family:var(--font-display);font-weight:700;font-size:15px;line-height:1.15;cursor:pointer;text-decoration:none;background:var(--_bg);color:var(--_fg);box-shadow:var(--_glow);transition:transform .12s,box-shadow .12s,background .12s;user-select:none}
.fg-btn:hover{background:var(--_bg-h);color:var(--_fg);transform:translateY(-2px);box-shadow:var(--_glow)}
.fg-btn:active{transform:scale(.98);box-shadow:var(--_glow-press)}
.fg-btn.grad{background:var(--grad-honey)}
.fg-btn.brand{--_bg:var(--brand-bg);--_bg-h:var(--brand-bg-h);--_fg:var(--on-brand);--_glow:none;--_glow-press:none}
.fg-btn.ok{--_bg:var(--btn-ok);--_bg-h:var(--btn-ok-h);--_fg:var(--on-solid);--_glow:none;--_glow-press:none}
.fg-btn.peach{--_bg:var(--btn-peach);--_bg-h:var(--btn-peach-h);--_fg:var(--on-solid);--_glow:none;--_glow-press:none}
.fg-btn.berry{--_bg:var(--btn-berry);--_bg-h:var(--btn-berry-h);--_fg:var(--on-solid);--_glow:none;--_glow-press:none}
.fg-btn.danger{--_bg:var(--btn-danger);--_bg-h:var(--btn-danger-h);--_fg:var(--on-solid);--_glow:none;--_glow-press:none}
.fg-btn.violet{--_bg:var(--btn-violet);--_bg-h:var(--btn-violet-h);--_fg:var(--on-solid);--_glow:none;--_glow-press:none}
.fg-btn.ghost{--_bg:var(--honey-l);--_bg-h:var(--honey-l);--_fg:var(--honey-d);--_glow:none;--_glow-press:none}
.fg-btn.ghost:hover{color:var(--honey-dd)}
.fg-btn.outline{--_bg:transparent;--_bg-h:var(--honey-l);--_fg:var(--text);--_glow:none;--_glow-press:none;border:1px solid var(--border-ui);padding:9px 19px}
.fg-btn.outline:hover{border-color:var(--honey-ui);color:var(--text)}
.fg-btn.soft{--_bg:var(--wax);--_bg-h:var(--wax-2);--_fg:var(--text);--_glow:none;--_glow-press:none}
.fg-btn.lg{padding:12px 24px;font-size:16px;min-height:48px}
.fg-btn.sm{padding:7px 14px;font-size:13.5px;min-height:40px}
.fg-btn.block{width:100%}
.fg-btn.icon{padding:0;width:44px;min-width:44px}
.fg-btn.icon.round{border-radius:50%}
.fg-btn[disabled],.fg-btn.loading,.fg-btn[aria-disabled="true"]{opacity:.6;pointer-events:none;transform:none;box-shadow:none}
/* Laden: Text wird unsichtbar, Ring aus --_fg mittig — die Breite bleibt */
.fg-btn.loading{color:transparent}
.fg-btn.loading::before{content:"";position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;border:2px solid color-mix(in srgb,var(--_fg) 35%,transparent);border-top-color:var(--_fg);animation:fgSpin .7s linear infinite}
/* Erfolg nach Server-OK: 200 ms Mint-Fläche, Haken zeichnet sich (svg mit stroke, JS setzt .is-done) */
.fg-btn.is-done{--_bg:var(--btn-ok);--_bg-h:var(--btn-ok-h);--_fg:var(--on-solid);--_glow:none;--_glow-press:none}
.fg-btn.is-done svg{stroke:currentColor;stroke-dasharray:24;stroke-dashoffset:24;animation:fgDraw .2s var(--ease-bee) forwards}
.fg-iconbtn{width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color var(--t-fast),color var(--t-fast),background var(--t-fast)}
.fg-iconbtn:hover{border-color:var(--honey-ui);color:var(--brand);background:var(--brand-soft)}
.fg-iconbtn svg,.fg-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fg-icon{display:inline-block;vertical-align:-.2em}
.fg-icon.sm{width:16px;height:16px}.fg-icon.lg{width:28px;height:28px}
@keyframes fgSpin{to{transform:rotate(360deg)}}
@keyframes fgDraw{to{stroke-dashoffset:0}}
/* Papier-Karte — Hairline, kein Schatten in Ruhe; Karte in Karte wird Wachs (Dark-Mode: Tiefe über Helligkeit, nie Papier auf Papier) */
.fg-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:none;padding:var(--sp-5)}
.fg-card .fg-card{background:var(--wax)}
.fg-card.soft{background:var(--wax);border-color:transparent;box-shadow:none}
.fg-card.flat{box-shadow:none}
.fg-card-title{font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);margin:0 0 .35rem;display:flex;align-items:center;gap:.5rem}
/* Papier hebt 2 px ohne Scale; Schweben nur für Overlays */
.fg-lift{transition:transform var(--t-med) var(--ease-bee),box-shadow var(--t-med),border-color var(--t-fast)}
.fg-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--border-strong)}
/* Sticker — nur Anfassbares in Kinder-Zonen (Kategorie-Kacheln, Belohnungs-Chips, Begleiter-Aktionen, Wizard-Auswahl).
   Verboten in .fg-prose, .fg-table, .fg-input, forum.html, admin.html, Rezeptkarten-Grid. Drückt sich statt zu heben. */
.fg-sticker{background:var(--card);color:var(--text);border:2.5px solid var(--ill-ink);border-radius:var(--r-lg);box-shadow:0 0 0 3px var(--card),0 5px 0 rgba(43,33,24,.14);transition:transform var(--t-fast),box-shadow var(--t-fast)}
.fg-sticker:active{transform:translateY(3px);box-shadow:0 0 0 3px var(--card),0 1px 0 rgba(43,33,24,.14)}
.fg-sticker.tint-peach{background:var(--peach);color:var(--on-tint)}
.fg-sticker.tint-mint{background:var(--mint);color:var(--on-tint)}
.fg-sticker.tint-berry{background:var(--berry);color:var(--on-tint)}
.fg-sticker.tint-cyan{background:var(--cyan);color:var(--on-tint)}
.fg-sticker.tint-violet{background:var(--violet);color:var(--on-tint)}
.fg-sticker.tint-honey{background:var(--honey);color:var(--on-tint)}
.fg-sticker[class*="tint-"] a{color:var(--on-tint);text-decoration:underline}
html.dark-mode .fg-sticker{box-shadow:0 5px 0 rgba(0,0,0,.45)}
html.dark-mode .fg-sticker:active{box-shadow:0 1px 0 rgba(0,0,0,.45)}
html.dark-mode .fg-sticker.tint-peach{background:color-mix(in srgb,var(--peach) 85%,var(--card))}
html.dark-mode .fg-sticker.tint-mint{background:color-mix(in srgb,var(--mint) 85%,var(--card))}
html.dark-mode .fg-sticker.tint-berry{background:color-mix(in srgb,var(--berry) 85%,var(--card))}
html.dark-mode .fg-sticker.tint-cyan{background:color-mix(in srgb,var(--cyan) 85%,var(--card))}
html.dark-mode .fg-sticker.tint-violet{background:color-mix(in srgb,var(--violet) 85%,var(--card))}
html.dark-mode .fg-sticker.tint-honey{background:color-mix(in srgb,var(--honey) 85%,var(--card))}
@media(max-width:480px){.fg-sticker{border-width:2px}}
/* Listenzeile — Dinge, die man liest (Logs, Aufgaben, Beiträge, Einstellungen); 56 px, Hairline unten, Meta rechts tabular */
.fg-line{display:flex;align-items:center;gap:var(--sp-3);min-height:56px;padding:var(--sp-3) 0;border-bottom:1px solid var(--border)}
.fg-line:last-child{border-bottom:none}
.fg-line .meta{margin-left:auto;color:var(--muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap}
.fg-line .undo{margin-left:var(--sp-2);flex-shrink:0}
.fg-line .fg-avatar,.fg-line .fg-hex,.fg-line .fg-hex-ring{flex-shrink:0}
.fg-line .t{font-weight:700;color:var(--text)}
.fg-line .d{font-size:var(--fs-sm);color:var(--muted)}
/* Wabe — gesammelt/Status (Spitze oben). clip-path schneidet border/outline/box-shadow/filter ab → Rahmen (.fg-hex-ring) und Glow (.fg-hex-glow) immer über Wrapper;
   nie interaktiv ohne runde 44-px-Hitbox (button.fg-hex-hit). Größe über --hex (auch am Elternelement setzbar). */
.fg-hex{clip-path:var(--hex-clip);aspect-ratio:1/1.1547;width:var(--hex,56px);background:var(--wax);color:var(--text);display:grid;place-items:center;position:relative;overflow:hidden;font-family:var(--font-display);font-weight:800;flex-shrink:0}
.fg-hex>svg,.fg-hex>img{width:64%;height:auto;display:block}
.fg-hex.honey{background:var(--grad-honey);color:var(--on-primary)}
.fg-hex.locked{background:var(--wax-2);color:var(--muted)}
.fg-hex.paper{background:var(--card)}
.fg-hex-ring{clip-path:var(--hex-clip);padding:2px;background:var(--honey-ui);display:inline-block;line-height:0;vertical-align:middle;flex-shrink:0}
.fg-hex-ring>.fg-hex{background:var(--card)}
.fg-hex-ring>.fg-hex.honey{background:var(--grad-honey)}
.fg-hex-ring.honey{background:var(--grad-honey)}
.fg-hex-ring.wax{background:var(--border-strong)}
.fg-hex-ring.wax-2{background:var(--wax-2)}
.fg-hex-ring.mint{background:var(--mint-m)}
.fg-hex-glow{filter:drop-shadow(0 6px 14px rgba(245,184,0,.35))}
button.fg-hex-hit{min-width:44px;min-height:44px;border-radius:50%;background:none;border:0;padding:0;display:inline-grid;place-items:center;cursor:pointer;color:inherit;font:inherit}
.fg-hex-grid{display:grid;grid-template-columns:repeat(var(--cols,4),1fr);gap:var(--sp-2)}
/* Wochen-Waben — 7 Zellen, heute mittig; erledigt = Honig UND Häkchen (zwei Träger); Serie voll: einmal glimmen, das ist die ganze Feier.
   Rahmen „heute" über Wrapper <span class="wrap today"><i>…</i></span>, weil outline geclippt würde. */
.fg-comb{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--sp-1);max-width:280px}
.fg-comb i{clip-path:var(--hex-clip);aspect-ratio:1/1.1547;background:var(--wax-2);position:relative;overflow:hidden;display:grid;place-items:center;font-style:normal;color:var(--text)}
.fg-comb i.done{color:var(--on-primary)}
.fg-comb i.done::before{content:"";position:absolute;inset:0;background:var(--grad-honey);transform-origin:bottom;animation:fgFill var(--t-slow) var(--ease-honey) both}
.fg-comb i.done::after{content:"";position:absolute;inset:0;background:var(--honey-hi);opacity:0;pointer-events:none}
.fg-comb i svg{position:relative;z-index:1;width:45%;height:auto;stroke:var(--on-primary);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;animation:fgDraw .3s var(--ease-bee) .12s forwards}
.fg-comb i.today{background:var(--honey-l)}
.fg-comb>.wrap{clip-path:var(--hex-clip);padding:2px;display:block;line-height:0;background:transparent}
.fg-comb>.wrap.today{background:var(--honey-ui)}
.fg-comb.streak i.done::after{animation:fgGlim .8s var(--ease-soft) 1}
@keyframes fgFill{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes fgGlim{0%,100%{opacity:0}50%{opacity:.7}}
/* Chips, Pills, Badges — Chip = Pille mit --border-ui, aktiv: Fläche --honey-l, Rahmen --honey-ui, Wabenpunkt wächst (150 ms) */
.fg-chip{border:1px solid var(--border-ui);background:var(--surface);border-radius:var(--r-pill);padding:7px 14px;min-height:36px;font-weight:700;font-size:13px;cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;gap:6px;transition:border-color var(--t-fast),color var(--t-fast),background var(--t-fast)}
.fg-chip:hover{border-color:var(--honey-ui);transform:none}
.fg-chip.on,.fg-chip.selected,.fg-chip.active,.fg-chip[aria-pressed="true"]{background:var(--honey-l);border-color:var(--honey-ui);color:var(--honey-d)}
.fg-chip.on::before,.fg-chip.selected::before,.fg-chip.active::before,.fg-chip[aria-pressed="true"]::before{content:"";width:8px;aspect-ratio:1/1.1547;clip-path:var(--hex-clip);background:var(--honey-ui);flex-shrink:0;transform:scale(0);animation:fgGrow .15s var(--ease-spring) forwards}
.fg-chip .em{font-size:15px;line-height:1}
@keyframes fgGrow{to{transform:scale(1)}}
.fg-pill{display:inline-flex;align-items:center;gap:4px;background:var(--honey-l);color:var(--honey-d);border-radius:var(--r-pill);padding:3px 10px;font-size:12px;font-weight:800;line-height:1.5}
.fg-pill.mint{background:var(--mint-l);color:var(--mint-d)}
.fg-pill.peach{background:var(--peach-l);color:var(--peach-d)}
.fg-pill.honey{background:var(--honey-l);color:var(--honey-d)}
.fg-pill.berry{background:var(--berry-l);color:var(--berry-d)}
.fg-pill.amber{background:var(--amber-l);color:var(--amber-d)}
.fg-pill.red{background:var(--red-l);color:var(--red-d)}
.fg-pill.cyan{background:var(--cyan-l);color:var(--cyan-d)}
.fg-pill.violet{background:var(--violet-l);color:var(--violet-d)}
.fg-pill.neutral{background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}
.fg-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-pill);background:var(--btn-berry);color:var(--on-solid);font-size:11px;font-weight:800;line-height:1}
.fg-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--mint-m)}
.fg-dot.honey{background:var(--honey-ui)}
.fg-dot.warn{background:var(--amber-d)}.fg-dot.danger{background:var(--red-d)}
.catpill{display:inline-flex;align-items:center;gap:5px;border-radius:var(--r-pill);padding:4px 11px;font-size:12px;font-weight:800;border:1px solid transparent;background:var(--honey-l);color:var(--honey-d)}
.cat-fruehstueck{background:var(--honey-l);color:var(--honey-d)}.cat-mittag{background:var(--mint-l);color:var(--mint-d)}.cat-abend{background:var(--peach-l);color:var(--peach-d)}
.cat-suppen{background:var(--red-l);color:var(--red-d)}.cat-salate{background:var(--mint-l);color:var(--mint-dd)}.cat-bowls{background:var(--cyan-l);color:var(--cyan-d)}
.cat-snacks{background:var(--berry-l);color:var(--berry-d)}.cat-naschen{background:var(--violet-l);color:var(--violet-d)}.cat-backen{background:var(--peach-l);color:var(--peach-d)}.cat-smoothies{background:var(--cyan-l);color:var(--cyan-d)}
/* Formulare — Eingaberahmen --border-ui (≥ 3:1, WCAG 1.4.11) auf --field-bg; Fokus: Ring sofort, Rahmen --honey-d; Fehler ohne Schütteln */
.fg-field{display:flex;flex-direction:column;gap:5px;margin:12px 0}
.fg-label,.fg-field>label{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:var(--track-label)}
.fg-input,.fg-select,.fg-textarea{border:1px solid var(--border-ui);border-radius:var(--r-md);padding:10px 14px;min-height:44px;font-family:var(--font-body);font-size:15px;width:100%;background:var(--field-bg);color:var(--text);transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.fg-textarea{min-height:110px;resize:vertical;line-height:1.5}
.fg-select{appearance:none;-webkit-appearance:none;background-image:var(--select-arrow);background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:38px}
.fg-input:focus,.fg-select:focus,.fg-textarea:focus{outline:none;border-color:var(--honey-d);box-shadow:var(--focus-ring)}
.fg-input::placeholder,.fg-textarea::placeholder{color:var(--muted);opacity:.8}
.fg-input[aria-invalid="true"],.fg-field.invalid .fg-input{border-color:var(--red-d)}
.fg-help{font-size:12.5px;color:var(--muted);font-weight:600}
.fg-error{font-size:12.5px;color:var(--red-d);font-weight:700;animation:fgPop var(--t-fast) var(--ease-soft)}
.fg-input-wrap{position:relative}
.fg-input-wrap .fg-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;transition:color var(--t-fast)}
.fg-input-wrap:focus-within .fg-icon{color:var(--honey-d)}
.fg-input-wrap .fg-input{padding-left:40px}
/* gültig = Mint-Haken zeichnet sich rechts (svg.fg-icon-ok direkt nach dem Feld, JS setzt .valid) */
.fg-icon-ok{position:absolute;right:12px;top:50%;width:20px;height:20px;transform:translateY(-50%);color:var(--mint-d);fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;pointer-events:none}
.fg-input.valid+.fg-icon-ok{animation:fgDraw .3s var(--ease-bee) forwards}
.fg-check{display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;font-weight:700;font-size:.9rem;min-height:44px}
.fg-check input{width:20px;height:20px;accent-color:var(--honey-d);cursor:pointer;margin:0}
.fg-switch{position:relative;display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;font-weight:700;font-size:.9rem;min-height:44px}
.fg-switch input{position:absolute;opacity:0;width:0;height:0}
.fg-switch .track{width:44px;height:26px;border-radius:var(--r-pill);background:var(--border-ui);position:relative;overflow:hidden;transition:background var(--t-med);flex-shrink:0}
.fg-switch .track::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,transparent 30%,var(--honey-hi) 50%,transparent 70%);background-size:200% 100%;background-repeat:no-repeat;background-position:200% 0;pointer-events:none}
.fg-switch .track::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--card);box-shadow:0 1px 4px rgba(0,0,0,.25);transition:transform var(--t-med) var(--ease-bee)}
.fg-switch input:checked+.track{background:var(--honey-ui)}
.fg-switch input:checked+.track::before{animation:fgShimmer var(--t-med) linear 1}
.fg-switch input:checked+.track::after{transform:translateX(18px)}
.fg-switch input:focus-visible+.track{box-shadow:var(--focus-ring)}
input[type=range].fg-range,.fg-range{accent-color:var(--honey-ui);-webkit-appearance:none;appearance:none;height:8px;border-radius:var(--r-pill);background:var(--ring-track);width:100%;cursor:pointer}
.fg-range{--fg-thumb:var(--honey-ui)}
.fg-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:var(--fg-thumb);border:3px solid var(--card);box-shadow:0 2px 6px rgba(161,98,7,.35);cursor:pointer}
.fg-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--fg-thumb);border:3px solid var(--card);cursor:pointer}
/* Zustände: Skeleton (Wachsstufen, exakte Zielhöhe) · Leer · Fehler (Wabe mit Riss, nichts bewegt sich) · Laden */
.fg-skel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.fg-skel{background:linear-gradient(90deg,var(--wax) 25%,var(--wax-2) 50%,var(--wax) 75%);background-size:200% 100%;animation:fgShimmer 1.6s infinite;border-radius:var(--r-lg)}
.fg-skel.hex{clip-path:var(--hex-clip);aspect-ratio:1/1.1547;border-radius:0}
.fg-skel.outline{background:var(--wax);border:2px dashed var(--border-ui);animation:none}
.fg-skel-card{height:230px}.fg-skel-line{height:14px;border-radius:7px;margin:8px 0}.fg-skel-line.w60{width:60%}.fg-skel-line.w40{width:40%}
.fg-skel-circle{border-radius:50%;width:48px;height:48px}
.fg-skel-row{height:84px}.fg-skel-line.lg{height:54px;border-radius:var(--r-md)}
@keyframes fgShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.fg-empty,.fg-state{text-align:center;padding:38px 16px;color:var(--muted)}
.fg-empty .ic,.fg-state .ic{font-size:46px;display:block;margin-bottom:10px;line-height:1}
.fg-empty .ic:has(svg,img),.fg-state .ic:has(svg,img){font-size:0}
.fg-empty .ic svg,.fg-state .ic svg{width:96px;height:auto;display:inline-block}
.fg-empty .ic .fg-bee,.fg-state .ic .fg-bee{--bee:96px}
.fg-empty .ic .fg-hex,.fg-state .ic .fg-hex{--hex:88px;margin:0 auto}
.fg-empty .t,.fg-state .t{font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);color:var(--text);margin-bottom:4px}
.fg-empty .d,.fg-state .d{font-size:14px;max-width:var(--wrap-read);margin:0 auto var(--sp-4)}
.fg-state.error .ic{animation:none}
.fg-state.error .ic .fg-hex{background:var(--red-l);color:var(--red-d)}
.fg-state.error .ic .fg-hex::after{content:"";position:absolute;width:2px;height:60%;background:var(--red-d);transform:rotate(18deg)}
.fg-state.error .fg-bee{transition:none;transform:none}
.fg-empty .ic img,.fg-state .ic img{width:72px;height:72px;display:inline-block}
.fg-empty.compact{padding:18px 12px}.fg-empty.compact .ic{font-size:32px;margin-bottom:6px}
.fg-grid .fg-empty,.fg-grid .fg-state{grid-column:1/-1}
@keyframes fgFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.fg-spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--honey-ui);animation:fgSpin .8s linear infinite;margin:0 auto}
.fg-spinner.sm{display:inline-block;width:18px;height:18px;border-width:3px;margin:0;vertical-align:-4px;border-color:color-mix(in srgb,currentColor 35%,transparent);border-top-color:currentColor}
/* Fortschritt — Honig fließt (--t-data, --ease-honey); Füllstand nie Farbe allein: 2-px-Meniskus (--fill-edge) + Zahl sind Pflicht */
.fg-progress{height:10px;border-radius:var(--r-pill);background:var(--ring-track);overflow:hidden}
.fg-progress>span{display:block;height:100%;border-radius:var(--r-pill);background:var(--grad-honey);border-right:2px solid var(--fill-edge);transition:width var(--t-data) var(--ease-honey)}
.fg-progress.mint>span{background:var(--grad-mint);border-right-color:var(--mint-dd)}
.fg-progress.peach>span{background:var(--grad-peach);border-right-color:var(--peach-d)}.fg-progress.berry>span{background:var(--grad-berry);border-right-color:var(--berry-d)}
/* Ring (Kalorien, Timer) — Kreis = Uhr. --p 0–100: JS interpoliert per rAF (SF.fx.ring), @property macht transition:--p zur Enhancement;
   ::after = Meniskus an der Füllfront (rotiert um die Ringmitte; --deg wird auf .fg-ring berechnet, weil --p nicht vererbt). Glow nur am Tages-Ring. */
@property --p{syntax:'<number>';inherits:false;initial-value:0}
.fg-ring{--p:0;--size:96px;--w:10px;--c:var(--honey-m);--track:var(--ring-track);--deg:calc(var(--p) * 3.6deg);width:var(--size);height:var(--size);border-radius:50%;background:conic-gradient(var(--c) calc(var(--p) * 1%),var(--track) 0);display:grid;place-items:center;position:relative;box-shadow:var(--glow-honey);transition:--p var(--t-data) var(--ease-honey)}
.fg-ring::before{content:"";position:absolute;inset:var(--w);border-radius:50%;background:var(--surface)}
.fg-ring::after{content:"";position:absolute;left:50%;top:calc(var(--w) / 2 - 3px);width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--fill-edge);transform-origin:50% calc(var(--size) / 2 - var(--w) / 2 + 3px);transform:rotate(var(--deg))}
.fg-ring>*{position:relative;z-index:1;text-align:center;font-family:var(--font-display);font-weight:800;line-height:1.1}
.fg-ring.sm{--size:46px;--w:5px;box-shadow:none}
.fg-ring.flat{box-shadow:none}
.fg-ring .v{font-size:calc(var(--size) * .24);font-variant-numeric:tabular-nums}.fg-ring .l{font-size:max(12px,calc(var(--size) * .11));color:var(--muted);font-family:var(--font-body);font-weight:700}
.fg-ring.rest{--c:var(--rest)}.fg-ring.last{--c:var(--mint-m)}.fg-ring.done{--c:var(--honey)}
.fg-ring .pet{position:absolute;inset:18%;display:grid;place-items:center}
.fg-ring .pet .fg-bee{--bee:100%}
.fg-ring.hex{clip-path:none}
.fg-ring>.fg-hex{width:calc(var(--size) * .56)}
/* Level-Balken (fx.js levelBar) */
.fg-lvl{display:block}
.fg-lvl-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:7px;flex-wrap:wrap}
.fg-lvl-name{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--text)}
.fg-lvl-xp{font-size:12.5px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.fg-lvl-track{height:13px;border-radius:var(--r-pill);background:var(--ring-track);overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.06)}
.fg-lvl-fill{height:100%;border-radius:var(--r-pill);background:var(--grad-honey);border-right:2px solid var(--fill-edge);transition:width var(--t-data) var(--ease-honey);box-shadow:none}
.fg-lvl-hint{font-size:12px;color:var(--muted);margin-top:6px;font-weight:600}
/* Toast (scripts/core/toast.js) — Pille aus Tinte mit Tropfen-Zeiger; Erfolg = Honig-Haken zeichnet sich; Undo-Sockel läuft 5 s ab.
   Dark: invertiert (--text-Fläche, --ink-Text), der Haken wird dunkler Honig (--brand-bg, 5,0:1 auf --text). */
#toast,.fg-toast{position:fixed;left:50%;bottom:1.6rem;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--on-dark);padding:.75rem 1.25rem;border-radius:var(--r-pill);font-size:.88rem;font-weight:700;font-family:var(--font-body);box-shadow:var(--shadow-lg);z-index:var(--z-toast);opacity:0;pointer-events:none;transition:opacity var(--t-med) var(--ease-bee),transform var(--t-med) var(--ease-bee);max-width:calc(100vw - 2rem);text-align:center;line-height:1.4}
#toast::before,.fg-toast::before{content:"";position:absolute;left:50%;bottom:-5px;width:12px;height:12px;margin-left:-6px;background:inherit;transform:rotate(45deg);border-radius:0 0 3px 0;z-index:-1}
#toast.visible,.fg-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#toast.visible:has(.undo),.fg-toast.show:has(.undo){pointer-events:auto}
#toast svg,.fg-toast svg{width:18px;height:18px;vertical-align:-4px;margin-right:6px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
#toast.success,.fg-toast.success{background:var(--ink);color:var(--on-dark)}
#toast.success svg,.fg-toast.success svg{stroke:var(--honey);stroke-dasharray:24;stroke-dashoffset:24;animation:fgDraw .3s var(--ease-bee) forwards}
#toast.error,.fg-toast.error{background:var(--btn-danger);color:var(--on-solid)}
#toast.info,.fg-toast.info{background:var(--btn-info);color:var(--on-solid)}
#toast.warn,#toast.warning,.fg-toast.warn{background:var(--btn-warn);color:var(--on-solid)}
#toast .undo,.fg-toast .undo{position:relative;margin-left:var(--sp-2);padding:2px 8px;background:none;border:0;border-radius:var(--r-pill);color:var(--honey);font:inherit;font-weight:800;cursor:pointer;overflow:hidden}
#toast .undo::after,.fg-toast .undo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:currentColor;transform-origin:left;animation:fgDrain 5s linear forwards}
@keyframes fgDrain{from{transform:scaleX(1)}to{transform:scaleX(0)}}
html.dark-mode #toast,html.dark-mode .fg-toast{background:var(--text);color:var(--ink)}
html.dark-mode #toast.success svg,html.dark-mode .fg-toast.success svg{stroke:var(--brand-bg)}
html.dark-mode #toast .undo,html.dark-mode .fg-toast .undo{color:var(--brand-bg)}
@media(max-width:600px){#toast,.fg-toast{bottom:1rem;font-size:.8rem;padding:.65rem 1rem}}
/* Overlays: Modal · Sheet (Sheet auf Desktop --r-2xl) */
.fg-modal{position:fixed;inset:0;background:var(--overlay);display:none;align-items:center;justify-content:center;z-index:var(--z-modal);backdrop-filter:blur(3px);padding:20px}
.fg-modal.show,.fg-modal.open,.fg-modal[open]{display:flex}
.fg-modal-box{background:var(--surface);color:var(--text);border-radius:var(--r-xl);padding:26px;max-width:480px;width:100%;box-shadow:var(--shadow-lg);animation:fgModalIn .34s var(--ease-spring);max-height:90vh;overflow-y:auto;position:relative}
.fg-modal-box.wide{max-width:680px}
.fg-modal-box.flush{padding:0}
@media(max-width:680px){.fg-modal.full{padding:0}.fg-modal.full .fg-modal-box{height:100%;max-height:none;border-radius:0}}
.fg-modal-x{position:absolute;top:.7rem;right:.7rem;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.fg-modal-x:hover{border-color:var(--honey-ui);color:var(--brand)}
.fg-modal-title{font-family:var(--font-display);font-weight:800;font-size:var(--fs-xl);margin:0 0 .5rem}
.fg-modal-actions{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap;margin-top:1.2rem}
@keyframes fgModalIn{from{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:none}}
@keyframes fgPop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
/* fx.js: Honigbote (Grundform; Position/Flug setzt fx.drop inline) + Plopp-Fallback ohne WAAPI */
.fg-drop{position:fixed;z-index:var(--z-celebrate);width:14px;height:14px;border-radius:50% 50% 50% 50%/40% 40% 60% 60%;background:var(--grad-honey);box-shadow:var(--glow-honey);pointer-events:none}
.fg-plopp{animation:fgPlopp .32s var(--ease-spring)}
@keyframes fgPlopp{0%{transform:scale(1)}45%{transform:scale(1.15)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.fg-plopp{animation:none}}
html.reduce-motion .fg-plopp{animation:none}
.fg-sheet{position:fixed;inset:0;z-index:var(--z-sheet);display:none;align-items:flex-end;justify-content:center;background:var(--overlay);backdrop-filter:blur(2px)}
.fg-sheet.show{display:flex}
.fg-sheet-box{background:var(--surface);width:100%;max-width:640px;max-height:88vh;overflow-y:auto;border-radius:var(--r-2xl) var(--r-2xl) 0 0;padding:14px 20px 28px;box-shadow:var(--shadow-lg);animation:fgSheetIn var(--t-slow) var(--ease-bee)}
.fg-sheet-grip{width:44px;height:5px;border-radius:var(--r-pill);background:var(--border-strong);margin:0 auto 14px}
@keyframes fgSheetIn{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@media(min-width:720px){.fg-sheet{align-items:center}.fg-sheet-box{border-radius:var(--r-2xl);animation:fgModalIn .3s var(--ease-spring)}.fg-sheet-grip{display:none}}
/* Tooltip (data-tip) */
[data-tip]{position:relative}
[data-tip]::after{content:none;position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%) translateY(4px);background:var(--ink);color:var(--on-dark);font-size:12px;font-weight:700;padding:6px 10px;border-radius:10px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--t-fast),transform var(--t-fast);z-index:var(--z-menu)}
[data-tip]:hover::after,[data-tip]:focus-visible::after{content:attr(data-tip);opacity:1;transform:translateX(-50%) translateY(0)}
[data-tip].wrap::after{white-space:normal;width:max-content;max-width:min(260px,calc(100vw - 40px));line-height:1.4}
/* Tabs / Segment — Wachs-Segment mit Papier-Tab; Unterstrich-Variante mit gleitendem --honey-ui-Indikator (.fg-tab-ind, JS setzt left/width oder --x/--w) */
.fg-tabs{display:flex;gap:4px;padding:4px;background:var(--wax);border:none;border-radius:var(--r-pill);overflow-x:auto;scrollbar-width:none;position:relative}
.fg-tabs::-webkit-scrollbar{display:none}
.fg-tab{flex:1 0 auto;border:none;background:transparent;color:var(--muted);font-weight:800;font-size:.85rem;padding:9px 14px;min-height:44px;border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background var(--t-fast),color var(--t-fast),box-shadow var(--t-fast)}
.fg-tab:hover{color:var(--text)}
.fg-tab.active,.fg-tab[aria-selected="true"]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}
.fg-tabs.wrap{flex-wrap:wrap}
.fg-tabs.inline{display:inline-flex;max-width:100%}
.fg-tabs.fill .fg-tab{flex:1 1 0;min-width:0}
@media(max-width:480px){.fg-tabs.fill .fg-tab{padding:9px 4px;font-size:.78rem;gap:4px}}
.fg-tabs.underline{background:none;border:none;border-bottom:1px solid var(--border);border-radius:0;padding:0;gap:0}
.fg-tabs.underline .fg-tab{border-radius:0;flex:0 0 auto;margin-bottom:-1px;border-bottom:2px solid transparent}
.fg-tabs.underline .fg-tab.active,.fg-tabs.underline .fg-tab[aria-selected="true"]{background:none;box-shadow:none;color:var(--brand);border-bottom-color:var(--honey-ui)}
.fg-tabs.underline:has(.fg-tab-ind) .fg-tab.active,.fg-tabs.underline:has(.fg-tab-ind) .fg-tab[aria-selected="true"]{border-bottom-color:transparent}
.fg-tab-ind{position:absolute;left:0;bottom:0;height:3px;width:var(--w,0);border-radius:2px;background:var(--honey-ui);transform:translateX(var(--x,0));pointer-events:none;transition:left var(--t-med) var(--ease-soft),width var(--t-med) var(--ease-soft),transform var(--t-med) var(--ease-soft)}
/* Tabelle */
.fg-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface)}
.fg-table{width:100%;border-collapse:collapse;font-size:.9rem}
.fg-table th,.fg-table td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}
.fg-table th{font-size:12px;text-transform:uppercase;letter-spacing:var(--track-label);color:var(--muted);font-weight:800;background:var(--surface-2);position:sticky;top:0}
.fg-table tr:last-child td{border-bottom:none}
.fg-table tbody tr:hover td{background:var(--brand-soft)}
.fg-table .num{text-align:right;font-variant-numeric:tabular-nums}
/* Breadcrumb · Pagination · Accordion */
.fg-crumbs{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;font-size:.8rem;font-weight:700;color:var(--muted);margin:0 0 var(--sp-4)}
.fg-crumbs a{color:var(--muted);text-decoration:none}
.fg-crumbs a:hover{color:var(--brand)}
.fg-crumbs .sep{opacity:.5}
.fg-crumbs [aria-current]{color:var(--text)}
.fg-pages{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;margin:var(--sp-5) 0}
.fg-pages a,.fg-pages button,.fg-pages span{min-width:40px;height:40px;padding:0 10px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:800;font-size:.85rem;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast)}
.fg-pages a:hover,.fg-pages button:hover{border-color:var(--honey-ui);background:var(--brand-soft)}
.fg-pages .active,.fg-pages [aria-current="page"]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.fg-pages .dots{border:none;background:none;min-width:auto;color:var(--muted)}
details.fg-acc{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);margin-bottom:8px}
details.fg-acc summary{list-style:none;cursor:pointer;padding:13px 16px;font-weight:800;display:flex;align-items:center;gap:.6rem;border-radius:var(--r-md)}
details.fg-acc summary::-webkit-details-marker{display:none}
details.fg-acc summary::after{content:"";margin-left:auto;width:10px;height:10px;border-right:2.5px solid var(--muted);border-bottom:2.5px solid var(--muted);transform:rotate(45deg);transition:transform var(--t-med);flex-shrink:0}
details.fg-acc[open] summary::after{transform:rotate(-135deg)}
details.fg-acc[open] summary{border-bottom:1px solid var(--border);border-radius:var(--r-md) var(--r-md) 0 0}
details.fg-acc .fg-acc-body{padding:12px 16px 16px;color:var(--text-2);font-size:.92rem}
/* Hero (Alias, nur Alt-Seiten — fällt in Phase 6 auf .fg-stage) · Abschnitts-Kopf · Hinweisbox */
.fg-hero{position:relative;overflow:hidden;border-radius:var(--r-xl);padding:26px 28px;margin-bottom:20px;background:var(--grad-hero);border:1px solid var(--border)}
.fg-hero::before{content:"";position:absolute;top:-50px;right:-40px;width:200px;height:200px;border-radius:50%;background:var(--honey);opacity:.18}
.fg-hero::after{content:"";position:absolute;bottom:-60px;left:-30px;width:180px;height:180px;border-radius:50%;background:var(--peach);opacity:.10}
.fg-hero>*{position:relative;z-index:1}
.fg-hero h1{font-weight:800;font-size:clamp(24px,5vw,32px);margin:0 0 6px}
.fg-hero p{color:var(--text-2);font-weight:700;margin:0;max-width:600px}
/* Emoji-Rest der Alt-Seiten (Phase 6 → Sprite/Bea, Spec §10 Nr. 25): steht still — Spec §6 erlaubt nur drei Loops
   (Skeleton 1,6 s, Bea-Blinzeln, Hero-Schweben bis zum ersten Scroll). Der Keyframe bleibt für Alt-Seiten-CSS, das ihn per Auslöser nutzt. */
.fg-hero .hero-emoji{font-size:34px;display:inline-block;line-height:1}
@keyframes fgEmojiFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(-4deg)}}
/* Bühne — Hero eines Bereichs, Begleiter-Szene, Login rechts: Papier-zu-Wachs (--grad-wax), Wabenmuster 5 % als Maske aus --waben, Tageszeit über data-time */
.fg-stage{position:relative;overflow:hidden;border-radius:var(--r-2xl);background:var(--grad-wax);padding:var(--sp-6) var(--sp-5);border:1px solid var(--border)}
.fg-stage::before{content:"";position:absolute;inset:0;background:currentColor;-webkit-mask-image:var(--waben);mask-image:var(--waben);color:var(--honey-d);opacity:.05;pointer-events:none}
.fg-stage>*{position:relative}
.fg-stage[data-time=morning]{--grad-wax:linear-gradient(160deg,var(--card) 0%,var(--honey-l) 100%)}
.fg-stage[data-time=dusk]{--grad-wax:linear-gradient(160deg,var(--card) 0%,var(--peach-l) 100%)}
.fg-stage[data-time=night]{--grad-wax:linear-gradient(160deg,var(--wax-night) 0%,var(--cream-night) 100%);color:var(--on-dark);border-color:transparent}
.fg-stage .layer{position:absolute;inset:0;pointer-events:none}
.fg-stage .layer.bg{z-index:0}.fg-stage .layer.mid{z-index:1}.fg-stage .layer.fg{z-index:2}
@media(max-width:640px){.fg-stage{border-radius:0 0 var(--r-2xl) var(--r-2xl);margin:0 -4%;padding:var(--sp-5) 4%}}
/* Bea-Slot — Posen aus dem Sprite static/assets/bee-poses.svg (<use href="…"> auf die Symbol-IDs bee-neutral … bee-troestet, bee-augen-zu); bewegt sich nur auf Ereignis, eine Bea je Viewport.
   Flug: offset-path (--bee-path) mit transform-Fallback in fx.js; nachts Leuchtsaum statt Schlagschatten (filter nur auf der Biene). */
.fg-bee{width:var(--bee,72px);height:var(--bee,72px);display:inline-block;vertical-align:middle;color:var(--ill-ink);transition:transform var(--t-slow) var(--ease-bee)}
.fg-bee svg,.fg-bee img{width:100%;height:100%;display:block;overflow:visible}
.fg-bee[data-pose=jubelt]{transform:translateY(-6px) rotate(-6deg)}
.fg-bee[data-pose=freut]{transform:translateY(-2px)}
.fg-bee[data-pose=staunt]{transform:translateY(-2px) rotate(2deg)}
.fg-bee[data-pose=schlaeft]{transform:translateY(3px) rotate(4deg)}
.fg-bee[data-pose=troestet]{transform:rotate(8deg)}
.fg-bee[data-pose=denkt]{transform:rotate(-3deg)}
.fg-bee.is-hovering{animation:fgFloat 5s ease-in-out infinite}
.fg-bee.is-flying{offset-path:var(--bee-path);offset-distance:0;transition:offset-distance var(--t-data) var(--ease-bee),transform var(--t-data) var(--ease-bee)}
.fg-bee.is-flying.arrived{offset-distance:100%}
.fg-bee .lid{transition:transform var(--t-fast)}
.fg-bee .pupil{transition:transform var(--t-fast) var(--ease-bee)}
html.dark-mode .fg-bee{filter:drop-shadow(0 0 12px rgba(255,214,90,.25))}
.fg-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:26px 2px 12px}
.fg-section-head h2{font-weight:800;font-size:20px;margin:0;display:flex;align-items:center;gap:8px}
.fg-section-head .badge{background:var(--honey-l);color:var(--honey-d);border-radius:var(--r-pill);padding:3px 12px;font-size:12px;font-weight:800}
.fg-section-head .badge.peach{background:var(--peach-l);color:var(--peach-d)}
.fg-section-head .badge.berry{background:var(--berry-l);color:var(--berry-d)}
.fg-note{display:flex;gap:.7rem;align-items:flex-start;padding:12px 14px;border-radius:var(--r-md);background:var(--info-l);color:var(--text);border-left:4px solid var(--cyan-d);font-size:.9rem;font-weight:600}
.fg-note.ok{background:var(--ok-l);border-left-color:var(--mint-m)}.fg-note.warn{background:var(--warn-l);border-left-color:var(--warn)}.fg-note.danger{background:var(--danger-l);border-left-color:var(--red-d)}
.fg-note .ic{font-size:1.2rem;line-height:1.3}
.fg-divider{border:none;border-top:1px solid var(--border);margin:var(--sp-5) 0}
.fg-kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;background:var(--surface-2);border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;padding:1px 6px}

/* Wortmarke bee|alth — „bee" in Tinte, Strich 1,5 px × 0,7 em in --honey-ui (der Stachel, das einzige Honig-Element der Nav), „alth" in --honey-d.
   nav .logo-text und .fg-logo übernehmen dieselben Regeln; unter 640 px fällt der Strich, nicht die Farbe. Aufbau beim Login: fx.js über .is-building. */
.fg-wordmark{display:inline-flex;align-items:center;gap:.12em;font:800 1.3rem/1 var(--font-display);letter-spacing:var(--track-display);text-decoration:none;color:var(--text)}
.fg-wordmark .logo-base{color:var(--text)}
.fg-wordmark .logo-accent{color:var(--honey-d)}
.fg-wordmark .bar,nav .logo-text .bar,.fg-logo .bar{display:inline-block;width:1.5px;height:.7em;background:var(--honey-ui);border-radius:1px;transform-origin:bottom;flex-shrink:0}
/* EINE Wortmarke überall (Risiko §11 Nr. 9): Nav-Vorlage app/templates/nav.html trägt das .bar-Span erst nach dem Stempel (Spec §10 Nr. 17).
   Bis dahin entsteht der Stachel als ::after von „bee", solange .logo-text nicht .fg-wordmark trägt; site-nav.js setzt Klasse + echtes
   .bar-Span zur Laufzeit nach (dann fällt das Pseudo-Element weg — nie zwei Striche). Ohne JS und im SSR-Erst-Paint steht er trotzdem. */
nav .logo-text:not(.fg-wordmark) .logo-base,.fg-logo .logo-text:not(.fg-wordmark) .logo-base{display:inline-flex;align-items:center;gap:.12em}
nav .logo-text:not(.fg-wordmark) .logo-base::after,.fg-logo .logo-text:not(.fg-wordmark) .logo-base::after{content:"";display:inline-block;width:1.5px;height:.7em;background:var(--honey-ui);border-radius:1px;flex-shrink:0}
.fg-wordmark.is-building .logo-base,.fg-wordmark.is-building .logo-accent{opacity:0;transition:opacity var(--t-slow) var(--ease-bee)}
.fg-wordmark.is-building .bar{transform:scaleY(0);transition:transform var(--t-slow) var(--ease-bee) .2s}
.fg-wordmark.is-building .logo-accent{transition-delay:.4s}
.fg-wordmark.is-built .logo-base,.fg-wordmark.is-built .logo-accent{opacity:1}
.fg-wordmark.is-built .bar{transform:scaleY(1)}
@media(max-width:640px){.fg-wordmark .bar,nav .logo-text .bar,.fg-logo .bar,nav .logo-text:not(.fg-wordmark) .logo-base::after,.fg-logo .logo-text:not(.fg-wordmark) .logo-base::after{display:none}}
/* Logo außerhalb der Nav (NO_NAV-Seiten: login, challenge, admin) */
.fg-logo{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;text-decoration:none;font-family:var(--font-display);font-size:1.3rem;font-weight:800;line-height:1;color:var(--text)}
.fg-logo .logo-icon{width:34px;height:34px;border-radius:11px;flex-shrink:0;transition:transform var(--t-med) var(--ease-bee)}
.fg-logo:hover .logo-icon{transform:rotate(-8deg) translateY(-1px)}
.fg-logo .logo-icon img,.fg-logo>img{width:34px;height:34px;object-fit:contain;display:block;border-radius:11px}
.fg-logo .logo-text{display:inline-flex;align-items:center;gap:.12em;letter-spacing:var(--track-display)}
.fg-logo .logo-base{color:var(--text)}.fg-logo .logo-accent{color:var(--honey-d)}
/* Avatar-Initiale: hell auf --honey-l, weiß nur auf gesetzter Datenfarbe (.tinted + style=background); .hex = Wabe (Rahmen über .fg-hex-ring) */
.fg-avatar{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0;font-weight:800;background:var(--honey-l);color:var(--honey-d)}
.fg-avatar.tinted{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.25)} /* hex-ok: Initiale auf nutzergewählter Avatar-Datenfarbe */
.fg-avatar svg,.fg-avatar img{width:100%;height:100%;display:block;object-fit:cover}
.fg-avatar.sm{width:30px;height:30px;font-size:.75rem}.fg-avatar.lg{width:64px;height:64px;font-size:1.4rem}
.fg-avatar.hex{border-radius:0;clip-path:var(--hex-clip);height:auto;aspect-ratio:1/1.1547}
/* Lesetypografie für Editor-/Rechtstexte, FAQ, Lexikon — 1 rem / 1,7, Lesebreite --wrap-read (≈ 68 Zeichen) */
.fg-prose{line-height:1.7;font-size:1rem;color:var(--text-2);overflow-wrap:anywhere;max-width:var(--wrap-read)}
.fg-prose h2{font-size:var(--fs-xl);color:var(--brand);margin:var(--sp-6) 0 var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border)}
.fg-prose h2:first-child{margin-top:0}
.fg-prose h3{font-size:var(--fs-lg);color:var(--text);margin:var(--sp-5) 0 var(--sp-2)}
.fg-prose p{margin:0 0 var(--sp-4)}
.fg-prose ul,.fg-prose ol{padding-left:1.3em;margin:0 0 var(--sp-4)}
.fg-prose li{margin:.3em 0}
.fg-prose a{color:var(--link);text-decoration:underline;text-underline-offset:2px}
.fg-prose a:hover{color:var(--link-hover)}
.fg-prose table{width:100%;border-collapse:collapse;font-size:.9rem;margin:0 0 var(--sp-4)}
.fg-prose th,.fg-prose td{padding:8px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.fg-prose th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:var(--track-label)}
.fg-prose blockquote{margin:0 0 var(--sp-4);padding:var(--sp-3) var(--sp-4);border-left:4px solid var(--honey-ui);background:var(--wax);border-radius:0 var(--r-md) var(--r-md) 0}
.fg-prose code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 5px}
.fg-prose hr{border:none;border-top:1px solid var(--border);margin:var(--sp-5) 0}
/* Sticky-Leisten unter der Nav (Tab-Leisten, Suchleisten) */
.fg-sticky-under-nav{position:sticky;top:var(--nav-h);z-index:calc(var(--z-nav) - 1)}
/* Timer-Bühne (Übung, Phase 5) — Vollbild, Rig zentral, Bea als Coach oben rechts; Pause = Ruhe in Cyan (--rest-l) */
.fg-timer-stage{position:relative;display:grid;grid-template-rows:auto 1fr auto;min-height:100dvh;background:var(--bg);transition:background var(--t-slow) var(--ease-soft)}
.fg-timer-stage.is-rest{background:var(--rest-l)}
.fg-timer-stage .rig{max-width:min(70vw,420px);margin:auto}
.fg-timer-stage .coach{position:absolute;top:var(--sp-4);right:var(--sp-4);--bee:56px}
.fg-timer-stage .fg-ring .v{font-size:var(--fs-4xl)}

/* ── 6 · Footer · Feier-Engine · Blütenfall · Reduced-Motion je Komponente · Druck ── */
.fg-footer,footer.sf-site-footer{background:var(--ink);color:var(--on-dark-2);padding:3rem 5% 2.4rem;text-align:center;font-size:.8rem;margin-top:2rem}
.fg-footer a,footer.sf-site-footer a{color:var(--honey);text-decoration:none;transition:color var(--t-fast)}
.fg-footer a:hover,footer.sf-site-footer a:hover{color:var(--on-dark)}
.fg-footer .footer-links,footer.sf-site-footer .footer-links{display:flex;justify-content:center;gap:1.6rem;margin-bottom:1rem;flex-wrap:wrap}
.fg-footer .footer-social,footer.sf-site-footer .footer-social{display:flex;justify-content:center;gap:1.2rem;margin:.8rem 0 .5rem}
.fg-footer .footer-social a,footer.sf-site-footer .footer-social a{color:var(--on-dark-2);font-size:1.15rem}
.fg-footer .footer-brand,footer.sf-site-footer .footer-brand{font-family:var(--font-display);font-weight:800;font-size:1.2rem;color:var(--honey);margin-bottom:.6rem;display:inline-flex;align-items:center;gap:.4rem}
.fg-footer .footer-entdecken{margin:0 0 1.4rem}.fg-footer .footer-legal{margin:.5rem 0 0}.fg-footer .footer-legal a{margin:0 .5rem}.fg-footer .footer-copy{margin:.8rem 0 0}
.sf-footer-entdecken{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1.25rem;border-radius:var(--r-pill);background:color-mix(in srgb,var(--honey) 10%,transparent);border:1px solid color-mix(in srgb,var(--honey) 40%,transparent);color:var(--honey);font-size:.82rem;font-weight:700;transition:background var(--t-fast),transform var(--t-fast)}
.sf-footer-entdecken:hover{background:color-mix(in srgb,var(--honey) 20%,transparent);transform:translateY(-2px);color:var(--on-dark)}
@media(max-width:768px){.fg-footer .footer-links,footer.sf-site-footer .footer-links{gap:.9rem}}
/* 6b · Footer-Feinschliff (a11y, additiv): jede Verknuepfung ein >= 44-px-Ziel (WCAG 2.5.5), Trenner stumm (aria-hidden),
   Fokusring auf Tinte: 2 px --ink-Abstand + 2 px --honey (Honig/Tinte 11,26:1 hell · 13,67:1 dunkel) statt Papierabstand. */
.fg-footer .footer-links a,footer.sf-site-footer .footer-links a,.fg-footer .footer-legal a,footer.sf-site-footer .footer-legal a,.fg-footer .footer-social a,footer.sf-site-footer .footer-social a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 .4rem;border-radius:var(--r-sm)}
.fg-footer .footer-links,footer.sf-site-footer .footer-links{gap:0 .8rem}
.fg-footer .footer-legal,footer.sf-site-footer .footer-legal{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 .2rem}
.fg-footer .footer-legal a,footer.sf-site-footer .footer-legal a{margin:0}
.fg-footer .footer-sep,footer.sf-site-footer .footer-sep{color:var(--on-dark-2)}
.fg-footer .footer-social,footer.sf-site-footer .footer-social{gap:.4rem}
.fg-footer .footer-brand img,footer.sf-site-footer .footer-brand img{width:28px;height:28px;display:block;flex-shrink:0}
.sf-footer-entdecken{min-height:44px}
.sf-footer-entdecken .fg-icon{width:16px;height:16px;flex-shrink:0}
.fg-footer a:focus-visible,footer.sf-site-footer a:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ink),0 0 0 4px var(--honey);color:var(--on-dark)}
@media(max-width:768px){.fg-footer .footer-links,footer.sf-site-footer .footer-links{gap:0 .2rem}}
@media(prefers-reduced-motion:reduce){.sf-footer-entdecken{transition:none}.sf-footer-entdecken:hover{transform:none}}
html.reduce-motion .sf-footer-entdecken{transition:none}html.reduce-motion .sf-footer-entdecken:hover{transform:none}
/* Feier (fx.js) — Rangfolge Wabe < Haken < Blütenfall; Strahlenkranz und Konfetti entfallen; Kunst = .fg-celebrate-art (Abzeichen-Wabe 88 px + Bea „jubelt" 72 px) */
.fg-celebrate{position:fixed;inset:0;z-index:var(--z-celebrate);display:flex;align-items:center;justify-content:center;padding:20px;background:var(--overlay);backdrop-filter:blur(3px);opacity:0;transition:opacity .26s}
.fg-celebrate.show{opacity:1}
.fg-celebrate-box{position:relative;background:var(--surface);border-radius:var(--r-2xl);padding:34px 30px 26px;max-width:340px;width:100%;text-align:center;box-shadow:var(--shadow-lg);transform:scale(.86) translateY(14px);transition:transform .3s var(--ease-spring);border:1px solid var(--border);overflow:hidden}
.fg-celebrate.show .fg-celebrate-box{transform:none}
.fg-celebrate-rays{display:none;position:absolute;top:-40%;left:50%;width:240%;height:240%;transform:translateX(-50%);pointer-events:none;background:conic-gradient(from 0deg,color-mix(in srgb,var(--ac,var(--honey-m)) 18%,transparent) 0 12deg,transparent 12deg 30deg);opacity:.5}
.fg-celebrate-emoji{font-size:62px;line-height:1;margin-bottom:10px;position:relative;animation:fgBadgePop .55s cubic-bezier(.34,1.8,.5,1) both}
.fg-celebrate-art{display:flex;align-items:flex-end;justify-content:center;gap:var(--sp-3);margin-bottom:var(--sp-3);position:relative;animation:fgBadgePop .55s cubic-bezier(.34,1.8,.5,1) both}
.fg-celebrate-art .fg-hex{--hex:88px}.fg-celebrate-art .fg-bee{--bee:72px}
.fg-celebrate-title{font-family:var(--font-display);font-weight:800;font-size:23px;color:var(--text);margin-bottom:6px;position:relative}
.fg-celebrate-sub{color:var(--muted);font-size:14.5px;line-height:1.5;margin-bottom:18px;position:relative}
.fg-celebrate-ok{position:relative;width:100%}
@keyframes fgRays{to{transform:translateX(-50%) rotate(360deg)}}
@keyframes fgBadgePop{0%{transform:scale(0) rotate(-25deg)}70%{transform:scale(1.18) rotate(6deg)}100%{transform:scale(1) rotate(0)}}
.fg-flash{position:fixed;inset:0;pointer-events:none;z-index:var(--z-toast);background:var(--honey);opacity:0;animation:fgFlash .5s ease-out}
@keyframes fgFlash{0%{opacity:.35}100%{opacity:0}}
/* Blütenfall — max 24 Blätter, 1,8 s, nur Meilensteine nach Server-OK (fx.js petals); Fall über transform, Schwingen über translate (unabhängig) */
.fg-petals{position:fixed;inset:0;pointer-events:none;z-index:var(--z-celebrate);overflow:hidden}
.fg-petals .p{position:absolute;top:-16px;left:var(--x,50%);width:10px;height:14px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;opacity:0;animation:fgPetalFall 1.8s var(--ease-petal) forwards,fgPetalSway 1.2s ease-in-out infinite alternate;animation-delay:var(--d,0s)}
.fg-petals .p:nth-child(4n+1){background:var(--blush)}
.fg-petals .p:nth-child(4n+2){background:var(--honey-hi)}
.fg-petals .p:nth-child(4n+3){background:var(--wing)}
.fg-petals .p:nth-child(4n){background:var(--petal-4)}
@keyframes fgPetalFall{0%{transform:translateY(0) rotate(0);opacity:0}8%{opacity:1}100%{transform:translateY(105vh) rotate(260deg);opacity:.9}}
@keyframes fgPetalSway{from{translate:-14px 0}to{translate:14px 0}}
/* Reduced-Motion je Komponente (Systemeinstellung UND html.reduce-motion): Skeleton statisch, Bea sitzt, Füllstand steht (Meniskus bleibt), Indikator springt, keine Blüten */
@media(prefers-reduced-motion:reduce){
  .fg-skel{animation:none;background:var(--wax)}
  .fg-bee,.fg-bee.is-flying,.fg-bee.is-hovering,.fg-tab-ind,.fg-progress>span,.fg-lvl-fill,.fg-ring,.fg-lift,.fg-wordmark.is-building .bar,.fg-wordmark.is-building .logo-base,.fg-wordmark.is-building .logo-accent{transition:none;animation:none}
  .fg-bee.is-flying{offset-distance:100%}
  .fg-petals{display:none}
  .fg-comb i.done::before,.fg-comb i svg,.fg-chip.on::before,.fg-toast.success svg,.fg-btn.is-done svg,.fg-input.valid+.fg-icon-ok{animation:none;transform:none;stroke-dashoffset:0}
}
html.reduce-motion .fg-skel{animation:none;background:var(--wax)}
html.reduce-motion .fg-bee,html.reduce-motion .fg-bee.is-flying,html.reduce-motion .fg-bee.is-hovering,html.reduce-motion .fg-tab-ind,html.reduce-motion .fg-progress>span,html.reduce-motion .fg-lvl-fill,html.reduce-motion .fg-ring,html.reduce-motion .fg-lift,html.reduce-motion .fg-wordmark.is-building .bar,html.reduce-motion .fg-wordmark.is-building .logo-base,html.reduce-motion .fg-wordmark.is-building .logo-accent{transition:none;animation:none}
html.reduce-motion .fg-bee.is-flying{offset-distance:100%}
html.reduce-motion .fg-petals{display:none}
html.reduce-motion .fg-comb i.done::before,html.reduce-motion .fg-comb i svg,html.reduce-motion .fg-chip.on::before,html.reduce-motion .fg-toast.success svg,html.reduce-motion .fg-btn.is-done svg,html.reduce-motion .fg-input.valid+.fg-icon-ok{animation:none;transform:none;stroke-dashoffset:0}
@media print{
  nav,footer,.fg-footer,.hamburger,.fg-skip,#toast,.fg-toast,.fg-modal,.fg-sheet,.fg-celebrate,.fg-petals{display:none!important}
  body{background:#fff;color:#000} /* hex-ok: Druck = weißes Papier, schwarze Tinte, unabhängig vom Theme */
  .fg-card{box-shadow:none;border-color:#ccc;break-inside:avoid} /* hex-ok: Druckrahmen */
  a{color:#000;text-decoration:underline} /* hex-ok: Druck */
}
