:root {
    /* AurigaVision – Design Tokens */

    /* Markenfarben */
    --auriga-color-primary: #167A93;
    --auriga-color-primary-hover: #125F73;
    --auriga-color-primary-soft: #E8F3F6;

    --auriga-color-accent: #B89A4A;
    --auriga-color-accent-soft: #F7F2E5;

    /* Neutrale Farben */
    --auriga-color-bg: #F7F9FA;
    --auriga-color-surface: #FFFFFF;
    --auriga-color-surface-muted: #F1F4F5;

    --auriga-color-text: #24323A;
    --auriga-color-text-muted: #66757C;
    --auriga-color-border: #D7E0E3;

    --auriga-color-focus: #D5A840;

    /* Statusfarben */
    --auriga-color-success: #356D67;
    --auriga-color-warning: #9A6A21;
    --auriga-color-danger: #9B3F3F;
    --auriga-color-info: #356F88;

    /* Rest unverändert */

    /* Typografie */
    --auriga-font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    --auriga-font-size-base: 1rem;
    --auriga-font-size-small: 0.875rem;

    --auriga-line-height-base: 1.6;

    /* Abstände */
    --auriga-space-1: 0.25rem;
    --auriga-space-2: 0.5rem;
    --auriga-space-3: 0.75rem;
    --auriga-space-4: 1rem;
    --auriga-space-5: 1.5rem;
    --auriga-space-6: 2rem;
    --auriga-space-7: 3rem;

    /* Radien */
    --auriga-radius-sm: 0.4rem;
    --auriga-radius-md: 0.75rem;
    --auriga-radius-lg: 1rem;

    /* Schatten */
    --auriga-shadow-sm:
        0 1px 2px rgba(36, 50, 56, 0.04),
        0 4px 12px rgba(36, 50, 56, 0.05);

    --auriga-shadow-md:
        0 8px 24px rgba(36, 50, 56, 0.08);

    /* Übergänge */
    --auriga-transition-fast: 160ms ease;
}

/* -------------------------------------------------
   Basis
------------------------------------------------- */

html {
    background: var(--auriga-color-bg);
}

body {
    margin: 0;
    background: var(--auriga-color-bg);
    color: var(--auriga-color-text);
    font-family: var(--auriga-font-family);
    font-size: var(--auriga-font-size-base);
    line-height: var(--auriga-line-height-base);
    -webkit-font-smoothing: antialiased;
}

main {
    width: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--auriga-color-text);
    font-weight: 650;
    letter-spacing: -0.02em;
}

p {
    max-width: 72ch;
}

.text-body-secondary,
.text-muted {
    color: var(--auriga-color-text-muted) !important;
}

/* -------------------------------------------------
   Links
------------------------------------------------- */

a {
    color: var(--auriga-color-primary);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.16em;
}

a:hover {
    color: var(--auriga-color-primary-hover);
}

/* -------------------------------------------------
   Navigation
------------------------------------------------- */

.auriga-navbar {
    background: var(--auriga-color-surface);
    border-bottom: 1px solid var(--auriga-color-border);
    box-shadow: none;
}

.auriga-navbar .navbar-brand,
.auriga-navbar .nav-link {
    color: var(--auriga-color-text);
}

.auriga-navbar .navbar-brand {
    font-weight: 650;
    letter-spacing: -0.015em;
}

.auriga-navbar .nav-link {
    color: var(--auriga-color-text-muted);
}

.auriga-navbar .nav-link:hover,
.auriga-navbar .nav-link:focus {
    color: var(--auriga-color-primary);
}

.auriga-logo-placeholder {
    color: var(--auriga-color-accent);
    font-size: 1.25rem;
}

/* -------------------------------------------------
   Seitenstruktur
------------------------------------------------- */

.breadcrumb {
    margin-bottom: var(--auriga-space-5);
    font-size: var(--auriga-font-size-small);
}

.breadcrumb-item,
.breadcrumb-item.active {
    color: var(--auriga-color-text-muted);
}

.display-6 {
    font-weight: 650;
    letter-spacing: -0.035em;
}

/* -------------------------------------------------
   Karten
------------------------------------------------- */

.card {
    background: var(--auriga-color-surface);
    border: 1px solid var(--auriga-color-border);
    border-radius: var(--auriga-radius-lg);
    box-shadow: var(--auriga-shadow-sm);
}

.card-body {
    padding: var(--auriga-space-5);
}

.card .display-6 {
    color: var(--auriga-color-primary);
}

/* -------------------------------------------------
   Tabellen
------------------------------------------------- */

.auriga-table {
    --bs-table-bg: transparent;
    --bs-table-hover-bg: var(--auriga-color-primary-soft);

    margin-bottom: 0;
    background: var(--auriga-color-surface);
}

.auriga-table thead {
    background: transparent;
}

.auriga-table th {
    padding-top: var(--auriga-space-3);
    padding-bottom: var(--auriga-space-3);
    color: var(--auriga-color-text-muted);
    border-bottom: 1px solid var(--auriga-color-border);
    font-size: var(--auriga-font-size-small);
    font-weight: 600;
    white-space: nowrap;
}

.auriga-table td {
    padding-top: var(--auriga-space-4);
    padding-bottom: var(--auriga-space-4);
    border-bottom: 1px solid var(--auriga-color-border);
}

.auriga-table tbody tr:last-child td {
    border-bottom: 0;
}

.table-responsive {
    overflow: hidden;
    background: var(--auriga-color-surface);
    border: 1px solid var(--auriga-color-border);
    border-radius: var(--auriga-radius-lg);
    box-shadow: var(--auriga-shadow-sm);
}

/* -------------------------------------------------
   Buttons
------------------------------------------------- */

.btn {
    border-radius: var(--auriga-radius-md);
    font-weight: 600;
    padding: 0.65rem 1rem;
    transition:
        background-color var(--auriga-transition-fast),
        border-color var(--auriga-transition-fast),
        color var(--auriga-transition-fast),
        transform var(--auriga-transition-fast);
}

.btn-primary {
    --bs-btn-bg: var(--auriga-color-primary);
    --bs-btn-border-color: var(--auriga-color-primary);
    --bs-btn-hover-bg: var(--auriga-color-primary-hover);
    --bs-btn-hover-border-color: var(--auriga-color-primary-hover);
    --bs-btn-active-bg: var(--auriga-color-primary-hover);
    --bs-btn-active-border-color: var(--auriga-color-primary-hover);
}

.btn-outline-secondary {
    --bs-btn-color: var(--auriga-color-text);
    --bs-btn-border-color: var(--auriga-color-border);
    --bs-btn-hover-bg: var(--auriga-color-surface-muted);
    --bs-btn-hover-color: var(--auriga-color-text);
    --bs-btn-hover-border-color: var(--auriga-color-border);
}

/* -------------------------------------------------
   Formulare
------------------------------------------------- */

.form-label {
    color: var(--auriga-color-text);
    font-weight: 600;
}

.form-control,
.form-select {
    min-height: 3rem;
    color: var(--auriga-color-text);
    background: var(--auriga-color-surface);
    border: 1px solid var(--auriga-color-border);
    border-radius: var(--auriga-radius-md);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--auriga-color-primary);
    box-shadow: 0 0 0 0.2rem rgba(15, 118, 110, 0.12);
}

/* -------------------------------------------------
   Akkordeon / Details
------------------------------------------------- */

details {
    background: var(--auriga-color-surface);
    border-color: var(--auriga-color-border) !important;
    border-radius: var(--auriga-radius-lg) !important;
}

summary {
    cursor: pointer;
    color: var(--auriga-color-text);
}

/* -------------------------------------------------
   Hinweise / Status
------------------------------------------------- */

.alert {
    border-radius: var(--auriga-radius-md);
    border-width: 1px;
}

.alert-info {
    color: var(--auriga-color-info);
    background: #eef5f7;
    border-color: #ccdfe4;
}

.alert-warning {
    color: var(--auriga-color-warning);
    background: #faf4e8;
    border-color: #ead8b4;
}

.alert-danger {
    color: var(--auriga-color-danger);
    background: #faeeee;
    border-color: #e8caca;
}

.badge {
    font-weight: 600;
    letter-spacing: 0.01em;
}

/* -------------------------------------------------
   Fokus und Barrierefreiheit
------------------------------------------------- */

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
    outline: 3px solid var(--auriga-color-focus);
    outline-offset: 3px;
}

.skip-link {
    position: absolute;
    z-index: 2000;
    padding: var(--auriga-space-3) var(--auriga-space-4);
    background: var(--auriga-color-surface);
    color: var(--auriga-color-text);
    border: 1px solid var(--auriga-color-border);
    border-radius: var(--auriga-radius-sm);
}

/* -------------------------------------------------
   Footer
------------------------------------------------- */

.auriga-footer {
    margin-top: var(--auriga-space-7);
    color: var(--auriga-color-text-muted);
    background: transparent;
    border-top: 1px solid var(--auriga-color-border);
}

/* -------------------------------------------------
   Responsive
------------------------------------------------- */

@media (max-width: 767.98px) {
    .card-body {
        padding: var(--auriga-space-4);
    }

    .display-6 {
        font-size: 2rem;
    }

    .table-responsive {
        overflow-x: auto;
    }
}

.auriga-brand-logo {
    width: 42px;
    height: auto;
    flex: 0 0 auto;
}

.auriga-brand-name {
    color: var(--auriga-color-text);
    font-size: 1.05rem;
    font-weight: 650;
    letter-spacing: 0.015em;
}

.auriga-brand-app {
    margin-top: 0.15rem;
    color: var(--auriga-color-text-muted);
    font-size: 0.78rem;
    font-weight: 500;
}

.auriga-brand-strong {
    font-weight: 700;
}

.auriga-brand-light {
    font-weight: 300;
}

@media (max-width: 575.98px) {
    .auriga-brand-logo {
        width: 34px;
    }

    .auriga-brand-name {
        font-size: 0.98rem;
    }

    .auriga-brand-app {
        font-size: 0.72rem;
    }
}

/* -------------------------------------------------
   Druck
------------------------------------------------- */

@media print {
    .navbar,
    .breadcrumb,
    .btn {
        display: none !important;
    }

    body {
        background: #ffffff;
        font-size: 11pt;
    }

    .card,
    .table-responsive {
        border: 0;
        box-shadow: none;
    }

    .auriga-footer {
        background: transparent;
        border-top: 1px solid #cccccc;
    }
}

/* ---------------------------------------------------------
   Bücherübersicht
   --------------------------------------------------------- */

.auriga-stat-card {
    border: 1px solid var(--auriga-border);
    border-radius: 0.9rem;
    box-shadow: none;
    background: var(--auriga-surface);
}

.auriga-stat-card .card-body {
    padding: 1.25rem 1.35rem;
}

.auriga-stat-number {
    font-size: 1.8rem;
    font-weight: 650;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--auriga-primary);
}

.auriga-stat-label {
    margin-top: 0.45rem;
    font-size: 0.9rem;
    color: var(--auriga-text-muted);
}

.auriga-book-link {
    color: var(--auriga-text);
    font-weight: 650;
    text-decoration: none;
}

.auriga-book-link:hover,
.auriga-book-link:focus {
    color: var(--auriga-primary);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

/* ---------------------------------------------------------
   Literaturkreis – eigene Marken-Hierarchie
   AurigaVision bleibt als Absender sekundär.
   --------------------------------------------------------- */

.literaturkreis-brand-name {
    font-size: 1.35rem;
    font-weight: 650;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--auriga-text);
}

.literaturkreis-brand-subtitle {
    margin-top: 0.2rem;
    font-size: 0.82rem;
    font-weight: 400;
    line-height: 1.3;
    color: var(--auriga-text-muted);
}

.aurigavision-signature {
    width: fit-content;
    margin-top: -0.15rem;
    padding-top: 0.35rem;
    padding-bottom: 0.45rem;
    opacity: 0.72;
}

.aurigavision-signature-logo {
    width: 18px;
    height: auto;
    flex: 0 0 auto;
}

.aurigavision-signature-name {
    font-size: 0.78rem;
    line-height: 1;
    letter-spacing: 0.01em;
    color: var(--auriga-text-muted);
}

.aurigavision-signature-name .auriga-brand-strong {
    font-weight: 650;
}

.aurigavision-signature-name .auriga-brand-light {
    font-weight: 300;
}

@media (max-width: 575.98px) {
    .literaturkreis-brand-name {
        font-size: 1.2rem;
    }

    .literaturkreis-brand-subtitle {
        font-size: 0.76rem;
    }
}

/* ---------------------------------------------------------
   AurigaVision – dezente Absenderkennung im Footer
   --------------------------------------------------------- */

.aurigavision-footer-brand {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    color: var(--auriga-text-muted);
}

.aurigavision-footer-logo {
    width: 15px;
    height: auto;
    margin-left: 0.15rem;
    opacity: 0.75;
}

.aurigavision-footer-name {
    line-height: 1;
    letter-spacing: 0.01em;
}

.aurigavision-footer-name .auriga-brand-strong {
    font-weight: 650;
}

.aurigavision-footer-name .auriga-brand-light {
    font-weight: 300;
}

/* ---------------------------------------------------------
   AurigaVision – Outline-Button
   --------------------------------------------------------- */

.btn-outline-primary {
    --bs-btn-color: var(--auriga-color-primary);
    --bs-btn-border-color: var(--auriga-color-primary);

    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: var(--auriga-color-primary);
    --bs-btn-hover-border-color: var(--auriga-color-primary);

    --bs-btn-focus-shadow-rgb: 22, 122, 147;

    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: var(--auriga-color-primary-hover);
    --bs-btn-active-border-color: var(--auriga-color-primary-hover);
}