/* ============================================================
   Cockpit - Onyx Ember theme
   Dark, architectural, ember-gradient redesign.
   Loaded after sb-admin-2 and main.css; overrides the light theme.
   ============================================================ */

:root {
    --ink: #ECE4D5;
    --ink-2: #A99F8C;
    --ink-3: #7A7264;
    --line: rgba(232, 202, 148, .1);
    --line-2: rgba(232, 202, 148, .18);
    --accent: #E68142;
    --ember-1: #E2662E;
    --ember-2: #F4B65C;
    --accent-bright: #F2A858;
    --accent-soft: #F0A45E;
    --accent-rgb: 226, 102, 46;
    --grad: linear-gradient(135deg, var(--ember-1) 0%, var(--ember-2) 100%);
    --card-bg: linear-gradient(180deg, #251E16 0%, #1B150F 100%);
    --card-solid: #211A12;
    --card-2: rgba(255, 240, 215, .04);
    --card-3: rgba(255, 240, 215, .08);
    --green: #83B86C;
    --green-bg: rgba(131, 184, 108, .16);
    --blue: #86B6E2;
    --blue-bg: rgba(110, 160, 210, .16);
    --amber: #E7C06A;
    --amber-bg: rgba(231, 192, 106, .16);
    --red: #FF8A80;
    --red-bg: rgba(255, 138, 128, .14);
    --purple: #B9ABE8;
    --purple-bg: rgba(150, 128, 210, .18);
    --serif: 'Newsreader', Georgia, serif;
    --sans: 'Hanken Grotesk', system-ui, -apple-system, sans-serif;
    --shadow: inset 0 1px 0 rgba(255, 242, 214, .06), 0 2px 8px rgba(0, 0, 0, .45), 0 40px 80px -38px rgba(0, 0, 0, .82);
    --bg-dark: #161009;
    --bg-darker: #0F0B07;
    --app-bg: radial-gradient(135% 115% at 82% -12%, #2A1E13 0%, #161009 46%, #0F0B07 100%);
    --side-bg: linear-gradient(180deg, rgba(255, 240, 215, .035), rgba(255, 240, 215, .008));
    --userbox-bg: rgba(16, 12, 8, .92);
    --nav-active-ink: #FBEEE0;
    --surface-faint: rgba(255, 240, 215, .02);
    --hover-1: rgba(255, 240, 215, .025);
    --hover-2: rgba(255, 240, 215, .06);
    --hover-3: rgba(255, 240, 215, .08);
    --hover-4: rgba(255, 240, 215, .12);
    --scroll-thumb: rgba(255, 240, 215, .12);
    --scroll-thumb-hover: rgba(255, 240, 215, .2);
    --chart-grid: rgba(232, 202, 148, .08);
    --gauge-track: rgba(232, 202, 148, .12);
    --shade: rgba(0, 0, 0, .25);
    --thead-strong: #2A2117;
    --pop-shadow: 0 14px 34px -12px rgba(0, 0, 0, .7);
    --alert-success-ink: #BFE0AC;
    --alert-danger-ink: #F4B6B0;
    --alert-warning-ink: #ECD49A;
    --alert-info-ink: #B4D2EC;
    color-scheme: dark;

    /* Keep legacy brand variables pointing at the new palette */
    --brand-orange: #E2662E;
    --brand-orange-dark: #C9551F;
    --brand-orange-light: #F0A45E;
}

/* ---------- Light mode (Ember Light) ---------- */

html[data-theme="light"] {
    --ink: #2B2418;
    --ink-2: #6E6555;
    --ink-3: #9A9080;
    --line: rgba(43, 32, 16, .12);
    --line-2: rgba(43, 32, 16, .22);
    --accent-bright: #C9551F;
    --accent-soft: #BC5524;
    --card-bg: linear-gradient(180deg, #FFFFFF 0%, #FBF7F0 100%);
    --card-solid: #FFFFFF;
    --card-2: rgba(43, 32, 16, .04);
    --card-3: rgba(43, 32, 16, .08);
    --green: #4E8A38;
    --green-bg: rgba(94, 154, 71, .14);
    --blue: #3D7AB8;
    --blue-bg: rgba(74, 127, 181, .14);
    --amber: #A8821F;
    --amber-bg: rgba(185, 138, 47, .16);
    --red: #C2473A;
    --red-bg: rgba(196, 69, 55, .12);
    --purple: #6F5BB5;
    --purple-bg: rgba(122, 104, 184, .14);
    --shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 1px 3px rgba(43, 32, 16, .07), 0 24px 60px -34px rgba(43, 32, 16, .3);
    --bg-dark: #F3EFE7;
    --bg-darker: #F1EDE4;
    --app-bg: radial-gradient(135% 115% at 82% -12%, #F7EDDD 0%, #FAF9F5 46%, #F1EDE4 100%);
    --side-bg: linear-gradient(180deg, rgba(43, 32, 16, .035), rgba(43, 32, 16, .006));
    --userbox-bg: rgba(250, 249, 245, .92);
    --nav-active-ink: #8A3E12;
    --surface-faint: rgba(43, 32, 16, .02);
    --hover-1: rgba(43, 32, 16, .03);
    --hover-2: rgba(43, 32, 16, .05);
    --hover-3: rgba(43, 32, 16, .07);
    --hover-4: rgba(43, 32, 16, .09);
    --scroll-thumb: rgba(43, 32, 16, .2);
    --scroll-thumb-hover: rgba(43, 32, 16, .32);
    --chart-grid: rgba(43, 32, 16, .08);
    --gauge-track: rgba(43, 32, 16, .1);
    --shade: rgba(43, 32, 16, .06);
    --thead-strong: #EDE5D6;
    --pop-shadow: 0 14px 34px -16px rgba(43, 32, 16, .35);
    --alert-success-ink: #3E6B2C;
    --alert-danger-ink: #9E3A2F;
    --alert-warning-ink: #84661A;
    --alert-info-ink: #2F6395;
    color-scheme: light;
}

/* ---------- Base ---------- */

html {
    background: var(--app-bg) fixed var(--bg-darker);
}

body {
    font-family: var(--sans);
    font-size: .92rem;
    background: transparent;
    color: var(--ink);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    color: var(--ink);
}

a {
    color: var(--accent-bright);
}

a:hover {
    color: var(--ember-2);
}

hr {
    border-top-color: var(--line);
}

code {
    color: var(--accent-soft);
}

::selection {
    background: rgba(var(--accent-rgb), .4);
    color: #FFF6EC;
}

::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: var(--scroll-thumb);
    border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--scroll-thumb-hover);
}

#content-wrapper {
    background-color: transparent !important;
    /* Flex item: without this it cannot shrink below the intrinsic width of wide
       tables, so pages like Estimeret omsætning overflow the viewport on laptops. */
    min-width: 0;
}

/* Utility remaps: light-theme helper classes used across the views */
.bg-white {
    background-color: transparent !important;
}

.bg-light {
    background-color: var(--card-2) !important;
}

.text-dark,
.text-gray-700,
.text-gray-800,
.text-gray-900 {
    color: var(--ink) !important;
}

.text-muted,
.text-gray-400,
.text-gray-500,
.text-gray-600 {
    color: var(--ink-2) !important;
}

.text-primary {
    color: var(--accent-bright) !important;
}

.text-success {
    color: var(--green) !important;
}

.text-danger {
    color: var(--red) !important;
}

.text-warning {
    color: var(--amber) !important;
}

.text-info {
    color: var(--blue) !important;
}

.border,
.border-top,
.border-right,
.border-bottom,
.border-left {
    border-color: var(--line) !important;
}

.shadow {
    box-shadow: var(--shadow) !important;
}

/* ---------- Sidebar ---------- */

.sidebar {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    flex-shrink: 0;
}

/* Pin the sidebar to the viewport so the user card stays visible on long pages.
   Collapsed mode keeps overflow visible because its submenus fly out absolutely. */
@media (min-width: 768px) {
    .sidebar {
        position: sticky;
        top: 0;
        height: 100vh;
        min-height: 0;
    }

    .sidebar:not(.toggled) {
        width: 15.75rem !important;
        overflow-y: auto;
    }
}

.sidebar.sidebar-dark,
.sidebar-dark {
    background: var(--side-bg);
    border-right: 1px solid var(--line);
}

.sidebar-brand,
.sidebar-dark .sidebar-brand,
.fixed-brand-bg {
    background-color: transparent;
}

.fixed-brand-bg {
    background: var(--bg-darker);
}

.sidebar .sidebar-brand {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 11px;
    padding: 1.35rem 1.25rem 1.25rem;
    height: auto;
    text-decoration: none;
}

.sidebar .brand-mark {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: var(--grad);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    box-shadow: 0 8px 24px -4px rgba(var(--accent-rgb), .6);
}

.sidebar .brand-mark svg {
    width: 19px;
    height: 19px;
    color: #FFF6EC;
}

.sidebar .brand-name {
    font-family: var(--serif);
    font-size: 21px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--ink);
    text-transform: none;
}

.sidebar hr.sidebar-divider {
    border-top: 1px solid var(--line);
    margin: 0 1rem;
}

.sidebar .nav-label {
    font-size: 10.5px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--ink-3);
    font-weight: 600;
    padding: 14px 1.45rem 6px;
}

.sidebar .nav-item .nav-link {
    color: var(--ink-2);
    font-size: 14.5px;
    font-weight: 500;
    padding: 9px 1rem;
    margin: 1px 10px;
    border-radius: 9px;
    transition: .15s;
    display: flex;
    align-items: center;
    gap: 12px;
    width: auto;
}

.sidebar .nav-item .nav-link i {
    font-size: .85rem;
    color: inherit;
    opacity: .6;
    margin-right: 0;
}

.sidebar .nav-item .nav-link span {
    font-size: 14.5px;
    display: inline;
}

.sidebar .nav-item .nav-link:hover {
    background: var(--hover-2);
    color: var(--ink);
}

.sidebar .nav-item .nav-link[aria-expanded="true"],
.sidebar .nav-item.active .nav-link {
    background: linear-gradient(90deg, rgba(var(--accent-rgb), .16), rgba(var(--accent-rgb), .04));
    color: var(--nav-active-ink);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 0 0 1px rgba(232, 202, 148, .1);
}

.sidebar .nav-item .nav-link[aria-expanded="true"] i,
.sidebar .nav-item.active .nav-link i {
    opacity: 1;
    color: var(--accent-bright);
}

.sidebar .nav-item .nav-link[data-bs-toggle="collapse"]::after {
    color: var(--ink-3);
    margin-left: auto;
}

/* Collapsed submenu panel */
.sidebar .nav-item .collapse .collapse-inner,
.sidebar .nav-item .collapsing .collapse-inner,
.sidebar .collapse-inner.bg-white {
    background: var(--card-solid) !important;
    border: 1px solid var(--line);
    border-radius: 11px;
    box-shadow: var(--pop-shadow);
}

.sidebar .nav-item .collapse .collapse-inner .collapse-item,
.sidebar .nav-item .collapsing .collapse-inner .collapse-item {
    color: var(--ink-2);
    font-size: 13.5px;
    border-radius: 7px;
    margin: 0 .35rem;
    width: auto;
}

.sidebar .nav-item .collapse .collapse-inner .collapse-item:hover,
.sidebar .nav-item .collapsing .collapse-inner .collapse-item:hover {
    background: var(--hover-2);
    color: var(--ink);
}

.sidebar .nav-item .collapse .collapse-inner .collapse-item.active,
.sidebar .nav-item .collapsing .collapse-inner .collapse-item.active {
    background: rgba(var(--accent-rgb), .16);
    color: var(--accent-bright);
}

.sidebar .collapse-inner .collapse-divider {
    border-top: 1px solid var(--line);
    margin: .35rem .5rem;
}

.sidebar .nav-item .collapse,
.sidebar .nav-item .collapsing {
    margin: 0 10px;
}

/* User card pinned to the bottom of the sidebar */
.sidebar .sidebar-spacer {
    flex: 1 1 auto;
}

.sidebar .sidebar-userbox {
    position: sticky;
    bottom: 0;
    padding: 10px 14px 12px;
    background: var(--userbox-bg);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}

.sidebar .sidebar-user {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 11px;
    border-radius: 11px;
    border: 1px solid var(--line);
    background: var(--card-2);
}

.sidebar .sidebar-user .av {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--grad);
    color: #FFF6EC;
    display: grid;
    place-items: center;
    font-weight: 600;
    font-size: 13px;
    flex: 0 0 auto;
    box-shadow: 0 4px 14px -3px rgba(var(--accent-rgb), .55);
}

.sidebar .sidebar-user .who {
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.25;
    color: var(--ink);
}

.sidebar .sidebar-user .role {
    font-size: 11.5px;
    color: var(--ink-3);
}

.sidebar.toggled .nav-label,
.sidebar.toggled .sidebar-user .who,
.sidebar.toggled .sidebar-user .role,
.sidebar.toggled .brand-name {
    display: none;
}

/* Collapsed sidebar: icons only */
.sidebar.toggled .nav-item .nav-link span {
    display: none;
}

.sidebar.toggled .nav-item .nav-link {
    width: auto;
    justify-content: center;
    padding: .7rem;
}

.sidebar.toggled .nav-item .nav-link i {
    font-size: 1rem;
}

.sidebar.toggled .sidebar-user {
    justify-content: center;
    padding: 8px;
}

.sidebar.toggled .sidebar-userbox {
    padding: 8px;
}

@media (max-width: 767.98px) {
    .sidebar .sidebar-userbox {
        position: static;
        padding: 8px;
        background: transparent;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }

    .sidebar .sidebar-user {
        justify-content: center;
        padding: 8px;
    }

    .sidebar .sidebar-user .who,
    .sidebar .sidebar-user .role,
    .sidebar .nav-label {
        display: none;
    }
}

.sidebar.toggled .sidebar-brand {
    justify-content: center;
    padding-left: .5rem;
    padding-right: .5rem;
}

.sidebar #sidebarToggle {
    background-color: var(--card-3);
}

.sidebar #sidebarToggle::after {
    color: var(--ink-2);
}

.sidebar #sidebarToggle:hover {
    background-color: var(--hover-4);
}

/* ---------- Topbar ---------- */

.topbar {
    background: transparent !important;
    border-bottom: 1px solid var(--line);
    box-shadow: none !important;
}

.topbar .navbar-nav .nav-item .nav-link {
    color: var(--ink);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}

.topbar .topbar-shortcuts {
    gap: 6px;
    align-items: center;
}

.topbar .topbar-shortcuts .nav-item {
    display: flex;
    align-items: center;
}

.topbar .topbar-shortcuts .nav-item .nav-link {
    height: auto;
    align-self: center;
    background: var(--grad);
    color: #FFF6EC;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.2;
    border-radius: 6px;
    padding: 6px 10px;
    gap: 6px;
    box-shadow: 0 6px 16px -8px rgba(var(--accent-rgb), .8);
    transition: filter .15s ease, transform .15s ease;
}

.topbar .topbar-shortcuts .nav-item .nav-link:hover,
.topbar .topbar-shortcuts .nav-item .nav-link:focus {
    color: #FFF6EC;
    filter: brightness(1.05);
    transform: translateY(-1px);
}

.topbar .topbar-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--card-2);
    border: 1px solid var(--line);
    color: var(--accent-bright);
    display: grid;
    place-items: center;
    font-size: 12px;
    font-weight: 600;
}

.topbar .topbar-username {
    font-size: 14px;
    font-weight: 600;
    color: var(--ink) !important;
}

.topbar #sidebarToggleTop {
    color: var(--ink-2);
}

.topbar #sidebarToggleTop:hover {
    background-color: var(--card-2);
}

.theme-toggle {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    border: 1px solid var(--line);
    background: var(--card-2);
    color: var(--ink-2);
    display: grid;
    place-items: center;
    cursor: pointer;
    font-size: 15px;
    padding: 0;
}

.theme-toggle:hover {
    background: var(--hover-3);
    color: var(--ink);
}

.theme-toggle .fa-moon {
    display: none;
}

html[data-theme="light"] .theme-toggle .fa-moon {
    display: inline;
}

html[data-theme="light"] .theme-toggle .fa-sun {
    display: none;
}

/* ---------- Page shell ---------- */

.page-title,
h1.page-title {
    font-family: var(--serif);
    font-weight: 400;
    font-size: 32px;
    letter-spacing: -.015em;
    color: var(--ink) !important;
}

footer.sticky-footer {
    background: transparent !important;
    border-top: 1px solid var(--line);
}

footer.sticky-footer .copyright {
    color: var(--ink-3);
}

.scroll-to-top {
    background: var(--card-3);
    color: var(--ink);
}

.scroll-to-top:hover {
    background: rgba(var(--accent-rgb), .5);
}

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

.card {
    background: var(--card-bg);
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: var(--shadow);
    color: var(--ink);
}

.card .card-header {
    background: var(--surface-faint);
    border-bottom: 1px solid var(--line);
    color: var(--ink);
}

.card .card-header h6 {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--accent-bright) !important;
}

.card .card-footer {
    background: var(--surface-faint);
    border-top: 1px solid var(--line);
}

.card .list-group-item {
    background: transparent;
    border-color: var(--line);
    color: var(--ink);
}

/* sb-admin-2 colored border cards (dashboard widgets) */
.border-left-primary {
    border-left: .25rem solid var(--accent) !important;
}

.border-left-success {
    border-left: .25rem solid var(--green) !important;
}

.border-left-info {
    border-left: .25rem solid var(--blue) !important;
}

.border-left-warning {
    border-left: .25rem solid var(--amber) !important;
}

.border-left-danger {
    border-left: .25rem solid var(--red) !important;
}

.shortcut-item {
    background: var(--card-bg);
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: var(--shadow);
    color: var(--ink);
}

.shortcut-item .shortcut-icon {
    color: var(--accent-bright);
}

/* ---------- Tables ---------- */

.table {
    color: var(--ink);
}

.table th,
.table td {
    border-top: 0;
    border-bottom: 1px solid var(--line);
    padding: .85rem 1rem;
    vertical-align: middle;
}

.table thead th {
    border-bottom: 1px solid var(--line-2);
    font-size: 12.5px;
    font-weight: 700;
    color: var(--ink-2);
    letter-spacing: .01em;
    background: var(--surface-faint);
    white-space: nowrap;
}

.table-bordered,
.table-bordered th,
.table-bordered td {
    border-left: 0;
    border-right: 0;
}

.table-bordered thead th {
    border-top: 0;
}

.table tbody tr:hover td {
    background: var(--hover-1);
}

.table-hover tbody tr:hover {
    color: var(--ink);
    background: var(--hover-1);
}

.table .thead-light th,
.table-light,
.table-light > th,
.table-light > td {
    background: var(--card-2) !important;
    color: var(--ink-2) !important;
}

.table-secondary,
.table-secondary > th,
.table-secondary > td {
    background-color: var(--shade);
    color: var(--ink-3);
}

/* Contextual table variants (group headers, totals, status rows) */
.table-dark,
.table-dark th,
.table-dark td,
.table-dark thead th,
.table .thead-dark th {
    background-color: var(--thead-strong);
    color: var(--ink);
    border-color: var(--line-2);
}

.table .table-dark th {
    background-color: var(--thead-strong);
    color: var(--ink-2);
}

.table-primary,
.table-primary > th,
.table-primary > td {
    background-color: rgba(var(--accent-rgb), .14);
    color: var(--ink);
}

.table-warning,
.table-warning > th,
.table-warning > td {
    background-color: var(--amber-bg);
    color: var(--ink);
}

.table-success,
.table-success > th,
.table-success > td {
    background-color: var(--green-bg);
    color: var(--ink);
}

.table-danger,
.table-danger > th,
.table-danger > td {
    background-color: var(--red-bg);
    color: var(--ink);
}

.table-info,
.table-info > th,
.table-info > td {
    background-color: var(--blue-bg);
    color: var(--ink);
}

.table-hover .table-primary:hover,
.table-hover .table-primary:hover > td,
.table-hover .table-primary:hover > th {
    background-color: rgba(var(--accent-rgb), .2);
}

.table-hover .table-warning:hover,
.table-hover .table-warning:hover > td,
.table-hover .table-warning:hover > th {
    background-color: rgba(231, 192, 106, .24);
}

.table-striped tbody tr:nth-of-type(odd) {
    background-color: var(--surface-faint);
}

.table .table {
    background: transparent;
}

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

.btn {
    border-radius: 10px;
    font-weight: 600;
}

.btn-primary {
    background: var(--grad);
    border: 0;
    color: #FFF6EC;
    box-shadow: 0 10px 24px -10px rgba(var(--accent-rgb), .8);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.btn-primary:not(:disabled):not(.disabled):active {
    background: linear-gradient(135deg, #D55A24 0%, #E8A94E 100%);
    border: 0;
    color: #FFF6EC;
}

.btn-primary:disabled,
.btn-primary.disabled {
    background: var(--card-3);
    border: 0;
    color: var(--ink-3);
    box-shadow: none;
}

.btn-secondary,
.btn-light {
    background: var(--card-2);
    border: 1px solid var(--line-2);
    color: var(--ink);
}

.btn-secondary:hover,
.btn-secondary:focus,
.btn-light:hover,
.btn-light:focus {
    background: var(--hover-4);
    border-color: var(--line-2);
    color: var(--ink);
}

.btn-success {
    background: var(--green);
    border-color: var(--green);
    color: #14200E;
}

.btn-success:hover,
.btn-success:focus {
    background: #74A95D;
    border-color: #74A95D;
    color: #14200E;
}

.btn-danger {
    background: #C25049;
    border-color: #C25049;
    color: #FFF6EC;
}

.btn-danger:hover,
.btn-danger:focus {
    background: #AD423C;
    border-color: #AD423C;
    color: #FFF6EC;
}

.btn-warning {
    background: var(--amber);
    border-color: var(--amber);
    color: #2A1E0A;
}

.btn-info {
    background: var(--blue);
    border-color: var(--blue);
    color: #0E1B28;
}

.btn-outline-primary {
    color: var(--accent-soft);
    border-color: rgba(var(--accent-rgb), .45);
    background: var(--card-2);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background: rgba(var(--accent-rgb), .2);
    border-color: rgba(var(--accent-rgb), .45);
    color: var(--accent-bright);
}

.btn-outline-secondary,
.btn-outline-dark {
    color: var(--ink-2);
    border-color: var(--line-2);
    background: var(--card-2);
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-dark:hover,
.btn-outline-dark:focus {
    background: var(--hover-4);
    border-color: var(--line-2);
    color: var(--ink);
}

.btn-outline-success {
    color: var(--green);
    border-color: rgba(131, 184, 108, .45);
    background: var(--card-2);
}

.btn-outline-success:hover,
.btn-outline-success:focus {
    background: var(--green-bg);
    border-color: rgba(131, 184, 108, .45);
    color: var(--green);
}

.btn-outline-danger {
    color: var(--red);
    border-color: rgba(255, 138, 128, .4);
    background: var(--card-2);
}

.btn-outline-danger:hover,
.btn-outline-danger:focus {
    background: var(--red-bg);
    border-color: rgba(255, 138, 128, .4);
    color: var(--red);
}

.btn-outline-warning {
    color: var(--amber);
    border-color: rgba(231, 192, 106, .45);
    background: var(--card-2);
}

.btn-outline-warning:hover,
.btn-outline-warning:focus {
    background: var(--amber-bg);
    border-color: rgba(231, 192, 106, .45);
    color: var(--amber);
}

.btn-outline-info {
    color: var(--blue);
    border-color: rgba(134, 182, 226, .45);
    background: var(--card-2);
}

.btn-outline-info:hover,
.btn-outline-info:focus {
    background: var(--blue-bg);
    border-color: rgba(134, 182, 226, .45);
    color: var(--blue);
}

.btn-link {
    color: var(--accent-bright);
}

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

.badge {
    font-size: 11.5px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 99px;
}

.badge-primary,
.bg-primary.badge {
    background: rgba(var(--accent-rgb), .16);
    color: var(--accent-soft);
    border: 1px solid rgba(var(--accent-rgb), .2);
}

.badge-secondary {
    background: var(--card-3);
    color: var(--ink-2);
    border: 1px solid var(--line-2);
}

.badge-success {
    background: var(--green-bg);
    color: var(--green);
    border: 1px solid rgba(131, 184, 108, .25);
}

.badge-danger {
    background: var(--red-bg);
    color: var(--red);
    border: 1px solid rgba(255, 138, 128, .25);
}

.badge-warning {
    background: var(--amber-bg);
    color: var(--amber);
    border: 1px solid rgba(231, 192, 106, .25);
}

.badge-info {
    background: var(--blue-bg);
    color: var(--blue);
    border: 1px solid rgba(134, 182, 226, .25);
}

.badge-light {
    background: var(--card-2);
    color: var(--ink-2);
    border: 1px solid var(--line);
}

.badge-dark {
    background: var(--purple-bg);
    color: var(--purple);
    border: 1px solid rgba(150, 128, 210, .28);
}

/* ---------- Forms ---------- */

label,
.form-label,
.col-form-label {
    color: var(--ink-2);
    font-weight: 500;
}

.form-control,
.form-select,
.custom-select {
    background-color: var(--card-2);
    border: 1px solid var(--line);
    border-radius: 10px;
    color: var(--ink);
}

.form-select,
.custom-select {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A99F8C' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right .75rem center;
    background-size: 13px;
}

.form-select option,
.custom-select option,
select.form-control option {
    background-color: var(--card-solid);
    color: var(--ink);
}

.form-control:focus,
.form-select:focus,
.custom-select:focus {
    background-color: var(--card-2);
    border-color: rgba(var(--accent-rgb), .55);
    color: var(--ink);
    box-shadow: 0 0 0 .2rem rgba(var(--accent-rgb), .18);
}

.form-control::placeholder {
    color: var(--ink-3);
}

.form-control:disabled,
.form-control[readonly],
.form-select:disabled,
.custom-select:disabled {
    background-color: var(--shade);
    color: var(--ink-3);
}

.input-group-text {
    background: var(--card-3);
    border: 1px solid var(--line);
    color: var(--ink-2);
    border-radius: 10px;
}

.form-check-input,
.custom-control-input ~ .custom-control-label::before {
    background-color: var(--card-2);
    border: 1.5px solid var(--line-2);
}

.form-check-input:checked,
.custom-control-input:checked ~ .custom-control-label::before {
    background-color: var(--accent);
    border-color: var(--accent);
}

.form-check-label {
    color: var(--ink-2);
}

/* Validation */
.invalid-feedback,
.field-validation-error,
.validation-summary-errors {
    color: var(--red);
}

.form-control.input-validation-error,
.form-control.is-invalid {
    border-color: rgba(255, 138, 128, .5);
}

/* ---------- Select2 (initialized with theme: 'bootstrap4') ---------- */

.select2-container--bootstrap4 .select2-selection,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    background-color: var(--card-2);
    border: 1px solid var(--line);
    border-radius: 10px;
    color: var(--ink);
}

.select2-container--bootstrap4.select2-container--focus .select2-selection,
.select2-container--bootstrap4.select2-container--open .select2-selection {
    background-color: var(--card-2);
    border-color: rgba(var(--accent-rgb), .55);
    box-shadow: 0 0 0 .2rem rgba(var(--accent-rgb), .18);
}

.select2-container--bootstrap4.select2-container--disabled .select2-selection,
.select2-container--bootstrap4.select2-container--disabled.select2-container--focus .select2-selection {
    background-color: var(--shade);
    color: var(--ink-3);
}

.select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--ink);
}

.select2-container--bootstrap4 .select2-selection__placeholder,
.select2-container--bootstrap4 .select2-selection--single .select2-selection__placeholder,
.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: var(--ink-3);
}

.select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow b,
.select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: var(--ink-3) transparent transparent transparent;
}

.select2-container--bootstrap4.select2-container--open .select2-selection--single .select2-selection__arrow b,
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color: transparent transparent var(--ink-3) transparent;
}

.select2-container--bootstrap4 .select2-selection--single .select2-selection__clear,
.select2-container--bootstrap4 .select2-selection--multiple .select2-selection__clear {
    color: var(--ink-3);
}

.select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice,
.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background: rgba(var(--accent-rgb), .16);
    border: 1px solid rgba(var(--accent-rgb), .25);
    color: var(--accent-soft);
    border-radius: 99px;
}

.select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice__remove,
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: var(--accent-soft);
}

.select2-dropdown,
.select2-container--bootstrap4 .select2-dropdown {
    background: var(--card-solid);
    border: 1px solid var(--line-2);
    border-radius: 11px;
    color: var(--ink);
    box-shadow: var(--pop-shadow);
}

.select2-container--bootstrap4 .select2-dropdown .select2-results__option[aria-selected=true],
.select2-container--default .select2-results__option--selected,
.select2-container--default .select2-results__option[aria-selected=true] {
    background: var(--card-3);
    color: var(--ink);
}

.select2-container--bootstrap4 .select2-search--dropdown .select2-search__field,
.select2-container--default .select2-search--dropdown .select2-search__field,
.select2-search--dropdown .select2-search__field {
    background: var(--card-2);
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--ink);
}

.select2-container--bootstrap4 .select2-results__option,
.select2-container--default .select2-results__option {
    color: var(--ink-2);
}

.select2-container--bootstrap4 .select2-results__option--highlighted,
.select2-container--bootstrap4 .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable,
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: rgba(var(--accent-rgb), .25);
    color: var(--ink);
}

.select2-container--bootstrap4 .select2-results__group {
    color: var(--ink-3);
}

/* ---------- Dropdowns ---------- */

.dropdown-menu {
    background: var(--card-solid);
    border: 1px solid var(--line-2);
    border-radius: 11px;
    box-shadow: var(--pop-shadow);
}

.dropdown-item {
    color: var(--ink-2);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: var(--hover-2);
    color: var(--ink);
}

.dropdown-item.active,
.dropdown-item:active {
    background: rgba(var(--accent-rgb), .25);
    color: var(--ink);
}

.dropdown-divider {
    border-top-color: var(--line);
}

.dropdown-header {
    color: var(--ink-3);
}

/* ---------- Modals & popups ---------- */

.modal-content {
    background: var(--card-bg);
    border: 1px solid var(--line-2);
    border-radius: 16px;
    color: var(--ink);
}

.modal-header,
.modal-footer {
    border-color: var(--line);
}

.modal-header .close,
.modal-header .btn-close,
.alert .close {
    color: var(--ink-2);
    text-shadow: none;
    opacity: .8;
}

.modal-backdrop.show {
    opacity: .7;
}

.popup-wrapper {
    background-color: rgba(0, 0, 0, .65);
}

.popup-wrapper .popup-inner {
    background: var(--card-solid);
    border: 1px solid var(--line-2);
    border-radius: 16px;
    color: var(--ink);
}

.popup-wrapper .close-popup span {
    color: var(--ink-2);
}

/* ---------- Alerts (toast style) ---------- */

.alert {
    border-radius: 12px;
    font-weight: 500;
    border: 1px solid var(--line);
    background: var(--card-2);
    color: var(--ink);
}

.alert-success {
    background: var(--green-bg);
    border-color: rgba(131, 184, 108, .3);
    color: var(--alert-success-ink);
}

.alert-danger {
    background: var(--red-bg);
    border-color: rgba(255, 138, 128, .3);
    color: var(--alert-danger-ink);
}

.alert-warning {
    background: var(--amber-bg);
    border-color: rgba(231, 192, 106, .3);
    color: var(--alert-warning-ink);
}

.alert-info {
    background: var(--blue-bg);
    border-color: rgba(134, 182, 226, .3);
    color: var(--alert-info-ink);
}

/* ---------- Pagination ---------- */

.page-link {
    background: var(--card-2);
    border: 1px solid var(--line);
    color: var(--ink-2);
}

.page-link:hover {
    background: var(--hover-3);
    border-color: var(--line-2);
    color: var(--ink);
}

.page-item.active .page-link {
    background: var(--grad);
    border-color: transparent;
    color: #FFF6EC;
}

.page-item.disabled .page-link {
    background: transparent;
    border-color: var(--line);
    color: var(--ink-3);
}

.simple-pagination a,
.simple-pagination span {
    color: var(--ink-2);
    background-color: var(--card-2);
    border: 1px solid var(--line);
}

.simple-pagination a:hover {
    color: var(--ink);
    background-color: var(--hover-3);
}

.simple-pagination .current {
    color: #FFF6EC;
    background: var(--grad);
    border-color: transparent;
}

.simple-pagination .ellipse {
    background: none;
    border: none;
    color: var(--ink-3);
}

/* ---------- Login page ---------- */

body.login-page,
.bg-gradient-primary {
    background: transparent;
    background-image: none;
}

.login-page .card {
    background: var(--card-bg);
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: var(--shadow);
}

.login-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    margin: 4rem auto 0;
}

.login-brand .brand-mark {
    width: 42px;
    height: 42px;
    border-radius: 11px;
    background: var(--grad);
    display: grid;
    place-items: center;
    box-shadow: 0 8px 24px -4px rgba(var(--accent-rgb), .6);
}

.login-brand .brand-mark svg {
    width: 23px;
    height: 23px;
    color: #FFF6EC;
}

.login-brand .brand-name {
    font-family: var(--serif);
    font-size: 30px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--ink);
}

.login-page .form-control-user {
    border-radius: 10px;
    padding: 1.2rem 1rem;
    font-size: .92rem;
}

.login-page .btn-user {
    border-radius: 10px;
    padding: .75rem 1rem;
    font-size: .92rem;
}

/* ---------- FilePond ---------- */

.filepond--panel-root {
    background-color: var(--card-2);
    border: 1px dashed var(--line-2);
}

.filepond--drop-label {
    color: var(--ink-2);
}

/* ---------- Summernote ---------- */

.note-editor.note-frame {
    background: var(--card-2);
    border: 1px solid var(--line);
    border-radius: 10px;
}

.note-editor.note-frame .note-toolbar {
    background: var(--card-3);
    border-bottom: 1px solid var(--line);
}

.note-editor.note-frame .note-editing-area .note-editable {
    background: transparent;
    color: var(--ink);
}

.note-editor.note-frame .note-statusbar {
    background: var(--card-2);
    border-top: 1px solid var(--line);
}

.note-btn {
    background: transparent !important;
    border: 1px solid var(--line) !important;
    color: var(--ink-2) !important;
}

.note-btn:hover {
    background: var(--hover-3) !important;
    color: var(--ink) !important;
}

.note-dropdown-menu {
    background: var(--card-solid) !important;
    border: 1px solid var(--line-2) !important;
}

/* ---------- Chat widget (Mogens) ---------- */

.mogens-toggle-btn {
    background: var(--grad);
    box-shadow: 0 10px 24px -10px rgba(var(--accent-rgb), .8);
}

.mogens-chat-window {
    background: var(--card-solid);
    border: 1px solid var(--line-2);
    box-shadow: 0 14px 44px -12px rgba(0, 0, 0, .8);
}

.mogens-chat-header {
    background: var(--grad);
    color: #FFF6EC;
}

.mogens-chat-messages {
    background: transparent;
}

.mogens-message.assistant .mogens-message-content {
    background: var(--card-3);
    color: var(--ink);
}

.mogens-message.user .mogens-message-content {
    background: rgba(var(--accent-rgb), .3);
    color: var(--ink);
}

.mogens-chat-input {
    background: var(--card-solid);
    border-top: 1px solid var(--line);
}

.mogens-chat-input input {
    background: var(--card-2);
    border: 1px solid var(--line);
    color: var(--ink);
}

.mogens-chat-input button {
    background: var(--grad);
}

.mogens-welcome,
.mogens-welcome p {
    color: var(--ink-2);
}

/* ---------- Misc ---------- */

.nav-tabs {
    border-bottom-color: var(--line-2);
}

.nav-tabs .nav-link {
    color: var(--ink-2);
}

.nav-tabs .nav-link:hover {
    border-color: var(--line) var(--line) transparent;
    color: var(--ink);
}

.nav-tabs .nav-link.active {
    background: var(--card-2);
    border-color: var(--line-2) var(--line-2) transparent;
    color: var(--accent-bright) !important;
}

.nav-pills .nav-link.active {
    background: var(--grad);
    color: #FFF6EC !important;
}

.progress {
    background-color: var(--card-3);
    border-radius: 99px;
}

.progress-bar {
    background: var(--grad);
}

.tooltip-inner {
    background: var(--card-solid);
    border: 1px solid var(--line-2);
    color: var(--ink);
}

.spinner-border.text-primary {
    color: var(--accent-bright) !important;
}

img.rounded,
img.img-thumbnail {
    background-color: var(--card-2);
    border-color: var(--line);
}

.gauge-track {
    stroke: var(--gauge-track);
}

@keyframes field-highlight-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(var(--accent-rgb), .7);
    }
    50% {
        box-shadow: 0 0 0 4px rgba(var(--accent-rgb), .4);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(var(--accent-rgb), 0);
    }
}

.field-highlight {
    animation: field-highlight-pulse 1.5s ease-out 3;
    border-color: var(--accent) !important;
}
