/*
 * Modernisierungs-Layer über Bootstrap 5.3 (CDN, kein Build-Schritt).
 * Wirkt überwiegend automatisch auf bestehende Bootstrap-Klassen (Cards,
 * Tabellen, Buttons, Badges, Formulare) – einzelne Views müssen dafür nicht
 * angepasst werden.
 */

:root {
    --bs-body-font-family: 'Inter', var(--bs-font-sans-serif);
}

body {
    font-family: 'Inter', var(--bs-font-sans-serif);
    background-color: #f4f6fb;
}

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

a {
    text-decoration: none;
}

a:hover,
a:focus {
    text-decoration: none;
    color: var(--bs-primary-text-emphasis);
}

.card a:not(.btn):not(.badge):not(.nav-link) {
    color: var(--bs-primary);
    font-weight: 500;
}

.card a:not(.btn):not(.badge):not(.nav-link):hover {
    color: var(--bs-primary-text-emphasis);
}

/* Navbar -------------------------------------------------------------- */

.navbar.bg-dark {
    background: linear-gradient(135deg, #1e2330, #2a3142) !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
}

.navbar .navbar-brand {
    font-weight: 700;
    letter-spacing: .01em;
}

.navbar .nav-link {
    border-radius: .5rem;
    padding: .4rem .75rem;
    margin: 0 .1rem;
    transition: background-color .15s ease;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus {
    background-color: rgba(255, 255, 255, .08);
}

.navbar .dropdown-menu {
    border: none;
    border-radius: .75rem;
    box-shadow: 0 4px 16px rgba(15, 23, 42, .12);
    padding: .5rem;
    margin-top: .5rem;
}

.navbar .dropdown-item {
    border-radius: .5rem;
    padding: .5rem .75rem;
}

.navbar .dropdown-item:hover,
.navbar .dropdown-item:focus {
    background-color: var(--bs-primary-bg-subtle);
}

/* Cards ----------------------------------------------------------------- */

.card {
    border: none;
    border-radius: .9rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 4px 14px rgba(15, 23, 42, .05);
}

.card-header {
    background-color: transparent;
    border-bottom: 1px solid rgba(15, 23, 42, .07);
    font-weight: 600;
    padding: 1rem 1.25rem;
}

/* Tabellen (immer in Cards eingebettet) --------------------------------- */

.table {
    margin-bottom: 0;
}

.table thead th {
    text-transform: uppercase;
    font-size: .72rem;
    letter-spacing: .05em;
    color: #6b7280;
    font-weight: 600;
    border-bottom-width: 1px;
    padding-top: .9rem;
    padding-bottom: .9rem;
}

.table tbody td {
    padding-top: .85rem;
    padding-bottom: .85rem;
    vertical-align: middle;
}

.table-hover > tbody > tr:hover > * {
    background-color: #f5f7fc;
}

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

.btn {
    border-radius: .55rem;
    font-weight: 500;
    padding: .45rem 1rem;
}

.btn-sm {
    border-radius: .45rem;
}

.btn-primary {
    box-shadow: 0 1px 3px rgba(13, 110, 253, .25);
}

.btn-primary:hover {
    box-shadow: 0 2px 8px rgba(13, 110, 253, .3);
}

/* Badges ------------------------------------------------------------------ */

.badge {
    font-weight: 600;
    letter-spacing: .01em;
    border-radius: 50rem;
    padding: .4em .7em;
    text-decoration: none;
}

.badge.bg-primary {
    background-color: var(--bs-primary-bg-subtle) !important;
    color: var(--bs-primary-text-emphasis) !important;
}

.badge.bg-secondary {
    background-color: var(--bs-secondary-bg-subtle) !important;
    color: var(--bs-secondary-text-emphasis) !important;
}

.badge.bg-success {
    background-color: var(--bs-success-bg-subtle) !important;
    color: var(--bs-success-text-emphasis) !important;
}

.badge.bg-danger {
    background-color: var(--bs-danger-bg-subtle) !important;
    color: var(--bs-danger-text-emphasis) !important;
}

a.badge:hover {
    filter: brightness(.95);
}

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

.form-control,
.form-select {
    border-radius: .55rem;
    border-color: #d8dee9;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .2rem var(--bs-primary-bg-subtle);
}

.form-check-input {
    border-radius: .3rem;
}

/* Alerts -------------------------------------------------------------------- */

.alert {
    border: none;
    border-radius: .75rem;
}
