html {
    font-size: 14px;
}

@media (min-width:768px) {
    html {
        font-size: 16px;
    }
}

:root {
    --cm-navbar-height: 70px;
    --cm-footer-height: 72px;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white,0 0 0 0.25rem #258cfb;
}

html {
    position: relative;
    min-height: 100%;
}

body {
    margin: 0;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    padding-top: 70px;
}

    body > .container {
        flex: 1 0 auto;
        display: flex;
        flex-direction: column;
    }

main {
    flex: 1 0 auto;
}

footer {
    flex-shrink: 0;
}
    /* Neuer vertikaler Abstand f�r Footer-Inhalt */
    footer .container {
        padding-top: .75rem;
        padding-bottom: .75rem;
    }

.navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1030;
    background-color: var(--bs-body-bg) !important;
    border-bottom: 1px solid var(--bs-border-color);
    box-shadow: 0 2px 4px rgba(0,0,0,.1);
}

[data-bs-theme="dark"] .navbar {
    background-color: var(--bs-dark) !important;
}

.color-theme-toggler .bi {
    width: 1em;
    height: 1em;
    vertical-align: -.125em;
    fill: currentcolor;
}

.color-theme-toggler .dropdown-toggle:focus:not(:focus-visible) {
    outline: 0
}

.color-theme-toggler .dropdown-menu {
    --bs-dropdown-min-width: 12rem;
    --bs-dropdown-padding-x: .25rem;
    --bs-dropdown-padding-y: .25rem;
    --bs-dropdown-font-size: .875rem;
    font-size: .875rem;
    border-radius: .5rem;
    box-shadow: var(--bs-box-shadow)
}

    .color-theme-toggler .dropdown-menu li + li {
        margin-top: .125rem
    }

    .color-theme-toggler .dropdown-menu .dropdown-item {
        border-radius: .25rem
    }

        .color-theme-toggler .dropdown-menu .dropdown-item:active .bi {
            color: inherit !important
        }

    .color-theme-toggler .dropdown-menu .active {
        font-weight: 600
    }

        .color-theme-toggler .dropdown-menu .active .bi {
            display: block !important;
        }

.filter-container {
    background: var(--bs-body-bg);
    position: sticky;
    top: 50px;
    z-index: 1020;
    border-bottom: 2px solid var(--bs-border-color);
    padding: 15px 0;
    margin-bottom: 20px;
}

.filter-form {
    background: var(--bs-body-bg);
    padding: 20px;
    border-radius: 8px;
    border: 1px solid var(--bs-border-color);
}

@media (max-width:575.98px) {
    .filter-container {
        padding: 8px 0 4px;
        margin-bottom: 12px;
        border-bottom: 1px solid var(--bs-border-color);
    }

    .filter-form {
        border: none;
        padding: 0 0 .75rem 0;
        border-radius: 0;
    }

    .filter-toggle-btn {
        display: inline-flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        margin-bottom: .25rem;
    }

        .filter-toggle-btn .fa-chevron-up {
            transform: rotate(180deg);
        }

    .filter-form.collapse:not(.show) {
        display: none;
    }
}

.table-responsive {
    margin-bottom: 1.25rem;
}

/* @media (max-width:575.98px) {
    table.table th, table.table td {
        white-space: nowrap;
        font-size: .85rem;
    }
} */
/* Modern login styles */
.login-page {
    background: var(--bs-body-bg);
    min-height: calc(100vh - var(--cm-navbar-height) - var(--cm-footer-height));
    display: flex;
    align-items: center;
    justify-content: center;
}

[data-bs-theme="dark"] .login-page {
    background: var(--bs-dark);
}
/* Light theme card */
.login-card {
    backdrop-filter: none;
    background-color: #ffffff;
    color: var(--bs-body-color);
    border: 1px solid var(--bs-border-color) !important;
}

    .login-card h1 {
        color: var(--bs-heading-color, var(--bs-body-color));
    }

    .login-card .form-control {
        background-color: #ffffff;
        color: var(--bs-body-color);
        border: 1px solid var(--bs-border-color);
    }

        .login-card .form-control:focus {
            border-color: var(--bs-primary);
            box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .25);
        }
/* Dark theme overrides */
[data-bs-theme="dark"] .login-card {
    background-color: #2d2f33;
    color: #e9ecef;
    border: 1px solid #3a3d41 !important;
}

    [data-bs-theme="dark"] .login-card h1 {
        color: #f8f9fa;
    }

    [data-bs-theme="dark"] .login-card .form-control {
        border: 1px solid #3a3d41;
        background-color: #1f2023;
        color: #f8f9fa;
    }

        [data-bs-theme="dark"] .login-card .form-control::placeholder {
            color: #adb5bd;
        }

        [data-bs-theme="dark"] .login-card .form-control:focus {
            border-color: #6c757d;
            box-shadow: 0 0 0 .2rem rgba(108,117,125,.35);
            background-color: #222326;
        }

.password-group .password-toggle-btn {
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .password-group .password-toggle-btn {
    border-color: #3a3d41;
    background-color: #1f2023;
    color: #f8f9fa;
}

.password-group .password-toggle-btn .bi {
    pointer-events: none;
}

.password-group .password-toggle-btn:focus {
    box-shadow: 0 0 0 .15rem rgba(var(--bs-primary-rgb,108,117,125),.5);
}

#login-submit.loading .btn-text {
    opacity: .5;
}

#login-submit.loading .spinner-border {
    opacity: 1;
}

/* Positions detail scroll container (no sticky header) */
.positions-scroll { max-height: 65vh; overflow-y: auto; overflow-x: hidden; }
