body {
    letter-spacing: 0;
    color: #111827;
    background: #f4f6fa;
}

.header {
    background: #fff !important;
    border-bottom: 1px solid #e5e7eb;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
}

.header .dashboard_bar {
    color: #111827 !important;
    font-weight: 700;
    text-shadow: none;
}

.header .header-info span,
.header .header-info small {
    color: #111827 !important;
}

.header .header-info small {
    opacity: .72;
}

.search-area .input-group-text {
    background: #302bb1 !important;
    border-color: #302bb1 !important;
    color: #fff !important;
}

.search-area .form-control {
    background: #fff !important;
    border-color: #d8dce7 !important;
    color: #111827 !important;
}

.search-area .form-control::placeholder {
    color: #687386 !important;
    opacity: 1;
}

.nav-header {
    background: #fff !important;
    border-right: 1px solid #e5e7eb;
}

.dlabnav {
    background: #fff !important;
    border-right: 1px solid #e5e7eb;
}

.dlabnav .metismenu > li > a {
    color: #4b5563;
    font-weight: 600;
}

.dlabnav .metismenu > li.mm-active > a,
.dlabnav .metismenu > li > a:hover {
    color: #fff;
    background: #302bb1;
}

.dlabnav .metismenu > li.mm-active > a i,
.dlabnav .metismenu > li > a:hover i {
    color: #fff;
}

.content-body {
    background: #f4f6fa !important;
}

.breadcrumb .breadcrumb-item a {
    color: #302bb1;
    font-weight: 600;
}

.breadcrumb .breadcrumb-item.active {
    color: #4b5563;
}

.dsf-brand-title {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
    color: #111827;
}

.dsf-brand-title span {
    font-size: 11px;
    font-weight: 600;
    color: #302bb1;
}

.nav-header .brand-logo img.logo-abbr {
    width: 36px;
    height: 36px;
    object-fit: contain;
}

.dsf-page-title {
    position: relative !important;
    z-index: 1 !important;
    align-items: flex-start;
    gap: 16px;
}

.dsf-page-title h4 {
    margin-bottom: 4px;
    color: #302bb1;
    font-weight: 700;
}

.dsf-page-title span {
    color: #6c757d;
    font-size: 13px;
}

.dsf-metric-card .card-body {
    min-height: 142px;
}

.dsf-metric-icon {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(0, 112, 201, .08);
    color: var(--primary);
}

.dsf-workflow {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
}

.dsf-step {
    border: 1px solid #edf0f6;
    border-radius: 8px;
    padding: 14px;
    background: #fff;
}

.dsf-step-status {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
    margin-right: 8px;
}

.dsf-step-status.done { background: #2bc155; }
.dsf-step-status.active { background: var(--primary); }
.dsf-step-status.warning { background: #ffb800; }
.dsf-step-status.pending { background: #9aa4b2; }
.dsf-step-status.locked { background: #6c757d; }

.dsf-progress {
    height: 8px;
    border-radius: 999px;
}

.dsf-table th {
    color: #6c757d;
    font-size: 12px;
    text-transform: uppercase;
}

.dsf-sidebar-note {
    font-size: 12px;
    color: #6c757d;
}

.dsf-family-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
}

.dsf-family-card {
    border: 1px solid #edf0f6;
    border-radius: 8px;
}

.dsf-value-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.dsf-value-box {
    border: 1px solid #edf0f6;
    border-radius: 8px;
    padding: 14px;
    background: #fff;
}

.dsf-value-box span {
    color: #6c757d;
    font-size: 12px;
}

.dsf-value-box strong {
    display: block;
    margin-top: 4px;
    font-size: 16px;
}

.dsf-admin-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}

.dsf-action-card {
    display: block;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 18px;
    color: #111827;
    background: #fff;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.dsf-action-card:hover {
    color: #111827;
    border-color: #302bb1;
    box-shadow: 0 12px 30px rgba(48, 43, 177, .12);
    transform: translateY(-2px);
}

.dsf-action-card i {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(48, 43, 177, .08);
    color: #302bb1;
    margin-bottom: 14px;
}

.dsf-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 14px;
}

.dsf-section-kicker {
    font-size: 12px;
    color: #687386;
    text-transform: uppercase;
    font-weight: 700;
}

.dsf-access-checklist,
.dsf-note-assignment-grid {
    display: grid;
    gap: 12px;
}

.dsf-access-module,
.dsf-note-assignment-group {
    border: 1px solid #d9e1ea;
    border-radius: 8px;
    background: #fff;
    padding: 14px;
}

.dsf-access-module strong,
.dsf-note-assignment-group strong {
    display: block;
    color: #14324a;
    font-size: 13px;
    margin-bottom: 10px;
}

.dsf-access-module label,
.dsf-note-assignment-group label {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-bottom: 9px;
    color: #344054;
    font-weight: 600;
    line-height: 1.3;
}

.dsf-access-module label:last-child,
.dsf-note-assignment-group label:last-child {
    margin-bottom: 0;
}

.dsf-access-module input,
.dsf-note-assignment-group input {
    margin-top: 3px;
    accent-color: #302bb1;
}

.dsf-note-assignment-group small {
    display: block;
    color: #667085;
    font-weight: 600;
    margin-top: 2px;
}

.dsf-role-privileges,
.dsf-note-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    max-width: 360px;
}

.dsf-role-privileges small,
.dsf-note-chip-list small {
    border: 1px solid #d9e1ea;
    border-radius: 999px;
    background: #f8fafc;
    color: #475467;
    padding: 4px 8px;
    font-weight: 700;
    line-height: 1.2;
}

.dsf-table-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
    min-width: 210px;
}

.dsf-table-actions form {
    display: inline-flex;
    margin: 0;
}

.dsf-table-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.badge.light {
    font-weight: 700;
}

@media (max-width: 767px) {
    .header .dashboard_bar {
        color: #111827;
        font-size: 20px;
    }

    .dsf-page-title {
        margin-top: 12px;
    }
}

.dsf-balance-lines-table td { vertical-align: middle; }
.dsf-balance-lines-table tfoot { position: sticky; bottom: 0; z-index: 2; }
.dsf-balance-toolbar-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: nowrap; gap: 8px; }
.dsf-balance-toolbar-actions > .dropdown,
.dsf-balance-toolbar-actions > .btn,
.dsf-balance-toolbar-actions > form { flex: 0 0 auto; margin: 0 !important; white-space: nowrap; }
.dsf-balance-toolbar-actions > form { display: flex; }
.dsf-balance-toolbar-actions .btn { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; }
.dsf-formula-readonly { min-width: 190px; padding: .55rem .7rem; border: 1px solid #cfe1ef; border-radius: .55rem; background: #f3f9fd; color: #173a54; font-size: .78rem; line-height: 1.35; }
.dsf-formula-readonly + .dsf-formula-readonly { margin-top: .4rem; }
.dsf-balance-search { position: relative; display: flex; align-items: center; }
.dsf-balance-search > i { position: absolute; left: 14px; color: #7b8999; pointer-events: none; }
.dsf-balance-search input { height: 44px; padding-left: 40px; padding-right: 115px; }
.dsf-balance-search span { position: absolute; right: 14px; color: #667085; font-size: 11px; font-weight: 800; }
.dsf-balance-total-row th { padding-top: 14px !important; padding-bottom: 14px !important; border-top: 2px solid currentColor !important; }
.dsf-balance-total-row th:first-child span,
.dsf-balance-total-row th:first-child small { display: block; }
.dsf-balance-total-row th:first-child small { margin-top: 2px; font-size: 10px; }
.dsf-balance-total-row.is-balanced { background: #eaf8f2; color: #08745f; }
.dsf-balance-total-row.is-unbalanced { background: #fff0f0; color: #c62828; }
.dsf-balance-target {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 7px;
    background: #edf7f5;
    color: #08766f;
    font-weight: 800;
}
.dsf-edit-balance-line { white-space: nowrap; }
.dsf-balance-line-modal { border: 0; border-radius: 12px; overflow: hidden; }
.dsf-balance-line-modal .modal-header { padding: 18px 20px; border-bottom-color: #e3eaf1; }
.dsf-balance-line-modal .modal-body { padding: 20px; }
.dsf-balance-line-modal .modal-footer { padding: 14px 20px; border-top-color: #e3eaf1; }
.dsf-balance-amounts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 13px;
    border: 1px solid #dce7ef;
    border-radius: 9px;
    background: #f7fafc;
}
.dsf-balance-amounts span { color: #667085; font-size: 12px; }
.dsf-balance-amounts strong { display: block; margin-top: 3px; color: #102f46; font-size: 15px; }
.dsf-balance-amounts small { grid-column: 1 / -1; color: #8a5b08; font-weight: 700; }

/* DSF presentation skin */
:root {
    --dsf-ink: #111827;
    --dsf-muted: #667085;
    --dsf-line: #d9e1ea;
    --dsf-bg: #eef3f7;
    --dsf-surface: #ffffff;
    --dsf-navy: #14324a;
    --dsf-blue: #1f5f8b;
    --dsf-teal: #0f766e;
    --dsf-amber: #b7791f;
    --dsf-red: #b42318;
}

body {
    background: var(--dsf-bg) !important;
    color: var(--dsf-ink);
}

.content-body {
    background: var(--dsf-bg) !important;
}

.header {
    background: var(--dsf-surface) !important;
    border-bottom: 1px solid var(--dsf-line);
    box-shadow: 0 10px 24px rgba(20, 50, 74, .06);
}

.dashboard_bar {
    color: var(--dsf-ink) !important;
    font-size: 25px;
    font-weight: 800 !important;
}

.dsf-header-left {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.dsf-header-context {
    color: var(--dsf-muted);
    font-size: 12px;
    font-weight: 600;
}

.dsf-campaign-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #b9e4da;
    border-radius: 999px;
    padding: 8px 12px;
    color: var(--dsf-teal);
    background: #eefbf7;
    font-size: 12px;
    font-weight: 800;
}

.dsf-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--dsf-teal);
    box-shadow: 0 0 0 4px rgba(15, 118, 110, .12);
}

.search-area {
    border-radius: 8px;
    overflow: hidden;
    box-shadow: none;
}

.search-area .input-group-text {
    background: var(--dsf-navy) !important;
    border-color: var(--dsf-navy) !important;
}

.search-area .form-control {
    min-width: 230px;
    background: #fff !important;
    border-color: var(--dsf-line) !important;
}

.dsf-user-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    background: linear-gradient(135deg, #0f766e, #2563eb);
    border: 1px solid rgba(255, 255, 255, .36);
    border-radius: 10px;
    box-shadow: 0 10px 24px rgba(15, 45, 68, .18);
}

.header .header-info span {
    color: var(--dsf-ink) !important;
    font-weight: 800;
}

.header .header-info small {
    color: var(--dsf-muted) !important;
}

.nav-header,
.dlabnav {
    background: var(--dsf-surface) !important;
    border-right: 1px solid var(--dsf-line);
}

.nav-header .brand-logo {
    gap: 10px;
}

.dsf-logo-mark {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: #fff;
    background: linear-gradient(135deg, var(--dsf-navy), var(--dsf-teal));
}

.dsf-brand-title strong {
    color: var(--dsf-ink);
    font-size: 17px;
    letter-spacing: 0;
}

.dsf-brand-title span {
    color: var(--dsf-muted);
    font-size: 10px;
    font-weight: 700;
}

.dlabnav .metismenu > li > a {
    border-radius: 8px;
    color: #475467;
    margin: 4px 14px;
    font-weight: 700;
}

.dlabnav .metismenu > li > a i {
    color: #98a2b3;
}

.dlabnav .metismenu > li.mm-active > a,
.dlabnav .metismenu > li > a:hover {
    color: #fff !important;
    background: var(--dsf-navy) !important;
    background-color: var(--dsf-navy) !important;
    background-image: none !important;
}

.dlabnav .metismenu > li.mm-active > a i,
.dlabnav .metismenu > li > a:hover i {
    color: #fff !important;
}

.dsf-page-title {
    min-height: auto;
    height: auto !important;
    min-height: 0 !important;
    margin-bottom: 16px !important;
    padding: 14px 18px !important;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: var(--dsf-surface);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.content-body .container-fluid {
    padding-top: 18px !important;
}

.dsf-page-title h4 {
    color: var(--dsf-navy);
    font-size: 24px;
    font-weight: 800;
}

.dsf-page-title span {
    color: var(--dsf-muted);
    font-weight: 500;
}

.breadcrumb {
    margin-bottom: 6px;
}

.breadcrumb .breadcrumb-item a {
    color: var(--dsf-teal);
}

.dsf-page-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.dsf-period-pill {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border-radius: 999px;
    padding: 8px 12px;
    background: #e7f6f3;
    color: var(--dsf-teal);
    font-size: 12px;
    font-weight: 800;
}

.dsf-period-pill-muted {
    background: #edf2f7;
    color: var(--dsf-navy);
}

.card,
.dsf-card,
.dsf-kpi-card,
.dsf-value-box,
.dsf-action-card {
    border: 1px solid var(--dsf-line) !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 22px rgba(20, 50, 74, .04) !important;
}

.card-header {
    background: transparent;
}

.card-title {
    color: var(--dsf-ink);
    font-weight: 800;
    text-transform: none !important;
    max-width: 100%;
    white-space: normal !important;
    overflow-wrap: anywhere;
    line-height: 1.25;
}

.card-header {
    gap: 12px;
    flex-wrap: wrap;
}

.card-header > div {
    min-width: 0;
}

.btn-primary {
    background: var(--dsf-navy) !important;
    border-color: var(--dsf-navy) !important;
}

.btn-outline-primary {
    color: var(--dsf-navy) !important;
    border-color: var(--dsf-navy) !important;
}

.btn-outline-primary:hover {
    color: #fff !important;
    background: var(--dsf-navy) !important;
}

.dsf-command-panel {
    display: grid;
    grid-template-columns: 1fr 260px;
    gap: 18px;
    padding: 24px;
    margin-bottom: 22px;
    border: 1px solid #b7d6df;
    border-radius: 8px;
    background: linear-gradient(135deg, #14324a 0%, #1f5f8b 58%, #0f766e 100%);
    color: #fff;
}

.dsf-command-panel h2 {
    color: #fff;
    font-size: 28px;
    line-height: 1.25;
    margin: 8px 0;
    max-width: 760px;
}

.dsf-command-panel p {
    color: rgba(255, 255, 255, .84);
    margin-bottom: 0;
    max-width: 820px;
}

.dsf-command-panel .dsf-section-kicker {
    color: #cceee9;
}

.dsf-command-score {
    background: rgba(255, 255, 255, .13);
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 8px;
    padding: 18px;
}

.dsf-command-score span,
.dsf-command-score small {
    color: rgba(255, 255, 255, .82);
}

.dsf-command-score strong {
    color: #fff;
    display: block;
    font-size: 38px;
    margin: 4px 0 12px;
}

.dsf-kpi-row {
    margin-bottom: 4px;
}

.dsf-kpi-card {
    min-height: 174px;
    height: 174px;
    padding: 18px;
    margin-bottom: 22px;
    background: var(--dsf-surface);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    overflow: hidden;
}

.dsf-kpi-card > div:first-child {
    min-width: 0;
    display: grid;
    grid-template-rows: minmax(40px, auto) 52px 1fr;
    align-content: start;
    height: 100%;
}

.dsf-kpi-card span,
.dsf-value-box span {
    color: var(--dsf-muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.dsf-kpi-card strong {
    display: block;
    color: var(--dsf-ink);
    font-size: 30px;
    margin: 8px 0 6px;
    line-height: 1.1;
}

.dsf-kpi-card p {
    color: var(--dsf-muted);
    margin-bottom: 0;
    line-height: 1.45;
    max-width: 190px;
}

.dsf-bi-section .card-body {
    padding-top: 0;
}

.dsf-bi-panel {
    height: 100%;
    min-height: 350px;
    padding: 1rem 1rem .35rem;
    border: 1px solid #dbe5ec;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdfe 100%);
}

.dsf-bi-panel-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: .2rem .25rem .75rem;
}

.dsf-bi-panel-heading strong,
.dsf-bi-panel-heading span {
    display: block;
}

.dsf-bi-panel-heading strong {
    color: var(--dsf-navy);
    font-size: .95rem;
}

.dsf-bi-panel-heading span {
    margin-top: .2rem;
    color: #7b8794;
    font-size: .78rem;
}

.dsf-bi-panel-heading > i {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    border-radius: 10px;
    color: #0f766e;
    background: #e8f6f3;
}

.dsf-bi-chart {
    min-height: 285px;
}

@media (max-width: 767.98px) {
    .dsf-bi-panel {
        min-height: 325px;
        padding-inline: .65rem;
    }
}

.dsf-metric-icon {
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #edf6f9;
    color: var(--dsf-blue);
}

.dsf-metric-icon i {
    font-size: 16px;
    line-height: 1;
}

.dsf-process {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 12px;
}

.dsf-process-step {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    min-height: 92px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    padding: 14px;
    background: #fff;
}

.dsf-process-step strong {
    display: block;
    color: var(--dsf-ink);
    font-weight: 800;
}

.dsf-process-step span:not(.dsf-step-index) {
    color: var(--dsf-muted);
    font-size: 13px;
}

.dsf-step-index {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #e8eef4;
    color: var(--dsf-navy);
    font-weight: 800;
}

.dsf-process-step.done .dsf-step-index,
.dsf-process-step.active .dsf-step-index {
    background: #e7f6f3;
    color: var(--dsf-teal);
}

.dsf-process-step.warning .dsf-step-index {
    background: #fff4df;
    color: var(--dsf-amber);
}

.dsf-alert-line {
    display: flex;
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid var(--dsf-line);
}

.dsf-alert-line:last-child {
    border-bottom: 0;
}

.dsf-alert-line i {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
}

.dsf-alert-line strong,
.dsf-alert-line span {
    display: block;
}

.dsf-alert-line span {
    color: var(--dsf-muted);
    font-size: 13px;
}

.dsf-alert-line.danger i {
    color: var(--dsf-red);
    background: #fff0ee;
}

.dsf-alert-line.warning i {
    color: var(--dsf-amber);
    background: #fff4df;
}

.dsf-alert-line.success i {
    color: var(--dsf-teal);
    background: #e7f6f3;
}

.dsf-deadline-item {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid var(--dsf-line);
}

.dsf-deadline-item:last-child {
    border-bottom: 0;
}

.dsf-deadline-item strong,
.dsf-deadline-item span {
    display: block;
}

.dsf-deadline-item span {
    color: var(--dsf-muted);
    font-size: 13px;
}

.dsf-deadline-item b {
    min-width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #edf6f9;
    color: var(--dsf-blue);
}

.dsf-progress {
    background: #e6edf2;
}

.progress-bar {
    background-color: var(--dsf-teal);
}

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

.dsf-table thead th {
    background: #f8fafc;
    color: #475467;
    border-bottom: 1px solid var(--dsf-line);
    font-weight: 800;
}

.dsf-table td {
    border-color: #edf1f5;
    vertical-align: middle;
}

.badge-primary,
.badge.light.badge-primary {
    background: #e8eef4 !important;
    color: var(--dsf-navy) !important;
}

.badge-success,
.badge.light.badge-success {
    background: #e7f6f3 !important;
    color: var(--dsf-teal) !important;
}

.badge-danger,
.badge.light.badge-danger {
    background: #fff0ee !important;
    color: var(--dsf-red) !important;
}

.badge-warning,
.badge.light.badge-warning {
    background: #fff4df !important;
    color: var(--dsf-amber) !important;
}

.badge-info,
.badge.light.badge-info {
    background: #edf6f9 !important;
    color: var(--dsf-blue) !important;
}

.dsf-section-kicker {
    color: var(--dsf-blue);
    letter-spacing: 0;
}

.form-control,
.form-select,
select.form-control {
    border-color: var(--dsf-line) !important;
    border-radius: 8px !important;
    color: var(--dsf-ink) !important;
}

.form-label {
    color: #475467;
    font-weight: 700;
}

@media (max-width: 991px) {
    .dsf-command-panel {
        grid-template-columns: 1fr;
    }

    .dsf-page-title {
        align-items: flex-start;
        flex-direction: column;
    }

    .dsf-page-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 575px) {
    .dsf-command-panel {
        padding: 18px;
    }

    .dsf-command-panel h2 {
        font-size: 22px;
    }

    .search-area .form-control {
        min-width: 0;
    }
}

/* Navigation contextuelle : dossier > exercice > famille > élément */
.dsf-context-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 0;
    margin-bottom: 8px;
}

.dsf-context-home,
.dsf-context-trigger {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 32px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: #173852;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}

.dsf-context-home {
    width: 32px;
    justify-content: center;
}

.dsf-context-trigger {
    max-width: 310px;
    padding: 5px 9px;
    cursor: pointer;
}

.dsf-context-trigger span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dsf-context-trigger::after {
    margin-left: 2px;
    opacity: .55;
}

.dsf-context-home:hover,
.dsf-context-trigger:hover,
.dsf-context-trigger[aria-expanded="true"] {
    border-color: #cbdbea;
    background: #f1f7fb;
    color: var(--appearance-primary-color, #14324a);
}

.dsf-context-trigger.is-current {
    border-color: #c7d9e8;
    background: #fff;
}

.dsf-context-separator {
    display: inline-flex;
    color: #a8b6c5;
    font-size: 9px;
}

.dsf-context-menu {
    min-width: 270px;
    max-width: min(390px, calc(100vw - 30px));
    max-height: 360px;
    overflow-y: auto;
    padding: 7px;
    border: 1px solid #d5e1ec;
    border-radius: 10px;
    box-shadow: 0 16px 40px rgba(20, 50, 74, .16);
}

.dsf-context-menu-wide { min-width: 330px; }
.dsf-context-menu-title {
    padding: 7px 10px 9px;
    color: #7a899a;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.dsf-context-menu .dropdown-item {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 39px;
    margin: 2px 0;
    padding: 7px 10px;
    border-radius: 7px;
    color: #344054;
    font-size: 12px;
    font-weight: 700;
}

.dsf-context-menu .dropdown-item > span {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dsf-context-menu .dropdown-item small { color: #8492a3; font-size: 10px; }
.dsf-context-menu .dropdown-item:hover { background: #eef5f9; color: #14324a; }
.dsf-context-menu .dropdown-item.active { background: #14324a; color: #fff; }
.dsf-context-menu .dropdown-item.active small { color: rgba(255,255,255,.75); }
.dsf-context-menu .dsf-context-manage { color: #176f74; }

@media (max-width: 767px) {
    .dsf-context-breadcrumb { gap: 3px; }
    .dsf-context-trigger { max-width: 210px; font-size: 12px; }
    .dsf-context-trigger i { display: none; }
    .dsf-page-title .dsf-page-actions { margin-top: 8px; }
}

/* Final layout reset: keep the presentation clean and aligned. */
:root {
    --dsf-sidebar: 238px;
    --dsf-header: 72px;
}

.nav-header {
    width: var(--dsf-sidebar) !important;
    min-width: var(--dsf-sidebar) !important;
    height: var(--dsf-header) !important;
    left: 0 !important;
    top: 0 !important;
    z-index: 41 !important;
}

.nav-header .brand-logo {
    height: var(--dsf-header) !important;
    padding: 0 20px !important;
}

.dsf-logo-mark {
    width: 40px !important;
    height: 40px !important;
}

.dlabnav {
    width: var(--dsf-sidebar) !important;
    min-width: var(--dsf-sidebar) !important;
    top: var(--dsf-header) !important;
    left: 0 !important;
    height: calc(100vh - var(--dsf-header)) !important;
    padding-top: 0 !important;
    z-index: 40 !important;
}

.dlabnav .dlabnav-scroll {
    height: 100% !important;
    padding-top: 18px !important;
}

.header {
    position: fixed !important;
    top: 0 !important;
    left: var(--dsf-sidebar) !important;
    right: 0 !important;
    width: auto !important;
    height: var(--dsf-header) !important;
    min-height: var(--dsf-header) !important;
    padding: 0 !important;
    z-index: 39 !important;
}

.header .header-content {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: var(--dsf-header) !important;
    padding: 0 24px !important;
    display: flex !important;
    align-items: center !important;
}

.header .navbar,
.header .navbar-collapse {
    width: 100% !important;
    height: var(--dsf-header) !important;
    padding: 0 !important;
    align-items: center !important;
}

.header .header-left {
    min-width: 300px;
}

.header .header-left.dsf-header-left {
    height: var(--dsf-header) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 4px !important;
}

.header .header-right {
    display: flex !important;
    align-items: center !important;
    gap: 14px;
}

.dashboard_bar {
    font-size: 24px !important;
    line-height: 1.05 !important;
    margin: 0 !important;
}

.dsf-header-context {
    display: block;
    margin-top: 0 !important;
    line-height: 1.1;
}

.nav-control,
.hamburger {
    display: none !important;
}

.search-area {
    width: 320px !important;
    min-width: 320px !important;
    height: 42px !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    margin: 0 !important;
    overflow: hidden !important;
}

.search-area .input-group-text {
    width: 48px !important;
    min-width: 48px !important;
    height: 42px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: static !important;
}

.search-area .form-control {
    width: calc(100% - 48px) !important;
    min-width: 0 !important;
    height: 42px !important;
    margin: 0 !important;
    margin-left: -1px !important;
    padding: 0 14px !important;
    position: static !important;
}

.content-body {
    margin-left: var(--dsf-sidebar) !important;
    padding-top: var(--dsf-header) !important;
    min-height: 100vh !important;
}

.content-body .container-fluid {
    padding: 20px 24px 32px !important;
}

.dsf-page-title {
    margin-top: 0 !important;
    margin-bottom: 16px !important;
    padding: 14px 18px !important;
}

@media (max-width: 1199px) {
    .dsf-campaign-status {
        display: none !important;
    }

    .search-area {
        width: 260px !important;
        min-width: 260px !important;
    }
}

@media (max-width: 767px) {
    .header {
        left: 0 !important;
    }

    .content-body {
        margin-left: 0 !important;
    }

    .search-area {
        display: none !important;
    }
}

/* Presentation polish: neutralize the original template texture and keep the shell quiet. */
[data-headerbg] .header:not(.home),
[data-headerbg] .header.is-fixed,
.header {
    background: #ffffff !important;
    background-color: #ffffff !important;
    background-image: none !important;
}

.header::before,
.header::after,
[data-headerbg] .header:not(.home)::before,
[data-headerbg] .header:not(.home)::after {
    content: none !important;
    display: none !important;
    background: none !important;
    background-image: none !important;
    mix-blend-mode: normal !important;
}

.header {
    overflow: hidden !important;
    border-bottom: 1px solid #dce5ec !important;
    box-shadow: 0 1px 0 rgba(16, 24, 40, .02) !important;
}

.header .header-content {
    background: #ffffff !important;
}

.header .navbar-collapse {
    justify-content: space-between !important;
    gap: 20px !important;
}

.header .header-left {
    flex: 0 1 360px !important;
    min-width: 260px !important;
    max-width: 380px !important;
    overflow: hidden !important;
    padding-right: 16px !important;
}

.dashboard_bar {
    color: var(--dsf-navy) !important;
    font-size: 22px !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.dsf-header-context {
    color: #667085 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.header .header-right {
    flex: 0 0 auto !important;
    margin-left: auto !important;
    gap: 12px !important;
}

.dsf-campaign-status {
    height: 38px !important;
    padding: 0 14px !important;
    border-color: #9edbd0 !important;
    color: var(--dsf-teal) !important;
    white-space: nowrap !important;
}

.search-area {
    width: 300px !important;
    min-width: 300px !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}

.search-area .input-group-text {
    background: var(--dsf-navy) !important;
    border-color: var(--dsf-navy) !important;
}

.search-area .form-control {
    border-color: #d0dae4 !important;
    font-weight: 600 !important;
}

.header-profile > a.nav-link {
    height: 42px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
}

.header-profile .dsf-user-avatar {
    width: 36px !important;
    height: 36px !important;
    border-radius: 9px !important;
}

.header .header-info span {
    color: var(--dsf-ink) !important;
    font-size: 14px !important;
    line-height: 1.05 !important;
}

.header .header-info small {
    color: #667085 !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
}

.dsf-logout-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 38px;
    padding: 0 14px;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
    background: rgba(15, 45, 68, .92);
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 45, 68, .18);
}

.dsf-logout-button:hover,
.dsf-logout-button:focus {
    color: #fff;
    background: #0f2d44;
    outline: 0;
}

.content-body {
    background: #f3f6f8 !important;
}

.content-body .container-fluid {
    max-width: 1280px !important;
}

.dsf-page-title {
    background: #ffffff !important;
    border: 1px solid #dce5ec !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    min-height: 96px !important;
}

.dsf-page-title h4 {
    color: var(--dsf-navy) !important;
    font-size: 24px !important;
    line-height: 1.15 !important;
}

.dsf-page-title span {
    color: #667085 !important;
    font-size: 13px !important;
}

.breadcrumb {
    margin-bottom: 8px !important;
}

.breadcrumb .breadcrumb-item a,
.breadcrumb .breadcrumb-item.active {
    color: #2d3abe !important;
    font-weight: 700 !important;
}

@media (max-width: 1399px) {
    .header .header-left {
        flex-basis: 320px !important;
        min-width: 240px !important;
    }

    .search-area {
        width: 280px !important;
        min-width: 280px !important;
    }
}

@media (max-width: 1199px) {
    .header-profile .header-info {
        display: none !important;
    }

    .header-profile > a.nav-link {
        width: 42px !important;
        justify-content: center !important;
    }

    .dsf-logout-button {
        width: 42px;
        padding: 0;
    }

    .dsf-logout-button span {
        display: none;
    }
}

.dsf-guard-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    border: 1px solid #b7d6df;
    border-radius: 8px;
    background: #f8fcfd;
}

.dsf-guard-banner-warning {
    border-color: #f4d38f;
    background: #fffaf0;
}

.dsf-guard-banner h4 {
    color: var(--dsf-navy);
    font-size: 20px;
    font-weight: 800;
    margin: 4px 0;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.dsf-guard-banner p {
    color: #667085;
    margin: 0;
}

.dsf-role-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #e7f6f3;
    color: var(--dsf-teal);
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.dsf-form-section {
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--dsf-line);
}

.dsf-form-section:last-of-type {
    margin-bottom: 0;
}

.dsf-form-section h5 {
    color: var(--dsf-navy);
    font-size: 15px;
    font-weight: 900;
    margin-bottom: 14px;
}

.dsf-dossier-form-card .card-body {
    padding-top: 8px;
}

.dsf-radio-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.dsf-radio-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-height: 92px;
    padding: 14px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #f8fafc;
    cursor: pointer;
}

.dsf-radio-option:has(input:checked) {
    border-color: var(--dsf-primary);
    background: #eef7ff;
}

.dsf-radio-option input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--dsf-primary);
}

.dsf-radio-option strong,
.dsf-radio-option small {
    display: block;
}

.dsf-radio-option strong {
    color: var(--dsf-navy);
    font-size: 13px;
    font-weight: 900;
}

.dsf-radio-option small {
    margin-top: 4px;
    color: #667085;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
}

.dsf-submit-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding-top: 18px;
}

.dsf-card-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.dsf-row-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.dsf-import-zone {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 150px;
    padding: 18px;
    border: 1px dashed #9bb7c8;
    border-radius: 8px;
    background: #f8fbfd;
    text-align: center;
}

.dsf-import-zone i {
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
    border-radius: 8px;
    background: #e7f6f3;
    color: var(--dsf-teal);
    font-size: 22px;
}

.dsf-import-zone strong {
    color: var(--dsf-ink);
    font-weight: 900;
}

.dsf-import-zone span,
.dsf-form-note {
    color: #667085;
    font-size: 12px;
    font-weight: 700;
}

.dsf-required-columns {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.dsf-required-columns span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #edf2f7;
    color: var(--dsf-navy);
    font-size: 12px;
    font-weight: 800;
}

.dsf-validation-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}

.dsf-check-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-height: 96px;
    padding: 14px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #fff;
}

.dsf-check-card i {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 8px;
    background: #edf2f7;
    color: var(--dsf-navy);
}

.dsf-check-card strong {
    display: block;
    color: var(--dsf-ink);
    font-weight: 900;
    margin-bottom: 4px;
}

.dsf-check-card span {
    display: block;
    color: #667085;
    font-size: 12px;
    line-height: 1.45;
}

.dsf-check-card.ok {
    border-color: #bee4dc;
    background: #f7fcfb;
}

.dsf-check-card.ok i {
    background: #e7f6f3;
    color: var(--dsf-teal);
}

.dsf-check-card.warning {
    border-color: #f4d38f;
    background: #fffaf0;
}

.dsf-check-card.warning i {
    background: #fff4df;
    color: var(--dsf-amber);
}

.dsf-check-card.blocked,
.dsf-check-card.locked {
    border-color: #f3c5c2;
    background: #fff7f6;
}

.dsf-check-card.blocked i,
.dsf-check-card.locked i {
    background: #fff0ee;
    color: var(--dsf-red);
}

.dsf-vertical-steps {
    display: grid;
    gap: 12px;
}

.dsf-vertical-step {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.dsf-vertical-step span {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 8px;
    background: #e7f6f3;
    color: var(--dsf-teal);
    font-weight: 900;
}

.dsf-vertical-step p {
    margin: 4px 0 0;
    color: var(--dsf-ink);
    font-weight: 800;
    line-height: 1.35;
}

.dsf-callout {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid #b7d6df;
    border-radius: 8px;
    background: #f8fcfd;
}

.dsf-callout-warning {
    border-color: #fed7aa;
    background: #fff7ed;
}

.dsf-callout-info {
    border-color: #bfdbfe;
    background: #eff6ff;
}

.dsf-callout strong {
    flex: 0 0 auto;
    color: var(--dsf-navy);
    font-weight: 900;
}

.dsf-callout-warning strong {
    color: #9a3412;
}

.dsf-callout-info strong {
    color: #1d4ed8;
}

.dsf-callout span {
    color: #667085;
    font-weight: 700;
    line-height: 1.45;
}

.dsf-callout code {
    padding: 2px 6px;
    border-radius: 6px;
    color: #14324a;
    background: rgba(20, 50, 74, .08);
    font-weight: 900;
}

.dsf-duplicates-preview {
    max-height: 260px;
    overflow: auto;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
}

.dsf-balance-preview {
    max-height: 620px;
    overflow: auto;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
}

.dsf-mapping-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
}

.dsf-mapping-strip div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 42px;
    padding: 9px 10px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #f8fafc;
}

.dsf-mapping-strip span {
    color: #667085;
    font-size: 12px;
    font-weight: 800;
}

.dsf-mapping-strip strong,
.dsf-mapping-strip i {
    color: var(--dsf-navy);
    font-size: 12px;
}

@media (max-width: 767px) {
    .dsf-guard-banner,
    .dsf-callout {
        flex-direction: column;
        align-items: flex-start;
    }

    .dsf-card-actions,
    .dsf-submit-bar {
        justify-content: flex-start;
    }
}

.dsf-module-shell {
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.dsf-module-tabs {
    display: flex;
    align-items: stretch;
    gap: 0;
    border-bottom: 1px solid var(--dsf-line);
    background: #fbfdff;
}

.dsf-module-tabs a {
    min-height: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 22px;
    border-right: 1px solid var(--dsf-line);
    color: #2f89bd;
    font-size: 14px;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-module-tabs a.active {
    position: relative;
    background: #fff;
    color: #246f9d;
}

.dsf-module-tabs a.active::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: #2f89bd;
}

.dsf-module-tabs a.disabled {
    color: #98a2b3;
    pointer-events: none;
}

.dsf-form-card {
    padding: 24px 28px 28px;
}

.dsf-form-heading {
    text-align: center;
    margin-bottom: 18px;
}

.dsf-form-heading span {
    display: block;
    color: #344054;
    font-size: 18px;
    font-weight: 800;
}

.dsf-form-heading strong {
    display: block;
    color: var(--dsf-navy);
    font-size: 13px;
    font-weight: 800;
    margin-top: 4px;
    text-transform: uppercase;
}

.dsf-basic-form-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px 28px;
}

.dsf-inline-field {
    display: flex;
    align-items: stretch;
    min-width: 0;
    min-height: 46px;
}

.dsf-inline-field label {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    max-width: 50%;
    padding: 0 14px;
    border: 1px solid #cfd8e3;
    border-right: 0;
    border-radius: 0;
    background: #fbfcfe;
    color: #4a5563;
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
}

.dsf-inline-field input,
.dsf-inline-field select {
    min-width: 0;
    width: 100%;
    height: 46px;
    padding: 0 14px;
    border: 1px solid #cfd8e3;
    border-radius: 0;
    background: #fff;
    color: #344054;
    font-size: 13px;
    font-weight: 700;
}

.dsf-inline-field-file input {
    padding-top: 9px;
}

.dsf-form-actions-centered {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 22px;
}

.dsf-notes-search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 10px;
}

.dsf-plan-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.dsf-plan-facts .dsf-value-box {
    padding: 12px;
}

.dsf-plan-facts .dsf-value-box strong {
    font-size: 15px;
}

.dsf-inline-account-form {
    display: grid;
    gap: 14px;
    padding: 14px;
    border: 1px solid #bee4dc;
    border-radius: 8px;
    background: #f7fcfb;
}

.dsf-inline-account-form strong,
.dsf-inline-account-form small {
    display: block;
}

.dsf-inline-account-form strong {
    color: var(--dsf-navy);
    font-weight: 900;
}

.dsf-inline-account-form small {
    color: #667085;
    font-size: 12px;
    font-weight: 700;
}

.dsf-inline-account-grid {
    display: grid;
    grid-template-columns: minmax(140px, .45fr) minmax(0, 1fr);
    gap: 12px;
}

.dsf-column-mapping {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.dsf-column-mapping div {
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #f8fafc;
}

.dsf-column-mapping span,
.dsf-column-mapping strong,
.dsf-column-mapping small {
    display: block;
}

.dsf-column-mapping span {
    color: #667085;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-column-mapping strong {
    margin-top: 3px;
    color: var(--dsf-navy);
    font-size: 14px;
    font-weight: 900;
}

.dsf-column-mapping small {
    margin-top: 4px;
    color: #667085;
    font-size: 12px;
    font-weight: 700;
}

.dsf-plan-browser-toolbar {
    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
}

.dsf-plan-search {
    width: 100% !important;
    min-width: 0 !important;
}

.dsf-plan-class-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.dsf-plan-class-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid var(--dsf-line);
    border-radius: 999px;
    background: #f8fafc;
    color: var(--dsf-navy);
    font-size: 12px;
    font-weight: 900;
}

.dsf-plan-class-pill.active {
    border-color: #9edbd0;
    background: #e7f6f3;
    color: var(--dsf-teal);
}

.dsf-plan-class-pill small {
    color: #667085;
    font-weight: 800;
}

.dsf-plan-table-wrapper {
    max-height: 560px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
}

.dsf-plan-table-wrapper .dsf-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.dsf-notes-layout {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.dsf-notes-categories {
    display: grid;
    gap: 10px;
}

.dsf-note-category {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 72px;
    padding: 12px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #fff;
    color: var(--dsf-ink);
}

.dsf-note-category:hover,
.dsf-note-category.active {
    color: var(--dsf-ink);
    border-color: #9edbd0;
    background: #f7fcfb;
}

.dsf-note-category span {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #e7f6f3;
    color: var(--dsf-teal);
    font-weight: 900;
}

.dsf-note-category strong {
    font-weight: 900;
    line-height: 1.25;
}

.dsf-note-category small {
    color: #667085;
    font-weight: 800;
    white-space: nowrap;
}

@media (max-width: 1199px) {
    .dsf-basic-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dsf-column-mapping {
        grid-template-columns: 1fr;
    }

    .dsf-notes-layout {
        grid-template-columns: 1fr;
    }

    .dsf-dossier-preview-card {
        position: static;
    }
}

@media (max-width: 767px) {
    .dsf-module-tabs {
        overflow-x: auto;
    }

    .dsf-module-tabs a {
        flex: 0 0 auto;
    }

    .dsf-form-card {
        padding: 18px;
    }

    .dsf-basic-form-grid {
        grid-template-columns: 1fr;
    }

    .dsf-form-grid-span-md {
        grid-column: 1 / -1;
    }

    .dsf-radio-grid,
    .dsf-column-mapping,
    .dsf-plan-browser-toolbar {
        grid-template-columns: 1fr;
    }

    .dsf-plan-class-pills {
        justify-content: flex-start;
    }

    .dsf-notes-search {
        grid-template-columns: 1fr;
    }

    .dsf-note-category {
        grid-template-columns: 38px minmax(0, 1fr);
    }

    .dsf-note-category small {
        grid-column: 2;
    }
}

/* Database-backed appearance settings */
body.dsf-appearance-ready {
    background: var(--appearance-content-color) !important;
}

body.dsf-appearance-ready .content-body {
    background: var(--appearance-content-color) !important;
}

body.dsf-appearance-ready .header {
    background: var(--appearance-header-color) !important;
    background-color: var(--appearance-header-color) !important;
}

body.dsf-appearance-ready .header .header-content {
    background: var(--appearance-header-color) !important;
}

body.dsf-appearance-ready .dashboard_bar,
body.dsf-appearance-ready .dsf-header-context,
body.dsf-appearance-ready .header .header-info span,
body.dsf-appearance-ready .header .header-info small {
    color: var(--appearance-header-text-color) !important;
}

body.dsf-appearance-ready .nav-header {
    background: var(--appearance-nav-header-color) !important;
    background-color: var(--appearance-nav-header-color) !important;
}

body.dsf-appearance-ready .nav-header .brand-title strong,
body.dsf-appearance-ready .nav-header .brand-title span {
    color: var(--appearance-nav-header-text-color) !important;
}

body.dsf-appearance-ready .dlabnav {
    background: var(--appearance-sidebar-color) !important;
    background-color: var(--appearance-sidebar-color) !important;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > a,
body.dsf-appearance-ready .dlabnav .metismenu > li > a i,
body.dsf-appearance-ready .dsf-sidebar-note {
    color: var(--appearance-sidebar-text-color) !important;
}

body.dsf-appearance-ready .dlabnav .metismenu > li.mm-active > a,
body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-parent-active > a,
body.dsf-appearance-ready .dlabnav .metismenu > li > a:hover,
body.dsf-appearance-ready .search-area .input-group-text,
body.dsf-appearance-ready .btn-primary {
    background: var(--appearance-primary-color) !important;
    background-color: var(--appearance-primary-color) !important;
    border-color: var(--appearance-primary-color) !important;
}

body.dsf-appearance-ready .breadcrumb .breadcrumb-item a,
body.dsf-appearance-ready .breadcrumb .breadcrumb-item.active,
body.dsf-appearance-ready .dsf-section-kicker,
body.dsf-appearance-ready .btn-outline-primary,
body.dsf-appearance-ready .dsf-page-title h4 {
    color: var(--appearance-primary-color) !important;
}

body.dsf-appearance-ready .btn-outline-primary {
    border-color: var(--appearance-primary-color) !important;
}

body.dsf-appearance-ready .btn-outline-primary:hover {
    color: #fff !important;
    background: var(--appearance-primary-color) !important;
}

body.dsf-sidebar-compact,
body.dsf-sidebar-mini {
    --dsf-sidebar: 94px;
}

body.dsf-sidebar-compact .dsf-brand-title,
body.dsf-sidebar-compact .nav-text,
body.dsf-sidebar-compact .dsf-sidebar-note,
body.dsf-sidebar-mini .dsf-brand-title,
body.dsf-sidebar-mini .nav-text,
body.dsf-sidebar-mini .dsf-sidebar-note {
    display: none !important;
}

body.dsf-sidebar-compact .nav-header .brand-logo,
body.dsf-sidebar-mini .nav-header .brand-logo {
    justify-content: center;
    padding: 0 !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li > a,
body.dsf-sidebar-mini .dlabnav .metismenu > li > a {
    justify-content: center;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.dsf-header-position-static .header {
    position: sticky !important;
}

.dsf-settings-shell {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 20px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: var(--dsf-surface);
}

.dsf-settings-shell h4 {
    margin: 4px 0;
    color: var(--dsf-navy);
    font-size: 22px;
    font-weight: 900;
}

.dsf-settings-shell p {
    margin: 0;
    color: #667085;
    font-weight: 600;
}

.dsf-style-tabs {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}

.dsf-style-tabs a {
    flex: 1 1 0;
    min-height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #475467;
    font-weight: 900;
    border-right: 1px solid var(--dsf-line);
}

.dsf-style-tabs a:last-child {
    border-right: 0;
}

.dsf-style-tabs a.active,
.dsf-style-tabs a:hover {
    color: var(--dsf-navy);
    background: #f7fcfb;
}

.dsf-settings-card {
    overflow: hidden;
}

.dsf-settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.dsf-color-section p {
    margin: 4px 0 12px;
    color: #667085;
    font-size: 12px;
    font-weight: 700;
}

.dsf-color-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.dsf-color-choice {
    position: relative;
    margin: 0;
}

.dsf-color-choice input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.dsf-color-choice span {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #cfd8e3;
    border-radius: 8px;
    background: var(--swatch);
    cursor: pointer;
}

.dsf-color-choice input:checked + span {
    border-color: var(--dsf-navy);
    box-shadow: 0 0 0 4px rgba(20, 50, 74, .12);
}

.dsf-color-choice input:checked + span::after {
    content: "";
    width: 12px;
    height: 12px;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 0 0 2px rgba(17, 24, 39, .2);
}

.dsf-color-choice small {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.dsf-preview-card {
    position: sticky;
    top: 92px;
}

.dsf-appearance-preview {
    overflow: hidden;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: var(--preview-content);
}

.dsf-preview-nav {
    min-height: 54px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    color: var(--preview-nav-text);
    background: var(--preview-nav);
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.dsf-preview-nav span {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: var(--preview-primary);
}

.dsf-preview-header {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px;
    color: var(--preview-header-text);
    background: var(--preview-header);
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.dsf-preview-header span {
    width: 76px;
    height: 26px;
    border-radius: 999px;
    background: var(--preview-primary);
    opacity: .18;
}

.dsf-preview-body {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    min-height: 280px;
}

.dsf-preview-body aside {
    display: grid;
    align-content: start;
    gap: 10px;
    padding: 14px 10px;
    background: var(--preview-sidebar);
}

.dsf-preview-body aside span {
    height: 28px;
    border-radius: 8px;
    background: var(--preview-sidebar-text);
    opacity: .28;
}

.dsf-preview-body aside span.active {
    background: var(--preview-primary);
    opacity: 1;
}

.dsf-preview-body section {
    display: grid;
    gap: 12px;
    align-content: start;
    padding: 14px;
}

.dsf-preview-card-line,
.dsf-preview-chart,
.dsf-preview-table {
    border: 1px solid rgba(20, 50, 74, .13);
    border-radius: 8px;
    background: #fff;
}

.dsf-preview-card-line {
    height: 62px;
}

.dsf-preview-chart {
    height: 82px;
    background:
        linear-gradient(135deg, transparent 0 44%, rgba(15, 118, 110, .18) 44% 56%, transparent 56%),
        #fff;
}

.dsf-preview-table {
    display: grid;
    gap: 8px;
    padding: 10px;
}

.dsf-preview-table span {
    height: 12px;
    border-radius: 999px;
    background: #e8eef4;
}

.dsf-appearance-summary {
    display: grid;
    gap: 10px;
}

.dsf-appearance-summary div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #f8fafc;
}

.dsf-appearance-summary span {
    color: #667085;
    font-size: 12px;
    font-weight: 800;
}

.dsf-appearance-summary strong {
    color: var(--dsf-ink);
    font-size: 12px;
    font-weight: 900;
}

@media (max-width: 991px) {
    .dsf-settings-shell {
        flex-direction: column;
        align-items: flex-start;
    }

    .dsf-settings-grid {
        grid-template-columns: 1fr;
    }

    .dsf-preview-card {
        position: static;
    }
}

@media (max-width: 575px) {
    .dsf-style-tabs {
        overflow-x: auto;
    }

    .dsf-style-tabs a {
        flex: 0 0 140px;
    }

    .dsf-preview-body {
        grid-template-columns: 64px minmax(0, 1fr);
    }
}

/* Stronger sidebar interactions: active and hover must stay visible on custom colors. */
body.dsf-appearance-ready .dlabnav .metismenu > li > a {
    position: relative;
    min-height: 46px;
    transition: background-color .16s ease, box-shadow .16s ease, color .16s ease, transform .16s ease;
}

body.dsf-appearance-ready .dlabnav .metismenu > li.mm-active > a,
body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-parent-active > a,
body.dsf-appearance-ready .dlabnav .metismenu > li > a:hover,
body.dsf-appearance-ready .dlabnav .metismenu > li > a:focus,
body.dsf-appearance-ready .dlabnav .metismenu > li > a:focus-visible {
    color: #fff !important;
    background: var(--appearance-primary-color) !important;
    background: color-mix(in srgb, var(--appearance-primary-color) 88%, #ffffff 12%) !important;
    border-color: transparent !important;
    box-shadow: 0 10px 22px rgba(20, 50, 74, .16);
    transform: translateX(3px);
}

body.dsf-appearance-ready .dlabnav .metismenu > li.mm-active > a i,
body.dsf-appearance-ready .dlabnav .metismenu > li.mm-active > a .nav-text,
body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-parent-active > a i,
body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-parent-active > a .nav-text,
body.dsf-appearance-ready .dlabnav .metismenu > li > a:hover i,
body.dsf-appearance-ready .dlabnav .metismenu > li > a:hover .nav-text,
body.dsf-appearance-ready .dlabnav .metismenu > li > a:focus i,
body.dsf-appearance-ready .dlabnav .metismenu > li > a:focus .nav-text {
    color: #fff !important;
}

body.dsf-appearance-ready .dlabnav .metismenu > li.mm-active > a::before,
body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-parent-active > a::before,
body.dsf-appearance-ready .dlabnav .metismenu > li > a:hover::before,
body.dsf-appearance-ready .dlabnav .metismenu > li > a:focus::before {
    content: "";
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: 8px;
    width: 3px;
    border-radius: 999px;
    background: #fff;
    opacity: .9;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.mm-active > a,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-parent-active > a,
body.dsf-sidebar-compact .dlabnav .metismenu > li > a:hover,
body.dsf-sidebar-mini .dlabnav .metismenu > li.mm-active > a,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-parent-active > a,
body.dsf-sidebar-mini .dlabnav .metismenu > li > a:hover {
    transform: none;
}

/* Denser appearance page, closer to the original template rhythm. */
.dsf-appearance-status {
    margin-bottom: 12px !important;
    padding: 12px 16px !important;
    border-radius: 8px !important;
    font-weight: 700;
}

.dsf-appearance-form .row {
    --bs-gutter-x: 16px;
}

.dsf-appearance-form .dsf-settings-shell {
    margin-bottom: 12px !important;
    padding: 16px 18px;
}

.dsf-appearance-form .dsf-style-tabs {
    margin-bottom: 12px !important;
}

.dsf-appearance-form .dsf-style-tabs a {
    min-height: 48px;
}

.dsf-appearance-form .dsf-style-tabs a.active {
    color: var(--appearance-primary-color) !important;
    box-shadow: inset 0 -3px 0 var(--appearance-primary-color);
}

.dsf-appearance-form .dsf-settings-card .card-header,
.dsf-appearance-form .dsf-preview-card .card-header {
    padding: 18px 24px 4px !important;
}

.dsf-appearance-form .dsf-settings-card .card-body,
.dsf-appearance-form .dsf-preview-card .card-body {
    padding: 12px 24px 22px !important;
}

.dsf-appearance-form .dsf-settings-grid {
    gap: 14px;
}

.dsf-appearance-form .dsf-color-section.mt-4,
.dsf-appearance-form .dsf-settings-grid.mt-4 {
    margin-top: 14px !important;
}

.dsf-appearance-form .dsf-color-section p {
    margin-bottom: 10px;
}

/* Appearance page cleanup: keep the configurator presentable regardless of saved theme colors. */
body.dsf-appearance-page,
body.dsf-appearance-page .content-body {
    background: #eef3f7 !important;
    background-color: #eef3f7 !important;
}

body.dsf-appearance-page .content-body .container-fluid {
    max-width: 1260px !important;
    padding: 14px 22px 28px !important;
}

body.dsf-appearance-page .dsf-page-title {
    min-height: 78px !important;
    margin-bottom: 12px !important;
    padding: 12px 16px !important;
}

body.dsf-appearance-page .dsf-page-title h4 {
    font-size: 21px !important;
}

body.dsf-appearance-page .dsf-page-title span {
    font-size: 12px !important;
}

body.dsf-appearance-page .breadcrumb {
    margin-bottom: 4px !important;
}

body.dsf-appearance-page .dsf-appearance-status {
    margin-bottom: 10px !important;
    padding: 9px 14px !important;
    border-radius: 8px !important;
}

body.dsf-appearance-page .dsf-settings-shell {
    min-height: 86px;
    margin-bottom: 12px !important;
    padding: 14px 16px !important;
}

body.dsf-appearance-page .dsf-settings-shell h4 {
    font-size: 22px;
    line-height: 1.15;
}

body.dsf-appearance-page .dsf-settings-shell p {
    font-size: 12px;
}

body.dsf-appearance-page .dsf-submit-bar {
    padding-top: 0;
}

body.dsf-appearance-page .dsf-style-tabs {
    margin-bottom: 12px !important;
}

body.dsf-appearance-page .dsf-style-tabs a {
    min-height: 44px;
}

body.dsf-appearance-page .card,
body.dsf-appearance-page .dsf-settings-card,
body.dsf-appearance-page .dsf-preview-card {
    height: auto !important;
    min-height: 0 !important;
    margin-bottom: 0 !important;
}

body.dsf-appearance-page .dsf-settings-card + .dsf-settings-card {
    margin-top: 12px !important;
}

body.dsf-appearance-page .dsf-settings-card {
    scroll-margin-top: 92px;
}

body.dsf-appearance-page .dsf-settings-card .card-header,
body.dsf-appearance-page .dsf-preview-card .card-header {
    min-height: 0 !important;
    padding: 16px 20px 4px !important;
}

body.dsf-appearance-page .dsf-settings-card .card-body,
body.dsf-appearance-page .dsf-preview-card .card-body {
    min-height: 0 !important;
    padding: 10px 20px 18px !important;
}

body.dsf-appearance-page .card-title {
    font-size: 19px;
}

body.dsf-appearance-page .form-label {
    margin-bottom: 5px;
    font-size: 12px;
}

body.dsf-appearance-page .form-select,
body.dsf-appearance-page .form-control {
    min-height: 36px !important;
    height: 36px !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    font-size: 12px !important;
}

body.dsf-appearance-page .dsf-settings-grid {
    gap: 12px 16px;
}

body.dsf-appearance-page .dsf-color-section p {
    margin: 2px 0 8px;
    font-size: 11px;
    line-height: 1.35;
}

body.dsf-appearance-page .dsf-color-grid {
    gap: 8px;
}

body.dsf-appearance-page .dsf-color-choice span {
    width: 34px;
    height: 34px;
}

body.dsf-appearance-page .dsf-color-choice input:checked + span {
    box-shadow: 0 0 0 3px rgba(20, 50, 74, .13);
}

#print > .card-body > .dsf-pdf-preset-grid {
    display: none !important;
}

.dsf-pdf-color-editor {
    border-top: 1px solid var(--dsf-line, #d7e2ec);
    padding-top: 14px;
}

.dsf-pdf-color-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.dsf-pdf-color-control {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    border: 1px solid var(--dsf-line, #d7e2ec);
    border-radius: 8px;
    background: #ffffff;
    padding: 14px;
}

.dsf-pdf-color-control p {
    margin: 2px 0 0;
    color: #667085;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
}

.dsf-pdf-color-control .form-label {
    display: block;
    margin-bottom: 0;
    color: #101828;
    font-size: 15px;
    font-weight: 900;
}

.dsf-pdf-color-inputs {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
}

.dsf-pdf-color-inputs input[type="color"] {
    width: 54px;
    height: 40px;
    border: 1px solid #d0dae4;
    border-radius: 8px;
    background: #ffffff;
    cursor: pointer;
    padding: 3px;
}

.dsf-pdf-color-text {
    height: 40px !important;
    min-height: 40px !important;
    font-family: inherit;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.dsf-pdf-color-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.dsf-pdf-color-presets button {
    width: 26px;
    height: 26px;
    border: 1px solid #d0dae4;
    border-radius: 7px;
    background: var(--swatch);
    cursor: pointer;
    transition: box-shadow .16s ease, transform .16s ease;
}

.dsf-pdf-color-presets button:hover,
.dsf-pdf-color-presets button:focus-visible {
    box-shadow: 0 0 0 3px rgba(47, 94, 234, .14);
    transform: translateY(-1px);
}

.dsf-pdf-preview {
    border: 1px solid var(--dsf-line, #d7e2ec);
    border-radius: 8px;
    background: #f8fafc;
    padding: 14px;
}

.dsf-pdf-preview-head {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
    color: #101828;
}

.dsf-pdf-preview-head span {
    color: var(--appearance-primary-color, #2f5eea);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-pdf-preview-head strong {
    font-size: 13px;
    font-weight: 900;
}

.dsf-pdf-preview-table {
    display: grid;
    grid-template-columns: 58px minmax(160px, 1fr) 72px 72px;
    border: 1px solid var(--pdf-border, #000000);
    border-right: 0;
    border-bottom: 0;
    background: #ffffff;
    color: #101828;
    font-size: 12px;
    font-weight: 800;
    overflow: hidden;
}

.dsf-pdf-preview-table > div {
    display: flex;
    align-items: center;
    min-height: 34px;
    border-right: 1px solid var(--pdf-border, #000000);
    border-bottom: 1px solid var(--pdf-border, #000000);
    padding: 6px 8px;
}

.dsf-pdf-preview-table .head {
    justify-content: center;
    background: var(--pdf-head, #7fc4ea);
    font-weight: 900;
}

.dsf-pdf-preview-table .section {
    background: var(--pdf-section, #d9d9d9);
}

.dsf-pdf-preview-table .total {
    background: var(--pdf-total, #d9d9d9);
    font-weight: 900;
}

body.dsf-appearance-page .dsf-preview-card {
    position: sticky;
    top: 86px;
}

body.dsf-appearance-page .dsf-appearance-preview {
    max-width: 100%;
}

body.dsf-appearance-page .dsf-preview-nav,
body.dsf-appearance-page .dsf-preview-header {
    min-height: 44px;
    padding: 10px 12px;
}

body.dsf-appearance-page .dsf-preview-body {
    grid-template-columns: 72px minmax(0, 1fr);
    min-height: 210px;
}

body.dsf-appearance-page .dsf-preview-body section {
    gap: 10px;
    padding: 12px;
}

body.dsf-appearance-page .dsf-preview-card-line {
    height: 52px;
}

body.dsf-appearance-page .dsf-preview-chart {
    height: 70px;
}

body.dsf-appearance-page .dsf-appearance-summary {
    gap: 8px;
    margin-top: 12px !important;
}

body.dsf-appearance-page .dsf-appearance-summary div {
    min-height: 36px;
    padding: 8px 10px;
}

@media (max-width: 1199px) {
    body.dsf-appearance-page .dsf-preview-card {
        position: static;
    }
}

@media (max-width: 767.98px) {
    .dsf-pdf-color-grid,
    .dsf-pdf-color-inputs {
        grid-template-columns: 1fr;
    }

    .dsf-pdf-preview-table {
        grid-template-columns: 46px minmax(120px, 1fr) 58px 58px;
        font-size: 10px;
    }
}

/* Large screens: use the full workspace instead of keeping a 1280px left-aligned canvas. */
body.dsf-appearance-ready .content-body > .container-fluid {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
}

/* Sidebar groups: keep icons intact and let long submenu labels breathe. */
body.dsf-appearance-ready .dlabnav .metismenu > li > a::before {
    display: none !important;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse {
    width: 100%;
    padding-right: 8px;
    box-sizing: border-box;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li,
body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li > a {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li > a {
    min-height: 46px;
    height: auto;
    padding-top: 10px;
    padding-right: 12px;
    padding-bottom: 10px;
    overflow: visible;
    transform: none !important;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li > a .nav-text {
    display: block;
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
    line-height: 1.3;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > a > i,
body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li > a > i {
    position: relative;
    z-index: 1;
    flex: 0 0 22px;
}

/* Grouped access menu: users, contacts and RBAC breathe under one parent. */
body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse {
    margin: 6px 14px 12px 14px;
    padding: 0;
    width: auto;
    box-sizing: border-box;
    border-left: 0;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse.mm-show {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > a[aria-expanded="false"] + ul.mm-collapse {
    display: none !important;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > a[aria-expanded="true"] + ul.mm-collapse.mm-show {
    display: flex !important;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li {
    width: 100%;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li > a {
    width: 100%;
    min-height: 40px;
    display: flex;
    align-items: center;
    gap: 9px;
    justify-content: flex-start;
    padding: 9px 12px !important;
    border-radius: 8px;
    color: var(--appearance-sidebar-text-color) !important;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.18;
    opacity: .82;
    transition: background-color .16s ease, color .16s ease, opacity .16s ease, transform .16s ease;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li > a i {
    width: 20px;
    min-width: 20px;
    color: inherit !important;
    font-size: 13px;
    text-align: center;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li > a .nav-text {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li.mm-active > a,
body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li.dsf-child-active > a,
body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li > a:hover,
body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li > a:focus {
    color: #fff !important;
    background: var(--appearance-primary-color) !important;
    opacity: 1;
    transform: translateX(2px);
}

body.dsf-appearance-ready .dlabnav .metismenu > li > a.has-arrow[aria-expanded="true"] {
    margin-bottom: 2px;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > a.has-arrow::after {
    border-color: currentColor;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li > ul.mm-collapse,
body.dsf-sidebar-mini .dlabnav .metismenu > li > ul.mm-collapse {
    display: none !important;
}

/* Template Jiade background restored as a configurable application surface. */
body.dsf-appearance-ready.dsf-background-jiade {
    background: var(--appearance-background-body-color) !important;
}

body.dsf-appearance-ready.dsf-background-jiade .header,
body.dsf-appearance-ready.dsf-background-jiade .header .header-content {
    background-color: var(--appearance-background-top-color) !important;
    background-image:
        linear-gradient(90deg, rgba(23, 20, 125, .96), rgba(43, 38, 177, .78)),
        var(--appearance-background-image) !important;
    background-repeat: no-repeat !important;
    background-size: cover, cover !important;
    background-position: center top, center top !important;
    border-bottom: 1px solid rgba(255, 255, 255, .14) !important;
    box-shadow: none !important;
}

body.dsf-appearance-ready.dsf-background-jiade .content-body {
    background-color: var(--appearance-background-body-color) !important;
    background-image:
        linear-gradient(180deg, rgba(31, 28, 145, .92) 0, rgba(31, 28, 145, .74) 128px, rgba(31, 28, 145, 0) 260px),
        var(--appearance-background-image) !important;
    background-repeat: no-repeat !important;
    background-size: 100% 260px, 100% 260px !important;
    background-position: top center, top center !important;
}

body.dsf-appearance-ready.dsf-background-jiade .dashboard_bar,
body.dsf-appearance-ready.dsf-background-jiade .dsf-header-context,
body.dsf-appearance-ready.dsf-background-jiade .header .header-info span,
body.dsf-appearance-ready.dsf-background-jiade .header .header-info small {
    color: #fff !important;
}

body.dsf-appearance-ready.dsf-background-jiade .header .header-info small,
body.dsf-appearance-ready.dsf-background-jiade .dsf-header-context {
    opacity: .82;
}

body.dsf-appearance-ready.dsf-background-jiade .search-area .input-group-text {
    color: #fff !important;
    background: rgba(255, 255, 255, .16) !important;
    border-color: rgba(255, 255, 255, .14) !important;
}

body.dsf-appearance-ready.dsf-background-jiade .search-area .form-control {
    color: #111827 !important;
    background: rgba(255, 255, 255, .96) !important;
    border-color: transparent !important;
}

body.dsf-appearance-ready.dsf-background-jiade .dsf-campaign-status,
body.dsf-appearance-ready.dsf-background-jiade .dsf-period-pill {
    background: rgba(255, 255, 255, .92) !important;
    border-color: rgba(255, 255, 255, .28) !important;
}

body.dsf-appearance-ready.dsf-background-jiade .dsf-page-title {
    background: rgba(255, 255, 255, .95) !important;
    box-shadow: 0 18px 42px rgba(15, 23, 42, .14);
}

body.dsf-appearance-ready.dsf-background-soft .content-body,
body.dsf-appearance-ready.dsf-background-blue .content-body {
    background: #eef3f7 !important;
}

body.dsf-appearance-ready.dsf-background-white .content-body {
    background: #fff !important;
}

body.dsf-appearance-ready.dsf-background-dark .content-body {
    background: #111827 !important;
}

body.dsf-appearance-ready.dsf-background-dark .dsf-page-title {
    background: rgba(255, 255, 255, .96) !important;
}

/* Responsive Jiade shell: compact icon rail on reduced screens. */
@media (max-width: 1199px) and (min-width: 768px) {
    :root {
        --dsf-sidebar: 94px;
        --dsf-header: 76px;
    }

    body.dsf-appearance-ready .nav-header,
    body.dsf-appearance-ready .dlabnav {
        width: var(--dsf-sidebar) !important;
        min-width: var(--dsf-sidebar) !important;
    }

    body.dsf-appearance-ready .nav-header {
        height: var(--dsf-header) !important;
    }

    body.dsf-appearance-ready .nav-header .brand-logo {
        height: var(--dsf-header) !important;
        justify-content: center !important;
        padding: 0 !important;
    }

    body.dsf-appearance-ready .dsf-brand-title,
    body.dsf-appearance-ready .dlabnav .nav-text,
    body.dsf-appearance-ready .dsf-sidebar-note,
    body.dsf-appearance-ready .dlabnav .metismenu > li > a.has-arrow::after,
    body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse {
        display: none !important;
    }

    body.dsf-appearance-ready .dlabnav {
        top: var(--dsf-header) !important;
        height: calc(100vh - var(--dsf-header)) !important;
    }

    body.dsf-appearance-ready .dlabnav .dlabnav-scroll {
        padding: 12px 0 !important;
        overflow-x: hidden !important;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li {
        margin: 0 !important;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li > a {
        width: 62px !important;
        min-height: 54px !important;
        justify-content: center !important;
        margin: 5px auto !important;
        padding: 0 !important;
        border-radius: 10px !important;
        transform: none !important;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li > a::before {
        content: none !important;
        display: none !important;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li > a i {
        width: auto !important;
        min-width: 0 !important;
        margin: 0 !important;
        font-size: 20px !important;
        line-height: 1 !important;
    }

    body.dsf-appearance-ready .header {
        left: var(--dsf-sidebar) !important;
        height: var(--dsf-header) !important;
        min-height: var(--dsf-header) !important;
    }

    body.dsf-appearance-ready .header .header-content,
    body.dsf-appearance-ready .header .navbar,
    body.dsf-appearance-ready .header .navbar-collapse {
        height: var(--dsf-header) !important;
    }

    body.dsf-appearance-ready .header .header-content {
        padding: 0 18px !important;
    }

    body.dsf-appearance-ready .header .header-left {
        min-width: 210px !important;
        flex: 0 1 auto !important;
    }

    body.dsf-appearance-ready .dashboard_bar {
        font-size: 21px !important;
    }

    body.dsf-appearance-ready .dsf-header-context {
        font-size: 12px !important;
    }

    body.dsf-appearance-ready .header .header-right {
        min-width: 0 !important;
        gap: 10px !important;
    }

    body.dsf-appearance-ready .search-area {
        width: clamp(220px, 34vw, 320px) !important;
        min-width: 0 !important;
    }

    body.dsf-appearance-ready .content-body {
        margin-left: var(--dsf-sidebar) !important;
        padding-top: var(--dsf-header) !important;
    }

    body.dsf-appearance-ready .content-body .container-fluid {
        padding: 18px 18px 28px !important;
    }

    body.dsf-appearance-ready .dsf-page-title {
        align-items: center !important;
        padding: 14px 16px !important;
    }

    body.dsf-appearance-ready .dsf-page-title h4 {
        font-size: 22px !important;
    }

    body.dsf-appearance-ready .dsf-page-actions {
        flex-wrap: wrap;
        justify-content: flex-end;
    }
}

@media (max-width: 767px) {
    :root {
        --dsf-sidebar: 72px;
        --dsf-header: 66px;
    }

    body.dsf-appearance-ready .nav-header,
    body.dsf-appearance-ready .dlabnav {
        width: var(--dsf-sidebar) !important;
        min-width: var(--dsf-sidebar) !important;
    }

    body.dsf-appearance-ready .nav-header {
        height: var(--dsf-header) !important;
    }

    body.dsf-appearance-ready .nav-header .brand-logo {
        height: var(--dsf-header) !important;
        justify-content: center !important;
        padding: 0 !important;
    }

    body.dsf-appearance-ready .dsf-logo-mark {
        width: 42px !important;
        height: 42px !important;
    }

    body.dsf-appearance-ready .dsf-brand-title,
    body.dsf-appearance-ready .dlabnav .nav-text,
    body.dsf-appearance-ready .dsf-sidebar-note,
    body.dsf-appearance-ready .dlabnav .metismenu > li > a.has-arrow::after,
    body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse,
    body.dsf-appearance-ready .search-area,
    body.dsf-appearance-ready .header-profile .header-info,
    body.dsf-appearance-ready .dsf-header-context {
        display: none !important;
    }

    body.dsf-appearance-ready .dlabnav {
        top: var(--dsf-header) !important;
        height: calc(100vh - var(--dsf-header)) !important;
    }

    body.dsf-appearance-ready .dlabnav .dlabnav-scroll {
        padding: 8px 0 !important;
        overflow-x: hidden !important;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li > a {
        width: 50px !important;
        min-height: 50px !important;
        justify-content: center !important;
        margin: 4px auto !important;
        padding: 0 !important;
        border-radius: 10px !important;
        transform: none !important;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li > a::before {
        content: none !important;
        display: none !important;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li > a i {
        width: auto !important;
        min-width: 0 !important;
        margin: 0 !important;
        font-size: 18px !important;
        line-height: 1 !important;
    }

    body.dsf-appearance-ready .header {
        left: var(--dsf-sidebar) !important;
        height: var(--dsf-header) !important;
        min-height: var(--dsf-header) !important;
    }

    body.dsf-appearance-ready .header .header-content,
    body.dsf-appearance-ready .header .navbar,
    body.dsf-appearance-ready .header .navbar-collapse {
        height: var(--dsf-header) !important;
    }

    body.dsf-appearance-ready .header .header-content {
        padding: 0 12px !important;
    }

    body.dsf-appearance-ready .header .header-left {
        min-width: 0 !important;
        max-width: calc(100vw - var(--dsf-sidebar) - 76px) !important;
    }

    body.dsf-appearance-ready .dashboard_bar {
        max-width: 100%;
        overflow: hidden;
        font-size: 18px !important;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    body.dsf-appearance-ready .header .header-right {
        gap: 6px !important;
        margin-left: auto !important;
    }

    body.dsf-appearance-ready .header-profile > a.nav-link {
        width: 40px !important;
        height: 40px !important;
        padding: 0 !important;
        justify-content: center !important;
    }

    body.dsf-appearance-ready .header-profile .dsf-user-avatar {
        width: 36px !important;
        height: 36px !important;
    }

    body.dsf-appearance-ready .content-body {
        margin-left: var(--dsf-sidebar) !important;
        padding-top: var(--dsf-header) !important;
    }

    body.dsf-appearance-ready .content-body .container-fluid {
        padding: 12px 10px 22px !important;
    }

    body.dsf-appearance-ready .dsf-page-title {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 10px;
        padding: 12px !important;
    }

    body.dsf-appearance-ready .dsf-page-title h4 {
        font-size: 20px !important;
    }

    body.dsf-appearance-ready .dsf-page-title span {
        font-size: 12px !important;
    }

    body.dsf-appearance-ready .dsf-page-actions {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: 8px;
    }

    body.dsf-appearance-ready .dsf-period-pill {
        min-height: 32px;
        padding: 7px 10px;
        font-size: 12px;
    }

    body.dsf-appearance-ready.dsf-background-jiade .content-body {
        background-size: 100% 220px, 100% 220px !important;
    }
}

@media (max-width: 420px) {
    :root {
        --dsf-sidebar: 64px;
    }

    body.dsf-appearance-ready .dsf-logo-mark {
        width: 38px !important;
        height: 38px !important;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li > a {
        width: 46px !important;
        min-height: 46px !important;
    }

    body.dsf-appearance-ready .dashboard_bar {
        font-size: 17px !important;
    }
}

/* Prevent reduced viewports from creating a page-level horizontal scroll. */
body.dsf-appearance-ready {
    overflow-x: hidden;
}

body.dsf-appearance-ready .content-body {
    width: calc(100% - var(--dsf-sidebar)) !important;
    max-width: calc(100% - var(--dsf-sidebar)) !important;
    overflow-x: hidden;
}

body.dsf-appearance-ready .content-body .container-fluid,
body.dsf-appearance-ready .row > [class*="col"],
body.dsf-appearance-ready .card {
    min-width: 0;
    max-width: 100%;
}

body.dsf-appearance-ready .table-responsive {
    width: 100%;
    max-width: 100%;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
}

body.dsf-appearance-ready .table-responsive .dsf-table {
    min-width: 680px;
}

@media (max-width: 767px) {
    body.dsf-appearance-ready .table-responsive .dsf-table {
        min-width: 620px;
    }
}

.dsf-form-grid-span {
    grid-column: 1 / -1;
}

.dsf-form-grid-span-md {
    grid-column: span 2;
}

.dsf-dossier-form-card .card-body {
    padding: 22px 26px 26px;
}

.dsf-dossier-form-card .dsf-form-section {
    padding: 20px 0 24px;
    margin-bottom: 0;
}

.dsf-dossier-form-card .dsf-form-section:first-child {
    padding-top: 0;
}

.dsf-dossier-form-card .dsf-form-section h5 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    color: var(--dsf-navy);
    font-size: 16px;
    font-weight: 900;
}

.dsf-dossier-form-card .form-label {
    min-height: 20px;
    color: #344054;
    font-size: 13px;
    font-weight: 900;
}

.dsf-dossier-form-card .form-control,
.dsf-dossier-form-card .form-select {
    min-height: 46px;
    font-weight: 700;
}

.dsf-dossier-form-card textarea.form-control {
    min-height: 92px;
    line-height: 1.45;
    resize: vertical;
}

.dsf-dossier-preview-card {
    position: sticky;
    top: 92px;
}

.dsf-dossier-logo-preview {
    width: 104px;
    height: 104px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    border: 1px dashed #9bb7c8;
    border-radius: 8px;
    background: #f8fbfd;
    overflow: hidden;
}

.dsf-dossier-logo-preview i {
    color: var(--dsf-teal);
    font-size: 32px;
}

.dsf-dossier-logo-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #fff;
}

.dsf-dossier-live-summary {
    display: grid;
    gap: 8px;
    padding: 16px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #f8fafc;
}

.dsf-dossier-live-summary strong,
.dsf-dossier-live-summary span,
.dsf-dossier-live-summary small {
    min-width: 0;
}

.dsf-dossier-live-summary strong {
    color: var(--dsf-ink);
    font-size: 18px;
    font-weight: 900;
    line-height: 1.25;
}

.dsf-dossier-live-summary > span {
    color: var(--dsf-teal);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-dossier-live-summary small {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: #667085;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
}

.dsf-dossier-live-summary small i {
    width: 14px;
    margin-top: 2px;
    color: var(--dsf-navy);
}

.dsf-dossier-detail-notes {
    display: grid;
    gap: 10px;
}

.dsf-dossier-detail-notes div {
    padding: 12px 14px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #f8fafc;
}

.dsf-dossier-detail-notes span,
.dsf-dossier-detail-notes strong {
    display: block;
}

.dsf-dossier-detail-notes span {
    color: #667085;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-dossier-detail-notes strong {
    margin-top: 4px;
    color: var(--dsf-ink);
    font-weight: 800;
    line-height: 1.45;
}

.dsf-empty-state {
    min-height: 190px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 28px;
    border: 1px dashed var(--dsf-line);
    border-radius: 8px;
    background: #f8fbfd;
    text-align: center;
}

.dsf-empty-state > i {
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: var(--dsf-teal);
    background: #e7f6f3;
}

.dsf-empty-state strong {
    color: var(--dsf-ink);
    font-weight: 900;
}

.dsf-empty-state span {
    color: var(--dsf-muted);
    font-weight: 700;
}

.dsf-table-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    white-space: nowrap;
}

.dsf-table-actions form {
    margin: 0;
}

.dsf-table-actions .btn {
    min-width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0 10px;
}

.dsf-rbac-panel {
    overflow: hidden;
}

.dsf-rbac-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px 24px;
    border-bottom: 1px solid var(--dsf-line);
    background: #fff;
}

.dsf-rbac-toolbar-left,
.dsf-rbac-summary,
.dsf-rbac-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.dsf-rbac-main-btn {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 0 20px;
    border: 1px solid #1f78d1;
    border-radius: 6px;
    background: #1f78d1;
    color: #fff;
    font-size: 14px;
    font-weight: 900;
    text-transform: uppercase;
    box-shadow: 0 8px 16px rgba(31, 120, 209, .2);
}

.dsf-rbac-main-btn:hover,
.dsf-rbac-main-btn.active {
    color: #fff;
    background: var(--dsf-navy);
    border-color: var(--dsf-navy);
}

.dsf-rbac-main-btn i {
    font-size: 17px;
}

.dsf-rbac-summary span {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 11px;
    border: 1px solid var(--dsf-line);
    border-radius: 999px;
    background: #f8fafc;
    color: #667085;
    font-size: 12px;
    font-weight: 800;
}

.dsf-rbac-summary strong {
    color: var(--dsf-navy);
    font-size: 14px;
}

.dsf-rbac-table-wrap {
    padding: 26px 24px 24px;
    background: #fff;
}

.dsf-rbac-table {
    min-width: 1080px;
    border: 1px solid var(--dsf-line);
}

.dsf-rbac-table thead th {
    height: 64px;
    background: #203d70 !important;
    color: #fff !important;
    border-right: 1px solid rgba(255, 255, 255, .6);
    border-bottom: 0;
    font-size: 13px;
    text-transform: none;
}

.dsf-rbac-table thead th:last-child {
    border-right: 0;
}

.dsf-rbac-table tbody td {
    height: 76px;
    color: #2b2f36;
    font-size: 14px;
}

.dsf-rbac-role-name {
    display: grid;
    gap: 4px;
    min-width: 150px;
}

.dsf-rbac-role-name strong {
    color: var(--dsf-ink);
    font-weight: 900;
    line-height: 1.25;
}

.dsf-rbac-role-name small,
.dsf-rbac-meta,
.dsf-rbac-description {
    color: #667085;
    font-weight: 700;
}

.dsf-rbac-description {
    max-width: 440px;
    color: #344054;
    line-height: 1.45;
}

.dsf-rbac-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
    font-size: 11px;
}

.dsf-rbac-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475467;
}

.dsf-rbac-actions {
    justify-content: center;
}

.dsf-rbac-actions form {
    margin: 0;
}

.dsf-icon-btn {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #1f2937;
    font-size: 18px;
    transition: background .15s ease, color .15s ease, transform .15s ease;
}

.dsf-icon-btn:hover {
    color: var(--dsf-navy);
    background: #eef3ff;
    transform: translateY(-1px);
}

.dsf-icon-btn-danger:hover {
    color: var(--dsf-red);
    background: #fff0ee;
}

.dsf-icon-btn-muted {
    color: #98a2b3;
    cursor: not-allowed;
}

.dsf-icon-btn-muted:hover {
    color: #98a2b3;
    background: transparent;
    transform: none;
}

.dsf-rbac-modal .modal-content {
    border: 0;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 26px 80px rgba(15, 23, 42, .28);
}

.dsf-rbac-modal .modal-header,
.dsf-rbac-modal .modal-footer {
    padding: 20px 24px;
    border-color: var(--dsf-line);
}

.dsf-rbac-modal .modal-title {
    color: var(--dsf-ink);
    font-size: 22px;
    font-weight: 900;
}

.dsf-rbac-modal .modal-body {
    padding: 24px;
}

.dsf-rbac-detail-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}

.dsf-rbac-detail-grid div {
    min-height: 74px;
    padding: 12px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #f8fafc;
}

.dsf-rbac-detail-grid span,
.dsf-rbac-detail-grid strong {
    display: block;
}

.dsf-rbac-detail-grid span {
    color: #667085;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-rbac-detail-grid strong {
    margin-top: 5px;
    color: var(--dsf-navy);
    font-weight: 900;
}

.dsf-rbac-detail-text {
    color: #344054;
    font-weight: 700;
    line-height: 1.55;
}

.dsf-role-privileges-wide {
    max-width: 100%;
}

.dsf-rbac-tree {
    display: grid;
    gap: 8px;
}

.dsf-rbac-node {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
}

.dsf-rbac-toggle {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #344054;
}

.dsf-rbac-toggle:hover {
    background: #eef3f7;
}

.dsf-rbac-node label,
.dsf-rbac-leaf {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    cursor: pointer;
}

.dsf-rbac-node input,
.dsf-rbac-leaf input {
    width: 21px;
    height: 21px;
    flex: 0 0 auto;
    accent-color: #1f78d1;
}

.dsf-rbac-node span,
.dsf-rbac-leaf span {
    color: #2b2f36;
    font-size: 16px;
    font-weight: 800;
}

.dsf-rbac-node small,
.dsf-rbac-leaf small {
    color: #667085;
    font-size: 12px;
    font-weight: 800;
}

.dsf-rbac-branches {
    display: grid;
    gap: 8px;
    padding-left: 34px;
}

.dsf-rbac-group {
    border-radius: 8px;
}

.dsf-rbac-node-module {
    padding: 10px 12px;
    border-radius: 8px;
    background: #f7f9fb;
}

.dsf-rbac-group.is-selected .dsf-rbac-node-module {
    background: #dcecfb;
}

.dsf-rbac-children {
    display: grid;
    gap: 6px;
    margin-left: 34px;
    padding: 10px 14px 14px;
    background: #eef6fd;
}

.dsf-rbac-leaf {
    min-height: 42px;
    padding: 6px 10px;
    border-radius: 6px;
}

.dsf-rbac-leaf:hover {
    background: rgba(255, 255, 255, .72);
}

.dsf-rbac-leaf span {
    font-size: 15px;
    font-weight: 700;
}

.dsf-rbac-tree-compact .dsf-rbac-branches {
    max-height: 520px;
    overflow: auto;
    padding-right: 8px;
}

.dsf-rbac-group.is-collapsed .dsf-rbac-children,
.dsf-rbac-tree.is-collapsed > .dsf-rbac-branches {
    display: none;
}

.dsf-rbac-group.is-collapsed > .dsf-rbac-node .dsf-rbac-toggle i,
.dsf-rbac-tree.is-collapsed > .dsf-rbac-node .dsf-rbac-toggle i {
    transform: rotate(-90deg);
}

@media (max-width: 991px) {
    .dsf-rbac-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .dsf-rbac-detail-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .dsf-rbac-toolbar,
    .dsf-rbac-table-wrap {
        padding: 16px;
    }

    .dsf-rbac-main-btn {
        width: 100%;
        justify-content: center;
    }

    .dsf-rbac-toolbar-left {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
    }

    .dsf-rbac-detail-grid {
        grid-template-columns: 1fr;
    }

    .dsf-rbac-branches {
        padding-left: 12px;
    }

    .dsf-rbac-children {
        margin-left: 12px;
    }
}

button.dsf-plan-class-pill {
    border: 1px solid var(--dsf-line);
    cursor: pointer;
}

button.dsf-plan-class-pill:hover,
button.dsf-plan-class-pill:focus {
    border-color: #9edbd0;
    color: var(--dsf-teal);
}

.dsf-confirm-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(8, 22, 40, .62);
    backdrop-filter: blur(6px);
    animation: dsfConfirmFadeIn .16s ease-out;
}

.dsf-confirm-overlay.is-leaving {
    opacity: 0;
    transition: opacity .12s ease;
}

.dsf-confirm-modal {
    width: min(540px, 100%);
    display: grid;
    grid-template-columns: 58px 1fr;
    gap: 18px;
    padding: 26px;
    border: 1px solid rgba(180, 35, 24, .18);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(15, 23, 42, .24);
}

.dsf-confirm-icon {
    width: 58px;
    height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    color: #b42318;
    background: #fef3f2;
    font-size: 24px;
}

body.dsf-confirm-open {
    overflow: hidden !important;
}

.dsf-confirm-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.dsf-confirm-kicker {
    display: block;
    margin-bottom: 5px;
    color: #b42318;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.dsf-confirm-close {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border: 0;
    border-radius: 10px;
    color: #667085;
    background: #f2f4f7;
}

.dsf-confirm-close:hover,
.dsf-confirm-close:focus {
    color: #b42318;
    background: #fef3f2;
}

.dsf-confirm-content h4 {
    margin: 0 0 8px;
    color: var(--dsf-ink);
    font-size: 20px;
    font-weight: 900;
}

.dsf-confirm-content p {
    margin: 0;
    color: var(--dsf-muted);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.65;
}

.dsf-confirm-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 20px;
    flex-wrap: wrap;
}

.dsf-confirm-actions .btn {
    min-height: 44px;
    border-radius: 11px;
    font-weight: 800;
}

.dsf-confirm-actions [data-confirm-ok] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.dsf-dossier-filters {
    padding: 18px;
    border: 1px solid #d8e2ec;
    border-radius: 14px;
    background: #f8fafc;
}

.dsf-dossier-filters .form-label {
    margin-bottom: 7px;
    color: var(--dsf-ink);
    font-size: 12px;
    font-weight: 800;
}

.dsf-dossier-filters .form-control,
.dsf-dossier-filters .form-select,
.dsf-dossier-filters .input-group-text {
    min-height: 46px;
}

.dsf-dossier-filters .input-group-text {
    color: var(--dsf-teal);
    border-color: #d8e2ec;
    background: #fff;
}

.dsf-filter-summary {
    color: #667085;
    font-size: 12px;
}

.dsf-filter-summary strong {
    color: var(--dsf-teal);
}

.dsf-empty-filter-result {
    min-height: 190px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #667085;
    text-align: center;
}

.dsf-empty-filter-result > i {
    margin-bottom: 4px;
    color: #98a2b3;
    font-size: 30px;
}

.dsf-empty-filter-result strong {
    color: var(--dsf-ink);
    font-size: 16px;
}

@keyframes dsfConfirmFadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.dsf-toast-stack {
    position: fixed;
    top: 86px;
    right: 24px;
    z-index: 9999;
    display: grid;
    gap: 10px;
    width: min(380px, calc(100vw - 32px));
    pointer-events: none;
}

.dsf-toast {
    position: relative;
    display: grid;
    gap: 4px;
    padding: 14px 44px 14px 16px;
    border: 1px solid var(--dsf-line);
    border-left-width: 4px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(15, 23, 42, .16);
    pointer-events: auto;
    animation: dsfToastIn .22s ease-out;
}

.dsf-toast strong {
    color: var(--dsf-ink);
    font-weight: 900;
}

.dsf-toast span {
    color: var(--dsf-muted);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.45;
}

.dsf-toast button {
    position: absolute;
    top: 9px;
    right: 10px;
    width: 26px;
    height: 26px;
    border: 0;
    border-radius: 8px;
    color: #667085;
    background: transparent;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

.dsf-toast button:hover {
    color: var(--dsf-ink);
    background: #eef3f7;
}

.dsf-toast-success {
    border-left-color: var(--dsf-teal);
}

.dsf-toast-info {
    border-left-color: var(--dsf-blue);
}

.dsf-toast-error {
    border-left-color: var(--dsf-red);
}

.dsf-toast.is-leaving {
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity .18s ease, transform .18s ease;
}

@keyframes dsfToastIn {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 767px) {
    .dsf-confirm-overlay {
        align-items: flex-end;
        padding: 16px;
    }

    .dsf-confirm-modal {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 20px;
    }

    .dsf-confirm-actions .btn {
        width: 100%;
    }

    .dsf-toast-stack {
        top: 74px;
        right: 12px;
        left: 12px;
        width: auto;
    }
}

.dsf-balance-workspace {
    min-width: 0;
}

.dsf-balance-guard-actions,
.dsf-card-header-split,
.dsf-equivalence-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.dsf-draft-pill {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 7px 12px;
    border-radius: 999px;
    background: #e7f6f3;
    color: var(--dsf-teal);
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.dsf-draft-pill.is-warning {
    background: #fff4df;
    color: #9a5b00;
}

.dsf-balance-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.dsf-balance-step {
    position: relative;
    min-height: 94px;
    padding: 16px 16px 16px 58px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #fff;
}

.dsf-balance-step span {
    position: absolute;
    top: 16px;
    left: 16px;
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #edf2f7;
    color: var(--dsf-navy);
    font-weight: 900;
}

.dsf-balance-step strong,
.dsf-balance-step small {
    display: block;
}

.dsf-balance-step strong {
    color: var(--dsf-ink);
    font-size: 14px;
    font-weight: 900;
    line-height: 1.25;
}

.dsf-balance-step small {
    margin-top: 5px;
    color: #667085;
    font-size: 12px;
    font-weight: 700;
}

.dsf-balance-step.is-current,
.dsf-balance-step.is-done {
    border-color: #9edbd0;
    background: #f7fcfb;
}

.dsf-balance-step.is-current span,
.dsf-balance-step.is-done span {
    background: var(--dsf-teal);
    color: #fff;
}

.dsf-balance-step.is-ready {
    border-color: #8ab4ff;
    background: #f4f8ff;
}

.dsf-balance-step.is-ready span {
    background: var(--dsf-blue);
}

.dsf-balance-panel {
    height: auto !important;
    min-height: 0 !important;
    margin-bottom: 12px !important;
    border-radius: 8px;
}

.dsf-balance-panel .card-header {
    padding-bottom: 8px;
}

.dsf-balance-panel .card-body {
    min-height: 0 !important;
}

.dsf-balance-checks-panel .card-body {
    padding-top: 6px;
    padding-bottom: 18px;
}

.dsf-balance-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.dsf-balance-summary div,
.dsf-balance-totals div {
    min-width: 0;
    padding: 13px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #f8fafc;
}

.dsf-balance-summary span,
.dsf-balance-totals span {
    display: block;
    color: #667085;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-balance-summary strong,
.dsf-balance-totals strong {
    display: block;
    margin-top: 5px;
    color: var(--dsf-navy);
    font-size: 24px;
    font-weight: 900;
    line-height: 1;
}

.dsf-balance-summary .is-danger {
    border-color: #f3c5c2;
    background: #fff7f6;
}

.dsf-balance-summary .is-danger strong {
    color: var(--dsf-red);
}

.dsf-balance-summary .is-ok {
    border-color: #bee4dc;
    background: #f7fcfb;
}

.dsf-balance-summary .is-ok strong {
    color: var(--dsf-teal);
}

.dsf-balance-totals {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.dsf-balance-column-selector {
    display: grid;
    grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr);
    gap: 14px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #f8fafc;
}

.dsf-balance-column-selector strong,
.dsf-balance-column-selector small {
    display: block;
}

.dsf-balance-column-selector strong {
    color: var(--dsf-navy);
    font-weight: 900;
    line-height: 1.25;
}

.dsf-balance-column-selector small {
    margin-top: 4px;
    color: #667085;
    font-size: 12px;
    font-weight: 700;
}

.dsf-amount-pair-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}

.dsf-amount-pair-card {
    min-height: 74px;
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    padding: 12px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
}

.dsf-amount-pair-card:hover,
.dsf-amount-pair-card.is-selected {
    border-color: #9edbd0;
    background: #f7fcfb;
}

.dsf-amount-pair-card input {
    margin-top: 3px;
}

.dsf-amount-pair-card span,
.dsf-amount-pair-card strong {
    grid-column: 2;
}

.dsf-amount-pair-card span {
    color: var(--dsf-teal);
    font-size: 12px;
    font-weight: 900;
}

.dsf-amount-pair-card strong {
    margin-top: -3px;
    color: var(--dsf-ink);
    font-size: 12px;
    font-weight: 800;
}

.dsf-search-inline {
    position: relative;
    min-width: 280px;
}

.dsf-search-inline-sm {
    min-width: 240px;
}

.dsf-search-inline i {
    position: absolute;
    left: 12px;
    top: 50%;
    color: #98a2b3;
    transform: translateY(-50%);
    pointer-events: none;
}

.dsf-search-inline .form-control {
    padding-left: 36px;
}

.dsf-equivalence-progress {
    flex: 1 1 220px;
    height: 10px;
    overflow: hidden;
    border-radius: 999px;
    background: #edf2f7;
}

.dsf-equivalence-progress span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--dsf-teal);
    transition: width .18s ease;
}

.dsf-equivalence-help {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 13px 14px;
    border: 1px solid #bee4dc;
    border-radius: 8px;
    background: #f7fcfb;
}

.dsf-equivalence-help i {
    width: 34px;
    height: 34px;
    display: inline-flex;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #e7f6f3;
    color: var(--dsf-teal);
}

.dsf-equivalence-help strong,
.dsf-equivalence-help span {
    display: block;
}

.dsf-equivalence-help strong {
    color: var(--dsf-navy);
    font-size: 13px;
    font-weight: 900;
}

.dsf-equivalence-help span {
    margin-top: 3px;
    color: #667085;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.45;
}

.dsf-equivalence-table {
    max-height: 650px;
    overflow: auto;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
}

.dsf-equivalence-table table {
    min-width: 1180px;
}

.dsf-equivalence-table th:nth-child(1),
.dsf-equivalence-table td:nth-child(1) {
    width: 180px;
}

.dsf-equivalence-table th:nth-child(2),
.dsf-equivalence-table td:nth-child(2) {
    min-width: 300px;
}

.dsf-equivalence-table th:nth-child(5),
.dsf-equivalence-table td:nth-child(5) {
    min-width: 520px;
}

.dsf-equivalence-target {
    display: grid;
    gap: 8px;
}

.dsf-equivalence-input {
    min-width: 420px;
    background-color: #fff !important;
}

.dsf-equivalence-table tr.has-invalid-target {
    background: #fff7f6;
}

.dsf-equivalence-table tr.has-invalid-target td:first-child {
    box-shadow: inset 4px 0 0 var(--dsf-red);
}

.dsf-equivalence-feedback {
    color: var(--dsf-red);
    font-size: 11px;
    font-weight: 900;
}

.dsf-equivalence-suggestions {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.dsf-equivalence-suggestions > span {
    color: #667085;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-equivalence-suggestions button {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 260px;
    padding: 5px 9px;
    overflow: hidden;
    color: var(--dsf-navy);
    background: #f8fafc;
    border: 1px solid #d0dae4;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    text-align: left;
}

.dsf-equivalence-suggestions button:hover,
.dsf-equivalence-suggestions button:focus {
    color: var(--dsf-blue);
    border-color: #9bbcfb;
    background: #eef4ff;
    outline: 0;
}

.dsf-equivalence-suggestions button strong {
    flex: 0 0 auto;
    color: inherit;
}

.dsf-equivalence-suggestions button small {
    min-width: 0;
    overflow: hidden;
    color: #667085;
    font-size: 11px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dsf-equivalence-table thead th,
.dsf-balance-preview thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.dsf-equivalence-table tr.is-resolved {
    background: #f7fcfb;
}

.dsf-equivalence-table tr.is-resolved td:first-child {
    box-shadow: inset 4px 0 0 var(--dsf-teal);
}

.dsf-equivalence-table tr.is-focused {
    animation: dsf-equivalence-focus 1.3s ease 1;
    background: #fff8e8;
}

.dsf-equivalence-table tr.is-focused td:first-child {
    box-shadow: inset 4px 0 0 var(--dsf-amber);
}

.dsf-balance-match-action {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.dsf-balance-match-action .btn {
    min-height: 30px;
    padding: 5px 10px;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.dsf-balance-preview table {
    min-width: 1120px;
}

.dsf-balance-preview tbody tr.is-recognized td {
    background: #f4fffb;
}

.dsf-balance-preview tbody tr.is-equivalence td {
    background: #f4f8ff;
}

.dsf-balance-preview tbody tr.is-unknown td {
    background: #fff3f1;
}

.dsf-balance-preview tbody tr.is-updating td {
    opacity: .72;
}

.dsf-balance-preview tbody tr.is-recognized td:first-child {
    box-shadow: inset 4px 0 0 var(--dsf-teal);
}

.dsf-balance-preview tbody tr.is-equivalence td:first-child {
    box-shadow: inset 4px 0 0 var(--dsf-blue);
}

.dsf-balance-preview tbody tr.is-unknown td:first-child {
    box-shadow: inset 4px 0 0 var(--dsf-red);
}

.dsf-account-edit {
    display: grid;
    gap: 5px;
    min-width: 150px;
}

.dsf-account-edit .form-control {
    height: 38px;
    padding: 7px 10px;
    border-radius: 8px;
    background: #fff !important;
    font-weight: 900;
}

.dsf-account-edit small {
    color: #667085;
    font-size: 11px;
    font-weight: 800;
}

tr.is-unknown .dsf-account-edit small {
    color: var(--dsf-red);
}

tr.is-recognized .dsf-account-edit small,
tr.is-equivalence .dsf-account-edit small {
    color: var(--dsf-teal);
}

@keyframes dsf-equivalence-focus {
    0% {
        background: #fff0c7;
    }

    100% {
        background: #fff8e8;
    }
}

.dsf-status-chip {
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
    white-space: nowrap;
}

.dsf-status-chip.is-recognized {
    background: #e7f6f3;
    color: var(--dsf-teal);
}

.dsf-status-chip.is-equivalence {
    background: #eef4ff;
    color: var(--dsf-blue);
}

.dsf-status-chip.is-unknown {
    background: #fff0ee;
    color: var(--dsf-red);
}

[data-balance-save-button]:disabled {
    cursor: not-allowed;
    opacity: .55;
}

[data-selected-file] {
    display: block;
    margin-top: 8px;
    color: #667085;
    font-size: 12px;
    font-weight: 800;
}

@media (max-width: 1199px) {
    .dsf-balance-steps {
        grid-template-columns: 1fr;
    }
}

@media (min-width: 992px) {
    .dsf-balance-summary {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .dsf-balance-summary,
    .dsf-balance-totals,
    .dsf-balance-column-selector,
    .dsf-inline-account-grid {
        grid-template-columns: 1fr;
    }

    .dsf-search-inline {
        min-width: 100%;
    }
}

.dsf-login-body {
    min-height: 100vh;
    background: #edf3f8;
    color: var(--dsf-ink);
}

.dsf-login-page {
    display: grid;
    grid-template-columns: minmax(420px, .92fr) minmax(430px, 1.08fr);
    gap: 24px;
    width: min(1440px, 100%);
    min-height: 100vh;
    padding: 24px;
    margin: 0 auto;
}

.dsf-login-hero {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: calc(100vh - 48px);
    padding: 44px;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(22, 17, 132, .98), rgba(49, 45, 180, .88)),
        url("../images/background/pic-2.png") center / cover;
    border-radius: 18px;
    box-shadow: 0 26px 70px rgba(23, 18, 111, .26);
}

.dsf-login-hero::after {
    position: absolute;
    inset: auto -8% -18% 8%;
    height: 36%;
    content: "";
    background: rgba(255, 255, 255, .08);
    transform: skewY(-9deg);
}

.dsf-login-hero > * {
    position: relative;
    z-index: 1;
}

.dsf-login-hero-top {
    display: flex;
    align-items: center;
    gap: 14px;
}

.dsf-login-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    color: #fff;
    background: rgba(255, 255, 255, .16);
    border: 1px solid rgba(255, 255, 255, .20);
    border-radius: 14px;
}

.dsf-login-mark i {
    font-size: 26px;
}

.dsf-login-hero-top strong {
    display: block;
    color: #fff;
    font-size: 34px;
    font-weight: 900;
    line-height: 1;
}

.dsf-login-hero-top small {
    display: block;
    margin-top: 6px;
    color: rgba(255, 255, 255, .78);
    font-weight: 800;
}

.dsf-login-hero-content {
    max-width: 560px;
}

.dsf-login-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 12px;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0;
    background: rgba(255, 255, 255, .14);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
}

.dsf-login-hero h1 {
    max-width: 520px;
    margin: 18px 0 14px;
    color: #fff;
    font-size: clamp(32px, 4vw, 52px);
    font-weight: 900;
    line-height: 1.05;
}

.dsf-login-hero p {
    max-width: 520px;
    margin: 0;
    color: rgba(255, 255, 255, .78);
    font-size: 17px;
    line-height: 1.6;
}

.dsf-login-flow {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    max-width: 500px;
    margin-top: 34px;
}

.dsf-login-flow div {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 64px;
    padding: 14px;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 12px;
}

.dsf-login-flow i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    color: #fff;
    background: rgba(255, 255, 255, .14);
    border-radius: 9px;
}

.dsf-login-flow span {
    color: #fff;
    font-weight: 900;
}

.dsf-login-hero-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
    color: rgba(255, 255, 255, .78);
    font-size: 13px;
    font-weight: 800;
}

.dsf-login-hero-footer span:first-child {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #fff;
}

.dsf-login-main {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 48px);
    padding: 24px 0;
}

.dsf-login-card {
    width: min(100%, 520px);
    padding: 38px;
    background: #fff;
    border: 1px solid #d7e2ec;
    border-radius: 18px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .12);
}

.dsf-login-card-head {
    margin-bottom: 26px;
    text-align: left;
}

.dsf-login-card-head h2 {
    margin: 8px 0 8px;
    color: var(--dsf-ink);
    font-size: 31px;
    font-weight: 900;
}

.dsf-login-card-head p {
    max-width: 430px;
    margin: 0;
    color: #64748b;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.55;
}

.dsf-login-form {
    display: grid;
    gap: 18px;
}

.dsf-login-field {
    display: grid;
    gap: 8px;
}

.dsf-login-field .form-label {
    margin: 0;
    color: #334155;
    font-size: 13px;
    font-weight: 900;
}

.dsf-login-control {
    position: relative;
}

.dsf-login-control > i {
    position: absolute;
    top: 50%;
    left: 16px;
    z-index: 2;
    color: #94a3b8;
    transform: translateY(-50%);
}

.dsf-login-control .form-control {
    height: 54px;
    padding: 0 52px 0 46px;
    color: var(--dsf-ink);
    font-size: 15px;
    font-weight: 700;
    background: #f8fafc;
    border: 1px solid #d7e2ec;
    border-radius: 12px;
    box-shadow: none;
}

.dsf-login-control .form-control:focus {
    background: #fff;
    border-color: #4038bb;
    box-shadow: 0 0 0 4px rgba(64, 56, 187, .12);
}

.dsf-login-password-toggle {
    position: absolute;
    top: 50%;
    right: 8px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: #64748b;
    background: transparent;
    border: 0;
    border-radius: 10px;
    transform: translateY(-50%);
}

.dsf-login-password-toggle:hover,
.dsf-login-password-toggle:focus {
    color: var(--dsf-navy);
    background: #eef4ff;
    outline: 0;
}

.dsf-login-options {
    display: flex;
    gap: 14px;
    align-items: center;
    justify-content: space-between;
    padding: 2px 0 4px;
}

.dsf-login-options .form-check-label {
    color: var(--dsf-ink);
    font-size: 14px;
    font-weight: 800;
}

.dsf-login-options span {
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
    text-align: right;
}

.dsf-login-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    height: 54px;
    margin-top: 2px;
    color: #fff;
    font-size: 16px;
    font-weight: 900;
    background: #153852;
    border: 0;
    border-radius: 12px;
    box-shadow: 0 14px 30px rgba(21, 56, 82, .22);
}

.dsf-login-submit:hover,
.dsf-login-submit:focus {
    color: #fff;
    background: #0f2d44;
}

.dsf-login-note {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px;
    margin-top: 22px;
    background: #f2fbf9;
    border: 1px solid #bfe5dc;
    border-radius: 14px;
}

.dsf-login-note i {
    margin-top: 3px;
    color: var(--dsf-teal);
}

.dsf-login-note strong {
    display: block;
    color: var(--dsf-teal);
    font-weight: 900;
}

.dsf-login-note span {
    display: block;
    margin-top: 3px;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.45;
}

.dsf-profile-menu {
    min-width: 260px;
    padding: 8px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
}

.dsf-profile-menu-head {
    display: grid;
    gap: 3px;
    padding: 10px 12px 12px;
    margin-bottom: 6px;
    border-bottom: 1px solid var(--dsf-line);
}

.dsf-profile-menu-head strong {
    color: var(--dsf-ink);
    font-weight: 900;
}

.dsf-profile-menu-head span {
    color: #667085;
    font-size: 12px;
    font-weight: 700;
}

.dsf-profile-menu .dropdown-item {
    border-radius: 6px;
    color: var(--dsf-navy);
    font-weight: 800;
}

@media (max-width: 991px) {
    .dsf-login-page {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 16px;
    }

    .dsf-login-hero,
    .dsf-login-main {
        min-height: auto;
    }

    .dsf-login-hero {
        padding: 28px;
    }

    .dsf-login-hero h1 {
        max-width: 640px;
        font-size: 34px;
    }

    .dsf-login-flow {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        max-width: none;
    }

    .dsf-login-flow div {
        justify-content: center;
    }

    .dsf-login-flow span {
        display: none;
    }

    .dsf-login-main {
        padding: 0;
    }
}

@media (max-width: 575px) {
    .dsf-login-page {
        padding: 10px;
    }

    .dsf-login-hero {
        padding: 22px;
        border-radius: 14px;
    }

    .dsf-login-hero-top strong {
        font-size: 28px;
    }

    .dsf-login-hero h1 {
        font-size: 28px;
    }

    .dsf-login-hero p,
    .dsf-login-hero-footer {
        font-size: 13px;
    }

    .dsf-login-card {
        padding: 24px;
        border-radius: 14px;
    }

    .dsf-login-card-head h2 {
        font-size: 27px;
    }

    .dsf-login-options {
        align-items: flex-start;
        flex-direction: column;
    }

    .dsf-login-options span {
        text-align: left;
    }
}

/* Compact sidebar: show readable labels and flyout submenus on hover/focus. */
.dlabnav .metismenu > li {
    position: relative;
}

.dlabnav .metismenu > li > a .dsf-menu-tooltip {
    display: none;
}

.dlabnav .metismenu > li > ul.mm-collapse .dsf-menu-tooltip {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

.dlabnav .metismenu > li > ul.mm-collapse > li > a .nav-text {
    min-width: 0;
    overflow-wrap: anywhere;
    position: static !important;
    transform: none !important;
}

body.dsf-sidebar-compact .dlabnav,
body.dsf-sidebar-mini .dlabnav {
    overflow: visible !important;
}

/* The compact rail must remain vertically navigable on short screens. */
body.dsf-sidebar-compact .dlabnav .dlabnav-scroll,
body.dsf-sidebar-mini .dlabnav .dlabnav-scroll {
    height: 100% !important;
    max-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-color: rgba(71, 84, 103, .34) transparent;
    scrollbar-width: thin;
    touch-action: pan-y;
}

body.dsf-sidebar-compact .dlabnav .dlabnav-scroll::-webkit-scrollbar,
body.dsf-sidebar-mini .dlabnav .dlabnav-scroll::-webkit-scrollbar {
    width: 5px;
}

body.dsf-sidebar-compact .dlabnav .dlabnav-scroll::-webkit-scrollbar-thumb,
body.dsf-sidebar-mini .dlabnav .dlabnav-scroll::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(71, 84, 103, .28);
}

@media (max-width: 1199px) {
    body.dsf-appearance-ready .dlabnav .dlabnav-scroll {
        height: 100% !important;
        max-height: 100% !important;
        padding-bottom: 20px !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        scrollbar-width: thin;
        touch-action: pan-y;
    }
}

body.dsf-sidebar-compact .dlabnav .metismenu > li > a .dsf-menu-tooltip,
body.dsf-sidebar-mini .dlabnav .metismenu > li > a .dsf-menu-tooltip {
    position: absolute;
    z-index: 1200;
    top: 50%;
    left: calc(100% + 12px);
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    padding: 0 13px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 8px;
    background: #12344c;
    box-shadow: 0 14px 32px rgba(15, 45, 68, .22);
    color: #fff !important;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    opacity: 0;
    pointer-events: none;
    transform: translate(-8px, -50%);
    transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
    visibility: hidden;
    white-space: nowrap;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li > a:hover .dsf-menu-tooltip,
body.dsf-sidebar-compact .dlabnav .metismenu > li > a:focus .dsf-menu-tooltip,
body.dsf-sidebar-compact .dlabnav .metismenu > li > a:focus-visible .dsf-menu-tooltip,
body.dsf-sidebar-mini .dlabnav .metismenu > li > a:hover .dsf-menu-tooltip,
body.dsf-sidebar-mini .dlabnav .metismenu > li > a:focus .dsf-menu-tooltip,
body.dsf-sidebar-mini .dlabnav .metismenu > li > a:focus-visible .dsf-menu-tooltip {
    opacity: 1;
    transform: translate(0, -50%);
    visibility: visible;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > a .dsf-menu-tooltip,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > a .dsf-menu-tooltip,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > a .dsf-menu-tooltip,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > a .dsf-menu-tooltip {
    opacity: 0;
    visibility: hidden;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse {
    position: absolute;
    z-index: 1210;
    top: 0;
    left: calc(100% + 12px);
    display: flex !important;
    width: 236px !important;
    flex-direction: column;
    gap: 6px;
    margin: 0 !important;
    padding: 10px !important;
    border: 1px solid #d8e2ee;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(15, 45, 68, .24);
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a {
    color: #344054 !important;
    background: transparent !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a i,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a i,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a i,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a i {
    color: #667085 !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li.mm-active > a,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li.dsf-child-active > a,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a:hover,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a:focus,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li.mm-active > a,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li.dsf-child-active > a,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a:hover,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a:focus,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li.mm-active > a,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li.dsf-child-active > a,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a:hover,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a:focus,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li.mm-active > a,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li.dsf-child-active > a,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a:hover,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a:focus {
    color: #fff !important;
    background: var(--appearance-primary-color, #2f5eea) !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li.mm-active > a i,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li.dsf-child-active > a i,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a:hover i,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a:focus i,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li.mm-active > a i,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li.dsf-child-active > a i,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a:hover i,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a:focus i,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li.mm-active > a i,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li.dsf-child-active > a i,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a:hover i,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a:focus i,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li.mm-active > a i,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li.dsf-child-active > a i,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a:hover i,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a:focus i {
    color: #fff !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse::before,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse::before,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse::before,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse::before {
    content: attr(data-dsf-label);
    display: block;
    padding: 4px 6px 8px;
    border-bottom: 1px solid #eef3f8;
    color: #12344c;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .02em;
    text-transform: uppercase;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse .nav-text,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse .nav-text,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse .nav-text,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse .nav-text {
    display: inline !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse .dsf-menu-tooltip,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse .dsf-menu-tooltip,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse .dsf-menu-tooltip,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse .dsf-menu-tooltip {
    display: none !important;
}

@media (max-width: 1199px) {
    body.dsf-appearance-ready .dlabnav {
        overflow: visible !important;
    }

    body.dsf-appearance-ready .dlabnav .dlabnav-scroll {
        height: 100% !important;
        max-height: 100% !important;
        padding-bottom: 20px !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        scrollbar-width: thin;
        touch-action: pan-y;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li > a .dsf-menu-tooltip {
        position: absolute;
        z-index: 1200;
        top: 50%;
        left: calc(100% + 12px);
        display: inline-flex;
        min-height: 38px;
        align-items: center;
        padding: 0 13px;
        border-radius: 8px;
        background: #12344c;
        box-shadow: 0 14px 32px rgba(15, 45, 68, .22);
        color: #fff !important;
        font-size: 13px;
        font-weight: 800;
        line-height: 1;
        opacity: 0;
        pointer-events: none;
        transform: translate(-8px, -50%);
        transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
        visibility: hidden;
        white-space: nowrap;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li > a:hover .dsf-menu-tooltip,
    body.dsf-appearance-ready .dlabnav .metismenu > li > a:focus .dsf-menu-tooltip,
    body.dsf-appearance-ready .dlabnav .metismenu > li > a:focus-visible .dsf-menu-tooltip {
        opacity: 1;
        transform: translate(0, -50%);
        visibility: visible;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > a .dsf-menu-tooltip,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > a .dsf-menu-tooltip {
        opacity: 0;
        visibility: hidden;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse {
        position: absolute;
        z-index: 1210;
        top: 0;
        left: calc(100% + 12px);
        display: flex !important;
        width: min(236px, calc(100vw - var(--dsf-sidebar) - 24px)) !important;
        flex-direction: column;
        gap: 6px;
        margin: 0 !important;
        padding: 10px !important;
        border: 1px solid #d8e2ee;
        border-radius: 10px;
        background: #fff;
        box-shadow: 0 18px 42px rgba(15, 45, 68, .24);
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a {
        color: #344054 !important;
        background: transparent !important;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a i,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a i {
        color: #667085 !important;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li.mm-active > a,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li.dsf-child-active > a,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a:hover,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a:focus,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li.mm-active > a,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li.dsf-child-active > a,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a:hover,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a:focus {
        color: #fff !important;
        background: var(--appearance-primary-color, #2f5eea) !important;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li.mm-active > a i,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li.dsf-child-active > a i,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a:hover i,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse > li > a:focus i,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li.mm-active > a i,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li.dsf-child-active > a i,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a:hover i,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse > li > a:focus i {
        color: #fff !important;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse::before,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse::before {
        content: attr(data-dsf-label);
        display: block;
        padding: 4px 6px 8px;
        border-bottom: 1px solid #eef3f8;
        color: #12344c;
        font-size: 12px;
        font-weight: 900;
        letter-spacing: .02em;
        text-transform: uppercase;
    }

    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse .nav-text,
    body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse .nav-text {
        display: inline !important;
    }

body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse .dsf-menu-tooltip,
body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse .dsf-menu-tooltip {
    display: none !important;
}
}

/* Stable compact rail: centered icons and flyouts that stay open while crossing the gap. */
body.dsf-sidebar-compact .dlabnav .metismenu,
body.dsf-sidebar-mini .dlabnav .metismenu {
    display: grid;
    gap: 4px;
    padding: 0 !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li,
body.dsf-sidebar-mini .dlabnav .metismenu > li {
    position: relative;
    display: flex;
    justify-content: center;
    width: 100%;
    margin: 0 !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li > a,
body.dsf-sidebar-mini .dlabnav .metismenu > li > a,
body.dsf-appearance-ready.dsf-sidebar-compact .dlabnav .metismenu > li > a,
body.dsf-appearance-ready.dsf-sidebar-mini .dlabnav .metismenu > li > a {
    width: 64px !important;
    height: 58px !important;
    min-height: 58px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 4px auto !important;
    padding: 0 !important;
    border-radius: 10px !important;
    transform: none !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li > a::before,
body.dsf-sidebar-mini .dlabnav .metismenu > li > a::before,
body.dsf-appearance-ready.dsf-sidebar-compact .dlabnav .metismenu > li > a::before,
body.dsf-appearance-ready.dsf-sidebar-mini .dlabnav .metismenu > li > a::before {
    content: none !important;
    display: none !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li > a i,
body.dsf-sidebar-mini .dlabnav .metismenu > li > a i,
body.dsf-appearance-ready.dsf-sidebar-compact .dlabnav .metismenu > li > a i,
body.dsf-appearance-ready.dsf-sidebar-mini .dlabnav .metismenu > li > a i {
    width: 26px !important;
    min-width: 26px !important;
    height: 26px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    font-size: 20px !important;
    line-height: 1 !important;
    text-align: center !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover::after,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within::after,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open::after,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover::after,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within::after,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open::after {
    content: "";
    position: absolute;
    z-index: 1209;
    top: 0;
    left: 100%;
    width: 18px;
    height: 240px;
    background: transparent;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > a .dsf-menu-tooltip,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > a .dsf-menu-tooltip {
    opacity: 0;
    visibility: hidden;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse,
body.dsf-appearance-ready.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse,
body.dsf-appearance-ready.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse {
    position: absolute;
    z-index: 1210;
    top: 0;
    left: calc(100% + 10px);
    display: flex !important;
    width: min(256px, calc(100vw - var(--dsf-sidebar) - 24px)) !important;
    flex-direction: column;
    gap: 6px;
    margin: 0 !important;
    padding: 10px !important;
    border: 1px solid #d8e2ee;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(15, 45, 68, .24);
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse::before,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse::before,
body.dsf-appearance-ready.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse::before,
body.dsf-appearance-ready.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse::before {
    content: attr(data-dsf-label);
    display: block;
    padding: 4px 6px 8px;
    border-bottom: 1px solid #eef3f8;
    color: #12344c;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .02em;
    text-transform: uppercase;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse > li > a,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse > li > a,
body.dsf-appearance-ready.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse > li > a,
body.dsf-appearance-ready.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse > li > a {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px !important;
    color: #344054 !important;
    background: transparent !important;
    border-radius: 8px;
    font-weight: 800;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse > li > a i,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse > li > a i,
body.dsf-appearance-ready.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse > li > a i,
body.dsf-appearance-ready.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse > li > a i {
    width: 22px !important;
    min-width: 22px !important;
    color: #667085 !important;
    font-size: 15px !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse .nav-text,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse .nav-text,
body.dsf-appearance-ready.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse .nav-text,
body.dsf-appearance-ready.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse .nav-text {
    display: inline !important;
    white-space: normal;
}

.dsf-statement-tabs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.dsf-statement-tabs a {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 68px;
    padding: 12px;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #fff;
    color: var(--dsf-ink);
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.dsf-statement-tabs a:hover,
.dsf-statement-tabs a.active {
    color: var(--dsf-ink);
    border-color: #9edbd0;
    box-shadow: 0 14px 34px rgba(20, 50, 74, .08);
    transform: translateY(-1px);
}

.dsf-statement-tabs strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: #e7f6f3;
    color: var(--dsf-teal);
    font-weight: 900;
}

.dsf-statement-tabs span {
    min-width: 0;
    color: var(--dsf-ink);
    font-weight: 900;
    line-height: 1.2;
}

.dsf-statement-tab-description {
    display: block;
    margin-top: 4px;
    color: #667085;
    font-size: 12px;
    font-style: normal;
    font-weight: 700;
    line-height: 1.35;
}

.dsf-statement-tabs small {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #edf2f7;
    color: var(--dsf-navy);
    font-size: 11px;
    font-weight: 900;
    white-space: nowrap;
}

/* Compact note directory used on the exercise workflow page. */
.dsf-workflow-note-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.dsf-workflow-note-list a {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 12px;
    min-height: 64px;
    padding: 10px 14px 10px 10px;
    border: 1px solid var(--dsf-line);
    border-radius: 10px;
    background: #fff;
    color: var(--dsf-ink);
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.dsf-workflow-note-list a:hover {
    border-color: #9edbd0;
    background: #fbfefd;
    box-shadow: 0 8px 22px rgba(20, 50, 74, .07);
    color: var(--dsf-ink);
}

.dsf-workflow-note-code {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 6px 8px;
    border-radius: 8px;
    background: #e7f6f3;
    color: var(--dsf-teal);
    font-size: 12px;
    font-weight: 900;
    line-height: 1.15;
    text-align: center;
}

.dsf-workflow-note-copy {
    min-width: 0;
}

.dsf-workflow-note-copy strong {
    display: -webkit-box;
    overflow: hidden;
    color: var(--dsf-ink);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.dsf-workflow-note-copy small {
    display: block;
    margin-top: 3px;
    color: #7a8494;
    font-size: 11px;
    font-weight: 700;
}

.dsf-workflow-note-list a > i {
    color: #98a2b3;
    font-size: 11px;
    transition: color .16s ease, transform .16s ease;
}

.dsf-workflow-note-list a:hover > i {
    color: var(--dsf-teal);
    transform: translateX(2px);
}

.dsf-statement-command .card-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.dsf-statement-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.dsf-file-action {
    cursor: pointer;
}

.dsf-statement-table-wrap,
.dsf-formula-table-wrap {
    max-height: 620px;
    overflow: auto;
}

.dsf-statement-table thead th,
.dsf-formula-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.dsf-statement-table td,
.dsf-statement-table th {
    white-space: nowrap;
}

.dsf-statement-table td:nth-child(2) {
    min-width: 320px;
    white-space: normal;
}

.dsf-statement-row-section td {
    background: #f8fbfd;
    color: var(--dsf-navy);
    font-weight: 900;
}

.dsf-statement-row-total td {
    background: #eef7ff;
    color: var(--dsf-navy);
    font-weight: 900;
}

.dsf-statement-row-grand-total td {
    background: #e7f6f3;
    color: var(--dsf-teal);
    font-weight: 900;
}

.dsf-statement-table .dsf-result-marker-column,
.dsf-statement-table .dsf-result-sign-column {
    width: 54px;
    min-width: 54px;
}

.dsf-statement-table .dsf-result-row-violet td {
    background: #dbeafe;
    color: #14324a;
}

.dsf-statement-table .dsf-result-row-olive td {
    background: #e2e8f0;
    color: #14324a;
}

.dsf-statement-table .dsf-result-row-green td {
    background: #dcfce7;
    color: #166534;
}

.dsf-statement-table .dsf-result-row-violet .text-muted,
.dsf-statement-table .dsf-result-row-green .text-muted {
    color: #475467 !important;
}

.dsf-ohada-card .card-body {
    padding-top: 18px;
}

.dsf-ohada-section-title {
    margin: 0 0 12px;
    color: var(--dsf-navy);
    font-size: 18px;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-ohada-table-wrap {
    border: 1px solid var(--dsf-border);
    border-radius: 8px;
    max-height: 720px;
    overflow: auto;
}

.dsf-ohada-table {
    min-width: 980px;
    border-collapse: separate;
    border-spacing: 0;
    color: var(--dsf-navy);
}

.dsf-personnel-table {
    min-width: 1480px;
}

.dsf-capital-table {
    min-width: 1220px;
}

.dsf-indicator-table {
    min-width: 860px;
}

.dsf-indicator-table thead th:first-child,
.dsf-indicator-table tbody td:first-child {
    min-width: 460px;
    white-space: normal;
}

.dsf-indicator-table thead th:not(:first-child),
.dsf-indicator-table tbody td:not(:first-child) {
    width: 140px;
    white-space: nowrap;
}

.dsf-indicator-table .dsf-line-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 22px;
    margin-right: 8px;
    padding: 0 7px;
    border-radius: 999px;
    background: #eef4fb;
    color: #516173;
    font-size: 11px;
    font-weight: 900;
}

.dsf-ohada-section-row td {
    background: var(--dsf-pdf-section, #d9d9d9) !important;
    color: #102033;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-ohada-table thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    background: var(--dsf-pdf-header, #7fc4ea);
    border-color: #9ccde7;
    color: #ffffff;
    font-size: 12px;
    font-weight: 900;
    text-align: center;
    text-transform: uppercase;
    vertical-align: middle;
}

.dsf-ohada-table tbody td,
.dsf-ohada-table tbody th {
    border-color: #e3edf4;
    font-size: 13px;
    font-weight: 600;
    vertical-align: middle;
}

.dsf-ohada-table tbody tr:hover td {
    background: #f7fbff;
}

.dsf-ohada-code {
    min-width: 86px;
}

.dsf-ohada-total-row td,
.dsf-ohada-total-row th {
    background: var(--dsf-pdf-total, #d9d9d9) !important;
    color: #102033;
    font-weight: 900;
}

.dsf-ohada-muted-row td {
    background: #f4f8fb;
}

.dsf-ohada-input {
    min-width: 92px;
    min-height: 36px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 700;
}

.dsf-ohada-table td:first-child .dsf-ohada-input,
.dsf-ohada-table td:nth-child(2) .dsf-ohada-input,
.dsf-ohada-table td:nth-child(3) .dsf-ohada-input {
    min-width: 160px;
}

.dsf-ohada-calculated {
    background: #f1f6fb;
    color: var(--dsf-teal);
    font-weight: 900;
}

.dsf-ohada-action-col {
    width: 58px;
    min-width: 58px;
}

.dsf-ohada-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.dsf-formula-table {
    min-width: 1120px;
}

.dsf-formula-table td {
    vertical-align: top;
}

.dsf-formula-table .form-control {
    min-height: 40px;
    font-size: 12px;
    font-weight: 700;
}

.dsf-formula-table textarea.form-control {
    min-width: 150px;
    resize: vertical;
}

.dsf-formula-table td:nth-child(2) .form-control {
    min-width: 260px;
}

.dsf-formula-note {
    width: 92px;
    min-width: 92px;
}

.dsf-manual-amount {
    width: 180px;
    min-width: 180px;
    text-align: right;
    font-weight: 800;
}

.dsf-version-label {
    width: 340px;
    max-width: 100%;
}

.dsf-switch {
    position: relative;
    display: inline-flex;
    width: 44px;
    height: 24px;
    margin: 8px 0 0;
}

.dsf-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.dsf-switch span {
    position: absolute;
    inset: 0;
    cursor: pointer;
    border-radius: 999px;
    background: #d8e2ee;
    transition: background .16s ease;
}

.dsf-switch span::before {
    content: "";
    position: absolute;
    left: 3px;
    top: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 8px rgba(15, 45, 68, .2);
    transition: transform .16s ease;
}

.dsf-switch input:checked + span {
    background: var(--dsf-teal);
}

.dsf-switch input:checked + span::before {
    transform: translateX(20px);
}

@media (max-width: 1199px) {
    .dsf-workflow-note-list {
        grid-template-columns: 1fr;
    }

    .dsf-statement-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dsf-statement-command .card-body {
        align-items: flex-start;
        flex-direction: column;
    }

    .dsf-statement-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 767px) {
    .dsf-workflow-note-list a {
        grid-template-columns: 56px minmax(0, 1fr) 14px;
    }

    .dsf-statement-tabs {
        grid-template-columns: 1fr;
    }

    .dsf-statement-tabs a {
        grid-template-columns: 40px minmax(0, 1fr);
    }

    .dsf-statement-tabs small {
        grid-column: 2;
        width: max-content;
    }

    .dsf-version-label {
        width: 100%;
    }
}

/* Final shell polish: Jiade-like search, unclipped logout and stable sidebar flyouts. */
.header {
    overflow: visible !important;
}

.header .navbar-collapse {
    min-width: 0 !important;
}

.header .header-left {
    flex: 1 1 330px !important;
    min-width: 220px !important;
    max-width: 380px !important;
}

.header .header-right {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    overflow: visible !important;
}

.dsf-search-nav-item {
    flex: 1 1 390px !important;
    min-width: 260px !important;
    max-width: 430px !important;
}

.search-area,
body.dsf-appearance-ready .search-area {
    width: 100% !important;
    min-width: 0 !important;
    height: 56px !important;
    display: flex !important;
    align-items: stretch !important;
    flex-wrap: nowrap !important;
    overflow: hidden !important;
    border: 1px solid rgba(255, 255, 255, .18) !important;
    border-radius: 10px !important;
    background: rgba(255, 255, 255, .16) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04) !important;
}

.search-area .form-control,
body.dsf-appearance-ready .search-area .form-control,
body.dsf-appearance-ready.dsf-background-jiade .search-area .form-control {
    min-width: 0 !important;
    height: 100% !important;
    flex: 1 1 auto !important;
    padding: 0 18px 0 20px !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.search-area .form-control::placeholder,
body.dsf-appearance-ready.dsf-background-jiade .search-area .form-control::placeholder {
    color: rgba(255, 255, 255, .78) !important;
}

.search-area .input-group-text,
body.dsf-appearance-ready .search-area .input-group-text,
body.dsf-appearance-ready.dsf-background-jiade .search-area .input-group-text {
    width: 64px !important;
    height: 100% !important;
    flex: 0 0 64px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    color: #fff !important;
    border: 0 !important;
    border-left: 1px solid rgba(255, 255, 255, .14) !important;
    background: rgba(255, 255, 255, .08) !important;
}

.search-area .input-group-text i {
    font-size: 23px !important;
    line-height: 1 !important;
}

.header-profile {
    flex: 0 1 250px !important;
    min-width: 0 !important;
}

.header-profile > a.nav-link {
    min-width: 0 !important;
}

.header-profile .header-info {
    min-width: 0 !important;
}

.header .header-info span,
.header .header-info small {
    max-width: 190px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.dsf-logout-button {
    flex: 0 0 auto !important;
    min-width: 154px !important;
    max-width: 176px !important;
    height: 52px !important;
    padding: 0 16px !important;
    border-radius: 10px !important;
}

.dsf-logout-button span {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.dlabnav .metismenu > li > a.has-arrow {
    padding-right: 36px !important;
}

.dlabnav .metismenu > li > a.has-arrow::after {
    right: 14px !important;
}

.dlabnav .metismenu > li > a .nav-text {
    min-width: 0 !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover::after,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within::after,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open::after,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover::after,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within::after,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open::after,
body.dsf-appearance-ready .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open::after {
    position: fixed !important;
    top: var(--dsf-flyout-bridge-top, 0) !important;
    left: var(--dsf-flyout-bridge-left, var(--dsf-sidebar)) !important;
    width: 14px !important;
    height: var(--dsf-flyout-bridge-height, 220px) !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse,
body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:hover > ul.mm-collapse,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children:focus-within > ul.mm-collapse,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse,
body.dsf-appearance-ready.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse,
body.dsf-appearance-ready.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse {
    position: fixed !important;
    top: var(--dsf-flyout-top, 92px) !important;
    left: var(--dsf-flyout-left, calc(var(--dsf-sidebar) + 12px)) !important;
    width: min(286px, calc(100vw - var(--dsf-sidebar) - 28px)) !important;
    max-height: var(--dsf-flyout-max-height, calc(100vh - 24px)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}

@media (max-width: 1599px) {
    .header .header-left {
        max-width: 330px !important;
    }

    .dsf-search-nav-item {
        max-width: 380px !important;
    }

    .header .header-info span,
    .header .header-info small {
        max-width: 160px !important;
    }
}

@media (max-width: 1399px) {
    .dsf-campaign-status {
        padding: 0 12px !important;
    }

    .dsf-search-nav-item {
        flex-basis: 300px !important;
        max-width: 330px !important;
    }

    .dsf-logout-button {
        min-width: 52px !important;
        width: 52px !important;
        padding: 0 !important;
    }

    .dsf-logout-button span {
        display: none !important;
    }
}

@media (max-width: 1199px) {
    .dsf-search-nav-item {
        flex-basis: 260px !important;
        max-width: 300px !important;
    }
}

@media (max-width: 767px) {
    .dsf-search-nav-item,
    .search-area,
    body.dsf-appearance-ready .search-area {
        display: none !important;
    }
}

/* Dedicated global search: one polished control, no split button effect. */
.header .search-area.dsf-global-search,
body.dsf-appearance-ready .header .search-area.dsf-global-search,
body.dsf-appearance-ready.dsf-background-jiade .header .search-area.dsf-global-search {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 56px !important;
    display: flex !important;
    align-items: center !important;
    overflow: hidden !important;
    border: 1px solid rgba(255, 255, 255, .22) !important;
    border-radius: 10px !important;
    background: rgba(255, 255, 255, .14) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), 0 12px 28px rgba(16, 24, 40, .08) !important;
}

.header .search-area.dsf-global-search::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .11));
    pointer-events: none;
}

.header .search-area.dsf-global-search .form-control,
body.dsf-appearance-ready .header .search-area.dsf-global-search .form-control,
body.dsf-appearance-ready.dsf-background-jiade .header .search-area.dsf-global-search .form-control,
.header .input-group.search-area.dsf-global-search > .form-control {
    position: relative !important;
    z-index: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    flex: 1 1 auto !important;
    margin: 0 !important;
    padding: 0 66px 0 20px !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: transparent !important;
    box-shadow: none !important;
}

.header .search-area.dsf-global-search .form-control::placeholder,
body.dsf-appearance-ready .header .search-area.dsf-global-search .form-control::placeholder,
body.dsf-appearance-ready.dsf-background-jiade .header .search-area.dsf-global-search .form-control::placeholder {
    color: rgba(255, 255, 255, .78) !important;
}

.header .search-area.dsf-global-search .input-group-text,
body.dsf-appearance-ready .header .search-area.dsf-global-search .input-group-text,
body.dsf-appearance-ready.dsf-background-jiade .header .search-area.dsf-global-search .input-group-text,
.header .input-group.search-area.dsf-global-search > .input-group-text {
    position: absolute !important;
    z-index: 2 !important;
    top: 50% !important;
    right: 8px !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
}

.header .search-area.dsf-global-search .input-group-text i {
    font-size: 24px !important;
    line-height: 1 !important;
}

/* Notes DSF catalogue: table-first layout inspired by the legacy DSF screen. */
.dsf-notes-toolbar .card-body {
    padding: 14px;
}

.dsf-notes-board {
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.dsf-auth-preview {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px;
    border: 1px solid #b7e5dd;
    border-radius: 8px;
    background: #f3fbf9;
    color: #12344c;
}

.dsf-auth-preview i {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #dff5f1;
    color: #0f766e;
}

.dsf-auth-preview strong,
.dsf-auth-preview span {
    display: block;
}

.dsf-auth-preview span {
    margin-top: 2px;
    color: #667085;
}

.dsf-profile-edit-card {
    border: 1px solid #d8e2ee;
    border-radius: 8px;
    box-shadow: 0 18px 48px rgba(15, 45, 68, .08);
}

.dsf-profile-edit-head {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    padding: 24px;
}

.dsf-profile-edit-avatar {
    width: 58px;
    height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: #fff;
    font-weight: 900;
    background: linear-gradient(135deg, #0f766e, #302bb1);
    box-shadow: 0 12px 30px rgba(48, 43, 177, .22);
}

.dsf-mfa-page .dsf-login-hero {
    background:
        radial-gradient(circle at 18% 22%, rgba(255, 255, 255, .18), transparent 22%),
        linear-gradient(135deg, #14324a 0%, #302bb1 55%, #0f766e 100%);
}

.dsf-mfa-code-box {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
    padding: 14px 16px;
    border: 1px solid #b7e5dd;
    border-radius: 8px;
    background: #f3fbf9;
}

.dsf-mfa-code-box > i {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    border-radius: 8px;
    background: #ddf5f0;
    color: #0f766e;
}

.dsf-mfa-code-box span {
    display: block;
    color: #667085;
    font-weight: 700;
}

.dsf-mfa-code-box strong {
    display: block;
    margin-top: 3px;
    font-size: 18px;
    color: #14324a;
}

.dsf-mfa-code-box small {
    display: block;
    margin-top: 4px;
    color: #667085;
    font-weight: 700;
}

.dsf-mfa-resend-form {
    margin-top: 14px;
}

.dsf-login-secondary-link {
    display: inline-flex;
    align-items: center;
    padding: 0;
    border: 0;
    background: transparent;
    margin-top: 16px;
    color: #14324a;
    font-weight: 800;
}

.dsf-login-secondary-link:hover {
    color: #302bb1;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children::after,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children::after {
    top: var(--dsf-flyout-bridge-top, 0) !important;
    left: var(--dsf-flyout-bridge-left, 100%) !important;
    width: 28px !important;
    height: var(--dsf-flyout-bridge-height, 240px) !important;
}

body.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse,
body.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse,
body.dsf-appearance-ready.dsf-sidebar-compact .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse,
body.dsf-appearance-ready.dsf-sidebar-mini .dlabnav .metismenu > li.dsf-has-children.dsf-flyout-open > ul.mm-collapse {
    position: fixed !important;
    top: var(--dsf-flyout-top, 92px) !important;
    left: var(--dsf-flyout-left, 108px) !important;
    max-height: var(--dsf-flyout-max-height, calc(100vh - 24px)) !important;
    overflow-y: auto !important;
}

.header .search-area.dsf-global-search .input-group-text,
.header .input-group.search-area.dsf-global-search > .input-group-text {
    background: rgba(255, 255, 255, .14) !important;
}

@media (max-width: 991px) {
    .dsf-profile-edit-head {
        align-items: flex-start;
        flex-direction: column;
    }
}

.dsf-notes-side {
    display: grid;
    gap: 14px;
}

.dsf-notes-side-card {
    overflow: hidden;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(15, 45, 68, .05);
}

.dsf-notes-side-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 52px;
    padding: 12px 14px;
    border-bottom: 1px solid #eef2f6;
}

.dsf-notes-side-head h4 {
    margin: 0;
    color: var(--dsf-navy);
    font-size: 17px;
    font-weight: 900;
}

.dsf-notes-side-head span {
    display: inline-flex;
    min-width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    border-radius: 8px;
    background: #e7f6f3;
    color: var(--dsf-teal);
    font-size: 12px;
    font-weight: 900;
}

.dsf-notes-family-list {
    display: grid;
}

.dsf-notes-family {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 50px;
    padding: 10px 14px;
    color: #344054;
    border-left: 3px solid transparent;
    border-bottom: 1px solid #f0f3f7;
    font-weight: 800;
    transition: background .16s ease, border-color .16s ease, color .16s ease;
}

.dsf-notes-family:last-child {
    border-bottom: 0;
}

.dsf-notes-family i {
    color: #7b8798;
    font-size: 15px;
    text-align: center;
}

.dsf-notes-family span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dsf-notes-family strong {
    display: inline-flex;
    min-width: 26px;
    height: 22px;
    align-items: center;
    justify-content: center;
    padding: 0 7px;
    border-radius: 7px;
    background: #e8f2fb;
    color: var(--dsf-navy);
    font-size: 11px;
    font-weight: 900;
}

.dsf-notes-family:hover,
.dsf-notes-family.active {
    color: var(--dsf-navy);
    border-left-color: var(--appearance-primary-color, #2f5eea);
    background: #f6fbff;
}

.dsf-notes-family:hover i,
.dsf-notes-family.active i {
    color: var(--appearance-primary-color, #2f5eea);
}

.dsf-notes-context {
    padding: 14px;
    color: #667085;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.45;
}

.dsf-notes-context strong,
.dsf-notes-context small {
    display: block;
}

.dsf-notes-context strong {
    color: var(--dsf-navy);
    font-size: 14px;
}

.dsf-notes-table-card {
    overflow: hidden;
    border-radius: 8px;
}

.dsf-notes-table {
    table-layout: fixed;
}

.dsf-notes-table thead th {
    padding: 15px 16px !important;
    color: #fff !important;
    background: #203f70 !important;
    border-color: rgba(255, 255, 255, .18) !important;
    font-size: 14px !important;
    font-weight: 900 !important;
}

.dsf-notes-table thead th:nth-child(1) {
    width: 42%;
}

.dsf-notes-table thead th:nth-child(2) {
    width: 16%;
}

.dsf-notes-table thead th:nth-child(3),
.dsf-notes-table thead th:nth-child(4) {
    width: 14%;
}

.dsf-notes-table thead th:nth-child(5) {
    width: 14%;
}

.dsf-notes-table tbody td {
    padding: 14px 16px !important;
    vertical-align: middle;
}

.dsf-note-title-cell {
    display: grid;
    gap: 3px;
}

.dsf-note-title-cell strong {
    color: var(--dsf-ink);
    font-size: 14px;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-note-title-cell small,
.dsf-note-title-cell span {
    color: #667085;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}

.dsf-note-reference {
    color: #1976c9;
    font-weight: 900;
}

.dsf-note-status {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    padding: 5px 9px;
    border-radius: 999px;
    background: #eef7fb;
    color: var(--dsf-navy);
    font-size: 12px;
    font-weight: 900;
}

.dsf-note-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
}

.dsf-note-action {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #d9e3ee;
    border-radius: 8px;
    background: #fff;
    color: var(--dsf-navy);
    font-size: 15px;
    transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.dsf-note-action:hover {
    color: #fff;
    border-color: var(--appearance-primary-color, #2f5eea);
    background: var(--appearance-primary-color, #2f5eea);
    transform: translateY(-1px);
}

.dsf-note-action.pdf:hover {
    border-color: #c0261d;
    background: #c0261d;
}

.dsf-note-action.xml:hover {
    border-color: #0f766e;
    background: #0f766e;
}

.dsf-note-action.edit:hover {
    border-color: #bf7a14;
    background: #bf7a14;
}

.dsf-note-action.disabled,
.dsf-note-action.disabled:hover {
    cursor: not-allowed;
    color: #98a2b3;
    border-color: #e7edf4;
    background: #f4f7fa;
    transform: none;
}

@media (max-width: 1199px) {
    .dsf-notes-board {
        grid-template-columns: 1fr;
    }

    .dsf-notes-family-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .dsf-notes-family-list {
        grid-template-columns: 1fr;
    }

    .dsf-notes-table {
        min-width: 860px;
    }
}

/* Impression continue: background PDF bundle generation. */
.dsf-print-intro {
    overflow: hidden;
    border-radius: 8px;
}

.dsf-print-intro .card-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.dsf-print-intro h4 {
    color: var(--dsf-ink);
    font-size: 24px;
    font-weight: 900;
}

.dsf-print-intro p {
    color: #667085;
    font-weight: 700;
}

.dsf-print-intro-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}

.dsf-print-intro-meta span {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #eef7fb;
    color: var(--dsf-navy);
    font-size: 12px;
    font-weight: 900;
}

.dsf-print-card {
    border-radius: 8px;
    overflow: hidden;
}

.dsf-print-toolbar {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto auto;
    gap: 10px;
    margin-bottom: 16px;
}

.dsf-print-groups {
    display: grid;
    gap: 14px;
}

.dsf-print-group {
    overflow: hidden;
    border: 1px solid var(--dsf-line);
    border-radius: 8px;
    background: #fff;
}

.dsf-print-group-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
    background: #f7fafc;
    border-bottom: 1px solid #e8eef5;
}

.dsf-print-group-head h5 {
    margin: 0;
    color: var(--dsf-navy);
    font-size: 16px;
    font-weight: 900;
}

.dsf-print-group-head p {
    margin: 4px 0 0;
    color: #667085;
    font-size: 12px;
    font-weight: 700;
}

.dsf-print-switch {
    margin: 0;
    cursor: pointer;
}

.dsf-print-switch input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.dsf-print-switch span {
    width: 46px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    padding: 3px;
    border-radius: 999px;
    background: #d9e4ef;
    transition: background .16s ease;
}

.dsf-print-switch span::before {
    content: "";
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 7px rgba(15, 45, 68, .18);
    transition: transform .16s ease;
}

.dsf-print-switch input:checked + span {
    background: var(--appearance-primary-color, #2f5eea);
}

.dsf-print-switch input:checked + span::before {
    transform: translateX(20px);
}

.dsf-print-list {
    display: grid;
}

.dsf-print-row {
    display: grid;
    grid-template-columns: 34px 90px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    min-height: 46px;
    margin: 0;
    padding: 10px 16px;
    border-bottom: 1px solid #eef2f6;
    color: var(--dsf-ink);
    cursor: pointer;
    transition: background .14s ease;
}

.dsf-print-row:last-child {
    border-bottom: 0;
}

.dsf-print-row:hover {
    background: #f7fbff;
}

.dsf-print-row input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.dsf-print-row-check {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #cfd9e6;
    border-radius: 7px;
    color: transparent;
    background: #fff;
    transition: background .14s ease, color .14s ease, border-color .14s ease;
}

.dsf-print-row input:checked + .dsf-print-row-check {
    color: #fff;
    border-color: var(--appearance-primary-color, #2f5eea);
    background: var(--appearance-primary-color, #2f5eea);
}

.dsf-print-row-ref {
    color: #1d4f7a;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-print-row-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 800;
}

.dsf-print-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    background: #fff;
}

.dsf-print-footer p {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #667085;
    font-size: 12px;
    font-weight: 800;
}

.dsf-print-status-card,
.dsf-print-history {
    border-radius: 8px;
    overflow: hidden;
}

.dsf-print-status-card .card-body {
    text-align: center;
}

.dsf-print-status-icon {
    width: 72px;
    height: 72px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    border-radius: 18px;
    background: #e8f6f3;
    color: var(--dsf-teal);
    font-size: 28px;
}

.dsf-print-status-icon.is-running i {
    animation: dsf-print-spin 1s linear infinite;
}

.dsf-print-status-icon.is-failed {
    background: #fff1f0;
    color: #c0261d;
}

.dsf-print-status-card h5 {
    color: var(--dsf-ink);
    font-size: 19px;
    font-weight: 900;
}

.dsf-print-status-card p {
    min-height: 22px;
    color: #667085;
    font-weight: 700;
}

.dsf-print-history-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 16px;
    border-top: 1px solid #eef2f6;
}

.dsf-print-history-row strong,
.dsf-print-history-row span {
    display: block;
}

.dsf-print-history-row strong {
    color: var(--dsf-ink);
    font-size: 13px;
    font-weight: 900;
}

.dsf-print-history-row span {
    color: #667085;
    font-size: 12px;
    font-weight: 700;
}

.dsf-print-history-row a {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--appearance-primary-color, #2f5eea);
    color: #fff;
}

.dsf-print-history-status {
    display: inline-flex !important;
    min-height: 28px;
    align-items: center;
    padding: 5px 9px;
    border-radius: 999px;
    background: #edf2f7;
    color: var(--dsf-navy) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
}

.dsf-print-empty {
    padding: 16px;
    color: #667085;
    font-weight: 700;
}

@keyframes dsf-print-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 1199px) {
    .dsf-print-intro .card-body,
    .dsf-print-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .dsf-print-intro-meta {
        justify-content: flex-start;
    }
}

@media (max-width: 767px) {
    .dsf-print-toolbar {
        grid-template-columns: 1fr;
    }

    .dsf-print-row {
        grid-template-columns: 30px 76px minmax(0, 1fr);
        padding: 10px 12px;
    }
}


.dsf-formula-history-table {
    min-width: 1040px;
}

.dsf-formula-history-table td {
    vertical-align: middle;
}

.dsf-formula-version-details summary {
    min-width: 88px;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #cfd9e6;
    border-radius: 8px;
    color: var(--appearance-primary-color, #2f5eea);
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
}

.dsf-formula-version-details dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    min-width: 360px;
    margin: 10px 0 8px;
}

.dsf-formula-version-details dl div {
    padding: 8px;
    border-radius: 8px;
    background: #f4f8fb;
}

.dsf-formula-version-details dt {
    color: #667085;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-formula-version-details dd {
    margin: 2px 0 0;
    color: var(--dsf-ink);
    font-size: 12px;
    font-weight: 900;
}

.dsf-formula-version-details small {
    display: block;
    max-width: 460px;
    color: #667085;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}

.dsf-restore-version-button {
    min-height: 34px;
    border-radius: 8px;
    font-weight: 900;
    white-space: nowrap;
}
.dsf-audit-stats {
    margin-bottom: 22px;
}

.dsf-audit-stat-card {
    overflow: hidden;
    border: 1px solid #d8e3ee;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(20, 50, 74, 0.06);
}

.dsf-audit-stat-card .card-body {
    min-height: 118px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 24px;
}

.dsf-audit-stat-copy {
    min-width: 0;
}

.dsf-audit-stat-copy .dsf-section-kicker {
    display: block;
    margin-bottom: 8px;
    color: #1f5f8b;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.dsf-audit-stat-copy strong {
    display: block;
    color: var(--dsf-ink);
    font-size: 34px;
    font-weight: 900;
    line-height: 1;
}

.dsf-audit-stat-copy small {
    display: block;
    max-width: 220px;
    margin-top: 8px;
    color: #667085;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
}

.dsf-audit-stat-icon {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: #fff;
    font-size: 22px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.dsf-audit-stat-icon.is-primary {
    background: #14324a;
}

.dsf-audit-stat-icon.is-success {
    background: #0f766e;
}

.dsf-audit-stat-icon.is-danger {
    background: #b42318;
}

.dsf-audit-stat-icon.is-info {
    background: #1f5f8b;
}

.dsf-audit-panel {
    overflow: hidden;
    border: 1px solid #d8e3ee;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(20, 50, 74, 0.07);
}

.dsf-audit-panel > .card-body {
    padding: 26px 30px 22px;
}

.dsf-audit-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
    padding-bottom: 20px;
    border-bottom: 1px solid #e4ebf2;
}

.dsf-audit-heading h5 {
    margin-bottom: 6px;
    color: var(--dsf-ink);
    font-size: 26px;
    font-weight: 900;
    line-height: 1.15;
}

.dsf-audit-heading p {
    max-width: 760px;
    margin: 0;
    color: #667085;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
}

.dsf-audit-filters {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px;
    align-items: end;
}

.dsf-audit-filters .dsf-form-field {
    margin: 0;
}

.dsf-audit-search-field {
    grid-column: 1 / span 2;
}

.dsf-audit-field-module {
    grid-column: 3 / span 1;
}

.dsf-audit-field-event {
    grid-column: 4 / span 1;
}

.dsf-audit-field-actor {
    grid-column: 5 / span 2;
}

.dsf-audit-field-status {
    grid-column: 1 / span 1;
}

.dsf-audit-field-date-from {
    grid-column: 2 / span 1;
}

.dsf-audit-field-date-to {
    grid-column: 3 / span 1;
}

.dsf-audit-field-per-page {
    grid-column: 4 / span 1;
}

.dsf-audit-filter-actions {
    grid-column: 5 / span 2;
}

.dsf-audit-filters label {
    display: block;
    margin-bottom: 8px;
    color: #344054;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
}

.dsf-audit-filters input,
.dsf-audit-filters select {
    width: 100%;
    height: 50px;
    min-height: 50px;
    padding: 0 14px;
    border: 1px solid #d6e0ea;
    border-radius: 8px;
    background: #fff;
    color: var(--dsf-ink);
    font-weight: 700;
    box-shadow: none;
    outline: none;
}

.dsf-audit-filters input:focus,
.dsf-audit-filters select:focus {
    border-color: var(--appearance-primary-color, #2f5eea);
    box-shadow: 0 0 0 3px rgba(47, 94, 234, 0.12);
}

.dsf-search-control {
    position: relative;
    display: block;
}

.dsf-search-control input {
    padding-right: 62px;
}

.dsf-search-control button {
    width: 40px;
    height: 40px;
    position: absolute;
    top: 5px;
    right: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 8px;
    background: #14324a;
    color: #fff;
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    transition: transform 0.15s ease, background 0.15s ease;
}

.dsf-search-control button:hover,
.dsf-search-control button:focus-visible {
    background: var(--appearance-primary-color, #2f5eea);
    transform: translateY(-1px);
}

.dsf-audit-filter-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
}

.dsf-audit-filter-actions .btn {
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-weight: 900;
    white-space: nowrap;
}

.dsf-audit-table-wrap {
    overflow-x: auto;
    border-top: 1px solid #e4ebf2;
}

.dsf-audit-table {
    min-width: 1180px;
}

.dsf-audit-table thead th {
    padding: 17px 18px;
    background: #183e63;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
}

.dsf-audit-table tbody td {
    padding: 16px 18px;
    vertical-align: top;
    border-bottom: 1px solid #edf2f7;
}

.dsf-audit-table tbody tr:hover {
    background: #f8fbfd;
}

.dsf-audit-table td strong,
.dsf-audit-table td small {
    display: block;
}

.dsf-audit-table td strong {
    color: var(--dsf-ink);
    font-weight: 900;
}

.dsf-audit-table td small {
    margin-top: 4px;
    color: #667085;
    font-weight: 700;
}

.dsf-audit-pill {
    min-height: 25px;
    display: inline-flex;
    align-items: center;
    margin-top: 8px;
    padding: 4px 9px;
    border-radius: 999px;
    background: #eef5fb;
    color: #27526f;
    font-size: 11px;
    font-weight: 900;
}

.dsf-audit-details summary {
    min-width: 92px;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #cfd9e6;
    border-radius: 8px;
    color: var(--appearance-primary-color, #2f5eea);
    font-weight: 900;
    cursor: pointer;
}

.dsf-audit-details span {
    display: block;
    margin: 10px 0 5px;
    color: #344054;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-audit-details pre {
    max-width: 360px;
    max-height: 220px;
    margin: 0;
    padding: 10px;
    overflow: auto;
    border-radius: 8px;
    background: #101828;
    color: #e6f0ff;
    font-size: 11px;
    line-height: 1.45;
}

.dsf-audit-detail-list {
    display: grid;
    gap: 6px;
    margin: 7px 0 12px;
}

.dsf-audit-detail-list > div {
    display: grid;
    grid-template-columns: minmax(110px, .75fr) minmax(160px, 1.25fr);
    gap: 12px;
    align-items: start;
    padding: 9px 11px;
    border: 1px solid #e6ebf1;
    border-radius: 8px;
    background: #f8fafc;
}

.dsf-audit-detail-list dt,
.dsf-audit-detail-list dd {
    margin: 0;
    overflow-wrap: anywhere;
    font-size: 12px;
    line-height: 1.4;
}

.dsf-audit-detail-list dt {
    color: #667085;
    font-weight: 700;
}

.dsf-audit-detail-list dd {
    color: var(--dsf-ink);
    font-weight: 800;
}

.dsf-audit-detail-list dd.is-protected {
    color: var(--dsf-teal);
}

.dsf-audit-detail-list dd.is-protected i {
    margin-right: 5px;
}

.dsf-audit-pagination {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 14px 18px;
    background: #fff;
}

.dsf-control-table-wrap {
    max-height: 68vh;
}

.dsf-control-table {
    min-width: 1420px;
    font-size: 10px;
}

.dsf-control-table thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    padding: 9px 7px;
    border-color: #6bb7d5;
    background: #87ceeb !important;
    color: #fff !important;
    font-size: 10px;
    line-height: 1.2;
    text-align: center;
    vertical-align: middle;
}

.dsf-control-table tbody td {
    padding: 7px;
    border-color: #d7dee8;
    background: #fff;
    color: #172033;
    font-size: 10px;
    font-weight: 700;
    vertical-align: middle;
}

.dsf-control-table tbody tr.is-section td {
    background: #ccc !important;
    color: #172033;
    font-weight: 900;
}

.dsf-control-table .is-number,
.dsf-control-table .is-control,
.dsf-control-table .is-comment {
    text-align: right;
    white-space: nowrap;
}

.dsf-control-table .is-ok {
    color: #0e8850 !important;
}

.dsf-control-table .is-error {
    color: #903d33 !important;
}

.dsf-audit-pagination nav,
.dsf-audit-pagination .pagination {
    margin: 0;
}

.dsf-audit-pagination .pagination {
    display: flex;
    align-items: center;
    gap: 6px;
}

.dsf-audit-pagination .page-item,
.dsf-audit-pagination .page-link {
    list-style: none;
}

.dsf-audit-pagination .page-link {
    min-width: 34px;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #d6e0ea;
    border-radius: 8px;
    color: var(--dsf-ink);
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
}

.dsf-audit-pagination .page-link svg {
    width: 14px;
    height: 14px;
}

.dsf-audit-pagination .page-item.active .page-link {
    border-color: var(--appearance-primary-color, #2f5eea);
    background: var(--appearance-primary-color, #2f5eea);
    color: #fff;
}

.dsf-audit-pagination .page-item.disabled .page-link {
    opacity: 0.45;
}

@media (max-width: 1399px) {
    .dsf-audit-filters {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .dsf-audit-search-field,
    .dsf-audit-field-module,
    .dsf-audit-field-event,
    .dsf-audit-field-actor,
    .dsf-audit-field-status,
    .dsf-audit-field-date-from,
    .dsf-audit-field-date-to,
    .dsf-audit-field-per-page,
    .dsf-audit-filter-actions {
        grid-column: auto;
    }

    .dsf-audit-search-field,
    .dsf-audit-filter-actions {
        grid-column: span 3;
    }
}

@media (max-width: 991px) {
    .dsf-audit-filters {
        grid-template-columns: 1fr 1fr;
    }

    .dsf-audit-search-field,
    .dsf-audit-filter-actions {
        grid-column: span 2;
    }
}

@media (max-width: 575px) {
    .dsf-audit-panel > .card-body {
        padding: 20px 16px;
    }

    .dsf-audit-filters {
        grid-template-columns: 1fr;
    }

    .dsf-audit-search-field,
    .dsf-audit-filter-actions {
        grid-column: auto;
    }

    .dsf-audit-filter-actions {
        grid-template-columns: 1fr;
    }

    .dsf-audit-stat-card .card-body {
        padding: 18px;
    }
}
.dsf-complement-hero .card-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.dsf-complement-context {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.dsf-complement-context span {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #eef7f6;
    color: var(--dsf-navy, #13364d);
    font-weight: 900;
}

.dsf-complement-form .card {
    height: auto !important;
    min-height: 0 !important;
    border: 1px solid #d8e2ee;
    border-radius: 8px;
    box-shadow: 0 16px 36px rgba(20, 50, 74, .06);
}

.dsf-complement-layout > [class*="col-"] {
    align-self: start;
}

.dsf-complement-main,
.dsf-complement-aside {
    display: grid;
    align-content: start;
    gap: 14px;
}

.dsf-complement-main > .card,
.dsf-complement-aside > .card {
    margin-bottom: 0 !important;
}

.dsf-complement-form .card-header {
    min-height: 0;
    padding: 16px 18px 8px;
}

.dsf-complement-form .card-body {
    padding: 14px 18px 18px;
}

.dsf-complement-aside {
    position: sticky;
    top: 92px;
}

.dsf-complement-form .form-label {
    color: #344054;
    font-weight: 900;
}

.dsf-complement-form .form-control {
    min-height: 48px;
    border-color: #d5dfeb;
    border-radius: 8px;
    color: #101828;
    font-weight: 700;
}

.dsf-complement-form .form-control:focus {
    border-color: var(--appearance-primary-color, #2f5eea);
    box-shadow: 0 0 0 4px rgba(47, 94, 234, .12);
}

.dsf-complement-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.dsf-complement-side-card {
    position: static;
}

.dsf-complement-links {
    display: grid;
    gap: 10px;
}

.dsf-complement-links a {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border: 1px solid #d8e2ee;
    border-radius: 8px;
    color: #13293d;
    background: #fff;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.dsf-complement-links a:hover {
    border-color: #9edbd0;
    box-shadow: 0 14px 30px rgba(20, 50, 74, .08);
    transform: translateY(-1px);
}

.dsf-complement-links a > i:first-child {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #e7f6f3;
    color: var(--dsf-teal, #0f766e);
}

.dsf-complement-links strong,
.dsf-complement-links small {
    display: block;
    line-height: 1.25;
}

.dsf-complement-links small {
    color: #667085;
    font-weight: 800;
}

.dsf-complement-sticky-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

@media (max-width: 1199px) {
    .dsf-complement-aside,
    .dsf-complement-side-card {
        position: static;
    }
}

@media (max-width: 767px) {
    .dsf-complement-hero .card-body,
    .dsf-complement-context {
        align-items: stretch;
        flex-direction: column;
        justify-content: flex-start;
    }

    .dsf-complement-grid,
    .dsf-complement-sticky-actions {
        grid-template-columns: 1fr;
    }
}

.dsf-legacy-table-wrap {
    max-height: 760px;
}

.dsf-legacy-table {
    min-width: 1080px;
}

.dsf-legacy-table thead th {
    white-space: normal;
    line-height: 1.25;
}

.dsf-legacy-table tbody td:not(.dsf-legacy-label-cell) {
    white-space: nowrap;
}

.dsf-legacy-label-cell {
    min-width: 260px;
    white-space: normal;
}

.dsf-legacy-source {
    display: block;
    margin-top: 4px;
    color: #7a8798;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.25;
}

/* Final DSF context, search and notes catalogue polish. */
.header form.search-area.dsf-global-search {
    isolation: isolate;
}

.header .search-area.dsf-global-search button.input-group-text,
body.dsf-appearance-ready .header .search-area.dsf-global-search button.input-group-text,
body.dsf-appearance-ready.dsf-background-jiade .header .search-area.dsf-global-search button.input-group-text {
    pointer-events: auto !important;
    cursor: pointer !important;
    background: rgba(255, 255, 255, .18) !important;
    border: 1px solid rgba(255, 255, 255, .18) !important;
    color: #fff !important;
    transition: background .16s ease, box-shadow .16s ease, transform .16s ease !important;
}

.header .search-area.dsf-global-search button.input-group-text:hover,
.header .search-area.dsf-global-search button.input-group-text:focus-visible {
    background: rgba(255, 255, 255, .28) !important;
    box-shadow: 0 10px 22px rgba(15, 45, 68, .18) !important;
    outline: 0 !important;
    transform: translateY(-50%) scale(1.03) !important;
}

.header .search-area.dsf-global-search input[type="search"]::-webkit-search-cancel-button {
    display: none;
}

.dsf-context-card {
    border-color: #bfe4df !important;
    background: linear-gradient(180deg, #ffffff 0%, #f8fcfb 100%) !important;
}

.dsf-context-form {
    display: grid;
    gap: 12px;
}

.dsf-context-field {
    display: grid;
    gap: 6px;
}

.dsf-context-field label {
    margin: 0;
    color: #344054;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.dsf-context-field .form-select {
    min-height: 44px;
    border: 1px solid #d4dfeb;
    border-radius: 8px;
    color: #13293d;
    font-weight: 800;
    background-color: #fff;
}

.dsf-notes-board {
    grid-template-columns: minmax(280px, 320px) minmax(0, 1fr) !important;
    gap: 22px !important;
}

.dsf-notes-table-card {
    overflow: visible !important;
}

.dsf-notes-table-card .table-responsive {
    overflow-x: auto;
    overflow-y: visible;
}

.dsf-notes-table {
    min-width: 1060px !important;
}

.dsf-notes-table thead th {
    padding: 18px 22px !important;
    vertical-align: middle !important;
}

.dsf-notes-table tbody td {
    padding: 20px 22px !important;
    vertical-align: middle !important;
}

.dsf-note-title-cell {
    min-height: 70px;
    display: grid;
    align-content: center;
    gap: 6px;
}

.dsf-note-row-spaced .dsf-note-title-cell {
    min-height: 92px;
}

.dsf-note-title-cell strong {
    color: #061b35;
    font-weight: 900;
    letter-spacing: 0;
}

.dsf-note-title-cell small {
    color: #667085;
    font-weight: 800;
}

.dsf-note-title-cell span {
    max-width: 560px;
    color: #58677d;
    font-weight: 700;
    line-height: 1.45;
}

.dsf-note-reference {
    color: #0f66bf;
    font-weight: 900;
}

.dsf-note-status {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    border-radius: 999px;
    background: #eef7fb;
    color: #12344c;
    font-weight: 900;
    white-space: nowrap;
}

.dsf-note-actions {
    min-width: 198px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 9px;
    flex-wrap: nowrap;
}

.dsf-note-action {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid #cad8e8 !important;
    border-radius: 10px !important;
    background: #ffffff !important;
    color: #12344c !important;
    box-shadow: 0 8px 18px rgba(15, 45, 68, .05) !important;
    transition: color .16s ease, background .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease !important;
}

.dsf-note-action i {
    font-size: 16px;
    line-height: 1;
}

.dsf-note-action:hover,
.dsf-note-action:focus-visible {
    color: #ffffff !important;
    border-color: #14324a !important;
    background: #14324a !important;
    box-shadow: 0 14px 28px rgba(20, 50, 74, .18) !important;
    transform: translateY(-1px);
}

.dsf-note-action-pdf:hover,
.dsf-note-action-pdf:focus-visible {
    border-color: #c6281d !important;
    background: #c6281d !important;
}

.dsf-note-action-xml:hover,
.dsf-note-action-xml:focus-visible {
    border-color: #0f766e !important;
    background: #0f766e !important;
}

.dsf-note-action-edit:hover,
.dsf-note-action-edit:focus-visible {
    border-color: #2f5eea !important;
    background: #2f5eea !important;
}

.dsf-note-action.disabled,
.dsf-note-action.disabled:hover,
.dsf-note-action.disabled:focus-visible {
    opacity: .42 !important;
    cursor: not-allowed !important;
    color: #8a96a8 !important;
    background: #f6f8fb !important;
    border-color: #d8e2ee !important;
    box-shadow: none !important;
    transform: none !important;
}

@media (max-width: 1199px) {
    .dsf-notes-board {
        grid-template-columns: 1fr !important;
    }

    .dsf-notes-side {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }
}

@media (max-width: 767px) {
    .dsf-notes-side {
        grid-template-columns: 1fr;
    }

    .dsf-notes-table {
        min-width: 920px !important;
    }
}

/* Notes DSF table correction: fit the desktop container, no clipped first column. */
@media (min-width: 992px) {
    .dsf-notes-table-card .table-responsive {
        display: block !important;
        width: 100% !important;
        overflow-x: visible !important;
    }

    .dsf-notes-table {
        width: 100% !important;
        min-width: 0 !important;
        table-layout: fixed !important;
    }

    .dsf-notes-table thead th:nth-child(1),
    .dsf-notes-table tbody td:nth-child(1) {
        width: 40% !important;
    }

    .dsf-notes-table thead th:nth-child(2),
    .dsf-notes-table tbody td:nth-child(2) {
        width: 15% !important;
    }

    .dsf-notes-table thead th:nth-child(3),
    .dsf-notes-table tbody td:nth-child(3) {
        width: 10% !important;
    }

    .dsf-notes-table thead th:nth-child(4),
    .dsf-notes-table tbody td:nth-child(4) {
        width: 15% !important;
    }

    .dsf-notes-table thead th:nth-child(5),
    .dsf-notes-table tbody td:nth-child(5) {
        width: 20% !important;
    }

    .dsf-notes-table thead th,
    .dsf-notes-table tbody td {
        overflow: visible !important;
    }

    .dsf-note-actions {
        min-width: 0 !important;
        gap: 7px !important;
    }

    .dsf-note-action {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        border-radius: 9px !important;
    }
}

.dsf-notes-table-card .card-header {
    padding: 22px 26px !important;
}

.dsf-notes-table tbody tr {
    background: #fff;
}

.dsf-notes-table tbody tr + tr td {
    border-top: 1px solid #e4ebf3 !important;
}

.dsf-notes-table tbody td:first-child,
.dsf-notes-table thead th:first-child {
    padding-left: 26px !important;
}

.dsf-notes-table tbody td:last-child,
.dsf-notes-table thead th:last-child {
    padding-right: 26px !important;
}

.dsf-note-title-cell strong,
.dsf-note-title-cell small,
.dsf-note-title-cell span {
    overflow-wrap: anywhere;
}

@media (max-width: 991px) {
    .dsf-notes-table-card .table-responsive {
        overflow-x: auto !important;
    }

    .dsf-notes-table {
        min-width: 920px !important;
    }
}

/* Notes DSF table spacing: keep status separated from action buttons. */
@media (min-width: 992px) {
    .dsf-notes-table thead th:nth-child(1),
    .dsf-notes-table tbody td:nth-child(1) {
        width: 38% !important;
    }

    .dsf-notes-table thead th:nth-child(2),
    .dsf-notes-table tbody td:nth-child(2) {
        width: 15% !important;
    }

    .dsf-notes-table thead th:nth-child(3),
    .dsf-notes-table tbody td:nth-child(3) {
        width: 9% !important;
    }

    .dsf-notes-table thead th:nth-child(4),
    .dsf-notes-table tbody td:nth-child(4) {
        width: 16% !important;
        padding-right: 16px !important;
    }

    .dsf-notes-table thead th:nth-child(5),
    .dsf-notes-table tbody td:nth-child(5) {
        width: 22% !important;
        padding-left: 16px !important;
    }

    .dsf-note-status {
        max-width: 100% !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        padding-inline: 14px !important;
    }

    .dsf-note-actions {
        justify-content: flex-end !important;
        padding-left: 4px !important;
    }
}

/* DSF context card: explicit active context and pending selection. */
.dsf-context-statuses {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.dsf-context-status {
    display: grid;
    gap: 3px;
    padding: 12px 14px;
    border: 1px solid #d7e5ef;
    border-radius: 10px;
    background: #ffffff;
}

.dsf-context-status span {
    color: #667085;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.dsf-context-status strong {
    color: #08233f;
    font-size: 15px;
    font-weight: 900;
    line-height: 1.25;
}

.dsf-context-status small {
    color: #5b6b82;
    font-weight: 800;
}

.dsf-context-status.is-active {
    background: #f7fafc;
}

.dsf-context-status.is-pending {
    border-color: #9edbd0;
    background: #edf9f6;
    box-shadow: 0 10px 22px rgba(15, 118, 110, .08);
}

.dsf-context-status.is-pending span {
    color: #0f766e;
}

/* DSF context card padding correction. */
.dsf-context-card {
    overflow: hidden;
}

.dsf-context-card .dsf-notes-side-head,
.dsf-context-card .dsf-context-form,
.dsf-context-card .dsf-context-statuses,
.dsf-context-card > .dsf-notes-context {
    padding-left: 20px !important;
    padding-right: 20px !important;
}

.dsf-context-card .dsf-notes-side-head {
    padding-top: 18px !important;
    padding-bottom: 16px !important;
}

.dsf-context-card .dsf-context-form {
    padding-top: 16px !important;
    padding-bottom: 18px !important;
}

.dsf-context-card .dsf-context-statuses {
    padding-bottom: 20px !important;
}

.dsf-context-card .dsf-context-field label {
    padding-left: 0 !important;
}

/* Interlocuteur note assignment: searchable DSF category tree. */
.dsf-note-assignment-card .card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.dsf-note-assignment-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 12px;
    border-radius: 999px;
    background: #e8f6f3;
    color: #0f766e;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.dsf-note-assignment-tree {
    display: grid;
    gap: 14px;
}

.dsf-note-assignment-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 12px;
    border: 1px solid #d7e5ef;
    border-radius: 12px;
    background: #f7fafc;
}

.dsf-note-assignment-search {
    position: relative;
    display: block;
    margin: 0;
}

.dsf-note-assignment-search i {
    position: absolute;
    top: 50%;
    left: 15px;
    z-index: 2;
    color: #7a8a9e;
    transform: translateY(-50%);
}

.dsf-note-assignment-search .form-control {
    min-height: 48px;
    padding-left: 44px;
    border: 1px solid #cddbea;
    border-radius: 10px;
    background: #ffffff;
    color: #08233f;
    font-weight: 800;
}

.dsf-note-assignment-clear,
.dsf-note-category-tools button {
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid #cad8e8;
    border-radius: 10px;
    background: #ffffff;
    color: #14324a;
    font-size: 12px;
    font-weight: 900;
    transition: background .16s ease, color .16s ease, border-color .16s ease;
}

.dsf-note-assignment-clear:hover,
.dsf-note-category-tools button:hover {
    border-color: #14324a;
    background: #14324a;
    color: #ffffff;
}

.dsf-note-assignment-categories {
    display: grid;
    gap: 12px;
    max-height: 760px;
    overflow: auto;
    padding-right: 4px;
}

.dsf-note-category {
    overflow: hidden;
    border: 1px solid #d7e5ef;
    border-radius: 12px;
    background: #ffffff;
}

.dsf-note-category.has-selection {
    border-color: #9edbd0;
    box-shadow: 0 12px 24px rgba(15, 118, 110, .08);
}

.dsf-note-category-head {
    width: 100%;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto 18px;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 0;
    background: #f6f9fc;
    color: #08233f;
    text-align: left;
}

.dsf-note-category-head:hover {
    background: #eef6fd;
}

.dsf-note-category-icon {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    background: #e8f6f3;
    color: #0f766e;
}

.dsf-note-category-head strong {
    display: block;
    color: #08233f;
    font-size: 15px;
    font-weight: 900;
    line-height: 1.25;
}

.dsf-note-category-head small,
.dsf-note-category-head em {
    color: #667085;
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
}

.dsf-note-category-head > .fa-chevron-down {
    color: #7a8a9e;
    transition: transform .16s ease;
}

.dsf-note-category.is-collapsed .dsf-note-category-body {
    display: none;
}

.dsf-note-category.is-collapsed .dsf-note-category-head > .fa-chevron-down {
    transform: rotate(-90deg);
}

.dsf-note-category-body {
    display: grid;
    gap: 10px;
    padding: 12px;
}

.dsf-note-category-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.dsf-note-assignment-rows {
    display: grid;
    gap: 8px;
}

.dsf-note-assignment-row {
    display: grid;
    grid-template-columns: 24px 82px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    min-height: 72px;
    margin: 0;
    padding: 12px;
    border: 1px solid #e1e9f2;
    border-radius: 11px;
    background: #ffffff;
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

.dsf-note-assignment-row:hover,
.dsf-note-assignment-row.is-search-hit {
    border-color: #9edbd0;
    background: #f3fbf9;
}

.dsf-note-assignment-row input {
    width: 20px;
    height: 20px;
    accent-color: #1f78d1;
}

.dsf-note-assignment-ref,
.dsf-note-assignment-label {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.dsf-note-assignment-ref strong {
    color: #0f66bf;
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
}

.dsf-note-assignment-ref small,
.dsf-note-assignment-label small {
    color: #667085;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.35;
}

.dsf-note-assignment-label b {
    color: #08233f;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.35;
}

.dsf-note-assignment-type {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 10px;
    border-radius: 999px;
    background: #eef6fd;
    color: #0b5f89;
    font-size: 11px;
    font-weight: 900;
    white-space: nowrap;
}

.dsf-note-assignment-empty {
    padding: 16px;
    border: 1px dashed #cddbea;
    border-radius: 12px;
    background: #ffffff;
    color: #667085;
    font-weight: 800;
    text-align: center;
}

@media (max-width: 575px) {
    .dsf-note-assignment-card .card-header,
    .dsf-note-assignment-toolbar {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .dsf-note-assignment-card .card-header {
        display: grid;
    }

    .dsf-note-category-head {
        grid-template-columns: 38px minmax(0, 1fr) 16px;
    }

    .dsf-note-category-head em {
        grid-column: 2 / 3;
    }

    .dsf-note-assignment-row {
        grid-template-columns: 24px minmax(0, 1fr);
    }

    .dsf-note-assignment-ref,
    .dsf-note-assignment-type {
        grid-column: 2 / 3;
        justify-self: flex-start;
    }
}

/* Notes DSF compact listing: simple labels, no secondary reference column. */
.dsf-notes-table {
    width: 100% !important;
    table-layout: fixed !important;
}

.dsf-notes-table thead th {
    white-space: nowrap !important;
}

.dsf-notes-table tbody td {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
}

.dsf-note-title-cell {
    min-height: 0 !important;
    gap: 0 !important;
    align-content: center !important;
}

.dsf-note-row-spaced .dsf-note-title-cell {
    min-height: 44px !important;
}

.dsf-note-title-cell strong {
    max-width: 100% !important;
    display: inline-block !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
    text-transform: none !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.dsf-note-title-cell small,
.dsf-note-title-cell span,
.dsf-note-reference {
    display: none !important;
}

.dsf-note-status {
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.dsf-note-actions {
    min-width: 0 !important;
    gap: 10px !important;
    justify-content: flex-end !important;
}

@media (min-width: 992px) {
    .dsf-notes-table thead th:nth-child(1),
    .dsf-notes-table tbody td:nth-child(1) {
        width: 46% !important;
    }

    .dsf-notes-table thead th:nth-child(2),
    .dsf-notes-table tbody td:nth-child(2) {
        width: 13% !important;
    }

    .dsf-notes-table thead th:nth-child(3),
    .dsf-notes-table tbody td:nth-child(3) {
        width: 17% !important;
        padding-right: 24px !important;
    }

    .dsf-notes-table thead th:nth-child(4),
    .dsf-notes-table tbody td:nth-child(4) {
        width: 24% !important;
        padding-left: 24px !important;
    }
}

@media (max-width: 991px) {
    .dsf-notes-table {
        min-width: 720px !important;
    }
}

/* Interlocuteur notes: clean category tree, no card-like rows or overlapping text. */
.dsf-note-assignment-tree-card .card-body {
    padding-top: 18px !important;
}

.dsf-note-assignment-tree.is-compact {
    gap: 14px !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-assignment-toolbar {
    grid-template-columns: minmax(0, 1fr) auto !important;
    padding: 10px !important;
    border-radius: 10px !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-assignment-categories {
    max-height: 72vh !important;
    gap: 10px !important;
    padding-right: 6px !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-category {
    display: block !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 1px solid #d7e5ef !important;
    border-radius: 10px !important;
    background: #fff !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-category.has-selection {
    border-color: #8bd0c5 !important;
    box-shadow: 0 10px 22px rgba(15, 118, 110, .08) !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-category-head {
    min-height: 54px !important;
    grid-template-columns: 34px minmax(0, 1fr) auto 16px !important;
    padding: 10px 12px !important;
    gap: 10px !important;
    border-radius: 10px 10px 0 0 !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-category-icon {
    width: 34px !important;
    height: 34px !important;
    border-radius: 9px !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-category-title {
    min-width: 0 !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-category-title strong {
    font-size: 14px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-category-head em {
    padding: 5px 9px !important;
    border-radius: 999px !important;
    background: #eef7fb !important;
    color: #12344c !important;
    white-space: nowrap !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-category-body {
    gap: 8px !important;
    padding: 10px 12px 12px !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-category-tools {
    justify-content: flex-end !important;
    padding-bottom: 2px !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-category-tools button,
.dsf-note-assignment-tree.is-compact .dsf-note-assignment-clear {
    min-height: 34px !important;
    padding: 0 12px !important;
    border-radius: 8px !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-assignment-rows {
    gap: 0 !important;
    border: 1px solid #e6edf5 !important;
    border-radius: 9px !important;
    overflow: hidden !important;
    background: #fff !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-assignment-row {
    min-height: 46px !important;
    grid-template-columns: 24px minmax(0, 1fr) auto !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 9px 11px !important;
    border: 0 !important;
    border-radius: 0 !important;
    border-bottom: 1px solid #e6edf5 !important;
    box-shadow: none !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-assignment-row:last-child {
    border-bottom: 0 !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-assignment-row:hover,
.dsf-note-assignment-tree.is-compact .dsf-note-assignment-row.is-search-hit {
    background: #f2fbf9 !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-assignment-row:has(input:checked) {
    background: #eef7ff !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-assignment-row input {
    width: 18px !important;
    height: 18px !important;
    margin: 0 !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-assignment-label {
    display: block !important;
    min-width: 0 !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-assignment-label b {
    display: block !important;
    max-width: 100% !important;
    color: #08233f !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.dsf-note-assignment-tree.is-compact .dsf-note-assignment-type {
    padding: 5px 8px !important;
    font-size: 10px !important;
    border-radius: 999px !important;
}

@media (max-width: 575px) {
    .dsf-note-assignment-tree.is-compact .dsf-note-category-head {
        grid-template-columns: 32px minmax(0, 1fr) 16px !important;
    }

    .dsf-note-assignment-tree.is-compact .dsf-note-category-head em {
        grid-column: 2 / 3 !important;
        justify-self: flex-start !important;
    }

    .dsf-note-assignment-tree.is-compact .dsf-note-assignment-row {
        grid-template-columns: 24px minmax(0, 1fr) !important;
    }

    .dsf-note-assignment-tree.is-compact .dsf-note-assignment-type {
        grid-column: 2 / 3 !important;
        justify-self: flex-start !important;
    }
}

/* Interlocuteur notes: RBAC-style category tree. */
.dsf-note-assignment-tree.is-rbac {
    gap: 14px !important;
}

.dsf-note-assignment-tree.is-rbac .dsf-note-assignment-toolbar {
    grid-template-columns: minmax(0, 1fr) auto !important;
    padding: 10px !important;
    border-radius: 10px !important;
}

.dsf-note-rbac-tree .dsf-rbac-branches {
    max-height: 72vh !important;
    overflow: auto !important;
    padding-right: 8px !important;
}

.dsf-note-rbac-tree .dsf-rbac-node-module label {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

.dsf-note-rbac-tree .dsf-rbac-node-module label > span {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.dsf-note-rbac-tree .dsf-rbac-node-module small {
    white-space: nowrap !important;
}

.dsf-note-rbac-selected {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 28px !important;
    margin-left: auto !important;
    padding: 5px 10px !important;
    border-radius: 999px !important;
    background: #eef6fd !important;
    color: #14324a !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
}

.dsf-note-rbac-tree .dsf-rbac-group[hidden],
.dsf-note-rbac-tree .dsf-note-assignment-row[hidden] {
    display: none !important;
}

.dsf-note-rbac-tree .dsf-note-assignment-row {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center !important;
    gap: 12px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 6px 10px !important;
    border: 0 !important;
    border-radius: 6px !important;
    background: transparent !important;
    box-shadow: none !important;
}

.dsf-note-rbac-tree .dsf-note-assignment-row:hover,
.dsf-note-rbac-tree .dsf-note-assignment-row.is-search-hit {
    background: rgba(255, 255, 255, .78) !important;
}

.dsf-note-rbac-tree .dsf-note-assignment-row input {
    width: 21px !important;
    height: 21px !important;
    margin: 0 !important;
    flex: 0 0 auto !important;
}

.dsf-note-rbac-tree .dsf-note-assignment-row > span {
    min-width: 0 !important;
    overflow: hidden !important;
    color: #2b2f36 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.dsf-note-rbac-tree .dsf-note-assignment-row > small {
    margin-left: auto !important;
    color: #667085 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
}

@media (max-width: 575px) {
    .dsf-note-assignment-tree.is-rbac .dsf-note-assignment-toolbar {
        grid-template-columns: 1fr !important;
    }

    .dsf-note-rbac-selected {
        margin-left: 0 !important;
    }

    .dsf-note-rbac-tree .dsf-rbac-node-module label {
        flex-wrap: wrap !important;
    }

    .dsf-note-rbac-tree .dsf-note-assignment-row > small {
        margin-left: 33px !important;
    }
}

.dsf-note-rbac-tree .dsf-rbac-node small span,
.dsf-note-rbac-selected span {
    color: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
}

.dsf-settings-save-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px;
    border: 1px solid #d5e3ef;
    border-radius: 8px;
    background: #ffffff;
}

.dsf-settings-save-row strong,
.dsf-settings-save-row span {
    display: block;
}

.dsf-settings-save-row strong {
    color: #0b253a;
    font-weight: 800;
}

.dsf-settings-save-row span {
    margin-top: 2px;
    color: #667085;
    font-size: 13px;
}

.dsf-settings-save-row .btn {
    min-width: 270px;
    white-space: nowrap;
}

.dsf-scroll-navigation-settings {
    border: 1px solid #d5e1ea;
    box-shadow: 0 10px 28px rgba(15, 35, 50, .07);
}

.dsf-scroll-navigation-settings-icon {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 12px;
    background: #e7f6f3;
    color: #0f766e;
    font-size: 1.1rem;
}

.dsf-scroll-navigation-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.dsf-scroll-navigation-option {
    margin: 0;
    cursor: pointer;
}

.dsf-scroll-navigation-option > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.dsf-scroll-navigation-option-body {
    position: relative;
    display: flex;
    min-height: 92px;
    align-items: center;
    gap: 13px;
    padding: 14px 42px 14px 14px;
    border: 2px solid #dce5ec;
    border-radius: 13px;
    background: #fff;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.dsf-scroll-navigation-option-body strong,
.dsf-scroll-navigation-option-body small {
    display: block;
}

.dsf-scroll-navigation-option-body small {
    margin-top: 3px;
    color: #6b7b8c;
}

.dsf-scroll-navigation-preview {
    display: flex;
    width: 62px;
    min-width: 62px;
    height: 62px;
    align-items: flex-end;
    gap: 5px;
    padding: 8px;
    border-radius: 10px;
    background: #eef3f7;
    color: #fff;
}

.dsf-scroll-navigation-preview i {
    display: grid;
    width: 19px;
    height: 25px;
    place-items: center;
    border-radius: 5px;
    background: #14324a;
    font-size: .58rem;
}

.dsf-scroll-navigation-preview.is-right {
    justify-content: flex-end;
}

.dsf-scroll-navigation-preview.is-hidden {
    align-items: center;
    justify-content: center;
    color: #718096;
}

.dsf-scroll-navigation-preview.is-hidden i {
    width: auto;
    height: auto;
    background: transparent;
    font-size: 1.25rem;
}

.dsf-scroll-navigation-selected {
    position: absolute;
    top: 10px;
    right: 10px;
    color: #0f766e;
    opacity: 0;
}

.dsf-scroll-navigation-option > input:checked + .dsf-scroll-navigation-option-body {
    border-color: #0f766e;
    background: #f0fdfa;
    box-shadow: 0 7px 18px rgba(15, 118, 110, .12);
}

.dsf-scroll-navigation-option > input:checked + .dsf-scroll-navigation-option-body .dsf-scroll-navigation-selected {
    opacity: 1;
}

.dsf-scroll-navigation-option > input:focus-visible + .dsf-scroll-navigation-option-body {
    outline: 3px solid rgba(127, 196, 234, .55);
    outline-offset: 2px;
}

@media (max-width: 767.98px) {
    .dsf-scroll-navigation-options {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .dsf-settings-save-row {
        align-items: stretch;
        flex-direction: column;
    }

    .dsf-settings-save-row .btn {
        width: 100%;
        min-width: 0;
    }
}
.dsf-settings-card-header-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.dsf-application-save-button {
    min-width: 150px;
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .dsf-settings-card-header-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .dsf-application-save-button {
        width: 100%;
        min-width: 0;
    }
}

/* RBAC note scope: category tree with note-level selection */
.dsf-note-category-scope {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid #dce7f2;
}

.dsf-note-category-scope-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.dsf-note-category-scope-head h5 {
    margin: 2px 0 4px;
    color: var(--dsf-ink);
    font-size: 20px;
    font-weight: 900;
}

.dsf-note-category-scope-head p,
.dsf-note-category-scope-help {
    margin: 0;
    color: #667085;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.45;
}

.dsf-security-control.form-select,
.dsf-security-control.input-group,
.dsf-security-control.input-group > .form-control,
.dsf-security-control.input-group > .input-group-text {
    height: 48px;
    min-height: 48px;
}

.dsf-security-control.form-select,
.dsf-security-control.input-group > .form-control {
    padding-top: 0;
    padding-bottom: 0;
}

.dsf-security-control.input-group > .form-control,
.dsf-security-control.input-group > .input-group-text {
    display: flex;
    align-items: center;
}

/* Final sidebar safeguard: active groups must never distort icons or clip labels. */
body.dsf-appearance-ready .dlabnav .metismenu > li > a::before {
    content: none !important;
    display: none !important;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse {
    max-width: calc(100% - 28px);
    box-sizing: border-box;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li > a {
    width: 100%;
    max-width: 100%;
    min-height: 44px;
    height: auto;
    box-sizing: border-box;
    padding-right: 12px !important;
    overflow: visible;
    transform: none !important;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li > a .nav-text {
    min-width: 0;
    white-space: normal !important;
    overflow-wrap: anywhere;
    line-height: 1.25;
}

body.dsf-appearance-ready .dlabnav .metismenu > li > a > i,
body.dsf-appearance-ready .dlabnav .metismenu > li > ul.mm-collapse > li > a > i {
    flex: 0 0 22px;
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 900 !important;
}

.dsf-note-category-scope-total,
.dsf-note-category-scope-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 14px;
    border-radius: 999px;
    background: #eef6fd;
    color: #123754;
    font-size: 13px;
    font-style: normal;
    font-weight: 900;
    white-space: nowrap;
}

.dsf-note-category-scope-count span,
.dsf-note-category-scope-total strong {
    color: #087d74;
    font-weight: 900;
}

.dsf-note-category-scope-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    margin-bottom: 16px;
}

.dsf-note-category-scope-search {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid #c9d9ea;
    border-radius: 8px;
    background: #fff;
    color: #667085;
}

.dsf-note-category-scope-search i {
    color: #667085;
    font-size: 15px;
}

.dsf-note-category-scope-search input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--dsf-ink);
    font-size: 14px;
    font-weight: 700;
}

.dsf-note-category-scope-search input::placeholder {
    color: #98a2b3;
}

.dsf-note-category-scope-actions {
    display: inline-flex;
    gap: 8px;
    flex: 0 0 auto;
}

.dsf-note-category-scope-actions button {
    min-height: 48px;
    padding: 0 16px;
    border: 1px solid #c9d9ea;
    border-radius: 8px;
    background: #fff;
    color: #123754;
    font-weight: 900;
}

.dsf-note-category-scope-actions button:hover {
    border-color: #1f78d1;
    color: #1f78d1;
}

.dsf-note-category-rbac-tree {
    padding: 6px 8px 10px;
    border: 1px solid #d7e3ef;
    border-radius: 10px;
    background: #fff;
}

.dsf-note-category-rbac-tree .dsf-rbac-branches {
    max-height: 640px;
    overflow: auto;
    padding-left: 30px;
    padding-right: 6px;
}

.dsf-note-category-rbac-tree .dsf-rbac-group {
    margin-bottom: 10px;
    border-radius: 8px;
}

.dsf-note-category-rbac-tree .dsf-rbac-node-module {
    min-height: 56px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #f3f8fc;
}

.dsf-note-category-rbac-tree .dsf-rbac-group.is-selected .dsf-rbac-node-module,
.dsf-note-category-rbac-tree .dsf-rbac-group.has-selection .dsf-rbac-node-module {
    background: #dcecfb;
}

.dsf-note-category-rbac-tree .dsf-rbac-node-module label {
    display: grid;
    grid-template-columns: auto minmax(170px, 1fr) auto auto;
    align-items: center;
    width: 100%;
    gap: 12px;
}

.dsf-note-category-rbac-tree .dsf-rbac-node-module label > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dsf-note-category-rbac-tree .dsf-rbac-node-module small {
    min-width: 58px;
    text-align: right;
    white-space: nowrap;
}

.dsf-note-category-rbac-tree .dsf-rbac-children {
    gap: 0;
    margin-left: 34px;
    padding: 8px 0 10px;
    background: #eef6fd;
}

.dsf-note-category-scope-row {
    display: grid;
    grid-template-columns: auto minmax(170px, 1fr) auto;
    align-items: center;
    gap: 14px;
    min-height: 52px;
    margin: 0;
    padding: 10px 14px;
    border-radius: 0;
}

.dsf-note-category-scope-row:hover,
.dsf-note-category-scope-row.is-search-hit {
    background: rgba(255, 255, 255, .78);
}

.dsf-note-category-scope-row > span {
    min-width: 0;
    overflow: hidden;
    color: #1f2937;
    font-size: 15px;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dsf-note-category-scope-row > small {
    min-width: 74px;
    padding: 5px 10px;
    border-radius: 999px;
    background: #e7f3f8;
    color: #075985;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
}

.dsf-note-category-scope-empty {
    padding: 12px 14px;
    color: #667085;
    font-size: 13px;
    font-weight: 800;
}

.dsf-note-category-scope-help {
    margin-top: 14px;
    padding: 12px 14px;
    border: 1px solid #b8e6dd;
    border-radius: 8px;
    background: #f1fbf9;
    color: #123754;
}

@media (max-width: 767.98px) {
    .dsf-note-category-scope-head,
    .dsf-note-category-scope-toolbar {
        grid-template-columns: 1fr;
        flex-direction: column;
    }

    .dsf-note-category-scope-total,
    .dsf-note-category-scope-actions,
    .dsf-note-category-scope-actions button {
        width: 100%;
    }

    .dsf-note-category-scope-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .dsf-note-category-rbac-tree .dsf-rbac-branches {
        padding-left: 10px;
    }

    .dsf-note-category-rbac-tree .dsf-rbac-node-module label {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .dsf-note-category-rbac-tree .dsf-rbac-node-module small,
    .dsf-note-category-rbac-tree .dsf-rbac-node-module em {
        grid-column: 2;
        justify-self: start;
    }

    .dsf-note-category-rbac-tree .dsf-rbac-children {
        margin-left: 10px;
    }

    .dsf-note-category-scope-row {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .dsf-note-category-scope-row > small {
        grid-column: 2;
        justify-self: start;
    }
}

/* Final large-screen width safeguard for every application page. */
body.dsf-appearance-ready .content-body > .container-fluid {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
}
/* Floating, searchable formula directory used by formula editors. */
.dsf-formula-reference-launcher {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 1390;
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    gap: 9px;
    padding: 0 16px;
    border: 0;
    border-radius: 12px;
    background: var(--appearance-primary-color, #14344c);
    box-shadow: 0 14px 34px rgba(15, 45, 68, .28);
    color: #fff;
    font-weight: 800;
}

.dsf-formula-reference-launcher[hidden] { display: none !important; }

.dsf-formula-reference {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 1400;
    width: min(540px, calc(100vw - 30px));
    height: min(720px, calc(100vh - 40px));
    min-width: 330px;
    min-height: 220px;
    overflow: hidden;
    resize: both;
    border: 1px solid #cbd8e6;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(15, 45, 68, .3);
}

.dsf-formula-reference.is-hidden { display: none; }
.dsf-formula-reference.is-minimized { width: 330px !important; height: 64px !important; min-height: 64px; resize: none; }
.dsf-formula-reference.is-minimized .dsf-formula-reference-body { display: none; }

.dsf-formula-reference-head {
    display: flex;
    min-height: 64px;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px 10px 16px;
    cursor: move;
    user-select: none;
    background: linear-gradient(135deg, #14344c, #176f74);
    color: #fff;
}

.dsf-formula-reference-head > div:first-child { display: grid; }
.dsf-formula-reference-head .dsf-section-kicker { color: #bcebe4; }
.dsf-formula-reference-head strong { font-size: 17px; }
.dsf-formula-reference-actions { display: flex; gap: 6px; }
.dsf-formula-reference-actions button,
.dsf-formula-reference-item-head button {
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 8px;
    background: rgba(255,255,255,.12);
    color: inherit;
}
.dsf-formula-reference-actions button { width: 36px; height: 36px; }

.dsf-formula-reference-body {
    height: calc(100% - 64px);
    padding: 16px;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.dsf-formula-reference-body > label { display: block; margin-bottom: 7px; color: #344054; font-size: 12px; font-weight: 800; }
.dsf-formula-reference-search { position: relative; }
.dsf-formula-reference-search i { position: absolute; top: 15px; left: 14px; color: #667085; }
.dsf-formula-reference-search input {
    width: 100%;
    height: 46px;
    padding: 0 14px 0 40px;
    border: 1px solid #cfd9e6;
    border-radius: 10px;
    outline: 0;
}
.dsf-formula-reference-search input:focus { border-color: var(--appearance-primary-color, #2f5eea); box-shadow: 0 0 0 3px rgba(47,94,234,.1); }
.dsf-formula-reference-help { margin: 10px 0; padding: 9px 11px; border-radius: 9px; background: #eef6ff; color: #475467; font-size: 12px; }
.dsf-formula-reference-count { margin-bottom: 9px; color: #667085; font-size: 12px; font-weight: 700; }
.dsf-formula-reference-results { display: grid; gap: 10px; }
.dsf-formula-reference-item { display: grid; gap: 5px; padding: 12px; border: 1px solid #dce5ef; border-radius: 10px; background: #fff; }
.dsf-formula-reference-item-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.dsf-formula-reference-item-head code { color: #12344c; font-size: 13px; font-weight: 900; }
.dsf-formula-reference-item-head button { padding: 4px 8px; border-color: #cbd8e6; background: #f7f9fc; color: #344054; font-size: 11px; font-weight: 800; }
.dsf-formula-reference-item > span { color: #667085; font-size: 12px; }
.dsf-formula-reference-note { color: #176f74 !important; font-weight: 700; }
.dsf-formula-reference-formula { margin-top: 3px; padding: 9px 10px; border-radius: 8px; background: #f5f7fa; }
.dsf-formula-reference-formula small { color: #667085; font-size: 9px; font-weight: 900; letter-spacing: .05em; }
.dsf-formula-reference-formula p { margin: 3px 0 0; color: #101828; font-size: 12px; line-height: 1.45; }
.dsf-formula-reference-empty { padding: 28px 12px; text-align: center; color: #667085; }

@media (max-width: 575px) {
    .dsf-formula-reference { right: 8px; bottom: 8px; width: calc(100vw - 16px); min-width: 0; height: calc(100vh - 16px); }
    .dsf-formula-reference-launcher { right: 12px; bottom: 12px; }
}
.dsf-table-comment-card textarea {
    min-height: 112px;
    resize: vertical;
}

.dsf-table-comment-readonly {
    min-height: 72px;
    padding: 1rem;
    border: 1px solid #dbe5ec;
    border-radius: .65rem;
    background: #f8fafc;
    color: #475569;
    white-space: pre-wrap;
}
.dsf-page-scroll-nav {
    position: fixed;
    left: 1.25rem;
    right: auto;
    bottom: 1.25rem;
    z-index: 1040;
    display: flex;
    flex-direction: column;
    gap: .55rem;
}

.dsf-page-scroll-nav[data-scroll-position="right"] {
    left: auto;
    right: 1.25rem;
}

.dsf-page-scroll-nav[hidden],
.dsf-page-scroll-button[hidden] {
    display: none !important;
}

.dsf-page-scroll-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-width: 132px;
    min-height: 44px;
    padding: .65rem .9rem;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: .75rem;
    background: var(--dsf-navy, #14324a);
    color: #fff;
    font: inherit;
    font-size: .82rem;
    font-weight: 700;
    box-shadow: 0 10px 25px rgba(15, 35, 50, .2);
    cursor: pointer;
    transition: transform .18s ease, opacity .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.dsf-page-scroll-button i {
    font-size: .9rem;
}

.dsf-page-scroll-button:hover:not(:disabled),
.dsf-page-scroll-button:focus-visible:not(:disabled) {
    transform: translateY(-2px);
    color: #fff;
    box-shadow: 0 14px 30px rgba(15, 35, 50, .28);
}

.dsf-page-scroll-button:focus-visible {
    outline: 3px solid rgba(127, 196, 234, .55);
    outline-offset: 2px;
}

.dsf-page-scroll-button:disabled {
    opacity: .38;
    cursor: default;
    box-shadow: none;
}

@media (max-width: 767.98px) {
    .dsf-page-scroll-nav {
        left: .75rem;
        right: auto;
        bottom: .75rem;
        flex-direction: row;
    }

    .dsf-page-scroll-nav[data-scroll-position="right"] {
        left: auto;
        right: .75rem;
    }

    .dsf-page-scroll-button {
        min-width: 44px;
        width: 44px;
        padding: .65rem;
        border-radius: 50%;
    }

    .dsf-page-scroll-button span {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dsf-page-scroll-button {
        transition: none;
    }
}
.dsf-plan-metrics .dsf-metric-card {
    height: 100%;
    margin-bottom: 0;
    border: 1px solid #dce5ec;
    border-radius: 12px;
    box-shadow: 0 6px 18px rgba(15, 35, 50, .06);
}

.dsf-plan-metrics .dsf-metric-card .card-body {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 78px;
    padding: 14px 16px;
}

.dsf-plan-metric-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #e8f5f3;
    color: #087d73;
    font-size: 16px;
}

.dsf-plan-metrics .card-body > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.dsf-plan-metrics .card-body > div > span {
    color: #667085;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.dsf-plan-metrics .card-body strong {
    overflow: hidden;
    color: #102f46;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.3;
    text-overflow: ellipsis;
}

@media (max-width: 575.98px) {
    .dsf-plan-metrics .dsf-metric-card .card-body {
        min-height: 70px;
        padding: 12px 14px;
    }
}
