/* === Font fallback for eksterne fonter (Typekit via settings) ===
 1) Vi starter alltid med en trygg system-stack → stabil layout.
 2) Når Typekit har lastet (Adobe setter .wf-active / .wf-inactive på <html>)
 kan vi trygt gå tilbake til den faktiske brand-fonten fra settings.
*/
html, body {
 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif;
 line-height: 1.5;
}
/* Når Adobe/Typekit er klar → bruk fonten admin har valgt i settings */
html.wf-active body,
html.wf-inactive body {
 font-family: var(--brand-font-family) !important;
}
:root{
 --brand-primary: #1E63FF;
 --brand-primary-rgb: 30, 99, 255;
 --brand-on-primary: #ffffff;
 --bs-primary: var(--brand-primary);
 --bs-primary-rgb: var(--brand-primary-rgb);
 /* Outline-tone: mørkere variant av primærfargen for bedre kontrast */
 --brand-primary-outline: color-mix(in oklab, var(--bs-primary) var(--brand-outline-strength, 60%), #000);
 /* Light mode subtle – MER mettet bakgrunn + mørkere tekst for tydeligere kontrast */
 --bs-primary-bg-subtle: color-mix(in oklab, var(--bs-primary) 30%, #fff);
 --bs-primary-border-subtle: color-mix(in oklab, var(--bs-primary) 52%, #fff);
 --bs-primary-text-emphasis: color-mix(in oklab, var(--bs-primary) 80%, #000);
 --brand-soft-bg: linear-gradient(
 180deg,
 rgba(var(--brand-primary-rgb), .06),
 rgba(var(--brand-primary-rgb), 0)
 );
 --brand-on-primary: #ffffff;
 --brand-on-secondary: #ffffff;
 --brand-on-accent: #ffffff;
 --brand-on-info: #ffffff;
 --brand-on-success: #ffffff;
 --brand-on-warning: #0a0a0a;
 --brand-on-danger: #ffffff;
 --brand-btn-primary-bg: var(--bs-primary, #0d6efd);
 --brand-btn-primary-text: var(--brand-on-primary);
 --brand-btn-secondary-bg: var(--brand-secondary, var(--bs-secondary, #6c757d));
 --brand-btn-secondary-text: var(--brand-on-secondary);
 --brand-btn-info-bg: var(--bs-info, #0dcaf0);
 --brand-btn-info-text: var(--brand-on-info);
 --brand-btn-success-bg: var(--bs-success, #198754);
 --brand-btn-success-text: var(--brand-on-success);
 --brand-btn-warning-bg: var(--bs-warning, #ffc107);
 --brand-btn-warning-text: var(--brand-on-warning);
 --brand-btn-danger-bg: var(--bs-danger, #dc3545);
 --brand-btn-danger-text: var(--brand-on-danger);
 --brand-badge-primary-text: var(--brand-on-primary);
 --brand-badge-secondary-text: var(--brand-on-secondary);
 --brand-badge-info-text: var(--brand-on-info);
 --brand-badge-success-text: var(--brand-on-success);
 --brand-badge-warning-text: var(--brand-on-warning);
 --brand-badge-danger-text: var(--brand-on-danger);
 --brand-toast-info-bg: var(--bs-info, #0dcaf0);
 --brand-toast-info-text: var(--brand-on-info);
 --brand-toast-info-link: var(--brand-toast-info-text);
 --brand-toast-info-link-hover: var(--brand-toast-info-link);
 --brand-toast-primary-bg: var(--brand-primary, var(--bs-primary, #0d6efd));
 --brand-toast-primary-text: var(--brand-on-primary);
 --brand-toast-primary-link: var(--brand-toast-primary-text);
 --brand-toast-primary-link-hover: var(--brand-toast-primary-link);
 --brand-toast-primary-close-filter: brightness(0) invert(1);
 --brand-toast-secondary-close-filter: brightness(0) invert(1);
 --brand-toast-brand-bg: var(--brand-toast-primary-bg);
 --brand-toast-brand-text: var(--brand-toast-primary-text);
 --brand-toast-brand-link: var(--brand-on-primary);
 --brand-toast-brand-link-hover: var(--brand-toast-brand-link);
 --brand-toast-secondary-text: var(--brand-on-secondary);
 --brand-toast-secondary-link: var(--brand-on-secondary);
 --brand-toast-secondary-link-hover: var(--brand-toast-secondary-link);
 --brand-toast-success-bg: var(--bs-success, #198754);
 --brand-toast-success-text: var(--brand-on-success);
 --brand-toast-success-link: var(--brand-toast-success-text);
 --brand-toast-success-link-hover: var(--brand-toast-success-link);
 --brand-toast-success-close-filter: brightness(0) invert(1);
 --brand-toast-warning-bg: var(--bs-warning, #ffc107);
 --brand-toast-warning-text: var(--brand-on-warning);
 --brand-toast-warning-link: var(--brand-toast-warning-text);
 --brand-toast-warning-link-hover: var(--brand-toast-warning-link);
 --brand-toast-warning-close-filter: none;
 --brand-toast-danger-bg: var(--bs-danger, #dc3545);
 --brand-toast-danger-text: var(--brand-on-danger);
 --brand-toast-danger-link: var(--brand-toast-danger-text);
 --brand-toast-danger-link-hover: var(--brand-toast-danger-link);
 --brand-toast-danger-close-filter: brightness(0) invert(1);
 --brand-toast-info-close-filter: brightness(0) invert(1);
 --brand-secondary: #16D4D0;
 --brand-on-secondary: #ffffff;
 --bs-secondary: var(--brand-secondary);
 /* Light mode subtle – lett justert bakgrunn, MEN vesentlig mørkere tekst */
 --bs-secondary-bg-subtle: color-mix(in oklab, var(--bs-secondary) 24%, #fff);
 --bs-secondary-border-subtle: color-mix(in oklab, var(--bs-secondary) 40%, #fff);
 --bs-secondary-text-emphasis: color-mix(in oklab, var(--bs-secondary) 80%, #000);
 --brand-radius-base-px: 10px;
 --brand-radius-button-px: 12px;
 --brand-radius-card-px: 18px;
 /* rem-varianter for moderne komponenter / clamp / fluid UI */
 --brand-radius-base-rem: 0.625rem;
 --brand-radius-button-rem: 0.75rem;
 --brand-radius-card-rem: 1.125rem;
 --brand-surface: #FFFFFF;
 --brand-border-color: #D9E1EC;
 --brand-card-bg: var(--brand-surface);
 --brand-card-text: var(--brand-body-color, var(--bs-body-color, #212529));
 --brand-card-border: var(--brand-border-color);
 --brand-card-header-bg: color-mix(in oklab, var(--brand-card-text) 4%, var(--brand-card-bg));
 --brand-card-header-text: var(--brand-card-text);
 --brand-surface-hover: color-mix(in oklab, var(--brand-card-text) 6%, var(--brand-surface));
 --brand-surface-active: color-mix(in oklab, var(--brand-card-text) 10%, var(--brand-surface));
 --brand-modal-bg: var(--brand-surface);
 --brand-modal-text: var(--brand-card-text);
 --brand-modal-border: var(--brand-border-color);
 --brand-tooltip-bg: var(--brand-surface);
 --brand-tooltip-text: var(--brand-card-text);
 --brand-tooltip-border: var(--brand-border-color);
 --brand-popover-bg: var(--brand-surface);
 --brand-popover-text: var(--brand-card-text);
 --brand-popover-border: var(--brand-border-color);
 --brand-search-surface: var(--brand-surface);
 --brand-search-border: var(--brand-border-color);
 --brand-table-bg: var(--brand-surface);
 --brand-table-text: var(--brand-body-color, var(--bs-body-color, #212529));
 --brand-table-border: var(--brand-border-color);
 --brand-table-header-bg: color-mix(in oklab, var(--brand-table-text) 5%, var(--brand-table-bg));
 --brand-table-header-text: var(--brand-table-text);
 --brand-table-striped-bg: color-mix(in oklab, var(--brand-table-text) 3%, var(--brand-table-bg));
 --brand-table-striped-text: var(--brand-table-text);
 --brand-table-hover-bg: color-mix(in oklab, var(--brand-table-text) 6%, var(--brand-table-bg));
 --brand-table-hover-text: var(--brand-table-text);
 --brand-table-active-bg: color-mix(in oklab, var(--brand-primary, var(--bs-primary, #0d6efd)) 12%, var(--brand-table-bg));
 --brand-table-active-text: var(--brand-table-text);
 --brand-table-min-width: 52rem;
 --brand-form-bg: var(--brand-surface);
 --brand-form-text: var(--brand-body-color, var(--bs-body-color, #212529));
 --brand-form-border: var(--brand-border-color);
 --brand-form-focus: var(--focus-color, var(--brand-primary, var(--bs-primary, #0d6efd)));
 --brand-form-placeholder: color-mix(in oklab, var(--brand-form-text) 55%, transparent);
 --brand-form-disabled-bg: color-mix(in oklab, var(--brand-form-text) 7%, var(--brand-form-bg));
 --brand-form-disabled-text: color-mix(in oklab, var(--brand-form-text) 55%, var(--brand-form-bg));
 --brand-form-check-bg: var(--brand-form-bg);
 --brand-form-check-border: var(--brand-form-border);
 --brand-form-check-checked-bg: var(--brand-primary, var(--bs-primary, #0d6efd));
 --brand-form-check-indicator: var(--brand-on-primary, #ffffff);
 --brand-form-check-focus: var(--brand-form-focus);
 --brand-form-check-disabled: var(--brand-form-disabled-text);
 --brand-dropdown-bg: var(--brand-surface);
 --brand-dropdown-text: var(--brand-body-color, var(--bs-body-color, #212529));
 --brand-dropdown-border: var(--brand-border-color);
 --brand-dropdown-hover-bg: color-mix(in oklab, var(--brand-dropdown-text) 7%, var(--brand-dropdown-bg));
 --brand-dropdown-active-bg: var(--brand-primary, var(--bs-primary, #0d6efd));
 --brand-nav-bg: var(--brand-navbar-bg, var(--brand-primary, var(--bs-primary, #0d6efd)));
 --brand-nav-text: var(--brand-navbar-link, var(--brand-on-navbar-bg, #ffffff));
 --brand-nav-muted: color-mix(in oklab, var(--brand-nav-text) 70%, var(--brand-nav-bg));
 --brand-nav-border: color-mix(in oklab, var(--brand-nav-text) 18%, transparent);
 --brand-nav-hover-bg: color-mix(in oklab, var(--brand-nav-text) 12%, transparent);
 --brand-nav-hover-text: var(--brand-navbar-link-hover, var(--brand-nav-text));
 --brand-nav-active-bg: color-mix(in oklab, var(--brand-nav-text) 18%, transparent);
 --brand-nav-active-text: var(--brand-nav-hover-text);
 --brand-nav-bubble-bg: #232939;
 --brand-nav-bubble-text: #ffffff;
 --brand-nav-bubble-border: color-mix(in oklab, var(--brand-nav-text) 22%, transparent);
 --brand-nav-search-bg: var(--brand-nav-bg);
 --brand-nav-search-text: var(--brand-nav-text);
 --brand-nav-search-placeholder: color-mix(in oklab, var(--brand-nav-text) 65%, transparent);
 --brand-nav-search-border: var(--brand-nav-border);
 --brand-nav-search-focus: var(--focus-color, var(--brand-primary, var(--bs-primary, #0d6efd)));
 --brand-sidebar-bg: var(--brand-surface, var(--brand-body-bg, #ffffff));
 --brand-sidebar-text: var(--brand-body-color, var(--bs-body-color, #212529));
 --brand-sidebar-muted: color-mix(in oklab, var(--brand-sidebar-text) 62%, var(--brand-sidebar-bg));
 --brand-sidebar-border: var(--brand-border-color, var(--bs-border-color, rgba(0,0,0,.12)));
 --brand-sidebar-hover-bg: var(--brand-surface-hover, color-mix(in oklab, var(--brand-sidebar-text) 7%, var(--brand-sidebar-bg)));
 --brand-sidebar-hover-text: var(--brand-sidebar-text);
 --brand-sidebar-active-bg: color-mix(in oklab, var(--brand-primary, var(--bs-primary, #0d6efd)) 12%, var(--brand-sidebar-bg));
 --brand-sidebar-active-text: var(--brand-sidebar-text);
 --brand-sidebar-active-border: var(--brand-primary, var(--bs-primary, #0d6efd));
 --brand-offcanvas-close-text: #ffffff;
 --brand-offcanvas-close-filter: brightness(0) invert(1);
 --bs-border-color: var(--brand-border-color);
 --bs-card-bg: var(--brand-card-bg);
 --bs-card-color: var(--brand-card-text);
 --bs-card-border-color: var(--brand-card-border);
 --bs-card-cap-bg: var(--brand-card-header-bg);
 --bs-card-cap-color: var(--brand-card-header-text);
 --bs-modal-bg: var(--brand-modal-bg);
 --bs-modal-color: var(--brand-modal-text);
 --bs-modal-border-color: var(--brand-modal-border);
 --bs-tooltip-bg: var(--brand-tooltip-bg);
 --bs-tooltip-color: var(--brand-tooltip-text);
 --bs-popover-bg: var(--brand-popover-bg);
 --bs-popover-body-color: var(--brand-popover-text);
 --bs-popover-border-color: var(--brand-popover-border);
 --bs-table-bg: var(--brand-table-bg);
 --bs-table-color: var(--brand-table-text);
 --bs-table-border-color: var(--brand-table-border);
 --bs-table-striped-bg: var(--brand-table-striped-bg);
 --bs-table-striped-color: var(--brand-table-striped-text);
 --bs-table-hover-bg: var(--brand-table-hover-bg);
 --bs-table-hover-color: var(--brand-table-hover-text);
 --bs-table-active-bg: var(--brand-table-active-bg);
 --bs-table-active-color: var(--brand-table-active-text);
/* Pill-utility: full avrunding (capsule) */
 --brand-radius-pill: 9999px;
 /* Bootstrap overrides */
 --bs-border-radius: var(--brand-radius-base-px);
 --bs-btn-border-radius: var(--brand-radius-button-px);
 --bs-card-border-radius: var(--brand-radius-card-px);
 --bs-alert-border-radius: var(--brand-radius-card-px);
 --bs-modal-border-radius: var(--brand-radius-card-px);
 --bs-toast-border-radius: var(--brand-radius-card-px);
 --breadcrumb-spacing-top: 1.25rem; /* 20px */
 --breadcrumb-spacing-bottom: 1.35rem; /* 28px */
 --brand-accent: #3A32F5;
 --brand-on-accent: #ffffff;
 --brand-body-bg: #F5F7FB;
 --bs-body-bg: var(--brand-body-bg);
 --brand-body-color: #1F2937;
 --bs-body-color: var(--brand-body-color);
 --brand-heading-color: #0B1220;
 --bs-heading-color: var(--brand-heading-color);
 --brand-link: #1E63FF;
 --bs-link-color: var(--brand-link);
 --brand-link-hover: #1550D8;
 --bs-link-hover-color: var(--brand-link-hover);
 --brand-link-visited: #4F46E5;
 --brand-navbar-link: #D8E2F0;
 --brand-navbar-link-hover: #FFFFFF;
 --brand-navbar-bg: #0A1020;
 --brand-on-navbar-bg: #ffffff;
 --brand-info: #0EA5E9;
 --brand-on-info: #ffffff;
 --bs-info: var(--brand-info);
 --bs-info-bg-subtle: color-mix(in oklab, var(--bs-info) 15%, #fff);
 --bs-info-border-subtle: color-mix(in oklab, var(--bs-info) 30%, #fff);
 --bs-info-text-emphasis: color-mix(in oklab, var(--bs-info) 40%, #000);
 --brand-success: #10B981;
 --brand-on-success: #ffffff;
 --bs-success: var(--brand-success);
 --bs-success-bg-subtle: color-mix(in oklab, var(--bs-success) 15%, #fff);
 --bs-success-border-subtle: color-mix(in oklab, var(--bs-success) 30%, #fff);
 --bs-success-text-emphasis: color-mix(in oklab, var(--bs-success) 35%, #0a0a0a);
 --brand-warning: #F59E0B;
 --brand-on-warning: #0a0a0a;
 --bs-warning: var(--brand-warning);
 --bs-warning-bg-subtle: color-mix(in oklab, var(--bs-warning) 20%, #fff);
 --bs-warning-border-subtle: color-mix(in oklab, var(--bs-warning) 35%, #fff);
 --bs-warning-text-emphasis: color-mix(in oklab, var(--bs-warning) 40%, #000);
 --brand-danger: #EF4444;
 --brand-on-danger: #ffffff;
 --bs-danger: var(--brand-danger);
 --bs-danger-bg-subtle: color-mix(in oklab, var(--bs-danger) 15%, #fff);
 --bs-danger-border-subtle: color-mix(in oklab, var(--bs-danger) 30%, #fff);
 --bs-danger-text-emphasis: color-mix(in oklab, var(--bs-danger) 38%, #000);
 --brand-font-family: "acumin-pro", sans-serif;;
 --brand-heading-font-family: "Soleil", "Inter", "Segoe UI", sans-serif;
 --brand-font-size: 16;
 --brand-font-size-px: 16px;
 --brand-body-weight: 300;
 --brand-heading-weight: 500;
 --brand-h1: 40px; --brand-h2: 30px; --brand-h3: 26px;
 --brand-h4: 22px; --brand-h5: 20px; --brand-h6: 18px;
 --brand-radius-base: 10;
 --brand-radius-btn: 12;
 --brand-radius-card: 18;
--brand-outline-strength: 60%; 
 --brand-h1-color: #0B1220;
 --brand-h2-color: #111827;
 --brand-h3to6-color: #1F2937;
 --brand-footer-bg: #0A1020; --brand-footer-color: #C7D2E3; --brand-footer-link: #E5ECF6; --brand-footer-link-hover: #FFFFFF; /* NY */
 --brand-footer-link-visited: #A5B4FC; /* NY */
 --brand-footer-focus: #16D4D0; 
 --focus-color: #16D4D0;
 --brand-focus-rgba: rgba(22, 212, 208, .25);
 --brand-focus-width: 3px;
 --brand-focus-outline-offset: 2px;
 /* Eksplicitte brand-tokens for komponenter som vil “henge seg på” fokus */
 --brand-focus-border: var(--focus-color);
 --brand-focus-ring: var(--brand-focus-rgba);
 /* Koble til Bootstrap */
 --bs-focus-ring-width: var(--brand-focus-width);
 --bs-focus-ring-color: var(--brand-focus-rgba);
 --bs-btn-focus-shadow-rgb: 22, 212, 208;
}
.tooltip {
 --bs-tooltip-bg: var(--brand-tooltip-bg, var(--brand-surface, var(--bs-body-bg)));
 --bs-tooltip-color: var(--brand-tooltip-text, var(--brand-card-text, var(--bs-body-color)));
}
.popover {
 --bs-popover-bg: var(--brand-popover-bg, var(--brand-surface, var(--bs-body-bg)));
 --bs-popover-body-color: var(--brand-popover-text, var(--brand-card-text, var(--bs-body-color)));
 --bs-popover-border-color: var(--brand-popover-border, var(--brand-border-color, var(--bs-border-color)));
}
:root[data-theme="dark"]{
 /* Bakgrunn og tekst */
 --brand-secondary: #20E1DC;
 --brand-on-secondary: #0a0a0a;
 
 /* mørkest: dette er selve sida */
 --brand-body-bg: #070B14;
 --bs-body-bg: #070B14;
 --brand-body-color: #DCE6F5;
 --bs-body-color: #DCE6F5;
 
 --brand-heading-color: #FFFFFF;
 
 /* Flater og border i dark – kort skal være lysere enn bakgrunn */
 /* admin har eksplisitt valgt kort/flate-farge */
 --brand-surface: #111827;
 --brand-border-color: #253247;
 
 /* Primær i dark – fall tilbake til lys primær hvis ikke satt */
 --brand-primary: #3B82FF;
 --brand-primary-rgb: 59, 130, 255;
 --brand-on-primary: #ffffff;
 --bs-primary: var(--brand-primary);
 --bs-primary-rgb: var(--brand-primary-rgb);
 
 /* Navbar i dark */
 --brand-navbar-bg: #050816;
 --brand-on-navbar-bg: #ffffff;
 --brand-nav-bubble-bg: #1E2231;
 --brand-nav-bubble-text: #ffffff;
 --brand-offcanvas-close-text: #ffffff;
 --brand-offcanvas-close-filter: brightness(0) invert(1);
 --brand-navbar-link: #D7E4F5;
 --brand-navbar-link-hover: #FFFFFF;
 /* Lenker i dark */
 --brand-link: #5AA2FF;
 --bs-link-color: #5AA2FF;
 --brand-link-hover: #8BC4FF;
 --bs-link-hover-color: #8BC4FF;
 
 /* Footer i dark */
 --brand-footer-bg: #050816;
 --brand-footer-color: #C6D4E6;
 --brand-footer-link: #E5ECF6;
 --brand-footer-link-hover: #FFFFFF;
 --brand-footer-link-visited: #A5B4FC;
 --brand-footer-focus: #20E1DC;
 /* Tabellpalett for dark */
 --brand-table-bg: var(--brand-surface, rgba(255,255,255,.02));
 --brand-table-text: var(--brand-body-color, #f5f5f5);
 --brand-table-border: var(--brand-border-color, rgba(255,255,255,.08));
 --brand-table-header-bg: color-mix(in oklab, var(--brand-table-text) 5%, var(--brand-table-bg));
 --brand-table-header-text: var(--brand-heading-color, var(--brand-table-text));
 --brand-table-striped-bg: color-mix(in oklab, var(--brand-table-text) 3%, var(--brand-table-bg));
 --brand-table-striped-text: var(--brand-table-text);
 --brand-table-hover-bg: color-mix(in oklab, var(--brand-table-text) 6%, var(--brand-table-bg));
 --brand-table-hover-text: var(--brand-table-text);
 --brand-table-active-bg: color-mix(in oklab, var(--brand-primary, var(--bs-primary, #3b82f6)) 18%, var(--brand-table-bg));
 --brand-table-active-text: var(--brand-table-text);
 --bs-table-color: var(--brand-table-text);
 --bs-table-bg: var(--brand-table-bg);
 --bs-table-border-color: var(--brand-table-border);
 --bs-table-striped-bg: var(--brand-table-striped-bg);
 --bs-table-striped-color: var(--brand-table-striped-text);
 --bs-table-hover-bg: var(--brand-table-hover-bg);
 --bs-table-hover-color: var(--brand-table-hover-text);
 --bs-table-active-bg: var(--brand-table-active-bg);
 --bs-table-active-color: var(--brand-table-active-text);
}
/* Auto-dark for brukere som har det i OS, men bare hvis vi IKKE har tvunget light */
@media (prefers-color-scheme: dark) {
 :root:not([data-theme="light"]) {
 /* mørk side-bakgrunn */
 --brand-body-bg: #070B14;
 --bs-body-bg: #070B14;
 /* men kort/flater skal være basert på darkSurface, ikke ta over body */
 --brand-surface: #111827;
 --brand-heading-color: #FFFFFF;
 
 
 --brand-border-color: #253247;
 
 --brand-primary: #3B82FF;
 --brand-primary-rgb: 59, 130, 255;
 --brand-on-primary: #ffffff;
 --bs-primary: var(--brand-primary);
 --bs-primary-rgb: var(--brand-primary-rgb);
 
 --brand-navbar-bg: #050816;
 --brand-on-navbar-bg: #ffffff;
 --brand-nav-bubble-bg: #1E2231;
 --brand-nav-bubble-text: #ffffff;
 --brand-navbar-link: #D7E4F5;
 --brand-navbar-link-hover: #FFFFFF;
 /* Lenker i dark */
 --brand-link: #5AA2FF;
 --bs-link-color: #5AA2FF;
 --brand-link-hover: #8BC4FF;
 --bs-link-hover-color: #8BC4FF;
 
 /* Footer i dark */
 --brand-footer-bg: #050816;
 --brand-footer-color: #C6D4E6;
 --brand-footer-link: #E5ECF6;
 --brand-footer-link-hover: #FFFFFF;
 --brand-footer-link-visited: #A5B4FC;
 --brand-footer-focus: #20E1DC;
 /* Tabellpalett for dark */
 --brand-table-bg: var(--brand-surface, rgba(255,255,255,.02));
 --brand-table-text: var(--brand-body-color, #f5f5f5);
 --brand-table-border: var(--brand-border-color, rgba(255,255,255,.08));
 --brand-table-header-bg: color-mix(in oklab, var(--brand-table-text) 5%, var(--brand-table-bg));
 --brand-table-header-text: var(--brand-heading-color, var(--brand-table-text));
 --brand-table-striped-bg: color-mix(in oklab, var(--brand-table-text) 3%, var(--brand-table-bg));
 --brand-table-striped-text: var(--brand-table-text);
 --brand-table-hover-bg: color-mix(in oklab, var(--brand-table-text) 6%, var(--brand-table-bg));
 --brand-table-hover-text: var(--brand-table-text);
 --brand-table-active-bg: color-mix(in oklab, var(--brand-primary, var(--bs-primary, #3b82f6)) 18%, var(--brand-table-bg));
 --brand-table-active-text: var(--brand-table-text);
 --bs-table-color: var(--brand-table-text);
 --bs-table-bg: var(--brand-table-bg);
 --bs-table-border-color: var(--brand-table-border);
 --bs-table-striped-bg: var(--brand-table-striped-bg);
 --bs-table-striped-color: var(--brand-table-striped-text);
 --bs-table-hover-bg: var(--brand-table-hover-bg);
 --bs-table-hover-color: var(--brand-table-hover-text);
 --bs-table-active-bg: var(--brand-table-active-bg);
 --bs-table-active-color: var(--brand-table-active-text);
 }
}
/* ===== Globalt ===== */
body{
 font-family: var(--brand-font-family) !important;
 font-size: var(--brand-font-size-px) !important;
 color: var(--brand-body-color) !important; background: var(--brand-body-bg) !important;}
h1,h2,h3,h4,h5,h6{
 font-family: var(--brand-heading-font-family, var(--brand-font-family)) !important;
}
/* === Heading-nivåfarger (kaskade) ===
 Regler:
 - Hvis kun H1 satt: bruk H1 på alle nivåer.
 - Hvis H1+H2 satt men ikke H3: H1→h1, H2→h2, H2 fallback for h3–h6.
 - Hvis H3 satt: H3 brukes på h3–h6.
 - Hvis ingen satt: fall tilbake til global --brand-heading-color (om satt) ellers ingen override.
*/
:root{
 --_h1c: #0B1220;
 --_h2c: #111827;
 --_h3c: #1F2937;
}
h1{ color: var(--_h1c) !important; }
h2{ color: var(--_h2c) !important; }
h3, h4, h5, h6{ color: var(--_h3c) !important; }
/* ===== Lenker ===== */
a{ color: var(--brand-link); }a:hover{ color: var(--brand-link-hover); text-decoration: none; }a:visited{ color: var(--brand-link-visited); }
/* Toast-lenker må vinne over globale brand-lenker fordi brand.css.php lastes etter custom.css. */
.toast a,
.toast a:visited {
 color: currentColor !important;
}
.toast a:hover,
.toast a:focus {
 color: currentColor !important;
}
.toast.bg-success a,
.toast.bg-success a:visited {
 color: var(--brand-toast-success-link, currentColor) !important;
}
.toast.bg-success a:hover,
.toast.bg-success a:focus {
 color: var(--brand-toast-success-link-hover, var(--brand-toast-success-link, currentColor)) !important;
}
.toast.bg-danger a,
.toast.bg-danger a:visited {
 color: var(--brand-toast-danger-link, currentColor) !important;
}
.toast.bg-danger a:hover,
.toast.bg-danger a:focus {
 color: var(--brand-toast-danger-link-hover, var(--brand-toast-danger-link, currentColor)) !important;
}
.toast.bg-warning a,
.toast.bg-warning a:visited {
 color: var(--brand-toast-warning-link, currentColor) !important;
}
.toast.bg-warning a:hover,
.toast.bg-warning a:focus {
 color: var(--brand-toast-warning-link-hover, var(--brand-toast-warning-link, currentColor)) !important;
}
.toast.bg-info a,
.toast.bg-info a:visited {
 color: var(--brand-toast-info-link, currentColor) !important;
}
.toast.bg-info a:hover,
.toast.bg-info a:focus {
 color: var(--brand-toast-info-link-hover, var(--brand-toast-info-link, currentColor)) !important;
}
.toast.bg-brand a,
.toast.bg-brand a:visited {
 color: var(--brand-toast-brand-link, currentColor) !important;
}
.toast.bg-brand a:hover,
.toast.bg-brand a:focus {
 color: var(--brand-toast-brand-link-hover, var(--brand-toast-brand-link, currentColor)) !important;
}
.toast.bg-primary a,
.toast.bg-primary a:visited {
 color: var(--brand-toast-primary-link, currentColor) !important;
}
.toast.bg-primary a:hover,
.toast.bg-primary a:focus {
 color: var(--brand-toast-primary-link-hover, var(--brand-toast-primary-link, currentColor)) !important;
}
.toast.bg-secondary a,
.toast.bg-secondary a:visited {
 color: var(--brand-toast-secondary-link, currentColor) !important;
}
.toast.bg-secondary a:hover,
.toast.bg-secondary a:focus {
 color: var(--brand-toast-secondary-link-hover, var(--brand-toast-secondary-link, currentColor)) !important;
}
/* ===== Navbar ===== */
.navbar-toggler-icon{
 background-image: url(data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2030%2030%22%3E%3Cpath%20stroke%3D%22%23D8E2F0%22%20stroke-linecap%3D%22round%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%222%22%20d%3D%22M4%207h22M4%2015h22M4%2023h22%22%2F%3E%3C%2Fsvg%3E) !important;
}
/* når vi er i dark → bruk den lyse burgeren */
:root[data-theme="dark"] .navbar-toggler-icon{
 background-image: url(data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2030%2030%22%3E%3Cpath%20stroke%3D%22%23D7E4F5%22%20stroke-linecap%3D%22round%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%222%22%20d%3D%22M4%207h22M4%2015h22M4%2023h22%22%2F%3E%3C%2Fsvg%3E) !important;
}
/* og for de som kun har OS-dark uten data-theme=light (du har allerede media-query) */
@media (prefers-color-scheme: dark) {
 :root:not([data-theme="light"]) .navbar-toggler-icon{
 background-image: url(data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2030%2030%22%3E%3Cpath%20stroke%3D%22%23D7E4F5%22%20stroke-linecap%3D%22round%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%222%22%20d%3D%22M4%207h22M4%2015h22M4%2023h22%22%2F%3E%3C%2Fsvg%3E) !important;
 }
}
/* Primary */
.btn-primary, a.btn.btn-primary{
 --bs-btn-color: var(--brand-on-primary);
 --bs-btn-bg: var(--bs-primary, #0d6efd);
 --bs-btn-border-color: var(--bs-primary, #0d6efd);
 --bs-btn-hover-color: var(--brand-on-primary);
 --bs-btn-hover-bg: color-mix(in oklab, var(--bs-primary, #0d6efd) 85%, #000);
 --bs-btn-hover-border-color: color-mix(in oklab, var(--bs-primary, #0d6efd) 80%, #000);
 --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb, 13, 110, 253);
 --bs-btn-active-color: var(--brand-on-primary);
 --bs-btn-active-bg: var(--bs-btn-hover-bg);
 --bs-btn-active-border-color: var(--bs-btn-hover-border-color);
 --bs-btn-disabled-color: var(--brand-on-primary);
 --bs-btn-disabled-bg: var(--bs-primary, #0d6efd);
 --bs-btn-disabled-border-color: var(--bs-primary, #0d6efd);
 background-color: var(--bs-btn-bg) !important;
 border-color: var(--bs-btn-border-color) !important;
 color: var(--bs-btn-color) !important;
}
.btn-primary:hover,
a.btn.btn-primary:hover
{
 background-color: var(--bs-btn-hover-bg) !important;
 border-color: var(--bs-btn-hover-border-color) !important;
 color: var(--bs-btn-hover-color) !important;
 box-shadow: 0 0 0 .25rem color-mix(in oklab, var(--bs-primary, #0d6efd) 35%, transparent) !important;
 outline: none !important;
}
.btn-outline-primary:hover,
a.btn.btn-outline-primary:hover {
 background-color: color-mix(in oklab, var(--bs-primary, #0d6efd) 85%, #000) !important;
 border-color: color-mix(in oklab, var(--bs-primary, #0d6efd) 80%, #000) !important;
 color: var(--brand-on-primary) !important;
 box-shadow: 0 0 0 .25rem color-mix(in oklab, var(--bs-primary, #0d6efd) 35%, transparent) !important;
 outline: none !important;
}
/* Secondary */
.btn-secondary, a.btn.btn-secondary{
 background-color: var(--brand-secondary) !important;
 border-color: var(--brand-secondary) !important;
 color: var(--brand-on-secondary) !important;
}
.btn-outline-secondary, a.btn.btn-outline-secondary{
 color: var(--brand-secondary) !important;
 border-color: var(--brand-secondary) !important;
 background: transparent !important;
}
.btn-outline-secondary:hover, .btn-outline-secondary:focus,
a.btn.btn-outline-secondary:hover, a.btn.btn-outline-secondary:focus{
 background-color: var(--brand-secondary) !important;
 border-color: var(--brand-secondary) !important;
 color: var(--brand-on-secondary) !important;
}
/* Accent */
.btn-accent, a.btn.btn-accent{
 color: var(--brand-on-accent) !important;
 background-color: var(--brand-accent) !important;
 border-color: var(--brand-accent) !important;
}
.btn-outline-accent, a.btn.btn-outline-accent{
 color: var(--brand-accent) !important;
 border-color: var(--brand-accent) !important;
 background: transparent !important;
}
.btn-outline-accent:hover, .btn-outline-accent:focus,
a.btn.btn-outline-accent:hover, a.btn.btn-outline-accent:focus{
 color: var(--brand-on-accent) !important;
 background-color: var(--brand-accent) !important;
 border-color: var(--brand-accent) !important;
}
/* Semantic buttons */
.btn-info, a.btn.btn-info{
 --bs-btn-color: var(--brand-on-info);
 --bs-btn-bg: var(--bs-info);
 --bs-btn-border-color: var(--bs-info);
 --bs-btn-hover-color: var(--brand-on-info);
 --bs-btn-hover-bg: color-mix(in oklab, var(--bs-info) 85%, #000);
 --bs-btn-hover-border-color: color-mix(in oklab, var(--bs-info) 80%, #000);
 --bs-btn-active-color: var(--brand-on-info);
 --bs-btn-active-bg: color-mix(in oklab, var(--bs-info) 78%, #000);
 --bs-btn-active-border-color: color-mix(in oklab, var(--bs-info) 75%, #000);
}
.btn-success, a.btn.btn-success{
 --bs-btn-color: var(--brand-on-success);
 --bs-btn-bg: var(--bs-success);
 --bs-btn-border-color: var(--bs-success);
 --bs-btn-hover-color: var(--brand-on-success);
 --bs-btn-hover-bg: color-mix(in oklab, var(--bs-success) 85%, #000);
 --bs-btn-hover-border-color: color-mix(in oklab, var(--bs-success) 80%, #000);
 --bs-btn-active-color: var(--brand-on-success);
 --bs-btn-active-bg: color-mix(in oklab, var(--bs-success) 78%, #000);
 --bs-btn-active-border-color: color-mix(in oklab, var(--bs-success) 75%, #000);
}
.btn-warning, a.btn.btn-warning{
 --bs-btn-color: var(--brand-on-warning);
 --bs-btn-bg: var(--bs-warning);
 --bs-btn-border-color: var(--bs-warning);
 --bs-btn-hover-color: var(--brand-on-warning);
 --bs-btn-hover-bg: color-mix(in oklab, var(--bs-warning) 90%, #000);
 --bs-btn-hover-border-color: color-mix(in oklab, var(--bs-warning) 86%, #000);
 --bs-btn-active-color: var(--brand-on-warning);
 --bs-btn-active-bg: color-mix(in oklab, var(--bs-warning) 82%, #000);
 --bs-btn-active-border-color: color-mix(in oklab, var(--bs-warning) 80%, #000);
}
.btn-danger, a.btn.btn-danger{
 --bs-btn-color: var(--brand-on-danger);
 --bs-btn-bg: var(--bs-danger);
 --bs-btn-border-color: var(--bs-danger);
 --bs-btn-hover-color: var(--brand-on-danger);
 --bs-btn-hover-bg: color-mix(in oklab, var(--bs-danger) 85%, #000);
 --bs-btn-hover-border-color: color-mix(in oklab, var(--bs-danger) 80%, #000);
 --bs-btn-active-color: var(--brand-on-danger);
 --bs-btn-active-bg: color-mix(in oklab, var(--bs-danger) 78%, #000);
 --bs-btn-active-border-color: color-mix(in oklab, var(--bs-danger) 75%, #000);
}
/* SECONDARY */
.btn-outline-secondary,
a.btn.btn-outline-secondary{
 --bs-btn-color: color-mix(in oklab, var(--brand-secondary) var(--brand-outline-strength), #000);
 --bs-btn-border-color: color-mix(in oklab, var(--brand-secondary) var(--brand-outline-strength), #000);
 --bs-btn-hover-color: var(--brand-on-secondary, #fff);
 --bs-btn-hover-bg: var(--brand-secondary);
 --bs-btn-hover-border-color: var(--brand-secondary);
 --bs-btn-active-color: var(--brand-on-secondary, #fff);
 --bs-btn-active-bg: color-mix(in oklab, var(--brand-secondary) 78%, #000);
 --bs-btn-active-border-color: color-mix(in oklab, var(--brand-secondary) 75%, #000);
 border-width: var(--bs-btn-border-width, 1px) !important;
 border-style: solid !important;
 border-color: var(--bs-btn-border-color) !important;
}
.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
a.btn.btn-outline-secondary:hover,
a.btn.btn-outline-secondary:focus{
 border-color: var(--bs-btn-hover-border-color) !important;
}
.btn-outline-secondary:active,
a.btn.btn-outline-secondary:active{
 border-color: var(--bs-btn-active-border-color) !important;
}
/* INFO */
.btn-outline-info,
a.btn.btn-outline-info{
 --bs-btn-color: color-mix(in oklab, var(--bs-info) var(--brand-outline-strength), #000);
 --bs-btn-border-color: color-mix(in oklab, var(--bs-info) var(--brand-outline-strength), #000);
 --bs-btn-hover-color: var(--brand-on-info);
 --bs-btn-hover-bg: var(--bs-info);
 --bs-btn-hover-border-color: var(--bs-info);
 --bs-btn-active-color: var(--brand-on-info);
 --bs-btn-active-bg: color-mix(in oklab, var(--bs-info) 78%, #000);
 --bs-btn-active-border-color: color-mix(in oklab, var(--bs-info) 75%, #000);
 border-width: var(--bs-btn-border-width, 1px) !important;
 border-style: solid !important;
 border-color: var(--bs-btn-border-color) !important;
}
.btn-outline-info:hover,
.btn-outline-info:focus,
a.btn.btn-outline-info:hover,
a.btn.btn-outline-info:focus{
 border-color: var(--bs-btn-hover-border-color) !important;
}
.btn-outline-info:active,
a.btn.btn-outline-info:active{
 border-color: var(--bs-btn-active-border-color) !important;
}
/* SUCCESS */
.btn-outline-success,
a.btn.btn-outline-success{
 --bs-btn-color: color-mix(in oklab, var(--bs-success) var(--brand-outline-strength), #000);
 --bs-btn-border-color: color-mix(in oklab, var(--bs-success) var(--brand-outline-strength), #000);
 --bs-btn-hover-color: var(--brand-on-success);
 --bs-btn-hover-bg: var(--bs-success);
 --bs-btn-hover-border-color: var(--bs-success);
 --bs-btn-active-color: var(--brand-on-success);
 --bs-btn-active-bg: color-mix(in oklab, var(--bs-success) 78%, #000);
 --bs-btn-active-border-color: color-mix(in oklab, var(--bs-success) 75%, #000);
 border-width: var(--bs-btn-border-width, 1px) !important;
 border-style: solid !important;
 border-color: var(--bs-btn-border-color) !important;
}
.btn-outline-success:hover,
.btn-outline-success:focus,
a.btn.btn-outline-success:hover,
a.btn.btn-outline-success:focus{
 border-color: var(--bs-btn-hover-border-color) !important;
}
.btn-outline-success:active,
a.btn.btn-outline-success:active{
 border-color: var(--bs-btn-active-border-color) !important;
}
/* WARNING */
.btn-outline-warning,
a.btn.btn-outline-warning{
 --bs-btn-color: color-mix(in oklab, var(--bs-warning) var(--brand-outline-strength), #000);
 --bs-btn-border-color: color-mix(in oklab, var(--bs-warning) var(--brand-outline-strength), #000);
 --bs-btn-hover-color: var(--brand-on-warning);
 --bs-btn-hover-bg: var(--bs-warning);
 --bs-btn-hover-border-color: var(--bs-warning);
 --bs-btn-active-color: var(--brand-on-warning);
 --bs-btn-active-bg: color-mix(in oklab, var(--bs-warning) 82%, #000);
 --bs-btn-active-border-color: color-mix(in oklab, var(--bs-warning) 80%, #000);
 border-width: var(--bs-btn-border-width, 1px) !important;
 border-style: solid !important;
 border-color: var(--bs-btn-border-color) !important;
}
.btn-outline-warning:hover,
.btn-outline-warning:focus,
a.btn.btn-outline-warning:hover,
a.btn.btn-outline-warning:focus{
 border-color: var(--bs-btn-hover-border-color) !important;
}
.btn-outline-warning:active,
a.btn.btn-outline-warning:active{
 border-color: var(--bs-btn-active-border-color) !important;
}
/* DANGER */
.btn-outline-danger,
a.btn.btn-outline-danger{
 --bs-btn-color: color-mix(in oklab, var(--bs-danger) var(--brand-outline-strength), #000);
 --bs-btn-border-color: color-mix(in oklab, var(--bs-danger) var(--brand-outline-strength), #000);
 --bs-btn-hover-color: var(--brand-on-danger);
 --bs-btn-hover-bg: var(--bs-danger);
 --bs-btn-hover-border-color: var(--bs-danger);
 --bs-btn-active-color: var(--brand-on-danger);
 --bs-btn-active-bg: color-mix(in oklab, var(--bs-danger) 78%, #000);
 --bs-btn-active-border-color: color-mix(in oklab, var(--bs-danger) 75%, #000);
 border-width: var(--bs-btn-border-width, 1px) !important;
 border-style: solid !important;
 border-color: var(--bs-btn-border-color) !important;
}
.btn-outline-danger:hover,
.btn-outline-danger:focus,
a.btn.btn-outline-danger:hover,
a.btn.btn-outline-danger:focus{
 border-color: var(--bs-btn-hover-border-color) !important;
}
.btn-outline-danger:active,
a.btn.btn-outline-danger:active{
 border-color: var(--bs-btn-active-border-color) !important;
}
/* ACCENT (dersom dere bruker egen accent-variant) */
.btn-outline-accent,
a.btn.btn-outline-accent{
 --bs-btn-color: color-mix(in oklab, var(--brand-accent) var(--brand-outline-strength), #000);
 --bs-btn-border-color: color-mix(in oklab, var(--brand-accent) var(--brand-outline-strength), #000);
 --bs-btn-hover-color: var(--brand-on-accent, #fff);
 --bs-btn-hover-bg: var(--brand-accent);
 --bs-btn-hover-border-color: var(--brand-accent);
 --bs-btn-active-color: var(--brand-on-accent, #fff);
 --bs-btn-active-bg: color-mix(in oklab, var(--brand-accent) 78%, #000);
 --bs-btn-active-border-color: color-mix(in oklab, var(--brand-accent) 75%, #000);
 border-width: var(--bs-btn-border-width, 1px) !important;
 border-style: solid !important;
 border-color: var(--bs-btn-border-color) !important;
}
.btn-outline-accent:hover,
.btn-outline-accent:focus,
a.btn.btn-outline-accent:hover,
a.btn.btn-outline-accent:focus{
 border-color: var(--bs-btn-hover-border-color) !important;
}
.btn-outline-accent:active,
a.btn.btn-outline-accent:active{
 border-color: var(--bs-btn-active-border-color) !important;
}
/* Alerts */
.alert-primary{
 --bs-alert-color: var(--bs-primary-text-emphasis, color-mix(in oklab, var(--bs-primary, #0d6efd) 80%, #000));
 --bs-alert-bg: var(--bs-primary-bg-subtle, color-mix(in oklab, var(--bs-primary, #0d6efd) 30%, #fff));
 --bs-alert-border-color: var(--bs-primary-border-subtle, color-mix(in oklab, var(--bs-primary, #0d6efd) 52%, #fff));
}
.alert-secondary{
 --bs-alert-color: var(--bs-secondary-text-emphasis, color-mix(in oklab, var(--bs-secondary, #6c757d) 80%, #000));
 --bs-alert-bg: var(--bs-secondary-bg-subtle, color-mix(in oklab, var(--bs-secondary, #6c757d) 24%, #fff));
 --bs-alert-border-color: var(--bs-secondary-border-subtle, color-mix(in oklab, var(--bs-secondary, #6c757d) 40%, #fff));
}
.alert-info{
 --bs-alert-color: var(--bs-info-text-emphasis);
 --bs-alert-bg: var(--bs-info-bg-subtle);
 --bs-alert-border-color: color-mix(in oklab, var(--bs-info) 30%, #fff);
}
.alert-success{
 --bs-alert-color: var(--bs-success-text-emphasis);
 --bs-alert-bg: var(--bs-success-bg-subtle);
 --bs-alert-border-color: color-mix(in oklab, var(--bs-success) 30%, #fff);
}
.alert-warning{
 --bs-alert-color: var(--bs-warning-text-emphasis);
 --bs-alert-bg: var(--bs-warning-bg-subtle);
 --bs-alert-border-color: color-mix(in oklab, var(--bs-warning) 35%, #fff);
}
.alert-danger{
 --bs-alert-color: var(--bs-danger-text-emphasis);
 --bs-alert-bg: var(--bs-danger-bg-subtle);
 --bs-alert-border-color: color-mix(in oklab, var(--bs-danger) 30%, #fff);
}
/* Badges & progress */
.badge.bg-primary, .text-bg-primary{ background-color: var(--bs-primary) !important; color: var(--brand-badge-primary-text) !important; }
.badge.bg-secondary, .text-bg-secondary{ background-color: var(--brand-secondary, var(--bs-secondary)) !important; color: var(--brand-badge-secondary-text) !important; }
.badge.bg-info, .text-bg-info{ background-color: var(--bs-info) !important; color: var(--brand-badge-info-text) !important; }
.badge.bg-success, .text-bg-success{ background-color: var(--bs-success) !important; color: var(--brand-badge-success-text) !important; }
.badge.bg-warning, .text-bg-warning{ background-color: var(--bs-warning) !important; color: var(--brand-badge-warning-text) !important; }
.badge.bg-danger, .text-bg-danger{ background-color: var(--bs-danger) !important; color: var(--brand-badge-danger-text) !important; }
.badge i, .badge svg, .badge .fa{ color: currentColor; fill: currentColor; stroke: currentColor; }
.progress-bar{ background-color: var(--bs-primary) !important; }
.form-check-input:checked{
 background-color: var(--bs-primary) !important;
 border-color: var(--bs-primary) !important;
}
/* Navs */
.nav-pills .nav-link.active, .nav-pills .show > .nav-link{
 background-color: var(--bs-primary) !important;
 border-color: var(--bs-primary) !important;
 color: var(--brand-on-primary) !important;
}
.nav-tabs .nav-link.active{
 color: var(--bs-primary) !important;
 border-color: var(--bs-primary) !important;
}
/* Pagination */
.pagination .page-item.active .page-link{
 background-color: var(--bs-primary) !important;
 border-color: var(--bs-primary) !important;
 color: var(--brand-on-primary) !important;
}
/* === DARK COMPONENT FIXES ======================================= */
/* 1) Sørg for at body ALLTID følger variabelen vi setter i :root */
body {
 background: var(--brand-body-bg, var(--bs-body-bg, #ffffff)) !important;
 color: var(--brand-body-color, var(--bs-body-color, #000000)) !important;
}
/* 3) Labels og vanlige <label> skal bli lyse i mørk modus */
:root[data-theme="dark"] .form-label,
:root[data-theme="dark"] label {
 color: var(--brand-body-color, #f5f5f5) !important;
}
/* 4) Dropdowns / undermeny i dark – ikke hvit bakgrunn */
:root[data-theme="dark"] .dropdown-menu {
 background-color: var(--brand-surface, #14191d) !important;
 border-color: var(--brand-border-color, rgba(255,255,255,.08)) !important;
}
:root[data-theme="dark"] .dropdown-item {
 color: var(--brand-body-color, #f5f5f5) !important;
}
:root[data-theme="dark"] .dropdown-item:hover,
:root[data-theme="dark"] .dropdown-item:focus {
 background-color: rgba(255,255,255,.04) !important;
 color: var(--brand-body-color, #ffffff) !important;
}
/* 5) Offcanvas / topbar close-button – den må bli lys i dark */
:root[data-theme="dark"] .btn-close {
 filter: invert(1) grayscale(100%) !important;
 opacity: 1 !important;
}
/* 6) Headings i dark: overstyr de nivå-baserte fargene fra lys modus */
:root[data-theme="dark"] h1,
:root[data-theme="dark"] h2,
:root[data-theme="dark"] h3,
:root[data-theme="dark"] h4,
:root[data-theme="dark"] h5,
:root[data-theme="dark"] h6 {
 color: var(--brand-heading-color, var(--brand-body-color, #ffffff)) !important;
}
/* 7) Navbar-hover i dark: ikke hvit */
:root[data-theme="dark"] .navbar .navbar-nav .nav-link:hover,
:root[data-theme="dark"] .navbar .navbar-brand:hover {
 background-color: rgba(255,255,255,.04) !important;
 color: var(--brand-navbar-link-hover, var(--brand-on-navbar-bg, #fff)) !important;
}
 /* === DARK TIGHTENING (text-muted, breadcrumbs, nav-links, labels) === */
/* 1) text-muted må bli lysere i dark */
:root[data-theme="dark"] .text-muted {
 color: rgba(255,255,255,.55) !important;
}
/* 2) Vanlig Bootstrap-breadcrumb */
:root[data-theme="dark"] .breadcrumb {
 background: transparent !important;
}
:root[data-theme="dark"] .breadcrumb .breadcrumb-item,
:root[data-theme="dark"] .breadcrumb .breadcrumb-item a {
 color: rgba(255,255,255,.7) !important;
}
:root[data-theme="dark"] .breadcrumb .breadcrumb-item + .breadcrumb-item::before {
 color: rgba(255,255,255,.35) !important;
}
/* 3) Dine egne breadcrumb-varianter fra fila */
:root[data-theme="dark"] .breadcrumb--channel .breadcrumb-item a,
:root[data-theme="dark"] .breadcrumb--term .breadcrumb-item a,
:root[data-theme="dark"] .breadcrumb--page .breadcrumb-item a {
 background: rgba(255,255,255,.08) !important;
 color: #fff !important;
}
:root[data-theme="dark"] .breadcrumb--channel .breadcrumb-item + .breadcrumb-item::before,
:root[data-theme="dark"] .breadcrumb--term .breadcrumb-item + .breadcrumb-item::before,
:root[data-theme="dark"] .breadcrumb--page .breadcrumb-item + .breadcrumb-item::before {
 color: rgba(255,255,255,.35) !important;
}
/* 4) labels og skjemaer – du sa disse ble uleselige */
:root[data-theme="dark"] label,
:root[data-theme="dark"] .form-label {
 color: var(--brand-body-color, #f5f5f5) !important;
}
/* 5) alle nav-links i dark skal bruke lys tekst – dette tar også “hovedvalg” hvis det er bygget på nav-link */
:root[data-theme="dark"] .nav-link {
 color: var(--brand-body-color, #f5f5f5) !important;
}
:root[data-theme="dark"] .nav-link:hover,
:root[data-theme="dark"] .nav-link:focus {
 color: #fff !important;
}
/* 6) dropdown-item i dark – du sa undermeny fikk hvit/lys bakgrunn */
:root[data-theme="dark"] .dropdown-item {
 color: var(--brand-body-color, #f5f5f5) !important;
}
:root[data-theme="dark"] .dropdown-item:hover,
:root[data-theme="dark"] .dropdown-item:focus {
 background-color: rgba(255,255,255,.04) !important;
 color: #fff !important;
}
/* === Cards i dark: gi dem egen flate + luft === */
:root[data-theme="dark"] .card {
 background: var(--brand-card-bg, var(--brand-surface, rgba(255,255,255,.02))) !important;
 color: var(--brand-card-text, var(--brand-body-color, #ffffff)) !important;
 border-color: var(--brand-card-border, var(--brand-border-color, rgba(255,255,255,.08))) !important;
}
/* noen templates har card-body uten topp-padding i custom css → tving den i dark */
:root[data-theme="dark"] .card > .card-body:not([class*="p-"]):not([class*="px-"]):not([class*="py-"]) {
 padding: 1rem !important;
}
:root[data-theme="dark"] .card-header {
 background: var(--brand-card-header-bg, transparent) !important;
 color: var(--brand-card-header-text, var(--brand-card-text, #ffffff)) !important;
 border-bottom-color: var(--brand-card-border, var(--brand-border-color, rgba(255,255,255,.08))) !important;
 padding-top: .75rem !important;
 padding-bottom: .75rem !important;
}
:root[data-theme="dark"] .card-footer {
 background: var(--brand-card-header-bg, transparent) !important;
 color: var(--brand-card-header-text, var(--brand-card-text, #ffffff)) !important;
 border-top-color: var(--brand-card-border, var(--brand-border-color, rgba(255,255,255,.08))) !important;
}
/* Search result taxonomy rows are part of the card body, not a separate footer cap. */
:root[data-theme="dark"] .card-surface .card--search .card-footer {
 background: var(--brand-card-bg, var(--brand-surface, var(--bs-body-bg))) !important;
 color: var(--brand-card-text, var(--bs-body-color)) !important;
 border-top-color: transparent !important;
}
/* Public news/channel taxonomy rows belong to the surrounding card surface. */
:root[data-theme="dark"] .card-surface .card--news .card-footer {
 background: var(--brand-card-bg, var(--brand-surface, var(--bs-body-bg))) !important;
 color: var(--brand-card-text, var(--bs-body-color)) !important;
}
/* Preserve the explicit Bootstrap continuity modifier without changing borders. */
:root[data-theme="dark"] .card-footer.bg-transparent {
 background: transparent !important;
}
/* Hvis noen kort har egen container inni som nuller padding */
:root[data-theme="dark"] .card .card-body > .table,
:root[data-theme="dark"] .card .card-body > .table-responsive {
 background: transparent !important;
}
/* === Tabeller i dark === */
:root[data-theme="dark"] table,
:root[data-theme="dark"] .table {
 background-color: var(--brand-table-bg, transparent) !important;
 color: var(--brand-table-text, var(--brand-body-color, #f5f5f5)) !important;
}
:root[data-theme="dark"] .table thead th {
 background-color: var(--brand-table-header-bg, rgba(255,255,255,.02)) !important;
 color: var(--brand-table-header-text, var(--brand-heading-color, var(--brand-body-color, #fff))) !important;
 border-bottom-color: var(--brand-table-border, var(--brand-border-color, rgba(255,255,255,.08))) !important;
}
:root[data-theme="dark"] .table tbody td,
:root[data-theme="dark"] .table tbody th {
 border-color: var(--brand-table-border, var(--brand-border-color, rgba(255,255,255,.08))) !important;
}
/* stripede rader må få lysere mørk, ikke hvit */
:root[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
 background-color: var(--brand-table-striped-bg, rgba(255,255,255,.015)) !important;
 color: var(--brand-table-striped-text, var(--brand-table-text, #ffffff)) !important;
}
/* hover-rader */
:root[data-theme="dark"] .table-hover > tbody > tr:hover > * {
 background-color: var(--brand-table-hover-bg, rgba(255,255,255,.03)) !important;
 color: var(--brand-table-hover-text, var(--brand-table-text, #ffffff)) !important;
}
/* === DARK: tving tabellceller til å bruke dark-tekst og vår palette === */
:root[data-theme="dark"] .table > :not(caption) > * > * {
 /* bruk det admin har satt for dark – ellers det du allerede la i --bs-table-color */
 color: var(--bs-table-color, var(--brand-table-text, var(--brand-body-color, var(--bs-body-color, #fff)))) !important;
 background-color: var(--brand-table-bg, transparent);
 border-color: var(--bs-table-border-color, var(--brand-table-border, var(--brand-border-color, rgba(255,255,255,.08)))) !important;
}
/* striping og hover som spiller på samme variabler */
:root[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
 background-color: var(--bs-table-striped-bg, var(--brand-table-striped-bg, rgba(255,255,255,.02))) !important;
 color: var(--bs-table-striped-color, var(--brand-table-striped-text, var(--brand-table-text, #ffffff))) !important;
}
:root[data-theme="dark"] .table-hover > tbody > tr:hover > * {
 background-color: var(--bs-table-hover-bg, var(--brand-table-hover-bg, rgba(255,255,255,.04))) !important;
 color: var(--bs-table-hover-color, var(--brand-table-hover-text, var(--brand-table-text, #ffffff))) !important;
}
/* === DARK: placeholders i inputs/textarea/select2-søk === */
:root[data-theme="dark"] input::placeholder,
:root[data-theme="dark"] textarea::placeholder,
:root[data-theme="dark"] .form-control::placeholder,
:root[data-theme="dark"] .select2-container .select2-search__field::placeholder {
 /* lag en lysere variant av admin sin dark-tekst, ikke hardkodet farge */
 color: color-mix(in oklab, var(--brand-body-color, #ffffff) 35%, transparent) !important;
 opacity: 1; /* noen browsere senker opacity */
}
/* Select2 – fikse valgt tag i dark mode */
:root[data-theme="dark"] .select2-container .select2-selection__choice {
 color: var(--brand-body-color, #ffffff) !important;
}
/* Select2 – gjør "x" lys i dark mode */
:root[data-theme="dark"] .select2-container .select2-selection__choice__remove {
 color: var(--brand-body-color, #ffffff) !important;
 border-color: transparent !important; /* noen tema legger kant */
}
/* === DARK: Select2 valg/chips må bli lyse === */
:root[data-theme="dark"]
.select2-container--default
.select2-selection--multiple
.select2-selection__choice {
 background-color: var(--brand-surface, rgba(255,255,255,.02)) !important;
 border-color: transparent !important;
 color: var(--brand-body-color, #ffffff) !important;
}
/* single-select sin tekst også */
:root[data-theme="dark"]
.select2-container--default
.select2-selection--single
.select2-selection__rendered {
 color: var(--brand-body-color, #ffffff) !important;
}
/* === FINAL: Select2 clear-knapp (X) i dark mode === */
:root[data-theme="dark"] .select2-selection__clear,
:root[data-theme="dark"] .select2-selection__clear:hover {
 color: #fff !important;
 background: transparent !important;
 border: none !important;
 opacity: 1 !important;
}
/* === DARK: selve inputene må bruke dark-surface og lys tekst === */
:root[data-theme="dark"] .form-control,
:root[data-theme="dark"] .form-select {
 background-color: var(--brand-form-bg, var(--brand-surface, rgba(255,255,255,.02))) !important;
 color: var(--brand-form-text, var(--brand-body-color, var(--bs-body-color, #ffffff))) !important;
 border-color: var(--brand-form-border, var(--brand-border-color, rgba(255,255,255,.08))) !important;
}
:root[data-theme="dark"] .form-control:focus,
:root[data-theme="dark"] .form-select:focus {
 background-color: var(--brand-form-bg, var(--brand-surface, rgba(255,255,255,.02))) !important;
}
/* === DARK: admin-meny / list-group skal også få dark-bakgrunn === */
:root[data-theme="dark"] .list-group-item,
:root[data-theme="dark"] .list-group-item-action {
 background-color: var(--brand-surface, rgba(255,255,255,.02)) !important;
 color: var(--brand-body-color, var(--bs-body-color, #ffffff)) !important;
 border-color: var(--brand-border-color, rgba(255,255,255,.08)) !important;
}
:root[data-theme="dark"] .list-group-item-action:hover,
:root[data-theme="dark"] .list-group-item-action:focus {
 background-color: color-mix(in oklab, var(--brand-surface, #000) 70%, transparent) !important;
 color: var(--brand-body-color, #ffffff) !important;
}
/* === DARK: tving tekstfarge i tabellceller === */
:root[data-theme="dark"] table td,
:root[data-theme="dark"] table th,
:root[data-theme="dark"] .table td,
:root[data-theme="dark"] .table th {
 color: var(--brand-body-color, var(--bs-body-color, #ffffff)) !important;
}
/* hvis noen celler har fått hvit bakgrunn fra før: gjør den nøytral i dark */
:root[data-theme="dark"] .table td.bg-white,
:root[data-theme="dark"] .table th.bg-white {
 background-color: transparent !important;
}
:root[data-theme="dark"] .form-text {
 color: color-mix(in oklab, var(--brand-body-color, #ffffff) 55%, transparent) !important;
}
/* === DARK: rest-opprydding for Bootstrap-komponenter som fortsatt er lyse === */
/* 1) Bootstrap light/dark shortcuts that otherwise bypass branded dark surfaces */
:root[data-theme="dark"] .bg-light,
:root[data-theme="dark"] .bg-white {
 background-color: var(--brand-surface, var(--brand-body-bg, #0f1115)) !important;
 color: var(--brand-body-color, #ffffff) !important;
 border-color: var(--brand-border-color, rgba(255,255,255,.08)) !important;
}
:root[data-theme="dark"] .text-dark {
 color: var(--brand-body-color, #ffffff) !important;
}
:root[data-theme="dark"] .border-light,
:root[data-theme="dark"] .border-dark {
 border-color: var(--brand-border-color, rgba(255,255,255,.08)) !important;
}
:root[data-theme="dark"] .badge.bg-light,
:root[data-theme="dark"] .badge.bg-light.text-dark,
:root[data-theme="dark"] .badge.text-bg-light {
 background-color: var(--brand-card-header-bg, var(--brand-surface, #0f1115)) !important;
 color: var(--brand-card-header-text, var(--brand-body-color, #ffffff)) !important;
 border-color: var(--brand-card-border, var(--brand-border-color, rgba(255,255,255,.08))) !important;
}
:root[data-theme="dark"] .btn-light,
:root[data-theme="dark"] a.btn-light {
 --bs-btn-bg: var(--brand-surface, #0f1115);
 --bs-btn-color: var(--brand-body-color, #ffffff);
 --bs-btn-border-color: var(--brand-border-color, rgba(255,255,255,.12));
 --bs-btn-hover-bg: var(--brand-surface-hover, color-mix(in oklab, var(--brand-surface, #0f1115) 82%, var(--brand-body-color, #ffffff)));
 --bs-btn-hover-color: var(--brand-body-color, #ffffff);
 --bs-btn-hover-border-color: var(--brand-border-color, rgba(255,255,255,.18));
 --bs-btn-active-bg: var(--brand-surface-active, color-mix(in oklab, var(--brand-surface, #0f1115) 74%, var(--brand-body-color, #ffffff)));
 --bs-btn-active-color: var(--brand-body-color, #ffffff);
 --bs-btn-active-border-color: var(--brand-border-color, rgba(255,255,255,.22));
 background-color: var(--bs-btn-bg) !important;
 color: var(--bs-btn-color) !important;
 border-color: var(--bs-btn-border-color) !important;
}
:root[data-theme="dark"] .btn-light:hover,
:root[data-theme="dark"] .btn-light:focus,
:root[data-theme="dark"] a.btn-light:hover,
:root[data-theme="dark"] a.btn-light:focus {
 background-color: var(--bs-btn-hover-bg) !important;
 color: var(--bs-btn-hover-color) !important;
 border-color: var(--bs-btn-hover-border-color) !important;
}
:root[data-theme="dark"] .btn-light:active,
:root[data-theme="dark"] .btn-light.active,
:root[data-theme="dark"] .show > .btn-light.dropdown-toggle,
:root[data-theme="dark"] a.btn-light:active,
:root[data-theme="dark"] a.btn-light.active {
 background-color: var(--bs-btn-active-bg) !important;
 color: var(--bs-btn-active-color) !important;
 border-color: var(--bs-btn-active-border-color) !important;
}
@media (prefers-color-scheme: dark) {
 :root:not([data-theme="light"]) .bg-light,
 :root:not([data-theme="light"]) .bg-white {
 background-color: var(--brand-surface, var(--brand-body-bg, #0f1115)) !important;
 color: var(--brand-body-color, #ffffff) !important;
 border-color: var(--brand-border-color, rgba(255,255,255,.08)) !important;
 }
 :root:not([data-theme="light"]) .text-dark {
 color: var(--brand-body-color, #ffffff) !important;
 }
 :root:not([data-theme="light"]) .border-light,
 :root:not([data-theme="light"]) .border-dark {
 border-color: var(--brand-border-color, rgba(255,255,255,.08)) !important;
 }
 :root:not([data-theme="light"]) .badge.bg-light,
 :root:not([data-theme="light"]) .badge.bg-light.text-dark,
 :root:not([data-theme="light"]) .badge.text-bg-light {
 background-color: var(--brand-card-header-bg, var(--brand-surface, #0f1115)) !important;
 color: var(--brand-card-header-text, var(--brand-body-color, #ffffff)) !important;
 border-color: var(--brand-card-border, var(--brand-border-color, rgba(255,255,255,.08))) !important;
 }
 :root:not([data-theme="light"]) .btn-light,
 :root:not([data-theme="light"]) a.btn-light {
 --bs-btn-bg: var(--brand-surface, #0f1115);
 --bs-btn-color: var(--brand-body-color, #ffffff);
 --bs-btn-border-color: var(--brand-border-color, rgba(255,255,255,.12));
 --bs-btn-hover-bg: var(--brand-surface-hover, color-mix(in oklab, var(--brand-surface, #0f1115) 82%, var(--brand-body-color, #ffffff)));
 --bs-btn-hover-color: var(--brand-body-color, #ffffff);
 --bs-btn-hover-border-color: var(--brand-border-color, rgba(255,255,255,.18));
 --bs-btn-active-bg: var(--brand-surface-active, color-mix(in oklab, var(--brand-surface, #0f1115) 74%, var(--brand-body-color, #ffffff)));
 --bs-btn-active-color: var(--brand-body-color, #ffffff);
 --bs-btn-active-border-color: var(--brand-border-color, rgba(255,255,255,.22));
 background-color: var(--bs-btn-bg) !important;
 color: var(--bs-btn-color) !important;
 border-color: var(--bs-btn-border-color) !important;
 }
 :root:not([data-theme="light"]) .btn-light:hover,
 :root:not([data-theme="light"]) .btn-light:focus,
 :root:not([data-theme="light"]) a.btn-light:hover,
 :root:not([data-theme="light"]) a.btn-light:focus {
 background-color: var(--bs-btn-hover-bg) !important;
 color: var(--bs-btn-hover-color) !important;
 border-color: var(--bs-btn-hover-border-color) !important;
 }
 :root:not([data-theme="light"]) .btn-light:active,
 :root:not([data-theme="light"]) .btn-light.active,
 :root:not([data-theme="light"]) .show > .btn-light.dropdown-toggle,
 :root:not([data-theme="light"]) a.btn-light:active,
 :root:not([data-theme="light"]) a.btn-light.active {
 background-color: var(--bs-btn-active-bg) !important;
 color: var(--bs-btn-active-color) !important;
 border-color: var(--bs-btn-active-border-color) !important;
 }
}
:root[data-theme="dark"] .bg-light-subtle {
 background-color: var(--brand-surface, rgba(255,255,255,.02)) !important;
 color: var(--brand-body-color, #ffffff) !important;
 border-color: var(--brand-border-color, rgba(255,255,255,.08)) !important;
}
/* 1b) brandet støtte for Bootstrap sine “subtle”-bakgrunner i dark mode */
:root[data-theme="dark"] .bg-primary-subtle {
 /* dempet primærflate i dark – samme prinsipp som alert-primary */
 background-color: color-mix(
 in oklab,
 var(--bs-primary, var(--brand-primary, #3b82f6)) 14%,
 #000
 ) !important;
 color: var(--brand-body-color, #ffffff) !important;
}
:root[data-theme="dark"] .bg-secondary-subtle {
 /* dempet sekundærflate i dark – justert fra secondary/brand-secondary */
 background-color: color-mix(
 in oklab,
 var(--bs-secondary, var(--brand-secondary, #6c757d)) 12%,
 #000
 ) !important;
 color: var(--brand-body-color, #ffffff) !important;
}
/* Semantic subtle utilities in dark mode. Bootstrap/brand variables are often
 combined with legacy `.text-dark`; keep the background subtle and expose
 readable emphasis tokens for badges, pills and lightweight status labels. */
:root[data-theme="dark"] {
 --bs-secondary-bg: color-mix(in oklab, var(--brand-surface, #0f1115) 82%, #fff);
 --bs-primary-bg-subtle: color-mix(in oklab, var(--bs-primary, var(--brand-primary, #3b82f6)) 14%, #000);
 --bs-primary-border-subtle: color-mix(in oklab, var(--bs-primary, var(--brand-primary, #3b82f6)) 35%, #000);
 --bs-primary-text-emphasis: color-mix(in oklab, var(--bs-primary, var(--brand-primary, #3b82f6)) 44%, #fff);
 --bs-secondary-bg-subtle: color-mix(in oklab, var(--bs-secondary, var(--brand-secondary, #6c757d)) 12%, #000);
 --bs-secondary-border-subtle: color-mix(in oklab, var(--bs-secondary, var(--brand-secondary, #6c757d)) 32%, #000);
 --bs-secondary-text-emphasis: color-mix(in oklab, var(--bs-secondary, var(--brand-secondary, #6c757d)) 42%, #fff);
 --bs-success-bg-subtle: color-mix(in oklab, var(--bs-success, var(--brand-success, #198754)) 14%, #000);
 --bs-success-border-subtle: color-mix(in oklab, var(--bs-success, var(--brand-success, #198754)) 34%, #000);
 --bs-success-text-emphasis: color-mix(in oklab, var(--bs-success, var(--brand-success, #198754)) 42%, #fff);
 --bs-info-bg-subtle: color-mix(in oklab, var(--bs-info, var(--brand-info, #0dcaf0)) 14%, #000);
 --bs-info-border-subtle: color-mix(in oklab, var(--bs-info, var(--brand-info, #0dcaf0)) 34%, #000);
 --bs-info-text-emphasis: color-mix(in oklab, var(--bs-info, var(--brand-info, #0dcaf0)) 42%, #fff);
 --bs-warning-bg-subtle: color-mix(in oklab, var(--bs-warning, var(--brand-warning, #ffc107)) 16%, #000);
 --bs-warning-border-subtle: color-mix(in oklab, var(--bs-warning, var(--brand-warning, #ffc107)) 38%, #000);
 --bs-warning-text-emphasis: color-mix(in oklab, var(--bs-warning, var(--brand-warning, #ffc107)) 48%, #fff);
 --bs-danger-bg-subtle: color-mix(in oklab, var(--bs-danger, var(--brand-danger, #dc3545)) 14%, #000);
 --bs-danger-border-subtle: color-mix(in oklab, var(--bs-danger, var(--brand-danger, #dc3545)) 34%, #000);
 --bs-danger-text-emphasis: color-mix(in oklab, var(--bs-danger, var(--brand-danger, #dc3545)) 44%, #fff);
 --bs-light-bg-subtle: var(--brand-surface, rgba(255,255,255,.02));
 --bs-light-border-subtle: var(--brand-border-color, rgba(255,255,255,.08));
 --bs-light-text-emphasis: var(--brand-body-color, #ffffff);
 --bs-dark-bg-subtle: color-mix(in oklab, var(--brand-body-color, #ffffff) 8%, #000);
 --bs-dark-border-subtle: color-mix(in oklab, var(--brand-body-color, #ffffff) 18%, #000);
 --bs-dark-text-emphasis: var(--brand-body-color, #ffffff);
}
/* Native determinate progress uses the same Bootstrap/brand variables without
 requiring an inline width declaration. */
progress.progress {
 width: 100%;
 appearance: none;
 border: 0;
 color: var(--bs-progress-bar-bg);
 background-color: var(--bs-progress-bg);
}
progress.progress::-webkit-progress-bar {
 background-color: var(--bs-progress-bg);
 border-radius: var(--bs-progress-border-radius);
}
progress.progress::-webkit-progress-value {
 background-color: var(--bs-progress-bar-bg);
 border-radius: var(--bs-progress-border-radius);
}
progress.progress::-moz-progress-bar {
 background-color: var(--bs-progress-bar-bg);
 border-radius: var(--bs-progress-border-radius);
}
:root[data-theme="dark"] :where(.bg-success-subtle, .bg-info-subtle, .bg-warning-subtle, .bg-danger-subtle, .bg-dark-subtle) {
 color: var(--brand-body-color, #ffffff) !important;
}
@media (prefers-color-scheme: dark) {
 :root:not([data-theme="light"]) {
 --bs-primary-bg-subtle: color-mix(in oklab, var(--bs-primary, var(--brand-primary, #3b82f6)) 14%, #000);
 --bs-primary-border-subtle: color-mix(in oklab, var(--bs-primary, var(--brand-primary, #3b82f6)) 35%, #000);
 --bs-primary-text-emphasis: color-mix(in oklab, var(--bs-primary, var(--brand-primary, #3b82f6)) 44%, #fff);
 --bs-secondary-bg-subtle: color-mix(in oklab, var(--bs-secondary, var(--brand-secondary, #6c757d)) 12%, #000);
 --bs-secondary-border-subtle: color-mix(in oklab, var(--bs-secondary, var(--brand-secondary, #6c757d)) 32%, #000);
 --bs-secondary-text-emphasis: color-mix(in oklab, var(--bs-secondary, var(--brand-secondary, #6c757d)) 42%, #fff);
 --bs-success-bg-subtle: color-mix(in oklab, var(--bs-success, var(--brand-success, #198754)) 14%, #000);
 --bs-success-border-subtle: color-mix(in oklab, var(--bs-success, var(--brand-success, #198754)) 34%, #000);
 --bs-success-text-emphasis: color-mix(in oklab, var(--bs-success, var(--brand-success, #198754)) 42%, #fff);
 --bs-info-bg-subtle: color-mix(in oklab, var(--bs-info, var(--brand-info, #0dcaf0)) 14%, #000);
 --bs-info-border-subtle: color-mix(in oklab, var(--bs-info, var(--brand-info, #0dcaf0)) 34%, #000);
 --bs-info-text-emphasis: color-mix(in oklab, var(--bs-info, var(--brand-info, #0dcaf0)) 42%, #fff);
 --bs-warning-bg-subtle: color-mix(in oklab, var(--bs-warning, var(--brand-warning, #ffc107)) 16%, #000);
 --bs-warning-border-subtle: color-mix(in oklab, var(--bs-warning, var(--brand-warning, #ffc107)) 38%, #000);
 --bs-warning-text-emphasis: color-mix(in oklab, var(--bs-warning, var(--brand-warning, #ffc107)) 48%, #fff);
 --bs-danger-bg-subtle: color-mix(in oklab, var(--bs-danger, var(--brand-danger, #dc3545)) 14%, #000);
 --bs-danger-border-subtle: color-mix(in oklab, var(--bs-danger, var(--brand-danger, #dc3545)) 34%, #000);
 --bs-danger-text-emphasis: color-mix(in oklab, var(--bs-danger, var(--brand-danger, #dc3545)) 44%, #fff);
 --bs-light-bg-subtle: var(--brand-surface, rgba(255,255,255,.02));
 --bs-light-border-subtle: var(--brand-border-color, rgba(255,255,255,.08));
 --bs-light-text-emphasis: var(--brand-body-color, #ffffff);
 --bs-dark-bg-subtle: color-mix(in oklab, var(--brand-body-color, #ffffff) 8%, #000);
 --bs-dark-border-subtle: color-mix(in oklab, var(--brand-body-color, #ffffff) 18%, #000);
 --bs-dark-text-emphasis: var(--brand-body-color, #ffffff);
 }
 :root:not([data-theme="light"]) :where(.bg-success-subtle, .bg-info-subtle, .bg-warning-subtle, .bg-danger-subtle, .bg-dark-subtle) {
 color: var(--brand-body-color, #ffffff) !important;
 }
}
/* 2) file-input: både feltet og knappen må bli mørke/lyse avhengig av admin */
:root[data-theme="dark"] .form-control[type="file"] {
 background-color: var(--brand-surface, rgba(255,255,255,.02)) !important;
 color: var(--brand-body-color, #ffffff) !important;
 border-color: var(--brand-border-color, rgba(255,255,255,.08)) !important;
}
:root[data-theme="dark"] .form-control[type="file"]::file-selector-button,
:root[data-theme="dark"] .form-control[type="file"]::-webkit-file-upload-button {
 background-color: color-mix(in oklab, var(--brand-surface, #0f1115) 85%, #000) !important;
 color: var(--brand-body-color, #ffffff) !important;
 border: 1px solid var(--brand-border-color, rgba(255,255,255,.08)) !important;
}
:root[data-theme="dark"] .form-control[type="file"]:hover::file-selector-button,
:root[data-theme="dark"] .form-control[type="file"]:hover::-webkit-file-upload-button {
 background-color: color-mix(in oklab, var(--brand-surface, #0f1115) 60%, #000) !important;
}
/* 3) checkbox/radio er hvite i dark → gjør base mørk, checked har du allerede koblet til primary */
:root[data-theme="dark"] .form-check-input {
 background-color: var(--brand-form-check-bg, var(--brand-surface, rgba(255,255,255,.02))) !important;
 border-color: var(--brand-form-check-border, var(--brand-border-color, rgba(255,255,255,.15))) !important;
}
:root[data-theme="dark"] .form-check-input:not(:checked):hover {
 background-color: color-mix(in oklab, var(--brand-surface, #0f1115) 70%, transparent) !important;
}
/* 4) Select2: vi satt lys bakgrunn tidligere – i dark må vi overstyre til surface */
:root[data-theme="dark"] .select2-container--bootstrap-5 .select2-selection,
:root[data-theme="dark"] .select2-container .select2-selection {
 background-color: var(--brand-surface, rgba(255,255,255,.02)) !important;
 color: var(--brand-body-color, #ffffff) !important;
 border-color: var(--brand-border-color, rgba(255,255,255,.08)) !important;
}
/* === DARK: Select2 søketekst (skriving i feltet) =========================== */
:root[data-theme="dark"] .select2-container .select2-search__field {
 color: var(--brand-body-color, #ffffff) !important; /* selve teksten */
 background-color: var(--brand-surface, rgba(255,255,255,.02)) !important;
 border-color: var(--brand-border-color, rgba(255,255,255,.08)) !important;
 caret-color: var(--brand-body-color, #ffffff) !important; /* markør lys */
}
:root[data-theme="dark"] .select2-container .select2-selection__choice {
 background-color: color-mix(in oklab, var(--brand-surface, #0f1115) 75%, #000) !important;
 border-color: transparent !important;
 color: var(--brand-body-color, #ffffff) !important;
}
:root[data-theme="dark"] .select2-container .select2-dropdown {
 background-color: var(--brand-surface, rgba(255,255,255,.02)) !important;
 border-color: var(--brand-border-color, rgba(255,255,255,.08)) !important;
 color: var(--brand-body-color, #ffffff) !important;
}
:root[data-theme="dark"] .select2-container .select2-results__option--highlighted {
 background-color: rgba(255,255,255,.04) !important;
 color: var(--brand-body-color, #ffffff) !important;
}
/* 5) btn-outline-secondary blir for svak på mørkt → løft kontrasten i dark, men fortsatt fra admin-farge */
:root[data-theme="dark"] .btn-outline-secondary,
:root[data-theme="dark"] a.btn.btn-outline-secondary {
 /* bruk dark secondary hvis vi har, ellers vanlig secondary, ellers body-fargen */
 --_sec: var(--brand-secondary, var(--brand-body-color, #ffffff));
 --bs-btn-color: color-mix(in oklab, var(--_sec) 100%, #000);
 --bs-btn-border-color: color-mix(in oklab, var(--_sec) 100%, #000);
 background-color: transparent !important;
}
:root[data-theme="dark"] .btn-outline-secondary:hover,
:root[data-theme="dark"] a.btn.btn-outline-secondary:hover {
 background-color: var(--_sec, rgba(255,255,255,.08)) !important;
 color: var(--brand-on-secondary, #fff) !important;
 border-color: var(--_sec) !important;
}
:root[data-theme="dark"] .btn-outline-secondary:hover,
:root[data-theme="dark"] a.btn.btn-outline-secondary:hover {
 background-color: var(--brand-secondary, rgba(255,255,255,.08)) !important;
 color: var(--brand-on-secondary, #fff) !important;
 border-color: var(--brand-secondary, rgba(255,255,255,.25)) !important;
}
/* 6) placeholders i select2-søk kan være for mørke – vi treffer dem også her */
:root[data-theme="dark"] .select2-container .select2-search__field::placeholder {
 color: color-mix(in oklab, var(--brand-body-color, #ffffff) 35%, transparent) !important;
 opacity: 1;
}
/* 6b) btn-outline-primary – løft kontrast i dark uten å bryte branding */
:root[data-theme="dark"] .btn-outline-primary,
:root[data-theme="dark"] a.btn.btn-outline-primary {
 /* bruk primærfargen eller brand-body-color som basis */
 --_prim: var(--bs-primary, var(--brand-primary, #3b82f6));
 color: color-mix(in oklab, var(--_prim) 90%, #fff) !important;
 border-color: color-mix(in oklab, var(--_prim) 90%, #fff) !important;
 background-color: transparent !important;
}
:root[data-theme="dark"] .btn-outline-primary:hover,
:root[data-theme="dark"] a.btn.btn-outline-primary:hover {
 color: var(--brand-on-primary, #fff) !important;
 background-color: var(--_prim) !important;
 border-color: var(--_prim) !important;
}
:root[data-theme="dark"] .btn-outline-primary:active,
:root[data-theme="dark"] a.btn.btn-outline-primary:active {
 background-color: color-mix(in oklab, var(--_prim) 80%, #000) !important;
 border-color: color-mix(in oklab, var(--_prim) 78%, #000) !important;
}
/* === DARK: ekstra tydelighet på inputs, paginering, checkbox og alerts === */
/* 0) litt sterkere border i dark, men basert på teksten admin har valgt */
:root[data-theme="dark"] {
 /* eksisterende */
 --brand-border-strong: color-mix(in oklab, var(--brand-body-color, #ffffff) 16%, transparent);
 /* NYTT: litt tydeligere ramme bare for skjemafelter */
 --brand-input-border: color-mix(in oklab, var(--brand-body-color, #ffffff) 26%, transparent);
 --brand-form-border: var(--brand-input-border);
 --brand-form-check-border: var(--brand-border-strong);
}
/* 1) Pagination: de lyse knappene */
:root[data-theme="dark"] .pagination .page-link {
 background-color: var(--brand-surface, rgba(255,255,255,.02)) !important;
 color: var(--brand-body-color, #ffffff) !important;
 border-color: var(--brand-border-color, rgba(255,255,255,.08)) !important;
}
:root[data-theme="dark"] .pagination .page-link:hover {
 background-color: rgba(255,255,255,.03) !important;
}
:root[data-theme="dark"] .pagination .page-item.active .page-link {
 background-color: var(--bs-primary, var(--brand-primary, #3b82f6)) !important;
 border-color: var(--bs-primary, var(--brand-primary, #3b82f6)) !important;
 color: var(--brand-on-primary, #ffffff) !important;
}
/* 2) Skjemafelter: litt tydeligere ramme i dark */
:root[data-theme="dark"] .form-control,
:root[data-theme="dark"] .form-select,
:root[data-theme="dark"] .input-group-text {
 background-color: var(--brand-form-bg, var(--brand-surface, rgba(255,255,255,.02))) !important;
 color: var(--brand-form-text, var(--brand-body-color, var(--bs-body-color, #ffffff))) !important;
 border-color: var(--brand-form-border, var(--brand-input-border, var(--brand-border-strong, rgba(255,255,255,.16)))) !important;
}
/* 🔽 Dark mode: gjør <select>-pilen lys og synlig mot mørk bakgrunn */
:root[data-theme="dark"] .form-select:not([multiple]):not([size]),
:root[data-theme="dark"] select.form-select:not([multiple]):not([size]) {
 /* lys pil (chevron) i SVG, samme posisjon som Bootstrap */
 background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='white' d='M3.204 5.5 8 10.293 12.796 5.5l.708.707L8 11.707 2.496 6.207z'/%3e%3c/svg%3e") !important;
 background-repeat: no-repeat !important;
 background-position: right .75rem center !important;
 background-size: 16px 12px !important;
}
/* 🔽 Dark mode: gjør accordion-pilen lys slik at den synes mot mørk flate */
:root[data-theme="dark"] .accordion-button::after {
 background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 16 16'%3e%3cpath d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e") !important;
 /* behold Bootstrap sin rotasjon ved .collapsed / ikke-collapsed */
 background-size: 1rem;
}
/* 🔽 Dark mode: ikke gjør åpne accordion-paneler lyse */
:root[data-theme="dark"] .accordion-button {
 background-color: var(--brand-surface, #0E272E) !important;
 color: var(--brand-body-color, #ffffff) !important;
 border-color: var(--brand-border-color, rgba(255,255,255,.08)) !important;
}
/* når den er åpen (ikke .collapsed) – behold samme mørke flate */
:root[data-theme="dark"] .accordion-button:not(.collapsed) {
 background-color: var(--brand-surface, #0E272E) !important;
 color: var(--brand-body-color, #ffffff) !important;
 box-shadow: none !important; /* bootstrap legger ofte shadow ved åpen */
}
/* sørg for at pila også er lys når den er åpen */
:root[data-theme="dark"] .accordion-button:not(.collapsed)::after {
 background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 16 16'%3e%3cpath d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e") !important;
}
/* 3) Checkbox/radio: lysere ramme, og behold primary når den er huket av */
:root[data-theme="dark"] .form-check-input {
 background-color: var(--brand-form-check-bg, var(--brand-surface, rgba(255,255,255,.02))) !important;
 border-color: var(--brand-form-check-border, var(--brand-border-strong, rgba(255,255,255,.16))) !important;
}
:root[data-theme="dark"] .form-check-input:checked {
 background-color: var(--brand-form-check-checked-bg, var(--bs-primary, var(--brand-primary, #3b82f6))) !important;
 border-color: var(--brand-form-check-checked-bg, var(--bs-primary, var(--brand-primary, #3b82f6))) !important;
 color: var(--brand-form-check-indicator, var(--brand-on-primary, #ffffff)) !important;
 filter: none;
}
/* 4) Alerts – spesielt warning på gul bakgrunn ble uleselig.
 Vi mørkner selve flaten litt og bruker dark-tekst-variabelen din. */
:root[data-theme="dark"] .alert-warning {
 background-color: color-mix(in oklab, var(--bs-warning, var(--brand-warning, #facc15)) 14%, #000) !important;
 border-color: color-mix(in oklab, var(--bs-warning, var(--brand-warning, #facc15)) 30%, #000) !important;
 color: var(--brand-body-color, #ffffff) !important;
}
/* 5) For sikkerhets skyld: hvis det finnes .alert-light et sted */
:root[data-theme="dark"] .alert-light {
 background-color: var(--brand-surface, rgba(255,255,255,.02)) !important;
 color: var(--brand-body-color, #ffffff) !important;
 border-color: var(--brand-border-color, rgba(255,255,255,.08)) !important;
}
/* --- Logo-visibility control --- */
/* start: vis bare lys */
.logo-light,
.logo-dark {
 display: inline-block;
}
.logo-dark {
 display: none !important;
}
/* 1) Din layout: <html data-theme="dark"> */
[data-theme="dark"] .logo-light {
 display: none !important;
}
[data-theme="dark"] .logo-dark {
 display: inline-block !important;
}
/* 2) Bootstrap-variant (hvis dere begynner å bruke den senere) */
[data-bs-theme="dark"] .logo-light {
 display: none !important;
}
[data-bs-theme="dark"] .logo-dark {
 display: inline-block !important;
}
/* 3) body.dark-mode (hvis noe JS setter den) */
body.dark-mode .logo-light {
 display: none !important;
}
body.dark-mode .logo-dark {
 display: inline-block !important;
}
/* 4) Auto-tema: OS-dark før/uten JS-sett data-theme */
@media (prefers-color-scheme: dark) {
 :root:not([data-theme="light"]) .logo-light {
 display: none !important;
 }
 :root:not([data-theme="light"]) .logo-dark {
 display: inline-block !important;
 }
}
/* === AUTH FIXES ==================================== */
/* 1) Språkknappen på auth: bruk tekstfargen, ikke blå boble */
.auth-navbar .bubble-lang .topbar-circle,
.auth-navbar .bubble-lang .dropdown-caret {
 background: var(--brand-nav-bubble-bg) !important;
 color: var(--brand-nav-bubble-text) !important;
 border-color: var(--brand-nav-bubble-border) !important;
}
/* sørg for at selve ikonene følger fargen */
.auth-navbar .bubble-lang .topbar-circle svg,
.auth-navbar .bubble-lang .topbar-circle i,
.auth-navbar .bubble-lang .dropdown-caret svg,
.auth-navbar .bubble-lang .dropdown-caret i {
 fill: currentColor !important;
 stroke: currentColor !important;
}
/* dark-variant: samme greie, men med dark-tekst */
:root[data-theme="dark"] .auth-navbar .bubble-lang .topbar-circle,
:root[data-theme="dark"] .auth-navbar .bubble-lang .dropdown-caret {
 color: var(--brand-nav-bubble-text) !important;
}
/* 2) OAuth-knapper i auth-layout i dark: ikke hvit flate */
:root[data-theme="dark"] .auth-main .btn-oauth,
:root[data-theme="dark"] .auth-main a.btn.btn-oauth {
 background-color: var(--brand-surface, var(--bs-body-bg)) !important;
 border-color: var(--brand-border-color, currentColor) !important;
 color: var(--brand-body-color, var(--bs-body-color)) !important;
}
/* AUTH: boblene skal være transparente og følge tekstfargen der */
.auth-navbar .topbar-wrapper .topbar-circle,
.auth-navbar .topbar-wrapper .dropdown-caret,
.auth-navbar .bubble-lang .topbar-circle,
.auth-navbar .bubble-lang .dropdown-caret,
.auth-navbar .bubble-notif .topbar-circle,
.auth-navbar .bubble-notif .dropdown-caret,
.auth-navbar .bubble-logout .topbar-circle,
.auth-navbar .bubble-logout .dropdown-caret {
 background: var(--brand-nav-bubble-bg) !important;
 color: var(--brand-nav-bubble-text) !important;
 border-color: var(--brand-nav-bubble-border) !important;
}
.auth-navbar .topbar-wrapper .topbar-circle svg,
.auth-navbar .topbar-wrapper .dropdown-caret svg {
 fill: currentColor !important;
 stroke: currentColor !important;
}
/* DARK MODE: i dark skal alle topbar-bobler ta fargen fra navbar-variablene,
 men KUN i dark – vi rører ikke lys tema her. */
:root[data-theme="dark"] .navbar .topbar-wrapper .topbar-circle,
:root[data-theme="dark"] .navbar .topbar-wrapper .dropdown-caret,
:root[data-theme="dark"] .navbar .bubble-lang .topbar-circle,
:root[data-theme="dark"] .navbar .bubble-lang .dropdown-caret,
:root[data-theme="dark"] .navbar .bubble-notif .topbar-circle,
:root[data-theme="dark"] .navbar .bubble-notif .dropdown-caret,
:root[data-theme="dark"] .navbar .bubble-logout .topbar-circle,
:root[data-theme="dark"] .navbar .bubble-logout .dropdown-caret {
 background: var(--brand-nav-bubble-bg) !important;
 color: var(--brand-nav-bubble-text) !important;
 border-color: var(--brand-nav-bubble-border) !important;
}
:root[data-theme="dark"] .navbar .topbar-wrapper .topbar-circle svg,
:root[data-theme="dark"] .navbar .topbar-wrapper .dropdown-caret svg {
 fill: currentColor !important;
 stroke: currentColor !important;
}
/* Offcanvas-headere: sørg for at lukk-knapp (ikon + tekst) får samme farge som topbaren */
.offcanvas-admin .ocbar-admin .oc-close,
.offcanvas-public .ocbar-public .oc-close,
.offcanvas-profile .ocbar-profile .oc-close {
 background: transparent !important;
 border: 0 !important;
 color: var(--brand-offcanvas-close-text, var(--brand-on-navbar-bg, currentColor)) !important;
 /*display: inline-flex;*/
 align-items: center;
 gap: .35rem;
}
/* === OFFCANVAS (public) – slå av ikke-sammensatte animasjoner fra Bootstrap === */
.offcanvas-public .nav-link,
.offcanvas-public .nav-link.w-100,
.offcanvas-public .btn,
.offcanvas-public .dropdown-item {
 transition: none !important;
}
/* Ikonet (xmark) inne i knappen */
.offcanvas-admin .ocbar-admin .oc-close svg,
.offcanvas-public .ocbar-public .oc-close svg,
.offcanvas-profile .ocbar-profile .oc-close svg,
.offcanvas-admin .ocbar-admin .oc-close i,
.offcanvas-public .ocbar-public .oc-close i,
.offcanvas-profile .ocbar-profile .oc-close i,
.offcanvas-admin .ocbar-admin .oc-close .fa,
.offcanvas-public .ocbar-public .oc-close .fa,
.offcanvas-profile .ocbar-profile .oc-close .fa {
 color: inherit !important;
 fill: currentColor !important;
 stroke: currentColor !important;
}
/* Teksten "Lukk" */
.offcanvas-admin .ocbar-admin .oc-close .label,
.offcanvas-public .ocbar-public .oc-close .label,
.offcanvas-profile .ocbar-profile .oc-close .label {
 color: inherit !important;
}
/* Dark-mode: samme, men bruk dark-nav-variablene dine (de blir satt i brand.css.php) */
:root[data-theme="dark"] .offcanvas-admin .ocbar-admin .oc-close,
:root[data-theme="dark"] .offcanvas-public .ocbar-public .oc-close,
:root[data-theme="dark"] .offcanvas-profile .ocbar-profile .oc-close {
 color: var(--brand-offcanvas-close-text, var(--brand-on-navbar-bg, #fff)) !important;
}
/* Litt hover så man ser at det er klikkbart, uten hardkode av farger */
.offcanvas-admin .ocbar-admin .oc-close:hover,
.offcanvas-public .ocbar-public .oc-close:hover,
.offcanvas-profile .ocbar-profile .oc-close:hover {
 color: var(--brand-nav-hover-text, var(--brand-nav-text)) !important;
 opacity: .85;
}
/* Bootstrap sin .btn-close bruker background-image, så filter må følge samme avledede nav-kontrast. */
.offcanvas-header .btn-close,
.ocbar-admin .btn-close,
.ocbar-public .btn-close,
.ocbar-profile .btn-close {
 color: var(--brand-offcanvas-close-text, var(--brand-on-navbar-bg, currentColor)) !important;
 filter: var(--brand-offcanvas-close-filter, none) !important;
 opacity: .9 !important;
}
.offcanvas-header .btn-close:hover,
.offcanvas-header .btn-close:focus,
.ocbar-admin .btn-close:hover,
.ocbar-admin .btn-close:focus,
.ocbar-public .btn-close:hover,
.ocbar-public .btn-close:focus,
.ocbar-profile .btn-close:hover,
.ocbar-profile .btn-close:focus {
 color: var(--brand-nav-hover-text, var(--brand-nav-text)) !important;
 opacity: 1 !important;
}
/* === DARK: gi kort og header/body riktig luft uten å påvirke light === */
/* Card-body uten eksplisitt padding-klasser */
:root[data-theme="dark"] .card > .card-body:not([class*="p-"]):not([class*="px-"]):not([class*="py-"]) {
 padding: 1rem !important;
}
/* Card-header uten eksplisitt padding-klasser */
:root[data-theme="dark"] .card > .card-header:not([class*="p-"]):not([class*="px-"]):not([class*="py-"]) {
 padding: .75rem 1rem !important;
}
/* Hvis kortet mangler .card-body helt, gi fallback-padding */
:root[data-theme="dark"] .card:not(:has(.card-body)) {
 padding: 1rem !important;
}
/* Tabeller direkte inni card-body: gi litt luft så ikke rammene klemmer */
:root[data-theme="dark"] .card > .card-body > .table,
:root[data-theme="dark"] .card > .card-body > .table-responsive {
 margin-top: .25rem !important;
 margin-bottom: .25rem !important;
}
.table .is-inactive {
 opacity: .7; /* eller bare text-muted i cellene */
}
.table-hover > tbody > tr.is-inactive:hover {
 background-color: var(--bs-table-hover-bg);
}
/* === DARK: uleste varsler (notifications) =============================== */
:root[data-theme="dark"] tr.table-warning,
:root[data-theme="dark"] .table-warning {
 /* overstyr bootstrap-variablene først */
 --bs-table-bg: color-mix(in oklab, var(--bs-warning, #facc15) 8%, #000);
 --bs-table-striped-bg: color-mix(in oklab, var(--bs-warning, #facc15) 8%, #000);
 --bs-table-hover-bg: color-mix(in oklab, var(--bs-warning, #facc15) 12%, #000);
 background-color: var(--bs-table-bg) !important;
 color: var(--brand-body-color, #ffffff) !important;
 border-color: color-mix(in oklab, var(--bs-warning, #facc15) 25%, #000) !important;
}
:root[data-theme="dark"] tr.table-warning > td,
:root[data-theme="dark"] tr.table-warning > th {
 background-color: var(--bs-table-bg) !important;
 color: var(--brand-body-color, #ffffff) !important;
 border-color: color-mix(in oklab, var(--bs-warning, #facc15) 25%, #000) !important;
}
/* stripet tabell + warning-rad */
:root[data-theme="dark"] .table-striped > tbody > tr.table-warning:nth-of-type(odd) > * {
 background-color: var(--bs-table-striped-bg) !important;
}
/* liten markør i første celle */
:root[data-theme="dark"] tr.table-warning > td:first-child,
:root[data-theme="dark"] tr.table-warning > th:first-child {
 border-left: 3px solid color-mix(in oklab, var(--bs-warning, #facc15) 65%, #000) !important;
}
/* DARK: tabs + innhold må ha samme flate og border */
:root[data-theme="dark"] .nav-tabs .nav-link.active,
:root[data-theme="dark"] .nav-tabs .nav-item.show .nav-link {
 background-color: var(--brand-surface, #0E272E) !important;
 border-color: var(--bs-primary) var(--bs-primary) transparent !important;
}
/* selve innholdet under fanene */
:root[data-theme="dark"] .tab-content {
 background-color: var(--brand-surface, #0E272E) !important;
 border: 1px solid var(--brand-border-color, rgba(255,255,255,.08)) !important;
 border-top: none !important; /* så det "hekter seg på" fanen */
 border-radius: 0 0 var(--brand-radius-card-px, .5rem) .5rem;
 /* valgfritt: litt padding hvis dere ikke har i markup */
 padding: 1rem;
}
/* === DARK: visited links – for lysere kontrast på mørk bakgrunn === */
:root[data-theme="dark"] a:visited:not(.report-sort-link):not(.btn) {
 color: var(--brand-link, var(--bs-link-color, #ffffff));
}
/* knapper skal ikke få visited-farge i dark */
:root[data-theme="dark"] a.btn-primary:visited,
:root[data-theme="dark"] a.btn-secondary:visited,
:root[data-theme="dark"] a.btn-success:visited,
:root[data-theme="dark"] a.btn-danger:visited,
:root[data-theme="dark"] a.btn-warning:visited,
:root[data-theme="dark"] a.btn-info:visited,
:root[data-theme="dark"] a.btn-light:visited,
:root[data-theme="dark"] a.btn-dark:visited {
 color: var(--bs-btn-color, currentColor) !important;
}
:root[data-theme="dark"] a.btn-outline-primary:visited,
:root[data-theme="dark"] a.btn-outline-secondary:visited,
:root[data-theme="dark"] a.btn-outline-success:visited,
:root[data-theme="dark"] a.btn-outline-danger:visited,
:root[data-theme="dark"] a.btn-outline-warning:visited,
:root[data-theme="dark"] a.btn-outline-info:visited,
:root[data-theme="dark"] a.btn-outline-light:visited,
:root[data-theme="dark"] a.btn-outline-dark:visited {
 color: color-mix(in oklab, var(--_prim) 90%, #fff) !important;
}
/* Dark/system danger buttons need stronger red contrast than the generic outline mix. */
:root[data-theme="dark"] .btn-danger,
:root[data-theme="dark"] a.btn.btn-danger {
 --bs-btn-bg: color-mix(in oklab, var(--bs-danger, #dc3545) 88%, #fff);
 --bs-btn-border-color: color-mix(in oklab, var(--bs-danger, #dc3545) 92%, #fff);
 --bs-btn-hover-bg: color-mix(in oklab, var(--bs-danger, #dc3545) 78%, #fff);
 --bs-btn-hover-border-color: color-mix(in oklab, var(--bs-danger, #dc3545) 84%, #fff);
 --bs-btn-active-bg: color-mix(in oklab, var(--bs-danger, #dc3545) 70%, #fff);
 --bs-btn-active-border-color: color-mix(in oklab, var(--bs-danger, #dc3545) 78%, #fff);
 background-color: var(--bs-btn-bg) !important;
 border-color: var(--bs-btn-border-color) !important;
 color: var(--brand-on-danger, #ffffff) !important;
}
:root[data-theme="dark"] .btn-outline-danger,
:root[data-theme="dark"] a.btn.btn-outline-danger {
 --bs-btn-color: color-mix(in oklab, var(--bs-danger, #dc3545) 72%, #fff);
 --bs-btn-border-color: color-mix(in oklab, var(--bs-danger, #dc3545) 80%, #fff);
 --bs-btn-hover-color: var(--brand-on-danger, #ffffff);
 --bs-btn-hover-bg: color-mix(in oklab, var(--bs-danger, #dc3545) 88%, #fff);
 --bs-btn-hover-border-color: color-mix(in oklab, var(--bs-danger, #dc3545) 92%, #fff);
 --bs-btn-active-color: var(--brand-on-danger, #ffffff);
 --bs-btn-active-bg: color-mix(in oklab, var(--bs-danger, #dc3545) 78%, #fff);
 --bs-btn-active-border-color: color-mix(in oklab, var(--bs-danger, #dc3545) 84%, #fff);
 color: var(--bs-btn-color) !important;
 border-color: var(--bs-btn-border-color) !important;
}
:root[data-theme="dark"] .btn-outline-danger:hover,
:root[data-theme="dark"] .btn-outline-danger:focus,
:root[data-theme="dark"] a.btn.btn-outline-danger:hover,
:root[data-theme="dark"] a.btn.btn-outline-danger:focus {
 background-color: var(--bs-btn-hover-bg) !important;
 border-color: var(--bs-btn-hover-border-color) !important;
 color: var(--bs-btn-hover-color) !important;
}
:root[data-theme="dark"] .btn-outline-danger:active,
:root[data-theme="dark"] .btn-outline-danger.active,
:root[data-theme="dark"] a.btn.btn-outline-danger:active,
:root[data-theme="dark"] a.btn.btn-outline-danger.active {
 background-color: var(--bs-btn-active-bg) !important;
 border-color: var(--bs-btn-active-border-color) !important;
 color: var(--bs-btn-active-color) !important;
}
@media (prefers-color-scheme: dark) {
 :root:not([data-theme="light"]) .btn-danger,
 :root:not([data-theme="light"]) a.btn.btn-danger {
 --bs-btn-bg: color-mix(in oklab, var(--bs-danger, #dc3545) 88%, #fff);
 --bs-btn-border-color: color-mix(in oklab, var(--bs-danger, #dc3545) 92%, #fff);
 --bs-btn-hover-bg: color-mix(in oklab, var(--bs-danger, #dc3545) 78%, #fff);
 --bs-btn-hover-border-color: color-mix(in oklab, var(--bs-danger, #dc3545) 84%, #fff);
 --bs-btn-active-bg: color-mix(in oklab, var(--bs-danger, #dc3545) 70%, #fff);
 --bs-btn-active-border-color: color-mix(in oklab, var(--bs-danger, #dc3545) 78%, #fff);
 background-color: var(--bs-btn-bg) !important;
 border-color: var(--bs-btn-border-color) !important;
 color: var(--brand-on-danger, #ffffff) !important;
 }
 :root:not([data-theme="light"]) .btn-outline-danger,
 :root:not([data-theme="light"]) a.btn.btn-outline-danger {
 --bs-btn-color: color-mix(in oklab, var(--bs-danger, #dc3545) 72%, #fff);
 --bs-btn-border-color: color-mix(in oklab, var(--bs-danger, #dc3545) 80%, #fff);
 --bs-btn-hover-color: var(--brand-on-danger, #ffffff);
 --bs-btn-hover-bg: color-mix(in oklab, var(--bs-danger, #dc3545) 88%, #fff);
 --bs-btn-hover-border-color: color-mix(in oklab, var(--bs-danger, #dc3545) 92%, #fff);
 --bs-btn-active-color: var(--brand-on-danger, #ffffff);
 --bs-btn-active-bg: color-mix(in oklab, var(--bs-danger, #dc3545) 78%, #fff);
 --bs-btn-active-border-color: color-mix(in oklab, var(--bs-danger, #dc3545) 84%, #fff);
 color: var(--bs-btn-color) !important;
 border-color: var(--bs-btn-border-color) !important;
 }
 :root:not([data-theme="light"]) .btn-outline-danger:hover,
 :root:not([data-theme="light"]) .btn-outline-danger:focus,
 :root:not([data-theme="light"]) a.btn.btn-outline-danger:hover,
 :root:not([data-theme="light"]) a.btn.btn-outline-danger:focus {
 background-color: var(--bs-btn-hover-bg) !important;
 border-color: var(--bs-btn-hover-border-color) !important;
 color: var(--bs-btn-hover-color) !important;
 }
 :root:not([data-theme="light"]) .btn-outline-danger:active,
 :root:not([data-theme="light"]) .btn-outline-danger.active,
 :root:not([data-theme="light"]) a.btn.btn-outline-danger:active,
 :root:not([data-theme="light"]) a.btn.btn-outline-danger.active {
 background-color: var(--bs-btn-active-bg) !important;
 border-color: var(--bs-btn-active-border-color) !important;
 color: var(--bs-btn-active-color) !important;
 }
}
:root[data-theme="dark"] footer a:visited,
:root[data-theme="dark"] .site-footer a:visited {
 color: var(--brand-footer-link, var(--brand-link, var(--bs-link-color, #ffffff))) !important;
}
/* Siste toast-overstyring etter dark visited-regler: toast-bakgrunn bestemmer lenkekontrast. */
.toast a,
.toast a:visited {
 color: currentColor !important;
 text-decoration-color: currentColor !important;
}
.toast a:hover,
.toast a:focus {
 color: currentColor !important;
 text-decoration-color: currentColor !important;
}
.toast.bg-success a,
.toast.bg-success a:visited {
 color: var(--brand-toast-success-link, currentColor) !important;
 text-decoration-color: currentColor !important;
}
.toast.bg-success a:hover,
.toast.bg-success a:focus {
 color: var(--brand-toast-success-link-hover, var(--brand-toast-success-link, currentColor)) !important;
}
.toast.bg-danger a,
.toast.bg-danger a:visited {
 color: var(--brand-toast-danger-link, currentColor) !important;
 text-decoration-color: currentColor !important;
}
.toast.bg-danger a:hover,
.toast.bg-danger a:focus {
 color: var(--brand-toast-danger-link-hover, var(--brand-toast-danger-link, currentColor)) !important;
}
.toast.bg-warning a,
.toast.bg-warning a:visited {
 color: var(--brand-toast-warning-link, currentColor) !important;
 text-decoration-color: currentColor !important;
}
.toast.bg-warning a:hover,
.toast.bg-warning a:focus {
 color: var(--brand-toast-warning-link-hover, var(--brand-toast-warning-link, currentColor)) !important;
}
.toast.bg-info a,
.toast.bg-info a:visited {
 color: var(--brand-toast-info-link, currentColor) !important;
 text-decoration-color: currentColor !important;
}
.toast.bg-info a:hover,
.toast.bg-info a:focus {
 color: var(--brand-toast-info-link-hover, var(--brand-toast-info-link, currentColor)) !important;
}
.toast.bg-brand a,
.toast.bg-brand a:visited {
 color: var(--brand-toast-brand-link, currentColor) !important;
 text-decoration-color: currentColor !important;
}
.toast.bg-brand a:hover,
.toast.bg-brand a:focus {
 color: var(--brand-toast-brand-link-hover, var(--brand-toast-brand-link, currentColor)) !important;
}
.toast.bg-primary a,
.toast.bg-primary a:visited {
 color: var(--brand-toast-primary-link, currentColor) !important;
 text-decoration-color: currentColor !important;
}
.toast.bg-primary a:hover,
.toast.bg-primary a:focus {
 color: var(--brand-toast-primary-link-hover, var(--brand-toast-primary-link, currentColor)) !important;
}
.toast.bg-secondary a,
.toast.bg-secondary a:visited {
 color: var(--brand-toast-secondary-link, currentColor) !important;
 text-decoration-color: currentColor !important;
}
.toast.bg-secondary a:hover,
.toast.bg-secondary a:focus {
 color: var(--brand-toast-secondary-link-hover, var(--brand-toast-secondary-link, currentColor)) !important;
}
/* === DARK: alert-info – juster til mørk flate og lys tekst === */
:root[data-theme="dark"] .alert-info {
 /* gjør info-fargen mørkere mot svart, slik du gjorde for warning */
 background-color: color-mix(in oklab, var(--bs-info, var(--brand-info, #0ea5e9)) 14%, #000) !important;
 border-color: color-mix(in oklab, var(--bs-info, var(--brand-info, #0ea5e9)) 30%, #000) !important;
 color: var(--brand-body-color, #ffffff) !important;
}
/* === DARK: alert-success – samme logikk som info === */
:root[data-theme="dark"] .alert-success {
 background-color: color-mix(in oklab, var(--bs-success, var(--brand-success, #22c55e)) 14%, #000) !important;
 border-color: color-mix(in oklab, var(--bs-success, var(--brand-success, #22c55e)) 30%, #000) !important;
 color: var(--brand-body-color, #ffffff) !important;
}
/* === DARK: alert-primary – mørkere flate med hvit tekst === */
:root[data-theme="dark"] .alert-primary {
 background-color: color-mix(in oklab, var(--bs-primary, var(--brand-primary, #3b82f6)) 14%, #000) !important;
 border-color: color-mix(in oklab, var(--bs-primary, var(--brand-primary, #3b82f6)) 30%, #000) !important;
 color: var(--brand-body-color, #ffffff) !important;
}
/* === DARK: alert-secondary – gi samme dempet flate som cards === */
:root[data-theme="dark"] .alert-secondary {
 background-color: color-mix(in oklab, var(--bs-secondary, var(--brand-secondary, #6c757d)) 14%, #000) !important;
 border-color: color-mix(in oklab, var(--bs-secondary, var(--brand-secondary, #6c757d)) 30%, #000) !important;
 color: var(--brand-body-color, #ffffff) !important;
}
/* Readonly/visningsfelt – også når noen har lagt på .border-0 */
.form-control-plaintext,
.form-control-plaintext.border-0 {
 color: var(--bs-secondary-color, #495057);
 background-color: transparent;
 border: 0;
 border-bottom: 1px solid rgba(0, 0, 0, .35) !important; /* tydelig men ikke hard */
 padding-bottom: .5rem;
}
@media (prefers-color-scheme: dark) {
 .form-control-plaintext,
 .form-control-plaintext.border-0 {
 color: rgba(255,255,255,.85);
 border-bottom: 1px solid rgba(230,230,230,.6) !important; /* synlig på #0E272E */
 }
}
/* === DARK: Forbedret fokusfarge og tydelig outline ======================= */
:root[data-theme="dark"] {
 /* Lysere og mer synlig primærfarge for fokusmarkering */
 --focus-color: color-mix(in oklab, var(--bs-primary, var(--brand-primary, #3b82f6)) 80%, #fff);
 --brand-focus-rgba: color-mix(in oklab, var(--focus-color) 35%, transparent);
}
/* Overstyr globalt fokus-utseende i dark */
:root[data-theme="dark"] :where(
 a, button, input, select, textarea,
 .btn, .nav-link, .dropdown-item, .navbar-toggler,
 .page-link, [role="button"],
 .list-group-item, .accordion-button, .btn-close,
 [tabindex]:not([tabindex="-1"])
):focus-visible {
 outline: 2px solid var(--focus-color) !important;
 outline-offset: var(--brand-focus-outline-offset, 2px);
 box-shadow: 0 0 0 var(--brand-focus-width, 3px) var(--brand-focus-rgba) !important;
}
/* når en offcanvas er åpen: lås scroll på body */
html.offcanvas-open,
body.offcanvas-open {
 overflow: hidden;
 overscroll-behavior: contain;
}
/* hvis det er dette området som scroller */
.admin-wrap.offcanvas-open,
.content-wrapper.offcanvas-open {
 overflow: hidden;
 max-height: 100vh; /* så den ikke “finner” en ny scroll */
}
:root {
 /* Litt primær inn i bakgrunnen så det skiller seg fra cards/body */
 --toolbar-surface-bg: color-mix(in oklab, var(--bs-primary) 6%, var(--bs-body-bg));
 --toolbar-surface-border: color-mix(in oklab, var(--bs-primary) 35%, #fff);
}
:root[data-theme="dark"] {
 /* I dark: ta utgangspunkt i surfaces, men løft den litt så den ikke blir helt lik kortene */
 --toolbar-surface-bg: color-mix(in oklab, var(--brand-surface, #121212) 70%, #000);
 --toolbar-surface-border: color-mix(in oklab, var(--bs-primary) 30%, rgba(255,255,255,.18));
}
@media (prefers-color-scheme: dark) {
 :root:not([data-theme="light"]) {
 --toolbar-surface-bg: color-mix(in oklab, var(--brand-surface, #121212) 70%, #000);
 --toolbar-surface-border: color-mix(in oklab, var(--bs-primary) 30%, rgba(255,255,255,.18));
 }
}
/* === Segmented controls (sm) – balansert for Bootstrap cards === */
:root{
 --seg-bg: rgba(0,0,0,.04);
 --seg-border: rgba(0,0,0,.10);
 --seg-active-bg: rgba(0,0,0,.08);
 --seg-focus: rgba(13,110,253,.35); /* bootstrap primary-ish */
}
@media (prefers-color-scheme: dark){
 :root{
 --seg-bg: rgba(255,255,255,.05);
 --seg-border: rgba(255,255,255,.14);
 --seg-active-bg: rgba(255,255,255,.12);
 --seg-focus: rgba(112,148,255,.35);
 }
}
/* =========================
 Segmented controls (sm)
 – Brand-sikker, kompakt, shrink-to-content
 – Støtter både .btn-group.segmented-sm og .segmented/.segmented-item
 ========================= */
/* Tokens (kan overstyres i brand.css.php ved behov) */
:root{
 --seg-bg: color-mix(in srgb, var(--bs-body-color) 6%, transparent);
 --seg-border: var(--bs-border-color);
 --seg-item-bg: var(--bs-body-bg);
 --seg-item-border: var(--bs-border-color);
 --seg-item-color: var(--bs-body-color);
 --seg-active-bg: var(--bs-primary);
 --seg-active-color: #fff;
 --seg-focus: rgba(var(--bs-primary-rgb), .20);
}
/* --- Variant A: Bootstrap .btn-group med btn-check --- */
.btn-group.segmented-sm{
 display:inline-flex; /* ← krymp til innhold */
 gap:.5rem;
 padding:.25rem;
 border-radius:9999px;
 background:var(--seg-bg);
 border:1px solid var(--seg-border);
 width:auto;
 max-width:100%;
}
.btn-group.segmented-sm > .btn{
 flex:0 0 auto !important; /* ikke strekk */
 border-radius:9999px !important;
 padding:.35rem .75rem; /* ~btn-sm */
 font-size:.875rem;
 line-height:1.2;
 border:0 !important; /* wrapper håndterer kant */
 background:transparent;
 color:var(--bs-body-color);
 opacity:.9;
 transition:all .15s ease-in-out;
}
.btn-group.segmented-sm > .btn:hover{
 opacity:1;
 background:color-mix(in srgb, var(--seg-active-bg) 10%, transparent);
}
/* Checked (btn-check + label) */
.btn-check:checked + .btn.btn-outline-secondary{
 background:var(--seg-active-bg) !important;
 color:var(--seg-active-color) !important;
 opacity:1;
 box-shadow:0 0 0 .15rem var(--seg-focus);
}
.btn-check:focus + .btn.btn-outline-secondary{
 box-shadow:0 0 0 .2rem var(--seg-focus) !important;
}
/* Disabled */
.btn-group.segmented-sm > .btn:disabled{
 opacity:.45;
 pointer-events:none;
}
/* --- Variant B: Egen wrapper .segmented med .segmented-item --- */
.segmented{
 display:inline-flex; /* shrink-to-content */
 flex-wrap:wrap;
 gap:.5rem;
 align-items:center;
 padding:.25rem;
 border-radius:.75rem;
 background:var(--seg-bg);
 border:1px solid var(--seg-border);
 width:auto;
 max-width:100%;
}
/* Skjul native radioer, behold a11y */
.segmented .segmented-input{
 position:absolute;
 opacity:0;
 pointer-events:none;
}
/* Knapp(er) – innholdsbasert bredde */
.segmented .segmented-item{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 padding:.35rem .6rem; /* kompakt */
 border:1px solid var(--seg-item-border);
 border-radius:.65rem;
 background:var(--seg-item-bg);
 color:var(--seg-item-color);
 font-size:.9rem;
 line-height:1.1;
 white-space:nowrap;
 transition:background-color .15s, border-color .15s, color .15s, box-shadow .15s;
}
.segmented .segmented-item:hover{
 border-color:color-mix(in srgb, var(--seg-item-border) 60%, var(--bs-body-color) 40%);
}
.segmented .segmented-item:focus-visible{
 outline:2px solid var(--bs-primary);
 outline-offset:2px;
}
/* Checked (radio:checked + label) */
.segmented .segmented-input:checked + .segmented-item{
 background:var(--seg-active-bg) !important;
 color:var(--brand-on-primary) !important;
 border-color:var(--seg-active-bg) !important;
 box-shadow:0 0 0 .15rem var(--seg-focus);
}
/* --- Dark mode: juster uten råfarger (fortsatt brand-sikkert) */
@media (prefers-color-scheme: dark){
 :root{
 --seg-bg: color-mix(in srgb, var(--bs-body-color) 10%, transparent);
 --seg-border: color-mix(in srgb, var(--bs-body-color) 22%, transparent);
 --seg-item-border: color-mix(in srgb, var(--bs-body-color) 18%, transparent);
 --seg-focus: rgba(var(--bs-primary-rgb), .30);
 }
}
/* ================================================
 * Analytics / SEO / WCAG – badge vertical centering
 * ================================================ */
.badge.rounded-pill,
.badge.text-bg-secondary,
.badge.bg-light {
 line-height: 1.25; /* evt. 1.3 hvis du vil ha enda jevnere */
 display: inline-flex;
 align-items: center;
}
/* ==========================================================
 Testimonials styling for course.detail.php
 Speiler CMS-blokkens t-card / t-quote / t-avatar uttrykk
 ========================================================== */
.page--course-detail .t-card {
 border-radius: var(--brand-radius, .75rem);
 box-shadow: var(--brand-card-shadow, 0 .25rem .75rem rgba(0,0,0,.05));
 background: var(--brand-surface, #fff);
 border: 1px solid var(--brand-border-color, rgba(0,0,0,.08));
}
.page--course-detail .t-card .card-body {
 padding: var(--brand-card-padding, 1.25rem);
}
.page--course-detail .t-quote {
 font-size: var(--brand-quote-font-size, 1.125rem);
 line-height: var(--brand-quote-line-height, 1.6);
}
.page--course-detail .t-quote-icon {
 font-size: var(--brand-quote-icon-size, 1.5rem);
 color: var(--brand-primary, #0d6efd);
 opacity: var(--brand-quote-icon-opacity, .75);
}
.page--course-detail .t-avatar img,
.page--course-detail .t-avatar picture {
 width: var(--brand-avatar-size, 64px);
 height: var(--brand-avatar-size, 64px);
 object-fit: cover;
 border-radius: 50%;
}
/* ==========================================================
 Course detail – testimonials track
 Juster kortbredde + la høyde styres av innhold
 ========================================================== */
.page--course-detail #course-testimonials .ct-track {
 display: flex;
 gap: 1.5rem;
 overflow-x: auto;
 padding-bottom: .5rem;
 scroll-snap-type: x mandatory;
}
/* Kort: litt smalere, og ingen tvunget 100 % høyde */
.page--course-detail #course-testimonials .ct-card {
 flex: 0 0 min(100%, 380px);
 scroll-snap-align: start;
}
.page--course-detail #course-testimonials .t-card {
 height: auto !important; /* overstyrer .h-100 */
 min-height: 0;
}
.page--course-detail #course-testimonials .t-card .card-body {
 padding-top: 1.1rem;
 padding-bottom: 1.1rem;
}
/* Litt mer kompakt sitat-typografi i kursdetalj */
.page--course-detail #course-testimonials .t-quote {
 font-size: 1rem;
 line-height: 1.5;
}
@media (min-width: 768px) {
 .page--course-detail #course-testimonials .ct-card {
 flex: 0 0 400px;
 }
}
@media (min-width: 1200px) {
 .page--course-detail #course-testimonials .ct-card {
 flex: 0 0 420px;
 }
}
/* Reset Bootstrap padding for breadcrumb container */
.page nav[aria-label] {
 padding-top: 0;
 padding-bottom: 0;
}
/* Unified breadcrumb spacing (page + term + courses + any future templates) */
/* Global breadcrumb spacing – alle varianter */
.breadcrumb--page,
.breadcrumb--term,
.breadcrumb--channel {
 margin-top: var(--breadcrumb-spacing-top)!important;
 margin-bottom: var(--breadcrumb-spacing-bottom)!important;
}
/* Fakta-linjer i kursdetalj: ikon + label perfekt aligned */
.page--course-detail .course-fact-label {
 display: inline-flex;
 align-items: center;
 gap: .35rem;
}
.page--course-detail .course-fact-icon {
 width: 1.35rem; /* fast ikonbredde */
 display: inline-flex;
 justify-content: center; /* sentrer selve ikonet innenfor bredden */
}
/* ==========================================================
 Course detail – testimonials avatar fix
 Sikrer 100% sirkulære avatarer og riktig cropping
 ========================================================== */
.page--course-detail #course-testimonials .t-avatar {
 width: 48px; /* kan justeres */
 height: 48px; /* samme som bredde → alltid kvadrat */
 border-radius: 50% !important;
 overflow: hidden;
 flex-shrink: 0;
 display: flex; /* sikrer at bildet fyller container */
 justify-content: center;
 align-items: center;
}
.page--course-detail #course-testimonials .t-avatar img {
 width: 100%;
 height: 100%;
 object-fit: cover; /* kritisk for å hindre deformering */
 display: block;
 border-radius: 50% !important;
}
/* ------------------------------
 Wishlist – aktiv state (sekundær/rolig)
------------------------------ */
/* Hold samme “familie” som btn-outline-secondary / Last ned PDF */
.js-course-wishlist-toggle.is-active {
 background-color: var(--brand-surface, #fff) !important;
 border-color: var(--bs-secondary) !important;
 color: var(--bs-secondary) !important;
}
/* Ikon følger samme sekundærfarge */
.js-course-wishlist-toggle.is-active svg,
.js-course-wishlist-toggle.is-active i {
 color: var(--bs-secondary) !important;
 fill: currentColor !important;
}
/* ------------------------------
 Wishlist – pulse-animasjon (robust)
------------------------------ */
.js-course-wishlist-toggle svg,
.js-course-wishlist-toggle i {
 display: inline-block;
 transform-origin: center;
}
/* SVG trenger ofte transform-box for at scale skal “treffe” riktig */
.js-course-wishlist-toggle svg {
 transform-box: fill-box;
}
.js-course-wishlist-toggle.wishlist-anim svg,
.js-course-wishlist-toggle.wishlist-anim i {
 animation: wishlist-pulse 0.32s ease-out;
}
@keyframes wishlist-pulse {
 0% { transform: scale(1); }
 35% { transform: scale(1.3); }
 100% { transform: scale(1); }
}
/* =========================================================
 * Mobil-spacing globalt (<= 576px)
 * Mer luft i kanter, kort og brødtekst – også på kursdetalj
 * =======================================================*/
@media (max-width: 576px) {
 /* Mer luft i container på alle sider */
.container .container-fluid{
 padding-left: 18px;
 padding-right: 18px;
}
/* Home: unngå dobbel “gutter” (container > container-fluid) */
.page--home .container .container-fluid{
 padding-left: 0;
 padding-right: 0;
}
 /* Mer luft i selve sideinnholdet (alle .page-seksjoner) */
 .page {
 /* padding-top: 1.5rem; */
 padding-bottom: 2rem;
 }
 /* Bedre lesbarhet for brødtekst */
 .cms-content p {
 line-height: 1.6;
 margin-bottom: 1.1rem;
 }
 /* Litt mer padding inne i cards på mobil (admin + public) */
 .card.card-surface .card-body {
 padding: 18px !important;
 }
 /* Ekstra luft rundt kursfakta-boksen på kursdetalj */
 .page--course-detail .course-detail-sidebar .card.card-surface {
 margin-top: 1rem;
 margin-bottom: 1.5rem;
 }
}
.term-excerpt-card { border-radius: 0!important; }
@media (max-width: 991.98px) {
 .term-excerpt-card { border-radius: var(--bs-border-radius-lg)!important; }
}
/* Cart – normalize guarantee HTML spacing */
.guarantee-info .guarantee-text > *:last-child {
 margin-bottom: 0;
}
.guarantee-info .guarantee-price {
 margin-top: 0.25rem;
}
html[data-theme="dark"] .kpi-subtext {
 color: var(--brand_dark_body_color_hex) !important;
}
html[data-theme="dark"] .cms-block-cards .sc-btn,
html[data-theme="dark"] .cms-block-testimonials .sc-btn{
 background: var(--brand-dark-body-color);
 border: 1px solid rgba(255,255,255,.2);
 color: #fff;
}
.content-video-preview-modal__body {
 align-items: center;
 display: flex;
 justify-content: center;
}
.content-video-preview-modal__player {
 display: block;
 height: auto;
 margin-inline: auto;
 max-height: calc(100vh - 12rem);
 max-width: 100%;
 object-fit: contain;
 width: auto;
}
/* Egendefinert CSS fra settings */
/* Egendefinert CSS fra settings */
