/* ==============================================================
   LeviLingo theme.css  (Phase 0, WP1, 06.09.2026)
   Einzige Token-Quelle fuer index.htm und code/code.html.
   Regel: Farben, Radien, Schatten, Schriftgroessen nur hier.
   Aendert man hier einen Wert, aendert er sich in der ganzen App.
   ============================================================== */
:root {
  /* ---- Basis (1:1 aus index.htm :root, unveraendert) ---- */
  --bg:          #F5FAFF;
  --surface:     #FFFFFF;
  --primary:     #1E3A8A;
  --primary-rgb: 30,58,138;
  --success-rgb: 34,197,94;
  --text-rgb:    11,18,32;
  --accent:      #F59E0B;
  --accent-rgb:  245,158,11;
  --text:        #0B1220;
  --muted:       #51607A;
  --progress-bg: #D6E6FF;
  --success:     #22C55E;
  --success-bg:  #ECFDF5;
  --error:       #EF4444;
  --error-bg:    #FEF2F2;

  --radius-card:    22px;
  --radius-control: 16px;
  --shadow-soft:    0 4px 24px rgba(11,18,32,0.06);
  --shadow-card:    0 8px 32px rgba(11,18,32,0.08);
  --font:           'Nunito', system-ui, -apple-system, sans-serif;

  /* ---- WP2: bisher benutzt, aber nirgends definiert ---- */
  --line:           #E5E7EB;              /* Trenner + Kartenrahmen */
  --line-strong:    #CBD5E0;              /* Tracks, kraeftige Rahmen */
  --border:         var(--line);          /* Alias fuer .iv-* / .lb-* */
  --tint:           #EEF3FE;              /* helle Primary-Flaeche (sp2, shop, code) */
  --text-dim:       var(--muted);         /* Insights: gedimmter Text */
  --text-secondary: #475569;              /* Scenario-MC; WP4: auf --muted ziehen */

  /* ---- Farbfamilien (heute hart im Code, ab WP4/WP6/WP7 in Nutzung) ---- */
  --muted-soft:       #94A3B8;
  --warn:             #B45309;
  --warn-strong:      #92400E;
  --accent-bright:    #FBBF24;
  --accent-line:      #FDE68A;
  --accent-bg:        #FEF3C7;
  --accent-bg-soft:   #FFFBEB;
  --success-strong:   #15803D;
  --success-line:     #BBF7D0;
  --error-strong:     #991B1B;
  --error-line:       #FECACA;
  --primary-strong:   #152C6B;
  --text-on-dark:     #F1F5F9;              /* Schrift auf dunklen Karten (Coding) */

  /* ---- Fortschritts-Segmente (12.09.2026): Balken "sitzt / geuebt / nur
         erkannt" in Vokabeltest-Kachel und Testprep-Banner. Werte 1:1 aus
         index.htm gezogen, bewusst theme-unabhaengig (gleiche Semantik in
         Aurora und Oberwelt). ---- */
  /* BL-VT-BALKEN (12.09.2026): Segmentfarben deutlich getrennt. Vorher waren
     "selbst getippt" (#60A5FA, unter Aurora sogar weiss-transparent) und "nur
     erkannt" (#9DBFF0) auf der blauen Kachel praktisch dieselbe Flaeche. Jetzt
     Gruen / Amber / Violett, drei klar verschiedene Farbfamilien. */
  --seg-trained:      #FBBF24;              /* selbst richtig getippt */
  --seg-seen:         #C084FC;              /* nur per MC wiedererkannt */
  --seg-open:         rgba(255,255,255,0.30); /* noch offen, Legenden-Punkt */
  --seg-seen-warm:    #FAC775;              /* dito im Accent-Banner */

  /* ---- Skalen (ab WP3 in Nutzung) ---- */
  --fs-xs:      11px;   /* Mikro-Labels, Legenden */
  --fs-sm:      12px;   /* Meta, Badges, Pills */
  --fs-base:    14px;   /* Fliesstext, Chips */
  --fs-md:      15px;   /* Kartentitel */
  --fs-lg:      16px;   /* Buttons, Inputs */
  --fs-xl:      18px;   /* Untertitel */
  --fs-2xl:     20px;   /* Icons, Emoji */
  --fs-3xl:     22px;   /* Screen-Titel */
  --fs-4xl:     28px;   /* grosse Zahlen */
  --fs-display: 36px;   /* Hero-Zahlen */
  --radius-xs:   6px;
  --radius-sm:   8px;
  --radius-md:   12px;
  --radius-pill: 999px;
  --shadow-focus: 0 0 0 3px rgba(var(--primary-rgb),0.12);
  --shadow-press: 0 1px 4px rgba(0,0,0,0.1);

  /* ---- Fachpalette (Quelle: JS SUBJECT_COLORS, Bens Entscheidung 06.09.2026).
     index.htm liest diese Tokens beim Start in SUBJECT_COLORS ein; die Werte
     im JS-Objekt sind nur noch Fallback. Props: color, color2, bg, bg2, border,
     shadow, shadowdeep. Key 'default' = unbekanntes Fach. ---- */
  --sub-spanisch-color: #E63946;
  --sub-spanisch-color2: #B91C2C;
  --sub-spanisch-bg: #FFEAED;
  --sub-spanisch-bg2: #FFCDD3;
  --sub-spanisch-border: #FECACA;
  --sub-spanisch-shadow: rgba(185,28,44,0.3);
  --sub-spanisch-shadowdeep: rgba(120,18,28,0.45);
  --sub-englisch-color: #2563EB;
  --sub-englisch-color2: #1D4ED8;
  --sub-englisch-bg: #E8EFFF;
  --sub-englisch-bg2: #C8D6FF;
  --sub-englisch-border: #BFDBFE;
  --sub-englisch-shadow: rgba(29,78,216,0.3);
  --sub-englisch-shadowdeep: rgba(15,40,140,0.45);
  --sub-cheatcodes-color: #2F9C8A;
  --sub-cheatcodes-color2: #1F7560;
  --sub-cheatcodes-bg: #DCF3ED;
  --sub-cheatcodes-bg2: #B8E5D8;
  --sub-cheatcodes-border: #99F6E4;
  --sub-cheatcodes-shadow: rgba(31,117,96,0.3);
  --sub-cheatcodes-shadowdeep: rgba(15,75,60,0.45);
  --sub-hollaendisch-color: #F97316;
  --sub-hollaendisch-color2: #C2410C;
  --sub-hollaendisch-bg: #FFEDD5;
  --sub-hollaendisch-bg2: #FED7AA;
  --sub-hollaendisch-border: #FDBA74;
  --sub-hollaendisch-shadow: rgba(194,65,12,0.3);
  --sub-hollaendisch-shadowdeep: rgba(120,40,8,0.45);
  --sub-franzoesisch-color: #7C3AED;
  --sub-franzoesisch-color2: #5B21B6;
  --sub-franzoesisch-bg: #F3E8FF;
  --sub-franzoesisch-bg2: #E9D5FF;
  --sub-franzoesisch-border: #D8B4FE;
  --sub-franzoesisch-shadow: rgba(91,33,182,0.3);
  --sub-franzoesisch-shadowdeep: rgba(60,20,120,0.45);
  --sub-deutsch-color: #B45309;
  --sub-deutsch-color2: #78350F;
  --sub-deutsch-bg: #FEF3C7;
  --sub-deutsch-bg2: #FDE68A;
  --sub-deutsch-border: #FCD34D;
  --sub-deutsch-shadow: rgba(120,53,15,0.3);
  --sub-deutsch-shadowdeep: rgba(80,35,10,0.45);
  --sub-code-grundlagen-color: #16A34A;
  --sub-code-grundlagen-color2: #15803D;
  --sub-code-grundlagen-bg: #DCFCE7;
  --sub-code-grundlagen-bg2: #BBF7D0;
  --sub-code-grundlagen-border: #86EFAC;
  --sub-code-grundlagen-shadow: rgba(21,128,61,0.3);
  --sub-code-grundlagen-shadowdeep: rgba(15,80,40,0.45);
  --sub-default-color: #1E3A8A;
  --sub-default-color2: #1E2A6A;
  --sub-default-bg: #EEF2FF;
  --sub-default-bg2: #D8E0FF;
  --sub-default-border: #C7D2FE;
  --sub-default-shadow: rgba(30,58,138,0.3);
  --sub-default-shadowdeep: rgba(15,30,90,0.45);

  /* ---- Coding-Terminal (1:1 aus code/code.html) ---- */
  --mono:           ui-monospace,"SF Mono","Cascadia Code","Fira Mono",Menlo,Consolas,monospace;
  --term-bg:        #0B1220;
  --term-panel:     #0F192E;
  --term-line:      #1E2C4A;
  --term-green:     #4ADE80;
  --term-green-dim: #166534;
  --term-muted:     #64748B;
  --term-amber:     #FBBF24;
}

/* =====================================================================
   THEMES (v2, 06.09.2026). Auswahl ueber <html data-theme="...">:
     aurora   = Default seit v2 (Lichtfeld, Milchglas, Outfit)
     oberwelt = Minecraft, freischaltbar ueber das Sparziel "Minecraft-Design"
   Der :root-Block oben bleibt der neutrale Basiswert (Ist-Stand-Farben) und
   ist Fallback, falls kein data-theme gesetzt ist.
   ===================================================================== */

/* =====================================================================
   Layout-Hygiene (v2, 06.09.2026): Sparziel-Karten buendig mit Hero und
   Regeln (shopGrid verliert im Ziel-Modus seine Klasse). Gilt fuer alle Themes.
   ===================================================================== */
#shopGrid:not(.shop-grid){padding:14px 18px 0;}
/* =====================================================================
   A · AURORA (final)
   Ein Lichtfeld traegt den Screen, alles darauf ist Milchglas.
   Boldness nur im Hintergrund; Karten, Typo, Buttons bleiben ruhig.
   ===================================================================== */
html[data-theme="aurora"]{
  --bg:#F3F1FC; --surface:rgba(255,255,255,.66); --text:#1B1340; --muted:#67608C;
  --primary:#5B2BD9; --primary-rgb:91,43,217; --accent:#F5A524; --accent-rgb:245,165,36;
  --success:#10B981; --success-rgb:16,185,129; --success-bg:#E4FAF1; --success-strong:#0B8A5F; --success-line:#A7F0D3;
  --error:#E11D48; --error-bg:#FDE7EC;
  --line:rgba(91,43,217,.12); --line-strong:#C6BEE8; --tint:rgba(91,43,217,.07);
  --progress-bg:rgba(91,43,217,.12);
  --radius-card:24px; --radius-control:16px; --radius-md:14px; --radius-sm:10px;
  --shadow-soft:0 10px 30px -18px rgba(43,20,120,.35);
  --shadow-card:0 18px 40px -24px rgba(43,20,120,.45);
  --font:'Outfit',system-ui,-apple-system,sans-serif;
  --au-glass:rgba(255,255,255,.66); --au-glass-line:rgba(255,255,255,.85);
  --au-hi:inset 0 1px 0 rgba(255,255,255,.9);
}
html[data-theme="aurora"]{background:#F3F1FC;}
html[data-theme="aurora"] body{background:transparent;}
/* Das Lichtfeld liegt als fixes Pseudo-Element hinter allem: es scrollt nicht mit,
   wiederholt sich nicht und bricht auf langen Seiten (Einstellungen, Shop) nicht ab. */
html[data-theme="aurora"] body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:
  linear-gradient(180deg,#F3F1FC 0,#F3F1FC env(safe-area-inset-top,0px),rgba(243,241,252,0) calc(env(safe-area-inset-top,0px) + 160px)),
  radial-gradient(60% 34% at 8% 0%,rgba(255,150,92,.45),transparent 70%),
  radial-gradient(50% 30% at 96% 4%,rgba(124,58,237,.42),transparent 70%),
  radial-gradient(70% 36% at 55% 26%,rgba(16,185,129,.20),transparent 72%),
  radial-gradient(60% 30% at 20% 70%,rgba(219,39,119,.16),transparent 72%),
  radial-gradient(50% 30% at 90% 88%,rgba(56,189,248,.22),transparent 72%),
  #F3F1FC;}
html[data-theme="aurora"] .screen{background:transparent;}
/* Kopfleiste ohne eigene Flaeche: kein Rand, kein Schatten, kein Tint mit Kante.
   Nur ein Hauch Weiss, der nach unten auf 0 laeuft, plus Blur fuer Inhalt, der
   beim Scrollen darunter durchlaeuft. Feld und Leiste gehen so nahtlos ineinander. */
html[data-theme="aurora"] .app-bar{position:static;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;
  border-bottom:none;box-shadow:none;}
html[data-theme="aurora"] .app-subbar-greeting{font-weight:700;letter-spacing:-.025em;color:#3B1AA6;}
html[data-theme="aurora"] .app-subbar-subtitle{color:#67608C;font-weight:600;}
/* Glas-Karten */
html[data-theme="aurora"] .task-card,html[data-theme="aurora"] .iv-card,html[data-theme="aurora"] .sp2-row,html[data-theme="aurora"] .sp2-more,html[data-theme="aurora"] .goal-card,html[data-theme="aurora"] .goal-done-row,
html[data-theme="aurora"] .earn-rules-card,html[data-theme="aurora"] .memory-card-home,html[data-theme="aurora"] .subject-hero,html[data-theme="aurora"] .shop-history-toggle,html[data-theme="aurora"] .set-group,html[data-theme="aurora"] .shop-item{
  background:var(--au-glass)!important;border:1px solid var(--au-glass-line)!important;
  backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);
  box-shadow:var(--shadow-card),var(--au-hi)!important;border-radius:var(--radius-card)!important;}
html[data-theme="aurora"] .sp2-strip{background:transparent!important;border:none!important;box-shadow:none!important;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0!important;}
html[data-theme="aurora"] .subject-hero{padding:14px 16px;margin:14px 16px 0;}
html[data-theme="aurora"] .dash-body{padding-top:14px;}
html[data-theme="aurora"] .sp2-body .tp-dash-card,html[data-theme="aurora"] .sp2-row,html[data-theme="aurora"] .sp2-more{margin-bottom:0;} /* ein Raster: 14px ueberall */
html[data-theme="aurora"] .sp2-year{background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.9);border-radius:18px;}
html[data-theme="aurora"] .sp2-year.now{background:rgba(91,43,217,.08);border-color:rgba(91,43,217,.18);}
html[data-theme="aurora"] .sp2-year.done{background:rgba(16,185,129,.10);border-color:rgba(16,185,129,.28);}
html[data-theme="aurora"] .sp2-year-ck{background:#10B981;}
html[data-theme="aurora"] .sp2-year-bar{background:rgba(27,19,64,.08);}
html[data-theme="aurora"] .sp2-year-bar i{background:linear-gradient(90deg,#10B981,#34D399)!important;}
html[data-theme="aurora"] .sp2-ic{background:rgba(91,43,217,.08);}
/* Fach-Kacheln: Fachfarbe bleibt, aber als lichtes Glas mit Oberlicht */
html[data-theme="aurora"] .mission-card{border-radius:24px!important;border:1px solid rgba(255,255,255,.35);
  box-shadow:0 22px 40px -22px rgba(27,19,64,.55),inset 0 1px 0 rgba(255,255,255,.45)!important;}
html[data-theme="aurora"] .mission-flag{background:rgba(255,255,255,.22)!important;border-radius:18px!important;}
html[data-theme="aurora"] .mission-name{font-weight:700;letter-spacing:-.02em;}
html[data-theme="aurora"] .vt-badge,html[data-theme="aurora"] .tp-hero-kick{background:rgba(255,255,255,.92)!important;color:#3B1AA6!important;border-radius:999px!important;font-weight:700;}
html[data-theme="aurora"] .vt-count{background:rgba(255,255,255,.18);color:#fff;border-radius:999px!important;}
html[data-theme="aurora"] .vt-bar,html[data-theme="aurora"] .progress-bar,html[data-theme="aurora"] .goal-bar{background:rgba(27,19,64,.18)!important;border-radius:999px!important;overflow:hidden;}
html[data-theme="aurora"] .vt-seg-s{background:linear-gradient(90deg,#34D399,#A7F3D0)!important;}
html[data-theme="aurora"] .vt-seg-g{background:linear-gradient(90deg,#F59E0B,#FCD34D)!important;}
html[data-theme="aurora"] .vt-seg-e{background:linear-gradient(90deg,#A855F7,#D8B4FE)!important;}
html[data-theme="aurora"] .vt-dot.vt-seg-n{background:rgba(255,255,255,.32)!important;}
html[data-theme="aurora"] .vt-mark{background:#FDE68A;}
html[data-theme="aurora"] .vt-big,html[data-theme="aurora"] .tp-kpi .v{font-weight:700;letter-spacing:-.04em;}
html[data-theme="aurora"] .mission-cta,html[data-theme="aurora"] .mc-tp-cta,html[data-theme="aurora"] .tp-dash-cta{border-radius:16px!important;font-weight:700;}
html[data-theme="aurora"] .mc-tp-cta,html[data-theme="aurora"] .tp-dash-cta{background:#fff!important;color:#3B1AA6!important;box-shadow:0 10px 24px -12px rgba(27,19,64,.6)!important;}
html[data-theme="aurora"] .mission-cta.bonus{background:rgba(255,255,255,.18)!important;color:#fff!important;border:1px solid rgba(255,255,255,.45);}
html[data-theme="aurora"] .mission-done-badge{background:rgba(255,255,255,.92);color:#0B8A5F;border-radius:999px;}
html[data-theme="aurora"] .mission-done-badge .check{background:#10B981;}
html[data-theme="aurora"] .mission-chev{color:#C4B5FD!important;}
html[data-theme="aurora"] .memory-card-icon{background:rgba(91,43,217,.08);border-radius:16px;}
html[data-theme="aurora"] .memory-card-title{color:#1B1340!important;}
html[data-theme="aurora"] .memory-card-sub{color:#8B2CE0!important;font-weight:700;}
/* Test-Karte auf der Fachseite */
html[data-theme="aurora"] .tp-dash-card{border-radius:24px!important;background:linear-gradient(150deg,#3B82F6 0%,#5B2BD9 60%,#8B2CE0 100%)!important;
  border:1px solid rgba(255,255,255,.35);box-shadow:0 24px 44px -24px rgba(27,19,64,.6),inset 0 1px 0 rgba(255,255,255,.45)!important;}
html[data-theme="aurora"] .tp-hero-date{font-weight:700;letter-spacing:-.02em;}
html[data-theme="aurora"] .tp-wack-chips span.pair{background:rgba(255,255,255,.94);border-radius:14px;color:#1B1340;}
html[data-theme="aurora"] .tp-wack-chips span.pair b{color:#1B1340;}
html[data-theme="aurora"] .tp-wack-chips span.pair i{color:#4B4570;opacity:1;}
html[data-theme="aurora"] .tp-wack-chips span.pair u{color:#BE123C;}
html[data-theme="aurora"] .tp-wack-t{color:rgba(255,255,255,.92);}
html[data-theme="aurora"] .tp-kpi{background:rgba(255,255,255,.14);border-radius:18px;}
html[data-theme="aurora"] .sp2-flag{background:rgba(91,43,217,.10)!important;color:#3B1AA6!important;border-radius:16px!important;font-weight:800;}
html[data-theme="aurora"] .sp2-strip-name{font-weight:700;letter-spacing:-.02em;}
html[data-theme="aurora"] .sp2-wk i{background:rgba(27,19,64,.10);}
html[data-theme="aurora"] .sp2-wk i.on{background:#10B981;}
html[data-theme="aurora"] .sp2-wk i.now{background:transparent;border:2px solid #5B2BD9;box-shadow:none;} /* heute = Ring, nicht gefuellt */
html[data-theme="aurora"] .sp2-btn{border-radius:14px;font-weight:700;}
html[data-theme="aurora"] .sp2-btn.ghost{background:rgba(91,43,217,.10);color:#3B1AA6;}
/* Uebung */
html[data-theme="aurora"] .task-phase{color:#67608C;}
html[data-theme="aurora"] .phase-dot{background:#8B2CE0;}
html[data-theme="aurora"] .task-word{font-weight:700;letter-spacing:-.03em;color:#1B1340;}
html[data-theme="aurora"] .audio-glow{background:linear-gradient(135deg,#5B2BD9,#8B2CE0);color:#fff;box-shadow:0 10px 22px -10px rgba(91,43,217,.7);}
html[data-theme="aurora"] .audio-glow svg{stroke:#fff;}
html[data-theme="aurora"] .btn-option{background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.9);border-radius:16px;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 6px 16px -12px rgba(27,19,64,.4);font-weight:600;color:#1B1340;}
/* BL-MC-SELECTED (07.09.2026): Die Theme-Overrides definierten .correct und
   .dimmed, aber nicht .selected. Weil "html[data-theme] .btn-option" hoeher
   spezifisch ist als ".btn-option.selected" aus index.htm, gewann der Grundstil
   und ein Antippen war visuell folgenlos. Jede Theme-Ebene braucht ihren
   eigenen Auswahl-Zustand. */
html[data-theme="aurora"] .btn-option.selected{background:rgba(91,43,217,.10);border:1px solid rgba(91,43,217,.55);
  box-shadow:0 0 0 3px rgba(91,43,217,.16),0 6px 16px -12px rgba(27,19,64,.4);color:#1B1340;font-weight:700;}
html[data-theme="aurora"] .btn-option.correct{background:rgba(209,250,229,.85);border-color:#10B981;color:#0B6E4F;}
/* BL-MC-WRONG (12.09.2026): gleiche Luecke wie BL-MC-SELECTED, diesmal beim
   Falsch-Zustand. .correct und .dimmed waren ueberschrieben, .wrong nicht — die
   Basisregel html[data-theme] .btn-option gewann, die angetippte falsche Option
   blieb optisch unveraendert und nur die richtige leuchtete gruen. */
html[data-theme="aurora"] .btn-option.wrong{background:rgba(253,231,236,.85);border:1px solid rgba(225,29,72,.45);color:#8A1030;}
html[data-theme="aurora"] .btn-option.dimmed{opacity:.5;}
html[data-theme="aurora"] .feedback-bar.good{background:rgba(209,250,229,.8);border:1px solid rgba(16,185,129,.35);color:#0B6E4F;border-radius:16px;}
html[data-theme="aurora"] .btn-primary{background:#5B2BD9;box-shadow:0 14px 28px -12px rgba(91,43,217,.8);border-radius:16px;font-weight:700;}
html[data-theme="aurora"] .action-footer{background:linear-gradient(0deg,rgba(255,255,255,.30) 0%,rgba(255,255,255,0) 100%);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:none;}
html[data-theme="aurora"] .progress-fill{background:linear-gradient(90deg,#5B2BD9,#DB2777)!important;}
html[data-theme="aurora"] .progress-fill-retry{background:#F5A524!important;}
html[data-theme="aurora"] .progress-meta{color:#67608C;}
/* Shop */
html[data-theme="aurora"] .balance-hero{background:linear-gradient(140deg,#5B2BD9 0%,#C026D3 55%,#F5A524 120%);border-radius:24px;
  border:1px solid rgba(255,255,255,.35);box-shadow:0 24px 44px -22px rgba(91,43,217,.8),inset 0 1px 0 rgba(255,255,255,.45);}
html[data-theme="aurora"] .balance-label{color:rgba(255,255,255,.85);}
html[data-theme="aurora"] .balance-amount{font-weight:700;letter-spacing:-.03em;}
html[data-theme="aurora"] .goal-card.goal-active{background:linear-gradient(160deg,rgba(228,250,241,.85),rgba(255,255,255,.66))!important;border-color:rgba(16,185,129,.35)!important;}
html[data-theme="aurora"] .goal-kicker{color:#0B8A5F;}
html[data-theme="aurora"] .goal-title{font-weight:700;letter-spacing:-.02em;color:#1B1340;}
html[data-theme="aurora"] .goal-bar i{background:linear-gradient(90deg,#10B981,#34D399)!important;box-shadow:none;}
html[data-theme="aurora"] .goal-emoji{background:rgba(255,255,255,.7);border-radius:20px;}
html[data-theme="aurora"] .goal-section-title{color:#67608C;}
html[data-theme="aurora"] .gd-ico{background:rgba(91,43,217,.08);border-radius:12px;}
html[data-theme="aurora"] .earn-card-title{color:#1B1340;}
html[data-theme="aurora"] .earn-val{color:#5B2BD9;font-weight:700;}
html[data-theme="aurora"] .shop-history-toggle{color:#3B1AA6;font-weight:700;}
html[data-theme="aurora"] .shop-header-pill,html[data-theme="aurora"] .leaderboard-header-pill,html[data-theme="aurora"] .back-btn{background:rgba(255,255,255,.66);
  border:1px solid rgba(255,255,255,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 6px 16px -10px rgba(27,19,64,.4);color:#1B1340;}
html[data-theme="aurora"] .shop-header-pill .sp-thumb-emoji{background:rgba(91,43,217,.08);}
html[data-theme="aurora"] .shop-header-pill .sp-bar2{background:rgba(27,19,64,.12);}
html[data-theme="aurora"] .shop-header-pill .sp-bar2 i{background:linear-gradient(90deg,#10B981,#34D399);}
/* Insights */
html[data-theme="aurora"] .iv-card-title{font-weight:700;letter-spacing:-.02em;color:#1B1340;}
html[data-theme="aurora"] .iv-ring-num,html[data-theme="aurora"] .iv-bucket-num{font-weight:700;color:#1B1340;}
html[data-theme="aurora"] .iv-bucket-pct{color:#67608C;}
html[data-theme="aurora"] .iv-leech-row{border-color:rgba(91,43,217,.12);}
html[data-theme="aurora"] .iv-leech-de{color:#1B1340;}
html[data-theme="aurora"] .iv-leech-tick.ok{background:#10B981;}
html[data-theme="aurora"] .iv-leech-tick.bad{background:#F43F5E;}


/* Aurora-Fachpalette: Farbton bleibt, Pastell-Karten (nicht erledigt) und
   Verlaufs-Karten (erledigt) laufen ueber SUBJECT_COLORS = diese Tokens. */
html[data-theme="aurora"]{
  --sub-englisch-color:#3B82F6; --sub-englisch-color2:#4F46E5; --sub-englisch-bg:#EEF2FF; --sub-englisch-bg2:#E0E7FF; --sub-englisch-border:#C7D2FE; --sub-englisch-shadow:rgba(79,70,229,.30); --sub-englisch-shadowdeep:rgba(49,46,129,.45);
  --sub-spanisch-color:#F43F5E; --sub-spanisch-color2:#BE123C; --sub-spanisch-bg:#FFF1F2; --sub-spanisch-bg2:#FFE4E6; --sub-spanisch-border:#FECDD3; --sub-spanisch-shadow:rgba(190,18,60,.30); --sub-spanisch-shadowdeep:rgba(136,19,55,.45);
  --sub-cheatcodes-color:#14B8A6; --sub-cheatcodes-color2:#0F766E; --sub-cheatcodes-bg:#F0FDFA; --sub-cheatcodes-bg2:#CCFBF1; --sub-cheatcodes-border:#99F6E4; --sub-cheatcodes-shadow:rgba(15,118,110,.30); --sub-cheatcodes-shadowdeep:rgba(19,78,74,.45);
  --sub-hollaendisch-color:#FB923C; --sub-hollaendisch-color2:#C2410C; --sub-hollaendisch-bg:#FFF7ED; --sub-hollaendisch-bg2:#FFEDD5; --sub-hollaendisch-border:#FED7AA; --sub-hollaendisch-shadow:rgba(194,65,12,.30); --sub-hollaendisch-shadowdeep:rgba(124,45,18,.45);
  --sub-franzoesisch-color:#8B5CF6; --sub-franzoesisch-color2:#6D28D9; --sub-franzoesisch-bg:#F5F3FF; --sub-franzoesisch-bg2:#EDE9FE; --sub-franzoesisch-border:#DDD6FE; --sub-franzoesisch-shadow:rgba(109,40,217,.30); --sub-franzoesisch-shadowdeep:rgba(76,29,149,.45);
  --sub-deutsch-color:#F59E0B; --sub-deutsch-color2:#B45309; --sub-deutsch-bg:#FFFBEB; --sub-deutsch-bg2:#FEF3C7; --sub-deutsch-border:#FDE68A; --sub-deutsch-shadow:rgba(180,83,9,.30); --sub-deutsch-shadowdeep:rgba(120,53,15,.45);
  --sub-code-grundlagen-color:#22C55E; --sub-code-grundlagen-color2:#15803D; --sub-code-grundlagen-bg:#F0FDF4; --sub-code-grundlagen-bg2:#DCFCE7; --sub-code-grundlagen-border:#BBF7D0;
  --sub-default-color:#5B2BD9; --sub-default-color2:#3B1AA6; --sub-default-bg:#F3F1FC; --sub-default-bg2:#E9E5FA; --sub-default-border:#D8D0F5; --sub-default-shadow:rgba(91,43,217,.30); --sub-default-shadowdeep:rgba(59,26,166,.45);
}

/* =====================================================================
   O · OBERWELT (final)
   Minecraft ganz: Himmel, Gras-Kante, Stein-Karten mit Blockrelief,
   Inventar-Buttons, XP-Leisten. Pixel-Schrift groesser als in v2,
   Fliesstext bleibt Nunito 15px.
   ===================================================================== */
html[data-theme="oberwelt"]{
  --bg:#9CC7EF; --surface:#D6D6D6; --text:#1B1B1B; --muted:#3F3F3F;
  --primary:#5D9B3A; --primary-rgb:93,155,58; --accent:#FCDC5F; --accent-rgb:252,220,95;
  --success:#5D9B3A; --success-rgb:93,155,58; --success-bg:#D9F0C2; --success-strong:#3E7A22; --success-line:#7CFF3E;
  --error:#B02E26; --error-bg:#F2D3D1;
  --line:#1B1B1B; --line-strong:#1B1B1B; --tint:#BFBFBF; --progress-bg:#2B2B2B;
  --radius-card:0px; --radius-control:0px; --radius-md:0px; --radius-sm:0px; --radius-xs:0px; --radius-pill:0px;
  --shadow-soft:none; --shadow-card:none;
  --font:'Nunito',system-ui,-apple-system,sans-serif;
  --mc-ink:#1B1B1B; --mc-stone:#D6D6D6; --mc-stone-dk:#8F8F8F; --mc-grass:#5D9B3A; --mc-dirt:#7A5230;
  --mc-xp:#7CFF3E; --mc-gold:#FCDC5F; --mc-lapis:#2F5AA8; --mc-red:#B02E26; --mc-emerald:#17A55C; --mc-obsidian:#241A38;
  --mc-bevel:inset 4px 4px 0 rgba(255,255,255,.45),inset -4px -4px 0 rgba(0,0,0,.30);
  --mc-bevel-dk:inset 4px 4px 0 rgba(255,255,255,.20),inset -4px -4px 0 rgba(0,0,0,.35);
  --mc-head:'Pixelify Sans',monospace; --mc-num:'Silkscreen',monospace;
}
html[data-theme="oberwelt"]{background:#CFE6F8;}
html[data-theme="oberwelt"] body{background:transparent;}
html[data-theme="oberwelt"] body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:
  linear-gradient(180deg,#7FB5E8 0,#7FB5E8 env(safe-area-inset-top,0px),#A9D2F3 55%,#CFE6F8 100%);}
html[data-theme="oberwelt"] .screen{background:transparent;}
html[data-theme="oberwelt"] *{border-radius:0!important;}
html[data-theme="oberwelt"] img{image-rendering:pixelated;}
html[data-theme="oberwelt"] body{font-size:15px;}
/* Kopf: Stein-Leiste, darunter Gras auf Erde */
html[data-theme="oberwelt"] .app-bar{background:#5A5A5A;border-bottom:none;padding-bottom:30px;
  box-shadow:inset 0 4px 0 rgba(255,255,255,.16),inset 0 -12px 0 var(--mc-dirt),inset 0 -18px 0 var(--mc-grass);}
html[data-theme="oberwelt"] .app-subbar-greeting{font-family:var(--mc-head);font-weight:700;color:var(--mc-gold);font-size:28px;line-height:1.15;
  text-shadow:3px 3px 0 var(--mc-ink);letter-spacing:.01em;}
html[data-theme="oberwelt"] .app-subbar-subtitle{font-family:var(--mc-num);color:#E6E6E6;font-size:12px;letter-spacing:.04em;text-shadow:2px 2px 0 rgba(0,0,0,.5);}
html[data-theme="oberwelt"] .wordmark-small{filter:invert(1) brightness(1.9) contrast(1.1);}
/* Stein-Karten mit Relief */
html[data-theme="oberwelt"] .task-card,html[data-theme="oberwelt"] .iv-card,html[data-theme="oberwelt"] .sp2-row,html[data-theme="oberwelt"] .sp2-more,html[data-theme="oberwelt"] .goal-card,html[data-theme="oberwelt"] .goal-done-row,
html[data-theme="oberwelt"] .earn-rules-card,html[data-theme="oberwelt"] .memory-card-home,html[data-theme="oberwelt"] .subject-hero,html[data-theme="oberwelt"] .shop-history-toggle,html[data-theme="oberwelt"] .set-group,html[data-theme="oberwelt"] .shop-item{
  background:var(--mc-stone)!important;border:3px solid var(--mc-ink)!important;box-shadow:var(--mc-bevel)!important;}
html[data-theme="oberwelt"] .sp2-strip{background:transparent!important;border:none!important;box-shadow:none!important;padding:0!important;}
html[data-theme="oberwelt"] .subject-hero{padding:14px 16px;margin:14px 16px 0;}
html[data-theme="oberwelt"] .dash-body{padding-top:14px;}
html[data-theme="oberwelt"] .sp2-body .tp-dash-card,html[data-theme="oberwelt"] .sp2-row,html[data-theme="oberwelt"] .sp2-more{margin-bottom:0;} /* ein Raster: 14px ueberall */
html[data-theme="oberwelt"] .sp2-year{background:#C2C2C2;border:3px solid var(--mc-ink);box-shadow:var(--mc-bevel);}
html[data-theme="oberwelt"] .sp2-year.done{background:#BFE39B;}
html[data-theme="oberwelt"] .sp2-year.now{background:#C7DAF3;}
html[data-theme="oberwelt"] .sp2-year-ck{background:var(--mc-grass);border:2px solid var(--mc-ink);}
html[data-theme="oberwelt"] .sp2-year-ck.now{background:var(--mc-lapis);}
html[data-theme="oberwelt"] .sp2-ic{background:#A9A9A9;border:2px solid var(--mc-ink);box-shadow:var(--mc-bevel);}
/* Typo: Pixel-Schrift nur als Display (Begruessung, Fachname, Vokabel, grosse Zahlen,
   Datum, Sparziel). Alles Lesbare bleibt Nunito, fett und mindestens 15px. */
html[data-theme="oberwelt"] .app-subbar-greeting,html[data-theme="oberwelt"] .mission-name,html[data-theme="oberwelt"] .tp-hero-date,html[data-theme="oberwelt"] .task-word,html[data-theme="oberwelt"] .balance-amount,
html[data-theme="oberwelt"] .vt-big,html[data-theme="oberwelt"] .tp-kpi .v,html[data-theme="oberwelt"] .goal-title{font-family:var(--mc-head);font-weight:700;letter-spacing:.01em;}
html[data-theme="oberwelt"] .mission-name{font-size:24px;}
html[data-theme="oberwelt"] .mission-card.done .mission-name{text-shadow:3px 3px 0 rgba(0,0,0,.5);}
html[data-theme="oberwelt"] .mini-row .mission-name{font-family:var(--font);font-weight:800;font-size:15px;letter-spacing:-.01em;}
html[data-theme="oberwelt"] .tp-hero-date{font-size:27px;text-shadow:3px 3px 0 rgba(0,0,0,.5);}
html[data-theme="oberwelt"] .task-word{font-size:36px;}
html[data-theme="oberwelt"] .goal-title{font-size:28px;}
html[data-theme="oberwelt"] .vt-big,html[data-theme="oberwelt"] .tp-kpi .v{font-size:40px;letter-spacing:-.02em;}
html[data-theme="oberwelt"] .balance-amount{font-size:36px;color:var(--mc-gold);text-shadow:3px 3px 0 var(--mc-ink);}
/* Karten-Titel, Labels, Buttons, Ziffern: Nunito 800 */
html[data-theme="oberwelt"] .iv-card-title,html[data-theme="oberwelt"] .sp2-more-head,html[data-theme="oberwelt"] .memory-card-title,html[data-theme="oberwelt"] .sp2-t,html[data-theme="oberwelt"] .sp2-strip-name{font-size:19px;font-weight:800;}
html[data-theme="oberwelt"] .goal-kicker,html[data-theme="oberwelt"] .earn-card-title,html[data-theme="oberwelt"] .goal-section-title,html[data-theme="oberwelt"] .tp-wack-t,html[data-theme="oberwelt"] .balance-label,html[data-theme="oberwelt"] .task-phase{font-size:14px;font-weight:800;letter-spacing:.06em;}
html[data-theme="oberwelt"] .task-prompt,html[data-theme="oberwelt"] .sp2-s,html[data-theme="oberwelt"] .goal-desc,html[data-theme="oberwelt"] .memory-card-sub,html[data-theme="oberwelt"] .fb-explain,html[data-theme="oberwelt"] .earn-label,
html[data-theme="oberwelt"] .iv-insight-block,html[data-theme="oberwelt"] .iv-ring-row,html[data-theme="oberwelt"] .iv-bucket-row,html[data-theme="oberwelt"] .sp2-year-s,html[data-theme="oberwelt"] .sp2-year-t,html[data-theme="oberwelt"] .tp-hero-when,
html[data-theme="oberwelt"] .tp-scope,html[data-theme="oberwelt"] .vt-sub,html[data-theme="oberwelt"] .vt-of,html[data-theme="oberwelt"] .vt-legend,html[data-theme="oberwelt"] .tp-kpi .k,html[data-theme="oberwelt"] .gd-title,html[data-theme="oberwelt"] .iv-leech-de,html[data-theme="oberwelt"] .iv-leech-fl{font-size:15px;}
html[data-theme="oberwelt"] .iv-ring-num,html[data-theme="oberwelt"] .iv-bucket-num,html[data-theme="oberwelt"] .earn-val,html[data-theme="oberwelt"] .sp2-year-p,html[data-theme="oberwelt"] .lb-pill-rank,html[data-theme="oberwelt"] .goal-nums,html[data-theme="oberwelt"] .vt-count,
html[data-theme="oberwelt"] .progress-meta,html[data-theme="oberwelt"] .sp2-strip-sub,html[data-theme="oberwelt"] .gd-date,html[data-theme="oberwelt"] .iv-bucket-pct,html[data-theme="oberwelt"] .tp-wack .pair u{font-family:var(--font);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:0;}
html[data-theme="oberwelt"] .goal-nums,html[data-theme="oberwelt"] .sp2-year-p,html[data-theme="oberwelt"] .progress-meta,html[data-theme="oberwelt"] .gd-date,html[data-theme="oberwelt"] .sp2-strip-sub{font-size:14px;}
html[data-theme="oberwelt"] .vt-count{font-size:13px;}
html[data-theme="oberwelt"] .earn-val,html[data-theme="oberwelt"] .iv-bucket-num{font-size:16px;color:var(--mc-ink);}
html[data-theme="oberwelt"] .iv-ring-num{font-size:14px;color:var(--mc-ink);}
html[data-theme="oberwelt"] .iv-ring-pct{font-size:13px;}
html[data-theme="oberwelt"] .iv-ring-row{font-size:14px;}
html[data-theme="oberwelt"] .lb-pill-rank{font-size:15px;}
html[data-theme="oberwelt"] .app-subbar-subtitle{font-family:var(--font);font-weight:800;font-size:14px;letter-spacing:.02em;}
/* Fach-Kacheln = Bloecke */
html[data-theme="oberwelt"] .mission-card{border:3px solid var(--mc-ink)!important;box-shadow:var(--mc-bevel-dk)!important;}
html[data-theme="oberwelt"] .mission-flag{background:#3A3A3A!important;border:3px solid var(--mc-ink);
  box-shadow:inset 3px 3px 0 rgba(255,255,255,.18),inset -3px -3px 0 rgba(0,0,0,.4);}
html[data-theme="oberwelt"] .mission-chev{color:var(--mc-gold)!important;}
html[data-theme="oberwelt"] .vt-badge,html[data-theme="oberwelt"] .tp-hero-kick{background:var(--mc-gold)!important;color:var(--mc-ink)!important;border:2px solid var(--mc-ink);font-size:14px;font-weight:800;}
html[data-theme="oberwelt"] .vt-count{background:var(--mc-ink);color:var(--mc-gold);border:2px solid #000;}
html[data-theme="oberwelt"] .vt-sub,html[data-theme="oberwelt"] .vt-of,html[data-theme="oberwelt"] .vt-legend,html[data-theme="oberwelt"] .tp-hero-when,html[data-theme="oberwelt"] .tp-scope,html[data-theme="oberwelt"] .tp-kpi .k{color:#EAEAEA!important;text-shadow:1px 1px 0 rgba(0,0,0,.5);}
/* XP-Leisten */
html[data-theme="oberwelt"] .vt-bar,html[data-theme="oberwelt"] .progress-bar,html[data-theme="oberwelt"] .goal-bar,html[data-theme="oberwelt"] .sp2-year-bar{
  background:#2B2B2B!important;border:3px solid var(--mc-ink);height:18px;overflow:hidden;
  background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.10) 0 6px,transparent 6px 8px);}
html[data-theme="oberwelt"] .vt-seg-s,html[data-theme="oberwelt"] .progress-fill,html[data-theme="oberwelt"] .goal-bar i,html[data-theme="oberwelt"] .sp2-year-bar i{
  background:var(--mc-xp)!important;box-shadow:inset 0 -5px 0 rgba(0,0,0,.35),inset 0 3px 0 rgba(255,255,255,.35);}
html[data-theme="oberwelt"] .vt-seg-g{background:#E0A526!important;}
html[data-theme="oberwelt"] .vt-seg-e{background:#8E5BC7!important;}
html[data-theme="oberwelt"] .vt-mark{background:var(--mc-gold);width:4px;}
html[data-theme="oberwelt"] .progress-fill-retry{background:var(--mc-gold)!important;}
html[data-theme="oberwelt"] .tp-kpi{background:rgba(0,0,0,.22);border:2px solid rgba(0,0,0,.4);}
/* Inventar-Buttons */
html[data-theme="oberwelt"] .mission-cta,html[data-theme="oberwelt"] .mc-tp-cta,html[data-theme="oberwelt"] .tp-dash-cta,html[data-theme="oberwelt"] .btn-primary,html[data-theme="oberwelt"] .sp2-btn{
  background:var(--mc-grass)!important;color:#fff!important;text-shadow:2px 2px 0 rgba(0,0,0,.5);font-size:17px;font-weight:800;font-family:var(--font);
  border:3px solid var(--mc-ink)!important;box-shadow:inset 3px 3px 0 rgba(255,255,255,.35),inset -3px -3px 0 rgba(0,0,0,.35)!important;}
html[data-theme="oberwelt"] .btn-primary{font-size:19px;}
html[data-theme="oberwelt"] .mission-cta.bonus{background:var(--mc-gold)!important;color:var(--mc-ink)!important;text-shadow:none;}
html[data-theme="oberwelt"] .mission-done-badge{background:#4E4E4E;color:var(--mc-xp);border:3px solid var(--mc-ink);font-size:16px;font-weight:800;text-shadow:2px 2px 0 rgba(0,0,0,.5);}
html[data-theme="oberwelt"] .mission-done-badge .check{background:var(--mc-grass);border:2px solid var(--mc-ink);}
html[data-theme="oberwelt"] .tp-dash-card{background:var(--mc-lapis)!important;border:3px solid var(--mc-ink)!important;box-shadow:var(--mc-bevel-dk)!important;}
html[data-theme="oberwelt"] .tp-wack .pair,html[data-theme="oberwelt"] .tp-wack span{background:#1B1B1B;color:#F0F0F0;border:2px solid #000;font-size:15px;}
html[data-theme="oberwelt"] .tp-wack .pair u{color:var(--mc-gold);}
/* Uebung */
html[data-theme="oberwelt"] .btn-option{background:#C2C2C2!important;border:3px solid var(--mc-ink)!important;color:var(--mc-ink);font-size:17px;font-weight:800;
  box-shadow:inset 3px 3px 0 rgba(255,255,255,.35),inset -3px -3px 0 rgba(0,0,0,.30)!important;}
/* BL-MC-SELECTED: Basisregel arbeitet mit !important, der Auswahl-Zustand
   muss deshalb ebenfalls !important tragen. Lapis = Auswahl, Gras = richtig. */
html[data-theme="oberwelt"] .btn-option.selected{background:var(--mc-lapis)!important;color:#fff!important;
  text-shadow:2px 2px 0 rgba(0,0,0,.45);}
html[data-theme="oberwelt"] .btn-option.correct{background:var(--mc-grass)!important;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.45);}
html[data-theme="oberwelt"] .btn-option.wrong{background:var(--mc-red)!important;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.45);}
html[data-theme="oberwelt"] .btn-option.dimmed{opacity:.6;}
html[data-theme="oberwelt"] .task-phase{color:#3F3F3F;}
html[data-theme="oberwelt"] .phase-dot{background:var(--mc-grass);border:2px solid var(--mc-ink);}
html[data-theme="oberwelt"] .audio-glow{background:var(--mc-grass);border:3px solid var(--mc-ink);color:#fff;box-shadow:var(--mc-bevel);}
html[data-theme="oberwelt"] .audio-glow svg{stroke:#fff;}
html[data-theme="oberwelt"] .action-footer{background:#5A5A5A;border-top:none;box-shadow:inset 0 6px 0 var(--mc-grass),inset 0 12px 0 var(--mc-dirt);padding-top:16px;}
html[data-theme="oberwelt"] .feedback-bar.good{background:#BFE39B;border:3px solid var(--mc-ink);color:#1D3D0F;font-size:15px;box-shadow:var(--mc-bevel);}
html[data-theme="oberwelt"] .fb-icon{background:var(--mc-grass);border:2px solid var(--mc-ink);color:#fff;}
html[data-theme="oberwelt"] .progress-meta{color:#EAEAEA;text-shadow:1px 1px 0 rgba(0,0,0,.5);}
/* Shop */
html[data-theme="oberwelt"] .balance-hero{background:var(--mc-obsidian)!important;border:3px solid var(--mc-ink);box-shadow:var(--mc-bevel-dk);}
html[data-theme="oberwelt"] .balance-label{color:#D6D6D6;}
html[data-theme="oberwelt"] .goal-card.goal-active{background:var(--mc-stone)!important;}
html[data-theme="oberwelt"] .goal-emoji{background:#A9A9A9;border:3px solid var(--mc-ink);box-shadow:var(--mc-bevel);}
html[data-theme="oberwelt"] .gd-ico{background:#3A3A3A;border:2px solid var(--mc-ink);}
html[data-theme="oberwelt"] .goal-nums .muted{color:#3F3F3F;}
html[data-theme="oberwelt"] .shop-history-toggle{font-weight:800;font-size:16px;color:var(--mc-ink);}
html[data-theme="oberwelt"] .shop-header-pill,html[data-theme="oberwelt"] .leaderboard-header-pill,html[data-theme="oberwelt"] .back-btn{
  background:#A9A9A9;color:var(--mc-ink);border:3px solid var(--mc-ink);font-weight:800;
  box-shadow:inset 3px 3px 0 rgba(255,255,255,.35),inset -3px -3px 0 rgba(0,0,0,.30);}
html[data-theme="oberwelt"] .shop-header-pill .sp-thumb-emoji{background:#3A3A3A;}
html[data-theme="oberwelt"] .shop-header-pill .sp-rest,html[data-theme="oberwelt"] .shop-header-pill .sp-rest small{color:var(--mc-ink);font-size:13px;font-weight:800;}
html[data-theme="oberwelt"] .shop-header-pill .sp-bar2{background:#2B2B2B;}
html[data-theme="oberwelt"] .shop-header-pill .sp-bar2 i{background:var(--mc-xp);}
html[data-theme="oberwelt"] .sp2-flag{background:var(--mc-lapis)!important;color:#fff!important;border:3px solid var(--mc-ink);font-weight:900;font-size:16px;}
html[data-theme="oberwelt"] .sp2-wk i{background:#2B2B2B;border:2px solid var(--mc-ink);}
html[data-theme="oberwelt"] .sp2-wk i.on{background:var(--mc-xp);}
html[data-theme="oberwelt"] .sp2-wk i.now{background:transparent;border-color:var(--mc-gold);} /* heute = Rahmen, nicht gefuellt */
html[data-theme="oberwelt"] .memory-card-home{background:#A9A9A9!important;}
html[data-theme="oberwelt"] .memory-card-icon{background:#3A3A3A;border:2px solid var(--mc-ink);}
html[data-theme="oberwelt"] .memory-card-title{color:var(--mc-ink)!important;}
html[data-theme="oberwelt"] .memory-card-sub{color:#3E7A22!important;font-weight:800;}
/* Insights */
html[data-theme="oberwelt"] .iv-leech-tick{border:2px solid var(--mc-ink);}
html[data-theme="oberwelt"] .iv-leech-tick.ok{background:var(--mc-xp);}
html[data-theme="oberwelt"] .iv-leech-tick.bad{background:var(--mc-red);}
html[data-theme="oberwelt"] .iv-leech-row{border-color:#8F8F8F;}
html[data-theme="oberwelt"] .iv-ring-dot,html[data-theme="oberwelt"] .iv-bucket-dot{border:2px solid var(--mc-ink);}

/* Oberwelt-Fachpalette: flache Bloecke (color = color2), helle Stein-Toene fuer
   nicht erledigte Karten. Lapis, Redstone, Emerald, Kupfer, Amethyst, Gold, Obsidian. */
html[data-theme="oberwelt"]{
  --sub-englisch-color:#2F5AA8; --sub-englisch-color2:#2F5AA8; --sub-englisch-bg:#C7DAF3; --sub-englisch-bg2:#C7DAF3; --sub-englisch-border:#1B1B1B; --sub-englisch-shadow:rgba(0,0,0,0); --sub-englisch-shadowdeep:rgba(0,0,0,0);
  --sub-spanisch-color:#B02E26; --sub-spanisch-color2:#B02E26; --sub-spanisch-bg:#F1CFCB; --sub-spanisch-bg2:#F1CFCB; --sub-spanisch-border:#1B1B1B; --sub-spanisch-shadow:rgba(0,0,0,0); --sub-spanisch-shadowdeep:rgba(0,0,0,0);
  --sub-cheatcodes-color:#17A55C; --sub-cheatcodes-color2:#17A55C; --sub-cheatcodes-bg:#C5EAD3; --sub-cheatcodes-bg2:#C5EAD3; --sub-cheatcodes-border:#1B1B1B; --sub-cheatcodes-shadow:rgba(0,0,0,0); --sub-cheatcodes-shadowdeep:rgba(0,0,0,0);
  --sub-hollaendisch-color:#C2410C; --sub-hollaendisch-color2:#C2410C; --sub-hollaendisch-bg:#F5D6C2; --sub-hollaendisch-bg2:#F5D6C2; --sub-hollaendisch-border:#1B1B1B; --sub-hollaendisch-shadow:rgba(0,0,0,0); --sub-hollaendisch-shadowdeep:rgba(0,0,0,0);
  --sub-franzoesisch-color:#7C3AED; --sub-franzoesisch-color2:#7C3AED; --sub-franzoesisch-bg:#DDD0F5; --sub-franzoesisch-bg2:#DDD0F5; --sub-franzoesisch-border:#1B1B1B; --sub-franzoesisch-shadow:rgba(0,0,0,0); --sub-franzoesisch-shadowdeep:rgba(0,0,0,0);
  --sub-deutsch-color:#B8860B; --sub-deutsch-color2:#B8860B; --sub-deutsch-bg:#F1E3B3; --sub-deutsch-bg2:#F1E3B3; --sub-deutsch-border:#1B1B1B; --sub-deutsch-shadow:rgba(0,0,0,0); --sub-deutsch-shadowdeep:rgba(0,0,0,0);
  --sub-code-grundlagen-color:#241A38; --sub-code-grundlagen-color2:#241A38; --sub-code-grundlagen-bg:#CFCADB; --sub-code-grundlagen-bg2:#CFCADB; --sub-code-grundlagen-border:#1B1B1B;
  --sub-default-color:#5A5A5A; --sub-default-color2:#5A5A5A; --sub-default-bg:#D6D6D6; --sub-default-bg2:#D6D6D6; --sub-default-border:#1B1B1B; --sub-default-shadow:rgba(0,0,0,0); --sub-default-shadowdeep:rgba(0,0,0,0);
}

/* Inhalt beginnt auf allen Screens 14px unter der Kopfleiste (Aurora + Oberwelt) */
html[data-theme="aurora"] .subjects-body,html[data-theme="oberwelt"] .subjects-body{padding-top:14px;}
html[data-theme="aurora"] .balance-hero,html[data-theme="oberwelt"] .balance-hero{margin-top:14px;}
/* Home: ein Raster. Zeilen und Karten ohne eigene Unterabstaende, .subjects-body gap uebernimmt. */
html[data-theme="aurora"] .daily-challenges-row,html[data-theme="oberwelt"] .daily-challenges-row,
html[data-theme="aurora"] .mini-row,html[data-theme="oberwelt"] .mini-row{margin-bottom:0;}
html[data-theme="aurora"] .daily-challenges-row > .memory-card-home,html[data-theme="oberwelt"] .daily-challenges-row > .memory-card-home{margin-bottom:0;}
html[data-theme="aurora"] .subjects-body,html[data-theme="oberwelt"] .subjects-body{gap:14px;}

/* ══════════════════════════════════════════════════════════════
   BL-GOAL-MOMENT (13.09.2026) — Zielmoment: Pokal, Rueckblick,
   Bestell-Stempel, Medaillen-Sammlung, Nachglueh-Streifen.
   Alle Farben, Groessen und Radien NUR hier: shop.js und index.htm
   liegen exakt auf ihrem Ratchet-Limit (smoke_design_tokens.php)
   und duerfen keinen harten Wert mehr dazubekommen.
   ══════════════════════════════════════════════════════════════ */
:root{
  --fs-2xs:10px; --fs-num:23px; --fs-hero:44px;
  --trophy-a:#FFF6E2; --trophy-b:#FFEFC9; --trophy-c:#F7E9FB;
  --trophy-line:rgba(245,165,36,.34);
  --trophy-ink:#8A6210; --trophy-kick:#9A6400; --trophy-foot:#6B4A08;
  --trophy-shadow:0 22px 44px -26px rgba(120,80,10,.55);
  --trophy-glass:rgba(255,255,255,.66); --trophy-glass-line:rgba(255,255,255,.90);
  --trophy-drop:drop-shadow(0 14px 18px rgba(90,60,10,.28));
  --stamp-done-bg:rgba(16,185,129,.14); --stamp-done-line:rgba(16,185,129,.42); --stamp-done-ink:#06694B;
  --stamp-wait-bg:rgba(255,255,255,.62); --stamp-wait-line:rgba(154,100,0,.30); --stamp-wait-ink:#9A6400;
  --stamp-rail:rgba(154,100,0,.30); --stamp-rail-done:rgba(16,185,129,.45);
  --vault-a:#2B2154; --vault-b:#1A1236; --vault-c:#140E2A;
  --vault-glow:rgba(245,165,36,.24);
  --vault-head:#EBDDFF; --vault-sub:#9C8DD0; --vault-name:#EFE8FF; --vault-date:#8D7FC4;
  --vault-shadow:0 20px 44px -26px rgba(10,4,40,.90);
  --medal-ring:conic-gradient(from 135deg,#FBE6AE,#D9A93F 22%,#8C6A1E 44%,#FBE6AE 63%,#C9992F 82%,#F7D98C);
  --medal-disc:radial-gradient(circle at 38% 30%,#FFFFFF,#EDE9FB 72%);
  --medal-shadow:0 12px 22px -12px rgba(0,0,0,.85);
  --medal-chip:linear-gradient(180deg,#F7D98C,#D9A93F); --medal-chip-ink:#160F2E;
  --medal-ghost-line:rgba(201,184,255,.32); --medal-ghost-bg:rgba(255,255,255,.04); --medal-ghost-ink:#7E6FB4;
  --afterglow-a:#FFF7E8; --afterglow-b:#FBF1FB; --afterglow-line:rgba(245,165,36,.30);
}
/* Oberwelt: derselbe Aufbau in Minecraft-Material. Gold bleibt Gold,
   das Panel wird Obsidian, die Scheibe Stein, keine weichen Verlaeufe. */
html[data-theme="oberwelt"]{
  --trophy-a:#FFF3C4; --trophy-b:#F6E08E; --trophy-c:#E8E2D2;
  --trophy-line:var(--mc-gold);
  --trophy-ink:#5A3E06; --trophy-kick:#5A3E06; --trophy-foot:#5A3E06;
  --trophy-shadow:var(--mc-bevel);
  --trophy-glass:rgba(255,255,255,.72); --trophy-glass-line:rgba(0,0,0,.18);
  --trophy-drop:none;
  --stamp-done-bg:rgba(23,165,92,.20); --stamp-done-line:var(--mc-emerald); --stamp-done-ink:#0B4F2C;
  --stamp-wait-bg:rgba(255,255,255,.70); --stamp-wait-line:var(--mc-dirt); --stamp-wait-ink:#5A3E06;
  --stamp-rail:var(--mc-stone-dk); --stamp-rail-done:var(--mc-emerald);
  --vault-a:#3A3A3A; --vault-b:#2A2A2A; --vault-c:var(--mc-ink);
  --vault-glow:rgba(252,220,95,.22);
  --vault-head:var(--mc-gold); --vault-sub:var(--mc-stone); --vault-name:var(--mc-stone); --vault-date:var(--mc-stone-dk);
  --vault-shadow:var(--mc-bevel-dk);
  --medal-ring:linear-gradient(180deg,#FCDC5F,#B88A1E);
  --medal-disc:linear-gradient(180deg,#E8E8E8,#BDBDBD);
  --medal-shadow:var(--mc-bevel-dk);
  --medal-chip:linear-gradient(180deg,#FCDC5F,#C79B22); --medal-chip-ink:var(--mc-ink);
  --medal-ghost-line:var(--mc-stone-dk); --medal-ghost-bg:rgba(255,255,255,.06); --medal-ghost-ink:var(--mc-stone-dk);
  --afterglow-a:#FFF3C4; --afterglow-b:#EFE7D2; --afterglow-line:var(--mc-gold);
}

/* ── BL-GOAL-MOMENT Teil 2 (13.09.2026): Vollbild-Feier nach der Session,
   die das Sparziel voll gemacht hat. Liegt als Overlay ueber dem
   Finish-Screen (shop.js), deshalb gehoeren die Farben hierher. */
:root{
  --bang-a:#FFF3D6; --bang-b:#FBE7C4; --bang-c:#EFE2FB;
  --bang-ray:repeating-conic-gradient(from 0deg,rgba(245,165,36,.78) 0 7deg,transparent 7deg 24deg);
  --bang-word:linear-gradient(180deg,#7A4A00,#C98A08 45%,#8A5A00);
  --bang-foot:#6B4A08;
  --bang-chip:rgba(255,255,255,.72); --bang-chip-line:rgba(245,165,36,.45);
  --bang-q:rgba(255,255,255,.66); --bang-q-line:rgba(255,255,255,.90);
  --bang-btn-shadow:0 14px 26px -16px rgba(91,43,217,.9);
}
html[data-theme="oberwelt"]{
  --bang-a:#FFF3C4; --bang-b:#F6E08E; --bang-c:#E8E2D2;
  --bang-ray:repeating-conic-gradient(from 0deg,rgba(252,220,95,.85) 0 7deg,transparent 7deg 24deg);
  --bang-word:linear-gradient(180deg,#5A3E06,#8A6210 45%,#5A3E06);
  --bang-foot:#5A3E06;
  --bang-chip:rgba(255,255,255,.80); --bang-chip-line:var(--mc-gold);
  --bang-q:rgba(255,255,255,.78); --bang-q-line:rgba(0,0,0,.18);
  --bang-btn-shadow:var(--mc-bevel-dk);
}
