html {
    font-size: calc(16px * var(--font-scale, 1));
}

html[data-theme="museum"] { --bg:#181713; --surface:#24221b; --surface-2:#302b20; --text:#f5f0e4; --muted:#c7bda9; --gold:#d5aa61; --gold-2:#f1cf91; --border:#928874; }
html[data-theme="modern"] { --bg:#0e1620; --surface:#172433; --surface-2:#203247; --text:#f2f7fb; --muted:#b5c6d7; --gold:#60b8e7; --gold-2:#9cdcff; --border:#7895ae; --serif:var(--font); }
html[data-theme="classic"] { --bg:#17201b; --surface:#202d25; --surface-2:#2b3a31; --text:#f1eee4; --muted:#c1c8bf; --gold:#c8c898; --gold-2:#e0e0b0; --border:#87988d; --radius:6px; --shadow:0 8px 20px rgba(0,0,0,.22); }
html[data-theme="gallery"] { --bg:#f4f1e9; --surface:#fff; --surface-2:#ebe6da; --text:#211f1b; --muted:#625e57; --gold:#6f4929; --gold-2:#5a3c21; --border:#777168; --shadow:0 18px 45px rgba(70,55,35,.12); color-scheme:light; }
html[data-theme="compact"] { --radius:8px; --shadow:0 5px 14px rgba(0,0,0,.2); }
html[data-theme="compact"] .panel, html[data-theme="compact"] .catalog-card { padding:1rem; margin:.75rem 0; }
html[data-theme="contrast"] { --bg:#000; --surface:#000; --surface-2:#161616; --text:#fff; --muted:#fff; --gold:#ff0; --gold-2:#ff0; --red:#ff6b6b; --green:#62ff85; --border:#fff; --shadow:none; color-scheme:dark; }
html[data-theme="collector-red"] { --bg:#1e0e10; --surface:#301417; --surface-2:#461b20; --text:#fff0ec; --muted:#ddb9b4; --gold:#e67a71; --gold-2:#ffaaa0; --border:#b77f7b; }
html[data-theme="museum-gold"] { --bg:#15120a; --surface:#251e0e; --surface-2:#342814; --text:#fff6d7; --muted:#d3c59a; --gold:#d7a928; --gold-2:#ffda61; --border:#a18f59; }
html[data-theme="klassisch-2026"] { --bg:#111317; --surface:#191d23; --surface-2:#222832; --text:#f2f4f8; --muted:#bdc6d4; --gold:#e56565; --gold-2:#ff8f8f; --red:#e56565; --green:#45caba; --border:#718096; --radius:8px; --shadow:0 16px 40px rgba(0,0,0,.28); --font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; --serif:var(--font); color-scheme:dark; }
html[data-theme="m2000"] { --bg:#060b14; --surface:#0b1424; --surface-2:#111e33; --text:#d9eaf8; --muted:#a4bfd7; --gold:#38cfff; --gold-2:#9dc5ff; --red:#ff7184; --green:#4fd29a; --border:#6786a6; --radius:8px; --shadow:0 12px 24px rgba(2,7,16,.5); --font:"IBM Plex Sans","Segoe UI","Helvetica Neue",sans-serif; --serif:var(--font); --m2000-mono:"JetBrains Mono","Fira Code","IBM Plex Mono",ui-monospace,monospace; color-scheme:dark; }
html[data-theme="christmas"] { --bg:#102219; --surface:#173326; --surface-2:#204532; --text:#fff8e8; --muted:#d3e2d7; --gold:#ef7676; --gold-2:#ffd36b; --border:#85a991; }
html[data-theme="easter"] { --bg:#f8f1fb; --surface:#fff; --surface-2:#eee1f4; --text:#35273a; --muted:#68586d; --gold:#70468e; --gold-2:#5d3d7c; --border:#827087; color-scheme:light; }
html[data-theme="halloween"] { --bg:#17100c; --surface:#28180e; --surface-2:#3b2413; --text:#fff1dc; --muted:#dbc5ad; --gold:#f49b45; --gold-2:#ffbb5c; --border:#b17b4d; }
html[data-theme="new-year"] { --bg:#101724; --surface:#172238; --surface-2:#22314d; --text:#f6f8ff; --muted:#c2cee1; --gold:#d2b969; --gold-2:#f2db88; --border:#7689aa; }
html[data-theme="summer"] { --bg:#f4fbf7; --surface:#fff; --surface-2:#dff2e8; --text:#15342a; --muted:#4b675e; --gold:#0e6d59; --gold-2:#075847; --border:#69877d; color-scheme:light; }
html[data-theme="winter"] { --bg:#101b26; --surface:#172837; --surface-2:#20384c; --text:#f2f9ff; --muted:#c0d4e3; --gold:#83c9eb; --gold-2:#b9e5fa; --border:#7799af; }

html[data-color-mode="light"]:not([data-theme="contrast"]),
html.system-light:not([data-theme="contrast"]) { --bg:#f4f2ec; --surface:#fff; --surface-2:#e9e5dc; --text:#242520; --muted:#5d6059; --gold:#6f4b00; --gold-2:#533800; --border:#767a72; --shadow:0 18px 45px rgba(35,40,35,.12); color-scheme:light; }

/* Im hellen Modus bleiben die Themes unterscheidbar, verwenden aber jeweils
   einen ausreichend dunklen Akzent für Links, Fokusrahmen und Kleinschrift. */
html[data-theme="museum"][data-color-mode="light"],html[data-theme="museum"].system-light{--gold:#6f4b00;--gold-2:#533800}
html[data-theme="modern"][data-color-mode="light"],html[data-theme="modern"].system-light{--gold:#00618b;--gold-2:#004b6d}
html[data-theme="classic"][data-color-mode="light"],html[data-theme="classic"].system-light{--gold:#59622f;--gold-2:#414821}
html[data-theme="gallery"][data-color-mode="light"],html[data-theme="gallery"].system-light{--gold:#6f4929;--gold-2:#53361e}
html[data-theme="collector-red"][data-color-mode="light"],html[data-theme="collector-red"].system-light{--gold:#9d2c32;--gold-2:#782126}
html[data-theme="museum-gold"][data-color-mode="light"],html[data-theme="museum-gold"].system-light{--gold:#6c5200;--gold-2:#503d00}
html[data-theme="christmas"][data-color-mode="light"],html[data-theme="christmas"].system-light{--gold:#9f2831;--gold-2:#762027}
html[data-theme="easter"][data-color-mode="light"],html[data-theme="easter"].system-light{--gold:#70468e;--gold-2:#53346a}
html[data-theme="halloween"][data-color-mode="light"],html[data-theme="halloween"].system-light{--gold:#914400;--gold-2:#6b3300}
html[data-theme="new-year"][data-color-mode="light"],html[data-theme="new-year"].system-light{--gold:#655100;--gold-2:#4c3d00}
html[data-theme="summer"][data-color-mode="light"],html[data-theme="summer"].system-light{--gold:#075f4b;--gold-2:#064838}
html[data-theme="winter"][data-color-mode="light"],html[data-theme="winter"].system-light{--gold:#1f607d;--gold-2:#17475d}

html[data-theme="klassisch-2026"][data-color-mode="light"],
html[data-theme="klassisch-2026"].system-light {
    --bg:#f6f7f9;
    --surface:#fff;
    --surface-2:#eef1f5;
    --text:#171a1f;
    --muted:#5e6978;
    --gold:#c82020;
    --gold-2:#9d1f1f;
    --red:#c82020;
    --green:#007c73;
    --border:#737d8a;
    --shadow:0 14px 32px rgba(37,45,58,.12);
    color-scheme:light;
}

html[data-theme="m2000"][data-color-mode="light"],
html[data-theme="m2000"].system-light {
    --bg:#e6f0f9;
    --surface:#f8fcff;
    --surface-2:#edf5fc;
    --text:#1f3448;
    --muted:#55758f;
    --gold:#006b9b;
    --gold-2:#245f9e;
    --red:#c43f52;
    --green:#16825a;
    --border:#718aa0;
    --shadow:0 8px 18px rgba(29,60,89,.14);
    color-scheme:light;
}

html[data-color-mode="light"] body,
html.system-light body { background:radial-gradient(circle at 80% 0,var(--surface-2) 0,transparent 28rem),var(--bg); }
html[data-color-mode="light"] .site-header,
html.system-light .site-header { background:color-mix(in srgb,var(--bg) 90%,transparent); }
html[data-color-mode="light"] input,
html[data-color-mode="light"] textarea,
html[data-color-mode="light"] select,
html.system-light input,
html.system-light textarea,
html.system-light select { background:var(--surface); color:var(--text); }

html[data-theme="klassisch-2026"] body {
    background:linear-gradient(180deg,color-mix(in srgb,var(--gold) 10%,transparent),transparent 260px),var(--bg);
    letter-spacing:0;
}
html[data-theme="klassisch-2026"] .site-header {
    min-height:64px;
    background:color-mix(in srgb,var(--surface) 92%,transparent);
}
html[data-theme="klassisch-2026"] .brand-mark {
    width:36px;
    height:36px;
    border:0;
    border-radius:8px;
    background:var(--gold);
    color:#fff;
    font:800 .85rem var(--font);
}
html[data-theme="klassisch-2026"] .hero h1,
html[data-theme="klassisch-2026"] .page-header h1 {
    font-family:var(--font);
    font-weight:800;
    letter-spacing:-.035em;
}
html[data-theme="klassisch-2026"] .catalog-card,
html[data-theme="klassisch-2026"] .panel,
html[data-theme="klassisch-2026"] .auth-card {
    background:var(--surface);
}
html[data-theme="klassisch-2026"] .button {
    border-radius:8px;
    color:#16181c;
}
html[data-theme="klassisch-2026"] .button:hover {
    color:#111317;
}
html[data-theme="klassisch-2026"] .button.secondary {
    color:var(--text);
}
html[data-theme="klassisch-2026"] input,
html[data-theme="klassisch-2026"] textarea,
html[data-theme="klassisch-2026"] select {
    background:var(--surface-2);
    border-color:var(--border);
    border-radius:8px;
}
html[data-theme="klassisch-2026"] label {
    color:var(--muted);
}
html[data-theme="klassisch-2026"] label.check {
    color:var(--text);
}
html[data-theme="klassisch-2026"] .task-card,
html[data-theme="klassisch-2026"] .stat-card,
html[data-theme="klassisch-2026"] .object-list-card,
html[data-theme="klassisch-2026"] .filter-bar,
html[data-theme="klassisch-2026"] .status-card,
html[data-theme="klassisch-2026"] .alert,
html[data-theme="klassisch-2026"] .notification-toast {
    border-radius:8px;
}

html[data-theme="m2000"] body {
    background:
        linear-gradient(color-mix(in srgb,var(--border) 34%,transparent) 1px,transparent 1px),
        linear-gradient(90deg,color-mix(in srgb,var(--border) 34%,transparent) 1px,transparent 1px),
        radial-gradient(circle at 10% 5%,color-mix(in srgb,var(--gold) 15%,transparent),transparent 34%),
        radial-gradient(circle at 92% 85%,color-mix(in srgb,var(--red) 10%,transparent),transparent 40%),
        linear-gradient(160deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 82%,var(--surface-2)) 42%,color-mix(in srgb,var(--bg) 70%,var(--surface-2)) 100%);
    background-size:24px 24px,24px 24px,auto,auto,auto;
    letter-spacing:0;
}
html[data-theme="m2000"] .site-header {
    min-height:68px;
    background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 94%,transparent),color-mix(in srgb,var(--surface) 96%,transparent));
    border-bottom:2px solid var(--gold);
    box-shadow:0 10px 24px color-mix(in srgb,var(--bg) 52%,transparent);
}
html[data-theme="m2000"] .brand-mark {
    width:38px;
    height:38px;
    border:1px solid color-mix(in srgb,var(--gold) 72%,var(--border));
    border-radius:8px;
    background:var(--surface-2);
    color:var(--gold);
    font:700 .78rem var(--m2000-mono);
    text-transform:uppercase;
}
html[data-theme="m2000"] .brand strong {
    font-family:var(--m2000-mono);
    text-transform:uppercase;
    letter-spacing:.035em;
}
html[data-theme="m2000"] .brand small,
html[data-theme="m2000"] .eyebrow {
    color:color-mix(in srgb,var(--gold) 55%,var(--text));
    font-family:var(--m2000-mono);
    letter-spacing:.1em;
}
html[data-theme="m2000"] .hero h1,
html[data-theme="m2000"] .page-header h1 {
    font-family:var(--font);
    font-weight:700;
    letter-spacing:-.03em;
}
html[data-theme="m2000"] .page-header h1 {
    font-size:clamp(2rem,4vw,3.25rem);
    line-height:1.02;
}
html[data-theme="m2000"] .hero h1 {
    font-size:clamp(2.5rem,6vw,5rem);
}
html[data-theme="m2000"] .section-heading h2,
html[data-theme="m2000"] .panel h2,
html[data-theme="m2000"] .catalog-card h2,
html[data-theme="m2000"] .catalog-card h3 {
    font-family:var(--font);
}
html[data-theme="m2000"] .catalog-card,
html[data-theme="m2000"] .panel,
html[data-theme="m2000"] .auth-card,
html[data-theme="m2000"] .task-card,
html[data-theme="m2000"] .stat-card,
html[data-theme="m2000"] .object-list-card,
html[data-theme="m2000"] .filter-bar,
html[data-theme="m2000"] .status-card,
html[data-theme="m2000"] .record-details,
html[data-theme="m2000"] .alert,
html[data-theme="m2000"] .notification-toast {
    border-radius:8px;
    background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 97%,var(--surface-2)),color-mix(in srgb,var(--surface) 97%,var(--bg)));
    border-color:var(--border);
    box-shadow:var(--shadow);
}
html[data-theme="m2000"] .catalog-card:hover,
html[data-theme="m2000"] .task-card:hover {
    border-color:color-mix(in srgb,var(--gold) 62%,var(--border));
    background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 70%,var(--surface)),var(--surface));
}
html[data-theme="m2000"] .public-home-toolbar,
html[data-theme="m2000"] .public-object-card {
    background:linear-gradient(145deg,color-mix(in srgb,var(--surface-2) 68%,var(--surface)),color-mix(in srgb,var(--surface) 92%,var(--bg)));
}
html[data-theme="m2000"] .public-discover-grid[data-collection-style="spotlight"] .public-discover-card:first-child {
    background:
        radial-gradient(circle at 85% 20%,color-mix(in srgb,var(--gold) 14%,transparent),transparent 32%),
        linear-gradient(145deg,color-mix(in srgb,var(--surface-2) 68%,var(--surface)),color-mix(in srgb,var(--surface) 92%,var(--bg)));
}
html[data-theme="m2000"] .public-home-catalog[data-home-view="list"] .public-discover-grid[data-collection-style="spotlight"] .public-discover-card:first-child {
    background:linear-gradient(145deg,color-mix(in srgb,var(--surface-2) 68%,var(--surface)),color-mix(in srgb,var(--surface) 92%,var(--bg)));
}
html[data-theme="m2000"] .public-object-image-frame,
html[data-theme="m2000"] .public-detail-image img {
    background:var(--bg);
}
html[data-theme="m2000"] .button {
    border:1px solid color-mix(in srgb,var(--gold) 38%,var(--border));
    border-radius:4px;
    background:linear-gradient(180deg,#123054,#0e2641);
    color:#dff3ff;
    font-family:var(--m2000-mono);
    font-size:.78rem;
    font-weight:700;
    letter-spacing:.03em;
    text-transform:uppercase;
    box-shadow:0 0 0 1px rgba(56,207,255,.08);
}
html[data-theme="m2000"] .button:hover {
    border-color:#5da1de;
    background:linear-gradient(180deg,#153963,#113051);
    color:#e9f8ff;
}
html[data-theme="m2000"] .button.secondary {
    border-color:var(--border);
    background:var(--surface);
    color:var(--text);
    box-shadow:none;
}
html[data-theme="m2000"] .button.danger {
    border-color:color-mix(in srgb,var(--red) 70%,var(--border));
    background:color-mix(in srgb,var(--red) 14%,var(--surface));
    color:color-mix(in srgb,var(--red) 48%,white);
}
html[data-theme="m2000"] input,
html[data-theme="m2000"] textarea,
html[data-theme="m2000"] select {
    border-color:color-mix(in srgb,var(--border) 82%,var(--gold));
    border-radius:4px;
    background:color-mix(in srgb,var(--surface) 72%,var(--bg));
    color:var(--text);
}
html[data-theme="m2000"] label {
    color:var(--muted);
}
html[data-theme="m2000"] label.check {
    color:var(--text);
}
html[data-theme="m2000"] input:focus,
html[data-theme="m2000"] textarea:focus,
html[data-theme="m2000"] select:focus {
    border-color:#63b3f5;
    box-shadow:0 0 0 2px rgba(73,160,230,.24);
}
html[data-theme="m2000"] th {
    background:color-mix(in srgb,var(--surface-2) 86%,var(--gold));
    color:var(--text);
    font-family:var(--m2000-mono);
    font-size:.8rem;
    letter-spacing:.025em;
}
html[data-theme="m2000"] th,
html[data-theme="m2000"] td {
    border-color:color-mix(in srgb,var(--border) 88%,var(--gold));
}
html[data-theme="m2000"] .stat-card strong,
html[data-theme="m2000"] .task-count,
html[data-theme="m2000"] .catalog-count {
    color:color-mix(in srgb,var(--gold) 62%,var(--text));
    font-family:var(--m2000-mono);
}
html[data-theme="m2000"] .badge,
html[data-theme="m2000"] .nav-count {
    border:1px solid var(--border);
    border-radius:999px;
    background:var(--surface-2);
    color:var(--text);
    font-family:var(--m2000-mono);
}
html[data-theme="m2000"] .site-footer {
    border-top-color:var(--border);
    color:var(--muted);
    font-family:var(--m2000-mono);
    font-size:.76rem;
}
html[data-theme="m2000"][data-color-mode="light"] .button,
html[data-theme="m2000"].system-light .button {
    border-color:#8caec8;
    background:linear-gradient(180deg,#eaf4fc,#dbeaf7);
    color:#1c3a55;
    box-shadow:none;
}
html[data-theme="m2000"][data-color-mode="light"] .button:hover,
html[data-theme="m2000"].system-light .button:hover {
    border-color:#6e9abf;
    background:linear-gradient(180deg,#dfeef9,#d2e4f4);
    color:#14324c;
}
html[data-theme="m2000"][data-color-mode="light"] .button.danger,
html[data-theme="m2000"].system-light .button.danger {
    border-color:#c98f97;
    background:rgba(215,108,120,.14);
    color:#7c2632;
}

:focus-visible { outline:3px solid var(--gold-2); outline-offset:3px; }
@media (forced-colors: active) { * { forced-color-adjust:auto; } }

html[data-reduced-motion="true"] *,
html[data-reduced-motion="true"] *::before,
html[data-reduced-motion="true"] *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
}

html[data-density="compact"] .page-shell { padding-block: 1.5rem 3rem; }
html[data-density="compact"] .panel { padding: 1rem; margin-block: .8rem; }
html[data-density="compact"] .form-grid,
html[data-density="compact"] .form-stack,
html[data-density="compact"] .content-grid { gap: .65rem; }
html[data-density="compact"] th,
html[data-density="compact"] td { padding: .55rem; }
