:root {
    --inventory-accent-color: #89acc8;
}

html[data-header-color="emerald"] { --inventory-accent-color: #78b99d; }
html[data-header-color="amethyst"] { --inventory-accent-color: #a491cb; }
html[data-header-color="graphite"] { --inventory-accent-color: #9da5ac; }
html[data-header-color="copper"] { --inventory-accent-color: #bd8661; }
html[data-header-color="burgundy"] { --inventory-accent-color: #b57b88; }

html[data-bs-theme="dark"][data-header-color="diamond"] { --inventory-accent-color: #477b9d; }
html[data-bs-theme="dark"][data-header-color="emerald"] { --inventory-accent-color: #43866c; }
html[data-bs-theme="dark"][data-header-color="amethyst"] { --inventory-accent-color: #79639a; }
html[data-bs-theme="dark"][data-header-color="graphite"] { --inventory-accent-color: #6b757e; }
html[data-bs-theme="dark"][data-header-color="copper"] { --inventory-accent-color: #a06949; }
html[data-bs-theme="dark"][data-header-color="burgundy"] { --inventory-accent-color: #995966; }

.card-header:not([class*="bg-"]) {
    --inventory-card-header-bg: #aecce4;
    --inventory-card-header-border: #89acc8;
    --inventory-card-header-color: #172533;
}

[data-bs-theme="dark"] .card-header:not([class*="bg-"]) {
    --inventory-card-header-bg: #aecce4;
    --inventory-card-header-border: #89acc8;
    --inventory-card-header-color: #172533;
}

html[data-header-color="emerald"] .card-header:not([class*="bg-"]) {
    --inventory-card-header-bg: #a8dcc6;
    --inventory-card-header-border: #78b99d;
    --inventory-card-header-color: #17372a;
}

html[data-header-color="amethyst"] .card-header:not([class*="bg-"]) {
    --inventory-card-header-bg: #cbbce9;
    --inventory-card-header-border: #a491cb;
    --inventory-card-header-color: #312347;
}

html[data-header-color="graphite"] .card-header:not([class*="bg-"]) {
    --inventory-card-header-bg: #c4c9ce;
    --inventory-card-header-border: #9da5ac;
    --inventory-card-header-color: #252b30;
}

html[data-header-color="copper"] .card-header:not([class*="bg-"]) {
    --inventory-card-header-bg: #dfb394;
    --inventory-card-header-border: #bd8661;
    --inventory-card-header-color: #452719;
}

html[data-header-color="burgundy"] .card-header:not([class*="bg-"]) {
    --inventory-card-header-bg: #d9acb6;
    --inventory-card-header-border: #b57b88;
    --inventory-card-header-color: #441e27;
}

html[data-bs-theme="dark"][data-header-color="diamond"]
    .card-header:not([class*="bg-"]) {
    --inventory-card-header-bg: #315f7d;
    --inventory-card-header-border: #477b9d;
    --inventory-card-header-color: #ffffff;
}

html[data-bs-theme="dark"][data-header-color="emerald"]
    .card-header:not([class*="bg-"]) {
    --inventory-card-header-bg: #2d6b53;
    --inventory-card-header-border: #43866c;
    --inventory-card-header-color: #ffffff;
}

html[data-bs-theme="dark"][data-header-color="amethyst"]
    .card-header:not([class*="bg-"]) {
    --inventory-card-header-bg: #604b7c;
    --inventory-card-header-border: #79639a;
    --inventory-card-header-color: #ffffff;
}

html[data-bs-theme="dark"][data-header-color="graphite"]
    .card-header:not([class*="bg-"]) {
    --inventory-card-header-bg: #515a62;
    --inventory-card-header-border: #6b757e;
    --inventory-card-header-color: #ffffff;
}

html[data-bs-theme="dark"][data-header-color="copper"]
    .card-header:not([class*="bg-"]) {
    --inventory-card-header-bg: #815038;
    --inventory-card-header-border: #a06949;
    --inventory-card-header-color: #ffffff;
}

html[data-bs-theme="dark"][data-header-color="burgundy"]
    .card-header:not([class*="bg-"]) {
    --inventory-card-header-bg: #783f4b;
    --inventory-card-header-border: #995966;
    --inventory-card-header-color: #ffffff;
}

.brand-text {
    font-weight: 600;
}

.sidebar-wrapper {
    min-height: calc(100vh - 57px);
}

.sidebar-info-panel {
    flex-shrink: 0;
}

.min-width-0 {
    min-width: 0;
}

.navbar-institution-name {
    max-width: min(42vw, 36rem);
}

.navbar-user-summary {
    line-height: 1.15;
    text-align: left;
}

.session-timer {
    color: var(--bs-secondary-color);
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.app-header .session-timer {
    padding: 0.1rem 0.35rem 0.1rem 0.6rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    background-color: var(--bs-tertiary-bg);
}

.app-header .session-timer [data-session-extend] {
    padding: 0.3rem 0.45rem;
}

.session-timer.session-timeout-warning {
    color: var(--bs-body-color);
    background-color: var(--bs-warning-bg-subtle);
    border-color: var(--bs-warning-border-subtle);
}

.session-timer.session-timeout-danger {
    color: var(--bs-body-color);
    background-color: var(--bs-danger-bg-subtle);
    border-color: var(--bs-danger-border-subtle);
}

.session-timer.session-timeout-warning .text-body-secondary,
.session-timer.session-timeout-danger .text-body-secondary,
.session-timer.session-timeout-warning [data-session-extend],
.session-timer.session-timeout-danger [data-session-extend] {
    color: var(--bs-body-color) !important;
}

.session-timer [data-session-countdown] {
    font-variant-numeric: tabular-nums;
}

.sidebar-user-icon {
    width: 2.25rem;
    height: 2.25rem;
    font-size: 1.75rem;
}

.sidebar-brand .brand-image {
    float: none;
    width: 1.75rem;
    height: 1.4rem;
    margin: 0 0.65rem 0 0;
    object-fit: contain;
}

.table > thead {
    --bs-table-bg: rgba(255, 255, 255, 0.06);
    --bs-table-color: inherit;
}

.table > thead > tr > th {
    --bs-table-bg: #343a40;
    --bs-table-color: #ffffff;

    background-color: #343a40 !important;
    color: #ffffff !important;
}

.table > thead > tr > th a,
.table > thead > tr > th button {
    color: #ffffff !important;
}

.table > thead > tr > th a:hover,
.table > thead > tr > th a:focus-visible,
.table > thead > tr > th button:hover,
.table > thead > tr > th button:focus-visible {
    color: #ffffff !important;
    text-decoration: underline !important;
}

.sidebar-menu .nav-treeview .nav-link {
    padding-left: 2.5rem;
}

.sidebar-user-data {
    min-width: 0;
}

.sidebar-user-name,
.sidebar-institution-name {
    overflow-wrap: anywhere;
    white-space: normal;
}

.sidebar-institution-name {
    min-width: 0;
    line-height: 1.25;
}

.login-card {
    width: 100%;
    max-width: 420px;
}

.login-brand-logo {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 auto;
}

/*
 * A modulok és űrlapok egységes vizuális vezérszíne.
 * A dashboard-kártyák is ezt a felhasználó által választott témaszínt követik.
 */
.card-header:not([class*="bg-"]) {
    background-color: var(--inventory-card-header-bg);
    border-bottom-color: var(--inventory-card-header-border);
    color: var(--inventory-card-header-color);
}

.card-header:not([class*="bg-"]) .text-body-secondary {
    color: var(--inventory-card-header-color) !important;
    opacity: 0.72;
}

.card-header-link {
    color: var(--inventory-card-header-color);
    font-weight: 600;
}

.card-header-link:hover,
.card-header-link:focus-visible {
    color: var(--inventory-card-header-color);
    text-decoration: underline !important;
}

.scroll-mt-navbar {
    scroll-margin-top: 5rem;
}

.appearance-font-select {
    max-width: 24rem;
}

.appearance-setting-card {
    margin-bottom: 0;
}

.accordion-button::after {
    background-image: none !important;
    background-color: var(--inventory-accent-color);
    -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: 1.25rem;
    mask-size: 1.25rem;
}

[data-appearance-control] .accordion-button::after,
[data-system-settings] .accordion-button::after {
    margin-left: 0.75rem;
}

[data-appearance-control] .accordion-button:hover,
[data-system-settings] .accordion-button:hover {
    background-color: var(--bs-tertiary-bg);
}

[data-appearance-control] .accordion-button:not(.collapsed),
[data-system-settings] .accordion-button:not(.collapsed) {
    color: var(--bs-body-color);
    background-color: var(--bs-secondary-bg);
    box-shadow: none;
}

[data-appearance-control] .accordion-button:focus,
[data-system-settings] .accordion-button:focus {
    border-color: var(--bs-border-color);
    box-shadow: none;
}

.appearance-color-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.6rem;
}

.appearance-color-option {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 0.65rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    cursor: pointer;
}

.appearance-color-option:has(input:checked) {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.18);
}

.appearance-color-swatch {
    width: 2rem;
    height: 1.4rem;
    flex: 0 0 auto;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 0.3rem;
}

.appearance-color-diamond { background-color: #aecce4; }
.appearance-color-emerald { background-color: #a8dcc6; }
.appearance-color-amethyst { background-color: #cbbce9; }
.appearance-color-graphite { background-color: #c4c9ce; }
.appearance-color-copper { background-color: #dfb394; }
.appearance-color-burgundy { background-color: #d9acb6; }

@media (min-width: 1200px) {
    .appearance-color-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .appearance-color-grid {
        grid-template-columns: 1fr;
    }
}

.bg-teal,
.text-bg-teal {
    background-color: #20c997 !important;
    color: #052c24 !important;
}
[data-dashboard-handle] {
    cursor: grab;
    user-select: none;
}

[data-dashboard-handle]:active {
    cursor: grabbing;
}
[data-dashboard-grid] > div:has(> [data-dashboard-card].d-none) {
    display: none;
}
