﻿/* =====================================================================
   theme.css – Farben, Schrift, Bootstrap-Anpassungen (hell/dunkel)
   Universitätsfarben: Orange #f8971c, Grau #8a8a8c.
   Kontraste (WCAG 2.2 AA): Text auf Orange immer dunkel (#1f2937, 6,6:1);
   orangefarbener Text nur als #9c5200 (hell, 5,8:1) bzw. #fbb15c (dunkel, 8,8:1).
   !important nur dort, wo Bootstrap-Utilities selbst !important setzen.
   ===================================================================== */

/* Source Sans 3 (SIL Open Font License 1.1, siehe fonts/OFL-SourceSans3.txt) – lokal, ohne Drittanbieter */
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 200 900; font-display: swap;
    src: url(/Content/fonts/source-sans-3-latin-wght-normal.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: 'Source Sans 3'; font-style: italic; font-weight: 200 900; font-display: swap;
    src: url(/Content/fonts/source-sans-3-latin-wght-italic.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: 'Source Sans 3'; font-style: normal; font-weight: 200 900; font-display: swap;
    src: url(/Content/fonts/source-sans-3-latin-ext-wght-normal.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Source Sans 3'; font-style: italic; font-weight: 200 900; font-display: swap;
    src: url(/Content/fonts/source-sans-3-latin-ext-wght-italic.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ---------- Farbwerte ---------- */
:root, [data-bs-theme=light] {
    --up-orange: #f8971c;          /* Flächen, Linien, Buttons (mit dunkler Schrift) */
    --up-orange-icon: #c76a00;     /* Symbole/Grafik, 3,8:1 auf Weiß */
    --up-accent: #9c5200;          /* orangefarbener Text/Links, 5,8:1 */
    --up-soft: #fff4e5;            /* getönte Kartenflächen */
    --up-grey: #8a8a8c;            /* Linien, Rahmen (3,45:1) */
    --up-on-orange: #1f2937;
    --up-surface: #faf7f2;
    --up-track: #e8e8e9;
    --up-shadow: 0 1px 2px rgba(31, 41, 55, .06), 0 4px 16px rgba(31, 41, 55, .06);

    --bs-body-font-family: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
    --bs-body-font-size: 1.0625rem;
    --bs-body-line-height: 1.6;
    --bs-body-color: #1f2937;
    --bs-body-color-rgb: 31, 41, 55;
    --bs-body-bg: #ffffff;
    --bs-emphasis-color: #111318;
    --bs-secondary-color: #5f5f61;
    --bs-tertiary-bg: #faf7f2;
    --bs-tertiary-bg-rgb: 250, 247, 242;
    --bs-border-color: #dcdcde;
    --bs-primary: #9c5200;
    --bs-primary-rgb: 156, 82, 0;
    --bs-primary-text-emphasis: #7a4100;
    --bs-primary-bg-subtle: #fff1df;
    --bs-primary-border-subtle: #fbc98a;
    --bs-link-color: #9c5200;
    --bs-link-color-rgb: 156, 82, 0;
    --bs-link-hover-color: #7a4100;
    --bs-link-hover-color-rgb: 122, 65, 0;
    --bs-border-radius: .5rem;
    --bs-border-radius-lg: .875rem;
    --bs-focus-ring-color: rgba(248, 151, 28, .55);
    --bs-highlight-bg: #ffe8cc;
}

[data-bs-theme=dark] {
    --up-orange-icon: #f8971c;
    --up-accent: #fbb15c;
    --up-soft: #2b2218;
    --up-on-orange: #16181b;
    --up-surface: #1f2226;
    --up-track: #34373c;
    --up-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 16px rgba(0, 0, 0, .25);

    --bs-body-color: #e6e6e7;
    --bs-body-color-rgb: 230, 230, 231;
    --bs-body-bg: #16181b;
    --bs-emphasis-color: #ffffff;
    --bs-secondary-color: #b0b0b2;
    --bs-tertiary-bg: #1f2226;
    --bs-tertiary-bg-rgb: 31, 34, 38;
    --bs-border-color: #3a3d42;
    --bs-primary-text-emphasis: #ffd29e;
    --bs-primary-bg-subtle: #3a2a14;
    --bs-primary-border-subtle: #7a4a12;
    --bs-link-color: #fbb15c;
    --bs-link-color-rgb: 251, 177, 92;
    --bs-link-hover-color: #ffd29e;
    --bs-link-hover-color-rgb: 255, 210, 158;
    --bs-highlight-bg: #4a3315;
    --bs-highlight-color: #ffffff;
}

/* Schriftgröße (Einstellung im Menü „Darstellung“) */
html[data-fs=l] { font-size: 112.5%; }
html[data-fs=xl] { font-size: 125%; }

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.lead { font-weight: 400; }
h1, h2, h3, h4, .h1, .h2, .h3, .h4 { font-weight: 700; letter-spacing: -.01em; line-height: 1.25; }

/* ---------- Bootstrap-Komponenten ---------- */
.btn { --bs-btn-font-weight: 600; --bs-btn-padding-x: 1rem; border-radius: 999px; }
.btn-sm { --bs-btn-padding-x: .75rem; }
.btn-primary {
    --bs-btn-color: var(--up-on-orange); --bs-btn-bg: var(--up-orange); --bs-btn-border-color: var(--up-orange);
    --bs-btn-hover-color: var(--up-on-orange); --bs-btn-hover-bg: #ffa940; --bs-btn-hover-border-color: #ffa940;
    --bs-btn-active-color: var(--up-on-orange); --bs-btn-active-bg: #e6850a; --bs-btn-active-border-color: #e6850a;
    --bs-btn-disabled-color: var(--up-on-orange); --bs-btn-disabled-bg: #fbc98a; --bs-btn-disabled-border-color: #fbc98a;
    --bs-btn-focus-shadow-rgb: 248, 151, 28;
}
.btn-outline-primary {
    --bs-btn-color: var(--up-accent); --bs-btn-border-color: var(--up-orange);
    --bs-btn-hover-color: var(--up-on-orange); --bs-btn-hover-bg: var(--up-orange); --bs-btn-hover-border-color: var(--up-orange);
    --bs-btn-active-color: var(--up-on-orange); --bs-btn-active-bg: var(--up-orange); --bs-btn-active-border-color: var(--up-orange);
    --bs-btn-disabled-color: var(--bs-secondary-color); --bs-btn-disabled-border-color: var(--up-grey);
    --bs-btn-focus-shadow-rgb: 248, 151, 28;
}
.btn-quiet { --bs-btn-color: var(--bs-body-color); --bs-btn-hover-bg: var(--bs-tertiary-bg); --bs-btn-hover-color: var(--bs-emphasis-color);
    --bs-btn-active-bg: var(--up-soft); --bs-btn-border-color: transparent; --bs-btn-hover-border-color: transparent; }
.dropdown-menu { --bs-dropdown-link-active-bg: var(--up-soft); --bs-dropdown-link-active-color: var(--bs-emphasis-color);
    --bs-dropdown-border-radius: .75rem; --bs-dropdown-item-padding-y: .5rem; box-shadow: var(--up-shadow); }
.dropdown-item.active { box-shadow: inset 3px 0 0 var(--up-orange); }
.list-group { --bs-list-group-active-bg: var(--up-soft); --bs-list-group-active-color: var(--bs-emphasis-color); --bs-list-group-active-border-color: var(--up-orange); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--up-orange); --bs-nav-pills-link-active-color: var(--up-on-orange); }
.pagination { --bs-pagination-active-bg: var(--up-orange); --bs-pagination-active-border-color: var(--up-orange); --bs-pagination-active-color: var(--up-on-orange); }
.progress, .progress-stacked { --bs-progress-bar-bg: var(--up-orange); --bs-progress-bar-color: var(--up-on-orange); --bs-progress-bg: var(--up-track); }
.card { --bs-card-border-color: var(--bs-border-color); --bs-card-border-radius: var(--bs-border-radius-lg); }
.form-control, .form-select { border-color: var(--up-grey); }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: var(--up-orange); box-shadow: 0 0 0 .25rem var(--bs-focus-ring-color); }
.form-check-input { border-color: var(--up-grey); }
.form-check-input:checked { background-color: var(--up-accent); border-color: var(--up-accent); }
.form-switch .form-check-input:focus:not(:checked) { --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23c76a00'/%3e%3c/svg%3e"); }
.badge-accent { background: var(--up-orange); color: var(--up-on-orange); }
[data-bs-theme=dark] .text-primary { color: var(--up-accent) !important; }
.text-accent { color: var(--up-accent); }
.icon-accent { color: var(--up-orange-icon); }

/* ---------- Fokus, Auswahl, Bewegung ---------- */
:focus-visible { outline: 3px solid var(--up-orange); outline-offset: 2px; border-radius: 2px; }
.btn:focus-visible, .form-control:focus-visible, .dropdown-item:focus-visible { outline: 3px solid var(--up-orange); outline-offset: 2px; box-shadow: none; }
::selection { background: #ffd29e; color: #1f2937; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms; animation-iteration-count: 1; transition-duration: .01ms; scroll-behavior: auto; }
}
