/*
 * Save the Children EMIS design system
 *
 * This file is intentionally loaded after the vendor theme. It centralizes the
 * approved brand foundation and normalizes existing Bootstrap/pcoded classes
 * without changing application workflows or view contracts.
 */

:root {
    --sci-red: #da291c;
    --sci-dark-red: #a51414;
    --sci-black: #222221;
    --sci-white: #ffffff;
    --sci-mustard: #f2a900;
    --sci-biscuit: #d1ccbd;
    --sci-orange: #fc4c02;
    --sci-plum: #9a3324;
    --sci-teal: #009ca6;
    --sci-pink: #f6b0bd;
    --sci-green: #45b383;
    --sci-purple: #ae90c3;
    --sci-biscuit-light: #f3f2ee;
    --sci-dark-grey: #4a4f53;
    --sci-light-grey: #767676;

    --brand-primary: var(--sci-red);
    --brand-primary-hover: var(--sci-dark-red);
    --brand-primary-soft: rgba(218, 41, 28, 0.08);
    --brand-primary-focus: rgba(218, 41, 28, 0.18);
    --brand-red: var(--sci-red);
    --brand-black: var(--sci-black);
    --brand-dark-grey: var(--sci-dark-grey);
    --brand-light-grey: var(--sci-light-grey);
    --on-success: #174d39;
    --on-warning: #5c4000;
    --on-danger: #76140d;
    --on-info: #005c62;

    --surface-page: #f7f7f6;
    --surface-card: var(--sci-white);
    --surface-muted: var(--sci-biscuit-light);
    --surface-selected: rgba(218, 41, 28, 0.06);
    --border-default: #e3e1dc;
    --border-strong: var(--sci-biscuit);
    --border-subtle: #eeebe6;
    --text-muted: var(--sci-dark-grey);
    --brand-primary-dark: var(--sci-dark-red);

    --success: #2f8f68;
    --success-soft: #e9f6f0;
    --warning: var(--sci-mustard);
    --warning-soft: #fff6dc;
    --danger: var(--sci-red);
    --danger-soft: #fcecea;
    --info: #007f87;
    --info-soft: #e6f5f6;

    --font-heading: "Oswald", Arial, sans-serif;
    --font-body: "Lato", Arial, sans-serif;
    --font-rtl: "Noto Naskh Arabic", Tahoma, Arial, sans-serif;

    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --shadow-sm: 0 1px 3px rgba(34, 34, 33, 0.08);
    --shadow-md: 0 4px 12px rgba(34, 34, 33, 0.1);

    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.5rem;
    --space-6: 2rem;

    --sci-card-bg: var(--surface-card);
    --sci-card-border: var(--border-default);
    --sci-card-radius: var(--radius-md);
    --sci-card-shadow: var(--shadow-sm);
    --sci-card-pad-x: var(--space-5);
    --sci-card-pad-y: var(--space-4);
    --sci-card-body-pad-y: var(--space-5);
    --sci-card-title-size: 1.25rem;
    --sci-card-section-size: 0.9375rem;
    --sci-card-accent-width: 3px;
    --sci-card-accent: var(--brand-primary);
    --sci-drawer-shadow: -8px 0 24px rgba(34, 34, 33, 0.12);
    --sci-drawer-width: 420px;

    --sci-btn-height: 42px;
    --sci-btn-height-sm: 36px;
    --sci-btn-height-lg: 48px;
    --sci-btn-height-icon: 36px;
    --sci-btn-pad-x: 1rem;
    --sci-btn-pad-x-sm: 0.75rem;
    --sci-btn-radius: var(--radius-sm);
    --sci-btn-font: 0.875rem;
    --sci-btn-weight: 700;
    --sci-btn-gap: 0.5rem;
    --sci-btn-focus: 0 0 0 3px var(--brand-primary-focus);

    --sci-field-height: 42px;
    --sci-field-height-sm: 38px;
    --sci-field-pad-y: 0.5rem;
    --sci-field-pad-x: 0.75rem;
    --sci-field-radius: var(--radius-sm);
    --sci-field-font: 0.875rem;
    --sci-field-label: 0.8125rem;
    --sci-field-border: var(--border-strong);
    --sci-field-focus: 0 0 0 3px var(--brand-primary-focus);

    --chart-red: #da291c;
    --chart-teal: #009ca6;
    --chart-mustard: #f2a900;
    --chart-green: #45b383;
    --chart-orange: #fc4c02;
    --chart-purple: #ae90c3;
    --chart-plum: #9a3324;
    --chart-pink: #f6b0bd;
}

/* Profile-scoped display preferences */
.sci-preferences {
    color: var(--brand-black);
    display: block;
    position: relative;
    z-index: 1055;
}

.sci-preferences .style-block {
    background: var(--surface-card);
    border: 0;
    border-inline-start: 1px solid var(--border-default);
    border-radius: 0;
    box-shadow: var(--sci-drawer-shadow);
    display: flex;
    flex-direction: column;
    inset-block: 0;
    inset-inline-end: -380px;
    padding: 0;
    position: fixed;
    transition: inset-inline-end 180ms ease, inset-inline-start 180ms ease;
    width: 380px;
    z-index: 1056;
}

.sci-preferences.open .style-block {
    inset-inline-end: 0;
}

.sci-preferences .style-toggler {
    position: static;
}

.sci-preferences-trigger {
    align-items: center;
    background: var(--brand-primary);
    border: 0;
    border-radius: var(--radius-md) 0 0 var(--radius-md);
    box-shadow: var(--shadow-md);
    color: var(--sci-white);
    display: flex;
    height: 48px;
    inset-inline-end: 0;
    justify-content: center;
    position: fixed;
    top: 42%;
    transition: background 150ms ease, inset-inline-end 180ms ease, inset-inline-start 180ms ease;
    width: 48px;
    z-index: 1057;
}

.sci-preferences-trigger:hover {
    background: var(--brand-primary-hover);
}

.sci-preferences-trigger:focus-visible,
.sci-preferences-close:focus-visible {
    box-shadow: 0 0 0 3px var(--sci-white), 0 0 0 6px rgba(218, 41, 28, 0.35);
    outline: 0;
}

.sci-preferences.open .sci-preferences-trigger {
    inset-inline-end: 380px;
}

.sci-preferences-header {
    align-items: flex-start;
    border-block-start: 4px solid var(--brand-primary);
    border-block-end: 1px solid var(--border-default);
    display: flex;
    justify-content: space-between;
    padding: 24px 24px 18px;
}

.sci-preferences-eyebrow {
    color: var(--brand-primary);
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-block-end: 3px;
    text-transform: uppercase;
}

.sci-preferences-header h2 {
    font-family: var(--font-heading);
    font-size: 24px;
    font-weight: 600;
    line-height: 1.2;
    margin: 0;
}

.sci-preferences-close {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: var(--radius-sm);
    color: var(--brand-dark-grey);
    display: flex;
    font-size: 20px;
    height: 36px;
    justify-content: center;
    width: 36px;
}

.sci-preferences-close:hover {
    background: var(--brand-primary-soft);
    color: var(--brand-primary);
}

.sci-preferences-user {
    align-items: center;
    background: var(--surface-muted);
    border-block-end: 1px solid var(--border-default);
    display: flex;
    gap: 12px;
    padding: 14px 24px;
}

.sci-preferences-user img {
    border: 2px solid var(--sci-white);
    border-radius: 50%;
    box-shadow: 0 0 0 1px var(--border-strong);
    height: 42px;
    object-fit: cover;
    width: 42px;
}

.sci-preferences-user div {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
}

.sci-preferences-user strong {
    color: var(--brand-black);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sci-preferences-user span {
    color: var(--brand-dark-grey);
    font-size: 12px;
}

.sci-preferences-user > i {
    color: var(--success);
    font-size: 18px;
}

.sci-preferences .m-style-scroller {
    background: var(--surface-card);
    border-radius: 0;
    box-shadow: none;
    flex: 1;
    overflow-y: auto;
    padding: 20px 24px;
}

.sci-preferences-group {
    border: 0;
    margin: 0 0 22px;
    padding: 0;
}

.sci-preferences-group legend {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: 17px;
    font-weight: 600;
    margin: 0;
}

.sci-preferences-group > p {
    color: var(--brand-dark-grey);
    font-size: 12px;
    line-height: 1.45;
    margin: 3px 0 10px;
}

.sci-preference-row {
    align-items: center;
    border-block-start: 1px solid var(--border-default);
    cursor: pointer;
    display: flex;
    gap: 14px;
    justify-content: space-between;
    margin: 0;
    min-height: 64px;
    padding: 10px 0;
}

.sci-preference-row > span:first-child {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.sci-preference-row strong {
    color: var(--brand-black);
    font-size: 14px;
    font-weight: 700;
}

.sci-preference-row small {
    color: var(--brand-dark-grey);
    font-size: 12px;
    line-height: 1.35;
    margin-block-start: 2px;
}

.sci-preference-row input {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.sci-preference-toggle {
    background: var(--sci-biscuit);
    border-radius: 12px;
    flex: 0 0 auto;
    height: 22px;
    position: relative;
    transition: background 150ms ease;
    width: 40px;
}

.sci-preference-toggle::after {
    background: var(--sci-white);
    border-radius: 50%;
    box-shadow: var(--shadow-sm);
    content: "";
    height: 18px;
    inset-inline-start: 2px;
    position: absolute;
    top: 2px;
    transition: inset-inline-start 150ms ease;
    width: 18px;
}

.sci-preference-row input:checked + .sci-preference-toggle {
    background: var(--brand-primary);
}

.sci-preference-row input:checked + .sci-preference-toggle::after {
    inset-inline-start: 20px;
}

.sci-preference-row input:focus-visible + .sci-preference-toggle {
    box-shadow: 0 0 0 3px var(--brand-primary-soft);
    outline: 2px solid var(--brand-primary);
    outline-offset: 2px;
}

.sci-preferences-language {
    align-items: flex-start;
    background: rgba(0, 156, 166, 0.08);
    border: 1px solid rgba(0, 156, 166, 0.25);
    border-radius: var(--radius-md);
    display: flex;
    gap: 10px;
    padding: 12px;
}

.sci-preferences-language > i {
    color: var(--info);
    font-size: 18px;
    margin-block-start: 2px;
}

.sci-preferences-language div {
    display: flex;
    flex-direction: column;
}

.sci-preferences-language strong {
    color: var(--brand-black);
    font-size: 13px;
}

.sci-preferences-language span {
    color: var(--brand-dark-grey);
    font-size: 12px;
}

.sci-preferences-footer {
    align-items: center;
    background: var(--surface-card);
    border-block-start: 1px solid var(--border-default);
    display: flex;
    gap: 12px;
    justify-content: space-between;
    min-height: 68px;
    padding: 12px 24px;
}

.sci-preferences-footer > span {
    color: var(--brand-dark-grey);
    font-size: 11px;
    line-height: 1.3;
}

.sci-density-compact {
    --sci-card-pad-x: var(--space-4);
    --sci-card-pad-y: var(--space-3);
    --sci-card-body-pad-y: var(--space-4);
}

.sci-density-compact .form-group {
    margin-block-end: 12px;
}

.sci-density-compact .table > :not(caption) > * > *,
.sci-density-compact table td,
.sci-density-compact table th {
    padding-block: 8px;
}

.sci-contrast-strong {
    --brand-dark-grey: #343637;
    --brand-light-grey: #656565;
    --border-default: #C8C5BC;
    --border-strong: #9E998C;
}

.sci-reduce-motion *,
.sci-reduce-motion *::before,
.sci-reduce-motion *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
}

[dir="rtl"] .sci-preferences .style-block {
    box-shadow: var(--sci-drawer-shadow);
}

@media (max-width: 575.98px) {
    .sci-preferences .style-block {
        inset-inline-end: -100%;
        width: min(92vw, 380px);
    }

    .sci-preferences.open .sci-preferences-trigger {
        inset-inline-end: min(92vw, 380px);
    }

    .sci-preferences-header,
    .sci-preferences-user,
    .sci-preferences .m-style-scroller,
    .sci-preferences-footer {
        padding-inline: 18px;
    }
}

@media print {
    .sci-preferences {
        display: none !important;
    }
}

html {
    color-scheme: light;
    font-size: 16px;
    scroll-behavior: smooth;
}

body,
button,
input,
select,
textarea,
.tooltip,
.popover {
    font-family: var(--font-body);
}

body {
    background: var(--surface-page);
    color: var(--brand-black);
    font-size: 0.875rem;
    line-height: 1.55;
    text-rendering: optimizeLegibility;
}

[dir="rtl"] body,
[dir="rtl"] button,
[dir="rtl"] input,
[dir="rtl"] select,
[dir="rtl"] textarea,
[lang="fa"] body,
[lang="ps"] body,
[lang="prs"] body {
    font-family: var(--font-rtl);
}

[dir="rtl"] {
    --sci-drawer-shadow: 8px 0 24px rgba(34, 34, 33, 0.12);
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
.modal-title,
.page-header-title,
.card-title {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.25;
}

[dir="rtl"] h1,
[dir="rtl"] h2,
[dir="rtl"] h3,
[dir="rtl"] h4,
[dir="rtl"] h5,
[dir="rtl"] h6,
[lang="fa"] h1,
[lang="fa"] h2,
[lang="fa"] h3,
[lang="fa"] h4,
[lang="fa"] h5,
[lang="fa"] h6,
[lang="ps"] h1,
[lang="ps"] h2,
[lang="ps"] h3,
[lang="ps"] h4,
[lang="ps"] h5,
[lang="ps"] h6 {
    font-family: var(--font-rtl);
}

h1,
.h1 { font-size: clamp(1.875rem, 3vw, 2.25rem); }
h2,
.h2 { font-size: clamp(1.5rem, 2.5vw, 1.875rem); }
h3,
.h3 { font-size: clamp(1.25rem, 2vw, 1.5rem); }
h4,
.h4 { font-size: clamp(1.0625rem, 1.5vw, 1.25rem); }

a {
    color: var(--brand-primary);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.16em;
}

a:hover {
    color: var(--brand-primary-hover);
}

::selection {
    background: var(--brand-primary-soft);
    color: var(--brand-black);
}

:focus-visible {
    outline: 3px solid var(--brand-primary-focus);
    outline-offset: 2px;
}

.sci-skip-link {
    background: var(--sci-white);
    border: 2px solid var(--brand-primary);
    border-radius: var(--radius-sm);
    color: var(--brand-primary-hover);
    inset-block-start: var(--space-2);
    inset-inline-start: var(--space-2);
    padding: var(--space-2) var(--space-4);
    position: fixed;
    transform: translateY(-150%);
    transition: transform 0.15s ease;
    z-index: 10000;
}

.sci-skip-link:focus {
    transform: translateY(0);
}

/* Application shell */
.pcoded-header {
    background: var(--sci-white) !important;
    border-block-start: 4px solid var(--brand-primary);
    border-block-end: 1px solid var(--border-default);
    box-shadow: none !important;
    color: var(--brand-black) !important;
}

.pcoded-header .m-header {
    background: var(--sci-white) !important;
    border-inline-end: 1px solid var(--border-default);
    padding-inline: 20px 50px;
}

.pcoded-header a,
.pcoded-header .navbar-nav > li > a,
.pcoded-header .mobile-menu,
.pcoded-header .mob-toggler {
    color: var(--brand-dark-grey) !important;
}

.pcoded-header a:hover,
.pcoded-header a:focus-visible {
    color: var(--brand-primary) !important;
}

.pcoded-header .b-brand {
    align-items: center;
    display: flex;
    max-width: 100%;
    min-width: 0;
}

.pcoded-header .b-brand .logo {
    height: 42px;
    max-width: 165px;
    object-fit: contain;
    width: auto;
}

.pcoded-header .b-brand .logo-thumb {
    height: 38px;
    object-fit: contain;
    width: 38px;
}

.pcoded-header .dropdown-menu {
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
}

.pcoded-header .dropdown-item:hover,
.pcoded-header .dropdown-item:focus,
.pcoded-header .dropdown-item.active {
    background: var(--brand-primary-soft);
    color: var(--brand-primary-hover) !important;
}

.pcoded-header .profile-notification .pro-head {
    background: var(--surface-muted) !important;
    color: var(--brand-black) !important;
}

/* In-system notifications */
.sci-header-icon {
    align-items: center;
    display: inline-flex !important;
    height: 44px;
    justify-content: center;
    position: relative;
    width: 44px;
}

.sci-header-icon > i { font-size: 20px !important; }
.sci-header-icon .badge {
    font-size: 9px;
    line-height: 1;
    min-width: 17px;
    padding: 4px;
    position: absolute;
    right: 2px;
    top: 4px;
}

.sci-notification-dropdown { overflow: hidden; width: min(390px, calc(100vw - 24px)) !important; }
.sci-notification-dropdown .noti-head {
    align-items: center;
    background: var(--surface-muted) !important;
    border-block-end: 1px solid var(--border-default);
    color: var(--brand-black);
    display: flex;
    justify-content: space-between;
    padding: 12px 16px;
}
.pcoded-header .dropdown .sci-notification-dropdown.notification .noti-head h2,
.pcoded-header .dropdown .sci-notification-dropdown.notification .noti-head .h6,
.sci-notification-dropdown .noti-head h2,
.sci-notification-dropdown .noti-head .h6 {
    color: var(--brand-black) !important;
    font-family: var(--font-heading);
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0;
}
.sci-notification-dropdown .noti-head .btn-link { color: var(--brand-primary) !important; font-size: 12px; text-decoration: none; }
.sci-notification-dropdown .noti-footer {
    background: var(--surface-muted);
    border-block-start: 1px solid var(--border-default);
    text-align: center;
}
.sci-notification-list { max-height: 430px; overflow-y: auto; }
.sci-notification-preview {
    align-items: flex-start;
    border-bottom: 1px solid var(--border-default);
    color: var(--brand-dark-grey) !important;
    display: flex;
    gap: 12px;
    padding: 14px 16px !important;
    position: relative;
}
.sci-notification-preview.is-unread { background: var(--surface-selected); }
.sci-notification-preview-body { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.sci-notification-preview-body strong { color: var(--brand-black); font-size: 13px; }
.sci-notification-preview-body > span { font-size: 12px; line-height: 1.45; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sci-notification-preview-body small, .sci-notification-meta { color: var(--brand-light-grey); font-size: 11px; margin-top: 4px; }
.sci-notification-icon {
    align-items: center;
    background: var(--info-soft);
    border-radius: 50%;
    color: var(--brand-info, #009ca6);
    display: inline-flex;
    flex: 0 0 38px;
    height: 38px;
    justify-content: center;
}
.sci-notification-icon--success { background: var(--success-soft); color: #18864b; }
.sci-notification-icon--warning { background: var(--warning-soft); color: #a66900; }
.sci-notification-icon--danger { background: var(--danger-soft); color: var(--brand-primary); }
.sci-unread-dot { background: var(--brand-primary); border-radius: 50%; flex: 0 0 7px; height: 7px; margin-top: 6px; }
.sci-notification-empty, .sci-empty-state { align-items: center; display: flex; flex-direction: column; gap: 8px; padding: 36px 20px; text-align: center; }
.sci-notification-empty i, .sci-empty-state > i { color: var(--brand-light-grey); font-size: 30px; }
.sci-notification-row { align-items: flex-start; border-bottom: 1px solid var(--border-default); display: flex; gap: 14px; padding: 18px 20px; }
.sci-notification-row.is-unread { background: var(--surface-selected); border-inline-start: 3px solid var(--brand-primary); padding-inline-start: 17px; }
.sci-notification-content { color: inherit; display: flex; flex: 1; flex-direction: column; min-width: 0; }
.sci-notification-title { color: var(--brand-black); font-weight: 700; }
.sci-notification-message { color: var(--brand-dark-grey); margin-top: 3px; }
.sci-notification-actions { display: flex; }
.sci-notification-actions form { margin: 0; }

@media (max-width: 575.98px) {
    .sci-notifications-page .card-header { align-items: flex-start; flex-direction: column; gap: 12px; }
    .sci-notification-row { padding: 15px 12px; }
    .sci-notification-row.is-unread { padding-left: 9px; }
}

/* Account menu */
.sci-account-avatar {
    align-items: center;
    background: var(--surface-muted);
    border: 2px solid var(--sci-white);
    border-radius: 50%;
    box-shadow: 0 0 0 1px var(--border-default);
    display: inline-flex;
    flex: 0 0 40px;
    height: 40px;
    justify-content: center;
    object-fit: cover;
    width: 40px;
}

.sci-account-avatar--initial {
    background: var(--brand-primary);
    color: var(--sci-white);
    font-family: var(--font-heading);
    font-size: 1.125rem;
    font-weight: 600;
}

.sci-account-avatar--large {
    flex-basis: 48px;
    font-size: 1.25rem;
    height: 48px;
    width: 48px;
}

.pcoded-header .sci-account-menu {
    margin-block-start: 0.625rem !important;
    overflow: hidden;
    padding: 0;
    width: min(320px, calc(100vw - 1.5rem));
}

.pcoded-header .sci-account-menu .pro-head {
    align-items: center;
    border-block-end: 1px solid var(--border-default);
    display: flex;
    gap: 0.875rem;
    min-height: auto;
    padding: 1rem;
}

.pcoded-header .dropdown .profile-notification.sci-account-menu .pro-head .sci-account-avatar {
    height: 48px;
    margin: 0;
    width: 48px;
}

.sci-account-identity {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
}

.sci-account-identity strong,
.sci-account-identity small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sci-account-identity strong {
    color: var(--brand-black);
    font-size: 0.9375rem;
}

.sci-account-identity small {
    color: var(--brand-light-grey);
    font-size: 0.75rem;
    margin-block-start: 0.125rem;
}

.sci-account-role {
    align-self: flex-start;
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-radius: 999px;
    color: var(--brand-dark-grey);
    font-size: 0.625rem;
    font-weight: 700;
    line-height: 1;
    margin-block-start: 0.5rem;
    padding: 0.25rem 0.5rem;
    text-transform: uppercase;
}

.pcoded-header .sci-account-menu .pro-body {
    list-style: none;
    margin: 0;
    padding: 0.5rem;
}

.pcoded-header .dropdown .profile-notification.sci-account-menu .pro-body > li {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    margin: 0;
}

.pcoded-header .dropdown .profile-notification.sci-account-menu .pro-body > li:hover,
.pcoded-header .dropdown .profile-notification.sci-account-menu .pro-body > li:focus,
.pcoded-header .dropdown .profile-notification.sci-account-menu .pro-body > li:active {
    background: transparent;
    box-shadow: none;
}

.pcoded-header .sci-account-menu .dropdown-item {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: var(--radius-sm);
    color: var(--brand-black) !important;
    display: flex;
    font-family: var(--font-body);
    gap: 0.75rem;
    padding: 0.625rem 0.75rem;
    text-align: start;
    white-space: normal;
    width: 100%;
}

.pcoded-header .dropdown .profile-notification.sci-account-menu .pro-body li > .dropdown-item {
    color: var(--brand-black) !important;
    font-size: inherit;
    padding: 0.625rem 0.75rem;
}

.pcoded-header .dropdown .profile-notification.sci-account-menu .pro-body li > .dropdown-item:hover,
.pcoded-header .dropdown .profile-notification.sci-account-menu .pro-body li > .dropdown-item:focus {
    background: var(--brand-primary-soft);
    color: var(--brand-primary-hover) !important;
}

.pcoded-header .sci-account-menu .dropdown-item > span:last-child {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
}

.pcoded-header .sci-account-menu .dropdown-item strong {
    font-size: 0.8125rem;
    font-weight: 700;
}

.pcoded-header .sci-account-menu .dropdown-item small {
    color: var(--brand-light-grey);
    font-size: 0.6875rem;
    margin-block-start: 0.125rem;
}

.sci-account-action-icon {
    align-items: center;
    background: var(--surface-muted);
    border-radius: var(--radius-sm);
    color: var(--brand-dark-grey);
    display: flex;
    flex: 0 0 34px;
    height: 34px;
    justify-content: center;
}

.pcoded-header .sci-account-menu .dropdown-item:hover .sci-account-action-icon,
.pcoded-header .sci-account-menu .dropdown-item:focus .sci-account-action-icon {
    background: var(--surface-card);
    color: var(--brand-primary);
}

.pcoded-header .sci-account-menu .sci-account-signout {
    border-block-start: 1px solid var(--border-default);
    margin-block-start: 0.5rem;
    padding-block-start: 0.5rem;
}

.pcoded-header .sci-account-menu .sci-account-signout .dropdown-item,
.pcoded-header .sci-account-menu .sci-account-signout .sci-account-action-icon {
    color: var(--brand-primary-hover) !important;
}

.pcoded-navbar {
    background: var(--sci-white) !important;
    border-inline-end: 1px solid var(--border-default);
    box-shadow: none !important;
}

.pcoded-navbar .navbar-content,
.pcoded-navbar .navbar-wrapper {
    background: var(--sci-white) !important;
}

.pcoded-navbar .pcoded-inner-navbar > li.pcoded-menu-caption label {
    color: var(--brand-light-grey) !important;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.pcoded-navbar .pcoded-inner-navbar li > a,
.pcoded-navbar .pcoded-inner-navbar li.nav-item > a {
    border-inline-start: 3px solid transparent;
    color: var(--brand-dark-grey) !important;
    font-family: var(--font-body);
    font-weight: 600;
}

.pcoded-navbar .pcoded-inner-navbar li > a:hover,
.pcoded-navbar .pcoded-inner-navbar li > a:focus-visible {
    background: var(--surface-muted) !important;
    color: var(--brand-black) !important;
}

.pcoded-navbar .pcoded-inner-navbar li.active > a,
.pcoded-navbar .pcoded-inner-navbar li.pcoded-trigger > a,
.pcoded-navbar .pcoded-inner-navbar a[aria-current="page"] {
    background: var(--brand-primary-soft) !important;
    border-inline-start-color: var(--brand-primary);
    color: var(--brand-primary) !important;
}

.pcoded-navbar .pcoded-micon,
.pcoded-navbar .pcoded-micon i {
    color: inherit !important;
}

.pcoded-navbar .pcoded-submenu {
    background: var(--sci-white) !important;
}

.pcoded-main-container {
    background: var(--surface-page);
}

.pcoded-content {
    padding: clamp(1rem, 2.3vw, 2rem);
    padding-block-start: 1rem;
}

.page-header {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    margin-block-end: var(--space-5);
    padding: 0;
}

.sci-page-header,
.page-header > .sci-page-header {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin: 0;
    min-width: 0;
}

.sci-page-header__crumbs .breadcrumb,
.sci-page-header .breadcrumb,
.page-header > .breadcrumb,
.page-header > nav > .breadcrumb {
    background: transparent;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    margin: 0;
    padding: 0;
}

.sci-page-header__row {
    align-items: flex-start;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3) var(--space-5);
    justify-content: space-between;
}

.sci-page-header__main {
    border-inline-start: 4px solid var(--brand-primary);
    flex: 1 1 16rem;
    min-width: 0;
    padding-inline-start: var(--space-3);
}

.sci-page-header__heading {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-3);
}

.sci-page-header__title,
.sci-page-nav-title,
.page-header-title h1,
.page-header-title h5,
.page-header-title h4,
.page-header-title h3,
.sci-page-title-row h1 {
    color: var(--brand-black) !important;
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 2.5vw, 1.875rem);
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.2;
    margin: 0 !important;
    text-transform: none;
}

.sci-page-header__subtitle,
.sci-page-nav-subtitle,
.sci-index-card-subtitle,
.sci-form-subtitle,
.sci-detail-subtitle,
.sci-index-card-header .d-block.m-t-5,
.sci-form-header .d-block.m-t-5,
.sci-detail-header .d-block.m-t-5,
.sci-page-header .sci-page-actions__secondary {
    display: none !important;
}

.sci-page-header__status {
    align-items: center;
    display: inline-flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.sci-page-header__toolbar {
    align-items: flex-end;
    display: flex;
    flex: 1 1 18rem;
    flex-direction: column;
    gap: var(--space-2);
    margin-inline-start: auto;
    min-width: 0;
}

.sci-page-header__meta,
.sci-page-header__meta .dashboard-data-status {
    color: var(--brand-dark-grey);
    font-family: var(--font-body);
    font-size: 0.75rem;
}

.sci-page-actions,
.sci-index-action-group,
.sci-form-header-actions,
.sci-detail-actions,
.dashboard-header-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: flex-end;
    min-width: 0;
}

.sci-page-actions__back,
.sci-page-actions__primary,
.sci-page-actions__secondary,
.sci-page-actions__cluster {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.sci-page-header__back .feather,
.sci-page-actions .btn > .feather:first-child {
    margin-inline-end: 0.5rem;
}

.sci-page-actions__more-toggle > .feather:first-child,
.sci-page-actions__menu .feather,
.sci-page-actions__menu i {
    margin-inline-end: 0 !important;
}

[dir="rtl"] .sci-page-header__back .feather.icon-arrow-left,
[dir="rtl"] .sci-page-actions__back .feather.icon-arrow-left {
    transform: scaleX(-1);
}

.sci-page-actions .btn,
.sci-index-action-group .btn,
.sci-form-header-actions .btn,
.sci-detail-actions .btn,
.dashboard-header-actions .btn {
    margin: 0;
}

.sci-page-actions__more {
    display: none;
}

.sci-page-actions__more.is-populated,
.sci-page-actions.is-overflowing .sci-page-actions__more {
    display: inline-flex;
}

.sci-page-actions__more-toggle {
    align-items: center;
    column-gap: 0.5rem;
    display: inline-flex;
    gap: 0.5rem;
}

.sci-page-actions__more-toggle > .feather {
    box-sizing: border-box;
    flex: 0 0 1.25rem;
    font-size: 1rem;
    height: 1.25rem;
    line-height: 1;
    margin: 0 !important;
    max-width: 1.25rem;
    min-width: 1.25rem;
    text-align: center;
    width: 1.25rem;
}

.sci-page-actions__menu {
    min-width: 13rem;
    padding: 0.35rem 0;
}

.sci-page-actions__menu > .dropdown-item,
.sci-page-actions__menu > li {
    padding: 0;
}

.sci-page-actions__menu > .dropdown-item > a,
.sci-page-actions__menu > .dropdown-item > button,
.sci-page-actions__menu > .dropdown-item > form > button,
.sci-page-actions__menu .btn,
.sci-page-actions__menu a.btn,
.sci-page-actions__menu button.btn,
.sci-page-actions__overflow-item .btn,
.sci-page-actions__overflow-item > a,
.sci-page-actions__overflow-item > button {
    align-items: center;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: var(--brand-dark-grey) !important;
    column-gap: 0.625rem;
    display: flex !important;
    font-family: var(--font-body);
    font-weight: 400;
    gap: 0.625rem;
    justify-content: flex-start;
    min-height: 2.375rem;
    padding: 0.5rem 1rem !important;
    text-align: start;
    width: 100%;
}

.sci-page-actions__menu > .dropdown-item > a:hover,
.sci-page-actions__menu > .dropdown-item > button:hover,
.sci-page-actions__menu > .dropdown-item > form > button:hover,
.sci-page-actions__menu .btn:hover,
.sci-page-actions__overflow-item .btn:hover,
.sci-page-actions__overflow-item > a:hover,
.sci-page-actions__overflow-item > button:hover {
    background: var(--surface-muted) !important;
    color: var(--brand-black) !important;
}

.sci-page-actions__overflow-item {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sci-page-actions__menu i,
.sci-page-actions__menu .feather,
.sci-page-actions__menu svg,
.sci-page-actions__menu .btn i,
.sci-page-actions__menu .btn .feather,
.sci-page-actions__menu .btn svg {
    align-items: center;
    box-sizing: border-box;
    display: inline-flex !important;
    flex: 0 0 1.25rem;
    font-size: 1rem !important;
    height: 1.25rem;
    justify-content: center;
    line-height: 1;
    margin: 0 !important;
    margin-inline: 0 !important;
    max-width: 1.25rem;
    min-width: 1.25rem;
    overflow: visible;
    width: 1.25rem;
}

.sci-page-actions__menu i::before,
.sci-page-actions__menu .btn i::before {
    display: block;
    line-height: 1.25rem;
    text-align: center;
    width: 1.25rem;
}

.sci-page-actions__menu .me-1,
.sci-page-actions__menu .me-2,
.sci-page-actions__menu .me-3,
.sci-page-actions__menu .ms-1,
.sci-page-actions__menu .ms-2,
.sci-page-actions__menu .ms-3,
.sci-page-actions__menu .mr-1,
.sci-page-actions__menu .mr-2,
.sci-page-actions__menu .ml-1,
.sci-page-actions__menu .ml-2 {
    margin: 0 !important;
}

.sci-page-actions__menu form {
    margin: 0;
}

.page-header-title {
    border-inline-start: 4px solid var(--brand-primary);
    padding-inline-start: var(--space-3);
}

.sci-page-title-row {
    align-items: flex-start;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3) var(--space-5);
    justify-content: space-between;
}

.sci-page-title-row > .page-header-title {
    flex: 1 1 16rem;
}

.breadcrumb {
    background: transparent;
    font-size: 0.8125rem;
    margin-block-end: 0;
    padding: var(--space-2) 0 0;
}

.sci-page-header__crumbs .breadcrumb {
    padding: 0;
}

.breadcrumb-item,
.breadcrumb-item a {
    color: var(--brand-dark-grey);
    font-family: var(--font-body);
}

.breadcrumb-item.active,
.breadcrumb-item:last-child,
.breadcrumb-item[aria-current="page"] {
    color: var(--brand-black);
    font-weight: 700;
}

@media (max-width: 767.98px) {
    .sci-page-header__row,
    .sci-page-title-row {
        align-items: stretch;
        flex-direction: column;
    }

    .sci-page-header__toolbar,
    .sci-page-title-row .dashboard-header-actions,
    .sci-page-title-row .sci-page-actions {
        align-items: stretch;
        margin-inline-start: 0;
        width: 100%;
    }

    .sci-page-actions,
    .sci-index-action-group,
    .sci-form-header-actions,
    .sci-detail-actions,
    .dashboard-header-actions {
        justify-content: flex-start;
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .sci-page-actions.is-overflowing .sci-page-actions__secondary {
        display: none;
    }

    .sci-page-actions .btn {
        min-height: var(--sci-btn-height);
    }
}

.sci-print-header {
    display: none;
}

/* =============================================================================
   SCI card system — white surfaces, neutral borders, restrained shadows
   ============================================================================= */

.card,
.sci-card,
.modal-content,
.offcanvas,
.dropdown-menu {
    background: var(--sci-card-bg);
    border: 1px solid var(--sci-card-border);
    border-radius: var(--sci-card-radius);
    box-shadow: var(--sci-card-shadow);
}

.modal-content,
.sci-modal,
.swal-modal {
    border-block-start: 4px solid var(--brand-primary);
    box-shadow: var(--shadow-md);
}

.card,
.sci-card {
    color: var(--brand-black);
    font-family: var(--font-body);
    margin-block-end: var(--space-5);
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.card:hover,
.sci-card:hover {
    box-shadow: var(--sci-card-shadow);
    transform: none;
}

.card-header,
.sci-card-header {
    align-items: center;
    background: var(--sci-card-bg);
    border-block-end: 1px solid var(--sci-card-border);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    justify-content: space-between;
    padding: var(--sci-card-pad-y) var(--sci-card-pad-x);
    position: relative;
}

.sci-card-heading {
    align-items: center;
    display: flex;
    flex: 1 1 12rem;
    gap: var(--space-3);
    min-width: 0;
}

.sci-card-header-icon {
    align-items: center;
    background: var(--surface-muted);
    border-radius: var(--radius-sm);
    color: var(--brand-dark-grey);
    display: inline-flex;
    flex: 0 0 2.25rem;
    font-size: 1rem;
    height: 2.25rem;
    justify-content: center;
    width: 2.25rem;
}

.sci-card-header-icon .feather {
    font-size: 1rem;
    line-height: 1;
}

.card-header h2,
.card-header h3,
.card-header h4,
.card-header h5,
.card-header h6,
.card-header .h5,
.card-title,
.sci-card-title,
.sci-index-card-title,
.sci-form-title,
.sci-detail-title {
    color: var(--brand-black) !important;
    font-family: var(--font-heading);
    font-size: var(--sci-card-title-size);
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.25;
    margin: 0;
    text-transform: none;
}

.card-header p,
.sci-card-subtitle {
    color: var(--text-muted);
    font-family: var(--font-body);
    font-size: 0.875rem;
    margin: var(--space-1) 0 0;
}

.sci-card-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: flex-end;
    margin-inline-start: auto;
}

.card-body,
.card-block,
.sci-card-body {
    font-family: var(--font-body);
    padding: var(--sci-card-body-pad-y) var(--sci-card-pad-x);
}

.card .card-header + .card-body,
.card .card-header + .card-block,
.sci-card .sci-card-header + .sci-card-body {
    padding-top: var(--sci-card-body-pad-y);
}

.sci-card-body--flush {
    padding: 0;
}

.card-footer,
.sci-card-footer {
    align-items: center;
    background: var(--sci-card-bg);
    border-block-start: 1px solid var(--sci-card-border);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: flex-end;
    padding: var(--sci-card-pad-y) var(--sci-card-pad-x);
}

.card-footer .btn,
.sci-card-footer .btn,
.sci-form-actions .btn {
    margin: 0;
}

.sci-card--accent {
    border-inline-start: var(--sci-card-accent-width) solid var(--sci-card-accent);
}

.sci-card--accent .sci-card-header-icon {
    background: var(--brand-primary-soft);
    color: var(--brand-primary);
}

.sci-card--accent-teal { --sci-card-accent: var(--sci-teal); }
.sci-card--accent-info { --sci-card-accent: var(--info); }
.sci-card--accent-warning { --sci-card-accent: var(--warning); }
.sci-card--accent-success { --sci-card-accent: var(--success); }
.sci-card--accent-danger,
.sci-card--accent-red { --sci-card-accent: var(--brand-primary); }

.sci-card--accent-teal .sci-card-header-icon {
    background: var(--info-soft);
    color: var(--sci-teal);
}

.sci-card--accent-warning .sci-card-header-icon {
    background: var(--warning-soft);
    color: var(--on-warning);
}

.sci-card--accent-success .sci-card-header-icon {
    background: var(--success-soft);
    color: var(--success);
}

.sci-card--accent-danger .sci-card-header-icon,
.sci-card--accent-red .sci-card-header-icon {
    background: var(--brand-primary-soft);
    color: var(--brand-primary);
}

.prod-p-card {
    overflow: hidden;
    position: relative;
}

.prod-p-card .card-body {
    min-height: 118px;
}

.prod-p-card h3,
.prod-p-card .count_values {
    color: var(--brand-black) !important;
    font-family: var(--font-heading);
    font-size: 1.75rem;
    font-weight: 600;
}

.prod-p-card .fas,
.prod-p-card .feather {
    background: var(--brand-primary-soft);
    border-radius: var(--radius-md);
    color: var(--brand-primary) !important;
    display: inline-grid;
    min-height: 44px;
    min-width: 44px;
    place-items: center;
}

.sci-summary-grid {
    display: grid;
    gap: var(--space-4);
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    margin: 0 0 var(--space-5);
}

.sci-summary-card {
    align-items: center;
    background: var(--sci-card-bg);
    border: 1px solid var(--sci-card-border);
    border-radius: var(--sci-card-radius);
    box-shadow: var(--sci-card-shadow);
    color: inherit;
    display: flex;
    gap: var(--space-3);
    padding: var(--sci-card-pad-y) var(--sci-card-pad-x);
    text-decoration: none;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

a.sci-summary-card:hover {
    border-color: var(--border-strong);
    box-shadow: var(--sci-card-shadow);
    color: inherit;
    text-decoration: none;
}

.sci-summary-icon {
    align-items: center;
    background: var(--surface-muted);
    border-radius: var(--radius-sm);
    color: var(--brand-dark-grey);
    display: inline-flex;
    flex: 0 0 2.5rem;
    height: 2.5rem;
    justify-content: center;
    width: 2.5rem;
}

.sci-summary-copy {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.sci-summary-copy strong {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.1;
}

.sci-summary-copy span {
    color: var(--text-muted);
    font-family: var(--font-body);
    font-size: 0.8125rem;
}

/* Main dashboard */
.dashboard-page-subtitle {
    color: var(--brand-dark-grey);
    font-size: 0.875rem;
    margin: var(--space-1) 0 0;
}

.dashboard-header-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    justify-content: flex-end;
}

.dashboard-data-status {
    align-items: center;
    color: var(--brand-dark-grey);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.75rem;
    gap: var(--space-2) var(--space-3);
    justify-content: flex-end;
}

.dashboard-eyebrow {
    color: var(--brand-primary);
    display: block;
    font-size: 0.6875rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin-block-end: var(--space-1);
    text-transform: uppercase;
}

.dashboard-last-refreshed {
    align-items: center;
    display: inline-flex;
    gap: var(--space-2);
}

.dashboard-live-status {
    background: var(--info-soft);
    border-radius: var(--radius-sm);
    color: #005c62;
    font-weight: 700;
    padding: 0.3rem 0.55rem;
}

.dashboard-live-status > span {
    background: var(--sci-teal);
    border-radius: 50%;
    display: inline-block;
    height: 0.5rem;
    width: 0.5rem;
}

.dashboard-refresh.is-loading i {
    animation: dashboard-spin 0.7s linear infinite;
}

@keyframes dashboard-spin {
    to { transform: rotate(360deg); }
}

.dashboard-section-heading h2 {
    font-size: 1.25rem;
    margin: 0;
}

.dashboard-section-heading p,
.dashboard-chart + p {
    color: var(--brand-dark-grey);
}

.dashboard-section-heading {
    align-items: flex-end;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-5);
    justify-content: space-between;
    margin-block: var(--space-6) var(--space-4);
    min-width: 0;
}

.dashboard-section-heading--first {
    margin-block-start: var(--space-2);
}

.dashboard-section-heading p {
    font-size: 0.8125rem;
    margin: 0;
    max-width: 34rem;
    text-align: end;
}

.dashboard-section-heading + .row > [class*="col-"] {
    display: flex;
    min-width: 0;
}

.dashboard-section-heading + .row .card {
    width: 100%;
}

.dashboard-section-heading + .row .card-header p {
    color: var(--brand-dark-grey);
    font-size: 0.75rem;
    margin: var(--space-1) 0 0;
}

.dashboard-chart {
    height: 260px;
    max-width: 100%;
    min-height: 260px;
    overflow: hidden;
    position: relative;
}

.dashboard-chart canvas {
    display: block;
    height: 100% !important;
    max-width: 100%;
    width: 100% !important;
}

.dashboard-chart-wide {
    height: 430px;
    min-height: 430px;
}

.dashboard-kpi-grid {
    display: grid;
    gap: var(--space-4);
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
}

.dashboard-kpi-grid--focal-point {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dashboard-kpi-grid > [class*="col-"] {
    max-width: none;
    padding: 0;
    width: auto;
}

.dashboard-metric-card {
    --metric-accent: var(--brand-primary);
    --metric-soft: var(--brand-primary-soft);
    border: 1px solid var(--border-default);
    border-block-start: 0;
    box-shadow: var(--shadow-sm);
    height: 100%;
    margin: 0;
    overflow: hidden;
    position: relative;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.dashboard-metric-card::before {
    background: var(--metric-accent);
    content: "";
    inset-block: 0;
    inset-inline-start: 0;
    position: absolute;
    width: 3px;
}

.dashboard-kpi-grid > :nth-child(4n+2) .dashboard-metric-card {
    --metric-accent: var(--sci-teal);
    --metric-soft: var(--info-soft);
}

.dashboard-kpi-grid > :nth-child(4n+3) .dashboard-metric-card {
    --metric-accent: #b67800;
    --metric-soft: var(--warning-soft);
}

.dashboard-kpi-grid > :nth-child(4n) .dashboard-metric-card {
    --metric-accent: var(--success);
    --metric-soft: var(--success-soft);
}

.dashboard-metric-card:hover {
    border-color: var(--border-strong);
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.dashboard-metric-card .card-body {
    min-height: 132px;
    padding: var(--space-5);
}

.dashboard-metric-card h6 {
    color: var(--brand-dark-grey) !important;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.025em;
    text-transform: uppercase;
}

.dashboard-metric-card .fas {
    background: var(--metric-soft);
    color: var(--metric-accent) !important;
}

.dashboard-metric-card--support {
    background: var(--sci-card-bg);
}

.dashboard-metric-card--support .card-body {
    min-height: 108px;
    padding-block: var(--space-4);
}

.dashboard-metric-card--support .count_values {
    font-size: 1.5rem;
}

.dashboard-metric-card--support .fas {
    min-height: 38px;
    min-width: 38px;
}

.sci-kpi-value {
    font-family: var(--font-heading);
    font-weight: 600;
    line-height: 1.2;
}

.sci-kpi-value--danger {
    color: var(--brand-primary);
}

.sci-kpi-value--info {
    color: var(--info);
}

.sci-kpi-value--warning {
    color: var(--warning);
}

.sci-kpi-value--success {
    color: var(--success);
}

.dashboard-insights-toolbar {
    align-items: center;
    background: var(--sci-card-bg);
    border: 1px solid var(--sci-card-border);
    border-radius: var(--sci-card-radius);
    box-shadow: var(--sci-card-shadow);
    display: flex;
    gap: var(--space-5);
    justify-content: space-between;
    margin-block-start: var(--space-6);
    padding: var(--sci-card-pad-y) var(--sci-card-pad-x);
}

.dashboard-insights-toolbar h2 {
    font-size: 1.25rem;
    margin: 0;
}

.dashboard-view-switcher,
.dashboard-metric-switcher {
    align-items: center;
    background: var(--surface-muted);
    border-radius: var(--radius-md);
    display: flex;
    gap: var(--space-1);
    overflow-x: auto;
    padding: var(--space-1);
}

.dashboard-view-button,
.dashboard-metric-button {
    background: transparent;
    border: 0;
    border-radius: 6px;
    color: var(--brand-dark-grey);
    cursor: pointer;
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.5rem 0.75rem;
    transition: background 140ms ease, box-shadow 140ms ease, color 140ms ease;
    white-space: nowrap;
}

.dashboard-view-button:hover,
.dashboard-metric-button:hover {
    color: var(--brand-black);
}

.dashboard-view-button:disabled,
.dashboard-metric-button:disabled {
    cursor: wait;
    opacity: 0.55;
}

.dashboard-view-button.is-active,
.dashboard-metric-button.is-active {
    background: var(--surface-card);
    box-shadow: var(--shadow-sm);
    color: var(--brand-primary);
}

.dashboard-view-button:focus-visible,
.dashboard-metric-button:focus-visible {
    box-shadow: 0 0 0 3px var(--brand-primary-focus);
    outline: 0;
}

.dashboard-insight-section.is-hidden {
    display: none;
}

.dashboard-insight-section .card {
    border: 1px solid var(--border-default);
    box-shadow: var(--shadow-sm);
}

.dashboard-chart-card-header {
    align-items: center;
    display: flex;
    gap: var(--space-4);
    justify-content: space-between;
}

.dashboard-focus-card {
    align-items: center;
    background: var(--sci-card-bg);
    border: 1px solid var(--sci-card-border);
    border-radius: var(--sci-card-radius);
    box-shadow: var(--sci-card-shadow);
    display: grid;
    gap: var(--space-4);
    grid-template-columns: auto minmax(0, 1fr) auto;
    margin-block-start: var(--space-6);
    padding: var(--sci-card-body-pad-y) var(--sci-card-pad-x);
}

.dashboard-focus-card h2 {
    font-size: 1.125rem;
    margin: 0 0 var(--space-1);
}

.dashboard-focus-card p {
    color: var(--brand-dark-grey);
    margin: 0;
}

.dashboard-focus-icon {
    align-items: center;
    background: var(--info-soft);
    border-radius: var(--radius-md);
    color: var(--info);
    display: flex;
    font-size: 1.25rem;
    height: 44px;
    justify-content: center;
    width: 44px;
}

/* Excel import workflow */
.import-process {
    background: linear-gradient(135deg, var(--sci-white) 0%, var(--surface-muted) 100%);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    padding: var(--space-5) clamp(1rem, 3vw, 2.5rem);
}

.import-process-steps {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.import-process-step {
    align-items: center;
    display: flex;
    flex-direction: column;
    min-width: 0;
    position: relative;
    text-align: center;
}

.import-process-step:not(:last-child)::after {
    background: linear-gradient(90deg, var(--brand-primary-focus), var(--border-strong));
    content: "";
    height: 2px;
    inset-block-start: 1.25rem;
    inset-inline-start: calc(50% + 1.5rem);
    position: absolute;
    width: calc(100% - 3rem);
}

.import-process-number {
    align-items: center;
    background: var(--sci-white);
    border: 2px solid var(--brand-primary);
    border-radius: 50%;
    box-shadow: 0 0 0 5px var(--brand-primary-soft);
    color: var(--brand-primary);
    display: inline-flex;
    font-size: 0.875rem;
    font-weight: 800;
    height: 2.5rem;
    justify-content: center;
    margin-block-end: var(--space-3);
    position: relative;
    width: 2.5rem;
    z-index: 1;
}

.import-process-label {
    color: var(--brand-black);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.35;
    max-width: 8rem;
}

@media (max-width: 767.98px) {
    .import-process {
        padding: var(--space-4);
    }

    .import-process-steps {
        grid-template-columns: 1fr;
    }

    .import-process-step {
        flex-direction: row;
        gap: var(--space-3);
        padding-block-end: var(--space-4);
        text-align: start;
    }

    .import-process-step:last-child {
        padding-block-end: 0;
    }

    .import-process-step:not(:last-child)::after {
        background: linear-gradient(180deg, var(--brand-primary-focus), var(--border-strong));
        height: auto;
        inset-block-end: 0;
        inset-block-start: 2.5rem;
        inset-inline-start: 1.1875rem;
        width: 2px;
    }

    .import-process-number {
        flex: 0 0 2.5rem;
        margin-block-end: 0;
    }

    .import-process-label {
        max-width: none;
    }
}

/* User profile cover */
.user-profile .cover-img-block {
    background: var(--surface-muted);
    border-bottom: 1px solid var(--border-default);
    height: 170px;
    overflow: hidden;
}

.sci-profile-cover-default {
    background: var(--surface-muted);
    border-top: 4px solid var(--brand-primary);
    height: 100%;
    width: 100%;
}

.sci-profile-cover-image {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.sci-profile-hero {
    overflow: hidden;
}

.sci-profile-cover {
    background: var(--surface-muted);
    height: clamp(120px, 18vw, 190px);
    overflow: hidden;
}

.sci-profile-cover .sci-profile-cover-default {
    background-color: var(--surface-muted);
    background-image:
        radial-gradient(circle at 82% 20%, rgba(218, 41, 28, 0.13) 0, rgba(218, 41, 28, 0) 32%),
        linear-gradient(135deg, rgba(209, 204, 189, 0.32), rgba(255, 255, 255, 0.5));
}

.sci-profile-hero-body {
    padding: 0 1.5rem 1.5rem;
}

.sci-profile-avatar-wrap {
    height: 3.5rem;
    position: relative;
}

.sci-profile-avatar {
    align-items: center;
    background: var(--surface-muted);
    border: 5px solid var(--surface-card);
    border-radius: 50%;
    bottom: 0;
    box-shadow: 0 0 0 1px var(--border-default), var(--shadow-md);
    display: flex;
    height: 112px;
    justify-content: center;
    object-fit: cover;
    position: absolute;
    width: 112px;
}

.sci-profile-avatar--initial {
    background: var(--brand-primary);
    color: var(--sci-white);
    font-family: var(--font-heading);
    font-size: 2.5rem;
    font-weight: 600;
}

.sci-profile-heading {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-block-start: 0.875rem;
}

.sci-profile-heading h2 {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3vw, 2rem);
    margin: 0;
}

.sci-profile-heading p {
    color: var(--brand-light-grey);
    margin: 0.25rem 0 0;
}

.sci-profile-role {
    align-items: center;
    background: var(--brand-primary-soft);
    border-radius: 999px;
    color: var(--brand-primary-hover);
    display: inline-flex;
    font-size: 0.75rem;
    font-weight: 700;
    gap: 0.375rem;
    padding: 0.4375rem 0.75rem;
}

.sci-profile-contact {
    border-block-start: 1px solid var(--border-default);
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-block-start: 1.25rem;
    padding-block-start: 1.25rem;
}

.sci-profile-contact > div {
    align-items: flex-start;
    color: var(--brand-dark-grey);
    display: flex;
    gap: 0.625rem;
    min-width: 0;
}

.sci-profile-contact i {
    color: var(--brand-primary);
    font-size: 1rem;
    margin-block-start: 0.125rem;
}

.sci-profile-contact span {
    font-size: 0.8125rem;
    overflow-wrap: anywhere;
}

.sci-profile-contact small {
    color: var(--brand-light-grey);
    display: block;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-block-end: 0.125rem;
    text-transform: uppercase;
}

.sci-card-header-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    min-width: 0;
}

.sci-profile-details .card-body {
    border-block-start: 0;
}

.sci-profile-data-list {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
}

.sci-profile-data-list > div {
    border-block-end: 1px solid var(--border-default);
    display: grid;
    gap: 0.75rem;
    grid-template-columns: minmax(110px, 35%) 1fr;
    padding: 0.875rem 0;
}

.sci-profile-data-list > div:nth-child(odd) {
    padding-inline-end: 1.5rem;
}

.sci-profile-data-list > div:nth-child(even) {
    border-inline-start: 1px solid var(--border-default);
    padding-inline-start: 1.5rem;
}

.sci-profile-data-list .sci-profile-data-wide {
    grid-column: 1 / -1;
    padding-inline-end: 0;
}

.sci-profile-data-list dt {
    color: var(--brand-light-grey);
    font-size: 0.75rem;
    font-weight: 700;
}

.sci-profile-data-list dd {
    color: var(--brand-black);
    font-size: 0.875rem;
    margin: 0;
    overflow-wrap: anywhere;
}

.sci-form-actions {
    align-items: center;
    border-block-start: 1px solid var(--sci-card-border);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: flex-end;
    margin-block-start: var(--space-5);
    padding-block-start: var(--sci-card-pad-y);
}

.sci-form-save .sci-form-save-spinner {
    display: none;
}

.sci-form-save.is-saving .sci-form-save-spinner {
    display: inline-block;
}

.sci-form-save.is-saving .sci-form-save-icon {
    display: none;
}

.sci-form-save.is-saving {
    pointer-events: none;
}

.sci-modal-icon {
    align-items: center;
    background: var(--brand-primary-soft);
    border-radius: var(--radius-md);
    color: var(--brand-primary);
    display: flex;
    flex: 0 0 42px;
    font-size: 1.125rem;
    height: 42px;
    justify-content: center;
}

.sci-security-layout {
    display: grid;
    place-items: start center;
}

.sci-security-card {
    border-inline-start: var(--sci-card-accent-width) solid var(--brand-primary);
    max-width: 620px;
    width: 100%;
}

.sci-security-card .card-header {
    border-block-start: 0;
}

.sci-security-user {
    align-items: center;
    display: flex;
    gap: 0.875rem;
}

.sci-security-eyebrow {
    color: var(--brand-primary);
    display: block;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    margin-block-end: 0.125rem;
    text-transform: uppercase;
}

.sci-security-note {
    align-items: flex-start;
    background: var(--surface-muted);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm);
    color: var(--brand-dark-grey);
    display: flex;
    font-size: 0.8125rem;
    gap: 0.625rem;
    margin-block-end: 1.25rem;
    padding: 0.875rem;
}

.sci-security-note i {
    color: var(--brand-primary);
    flex: 0 0 auto;
    font-size: 1rem;
    margin-block-start: 0.125rem;
}

.sci-security-card .card-footer.sci-form-actions {
    background: var(--surface-card);
    border-block-start: 1px solid var(--border-default);
    margin: 0;
    padding: 1rem 1.25rem;
}

@media (max-width: 991.98px) {
    .sci-profile-contact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .sci-profile-hero-body {
        padding-inline: 1rem;
    }

    .sci-profile-avatar {
        height: 92px;
        width: 92px;
    }

    .sci-profile-avatar-wrap {
        height: 2.75rem;
    }

    .sci-profile-heading,
    .sci-card-header-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .sci-profile-contact,
    .sci-profile-data-list {
        grid-template-columns: 1fr;
    }

    .sci-profile-data-list > div,
    .sci-profile-data-list > div:nth-child(odd),
    .sci-profile-data-list > div:nth-child(even) {
        border-inline-start: 0;
        grid-template-columns: 1fr;
        gap: 0.25rem;
        padding-inline: 0;
    }

    .sci-form-actions {
        flex-direction: column-reverse;
    }

    .sci-form-actions .btn {
        width: 100%;
    }
}

.dashboard-metric-caption {
    color: var(--brand-dark-grey);
    display: block;
    font-size: 0.6875rem;
    margin-block-start: var(--space-1);
}

.dashboard-panel-error {
    align-items: center;
    background: var(--danger-soft);
    border: 1px solid rgba(218, 41, 28, 0.2);
    border-radius: var(--radius-sm);
    color: var(--brand-primary-hover);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    justify-content: center;
    min-height: 220px;
    padding: var(--space-5);
    text-align: center;
}

.dashboard-panel-error i {
    font-size: 1.5rem;
}

.modal-dialog {
    align-items: center;
    display: flex;
    margin-inline: auto;
    max-width: min(100% - 1.5rem, 500px);
    min-height: calc(100% - 1rem);
    width: calc(100% - 1.5rem);
}

.modal-dialog .modal-content {
    max-width: 100%;
    width: 100%;
}

.modal-dialog.modal-sm {
    max-width: min(100% - 1.5rem, 300px);
}

.modal-dialog.modal-lg {
    max-width: min(100% - 1.5rem, 800px);
}

.modal-dialog.modal-xl {
    max-width: min(100% - 1.5rem, 1140px);
}

@media (min-width: 576px) {
    .modal-dialog {
        min-height: calc(100% - 3.5rem);
    }
}

.modal-header,
.modal-footer {
    background: var(--surface-card);
    border-color: var(--border-default);
    padding: 1rem 1.25rem;
}

.modal-header {
    align-items: flex-start;
    gap: 0.75rem;
}

.modal-title {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.25;
    margin: 0;
}

.modal-header .text-muted,
.modal-header .small {
    font-family: var(--font-body);
}

.modal-body {
    padding: 1.25rem;
}

.modal-body > .table,
.modal-body > .table-responsive > .table,
.modal-body .sci-index-table {
    margin-block-end: 0;
}

.modal-body .table > :not(caption) > * > * {
    padding: 0.65rem 0.75rem;
}

.modal-body .table:not(.sci-index-table) th {
    color: var(--brand-dark-grey);
    font-weight: 700;
    white-space: nowrap;
    width: 38%;
}

.modal-footer {
    align-items: center;
    gap: 0.75rem;
    justify-content: flex-end;
}

.modal-backdrop {
    background-color: var(--sci-black);
}

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

/* Buttons
 *
 * Shared SCI variants. Existing Bootstrap classes map onto these so page
 * markup, routes, and permissions stay unchanged.
 *
 * Primary      .btn-primary, .sci-btn-primary, .sci-btn-add, .background-red, .btn-success (Save / Add / Import CTAs)
 * Secondary    .btn-secondary, .btn-light, .btn-dark, .btn-outline-secondary, .sci-btn-secondary
 * Outline      .btn-outline-primary, .btn-outline-info, .btn-info, .btn-outline-warning, .btn-warning, .sci-btn-outline, .btn-outline-danger
 * Ghost        .btn-link, .sci-btn-ghost
 * Destructive  .btn-danger, .sci-btn-destructive
 * Success      .btn-outline-success, .sci-btn-success, Restore / Import-valid (icon-check)
 * Icon-only    .sci-btn-icon, kebab toggle, GIS map toolbar
 */
.btn {
    align-items: center;
    border-radius: var(--sci-btn-radius);
    border-width: 1px;
    border-style: solid;
    box-sizing: border-box;
    column-gap: var(--sci-btn-gap);
    display: inline-flex !important;
    flex-direction: row;
    gap: var(--sci-btn-gap);
    font-family: var(--font-body);
    font-size: var(--sci-btn-font);
    font-weight: var(--sci-btn-weight);
    justify-content: center;
    letter-spacing: 0;
    line-height: 1.25;
    min-height: var(--sci-btn-height);
    padding: 0.5rem var(--sci-btn-pad-x);
    text-align: center;
    text-decoration: none;
    transition: background-color 0.15s ease, border-color 0.15s ease,
        color 0.15s ease, box-shadow 0.15s ease;
    vertical-align: middle;
    white-space: nowrap;
}

.btn i,
.btn .feather,
.btn svg {
    flex: 0 0 auto;
    font-size: 1rem;
    line-height: 1;
}

.btn > .spinner-border,
.btn .spinner-border {
    flex: 0 0 auto;
    height: 1rem;
    width: 1rem;
}

.btn .me-1,
.btn .me-2,
.btn .me-3,
.btn .ms-1,
.btn .ms-2,
.btn .ms-3,
.btn .mr-1,
.btn .mr-2,
.btn .ml-1,
.btn .ml-2 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.btn span i,
.btn span .feather,
.btn span svg,
.btn .reach-generate-label i,
.btn .report-generate-label i,
.btn .sci-form-save-icon i {
    margin-inline-end: var(--sci-btn-gap);
}

.sci-btn-icon i,
.sci-btn-icon .feather,
.btn-attach i,
.btn-send i,
.gis-map-toolbar .btn i,
.dropdown-menu .btn i,
.sci-row-actions-menu i {
    margin-inline-end: 0;
}

.btn .reach-generate-label,
.btn .report-generate-label,
.btn .sci-form-save-icon,
.btn .sci-form-save-label {
    align-items: center;
    display: inline-flex;
    column-gap: var(--sci-btn-gap);
}

.btn .badge {
    margin: 0;
}

.btn-sm {
    font-size: 0.8125rem;
    min-height: var(--sci-btn-height-sm);
    padding: 0.35rem var(--sci-btn-pad-x-sm);
}

.btn-lg {
    font-size: 1rem;
    min-height: var(--sci-btn-height-lg);
    padding: 0.65rem 1.25rem;
}

.sci-index-toolbar .btn,
.sci-index-action-group .btn,
.sci-index-card-actions .btn,
.sci-form-header-actions .btn,
.sci-form-actions .btn,
.modal-footer .btn {
    min-height: var(--sci-btn-height);
    padding-inline: var(--sci-btn-pad-x);
}

.sci-index-toolbar .btn.btn-sm,
.sci-index-action-group .btn.btn-sm,
.sci-index-card-actions .btn.btn-sm,
.sci-form-header-actions .btn.btn-sm,
.sci-form-actions .btn.btn-sm,
.modal-footer .btn.btn-sm {
    font-size: var(--sci-btn-font);
    min-height: var(--sci-btn-height);
}

.btn-primary,
.sci-btn-primary,
.sci-btn-add,
.background-red,
.btn-success:not(.sci-btn-success) {
    background: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: var(--sci-white) !important;
}

.btn-primary:hover,
.btn-primary:focus-visible,
.btn-primary:active,
.sci-btn-primary:hover,
.sci-btn-primary:focus-visible,
.sci-btn-add:hover,
.background-red:hover,
.btn-success:not(.sci-btn-success):hover,
.btn-success:not(.sci-btn-success):focus-visible,
.btn-success:not(.sci-btn-success):active {
    background: var(--brand-primary-hover) !important;
    border-color: var(--brand-primary-hover) !important;
    color: var(--sci-white) !important;
}

.btn-secondary,
.btn-light,
.btn-dark,
.sci-btn-secondary {
    background: var(--sci-white) !important;
    border-color: var(--border-strong) !important;
    color: var(--brand-black) !important;
}

.btn-secondary:hover,
.btn-secondary:focus-visible,
.btn-light:hover,
.btn-dark:hover,
.sci-btn-secondary:hover {
    background: var(--surface-muted) !important;
    border-color: var(--brand-dark-grey) !important;
    color: var(--brand-black) !important;
}

.btn-outline-primary,
.btn-outline-info,
.btn-info,
.btn-outline-warning,
.btn-warning,
.btn-outline-danger,
.btn-outline-light,
.sci-btn-outline {
    background: var(--sci-white) !important;
    border-color: var(--brand-primary) !important;
    color: var(--brand-primary) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus-visible,
.btn-outline-info:hover,
.btn-outline-info:focus-visible,
.btn-info:hover,
.btn-info:focus-visible,
.btn-outline-warning:hover,
.btn-warning:hover,
.btn-warning:focus-visible,
.btn-outline-danger:hover,
.btn-outline-light:hover,
.sci-btn-outline:hover {
    background: var(--brand-primary-soft) !important;
    border-color: var(--brand-primary-hover) !important;
    color: var(--brand-primary-hover) !important;
}

.btn-outline-secondary {
    background: var(--sci-white) !important;
    border-color: var(--border-strong) !important;
    color: var(--brand-dark-grey) !important;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus-visible {
    background: var(--surface-muted) !important;
    border-color: var(--brand-dark-grey) !important;
    color: var(--brand-black) !important;
}

.btn-success:has(.icon-download),
.btn-success:has(.icon-search) {
    background: var(--sci-white) !important;
    border-color: var(--border-strong) !important;
    color: var(--brand-black) !important;
}

.btn-success:has(.icon-download):hover,
.btn-success:has(.icon-search):hover {
    background: var(--surface-muted) !important;
    border-color: var(--brand-dark-grey) !important;
    color: var(--brand-black) !important;
}

.btn-link,
.sci-btn-ghost {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none;
    color: var(--brand-dark-grey) !important;
    font-weight: var(--sci-btn-weight);
    min-height: var(--sci-btn-height);
    padding-inline: 0.65rem;
    text-decoration: none !important;
}

.btn-link:hover,
.btn-link:focus-visible,
.sci-btn-ghost:hover,
.sci-btn-ghost:focus-visible {
    background: var(--surface-muted) !important;
    border-color: transparent !important;
    color: var(--brand-black) !important;
}

.sci-notification-dropdown .noti-head .btn-link {
    font-size: 12px;
    height: auto;
    min-height: 0;
    padding: 0;
}

.btn-danger,
.sci-btn-destructive {
    background: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: var(--sci-white) !important;
}

.btn-danger:hover,
.btn-danger:focus-visible,
.btn-danger:active,
.sci-btn-destructive:hover {
    background: var(--brand-primary-hover) !important;
    border-color: var(--brand-primary-hover) !important;
    color: var(--sci-white) !important;
}

.btn-outline-success,
.sci-btn-success:not(.btn-success) {
    background: var(--sci-white) !important;
    border-color: var(--success) !important;
    color: var(--on-success) !important;
}

.btn-outline-success:hover,
.btn-outline-success:focus-visible,
.sci-btn-success:not(.btn-success):hover {
    background: var(--success-soft) !important;
    border-color: var(--success) !important;
    color: var(--on-success) !important;
}

.sci-btn-success.btn-success,
.btn-success.sci-btn-success,
.btn-success:has(.icon-check):not(:has(.icon-check-circle)):not(:has(.icon-save)) {
    background: var(--success) !important;
    border-color: var(--success) !important;
    color: var(--sci-white) !important;
}

.sci-btn-success.btn-success:hover,
.btn-success.sci-btn-success:hover,
.btn-success:has(.icon-check):not(:has(.icon-check-circle)):not(:has(.icon-save)):hover {
    background: var(--on-success) !important;
    border-color: var(--on-success) !important;
    color: var(--sci-white) !important;
}

.sci-btn-icon,
.btn-close,
.btn.rounded-circle,
.btn-attach,
.btn-send {
    height: var(--sci-btn-height-icon);
    min-height: var(--sci-btn-height-icon);
    min-width: var(--sci-btn-height-icon);
    padding: 0;
    width: var(--sci-btn-height-icon);
}

.btn.rounded-circle,
.btn-attach {
    border-radius: 50% !important;
}

.modal-header .btn-close,
.modal-header .close {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: var(--brand-dark-grey);
    flex: 0 0 auto;
    font-size: 1.35rem;
    height: var(--sci-btn-height-icon);
    line-height: 1;
    margin: 0;
    min-height: var(--sci-btn-height-icon);
    min-width: var(--sci-btn-height-icon);
    opacity: 0.7;
    padding: 0.25rem;
    width: var(--sci-btn-height-icon);
}

.modal-header .close:hover,
.modal-header .btn-close:hover {
    color: var(--brand-black);
    opacity: 1;
}

.pcoded-header .btn:not(.dropdown-item):not(.btn-link) {
    min-height: var(--sci-btn-height-icon);
}

.btn:focus,
.btn-close:focus,
.modal-header .close:focus {
    box-shadow: none;
    outline: 0;
}

.btn:focus-visible,
.btn-check:focus + .btn,
.btn-close:focus-visible,
.modal-header .close:focus-visible {
    box-shadow: var(--sci-btn-focus) !important;
    outline: 2px solid var(--brand-primary);
    outline-offset: 2px;
    opacity: 1;
}

.btn:disabled:not(.is-saving):not(.sci-btn-loading):not([aria-busy="true"]),
.btn.disabled:not(.is-saving):not(.sci-btn-loading):not([aria-busy="true"]),
.btn[aria-disabled="true"] {
    background: var(--surface-muted) !important;
    border-color: var(--border-default) !important;
    box-shadow: none !important;
    color: var(--brand-light-grey) !important;
    cursor: not-allowed;
    opacity: 1;
    pointer-events: none;
}

.btn.is-saving,
.btn.sci-btn-loading,
.btn[aria-busy="true"] {
    cursor: wait;
    pointer-events: none;
    position: relative;
}

.btn.is-saving:not(.sci-form-save)::before,
.btn.sci-btn-loading:not(.sci-form-save)::before,
.btn[aria-busy="true"]:not(.sci-form-save)::before {
    animation: sci-btn-spin 0.7s linear infinite;
    border: 2px solid currentColor;
    border-radius: 50%;
    border-inline-start-color: transparent;
    content: "";
    height: 1rem;
    inset-inline-start: 50%;
    margin-inline-start: -0.5rem;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 1rem;
}

.btn-primary.is-saving:not(.sci-form-save)::before,
.btn-danger.is-saving:not(.sci-form-save)::before,
.btn-success.is-saving:not(.sci-form-save)::before {
    border-color: var(--sci-white);
    border-inline-start-color: transparent;
}

.btn.is-saving:not(.sci-form-save) > *,
.btn.sci-btn-loading:not(.sci-form-save) > *,
.btn[aria-busy="true"]:not(.sci-form-save) > * {
    opacity: 0;
}

.btn .spinner-border {
    border-width: 2px;
    height: 1rem;
    width: 1rem;
}

@keyframes sci-btn-spin {
    to {
        transform: translateY(-50%) rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .btn.is-saving:not(.sci-form-save)::before,
    .btn.sci-btn-loading:not(.sci-form-save)::before,
    .btn[aria-busy="true"]:not(.sci-form-save)::before {
        animation: none;
        border-inline-start-color: currentColor;
        opacity: 0.65;
    }
}

/* =============================================================================
   Shared form fields — one control design for every module
   ============================================================================= */

.sci-field,
.form-group,
.mb-3:has(> .form-label),
.mb-3:has(> .form-control),
.mb-3:has(> .form-select) {
    min-width: 0;
}

.form-label,
.sci-field-label,
label:not(.form-check-label):not(.cr):not(.reach-basis-option):not(.reach-period-label):not(.sci-index-per-page-label) {
    color: var(--brand-dark-grey);
    display: flex;
    flex-wrap: wrap;
    font-family: var(--font-body);
    font-size: var(--sci-field-label);
    font-weight: 700;
    gap: 0.2rem;
    line-height: 1.35;
    margin-block-end: 0.375rem;
}

.form-label .text-danger,
.sci-required-indicator,
.text-danger {
    color: var(--brand-primary-hover) !important;
}

.form-control,
.form-select,
select.form-control,
textarea.form-control,
.input-group-text,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    background-color: var(--sci-white) !important;
    border: 1px solid var(--sci-field-border) !important;
    border-radius: var(--sci-field-radius) !important;
    color: var(--brand-black);
    font-family: var(--font-body);
    font-size: var(--sci-field-font);
    min-height: var(--sci-field-height);
    transition: border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}

.form-control,
.form-select,
select.form-control {
    padding-block: var(--sci-field-pad-y);
    padding-inline: var(--sci-field-pad-x);
    width: 100%;
}

.form-select:not([multiple]):not([size]),
.form-select[size="1"],
select.form-control:not([multiple]):not([size]) {
    background-position: right 0.75rem center;
    padding-inline-end: 2.5rem;
}

[dir="rtl"] .form-select:not([multiple]):not([size]),
[dir="rtl"] .form-select[size="1"],
[dir="rtl"] select.form-control:not([multiple]):not([size]) {
    background-position: left 0.75rem center;
}

textarea.form-control {
    min-height: 5.5rem;
    resize: vertical;
}

input[type="date"].form-control,
input[type="datetime-local"].form-control,
input[type="month"].form-control,
input[type="time"].form-control,
input[type="week"].form-control,
input[type="number"].form-control {
    min-height: var(--sci-field-height);
}

.form-control::placeholder,
.form-control::-webkit-input-placeholder,
.form-select::placeholder,
textarea.form-control::placeholder,
.select2-container--default .select2-selection--single .select2-selection__placeholder,
.select2-container--default .select2-selection--multiple .select2-search__field::placeholder {
    color: var(--brand-light-grey) !important;
    opacity: 1;
}

.form-control::-moz-placeholder,
textarea.form-control::-moz-placeholder {
    color: var(--brand-light-grey);
    opacity: 1;
}

.input-group > .form-control:focus,
.input-group > .form-select:focus,
.form-control:focus,
.form-select:focus,
.form-control:focus-visible,
.form-select:focus-visible,
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--multiple {
    background-color: var(--sci-white) !important;
    border-color: var(--brand-primary) !important;
    box-shadow: var(--sci-field-focus) !important;
    color: var(--brand-black);
    outline: 0;
}

.form-control:disabled,
.form-control[readonly],
.form-select:disabled,
select:disabled,
.calculated-field,
.form-control.calculated-field,
.select2-container--default.select2-container--disabled .select2-selection--single,
.select2-container--default.select2-container--disabled .select2-selection--multiple {
    background: var(--surface-muted) !important;
    color: var(--brand-dark-grey);
    cursor: not-allowed;
    opacity: 1;
}

.input-group-text {
    align-items: center;
    background: var(--surface-muted);
    color: var(--brand-dark-grey);
    display: flex;
    justify-content: center;
    min-width: var(--sci-field-height);
    padding-inline: 0.75rem;
}

.input-group > .form-control,
.input-group > .form-select {
    min-height: var(--sci-field-height);
}

.form-check {
    align-items: flex-start;
    display: flex;
    gap: 0.5rem;
    min-height: 1.5rem;
    padding-inline-start: 0;
}

.form-check-input {
    border: 1.5px solid var(--sci-field-border);
    flex: 0 0 auto;
    height: 1.15rem;
    margin-block-start: 0.15rem;
    margin-inline: 0;
    width: 1.15rem;
}

.form-check-input[type="checkbox"] {
    border-radius: 3px;
}

.form-check-input[type="radio"] {
    border-radius: 50%;
}

.form-check-input:checked {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.form-check-input:focus,
.form-check-input:focus-visible {
    border-color: var(--brand-primary);
    box-shadow: var(--sci-field-focus);
}

.form-check-input:disabled {
    opacity: 0.55;
}

.form-check-label {
    color: var(--brand-black);
    font-family: var(--font-body);
    font-size: var(--sci-field-font);
    font-weight: 400;
    line-height: 1.4;
}

.form-switch {
    align-items: center;
    min-height: var(--sci-field-height);
    padding-inline-start: 0;
}

.form-switch .form-check-input {
    background-color: var(--surface-muted);
    border-color: var(--sci-field-border);
    height: 1.35rem;
    margin-block-start: 0;
    width: 2.5rem;
}

.form-switch .form-check-input:checked {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.checkbox,
.radio {
    align-items: center;
    display: inline-flex;
    margin-inline-end: 0.75rem;
    min-height: auto;
    padding-block: 0.25rem;
}

.checkbox input[type="checkbox"] + .cr:before,
.radio input[type="radio"] + .cr:before,
.radio input[type="radio"] + .cr:after {
    border-color: var(--sci-field-border);
}

.checkbox input[type="checkbox"]:checked + .cr:before,
.checkbox.checkbox-primary input[type="checkbox"]:checked + .cr:before,
.checkbox.checkbox-fill.checkbox-primary input[type="checkbox"]:checked + .cr:before,
.radio input[type="radio"]:checked + .cr:before,
.radio.radio-primary input[type="radio"]:checked + .cr:before,
.radio.radio-primary input[type="radio"]:checked + .cr:after {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: var(--sci-white);
}

.checkbox input[type="checkbox"]:focus-visible + .cr:before,
.radio input[type="radio"]:focus-visible + .cr:before {
    box-shadow: var(--sci-field-focus);
}

[dir="rtl"] .checkbox input[type="checkbox"] + .cr:before,
[dir="rtl"] .radio input[type="radio"] + .cr:before {
    margin-inline: 0 10px;
}

input[type="file"].form-control {
    padding-block: 0.35rem;
    padding-inline: 0.5rem;
}

input[type="file"].form-control::file-selector-button,
input[type="file"].form-control::-webkit-file-upload-button {
    background: var(--surface-muted);
    border: 1px solid var(--sci-field-border);
    border-radius: var(--sci-field-radius);
    color: var(--brand-black);
    cursor: pointer;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 700;
    margin-inline-end: 0.75rem;
    padding: 0.35rem 0.75rem;
}

input[type="file"].form-control:hover::file-selector-button {
    background: var(--sci-white);
    border-color: var(--brand-primary);
    color: var(--brand-primary);
}

.form-control.is-invalid,
.form-select.is-invalid,
select.is-invalid,
textarea.is-invalid,
.was-validated .form-control:invalid,
.was-validated .form-select:invalid,
.select2-container.is-invalid .select2-selection--single,
.select2-container.is-invalid .select2-selection--multiple,
.select2-hidden-accessible.is-invalid + .select2-container .select2-selection--single,
.select2-hidden-accessible.is-invalid + .select2-container .select2-selection--multiple,
.sci-field.is-invalid .form-control,
.sci-field.is-invalid .form-select,
.form-group.has-error .form-control,
.form-group.has-error .form-select,
.mb-3.has-error .form-control,
.mb-3.has-error .form-select {
    background-image: none;
    border-color: var(--brand-primary) !important;
}

.form-control.is-invalid:focus,
.form-select.is-invalid:focus,
.select2-container.is-invalid.select2-container--focus .select2-selection--single,
.select2-container.is-invalid.select2-container--open .select2-selection--single,
.form-group.has-error .form-control:focus,
.mb-3.has-error .form-control:focus {
    box-shadow: var(--sci-field-focus) !important;
}

.sci-field-error,
.invalid-feedback,
.form-group > .text-danger.text-left,
.form-group > span.text-danger,
.mb-3 > .text-danger.small,
.mb-3 > .invalid-feedback,
.valid-feedback {
    align-items: flex-start;
    display: flex;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    gap: 0.35rem;
    line-height: 1.35;
    margin-block-start: 0.35rem;
}

.sci-field-error,
.invalid-feedback,
.form-group > .text-danger.text-left,
.form-group > span.text-danger,
.mb-3 > .text-danger.small {
    color: var(--brand-primary-hover) !important;
}

.sci-field-error > .feather,
.invalid-feedback > .feather,
.form-group > .text-danger.text-left > .feather,
.form-group > span.text-danger > .feather,
.mb-3 > .text-danger.small > .feather {
    flex: 0 0 auto;
    font-size: 0.95rem;
    line-height: 1.2;
    margin-block-start: 0.05rem;
}

.form-control.is-valid,
.form-select.is-valid {
    background-image: none;
    border-color: var(--success);
}

.valid-feedback {
    color: var(--on-success) !important;
}

.form-text,
.sci-field-help,
small.form-text {
    color: var(--brand-dark-grey);
    display: block;
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1.4;
    margin-block-start: 0.3rem;
}

.select2-container {
    display: block;
    max-width: 100%;
    width: 100% !important;
}

.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    min-height: var(--sci-field-height) !important;
    padding-block: 0.2rem !important;
    padding-inline: var(--sci-field-pad-x) !important;
}

.select2-container--default .select2-selection--single {
    height: var(--sci-field-height) !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--brand-black) !important;
    line-height: 1.4 !important;
    padding-inline: 0 1.5rem !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: calc(var(--sci-field-height) - 2px) !important;
    inset-inline-end: 0.4rem !important;
    inset-inline-start: auto !important;
}

.select2-container--default .select2-selection--single .select2-selection__clear {
    margin-inline-end: 0.5rem;
}

.select2-dropdown {
    border: 1px solid var(--sci-field-border);
    border-radius: var(--sci-field-radius);
    box-shadow: var(--shadow-md);
    z-index: 2000;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
    border: 1px solid var(--sci-field-border);
    border-radius: var(--sci-field-radius);
    min-height: 36px;
    padding-inline: 0.65rem;
}

.select2-container--default .select2-search--dropdown .select2-search__field:focus {
    border-color: var(--brand-primary);
    box-shadow: var(--sci-field-focus);
    outline: 0;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: var(--brand-primary);
    color: var(--sci-white);
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background: var(--brand-primary-soft) !important;
    border-color: rgba(218, 41, 28, 0.2) !important;
    border-radius: var(--sci-field-radius) !important;
    color: var(--brand-primary-hover) !important;
    margin-block: 0.15rem;
    padding: 0.15rem 0.45rem;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: var(--brand-primary-hover) !important;
    margin-inline-end: 0.3rem;
}

.select2-container--default .select2-selection--multiple .select2-search__field {
    margin-block: 0;
    min-height: 1.5rem;
}

.tox-tinymce,
.note-editor.note-frame,
.ql-toolbar,
.ql-container {
    border: 1px solid var(--sci-field-border) !important;
    border-radius: var(--sci-field-radius) !important;
}

.tox-tinymce:focus-within,
.note-editor.note-frame.note-focus,
.ql-container.ql-snow:focus-within {
    border-color: var(--brand-primary) !important;
    box-shadow: var(--sci-field-focus);
}

.tox .tox-toolbar,
.tox .tox-menubar,
.ql-toolbar.ql-snow {
    background: var(--surface-muted) !important;
    border-color: var(--border-default) !important;
}

.calculated-field,
.form-control.calculated-field,
.readonly-field,
.form-control.readonly-field {
    background: var(--surface-muted) !important;
    color: var(--brand-dark-grey);
    cursor: not-allowed;
    opacity: 1;
}

.status_change,
.status_close,
.member_status_change {
    display: none;
}

.item-unit-label {
    color: var(--brand-dark-grey);
    font-size: 0.75rem;
    margin-block-start: 0.25rem;
}

.member-card,
.action-point-card,
.detail-card,
.participant-card {
    background: var(--surface-muted);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm);
    margin-block-end: 1rem;
    padding: 1rem;
}

.participant-card {
    background: var(--sci-white);
    padding: 1rem 1rem 0;
}

.member-section-title,
.action-point-section-title,
.detail-section-title,
.participant-card-title {
    color: var(--brand-primary);
    font-family: var(--font-heading);
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0.25rem 0 0.75rem;
}

.calculation-value {
    background-color: var(--surface-muted);
    font-weight: 600;
}

fieldset,
.form-section {
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    margin-block-end: var(--space-5);
    padding: var(--space-5);
}

legend,
.form-section-title,
.card-body > h6[style*="color"] {
    color: var(--brand-primary) !important;
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
}

html.sci-theme-dark .form-control,
html.sci-theme-dark .form-select,
html.sci-theme-dark .select2-container--default .select2-selection--single,
html.sci-theme-dark .select2-container--default .select2-selection--multiple {
    background-color: var(--surface-card) !important;
}

/* Tables, lists and pagination */
.table-responsive {
    -webkit-overflow-scrolling: touch;
    border-radius: var(--radius-md);
    overflow-x: auto;
}

.table {
    border-color: var(--border-default);
    color: var(--brand-black);
    font-family: var(--font-body);
    font-size: 0.875rem;
    margin-block-end: 0;
}

.table > :not(caption) > * > * {
    border-color: var(--border-subtle);
    font-variant-numeric: tabular-nums;
    padding: 0.625rem 0.875rem;
    vertical-align: middle;
}

.table thead th,
table thead th {
    background: var(--surface-muted) !important;
    border-block-end: 1px solid var(--border-default) !important;
    color: var(--brand-dark-grey) !important;
    font-family: var(--font-body) !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em;
    line-height: 1.3;
    text-transform: uppercase;
    white-space: nowrap;
}

.table thead th a,
table thead th a,
th > a {
    color: var(--brand-dark-grey) !important;
    font-family: var(--font-body);
    font-weight: 700;
    text-decoration: none;
}

.table thead th a:hover,
.table thead th a:focus-visible,
th > a:hover,
th > a:focus-visible {
    color: var(--brand-primary) !important;
}

.table tbody td {
    color: var(--brand-black);
    font-family: var(--font-body);
    min-height: 44px;
}

.table tbody td:empty::before {
    color: var(--brand-dark-grey);
    content: "—";
}

.sci-index-empty-row td:empty::before,
.table td.sci-col-actions:empty::before {
    content: none;
}

.table-hover > tbody > tr:hover > *,
.table tbody tr:hover > * {
    background: var(--surface-muted);
    color: var(--brand-black);
}

.table tbody tr.selected > *,
.table tbody tr.is-selected > *,
.table tbody tr[aria-selected="true"] > * {
    background: var(--brand-primary-soft) !important;
    box-shadow: inset 3px 0 0 var(--brand-primary);
}

[dir="rtl"] .table tbody tr.selected > *,
[dir="rtl"] .table tbody tr.is-selected > *,
[dir="rtl"] .table tbody tr[aria-selected="true"] > * {
    box-shadow: inset -3px 0 0 var(--brand-primary);
}

.table td.text-end,
.table th.text-end,
.table td.text-right,
.table th.text-right,
.table td[data-type="number"] {
    font-variant-numeric: tabular-nums;
    text-align: end;
}

.table tbody td:has(> input[type="checkbox"]),
.table thead th:has(> input[type="checkbox"]) {
    text-align: center;
    width: 2.5rem;
}

.table input[type="checkbox"] {
    accent-color: var(--brand-primary);
    height: 1.05rem;
    margin: 0;
    width: 1.05rem;
}

.table .badge {
    font-family: var(--font-body);
    font-weight: 700;
}

.dataTable-sorter::before,
.dataTable-sorter::after {
    opacity: 0.55;
}

.dataTable-sorter:hover,
.dataTable-sorter:focus-visible {
    color: var(--brand-primary) !important;
}

.pagination {
    gap: var(--space-1);
}

.page-link {
    align-items: center;
    border-color: var(--border-default);
    border-radius: var(--sci-btn-radius) !important;
    color: var(--brand-dark-grey);
    display: inline-flex;
    font-family: var(--font-body);
    font-size: var(--sci-btn-font);
    font-weight: var(--sci-btn-weight);
    justify-content: center;
    min-height: var(--sci-btn-height-icon);
    min-width: var(--sci-btn-height-icon);
    padding: 0.35rem 0.65rem;
    text-align: center;
}

.page-link:hover {
    background: var(--brand-primary-soft);
    border-color: var(--brand-primary);
    color: var(--brand-primary-hover);
    box-shadow: none;
}

.page-link:focus-visible {
    background: var(--brand-primary-soft);
    border-color: var(--brand-primary);
    box-shadow: var(--sci-btn-focus);
    color: var(--brand-primary-hover);
    outline: 2px solid var(--brand-primary);
    outline-offset: 2px;
}

.page-item.active .page-link {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: var(--sci-white);
}

/* Semantic badges and utility remapping */
.badge {
    border-radius: var(--radius-sm);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    padding: 0.35rem 0.55rem;
}

.sci-status-badge {
    align-items: center;
    border-radius: var(--radius-sm);
    display: inline-flex;
    flex-direction: row;
    font-family: var(--font-body);
    font-weight: 700;
    gap: 0.3rem;
    letter-spacing: 0.01em;
    line-height: 1.25;
    max-width: min(100%, 16rem);
    text-align: start;
    vertical-align: middle;
    white-space: normal;
}

.sci-status-badge__label {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.sci-status-badge .feather {
    flex: 0 0 auto;
    font-size: 0.85em;
    line-height: 1;
}

.sci-status-badge--sm {
    font-size: 0.6875rem;
    padding: 0.22rem 0.5rem;
}

.sci-status-badge--md {
    font-size: 0.75rem;
    padding: 0.32rem 0.65rem;
}

.sci-status-badge--success {
    background: var(--success-soft);
    color: var(--on-success);
}

.sci-status-badge--warning {
    background: var(--warning-soft);
    color: var(--on-warning);
}

.sci-status-badge--danger {
    background: var(--danger-soft);
    color: var(--on-danger);
}

.sci-status-badge--info {
    background: var(--info-soft);
    color: var(--on-info);
}

.sci-status-badge--neutral {
    background: var(--surface-muted);
    color: var(--brand-dark-grey);
}

.badge.bg-success,
.bg-success.badge {
    background: var(--success-soft) !important;
    color: var(--on-success) !important;
}

.badge.bg-warning,
.bg-warning.badge {
    background: var(--warning-soft) !important;
    color: var(--on-warning) !important;
}

.badge.bg-danger,
.bg-danger.badge {
    background: var(--danger-soft) !important;
    color: var(--on-danger) !important;
}

.badge.bg-info,
.bg-info.badge,
.badge.bg-primary,
.bg-primary.badge {
    background: var(--info-soft) !important;
    color: var(--on-info) !important;
}

.badge.bg-secondary,
.bg-secondary.badge,
.badge.bg-dark,
.bg-dark.badge,
.badge.bg-light,
.bg-light.badge {
    background: var(--surface-muted) !important;
    color: var(--brand-dark-grey) !important;
}

.sci-tag {
    align-items: center;
    background: var(--surface-muted);
    border: 1px solid var(--sci-biscuit);
    border-radius: var(--radius-sm);
    color: var(--brand-dark-grey);
    display: inline-flex;
    font-family: var(--font-body);
    font-size: 0.6875rem;
    font-weight: 600;
    line-height: 1.25;
    max-width: min(100%, 16rem);
    padding: 0.22rem 0.5rem;
    text-align: start;
    vertical-align: middle;
    white-space: normal;
}

[dir="rtl"] .sci-status-badge {
    text-align: start;
}

.dq-severity,
.sci-overview-dq-severity {
    align-items: center;
    border-radius: var(--radius-sm);
    display: inline-flex;
    font-family: var(--font-body);
    font-size: 0.6875rem;
    font-weight: 700;
    justify-content: center;
    letter-spacing: 0.01em;
    line-height: 1.25;
    padding: 0.22rem 0.5rem;
    text-align: start;
    white-space: normal;
}

.dq-severity--critical,
.sci-overview-dq-severity--critical {
    background: var(--danger-soft);
    color: var(--on-danger);
}

.dq-severity--warning,
.sci-overview-dq-severity--warning {
    background: var(--warning-soft);
    color: var(--on-warning);
}

.dq-severity--info,
.sci-overview-dq-severity--info {
    background: var(--info-soft);
    color: var(--on-info);
}

.text-red,
.text-primary {
    color: var(--brand-primary) !important;
}

.text-dark {
    color: var(--brand-black) !important;
}

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

.text-warning {
    color: #7a5400 !important;
}

.bg-primary,
.background-red {
    background-color: var(--brand-primary) !important;
}

/* Alerts, toasts, validation and loading */
.alert {
    align-items: flex-start;
    border: 1px solid transparent;
    border-inline-start-width: 4px;
    border-radius: var(--radius-sm);
    display: flex;
    gap: var(--space-3);
    line-height: 1.45;
}

.alert-success {
    background: var(--success-soft);
    border-color: var(--success);
    color: #174d39;
}

.alert-danger {
    background: var(--danger-soft);
    border-color: var(--danger);
    color: #76140d;
}

.alert-warning {
    background: var(--warning-soft);
    border-color: var(--warning);
    color: #5c4000;
}

.alert-info,
.alert-primary {
    background: var(--info-soft);
    border-color: var(--info);
    color: #005c62;
}

#toast-container,
.fl-wrapper,
.fl-container,
#flasher-container {
    display: none !important;
}

.sci-toast-region {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    inset-block-start: 4.75rem;
    inset-inline-end: 1rem;
    inset-inline-start: auto;
    max-width: min(26rem, calc(100vw - 2rem));
    pointer-events: none;
    position: fixed;
    width: 26rem;
    z-index: 10850;
}

.sci-toast {
    align-items: flex-start;
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-inline-start-width: 4px;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-md);
    display: flex;
    gap: 0.75rem;
    overflow: hidden;
    padding: 0.85rem 0.85rem 0.85rem 0.9rem;
    pointer-events: auto;
    position: relative;
}

.sci-toast__icon {
    flex: 0 0 auto;
    font-size: 1.1rem;
    line-height: 1;
    margin-block-start: 0.1rem;
}

.sci-toast__body {
    flex: 1 1 auto;
    min-width: 0;
}

.sci-toast__title {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 0.15rem;
}

.sci-toast__message {
    color: var(--brand-dark-grey);
    font-size: 0.875rem;
    line-height: 1.45;
    margin: 0;
    overflow-wrap: anywhere;
}

.sci-toast__close {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: var(--radius-sm);
    color: var(--brand-dark-grey);
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 auto;
    height: 1.75rem;
    justify-content: center;
    margin: -0.2rem -0.2rem 0 0;
    width: 1.75rem;
}

.sci-toast__close:hover,
.sci-toast__close:focus-visible {
    background: var(--surface-muted);
    color: var(--brand-black);
    outline: 2px solid var(--brand-primary);
    outline-offset: 1px;
}

.sci-toast__progress {
    animation: sci-toast-progress var(--sci-toast-duration, 5s) linear forwards;
    block-size: 3px;
    inline-size: 100%;
    inset-block-end: 0;
    inset-inline-start: 0;
    position: absolute;
    transform-origin: inline-start;
}

.sci-toast.is-paused .sci-toast__progress {
    animation-play-state: paused;
}

.sci-toast--success {
    border-inline-start-color: var(--sci-green);
}

.sci-toast--success .sci-toast__icon {
    background: transparent;
    color: var(--sci-green);
}

.sci-toast--success .sci-toast__progress {
    background: var(--sci-green);
}

.sci-toast--error {
    border-inline-start-color: var(--sci-red);
}

.sci-toast--error .sci-toast__icon {
    color: var(--sci-red);
}

.sci-toast--error .sci-toast__progress {
    background: var(--sci-red);
}

.sci-toast--warning {
    border-inline-start-color: var(--sci-mustard);
}

.sci-toast--warning .sci-toast__icon {
    color: var(--on-warning);
}

.sci-toast--warning .sci-toast__progress {
    background: var(--sci-mustard);
}

.sci-toast--info {
    border-inline-start-color: var(--sci-teal);
}

.sci-toast--info .sci-toast__icon {
    color: var(--sci-teal);
}

.sci-toast--info .sci-toast__progress {
    background: var(--sci-teal);
}

.sci-toast--success .sci-toast__icon { background: transparent; }

@media (max-width: 575.98px) {
    .sci-toast-region {
        inset-block-end: 1rem;
        inset-block-start: auto;
        inset-inline: 0.75rem;
        max-width: none;
        width: auto;
    }
}

@keyframes sci-toast-progress {
    from { transform: scaleX(1); }
    to { transform: scaleX(0); }
}

.sci-alert {
    align-items: flex-start;
    border: 1px solid transparent;
    border-inline-start-width: 4px;
    border-radius: var(--radius-sm);
    display: flex;
    gap: 0.75rem;
    line-height: 1.45;
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
}

.sci-alert__title {
    font-family: var(--font-heading);
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0 0 0.2rem;
}

.sci-alert__message {
    margin: 0;
}

.sci-alert__list {
    margin: 0.4rem 0 0;
    padding-inline-start: 1.1rem;
}

.sci-alert--success {
    background: var(--success-soft);
    border-color: var(--success);
    color: var(--on-success);
}

.sci-alert--error {
    background: var(--danger-soft);
    border-color: var(--danger);
    color: var(--on-danger);
}

.sci-alert--warning {
    background: var(--warning-soft);
    border-color: var(--warning);
    color: var(--on-warning);
}

.sci-alert--info {
    background: var(--info-soft);
    border-color: var(--info);
    color: var(--on-info);
}

.swal-overlay {
    background-color: rgba(34, 34, 33, 0.48);
}

.swal-modal,
.sci-swal,
.sci-swal--danger {
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    font-family: var(--font-body);
    overflow: hidden;
    padding: 1.5rem 1.5rem 1.25rem;
}

.swal-title {
    color: var(--brand-black) !important;
    font-family: var(--font-heading);
    font-size: 1.35rem;
    font-weight: 600;
    margin: 0 0 0.5rem;
    padding: 0;
}

.swal-text {
    color: var(--brand-dark-grey) !important;
    font-size: 0.9375rem;
    line-height: 1.5;
    margin: 0 auto 0.25rem;
    max-width: 28rem;
    padding: 0;
}

.swal-icon {
    margin-block: 0.25rem 0.75rem;
}

.swal-icon--warning {
    border-color: var(--sci-mustard) !important;
}

.swal-icon--warning__body,
.swal-icon--warning__dot {
    background-color: var(--sci-mustard) !important;
}

.swal-icon--info {
    border-color: var(--sci-teal) !important;
}

.swal-icon--info:after,
.swal-icon--info:before {
    background-color: var(--sci-teal) !important;
}

.swal-icon--success {
    border-color: var(--sci-green) !important;
}

.swal-icon--success__line {
    background-color: var(--sci-green) !important;
}

.swal-icon--error {
    border-color: var(--brand-primary) !important;
}

.swal-icon--error__line {
    background-color: var(--brand-primary) !important;
}

.swal-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: flex-end;
    margin: 1.25rem 0 0;
    padding: 1rem 0 0;
    text-align: end;
}

.swal-button-container {
    margin: 0;
}

.swal-button {
    align-items: center;
    border: 1px solid transparent;
    border-radius: var(--sci-btn-radius) !important;
    box-shadow: none !important;
    display: inline-flex;
    font-family: var(--font-body) !important;
    font-size: var(--sci-btn-font) !important;
    font-weight: var(--sci-btn-weight) !important;
    justify-content: center;
    min-height: var(--sci-btn-height);
    padding: 0.5rem var(--sci-btn-pad-x) !important;
}

.swal-button--confirm,
.swal-button--danger {
    background: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: var(--sci-white) !important;
}

.swal-button--confirm:not([disabled]):hover,
.swal-button--confirm:focus,
.swal-button--danger:not([disabled]):hover,
.swal-button--danger:focus {
    background: var(--brand-primary-hover) !important;
    border-color: var(--brand-primary-hover) !important;
}

.swal-button--cancel {
    background: var(--sci-white) !important;
    border-color: var(--border-strong) !important;
    color: var(--brand-black) !important;
}

.swal-button--cancel:not([disabled]):hover,
.swal-button--cancel:focus {
    background: var(--surface-muted) !important;
    border-color: var(--brand-dark-grey) !important;
    color: var(--brand-black) !important;
}

.swal-button:focus {
    box-shadow: 0 0 0 3px var(--brand-primary-focus) !important;
}

.sci-swal--danger {
    max-width: calc(100vw - 2rem);
    padding: 1.75rem 1.5rem 1.25rem;
    width: 28rem;
}

.sci-swal--danger .swal-icon--warning {
    animation: none !important;
    border-color: var(--brand-primary) !important;
}

.sci-swal--danger .swal-icon--warning__body,
.sci-swal--danger .swal-icon--warning__dot {
    background-color: var(--brand-primary) !important;
}

.sci-swal--danger .swal-title {
    font-size: 1.5rem;
    margin-block-end: 0.75rem;
}

.sci-swal--danger .swal-text {
    background: var(--danger-soft);
    border: 1px solid rgba(218, 41, 28, 0.18);
    border-radius: var(--radius-sm);
    color: #76140d !important;
    margin: 0 auto;
    max-width: 100%;
    padding: 0.75rem 0.875rem;
    text-align: start;
}

.sci-swal--danger .swal-footer {
    border-block-start: 1px solid var(--border-default);
    margin-block-start: 1.25rem;
    padding-block-start: 1rem;
}

.sci-swal--danger .swal-button--confirm,
.sci-swal--danger .swal-button--danger {
    min-width: 7.5rem;
}

.loader-bg {
    background: var(--surface-page);
}

.loader-track {
    background: var(--border-default);
}

.loader-fill,
.progress-bar,
.spinner-border.text-danger,
.spinner-border.text-red {
    color: var(--brand-primary) !important;
}

.progress-bar,
.loader-fill {
    background: var(--brand-primary) !important;
}

/* Authentication */
.sci-auth-page {
    background: var(--surface-page);
    min-height: 100vh;
}

.sci-auth-shell {
    display: grid;
    grid-template-columns: minmax(280px, 0.85fr) minmax(360px, 1.15fr);
    min-height: 100vh;
}

.sci-auth-brand {
    align-items: flex-start;
    background: var(--sci-white);
    border-inline-end: 1px solid var(--border-default);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    padding: clamp(2rem, 6vw, 5rem);
    position: relative;
}

.sci-auth-brand::before {
    background: var(--brand-primary);
    content: "";
    height: 8px;
    inset-block-start: 0;
    inset-inline: 0;
    position: absolute;
}

.sci-auth-logo {
    height: auto;
    max-width: 240px;
    position: relative;
    width: min(100%, 240px);
    z-index: 1;
}

.sci-auth-intro {
    max-width: 35rem;
    position: relative;
    z-index: 1;
}

.sci-auth-intro h1 {
    border-inline-start: 5px solid var(--brand-primary);
    margin-block-end: var(--space-4);
    padding-inline-start: var(--space-4);
}

.sci-auth-product-title span {
    display: block;
}

.sci-auth-product-title span:last-child {
    font-size: clamp(1.5rem, 2.4vw, 2.25rem);
    white-space: nowrap;
}

.sci-auth-intro p {
    color: var(--brand-dark-grey);
    font-size: 1rem;
}

.sci-auth-form-panel {
    align-items: center;
    display: flex;
    justify-content: center;
    padding: clamp(1.5rem, 5vw, 4rem);
}

.sci-auth-card {
    max-width: 440px;
    width: 100%;
}

.sci-auth-card .card {
    border-block-start: 4px solid var(--brand-primary);
    box-shadow: var(--shadow-md);
}

.sci-auth-card .card-body {
    padding: clamp(1.5rem, 4vw, 2.5rem);
}

.sci-auth-card .input-group .text-danger {
    flex-basis: 100%;
    margin-block-start: var(--space-1);
}

.sci-auth-mobile-logo {
    display: none;
    max-width: 210px;
}

.sci-auth-footer {
    color: var(--brand-dark-grey);
    font-size: 0.75rem;
    max-width: 34rem;
    position: relative;
    z-index: 1;
}

/* Shared empty, loading, and error states: see .sci-state below */

/* Responsive and bidirectional behavior */
@media (max-width: 991.98px) {
    .pcoded-header .m-header {
        border-inline-end: 0;
        padding-inline: 54px;
    }

    .pcoded-header .b-brand .logo {
        max-width: 140px;
    }

    .sci-page-title-row .btn {
        margin-block-start: var(--space-3);
        width: 100%;
    }

    .sci-auth-shell {
        grid-template-columns: 1fr;
    }

    .sci-auth-brand {
        display: none;
    }

    .sci-auth-mobile-logo {
        display: block;
        margin-block-end: var(--space-5);
    }

    .dashboard-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .dashboard-header-actions {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }

    .dashboard-data-status {
        justify-content: flex-start;
    }

    .dashboard-header-actions .btn {
        margin-block-start: 0;
    }

    .dashboard-section-heading p {
        text-align: start;
    }

    .dashboard-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-kpi-grid--focal-point {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-insights-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .dashboard-view-switcher {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .pcoded-content {
        padding: 0.875rem;
    }

    .dashboard-kpi-grid {
        grid-template-columns: 1fr;
    }

    .dashboard-metric-card .card-body,
    .dashboard-metric-card--support .card-body {
        min-height: 104px;
        padding: var(--space-4);
    }

    .dashboard-insights-toolbar {
        padding: var(--space-4);
    }

    .dashboard-chart-card-header {
        align-items: stretch;
        flex-direction: column;
    }

    .dashboard-metric-switcher {
        width: 100%;
    }

    .dashboard-focus-card {
        align-items: start;
        grid-template-columns: auto minmax(0, 1fr);
    }

    .dashboard-focus-card .btn {
        grid-column: 1 / -1;
        width: 100%;
    }

    .page-header-title h5,
    .page-header-title h4,
    .page-header-title h3 {
        font-size: 1.4rem;
    }

    .card-header,
    .card-body,
    .card-block,
    .card-footer,
    .modal-header,
    .modal-body,
    .modal-footer {
        padding: var(--space-4);
    }

    .modal-dialog {
        margin: var(--space-3);
    }

    .modal-footer {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .modal-footer .btn {
        margin: 0;
        width: 100%;
    }

    .swal-footer {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .swal-button {
        margin: 0 !important;
        width: 100%;
    }

    .btn:not(.btn-sm):not(.dropdown-toggle) {
        min-height: 44px;
    }

    .sci-auth-form-panel {
        padding: 1rem;
    }
}

[dir="rtl"] .float-end {
    float: left !important;
}

[dir="rtl"] .float-start {
    float: right !important;
}

.dropdown-menu-end {
    inset-inline-end: 0;
    inset-inline-start: auto;
}

[dir="rtl"] .pcoded-header .m-header .mobile-menu {
    inset-inline-end: auto;
    inset-inline-start: 0;
}

[dir="rtl"] .breadcrumb-item + .breadcrumb-item::before {
    float: right;
    padding-inline: 0.5rem 0;
}

[dir="rtl"] .feather.icon-arrow-left,
[dir="rtl"] .feather.icon-arrow-right,
[dir="rtl"] .feather.icon-chevron-left,
[dir="rtl"] .feather.icon-chevron-right {
    transform: scaleX(-1);
}

/* System settings: backup, restore and active sessions */
.sci-settings-shell {
    max-width: 1280px;
}

.sci-settings-hero {
    align-items: center;
    background:
        radial-gradient(circle at 90% 10%, rgba(0, 156, 166, 0.14), transparent 34%),
        linear-gradient(135deg, var(--surface-card), var(--info-soft));
    border: 1px solid var(--border-default);
    border-block-start: 4px solid var(--sci-teal);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: var(--space-4);
    grid-template-columns: auto minmax(0, 1fr) auto;
    margin-block-end: var(--space-5);
    overflow: hidden;
    padding: clamp(1.25rem, 2.5vw, 2rem);
    position: relative;
}

.sci-settings-hero.is-danger {
    background:
        radial-gradient(circle at 90% 10%, rgba(218, 41, 28, 0.15), transparent 34%),
        linear-gradient(135deg, var(--surface-card), var(--danger-soft));
    border-block-start-color: var(--danger);
}

.sci-settings-hero.is-sessions {
    background:
        radial-gradient(circle at 90% 10%, rgba(174, 144, 195, 0.2), transparent 34%),
        linear-gradient(135deg, var(--surface-card), rgba(174, 144, 195, 0.1));
    border-block-start-color: var(--sci-purple);
}

.sci-settings-hero.is-retention {
    background:
        radial-gradient(circle at 90% 10%, rgba(0, 156, 166, 0.18), transparent 34%),
        linear-gradient(135deg, var(--surface-card), rgba(0, 113, 188, 0.08));
    border-block-start-color: var(--sci-blue);
}

.sci-settings-hero-icon {
    align-items: center;
    background: var(--sci-teal);
    border-radius: 50%;
    box-shadow: 0 8px 20px rgba(0, 156, 166, 0.2);
    color: var(--sci-white);
    display: flex;
    font-size: 1.7rem;
    height: 64px;
    justify-content: center;
    width: 64px;
}

.is-danger .sci-settings-hero-icon {
    background: var(--danger);
    box-shadow: 0 8px 20px rgba(218, 41, 28, 0.2);
}

.is-sessions .sci-settings-hero-icon {
    background: #75558b;
    box-shadow: 0 8px 20px rgba(117, 85, 139, 0.22);
}

.is-retention .sci-settings-hero-icon {
    background: var(--sci-blue);
    box-shadow: 0 8px 20px rgba(0, 113, 188, 0.22);
}

.sci-settings-eyebrow {
    color: var(--sci-teal);
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    margin-block-end: 0.25rem;
    text-transform: uppercase;
}

.is-danger .sci-settings-eyebrow { color: var(--danger); }
.is-sessions .sci-settings-eyebrow { color: #75558b; }
.is-retention .sci-settings-eyebrow { color: var(--sci-blue); }

.sci-settings-hero-copy h2 {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: clamp(1.45rem, 2.3vw, 2rem);
    margin: 0 0 0.35rem;
}

.sci-settings-hero-copy p {
    color: var(--brand-dark-grey);
    font-size: 0.98rem;
    margin: 0;
    max-width: 760px;
}

.sci-settings-status {
    align-items: center;
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-radius: 999px;
    color: var(--brand-dark-grey);
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 700;
    gap: 0.5rem;
    padding: 0.55rem 0.8rem;
    white-space: nowrap;
}

.sci-settings-status > span {
    background: var(--success);
    border-radius: 50%;
    box-shadow: 0 0 0 4px var(--success-soft);
    height: 8px;
    width: 8px;
}

.sci-settings-status.is-unavailable > span { background: var(--danger); box-shadow: 0 0 0 4px var(--danger-soft); }
.sci-settings-status.is-caution { color: var(--danger); }

.sci-settings-grid {
    align-items: start;
    display: grid;
    gap: var(--space-5);
    grid-template-columns: minmax(0, 1fr) 340px;
}

.sci-settings-primary-card {
    border-inline-start: var(--sci-card-accent-width) solid var(--sci-teal);
}

.sci-settings-restore-card {
    border-inline-start: var(--sci-card-accent-width) solid var(--danger);
}

.sci-settings-card-heading {
    align-items: center;
    display: flex;
    gap: 0.8rem;
}

.sci-settings-card-heading small,
.sci-settings-user-cell small,
.sci-settings-client small {
    color: var(--brand-light-grey);
    display: block;
    font-size: 0.76rem;
    margin-block-start: 0.15rem;
}

.sci-settings-card-icon {
    align-items: center;
    background: var(--info-soft);
    border-radius: var(--radius-md);
    color: var(--sci-teal);
    display: flex;
    font-size: 1.15rem;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.sci-settings-card-icon.is-danger { background: var(--danger-soft); color: var(--danger); }

.sci-settings-facts {
    display: grid;
    gap: var(--space-3);
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-block-end: var(--space-5);
}

.sci-settings-facts > div,
.sci-settings-session-help > div {
    align-items: center;
    background: var(--surface-muted);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    display: flex;
    gap: 0.7rem;
    min-width: 0;
    padding: 0.85rem;
}

.sci-settings-facts i,
.sci-settings-session-help i {
    color: var(--sci-teal);
    flex: 0 0 auto;
    font-size: 1.15rem;
}

.sci-settings-facts strong,
.sci-settings-facts small,
.sci-settings-session-help strong,
.sci-settings-session-help small { display: block; }

.sci-settings-facts small,
.sci-settings-session-help small { color: var(--brand-light-grey); font-size: 0.72rem; line-height: 1.35; }

.sci-settings-callout {
    align-items: flex-start;
    background: var(--info-soft);
    border-inline-start: 4px solid var(--info);
    border-radius: var(--radius-sm);
    color: var(--brand-dark-grey);
    display: flex;
    gap: 0.75rem;
    margin-block-end: var(--space-5);
    padding: 1rem;
}

.sci-settings-callout > i { color: var(--info); font-size: 1.15rem; margin-block-start: 0.1rem; }
.sci-settings-callout strong,
.sci-settings-callout span { display: block; }
.sci-settings-callout strong { color: var(--brand-black); margin-block-end: 0.2rem; }
.sci-settings-callout.is-danger { background: var(--danger-soft); border-color: var(--danger); }
.sci-settings-callout.is-danger > i { color: var(--danger); }
.sci-settings-callout.is-warning { background: var(--warning-soft); border-color: var(--warning); }
.sci-settings-callout.is-warning > i { color: #9b6b00; }

.sci-settings-action { min-width: 240px; }
.sci-settings-action-note { color: var(--brand-light-grey); display: inline-block; font-size: 0.78rem; margin-inline-start: 0.8rem; }

.sci-settings-guide { position: sticky; top: 90px; }
.sci-settings-guide .card-header { background: var(--sci-card-bg); }

.sci-settings-steps,
.sci-settings-checklist { list-style: none; margin: 0; padding: 0; }
.sci-settings-steps li { display: flex; gap: 0.8rem; padding-block: 0.75rem; }
.sci-settings-steps li + li { border-block-start: 1px solid var(--border-default); }
.sci-settings-steps li > span,
.sci-settings-form-number {
    align-items: center;
    background: var(--brand-primary-soft);
    border-radius: 50%;
    color: var(--brand-primary);
    display: flex;
    flex: 0 0 30px;
    font-size: 0.78rem;
    font-weight: 800;
    height: 30px;
    justify-content: center;
}
.sci-settings-steps strong,
.sci-settings-steps small { display: block; }
.sci-settings-steps small { color: var(--brand-light-grey); line-height: 1.45; margin-block-start: 0.2rem; }

.sci-settings-tip {
    background: var(--surface-muted);
    border-radius: var(--radius-md);
    color: var(--brand-dark-grey);
    font-size: 0.78rem;
    line-height: 1.5;
    margin-block-start: var(--space-4);
    padding: 0.85rem;
}
.sci-settings-tip i { color: var(--brand-primary); margin-inline-end: 0.45rem; }
.sci-settings-tip.is-warning i { color: #9b6b00; }

.sci-settings-form-section {
    align-items: flex-start;
    border-block-end: 1px solid var(--border-default);
    display: flex;
    gap: 0.9rem;
    padding-block: 1.1rem;
}
.sci-settings-form-section:first-of-type { padding-block-start: 0; }
.sci-settings-form-number { margin-block-start: 0.15rem; }
.sci-settings-submit-row { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; padding-block-start: 1.2rem; }
.sci-settings-submit-row > span { color: var(--brand-light-grey); font-size: 0.78rem; }

.sci-settings-checklist li { align-items: flex-start; display: flex; gap: 0.65rem; padding-block: 0.6rem; }
.sci-settings-checklist i { background: var(--success-soft); border-radius: 50%; color: var(--success); flex: 0 0 auto; padding: 0.25rem; }

.sci-settings-session-metrics { display: flex; gap: 0.6rem; }
.sci-settings-session-metrics > div { background: var(--surface-card); border: 1px solid var(--border-default); border-radius: var(--radius-md); min-width: 72px; padding: 0.6rem; text-align: center; }
.sci-settings-session-metrics strong { color: var(--brand-black); display: block; font-family: var(--font-heading); font-size: 1.4rem; line-height: 1; }
.sci-settings-session-metrics span { color: var(--brand-light-grey); font-size: 0.7rem; text-transform: uppercase; }

.sci-settings-session-help { display: grid; gap: var(--space-3); grid-template-columns: repeat(3, minmax(0, 1fr)); margin-block-end: var(--space-5); }
.sci-settings-sessions-card { border-block-start: 3px solid var(--sci-purple); }
.sci-settings-user-cell { align-items: center; display: flex; gap: 0.7rem; min-width: 190px; }
.sci-settings-avatar { align-items: center; background: var(--brand-primary-soft); border-radius: 50%; color: var(--brand-primary); display: flex; flex: 0 0 38px; font-weight: 800; height: 38px; justify-content: center; }
.sci-settings-user-cell em { background: var(--success-soft); border-radius: 999px; color: var(--success); display: inline-block; font-size: 0.68rem; font-style: normal; font-weight: 700; margin-block-start: 0.35rem; padding: 0.2rem 0.45rem; }
.sci-settings-live-dot { background: var(--success); border-radius: 50%; box-shadow: 0 0 0 3px var(--success-soft); display: inline-block; height: 7px; margin-inline-end: 0.55rem; width: 7px; }
.sci-settings-client { align-items: center; display: flex; gap: 0.6rem; }
.sci-settings-client > i { color: var(--sci-purple); font-size: 1.1rem; }

@media (max-width: 991.98px) {
    .sci-settings-grid { grid-template-columns: 1fr; }
    .sci-settings-guide { position: static; }
    .sci-settings-session-help { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
    .sci-settings-hero { grid-template-columns: auto minmax(0, 1fr); }
    .sci-settings-hero > :last-child { grid-column: 1 / -1; justify-self: start; }
    .sci-settings-facts { grid-template-columns: 1fr; }
    .sci-settings-action-note { display: block; margin: 0.7rem 0 0; }
}

@media (max-width: 575.98px) {
    .sci-settings-hero { align-items: start; grid-template-columns: 1fr; }
    .sci-settings-hero-icon { height: 52px; width: 52px; }
    .sci-settings-hero > :last-child { grid-column: auto; }
    .sci-settings-action { min-width: 0; width: 100%; }
    .sci-settings-submit-row .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Branded print view; raw CSV/XLSX exports remain machine-readable. */
@media print {
    @page {
        margin: 16mm 12mm 18mm;
    }

    body {
        background: var(--sci-white) !important;
        color: var(--sci-black) !important;
        font-family: Arial, sans-serif;
        font-size: 10pt;
    }

    .pcoded-header,
    .pcoded-navbar,
    .page-header .breadcrumb,
    .btn,
    .dropdown,
    .dataTable-top,
    .dataTable-bottom,
    .no-print,
    .loader-bg,
    .sci-skip-link {
        display: none !important;
    }

    .pcoded-main-container,
    .pcoded-content {
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }

    .sci-print-header {
        align-items: flex-end;
        border-block-end: 2px solid var(--sci-red);
        display: flex !important;
        justify-content: space-between;
        margin-block-end: 12mm;
        padding-block-end: 5mm;
    }

    .sci-print-header img {
        height: auto;
        max-width: 48mm;
    }

    .sci-print-meta {
        color: var(--sci-dark-grey);
        font-size: 8pt;
        text-align: end;
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        color: var(--sci-black) !important;
        font-family: Arial, sans-serif;
    }

    .card {
        border: 1px solid var(--sci-biscuit) !important;
        break-inside: avoid;
        box-shadow: none !important;
    }

    .table {
        font-size: 8pt;
    }

    .table thead th,
    table thead th {
        background: var(--sci-biscuit-light) !important;
        color: var(--sci-black) !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    a[href]::after {
        content: none !important;
    }
}

@media screen {
    .sci-theme-options {
        display: grid;
        gap: 8px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sci-theme-option {
        cursor: pointer;
        margin: 0;
        min-width: 0;
    }

    .sci-theme-option input {
        height: 1px;
        opacity: 0;
        position: absolute;
        width: 1px;
    }

    .sci-theme-option > span {
        align-items: center;
        background: var(--surface-card);
        border: 1px solid var(--border-default);
        border-radius: var(--radius-md);
        color: var(--brand-dark-grey);
        display: flex;
        flex-direction: column;
        gap: 5px;
        justify-content: center;
        min-height: 70px;
        padding: 9px 6px;
        transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
    }

    .sci-theme-option i {
        font-size: 19px;
    }

    .sci-theme-option strong {
        font-size: 12px;
    }

    .sci-theme-option input:checked + span {
        background: var(--brand-primary-soft);
        border-color: var(--brand-primary);
        color: var(--brand-primary);
        box-shadow: inset 0 -2px 0 var(--brand-primary);
    }

    .sci-theme-option input:focus-visible + span {
        box-shadow: 0 0 0 3px var(--brand-primary-focus);
        outline: 2px solid var(--brand-primary);
        outline-offset: 2px;
    }

    html.sci-theme-dark {
        color-scheme: dark;
        --brand-black: #f7f7f6;
        --brand-dark-grey: #d5d6d6;
        --brand-light-grey: #b6b8b9;
        --surface-page: #151616;
        --surface-card: #222221;
        --surface-muted: #2c2d2d;
        --surface-selected: rgba(218, 41, 28, 0.18);
        --border-default: #444645;
        --border-strong: #666866;
        --success-soft: rgba(69, 179, 131, 0.16);
        --warning-soft: rgba(242, 169, 0, 0.16);
        --danger-soft: rgba(218, 41, 28, 0.18);
        --info-soft: rgba(0, 156, 166, 0.16);
    }

    html.sci-theme-dark body.sci-app,
    html.sci-theme-dark .pcoded-main-container,
    html.sci-theme-dark .pcoded-content {
        background: var(--surface-page) !important;
        color: var(--brand-black);
    }

    html.sci-theme-dark .card,
    html.sci-theme-dark .modal-content,
    html.sci-theme-dark .swal-modal,
    html.sci-theme-dark .sci-swal,
    html.sci-theme-dark .dropdown-menu,
    html.sci-theme-dark .offcanvas,
    html.sci-theme-dark .list-group-item,
    html.sci-theme-dark .dataTable-wrapper,
    html.sci-theme-dark .sci-preferences .style-block,
    html.sci-theme-dark .sci-preferences .m-style-scroller,
    html.sci-theme-dark .sci-preferences-footer {
        background: var(--surface-card) !important;
        border-color: var(--border-default) !important;
        color: var(--brand-black);
    }

    html.sci-theme-dark .card-header,
    html.sci-theme-dark .card-footer,
    html.sci-theme-dark .modal-header,
    html.sci-theme-dark .modal-footer,
    html.sci-theme-dark .sci-preferences-user,
    html.sci-theme-dark .page-header,
    html.sci-theme-dark .breadcrumb {
        background: var(--sci-card-bg) !important;
        border-color: var(--border-default) !important;
        color: var(--brand-black);
    }

    html.sci-theme-dark .btn-close {
        filter: invert(1) grayscale(100%) brightness(200%);
        opacity: 0.8;
    }

    html.sci-theme-dark .btn-secondary,
    html.sci-theme-dark .btn-light,
    html.sci-theme-dark .btn-dark,
    html.sci-theme-dark .sci-btn-secondary,
    html.sci-theme-dark .btn-outline-secondary,
    html.sci-theme-dark .btn-outline-primary,
    html.sci-theme-dark .btn-outline-info,
    html.sci-theme-dark .btn-info,
    html.sci-theme-dark .btn-outline-warning,
    html.sci-theme-dark .btn-warning,
    html.sci-theme-dark .btn-outline-danger,
    html.sci-theme-dark .sci-btn-outline,
    html.sci-theme-dark .btn-outline-success,
    html.sci-theme-dark .sci-btn-success:not(.btn-success) {
        background: var(--surface-card) !important;
    }

    html.sci-theme-dark .swal-title,
    html.sci-theme-dark .modal-title {
        color: var(--brand-black) !important;
    }

    html.sci-theme-dark .swal-text {
        color: var(--brand-dark-grey) !important;
    }

    html.sci-theme-dark .sci-swal--danger .swal-text {
        background: var(--danger-soft);
        border-color: rgba(218, 41, 28, 0.35);
        color: #ffb4ab !important;
    }

    html.sci-theme-dark .pcoded-navbar,
    html.sci-theme-dark .pcoded-navbar .navbar-content,
    html.sci-theme-dark .pcoded-navbar .pcoded-inner-navbar {
        background: #1d1e1e !important;
        color: var(--brand-dark-grey) !important;
    }

    html.sci-theme-dark .pcoded-navbar .pcoded-inner-navbar li > a,
    html.sci-theme-dark .pcoded-navbar .pcoded-inner-navbar li > a .pcoded-mtext,
    html.sci-theme-dark .pcoded-navbar .pcoded-inner-navbar li > a .pcoded-micon,
    html.sci-theme-dark .pcoded-navbar .pcoded-menu-caption label {
        color: var(--brand-dark-grey) !important;
    }

    html.sci-theme-dark .pcoded-navbar .pcoded-inner-navbar li.active > a,
    html.sci-theme-dark .pcoded-navbar .pcoded-inner-navbar li > a:hover {
        background: var(--surface-selected) !important;
        color: var(--brand-primary) !important;
    }

    html.sci-theme-dark .pcoded-header,
    html.sci-theme-dark .pcoded-header .m-header {
        background: var(--sci-white) !important;
    }

    html.sci-theme-dark .pcoded-header a,
    html.sci-theme-dark .pcoded-header .navbar-nav > li > a,
    html.sci-theme-dark .pcoded-header .mobile-menu,
    html.sci-theme-dark .pcoded-header .mob-toggler {
        color: var(--sci-dark-grey) !important;
    }

    html.sci-theme-dark .form-control,
    html.sci-theme-dark .form-select,
    html.sci-theme-dark .custom-select,
    html.sci-theme-dark .select2-container--default .select2-selection--single,
    html.sci-theme-dark .select2-container--default .select2-selection--multiple,
    html.sci-theme-dark .select2-dropdown,
    html.sci-theme-dark .input-group-text {
        background: #292a2a !important;
        border-color: var(--border-strong) !important;
        color: var(--brand-black) !important;
    }

    html.sci-theme-dark .form-control::placeholder,
    html.sci-theme-dark input::placeholder,
    html.sci-theme-dark textarea::placeholder {
        color: var(--brand-light-grey) !important;
        opacity: 1;
    }

    html.sci-theme-dark .select2-container--default .select2-results__option,
    html.sci-theme-dark .select2-container--default .select2-selection__rendered {
        color: var(--brand-black) !important;
    }

    html.sci-theme-dark .select2-container--default .select2-results__option--highlighted[aria-selected] {
        background: var(--brand-primary) !important;
        color: var(--sci-white) !important;
    }

    html.sci-theme-dark .table,
    html.sci-theme-dark table,
    html.sci-theme-dark .dataTable-table {
        background: transparent !important;
        color: var(--brand-black) !important;
    }

    html.sci-theme-dark .table > :not(caption) > * > *,
    html.sci-theme-dark table td,
    html.sci-theme-dark table th {
        background: var(--surface-card) !important;
        border-color: var(--border-default) !important;
        color: var(--brand-black) !important;
    }

    html.sci-theme-dark .table thead th,
    html.sci-theme-dark table thead th {
        background: var(--surface-muted) !important;
    }

    html.sci-theme-dark .dropdown-item,
    html.sci-theme-dark .dropdown-header,
    html.sci-theme-dark .breadcrumb-item,
    html.sci-theme-dark .breadcrumb-item a,
    html.sci-theme-dark .text-muted,
    html.sci-theme-dark label,
    html.sci-theme-dark p {
        color: var(--brand-dark-grey) !important;
    }

    html.sci-theme-dark .dropdown-item:hover,
    html.sci-theme-dark .dropdown-item:focus {
        background: var(--surface-selected) !important;
        color: var(--brand-primary) !important;
    }

    html.sci-theme-dark hr,
    html.sci-theme-dark .border,
    html.sci-theme-dark .border-top,
    html.sci-theme-dark .border-bottom {
        border-color: var(--border-default) !important;
    }

    html.sci-theme-dark .dashboard-chart canvas,
    html.sci-theme-dark .dq-chart-box canvas {
        filter: none;
    }

    html.sci-theme-dark .sci-profile-cover-default {
        background: var(--surface-muted);
    }
}

/* ------------------------------------------------------------------ */
/* Overview / Home workspace                                          */
/* ------------------------------------------------------------------ */
.sci-overview-page {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.sci-overview-welcome {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 1.35rem 1.5rem;
    border: 1px solid var(--border-default, #e6e1dc);
    background:
        linear-gradient(135deg, rgba(218, 41, 28, 0.08), rgba(255, 255, 255, 0.92) 42%),
        var(--surface-card, #fff);
}

.sci-overview-eyebrow {
    display: inline-block;
    margin-bottom: 0.35rem;
    color: var(--brand-primary, #da291c);
    font-family: Oswald, sans-serif;
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.sci-overview-welcome h1 {
    margin: 0 0 0.4rem;
    font-family: Oswald, sans-serif;
    font-size: clamp(1.55rem, 2vw, 1.95rem);
    font-weight: 600;
    color: var(--brand-black, #212121);
}

.sci-overview-welcome-copy p {
    margin: 0 0 0.9rem;
    max-width: 42rem;
    color: var(--brand-dark-grey, #58595b);
}

.sci-overview-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 1rem;
}

.sci-overview-meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--brand-dark-grey, #58595b);
    font-size: 0.9rem;
}

.sci-overview-meta i {
    color: var(--brand-primary, #da291c);
}

.sci-overview-welcome-aside {
    display: flex;
    gap: 0.75rem;
    align-items: stretch;
}

.sci-overview-welcome-aside > div {
    min-width: 7.5rem;
    padding: 0.85rem 1rem;
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid var(--border-default, #e6e1dc);
    text-align: center;
}

.sci-overview-welcome-aside strong {
    display: block;
    font-family: Oswald, sans-serif;
    font-size: 1.55rem;
    line-height: 1.1;
    color: var(--brand-black, #212121);
}

.sci-overview-welcome-aside span {
    color: var(--brand-dark-grey, #58595b);
    font-size: 0.8rem;
}

.sci-overview-kpi-row {
    margin-left: -0.5rem;
    margin-right: -0.5rem;
}

.sci-overview-kpi-row > [class*="col-"] {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    margin-bottom: 1rem;
}

.sci-overview-kpi .count_values {
    font-family: Oswald, sans-serif;
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1;
}

.sci-overview-kpi .feather {
    font-size: 1.35rem;
    opacity: 0.85;
}

.sci-overview-kpi-link {
    display: inline-block;
    margin-top: 0.75rem;
    font-size: 0.85rem;
    font-weight: 600;
}

.sci-overview-panel .card-header h5 {
    font-family: Oswald, sans-serif;
    font-weight: 500;
}

.sci-overview-announcement {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--border-default);
    border-inline-start: 4px solid var(--brand-primary);
}

.sci-overview-announcement:last-child {
    border-bottom: 0;
}

.sci-overview-announcement--deadline,
.sci-overview-announcement--warning {
    border-inline-start-color: var(--warning);
    background: var(--warning-soft);
}

.sci-overview-announcement--reminder {
    border-inline-start-color: var(--sci-orange);
    background: rgba(252, 76, 2, 0.06);
}

.sci-overview-announcement--maintenance {
    border-inline-start-color: var(--sci-purple);
    background: rgba(174, 144, 195, 0.12);
}

.sci-overview-announcement--information,
.sci-overview-announcement--general {
    border-inline-start-color: var(--info);
    background: var(--info-soft);
}

.sci-overview-announcement h3 {
    margin: 0.35rem 0 0.35rem;
    font-size: 1.05rem;
    font-family: Oswald, sans-serif;
    font-weight: 500;
}

.sci-overview-announcement p {
    margin: 0;
    color: var(--brand-dark-grey, #58595b);
    white-space: pre-line;
}

.sci-overview-announcement-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.75rem;
    align-items: center;
    color: var(--brand-dark-grey, #58595b);
    font-size: 0.8rem;
}

.sci-overview-type-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    background: rgba(218, 41, 28, 0.1);
    color: var(--brand-primary, #da291c);
    font-weight: 600;
    font-size: 0.72rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.sci-overview-quick-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

.sci-overview-quick-link {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.7rem 0.8rem;
    border: 1px solid var(--border-default, #e6e1dc);
    border-radius: 0.55rem;
    color: var(--brand-black, #212121);
    text-decoration: none;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.sci-overview-quick-link:hover {
    border-color: rgba(218, 41, 28, 0.45);
    background: rgba(218, 41, 28, 0.04);
    color: var(--brand-primary, #da291c);
    text-decoration: none;
}

.sci-overview-quick-link i {
    color: var(--brand-primary, #da291c);
}

.sci-overview-activity-row,
.sci-overview-project-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1.15rem;
    border-bottom: 1px solid var(--border-default, #e6e1dc);
}

.sci-overview-activity-row:last-child,
.sci-overview-project-row:last-child {
    border-bottom: 0;
}

.sci-overview-activity-row {
    justify-content: flex-start;
}

.sci-overview-activity-dot {
    width: 0.55rem;
    height: 0.55rem;
    margin-top: 0.4rem;
    border-radius: 50%;
    background: var(--brand-primary, #da291c);
    flex: 0 0 auto;
}

.sci-overview-activity-row strong,
.sci-overview-project-row strong {
    display: block;
    font-size: 0.92rem;
}

.sci-overview-activity-row small,
.sci-overview-project-row small {
    color: var(--brand-dark-grey, #58595b);
}

.sci-overview-project-row small {
    display: block;
}

.sci-overview-project-dates {
    margin-top: 0.1rem;
}

.sci-overview-status {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
}

.sci-overview-status--active {
    background: var(--success-soft);
    color: var(--on-success);
}

.sci-overview-status--other {
    background: var(--surface-muted);
    color: var(--brand-dark-grey);
}

html.sci-theme-dark .sci-overview-welcome,
html.sci-theme-dark .sci-overview-welcome-aside > div,
html.sci-theme-dark .sci-overview-quick-link {
    background: var(--surface-card);
}

@media (max-width: 767.98px) {
    .sci-overview-welcome-aside {
        width: 100%;
    }

    .sci-overview-welcome-aside > div {
        flex: 1 1 0;
    }

    .sci-overview-quick-links {
        grid-template-columns: 1fr;
    }
}

/* Overview — Data Quality snapshot */
.sci-overview-dq-hero {
    align-items: stretch;
    background: var(--surface-muted);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    display: flex;
    flex-wrap: wrap;
    overflow: hidden;
}

.sci-overview-dq-score {
    background: var(--surface-card);
    border-inline-end: 1px solid var(--border-default);
    flex: 0 0 220px;
    max-width: 100%;
    padding: 1rem 1.15rem;
}

.sci-overview-dq-score .label,
.sci-overview-dq-metric .label {
    color: var(--brand-dark-grey);
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.sci-overview-dq-score .value {
    font-family: Oswald, sans-serif;
    font-size: 2.4rem;
    font-weight: 600;
    line-height: 1;
    margin-bottom: 0.4rem;
}

.sci-overview-dq-score .value.is-good { color: var(--success); }
.sci-overview-dq-score .value.is-mid { color: #b67800; }
.sci-overview-dq-score .value.is-low { color: var(--brand-primary-hover); }

.sci-overview-dq-score .hint {
    color: var(--brand-dark-grey);
    font-size: 0.78rem;
    margin: 0;
}

.sci-overview-dq-metrics {
    display: grid;
    flex: 1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sci-overview-dq-metric {
    border-bottom: 1px solid var(--border-default);
    border-inline-end: 1px solid var(--border-default);
    padding: 0.8rem 0.95rem;
}

.sci-overview-dq-metric:nth-child(3n) { border-inline-end: 0; }
.sci-overview-dq-metric:nth-last-child(-n+3) { border-bottom: 0; }

.sci-overview-dq-metric .value {
    color: var(--brand-black);
    font-size: 1.35rem;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    line-height: 1.1;
    margin: 0;
}

.sci-overview-dq-metric .value.is-critical { color: var(--brand-primary-hover); }
.sci-overview-dq-metric .value.is-warning { color: #b67800; }
.sci-overview-dq-metric .value.is-info { color: var(--info); }

.sci-overview-dq-issue {
    align-items: flex-start;
    border-bottom: 1px solid var(--border-default, #e6e1dc);
    display: flex;
    gap: 0.75rem;
    padding: 0.85rem 1.15rem;
}

.sci-overview-dq-issue:last-child { border-bottom: 0; }

.sci-overview-dq-issue .sci-status-badge {
    flex: 0 0 auto;
}

.sci-overview-dq-issue-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.sci-overview-dq-issue-title {
    color: var(--brand-black, #212121);
    font-size: 0.92rem;
    font-weight: 600;
    text-decoration: none;
}

a.sci-overview-dq-issue-title:hover {
    color: var(--brand-primary, #da291c);
}

.sci-overview-dq-issue-meta {
    color: var(--brand-dark-grey, #58595b);
    font-size: 0.8rem;
}

@media (max-width: 991.98px) {
    .sci-overview-dq-score {
        border-bottom: 1px solid var(--border-default);
        border-inline-end: 0;
        flex-basis: 100%;
    }

    .sci-overview-dq-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sci-overview-dq-metric:nth-child(3n) { border-inline-end: 1px solid var(--border-default); }
    .sci-overview-dq-metric:nth-child(2n) { border-inline-end: 0; }
    .sci-overview-dq-metric:nth-last-child(-n+3) { border-bottom: 1px solid var(--border-default); }
    .sci-overview-dq-metric:nth-last-child(-n+2) { border-bottom: 0; }
}

@media (max-width: 575.98px) {
    .sci-overview-dq-metrics { grid-template-columns: 1fr; }
    .sci-overview-dq-metric { border-inline-end: 0 !important; }
    .sci-overview-dq-metric:last-child { border-bottom: 0; }
}

/* Role permission picker */
.sci-permission-picker {
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm, 6px);
    overflow: hidden;
}

.sci-permission-picker__toolbar {
    background: var(--surface-muted);
    border-bottom: 1px solid var(--border-default);
    display: grid;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
}

.sci-permission-picker__search {
    position: relative;
}

.sci-permission-picker__search-icon {
    color: var(--brand-light-grey);
    left: 0.75rem;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.sci-permission-picker__search .form-control {
    padding-inline-start: 2.25rem;
}

.sci-permission-picker__meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
}

.sci-permission-picker__count {
    color: var(--brand-dark-grey);
    font-size: 0.8125rem;
}

.sci-permission-picker__filter {
    align-items: center;
    color: var(--brand-dark-grey);
    cursor: pointer;
    display: inline-flex;
    font-size: 0.8125rem;
    font-weight: 600;
    gap: 0.4rem;
    margin: 0;
}

.sci-permission-picker__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.sci-perm-group {
    border-top: 1px solid var(--border-default);
}

.sci-perm-group:first-child {
    border-top: 0;
}

.sci-perm-group__header {
    align-items: center;
    background: var(--surface-card, #fff);
    display: flex;
    gap: 0.5rem;
    padding: 0.35rem 0.65rem 0.35rem 0.85rem;
}

.sci-perm-group.has-checked .sci-perm-group__header {
    background: var(--surface-selected, rgba(218, 41, 28, 0.06));
}

.sci-perm-check {
    align-items: center;
    display: inline-flex;
    gap: 0.45rem;
    margin: 0;
}

.sci-perm-check--group {
    flex: 0 0 auto;
}

.sci-perm-group__toggle {
    align-items: center;
    background: transparent;
    border: 0;
    color: inherit;
    display: flex;
    flex: 1 1 auto;
    gap: 0.75rem;
    min-height: 40px;
    padding: 0.25rem 0.35rem;
    text-align: start;
    width: 100%;
}

.sci-perm-group__title {
    align-items: center;
    display: inline-flex;
    flex: 1 1 auto;
    font-size: 0.9375rem;
    font-weight: 700;
    gap: 0.5rem;
}

.sci-perm-group__title .feather {
    color: var(--brand-primary, #da291c);
}

.sci-perm-group__count {
    color: var(--brand-dark-grey);
    font-size: 0.75rem;
    font-weight: 700;
    white-space: nowrap;
}

.sci-perm-group__chevron {
    transition: transform 0.15s ease;
}

.sci-perm-group.is-open .sci-perm-group__chevron {
    transform: rotate(180deg);
}

.sci-perm-group:not(.is-open) .sci-perm-group__body {
    display: none;
}

.sci-perm-group__body {
    background: var(--surface-page, #f7f8fa);
    border-top: 1px solid var(--border-default);
    padding: 0.85rem 1rem 1rem;
}

.sci-perm-subgroup + .sci-perm-subgroup {
    margin-top: 0.9rem;
}

.sci-perm-subgroup__header {
    margin-bottom: 0.5rem;
}

.sci-perm-subgroup__header span {
    color: var(--brand-dark-grey);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.sci-perm-grid {
    display: grid;
    gap: 0.45rem;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.sci-perm-item {
    align-items: flex-start;
    background: var(--surface-card, #fff);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm, 6px);
    cursor: pointer;
    display: flex;
    gap: 0.55rem;
    margin: 0;
    min-height: 52px;
    padding: 0.5rem 0.65rem;
}

.sci-perm-item.is-checked {
    background: var(--surface-selected, rgba(218, 41, 28, 0.08));
    border-color: var(--brand-primary, #da291c);
}

.sci-perm-item .form-check-input {
    flex: 0 0 auto;
    margin-top: 0.2rem;
}

.sci-perm-item__text {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.sci-perm-item__label {
    color: var(--brand-black);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.25;
}

.sci-perm-item__name {
    color: var(--brand-light-grey);
    font-size: 0.6875rem;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.sci-perm-item[hidden],
.sci-perm-group[hidden],
.sci-perm-subgroup[hidden] {
    display: none !important;
}

.sci-permission-picker__empty {
    color: var(--brand-dark-grey);
    margin: 0;
    padding: 1.25rem 1rem;
}

.sci-permission-catalog .sci-perm-group__header {
    padding-inline-start: 0.35rem;
}

.sci-perm-manage-list {
    display: grid;
    gap: 0.45rem;
}

.sci-perm-manage-item {
    align-items: center;
    background: var(--surface-card, #fff);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm, 6px);
    cursor: default;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1rem;
    justify-content: space-between;
    min-height: 52px;
    padding: 0.55rem 0.75rem;
}

.sci-perm-manage-item__actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.sci-perm-manage-item__actions .btn {
    min-height: 32px;
    padding: 0.2rem 0.65rem;
}

.sci-permission-list {
    display: grid;
    gap: 1rem;
}

.sci-permission-list__group {
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm, 6px);
    padding: 0.85rem 1rem;
}

.sci-permission-list__title {
    align-items: center;
    display: flex;
    font-size: 0.9375rem;
    gap: 0.45rem;
    margin: 0 0 0.65rem;
}

.sci-permission-list__title .feather {
    color: var(--brand-primary, #da291c);
}

.sci-permission-list__title span {
    color: var(--brand-light-grey);
    font-size: 0.75rem;
    font-weight: 700;
    margin-inline-start: auto;
}

.sci-permission-list__subtitle {
    color: var(--brand-dark-grey);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    margin: 0.5rem 0 0.4rem;
    text-transform: uppercase;
}

.sci-permission-list__items {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.sci-permission-chip {
    background: var(--surface-muted);
    border: 1px solid var(--border-default);
    border-radius: 999px;
    color: var(--brand-black);
    display: inline-block;
    font-size: 0.75rem;
    line-height: 1.2;
    padding: 0.28rem 0.65rem;
}

@media (min-width: 768px) {
    .sci-permission-picker__toolbar {
        align-items: center;
        grid-template-columns: minmax(220px, 1fr) auto auto;
    }
}

/* ------------------------------------------------------------------ */
/* Shared module surfaces: dashboards, data quality, GIS, reporting    */
/* ------------------------------------------------------------------ */
.form-section-title {
    color: var(--brand-primary) !important;
    font-family: var(--font-heading);
    font-size: 1.0625rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.calculated-field {
    background-color: var(--surface-muted) !important;
    color: var(--brand-dark-grey);
    cursor: not-allowed;
}

.nav-tabs,
.nav-pills {
    align-items: stretch;
    border-bottom: 1px solid var(--border-default);
    display: flex;
    flex-wrap: nowrap;
    gap: 0;
    margin-bottom: 0;
    overflow-x: auto;
    scrollbar-width: thin;
}

.nav-tabs .nav-item,
.nav-pills .nav-item {
    flex: 0 0 auto;
    margin-bottom: 0;
}

.nav-tabs .nav-link,
.nav-pills .nav-link {
    align-items: center;
    background: transparent;
    border: 0;
    border-block-end: 2px solid transparent;
    border-radius: 0;
    color: var(--brand-dark-grey);
    display: inline-flex;
    font-family: var(--font-body);
    font-size: 0.9375rem;
    font-weight: 400;
    gap: 0.4rem;
    height: 2.75rem;
    line-height: 1;
    margin-bottom: 0;
    padding: 0 1rem;
    text-transform: none;
    white-space: nowrap;
}

.nav-tabs .nav-link:hover,
.nav-pills .nav-link:hover {
    background: transparent;
    border-color: transparent;
    color: var(--brand-black);
}

.nav-tabs .nav-link:focus-visible,
.nav-pills .nav-link:focus-visible {
    box-shadow: var(--sci-btn-focus);
    outline: 0;
}

.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link,
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    background: var(--surface-card);
    border-block-end-color: var(--sci-red);
    box-shadow: none;
    color: var(--sci-red);
    font-weight: 700;
}

.nav-tabs .nav-link.disabled,
.nav-pills .nav-link.disabled {
    color: var(--sci-light-grey);
    opacity: 0.55;
    pointer-events: none;
}

.alert::before {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    font-family: var(--font-heading);
    font-size: 0.95rem;
    font-weight: 700;
    height: 1.25rem;
    justify-content: center;
    line-height: 1;
    margin-block-start: 0.1rem;
    width: 1.25rem;
}

.alert-success::before { content: "✓"; }
.alert-danger::before { content: "!"; }
.alert-warning::before { content: "!"; }
.alert-info::before,
.alert-primary::before { content: "i"; }

.dq-run-card .form-group,
.dq-run-card label { margin-bottom: 0.35rem; }
.dq-run-card .dq-run-actions { align-items: flex-end; display: flex; height: 100%; }
.dq-run-card .dq-run-actions .btn { white-space: nowrap; }

.dq-hero {
    align-items: stretch;
    background: var(--surface-muted);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin-bottom: 1rem;
    overflow: hidden;
}

.dq-hero-score {
    background: var(--surface-card);
    border-inline-end: 1px solid var(--border-default);
    flex: 0 0 280px;
    max-width: 100%;
    padding: 1.25rem 1.5rem;
}

.dq-hero-score .label,
.dq-hero-metric .label {
    color: var(--brand-dark-grey);
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
}

.dq-hero-score .value {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: 3rem;
    font-weight: 600;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.dq-hero-score .hint { color: var(--brand-dark-grey); font-size: 0.8rem; margin: 0; }

.dq-hero-metrics {
    display: grid;
    flex: 1;
    gap: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dq-hero-metric {
    border-block-end: 1px solid var(--border-default);
    border-inline-end: 1px solid var(--border-default);
    padding: 0.9rem 1.1rem;
}

.dq-hero-metric:nth-child(3n) { border-inline-end: 0; }
.dq-hero-metric:nth-last-child(-n+3) { border-block-end: 0; }

.dq-hero-metric .value {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: 1.55rem;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    line-height: 1.1;
    margin: 0;
}

.dq-hero-metric .value.is-critical { color: var(--brand-primary-hover); }
.dq-hero-metric .value.is-warning { color: #b67800; }
.dq-hero-metric .value.is-info { color: var(--info); }

.dq-score-note {
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    color: var(--brand-dark-grey);
    font-size: 0.85rem;
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
}

.dq-chart-card { overflow: hidden; }
.dq-chart-card .card-body { overflow: hidden; padding-bottom: 1rem; padding-top: 0.5rem; }
.dq-chart-box {
    height: 280px;
    min-height: 280px;
    overflow: hidden;
    position: relative;
    width: 100%;
}
.dq-chart-box > div { height: 100%; position: relative; width: 100%; }
.dq-chart-box canvas { display: block; max-height: 100%; max-width: 100%; }
.dq-chart-empty {
    align-items: center;
    color: var(--brand-dark-grey);
    display: flex;
    height: 100%;
    justify-content: center;
}
.dq-list-card .list-group-item { padding: 0.65rem 1rem; }
.dq-bulk-bar {
    align-items: center;
    background: var(--surface-muted);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: space-between;
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
}
.dq-bulk-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.dq-bulk-meta { color: var(--brand-dark-grey); font-size: 0.875rem; }
.dq-pagination-footer { align-items: center; }
.dq-pagination-footer .pagination { margin-bottom: 0; }


@media (max-width: 991.98px) {
    .dq-hero-score { border-block-end: 1px solid var(--border-default); border-inline-end: 0; flex-basis: 100%; }
    .dq-hero-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dq-hero-metric:nth-child(3n) { border-inline-end: 1px solid var(--border-default); }
    .dq-hero-metric:nth-child(2n) { border-inline-end: 0; }
    .dq-hero-metric:nth-last-child(-n+3) { border-block-end: 1px solid var(--border-default); }
    .dq-hero-metric:nth-last-child(-n+2) { border-block-end: 0; }
}

@media (max-width: 575.98px) {
    .dq-hero-metrics { grid-template-columns: 1fr; }
    .dq-hero-metric { border-inline-end: 0 !important; }
    .dq-hero-metric:last-child { border-block-end: 0; }
}

.programme-dashboard-intro,
.module-dashboard-intro,
.gis-intro {
    color: var(--brand-dark-grey);
    margin: 0 0 1rem;
    max-width: 54rem;
}

.programme-dashboard-filters,
.module-dashboard-filters,
.gis-filters {
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    margin-bottom: 1rem;
    max-width: 100%;
    min-width: 0;
    padding: 0.9rem 1rem;
}

.programme-filter-grid {
    align-items: end;
    display: grid;
    gap: 0.75rem 1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    max-width: 100%;
    min-width: 0;
    width: 100%;
}

.programme-filter-field,
.module-filter-field,
.gis-filter-field { min-width: 0; width: 100%; }

.programme-dashboard-filters .form-label,
.module-dashboard-filters .form-label,
.gis-filters .form-label {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.programme-dashboard-filters .select2-container,
.programme-dashboard-filters .form-control,
.module-dashboard-filters .select2-container,
.module-dashboard-filters .form-control,
.gis-filters .select2-container,
.gis-filters .form-control { width: 100% !important; }

.programme-filter-actions {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.5rem;
    justify-content: flex-end;
    padding-bottom: 0.05rem;
    white-space: nowrap;
}

.programme-filter-actions .btn { min-width: 5.5rem; }

.programme-dashboard-section { margin-top: 1.15rem; max-width: 100%; min-width: 0; }
.programme-kpi-link { color: inherit; display: block; text-decoration: none; }
.programme-kpi-link:hover .count_values { color: var(--brand-primary); }

.programme-empty {
    align-items: center;
    color: var(--brand-dark-grey);
    display: flex;
    justify-content: center;
    min-height: 180px;
    padding: 1rem;
    text-align: center;
}

.programme-table-wrap { max-height: 380px; max-width: 100%; min-width: 0; overflow: auto; }
.programme-summary-table { margin-bottom: 0; width: 100%; }
.programme-summary-table thead th {
    background: var(--surface-muted);
    color: var(--brand-dark-grey);
    font-family: var(--font-body);
    font-size: 0.72rem;
    font-weight: 700;
    position: sticky;
    top: 0;
    white-space: nowrap;
    z-index: 1;
}
.programme-summary-table thead tr:first-child th[colspan] { top: 0; }
.programme-summary-table thead tr:last-child th { top: 1.7rem; }
.programme-summary-table th,
.programme-summary-table td {
    font-size: 0.8rem;
    padding: 0.45rem 0.75rem;
    vertical-align: middle;
    white-space: nowrap;
}
.programme-summary-table td:first-child,
.programme-summary-table th:first-child {
    min-width: 12rem;
    white-space: normal;
}
.programme-summary-table .text-right {
    padding-inline-start: 1.35rem;
    white-space: nowrap;
    width: 1%;
}

.programme-warning,
.gis-warning {
    background: var(--warning-soft);
    border: 1px solid rgba(242, 169, 0, 0.45);
    border-radius: var(--radius-md);
    color: var(--on-warning);
    font-size: 0.85rem;
    margin-bottom: 1rem;
    padding: 0.65rem 0.9rem;
}

.dashboard-chart-sm { height: 220px; max-width: 100%; min-height: 220px; overflow: hidden; position: relative; }
.dashboard-chart-md { height: 280px; max-width: 100%; min-height: 280px; overflow: hidden; position: relative; }

.module-tab-bar {
    margin-bottom: 1rem;
    max-width: 100%;
}

.module-tab-jump {
    display: none;
}
.module-filter-grid {
    align-items: end;
    display: grid;
    gap: 0.75rem 1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.module-filter-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; grid-column: 1 / -1; }
.module-preset-row { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.module-preset-row.sci-tabs__list {
    max-width: 100%;
}
.module-reach-notes { color: var(--brand-dark-grey); font-size: 0.82rem; margin: 0 0 1rem; padding-inline-start: 1.1rem; }
.module-kpi-grid { display: grid; gap: 0.75rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.module-performance-grid { display: grid; gap: 0.75rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.module-performance-card {
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    padding: 0.85rem 1rem;
}
.module-performance-card h3 { font-size: 1.35rem; margin: 0; }

.gis-filter-grid {
    align-items: end;
    display: grid;
    gap: 0.75rem 1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    max-width: 100%;
    min-width: 0;
    width: 100%;
}
.gis-filter-actions { align-items: stretch; display: flex; flex-wrap: nowrap; gap: 0.5rem; width: 100%; }
.gis-filter-actions .btn { flex: 1 1 0; min-width: 0; }
.gis-shell {
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    display: grid;
    grid-template-columns: 17rem minmax(0, 1fr);
    max-width: 100%;
    min-height: 68vh;
    min-width: 0;
    overflow: hidden;
}
.gis-sidebar {
    background: var(--surface-muted);
    border-inline-end: 1px solid var(--border-default);
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
    padding: 1rem;
}
.gis-sidebar h2 { font-size: 0.95rem; margin: 0 0 0.35rem; }
.gis-sidebar p { color: var(--brand-dark-grey); font-size: 0.8rem; margin: 0; }
.gis-layer-toggle {
    align-items: center;
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm);
    cursor: pointer;
    display: flex;
    gap: 0.65rem;
    margin: 0;
    padding: 0.65rem 0.75rem;
}
.gis-swatch { border-radius: 50%; display: inline-block; flex: 0 0 auto; height: 0.85rem; width: 0.85rem; }
.gis-swatch--cbs { background: var(--sci-red); box-shadow: 0 0 0 3px var(--brand-primary-focus); }
.gis-swatch--class { background: var(--sci-teal); box-shadow: 0 0 0 3px rgba(0, 156, 166, 0.18); }
.gis-stats { display: grid; gap: 0.5rem; }
.gis-stat {
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm);
    padding: 0.65rem 0.75rem;
}
.gis-stat strong { display: block; font-family: var(--font-heading); font-size: 1.15rem; line-height: 1.2; }
.gis-stat span { color: var(--brand-dark-grey); font-size: 0.75rem; }
.gis-map-wrap { min-height: 68vh; min-width: 0; overflow: hidden; position: relative; }
#gis-map { height: 100%; max-width: 100%; min-height: 68vh; min-width: 0; overflow: hidden; width: 100%; }
.gis-map-toolbar { display: flex; gap: 0.4rem; inset-inline-start: 0.75rem; position: absolute; top: 0.75rem; z-index: 6; }
.gis-map-toolbar .btn {
    background: var(--surface-card);
    box-shadow: var(--shadow-sm);
    height: var(--sci-btn-height-icon);
    min-height: var(--sci-btn-height-icon);
    min-width: var(--sci-btn-height-icon);
    padding: 0;
    width: var(--sci-btn-height-icon);
}
.gis-popup {
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    left: 0;
    max-height: min(22rem, calc(100% - 1.5rem));
    max-width: min(19rem, calc(100% - 1.5rem));
    min-width: 0;
    overflow: auto;
    padding: 0.85rem 1.75rem 0.85rem 1rem;
    position: absolute;
    top: 0;
    z-index: 5;
}
.gis-popup h3 { font-size: 0.95rem; line-height: 1.3; margin: 0 0 0.35rem; overflow-wrap: anywhere; }
.gis-popup .gis-popup-type {
    color: var(--brand-dark-grey);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-bottom: 0.45rem;
    text-transform: uppercase;
}
.gis-popup dl { display: grid; gap: 0.2rem 0; margin: 0; }
.gis-popup dt { color: var(--brand-dark-grey); font-size: 0.7rem; margin: 0; text-transform: uppercase; }
.gis-popup dd { font-size: 0.82rem; margin: 0 0 0.35rem; overflow-wrap: anywhere; }
.gis-popup-closer {
    color: var(--brand-dark-grey);
    cursor: pointer;
    font-size: 1.1rem;
    inset-inline-end: 0.55rem;
    line-height: 1;
    position: absolute;
    top: 0.35rem;
}

.report-step,
.reach-step-number {
    align-items: center;
    background: var(--brand-primary-soft);
    border-radius: 50%;
    color: var(--brand-primary);
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 800;
    height: 30px;
    justify-content: center;
    margin-inline-end: 0.65rem;
    width: 30px;
}

.report-checkbox-option,
.excel-export-module {
    background: var(--surface-muted);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm);
    min-height: 52px;
    padding: 0.75rem 0.9rem;
}

.report-checkbox-option .form-check,
.excel-export-module .form-check {
    align-items: center;
    display: flex;
    margin: 0;
    padding-inline-start: 0;
}

.report-checkbox-option .form-check-input,
.excel-export-module .form-check-input {
    flex: 0 0 auto;
    margin: 0 0.7rem 0 0;
    position: static;
}

[dir="rtl"] .report-checkbox-option .form-check-input,
[dir="rtl"] .excel-export-module .form-check-input { margin: 0 0 0 0.7rem; }

.report-actions,
.coverage-actions,
.excel-export-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.report-summary { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.report-summary-item {
    background: var(--surface-muted);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm);
    color: var(--brand-black) !important;
    font-size: 0.82rem;
    padding: 0.55rem 0.7rem;
}
.report-table thead th,
.coverage-table thead th {
    background: var(--surface-muted) !important;
    border-bottom: 1px solid var(--border-default);
    color: var(--brand-dark-grey) !important;
    font-family: var(--font-body);
    font-weight: 700;
    position: sticky;
    top: 0;
    z-index: 1;
}
.report-table tfoot th,
.report-table tfoot td,
.coverage-table tfoot th,
.coverage-table tfoot td {
    background: var(--surface-muted);
    border-top: 2px solid var(--border-strong);
    font-weight: 700;
}
.report-loading,
.reach-loading { display: none; }
.is-loading .report-loading,
.is-loading .reach-loading { display: inline-block; }
.is-loading .report-generate-label { display: none; }

.reach-mode,
.official-mode {
    max-width: 100%;
}
.reach-basis-option {
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    cursor: pointer;
    height: 100%;
    margin: 0;
    padding: 1rem;
    position: relative;
}
.reach-basis-option:hover { border-color: var(--brand-primary); }
.reach-basis-option input { height: 1px; opacity: 0; overflow: hidden; position: absolute; width: 1px; }
.reach-basis-content { align-items: flex-start; display: grid; gap: 0.75rem; grid-template-columns: 1.35rem minmax(0, 1fr); }
.reach-basis-indicator {
    background: var(--surface-card);
    border: 2px solid var(--border-strong);
    border-radius: 50%;
    display: block;
    height: 1.25rem;
    margin-top: 0.1rem;
    position: relative;
    width: 1.25rem;
}
.reach-basis-title { color: var(--brand-black); display: block; font-size: 0.92rem; font-weight: 700; }
.reach-basis-help,
.reach-field-help,
.reach-kpi-label,
.reach-unavailable { color: var(--brand-dark-grey); font-size: 0.78rem; }
.reach-basis-option:has(input:checked) {
    background: var(--brand-primary-soft);
    border-color: var(--brand-primary);
    box-shadow: 0 0 0 3px var(--brand-primary-focus);
}
.reach-basis-option input:checked + .reach-basis-content .reach-basis-indicator { border-color: var(--brand-primary); }
.reach-basis-option input:checked + .reach-basis-content .reach-basis-indicator::after {
    background: var(--brand-primary);
    border-radius: 50%;
    content: "";
    inset: 3px;
    position: absolute;
}
.reach-basis-option input:checked + .reach-basis-content .reach-basis-title { color: var(--brand-primary-hover); }
.reach-basis-option:focus-within { border-color: var(--brand-primary); box-shadow: 0 0 0 3px var(--brand-primary-focus); outline: 0; }
.reach-kpi {
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    height: 100%;
    padding: 1rem;
}
.reach-kpi-icon {
    align-items: center;
    background: var(--brand-primary-soft);
    border-radius: 50%;
    color: var(--brand-primary);
    display: flex;
    height: 38px;
    justify-content: center;
    width: 38px;
}
.reach-kpi-value { font-family: var(--font-heading); font-size: 1.65rem; font-weight: 600; line-height: 1.2; }
.reach-section-title { border-bottom: 1px solid var(--border-default); margin-bottom: 1rem; padding-bottom: 0.65rem; }
.reach-breakdown-card { border: 1px solid var(--border-default); border-radius: var(--radius-md); margin-bottom: 1rem; }
.reach-empty,
.official-empty { padding: 3.5rem 1rem; text-align: center; }
.excel-export-group { border: 1px solid var(--border-default); border-radius: var(--radius-md); padding: 1rem 1rem 0.5rem; }
.coverage-table .coverage-value { font-variant-numeric: tabular-nums; text-align: end; }

.sci-error-page,
.sci-public-page {
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 100vh;
    padding: clamp(1.5rem, 5vw, 4rem);
    text-align: center;
}

.sci-error-page .sci-auth-logo,
.sci-public-page .sci-auth-logo {
    margin-bottom: 1.5rem;
    max-width: 220px;
}

.sci-error-code {
    color: var(--brand-primary);
    font-family: var(--font-heading);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
}

.sci-error-page h1,
.sci-public-page h1 {
    margin-bottom: 0.75rem;
}

.sci-error-page p,
.sci-public-page > p {
    color: var(--brand-dark-grey);
    max-width: 36rem;
}

.sci-error-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
    margin-top: 1.5rem;
}

.sci-public-page .card {
    border-inline-start: var(--sci-card-accent-width) solid var(--brand-primary);
    max-width: 720px;
    text-align: start;
    width: 100%;
}

.sci-public-wide {
    max-width: 900px;
    text-align: start;
    width: 100%;
}

@media (max-width: 1199.98px) {
    .programme-filter-grid,
    .gis-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .programme-filter-actions,
    .gis-filter-actions { grid-column: 1 / -1; justify-content: flex-start; }
    .module-filter-grid,
    .module-kpi-grid,
    .module-performance-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991.98px) {
    .gis-shell { grid-template-columns: 1fr; }
    .gis-sidebar { border-block-end: 1px solid var(--border-default); border-inline-end: 0; }
    .gis-map-wrap,
    #gis-map { min-height: 55vh; }
}

@media (max-width: 767.98px) {
    .report-card .card-header,
    .excel-export-card .card-header { align-items: flex-start !important; flex-direction: column; gap: 0.5rem; }
    .reach-mode,
    .official-mode { width: 100%; }
}

@media (max-width: 575.98px) {
    .programme-filter-grid,
    .gis-filter-grid,
    .module-filter-grid,
    .module-kpi-grid,
    .module-performance-grid { grid-template-columns: 1fr; }
    .programme-filter-actions { width: 100%; }
    .programme-filter-actions .btn { flex: 1 1 auto; }
    .module-tab-jump { display: none; }
}

/* =============================================================================
   Index / list pages — shared layout for tabular CRUD lists
   ============================================================================= */

.page-header-title.sci-page-header {
    margin-block-end: var(--space-1);
}

.sci-page-nav-title {
    color: var(--brand-black) !important;
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 2.5vw, 1.875rem);
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.2;
    margin: 0 !important;
    text-transform: none;
}

.sci-page-nav-subtitle {
    color: var(--text-muted);
    font-family: var(--font-body);
    font-size: 0.9375rem;
    margin: 0;
}

.sci-index-breadcrumb {
    margin-block-end: var(--space-4);
}

.sci-index-page {
    --sci-index-gap: var(--space-4);
}

.sci-index-card {
    background: var(--sci-card-bg);
    border: 1px solid var(--sci-card-border);
    border-radius: var(--sci-card-radius);
    box-shadow: var(--sci-card-shadow);
    margin-block-end: var(--space-4);
}

.sci-index-card-header {
    background: var(--sci-card-bg);
    border-block-end: 1px solid var(--sci-card-border);
    padding: var(--sci-card-pad-y) var(--sci-card-pad-x);
}

.sci-index-card-header > .row,
.card-header > .row,
.sci-form-header-row {
    flex: 1 1 100%;
    margin-inline: 0;
    width: 100%;
}

.sci-index-card-title {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.25;
    margin: 0;
}

.sci-index-card-subtitle {
    color: var(--text-muted);
    font-family: var(--font-body);
    font-size: 0.875rem;
    margin: var(--space-1) 0 0;
}

.sci-index-card-actions {
    text-align: end;
}

[dir="rtl"] .sci-index-card-actions {
    text-align: start;
}

.sci-index-action-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: flex-end;
}

[dir="rtl"] .sci-index-action-group {
    justify-content: flex-start;
}

.sci-index-action-group .btn,
.sci-index-action-group form.d-inline {
    margin: 0;
}

.sci-index-card-body {
    padding: var(--sci-card-body-pad-y) var(--sci-card-pad-x);
}

.sci-index-toolbar {
    align-items: stretch;
    display: flex;
    flex-wrap: nowrap;
    gap: var(--space-2);
    margin-inline: 0;
}

.sci-index-toolbar.row {
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
}

.sci-index-toolbar > .sci-index-toolbar-search,
.sci-index-toolbar > .col-md-10,
.sci-index-toolbar > .col-lg-10 {
    flex: 1 1 auto;
    max-width: none !important;
    min-width: 0;
    padding: 0 !important;
    width: auto !important;
}

.sci-index-toolbar > .sci-index-toolbar-filters,
.sci-index-toolbar > .col-md-2,
.sci-index-toolbar > .col-lg-2 {
    align-items: stretch;
    display: flex;
    flex: 0 0 auto;
    max-width: none !important;
    padding: 0 !important;
    width: auto !important;
}

.sci-index-toolbar-search .form-inline,
.sci-index-toolbar-search form {
    height: 100%;
    width: 100%;
}

.sci-index-toolbar-search .form-group {
    height: 100%;
    margin: 0;
    width: 100%;
}

.sci-index-toolbar-search .input-group {
    flex-wrap: nowrap;
    height: 100%;
    width: 100%;
}

.sci-index-toolbar-search .form-control {
    font-family: var(--font-body);
    min-width: 0;
}

.sci-index-toolbar-filters {
    align-self: stretch;
}

.sci-index-toolbar-filters .btn,
.sci-index-filter-toggle {
    align-items: center;
    display: inline-flex;
    height: 100%;
    white-space: nowrap;
}

.sci-index-filter-toggle[aria-expanded="true"] {
    background: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: var(--sci-white) !important;
}

.sci-index-filters {
    margin-block-end: 0;
}

/* Right-side filter drawer (matches personal settings panel behaviour) */
.sci-index-filter-drawer {
    inset: 0;
    pointer-events: none;
    position: fixed;
    visibility: hidden;
    z-index: 1050;
}

.sci-index-filter-drawer.is-open {
    pointer-events: auto;
    visibility: visible;
}

.sci-index-filter-backdrop {
    background: rgba(34, 34, 33, 0.45);
    border: 0;
    cursor: default;
    inset: 0;
    opacity: 0;
    position: absolute;
    transition: opacity 180ms ease;
}

.sci-index-filter-drawer.is-open .sci-index-filter-backdrop {
    opacity: 1;
}

.sci-index-filter-panel {
    background: var(--surface-card);
    border-inline-start: 1px solid var(--border-default);
    box-shadow: var(--sci-drawer-shadow);
    display: flex;
    flex-direction: column;
    inset-block: 0;
    inset-inline-end: calc(-1 * var(--sci-drawer-width));
    max-width: 100%;
    position: absolute;
    transition: inset-inline-end 180ms ease, inset-inline-start 180ms ease;
    width: min(var(--sci-drawer-width), 100%);
    z-index: 1;
}

.sci-index-filter-drawer.is-open .sci-index-filter-panel {
    inset-inline-end: 0;
}

.sci-index-filter-panel .sci-index-filters-form {
    border: 0;
    border-block-start: 0;
    border-radius: 0;
    box-shadow: none;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    height: 100%;
    margin: 0;
    min-height: 0;
    overflow: hidden;
}

.sci-index-filter-panel-header,
.sci-index-filters-header.sci-index-filter-panel-header {
    align-items: flex-start;
    background: var(--sci-card-bg);
    border-block-end: 1px solid var(--sci-card-border);
    display: flex;
    flex: 0 0 auto;
    gap: var(--space-3);
    justify-content: space-between;
    padding: var(--sci-card-pad-y) var(--sci-card-pad-x);
}

.sci-index-filter-panel-header .sci-index-filters-heading {
    align-items: flex-start;
    display: flex;
    gap: var(--space-2);
    min-width: 0;
}

.sci-index-filter-panel-header .sci-index-filters-subtitle {
    margin: var(--space-1) 0 0;
}

.sci-index-filter-close {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: var(--radius-sm);
    color: var(--brand-dark-grey);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1.15rem;
    height: 36px;
    justify-content: center;
    width: 36px;
}

.sci-index-filter-close:hover {
    background: var(--brand-primary-soft);
    color: var(--brand-primary);
}

.sci-index-filter-close:focus-visible {
    box-shadow: 0 0 0 3px var(--brand-primary-focus);
    outline: 0;
}

.sci-index-filter-panel-body,
.sci-index-filter-panel .sci-index-filters-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: var(--space-4);
}

.sci-index-filter-panel-footer,
.sci-index-filter-panel .sci-index-filters-actions {
    background: var(--sci-card-bg);
    border-block-start: 1px solid var(--sci-card-border);
    flex: 0 0 auto;
    margin: 0;
    padding: var(--sci-card-pad-y) var(--sci-card-pad-x);
}

.sci-index-filter-toggle.is-active,
.sci-index-filter-toggle[aria-expanded="true"] {
    background: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: var(--sci-white) !important;
}

body.sci-index-filter-drawer-open {
    overflow: hidden;
}

body.sci-reduce-motion .sci-index-filter-backdrop,
body.sci-reduce-motion .sci-index-filter-panel {
    transition: none;
}

.collapse.sci-index-filters {
    display: none !important;
}

.sci-index-filters-form,
.sci-index-filters-inner form,
.sci-index-filters > form {
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-block-start: 3px solid var(--brand-primary);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    margin-block-end: 0;
    overflow: hidden;
    padding: 0 !important;
}

.sci-index-filters-header {
    align-items: flex-start;
    background: linear-gradient(to bottom, rgba(218, 41, 28, 0.04), transparent);
    border-block-end: 1px solid var(--border-default);
    display: flex;
    gap: var(--space-3);
    justify-content: space-between;
    padding: var(--space-3) var(--space-4);
}

.sci-index-filters-heading {
    align-items: center;
    display: flex;
    gap: var(--space-2);
    min-width: 0;
}

.sci-index-filters-icon {
    align-items: center;
    background: var(--brand-primary);
    border-radius: var(--radius-sm);
    color: #fff;
    display: inline-flex;
    height: 2rem;
    justify-content: center;
    width: 2rem;
}

.sci-index-filters-icon .feather {
    height: 1rem;
    width: 1rem;
}

.sci-index-filters-title {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.2;
    margin: 0;
}

.sci-index-filters-subtitle {
    color: var(--text-muted);
    font-family: var(--font-body);
    font-size: 0.8125rem;
    margin: 0;
}

/* Drawer uses a narrow panel — force single-column fields (Bootstrap cols are viewport-based) */
.sci-index-filter-panel .sci-index-filters-grid,
.sci-index-filter-panel .sci-index-filters-body > .row {
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-inline: 0;
}

.sci-index-filter-panel .sci-index-filters-grid > [class*="col-"],
.sci-index-filter-panel .sci-index-filters-body > .row > [class*="col-"],
.sci-index-filter-panel .sci-index-filters-body [class*="col-"] {
    flex: 0 0 auto;
    margin-block-end: 0 !important;
    max-width: 100%;
    min-width: 0;
    padding-inline: 0;
    width: 100%;
}

.sci-index-filter-panel .form-control,
.sci-index-filter-panel .form-select,
.sci-index-filter-panel .select2-container,
.sci-index-filter-panel .input-group {
    max-width: 100%;
    width: 100% !important;
}

.sci-index-filter-panel .form-label {
    display: block;
    line-height: 1.35;
    margin-block-end: var(--space-1);
}

.sci-index-filter-panel input[type="date"].form-control {
    min-width: 0;
}

body.sci-index-filter-drawer-open .sci-index-filter-toggle.is-active {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
}

.sci-index-filters-body {
    padding: var(--space-4);
}

.sci-index-filters-body > .row,
.sci-index-filters-grid,
.sci-index-filters-form > .row:first-of-type {
    --bs-gutter-x: 1rem;
    --bs-gutter-y: 0;
    margin: 0;
}

.sci-index-filters-form .form-label,
.sci-index-filters-body .form-label {
    color: var(--brand-black);
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    margin-block-end: var(--space-1);
}

.sci-index-filters-form .col-md-3,
.sci-index-filters-form .col-md-4,
.sci-index-filters-form .col-md-6,
.sci-index-filters-body .col-md-3,
.sci-index-filters-body .col-md-4,
.sci-index-filters-body .col-md-6 {
    margin-block-end: var(--space-3);
}

/* Unified filter field controls — text, date, number, native select, and Select2 */
.sci-index-filters-form .form-control,
.sci-index-filters-form .form-select,
.sci-index-filters-body .form-control,
.sci-index-filters-body .form-select,
.collapse[id$="Filters"] .form-control,
.collapse[id$="Filters"] .form-select,
.sci-index-filters-form .select2-container--default .select2-selection--single,
.sci-index-filters-form .select2-container--default .select2-selection--multiple,
.sci-index-filters-body .select2-container--default .select2-selection--single,
.sci-index-filters-body .select2-container--default .select2-selection--multiple,
.collapse[id$="Filters"] .select2-container--default .select2-selection--single,
.collapse[id$="Filters"] .select2-container--default .select2-selection--multiple {
    background-color: var(--sci-white) !important;
    border: 1px solid var(--border-strong) !important;
    border-radius: var(--radius-sm) !important;
    box-shadow: none !important;
    color: var(--brand-black) !important;
    font-family: var(--font-body) !important;
    font-size: 0.875rem !important;
    line-height: 1.5 !important;
    min-height: 42px !important;
}

.sci-index-filters-form .form-control,
.sci-index-filters-form .form-select,
.sci-index-filters-body .form-control,
.sci-index-filters-body .form-select,
.collapse[id$="Filters"] .form-control,
.collapse[id$="Filters"] .form-select {
    padding: 0.58rem 0.75rem !important;
}

.sci-index-filters-form .form-control::placeholder,
.sci-index-filters-body .form-control::placeholder,
.collapse[id$="Filters"] .form-control::placeholder {
    color: var(--brand-light-grey) !important;
    opacity: 1 !important;
}

.sci-index-filters-form .form-control:focus,
.sci-index-filters-form .form-select:focus,
.sci-index-filters-body .form-control:focus,
.sci-index-filters-body .form-select:focus,
.collapse[id$="Filters"] .form-control:focus,
.collapse[id$="Filters"] .form-select:focus,
.sci-index-filters-form .select2-container--default.select2-container--open .select2-selection--single,
.sci-index-filters-form .select2-container--default.select2-container--focus .select2-selection--single,
.sci-index-filters-body .select2-container--default.select2-container--open .select2-selection--single,
.sci-index-filters-body .select2-container--default.select2-container--focus .select2-selection--single,
.collapse[id$="Filters"] .select2-container--default.select2-container--open .select2-selection--single,
.collapse[id$="Filters"] .select2-container--default.select2-container--focus .select2-selection--single {
    background-color: var(--sci-white) !important;
    border-color: var(--brand-primary) !important;
    box-shadow: 0 0 0 3px var(--brand-primary-focus) !important;
    outline: 0 !important;
}

.sci-index-filters-form .select2-container,
.sci-index-filters-body .select2-container,
.collapse[id$="Filters"] .select2-container {
    display: block;
    max-width: 100%;
    width: 100% !important;
}

.sci-index-filters-form .select2-container--default .select2-selection--single,
.sci-index-filters-body .select2-container--default .select2-selection--single,
.collapse[id$="Filters"] .select2-container--default .select2-selection--single {
    height: 42px !important;
}

.sci-index-filters-form .select2-container--default .select2-selection--single .select2-selection__rendered,
.sci-index-filters-body .select2-container--default .select2-selection--single .select2-selection__rendered,
.collapse[id$="Filters"] .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--brand-black) !important;
    line-height: 40px !important;
    padding-inline: 0.75rem 2rem !important;
}

.sci-index-filters-form .select2-container--default .select2-selection--single .select2-selection__placeholder,
.sci-index-filters-body .select2-container--default .select2-selection--single .select2-selection__placeholder,
.collapse[id$="Filters"] .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: var(--brand-light-grey) !important;
}

.sci-index-filters-form .select2-container--default .select2-selection--single .select2-selection__arrow,
.sci-index-filters-body .select2-container--default .select2-selection--single .select2-selection__arrow,
.collapse[id$="Filters"] .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 40px !important;
    inset-inline-end: 0.5rem !important;
}

.sci-index-filters-form .input-group,
.sci-index-filters-body .input-group,
.collapse[id$="Filters"] .input-group {
    flex-wrap: nowrap;
}

.sci-index-filters-form .input-group .form-control,
.sci-index-filters-body .input-group .form-control,
.collapse[id$="Filters"] .input-group .form-control {
    min-height: 42px !important;
}

.sci-index-filters-form .input-group .form-control:not(:first-child),
.sci-index-filters-body .input-group .form-control:not(:first-child),
.collapse[id$="Filters"] .input-group .form-control:not(:first-child) {
    border-inline-start: 0 !important;
}

.sci-index-filters-form input[type="date"].form-control,
.sci-index-filters-body input[type="date"].form-control,
.collapse[id$="Filters"] input[type="date"].form-control {
    appearance: none;
    -webkit-appearance: none;
}

.sci-index-filters-actions {
    align-items: center;
    background: var(--surface-muted);
    border-block-start: 1px solid var(--border-default);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: flex-start;
    padding: var(--space-3) var(--space-4);
}

[dir="rtl"] .sci-index-filters-actions {
    justify-content: flex-start;
}

.sci-index-filters-form > .sci-index-filters-actions,
.sci-index-filters-form > .row.mt-3 {
    background: var(--surface-muted);
    border-block-start: 1px solid var(--border-default);
    margin: 0 !important;
    padding: var(--space-3) var(--space-4);
}

.sci-index-filters-form > .row.mt-3 > .col-md-12 {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    padding: 0;
}

.sci-index-filters-form > .btn,
.sci-index-filters-form > a.btn,
.sci-index-filters-form > .row.mt-3 .btn,
.sci-index-filters-form > .row.mt-3 a.btn {
    margin: 0;
}

/* Legacy collapse panels missing sci-index-filters class */
.collapse[id$="Filters"]:not(.sci-index-filters) {
    margin-block-end: var(--space-4);
}

.collapse[id$="Filters"]:not(.sci-index-filters) > form,
.collapse[id$="Filters"]:not(.sci-index-filters) > .border.rounded {
    background: var(--surface-card);
    border: 1px solid var(--border-default) !important;
    border-block-start: 3px solid var(--brand-primary) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: var(--shadow-sm);
    margin-block-end: 0 !important;
    overflow: hidden;
    padding: 0 !important;
}

@media (max-width: 767.98px) {
    .sci-index-filters-header,
    .sci-index-filters-body,
    .sci-index-filters-actions,
    .sci-index-filters-form > .row.mt-3 {
        padding-inline: var(--space-3);
    }

    .sci-index-filters-subtitle {
        margin-inline-start: 0;
    }

    .sci-index-filters-actions,
    .sci-index-filters-form > .row.mt-3 > .col-md-12 {
        flex-direction: column;
    }

    .sci-index-filters-actions .btn,
    .sci-index-filters-form > .row.mt-3 .btn,
    .sci-index-filters-form > .btn {
        justify-content: center;
        width: 100%;
    }
}

.sci-data-table {
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    overflow-x: auto;
}

.sci-data-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.sci-index-table {
    font-family: var(--font-body);
    margin: 0 !important;
}

.sci-index-table thead th {
    background: var(--surface-muted);
    border-block-end: 1px solid var(--border-default);
    color: var(--brand-dark-grey);
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 0.625rem 0.875rem;
    text-transform: uppercase;
    vertical-align: middle;
    white-space: nowrap;
}

.sci-index-table tbody td {
    border-block-end: 1px solid var(--border-subtle);
    font-size: 0.875rem;
    padding: 0.625rem 0.875rem;
    vertical-align: middle;
}

.sci-index-table tbody tr:last-child td {
    border-block-end: 0;
}

.sci-index-table tbody tr:hover {
    background: var(--surface-muted);
}

.sci-index-table .badge {
    font-size: 0.6875rem;
    padding: 0.3rem 0.5rem;
}

.sci-index-table tbody h6 {
    color: var(--brand-black);
    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
}

.sci-index-table tbody p {
    color: var(--text-muted);
    font-size: 0.8125rem;
    line-height: 1.3;
    margin: 0;
}

.sci-row-actions,
.table .btn-group.card-option,
.sci-index-table .btn-group.card-option {
    display: inline-flex;
    position: relative;
    vertical-align: middle;
}

.sci-row-actions-toggle,
.table .btn-group.card-option > .btn[data-bs-toggle="dropdown"],
.sci-index-table .btn-group.card-option > .btn[data-bs-toggle="dropdown"] {
    align-items: center;
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-radius: var(--sci-btn-radius);
    color: var(--brand-dark-grey);
    display: inline-flex;
    height: var(--sci-btn-height-icon);
    justify-content: center;
    min-height: var(--sci-btn-height-icon);
    min-width: var(--sci-btn-height-icon);
    padding: 0;
    width: var(--sci-btn-height-icon);
}

.sci-row-actions-toggle:hover,
.sci-row-actions-toggle:focus,
.table .btn-group.card-option > .btn[data-bs-toggle="dropdown"]:hover,
.table .btn-group.card-option > .btn[data-bs-toggle="dropdown"]:focus,
.sci-index-table .btn-group.card-option > .btn[data-bs-toggle="dropdown"]:hover,
.sci-index-table .btn-group.card-option > .btn[data-bs-toggle="dropdown"]:focus {
    background: var(--brand-primary-soft);
    border-color: var(--brand-primary);
    color: var(--brand-primary);
}

.sci-row-actions-menu,
.table .btn-group.card-option .dropdown-menu,
.sci-index-table .btn-group.card-option .dropdown-menu {
    border: 1px solid var(--border-default) !important;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    min-width: 13rem;
    padding: 0.35rem 0 !important;
}

.sci-row-actions-menu .dropdown-item,
.table .btn-group.card-option .dropdown-menu .dropdown-item,
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item {
    background: transparent !important;
    box-shadow: none !important;
    color: var(--brand-black) !important;
    font-family: var(--font-body);
    font-size: 0.875rem;
    margin: 0 !important;
    overflow: visible;
    padding: 0 !important;
    width: 100% !important;
}

.sci-row-actions-menu .dropdown-item:hover,
.sci-row-actions-menu .dropdown-item:focus,
.sci-row-actions-menu .dropdown-item:active,
.table .btn-group.card-option .dropdown-menu .dropdown-item:hover,
.table .btn-group.card-option .dropdown-menu .dropdown-item:focus,
.table .btn-group.card-option .dropdown-menu .dropdown-item:active,
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item:hover,
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item:focus,
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item:active {
    background: var(--surface-muted) !important;
    color: var(--brand-black) !important;
}

.sci-row-actions-menu .dropdown-item > a,
.sci-row-actions-menu .dropdown-item > form,
.table .btn-group.card-option .dropdown-menu .dropdown-item > a,
.table .btn-group.card-option .dropdown-menu .dropdown-item > form,
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item > a,
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item > form {
    background: transparent !important;
    color: var(--brand-black) !important;
    margin: 0 !important;
    min-height: 0;
    padding: 0 !important;
    text-decoration: none;
    width: 100%;
}

.sci-row-actions-menu .dropdown-item > form,
.table .btn-group.card-option .dropdown-menu .dropdown-item > form,
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item > form {
    display: block !important;
}

.sci-row-actions-menu .dropdown-item > a,
.sci-row-actions-menu .dropdown-item > a.btn,
.sci-row-actions-menu .dropdown-item .btn,
.sci-row-actions-menu .dropdown-item .btn:hover,
.sci-row-actions-menu .dropdown-item .btn:focus,
.sci-row-actions-menu .dropdown-item .btn:focus-visible,
.sci-row-actions-menu .dropdown-item .btn:active,
.sci-row-actions-menu .dropdown-item input.btn,
.table .btn-group.card-option .dropdown-menu .dropdown-item > a,
.table .btn-group.card-option .dropdown-menu .dropdown-item > a.btn,
.table .btn-group.card-option .dropdown-menu .btn,
.table .btn-group.card-option .dropdown-menu .btn:hover,
.table .btn-group.card-option .dropdown-menu .btn:focus,
.table .btn-group.card-option .dropdown-menu .btn:focus-visible,
.table .btn-group.card-option .dropdown-menu .btn:active,
.table .btn-group.card-option .dropdown-menu input.btn,
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item > a,
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item > a.btn,
.sci-index-table .btn-group.card-option .dropdown-menu .btn,
.sci-index-table .btn-group.card-option .dropdown-menu .btn:hover,
.sci-index-table .btn-group.card-option .dropdown-menu .btn:focus,
.sci-index-table .btn-group.card-option .dropdown-menu .btn:focus-visible,
.sci-index-table .btn-group.card-option .dropdown-menu .btn:active,
.sci-index-table .btn-group.card-option .dropdown-menu input.btn {
    align-items: center;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    box-sizing: border-box;
    color: var(--brand-black) !important;
    column-gap: 0.625rem;
    display: grid !important;
    justify-items: start;
    font-family: var(--font-body) !important;
    font-size: 0.875rem !important;
    font-weight: 400 !important;
    grid-template-columns: 1.25rem minmax(0, 1fr);
    height: auto !important;
    justify-content: start !important;
    line-height: 1.35 !important;
    margin: 0 !important;
    min-height: 38px !important;
    min-width: 0 !important;
    overflow: visible !important;
    padding: 0.5rem 1rem !important;
    row-gap: 0;
    text-align: start !important;
    white-space: nowrap;
    width: 100% !important;
}

.sci-row-actions-menu .dropdown-item > a:has(> span),
.sci-row-actions-menu .dropdown-item .btn:has(> span),
.table .btn-group.card-option .dropdown-menu .dropdown-item > a:has(> span),
.table .btn-group.card-option .dropdown-menu .btn:has(> span),
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item > a:has(> span),
.sci-index-table .btn-group.card-option .dropdown-menu .btn:has(> span) {
    grid-template-columns: minmax(0, 1fr);
}

.sci-row-actions-menu .dropdown-item > a > span,
.sci-row-actions-menu .dropdown-item .btn > span,
.table .btn-group.card-option .dropdown-menu .dropdown-item > a > span,
.table .btn-group.card-option .dropdown-menu .btn > span,
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item > a > span,
.sci-index-table .btn-group.card-option .dropdown-menu .btn > span {
    align-items: center;
    column-gap: 0.625rem;
    display: grid;
    grid-template-columns: 1.25rem minmax(0, 1fr);
    justify-items: start;
    min-width: 0;
    width: 100%;
}

.sci-row-actions-menu .dropdown-item.is-danger > a,
.sci-row-actions-menu .dropdown-item .btn-danger,
.sci-row-actions-menu .dropdown-item .btn-outline-danger,
.sci-row-actions-menu .dropdown-item .btn-danger:hover,
.sci-row-actions-menu .dropdown-item .btn-outline-danger:hover,
.table .btn-group.card-option .dropdown-menu .btn-danger,
.table .btn-group.card-option .dropdown-menu .btn-outline-danger,
.table .btn-group.card-option .dropdown-menu .btn-danger:hover,
.table .btn-group.card-option .dropdown-menu .btn-outline-danger:hover,
.sci-index-table .btn-group.card-option .dropdown-menu .btn-danger,
.sci-index-table .btn-group.card-option .dropdown-menu .btn-outline-danger,
.sci-index-table .btn-group.card-option .dropdown-menu .btn-danger:hover,
.sci-index-table .btn-group.card-option .dropdown-menu .btn-outline-danger:hover {
    background: transparent !important;
    color: var(--brand-primary) !important;
}

.sci-row-actions-menu .dropdown-item:hover > a,
.sci-row-actions-menu .dropdown-item:focus > a,
.sci-row-actions-menu .dropdown-item:hover .btn:not(.btn-danger):not(.btn-outline-danger),
.table .btn-group.card-option .dropdown-menu .dropdown-item:hover > a,
.table .btn-group.card-option .dropdown-menu .dropdown-item:focus > a,
.table .btn-group.card-option .dropdown-menu .dropdown-item:hover .btn:not(.btn-danger):not(.btn-outline-danger),
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item:hover > a,
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item:focus > a,
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item:hover .btn:not(.btn-danger):not(.btn-outline-danger) {
    color: var(--brand-black) !important;
}

.sci-row-actions-menu .dropdown-item i,
.sci-row-actions-menu .dropdown-item svg,
.sci-row-actions-menu .dropdown-item .btn i,
.sci-row-actions-menu .dropdown-item .btn svg,
.table .btn-group.card-option .dropdown-menu i,
.table .btn-group.card-option .dropdown-menu .feather,
.table .btn-group.card-option .dropdown-menu svg,
.sci-index-table .btn-group.card-option .dropdown-menu i,
.sci-index-table .btn-group.card-option .dropdown-menu .feather,
.sci-index-table .btn-group.card-option .dropdown-menu svg {
    align-items: center;
    align-self: center;
    color: inherit !important;
    display: inline-flex !important;
    flex: none;
    font-size: 1rem !important;
    grid-column: 1;
    grid-row: 1;
    height: 1.25rem;
    justify-content: center;
    justify-self: center;
    line-height: 1;
    margin: 0 !important;
    margin-inline: 0 !important;
    min-width: 1.25rem;
    width: 1.25rem;
}

.sci-row-actions-menu .dropdown-item i::before,
.sci-row-actions-menu .dropdown-item .btn i::before,
.table .btn-group.card-option .dropdown-menu i::before,
.sci-index-table .btn-group.card-option .dropdown-menu i::before {
    display: block;
    line-height: 1.25rem;
    text-align: center;
    width: 1.25rem;
}

.sci-row-actions-menu .dropdown-item .me-1,
.sci-row-actions-menu .dropdown-item .me-2,
.sci-row-actions-menu .dropdown-item .me-3,
.sci-row-actions-menu .dropdown-item .ms-1,
.sci-row-actions-menu .dropdown-item .ms-2,
.table .btn-group.card-option .dropdown-menu .me-1,
.table .btn-group.card-option .dropdown-menu .me-2,
.table .btn-group.card-option .dropdown-menu .me-3,
.table .btn-group.card-option .dropdown-menu .ms-1,
.table .btn-group.card-option .dropdown-menu .ms-2,
.sci-index-table .btn-group.card-option .dropdown-menu .me-1,
.sci-index-table .btn-group.card-option .dropdown-menu .me-2,
.sci-index-table .btn-group.card-option .dropdown-menu .me-3,
.sci-index-table .btn-group.card-option .dropdown-menu .ms-1,
.sci-index-table .btn-group.card-option .dropdown-menu .ms-2 {
    margin: 0 !important;
}

.sci-row-actions-menu .dropdown-item > a:not(:has(i)):not(:has(svg)),
.sci-row-actions-menu .dropdown-item .btn:not(:has(i)):not(:has(svg)),
.sci-row-actions-menu .dropdown-item input.btn,
.table .btn-group.card-option .dropdown-menu .dropdown-item > a:not(:has(i)):not(:has(svg)),
.table .btn-group.card-option .dropdown-menu .btn:not(:has(i)):not(:has(svg)),
.table .btn-group.card-option .dropdown-menu input.btn,
.sci-index-table .btn-group.card-option .dropdown-menu .dropdown-item > a:not(:has(i)):not(:has(svg)),
.sci-index-table .btn-group.card-option .dropdown-menu .btn:not(:has(i)):not(:has(svg)),
.sci-index-table .btn-group.card-option .dropdown-menu input.btn {
    grid-template-columns: minmax(0, 1fr);
    padding-inline-start: calc(1rem + 1.25rem + 0.625rem) !important;
}

.table tbody td > .btn.btn-sm:not(.dropdown-toggle):not(.sci-row-actions-toggle) {
    font-size: 0.8125rem;
    min-height: var(--sci-btn-height-sm);
    padding: 0.35rem var(--sci-btn-pad-x-sm);
}

.table th:last-child:is([class*="text-end"], [class*="text-right"], .sci-col-actions),
.table td:last-child:has(.sci-row-actions, .btn-group.card-option),
.table td.sci-col-actions {
    text-align: end;
    white-space: nowrap;
    width: 1%;
}

.sci-index-empty-row td {
    border: 0 !important;
    padding: 0 !important;
}

.sci-index-empty,
.sci-state {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--brand-dark-grey);
    display: flex;
    flex-direction: column;
    font-family: var(--font-body);
    gap: 0.5rem;
    justify-content: center;
    min-height: 12rem;
    padding: 2.5rem 1.25rem;
    text-align: center;
}

.sci-state--compact {
    gap: 0.35rem;
    min-height: 0;
    padding: 1.25rem 1rem;
}

.sci-state--inline {
    min-height: 0;
    padding: 1rem;
}

.sci-state--page {
    justify-content: center;
    min-height: calc(100vh - 2rem);
    padding: clamp(1.5rem, 5vw, 4rem);
}

.sci-state--page .sci-auth-logo {
    margin-bottom: 1.25rem;
    max-width: 220px;
}

.sci-state__code {
    color: var(--brand-dark-grey);
    font-family: var(--font-heading);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    margin: 0 0 0.15rem;
    text-transform: uppercase;
}

.sci-state--danger .sci-state__code {
    color: var(--sci-red);
}

.sci-state__media {
    align-items: center;
    background: var(--surface-muted);
    border: 1px solid var(--border-default);
    border-radius: 50%;
    color: var(--brand-dark-grey);
    display: inline-flex;
    height: 3.25rem;
    justify-content: center;
    margin-bottom: 0.35rem;
    width: 3.25rem;
}

.sci-state--compact .sci-state__media {
    height: 2.5rem;
    width: 2.5rem;
}

.sci-state--page .sci-state__media {
    height: 4rem;
    width: 4rem;
}

.sci-state__media .feather {
    font-size: 1.35rem;
    height: 1.35rem;
    line-height: 1;
    width: 1.35rem;
}

.sci-state--page .sci-state__media .feather {
    font-size: 1.7rem;
    height: 1.7rem;
    width: 1.7rem;
}

.sci-state--warning .sci-state__media {
    background: var(--warning-soft, rgba(242, 169, 0, 0.16));
    border-color: rgba(242, 169, 0, 0.35);
    color: var(--on-warning, #8a5a00);
}

.sci-state--danger .sci-state__media {
    background: var(--danger-soft, rgba(218, 41, 28, 0.12));
    border-color: rgba(218, 41, 28, 0.28);
    color: var(--sci-red);
}

.sci-state__spinner,
.sci-index-loading-spinner {
    animation: sci-index-spin 0.8s linear infinite;
    border: 3px solid var(--border-default);
    border-inline-start-color: var(--brand-primary);
    border-radius: 50%;
    display: block;
    height: 1.6rem;
    width: 1.6rem;
}

.sci-state--page .sci-state__spinner {
    height: 2rem;
    width: 2rem;
}

.sci-state__title {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.3;
    margin: 0;
}

.sci-state--page .sci-state__title {
    font-family: var(--font-heading);
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 600;
    letter-spacing: 0.01em;
}

.sci-state__message,
.sci-index-empty-message,
.sci-index-loading-message {
    color: var(--brand-dark-grey);
    font-family: var(--font-body);
    font-size: 0.9375rem;
    line-height: 1.5;
    margin: 0;
    max-width: 28rem;
}

.sci-state--page .sci-state__message {
    max-width: 36rem;
}

.sci-state__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
    margin-top: 0.85rem;
}

.sci-state__actions .btn {
    align-items: center;
    display: inline-flex;
    gap: 0.4rem;
}

.card .sci-state,
.sci-card .sci-state,
.sci-index-card-body > .sci-state,
.sci-form-body > .sci-state,
.sci-detail-body > .sci-state {
    min-height: 14rem;
    padding: var(--space-6) var(--sci-card-pad-x);
}

.card .sci-state--compact,
.sci-card .sci-state--compact {
    min-height: 0;
    padding: var(--space-5) var(--sci-card-pad-x);
}

.sci-index-loading {
    min-height: 12rem;
}

.dashboard-metric-card .count_loader.sci-state__spinner {
    height: 1.15rem;
    margin-block: 0.35rem;
    width: 1.15rem;
}

.sci-state-overlay {
    align-items: center;
    background: rgba(243, 242, 238, 0.88);
    bottom: 0;
    display: none;
    inset: 0;
    justify-content: center;
    left: 0;
    padding: 1.5rem;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 20;
}

.sci-state-overlay.is-visible,
.sci-state-host.is-loading > .sci-state-overlay {
    display: flex;
}

.sci-state-host {
    position: relative;
}

.sci-offline-banner {
    background: var(--warning-soft, rgba(242, 169, 0, 0.18));
    border-block-end: 1px solid rgba(242, 169, 0, 0.4);
    display: none;
    padding: 0.65rem 1rem;
    position: sticky;
    top: 0;
    z-index: 10840;
}

.sci-offline-banner.is-visible {
    display: block;
}

.sci-offline-banner .sci-state {
    min-height: 0;
    padding: 0.35rem 0.5rem;
}

.sci-page-loading {
    align-items: center;
    background: rgba(255, 255, 255, 0.88);
    bottom: 0;
    display: none;
    inset: 0;
    justify-content: center;
    left: 0;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 10860;
}

.sci-page-loading.is-visible {
    display: flex;
}

.sci-index-empty-icon {
    align-items: center;
    background: var(--surface-muted);
    border: 1px solid var(--border-default);
    border-radius: 50%;
    color: var(--text-muted);
    display: inline-flex;
    height: 3rem;
    justify-content: center;
    width: 3rem;
}

.sci-index-empty-icon .feather {
    height: 1.35rem;
    width: 1.35rem;
}

.sci-index-loading {
    align-items: center;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    font-family: var(--font-body);
    gap: var(--space-3);
    justify-content: center;
    min-height: 12rem;
    padding: var(--space-6) var(--space-4);
    text-align: center;
}

.dataTable-wrapper .dataTable-empty,
.dataTable-wrapper td.dataTables-empty,
.datatable-empty,
.sci-notification-empty,
.sci-empty-state,
.programme-empty,
.dq-chart-empty {
    align-items: center;
    color: var(--brand-dark-grey);
    display: flex;
    flex-direction: column;
    font-family: var(--font-body);
    gap: 0.35rem;
    justify-content: center;
    min-height: 8rem;
    padding: 1.75rem 1rem;
    text-align: center;
}

td.dataTables-empty .sci-state {
    min-height: 0;
    padding: 0.75rem 0.5rem;
    width: 100%;
}

.sci-notification-empty i,
.sci-empty-state > i {
    color: var(--brand-dark-grey);
    font-size: 1.5rem;
}

@keyframes sci-index-spin {
    to { transform: rotate(360deg); }
}

html.sci-theme-dark .sci-page-loading,
html.sci-theme-dark .sci-state-overlay {
    background: rgba(21, 22, 22, 0.88);
}

@media (max-width: 575.98px) {
    .sci-state,
    .sci-index-empty {
        min-height: 9.5rem;
        padding: 1.75rem 1rem;
    }

    .sci-state--page {
        min-height: 100vh;
        padding: 1.5rem 1rem;
    }

    .sci-state__actions {
        width: 100%;
    }

    .sci-state__actions .btn {
        justify-content: center;
        width: 100%;
    }
}

.sci-index-pagination {
    background: var(--surface-card);
    border-block-start: 1px solid var(--border-default);
    padding: var(--space-3) var(--space-5);
}

.sci-index-pagination .pagination {
    flex-wrap: nowrap;
    margin: 0;
}

.sci-index-pagination .page-link {
    font-family: var(--font-body);
}

.sci-index-pagination .page-item.active .page-link {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.sci-index-pagination-row,
.sci-index-pagination-copy,
.sci-index-pagination-meta,
.sci-index-per-page-wrap,
label.sci-index-per-page-label,
.sci-index-per-page {
    color: var(--brand-dark-grey);
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-style: normal;
    font-weight: 400;
    letter-spacing: normal;
    line-height: 1.25;
}

.sci-index-pagination-copy {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    min-width: 0;
}

.sci-index-pagination-meta,
label.sci-index-per-page-label {
    display: inline;
    margin: 0;
}

.sci-index-per-page-wrap {
    align-items: center;
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 0.35rem;
}

label.sci-index-per-page-label {
    white-space: nowrap;
}

.sci-index-per-page {
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    background-color: transparent;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%234a4f53' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.75' d='m3.5 6 4.5 4.5L12.5 6'/%3E%3C/svg%3E");
    background-position: right 0.05rem center;
    background-repeat: no-repeat;
    background-size: 0.65rem;
    border: 0 !important;
    border-radius: 0;
    box-shadow: none !important;
    color: var(--brand-dark-grey) !important;
    cursor: pointer;
    display: inline-block;
    font-family: var(--font-body) !important;
    font-size: 0.8125rem !important;
    font-style: normal !important;
    font-weight: 400 !important;
    height: auto;
    line-height: 1.25 !important;
    min-height: 0;
    min-width: 1.75rem;
    padding: 0 1.05rem 0 0;
    vertical-align: baseline;
    width: auto;
}

.sci-index-per-page::-ms-expand {
    display: none;
}

.sci-index-per-page:hover:not(:disabled),
.sci-index-per-page:focus,
.sci-index-per-page:focus-visible {
    background-color: transparent;
    border: 0 !important;
    box-shadow: none !important;
    color: var(--brand-dark-grey) !important;
    outline: 0;
}

.sci-index-per-page:disabled {
    cursor: not-allowed;
    opacity: 0.65;
}

[dir="rtl"] .sci-index-per-page {
    background-position: left 0.05rem center;
    padding: 0 0 0 1.05rem;
}

.sci-index-pagination-controls {
    align-items: center;
    min-width: 0;
}

.sci-index-pagination-links {
    align-items: center;
    display: flex;
}

.sci-index-pagination-links .pagination {
    margin-bottom: 0;
}

/* Legacy markup normalization inside index cards */
.sci-index-card .card-header:not(.sci-index-card-header) .row {
    align-items: center;
}

.sci-index-card .card-header:not(.sci-index-card-header) h5 {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 600;
    margin: 0;
}

.sci-index-card .card-header:not(.sci-index-card-header) .d-block.m-t-5,
.sci-index-card .card-header:not(.sci-index-card-header) span.d-block {
    color: var(--text-muted);
    display: block !important;
    font-family: var(--font-body);
    font-size: 0.875rem;
    margin-block-start: var(--space-1) !important;
}

.sci-index-card .card-header:not(.sci-index-card-header) ul.breadcrumb.float-end {
    display: flex;
    flex-wrap: wrap;
    float: none !important;
    gap: var(--space-2);
    justify-content: flex-end;
    list-style: none;
    margin: 0;
    padding: 0;
}

[dir="rtl"] .sci-index-card .card-header:not(.sci-index-card-header) ul.breadcrumb.float-end {
    justify-content: flex-start;
}

.sci-index-card .card-header:not(.sci-index-card-header) ul.breadcrumb.float-end > li {
    display: contents;
}

.sci-index-page .card:not(.sci-index-card) {
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    box-shadow: var(--shadow-sm);
}

.sci-index-page .card-block.table-border-style:not(.sci-index-card-body) {
    padding: var(--space-4) var(--space-5);
}

.sci-index-page .table-responsive:not(.sci-data-table) {
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    overflow-x: auto;
}

.sci-index-page .table:not(.sci-index-table) {
    font-family: var(--font-body);
    margin-bottom: 0;
}

.sci-index-page .card-footer:not(.sci-index-pagination) {
    background: var(--surface-card);
    border-block-start: 1px solid var(--border-default);
    padding: var(--space-3) var(--space-5);
}

@media (max-width: 767.98px) {
    .sci-index-card-header,
    .sci-index-card .card-header {
        padding: var(--space-3) var(--space-4);
    }

    .sci-index-card-body,
    .sci-index-page .card-block.table-border-style {
        padding: var(--space-3) var(--space-4);
    }

    .sci-index-card-actions,
    .sci-index-card .card-header .col-md-8,
    .sci-index-card .card-header .col-md-6 {
        margin-block-start: var(--space-2);
    }

    .sci-index-action-group,
    .sci-index-card .card-header ul.breadcrumb.float-end {
        justify-content: flex-start;
    }
}

@media (max-width: 575.98px) {
    .sci-index-action-group .btn,
    .sci-index-card .card-header .btn {
        flex: 1 1 calc(50% - var(--space-2));
        min-width: 0;
    }
}

/* =============================================================================
   Detail / show pages — shared layout for record views
   ============================================================================= */

.sci-detail-breadcrumb {
    margin-block-end: var(--space-4);
}

.sci-detail-page {
    --sci-detail-gap: var(--space-4);
}

.sci-detail-card {
    background: var(--sci-card-bg);
    border: 1px solid var(--sci-card-border);
    border-radius: var(--sci-card-radius);
    box-shadow: var(--sci-card-shadow);
    margin-block-end: var(--space-4);
}

.sci-detail-card > .card-header,
.sci-detail-header {
    align-items: flex-start;
    background: var(--sci-card-bg);
    border-block-end: 1px solid var(--sci-card-border);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    justify-content: space-between;
    padding: var(--sci-card-pad-y) var(--sci-card-pad-x);
}

.card-header > table,
.sci-card-header > table {
    flex: 1 1 100%;
    width: 100%;
}

.sci-detail-card > .card-header .row {
    align-items: flex-start;
    gap: var(--space-3);
    margin: 0;
    width: 100%;
}

.sci-detail-card > .card-header .col-md-6:first-child,
.sci-detail-header-main {
    flex: 1 1 280px;
    min-width: 0;
    padding: 0;
}

.sci-detail-card > .card-header .col-md-6:last-child,
.sci-detail-card > .card-header .col-md-8,
.sci-detail-actions {
    align-items: center;
    display: flex;
    flex: 0 1 auto;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: flex-end;
    margin-inline-start: auto;
    padding: 0;
}

.sci-detail-card > .card-header h5,
.sci-detail-title {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.25;
    margin: 0;
    text-transform: none;
}

.sci-detail-card > .card-header .d-block,
.sci-detail-subtitle {
    color: var(--text-muted);
    display: block;
    font-family: var(--font-body);
    font-size: 0.9375rem;
    margin-block-start: var(--space-1);
}

.sci-detail-status {
    margin-block-start: var(--space-2);
}

.sci-detail-status .badge {
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.sci-detail-card > .card-body,
.sci-detail-body {
    padding: var(--sci-card-body-pad-y) var(--sci-card-pad-x);
}

.sci-detail-section {
    background: var(--sci-card-bg);
    border: 1px solid var(--sci-card-border);
    border-radius: var(--sci-card-radius);
    margin-block-end: var(--space-4);
}

.sci-detail-section:last-child {
    margin-block-end: 0;
}

.sci-detail-section-header {
    align-items: center;
    background: var(--sci-card-bg);
    border-block-end: 1px solid var(--sci-card-border);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    padding: var(--sci-card-pad-y) var(--sci-card-pad-x);
}

.sci-detail-section-title,
.sci-detail-page .form-section-title {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    line-height: 1.3;
    margin: 0;
    text-transform: uppercase;
}

.sci-detail-section-desc {
    color: var(--text-muted);
    font-family: var(--font-body);
    font-size: 0.875rem;
    margin: var(--space-1) 0 0;
}

.sci-detail-section-body {
    padding: var(--sci-card-body-pad-y) var(--sci-card-pad-x);
}

.sci-description-list {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
}

.sci-description-list--cols-1 {
    grid-template-columns: minmax(0, 1fr);
}

.sci-description-list--cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sci-description-item {
    border-block-end: 1px solid var(--border-default);
    display: grid;
    gap: 0.35rem 0.75rem;
    grid-template-columns: minmax(110px, 35%) 1fr;
    padding: 0.875rem 0;
}

.sci-description-list--cols-2 .sci-description-item:nth-child(4n + 1),
.sci-description-list--cols-2 .sci-description-item:nth-child(4n + 2) {
    padding-inline-end: 1.25rem;
}

.sci-description-list--cols-2 .sci-description-item:nth-child(4n + 2),
.sci-description-list--cols-2 .sci-description-item:nth-child(4n + 4) {
    padding-inline-start: 1.25rem;
}

.sci-description-wide {
    grid-column: 1 / -1;
    padding-inline: 0 !important;
}

.sci-description-wide,
.sci-description-list--cols-1 .sci-description-item {
    border-inline-start: 0 !important;
    padding-inline: 0 !important;
}

.sci-description-label,
.sci-detail-page table.table-bordered th,
.sci-detail-page .sci-description-table th {
    color: var(--brand-dark-grey);
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.35;
}

.sci-description-value,
.sci-detail-page table.table-bordered td,
.sci-detail-page .sci-description-table td {
    color: var(--brand-black);
    font-family: var(--font-body);
    font-size: 0.9375rem;
    line-height: 1.45;
    margin: 0;
    overflow-wrap: anywhere;
}

.sci-description-value {
    margin: 0;
}

.sci-detail-empty,
.sci-description-value .text-muted:only-child {
    color: var(--brand-light-grey);
    font-style: normal;
}

/* Legacy bordered tables inside detail sections */
.sci-detail-section-body > table.table-bordered,
.sci-detail-section-body > table.sci-description-table {
    border: 0;
    display: grid;
    gap: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    width: 100%;
}

.sci-detail-section-body > table.table-bordered > :not(caption) > * > *,
.sci-detail-section-body > table.sci-description-table > :not(caption) > * > * {
    border-inline-width: 0 !important;
}

.sci-detail-section-body > table.table-bordered tbody,
.sci-detail-section-body > table.table-bordered tr,
.sci-detail-section-body > table.sci-description-table tbody,
.sci-detail-section-body > table.sci-description-table tr {
    display: contents;
}

.sci-detail-section-body > table.table-bordered th,
.sci-detail-section-body > table.table-bordered td,
.sci-detail-section-body > table.sci-description-table th,
.sci-detail-section-body > table.sci-description-table td {
    background: transparent;
    border: 0;
    border-block-end: 1px solid var(--border-default);
    border-inline-start: 0;
    padding: 0.875rem 0;
    vertical-align: top;
}

.sci-detail-section-body > table.table-bordered tr > th:nth-child(4n + 1),
.sci-detail-section-body > table.table-bordered tr > td:nth-child(4n + 2),
.sci-detail-section-body > table.sci-description-table tr > th:nth-child(4n + 1),
.sci-detail-section-body > table.sci-description-table tr > td:nth-child(4n + 2) {
    padding-inline-end: 1.25rem;
}

.sci-detail-section-body > table.table-bordered tr > th:nth-child(4n + 2),
.sci-detail-section-body > table.table-bordered tr > td:nth-child(4n + 4),
.sci-detail-section-body > table.sci-description-table tr > th:nth-child(4n + 2),
.sci-detail-section-body > table.sci-description-table tr > td:nth-child(4n + 4) {
    padding-inline-start: 1.25rem;
}

.sci-detail-section-body > table.table-bordered td[colspan],
.sci-detail-section-body > table.sci-description-table td[colspan] {
    grid-column: auto;
}

.sci-detail-section-body > table.table-bordered tr > th:empty + td:empty,
.sci-detail-section-body > table.sci-description-table tr > th:empty + td:empty {
    display: none;
}

/* Item/recipient lists must stay real tables, not the 2-column label/value grid. */
.sci-detail-section-body .table-responsive {
    margin: 0;
}

.sci-detail-section-body > table.sci-detail-data-table,
.sci-detail-section-body .table-responsive > table.sci-detail-data-table {
    border: 1px solid var(--border-default);
    border-collapse: collapse;
    display: table;
    grid-template-columns: none;
    margin: 0;
    width: 100%;
}

.sci-detail-section-body > table.sci-detail-data-table thead,
.sci-detail-section-body .table-responsive > table.sci-detail-data-table thead {
    display: table-header-group;
}

.sci-detail-section-body > table.sci-detail-data-table tbody,
.sci-detail-section-body .table-responsive > table.sci-detail-data-table tbody {
    display: table-row-group;
}

.sci-detail-section-body > table.sci-detail-data-table tr,
.sci-detail-section-body .table-responsive > table.sci-detail-data-table tr {
    display: table-row;
}

.sci-detail-section-body > table.sci-detail-data-table th,
.sci-detail-section-body > table.sci-detail-data-table td,
.sci-detail-section-body .table-responsive > table.sci-detail-data-table th,
.sci-detail-section-body .table-responsive > table.sci-detail-data-table td {
    background: transparent;
    border: 1px solid var(--border-default) !important;
    display: table-cell;
    padding: 0.625rem 0.75rem;
    padding-inline: 0.75rem;
    vertical-align: middle;
}

.sci-detail-section-body .sci-detail-data-table thead th {
    background: var(--surface-muted);
    white-space: nowrap;
}

/* Grid-style label/value rows in detail pages */
.sci-detail-field-grid {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sci-detail-field-grid .sci-detail-field,
.sci-detail-field-grid > [class*="col-"] {
    border-block-end: 1px solid var(--border-default);
    min-width: 0;
    padding: 0.875rem 0;
}

.sci-detail-field-grid .sci-detail-field:nth-child(odd),
.sci-detail-field-grid > [class*="col-"]:nth-child(4n + 1),
.sci-detail-field-grid > [class*="col-"]:nth-child(4n + 2) {
    padding-inline-end: 1.25rem;
}

.sci-detail-field-grid .sci-detail-field:nth-child(even),
.sci-detail-field-grid > [class*="col-"]:nth-child(4n + 2),
.sci-detail-field-grid > [class*="col-"]:nth-child(4n + 4) {
    padding-inline-start: 1.25rem;
}

.sci-detail-field-grid > [class*="col-"] p {
    display: block;
    margin: 0;
}

.sci-detail-field-grid > [class*="col-"] p strong {
    color: var(--brand-dark-grey);
    display: block;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    margin-block-end: 0.35rem;
}

.sci-detail-field-grid > [class*="col-"] p strong + *,
.sci-detail-field-grid > [class*="col-"] p {
    color: var(--brand-black);
    font-family: var(--font-body);
    font-size: 0.9375rem;
    line-height: 1.45;
}

.sci-detail-section-header--inline {
    background: var(--sci-card-bg);
    border: 1px solid var(--sci-card-border);
    border-block-end: 0;
    border-radius: var(--sci-card-radius) var(--sci-card-radius) 0 0;
    margin-block: var(--space-4) 0;
    padding: var(--sci-card-pad-y) var(--sci-card-pad-x);
}

.sci-detail-section-body .sci-detail-field-grid {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
}

.sci-detail-section-body .sci-detail-field-grid > [class*="col-"] {
    border-block-end: 1px solid var(--border-default);
    min-width: 0;
    padding: 0.875rem 0;
}

.sci-detail-section-body .sci-detail-field-grid > [class*="col-"]:nth-child(4n + 1),
.sci-detail-section-body .sci-detail-field-grid > [class*="col-"]:nth-child(4n + 2) {
    padding-inline-end: 1.25rem;
}

.sci-detail-section-body .sci-detail-field-grid > [class*="col-"]:nth-child(4n + 2),
.sci-detail-section-body .sci-detail-field-grid > [class*="col-"]:nth-child(4n + 4) {
    padding-inline-start: 1.25rem;
}

.sci-detail-related .sci-detail-section-body {
    padding: 0;
}

.sci-detail-related .sci-detail-related-table {
    border-block-start: 0;
    padding: 0;
}

.sci-detail-related .table thead th {
    background: var(--surface-muted);
    border-block-end: 1px solid var(--border-default);
    color: var(--brand-black);
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
}

.sci-detail-section-header--inline + .row,
.sci-detail-section-header--inline + .row.sci-detail-field-grid {
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-block-start: 0;
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    margin-block-end: var(--space-4);
    padding: var(--space-3) var(--space-4);
}

.sci-detail-section-header--inline .sci-detail-section-title {
    text-transform: uppercase;
}

.sci-detail-field-grid > [class*="col-12"] p,
.sci-detail-field-grid > .col-12 {
    border-inline-start: 0 !important;
    grid-column: 1 / -1;
    padding-inline: 0 !important;
}

.sci-detail-footer {
    border-block-start: 1px solid var(--border-default);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-block-start: var(--space-4);
    padding-block-start: var(--space-4);
}

.sci-detail-related-table {
    border-block-start: 1px solid var(--border-default);
    padding: var(--space-3) var(--space-4) var(--space-4);
}

.sci-detail-related-table .table {
    margin: 0;
}

.sci-detail-page .card-header ul.breadcrumb.float-end,
.sci-detail-page .card-header ul.breadcrumb.mb-0.float-end {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    list-style: none;
    margin: 0;
    padding: 0;
}

.sci-detail-page .card-header ul.breadcrumb.float-end li,
.sci-detail-page .card-header ul.breadcrumb.mb-0.float-end li {
    display: contents;
}

.sci-detail-body > .row:not(.sci-detail-columns):not(.sci-detail-stats):not(.sci-detail-field-grid) {
    --bs-gutter-x: 1rem;
    display: grid;
    gap: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-block-end: var(--space-4);
}

.sci-detail-body > .row:not(.sci-detail-columns):not(.sci-detail-stats):not(.sci-detail-field-grid) > [class*="col-"] {
    border-block-end: 1px solid var(--border-default);
    min-width: 0;
    padding: 0.875rem 0;
}

.sci-detail-body > .row:not(.sci-detail-columns):not(.sci-detail-stats):not(.sci-detail-field-grid) > [class*="col-"] p {
    margin: 0;
}

.sci-detail-body > .row:not(.sci-detail-columns):not(.sci-detail-stats):not(.sci-detail-field-grid) > [class*="col-"] p strong {
    color: var(--brand-dark-grey);
    display: block;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    margin-block-end: 0.35rem;
}

.sci-detail-columns .card > .card-header.sci-detail-header {
    background: transparent;
    border-block-end: 0;
    display: block;
    padding: var(--space-4);
}

.sci-detail-page hr {
    border: 0;
    display: none;
    margin: 0;
}

/* Nested legacy card blocks inside detail body */
.sci-detail-columns {
    --bs-gutter-x: 1.25rem;
    margin-block-end: 0;
}

.sci-detail-columns > [class*="col-"] > .card {
    background: var(--sci-card-bg);
    border: 1px solid var(--sci-card-border);
    border-radius: var(--sci-card-radius);
    box-shadow: none;
    height: 100%;
    margin-block-end: var(--space-4);
}

.sci-detail-columns > [class*="col-"] > .card > .card-header {
    background: transparent;
    border-block-end: 0;
    padding: var(--space-4);
}

.sci-detail-columns > [class*="col-"] > .card > .card-header:only-child {
    padding-block-end: var(--space-4);
}

.sci-detail-nested-footer {
    background: var(--sci-card-bg);
    border-block-start: 1px solid var(--sci-card-border);
    padding: var(--sci-card-pad-y) var(--sci-card-pad-x);
}

/* Simple vertical field tables (learners, schools, distributions, etc.) */
.sci-detail-simple-table,
.sci-detail-body .card .card-header > table.table:not(.table-striped):not(.table-hover) {
    border: 0;
    margin: 0;
    width: 100%;
}

.sci-detail-simple-table > tr,
.sci-detail-body .card .card-header > table.table:not(.table-striped):not(.table-hover) > tr {
    border-block-end: 1px solid var(--border-default);
    display: grid;
    gap: 0.35rem 0.75rem;
    grid-template-columns: minmax(130px, 38%) 1fr;
    padding: 0.75rem 0;
}

.sci-detail-simple-table > tr:last-child,
.sci-detail-body .card .card-header > table.table:not(.table-striped):not(.table-hover) > tr:last-child {
    border-block-end: 0;
}

.sci-detail-simple-table th,
.sci-detail-body .card .card-header > table.table:not(.table-striped):not(.table-hover) th {
    background: transparent;
    border: 0;
    color: var(--brand-dark-grey);
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 0;
}

.sci-detail-simple-table td,
.sci-detail-body .card .card-header > table.table:not(.table-striped):not(.table-hover) td {
    background: transparent;
    border: 0;
    color: var(--brand-black);
    font-family: var(--font-body);
    font-size: 0.9375rem;
    padding: 0;
}

/* Field grid — inline strong labels without <p> wrapper */
.sci-detail-field-grid > [class*="col-"] strong {
    color: var(--brand-dark-grey);
    display: block;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    margin-block-end: 0.35rem;
}

.sci-detail-field-grid > [class*="col-"] {
    color: var(--brand-black);
    font-family: var(--font-body);
    font-size: 0.9375rem;
    line-height: 1.45;
}

.sci-detail-field-grid > .col-md-12,
.sci-detail-field-grid > .col-12 {
    grid-column: 1 / -1;
}

/* Summary stat tiles (learner attendance, etc.) */
.sci-detail-stats {
    display: grid;
    gap: var(--space-3);
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-block-end: var(--space-4);
}

.sci-detail-stat,
.sci-detail-body .border.rounded.p-3 {
    background: var(--surface-card);
    border: 1px solid var(--border-default) !important;
    border-block-start: 3px solid var(--brand-primary) !important;
    border-radius: var(--radius-md) !important;
    height: 100%;
    padding: var(--space-3) var(--space-4) !important;
}

.sci-detail-stat-label,
.sci-detail-body .border.rounded.p-3 .text-muted {
    color: var(--brand-dark-grey) !important;
    display: block;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    margin-block-end: var(--space-1);
}

.sci-detail-stat-value,
.sci-detail-body .border.rounded.p-3 h4 {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: 1.35rem;
    font-weight: 600;
    margin: 0;
}

.sci-detail-body .border.rounded.p-3 small {
    color: var(--text-muted);
    display: block;
    font-size: 0.8125rem;
    margin-block-start: var(--space-1);
}

.sci-detail-body .progress {
    background: var(--surface-muted);
    height: 6px;
    margin-block-start: var(--space-2);
}

.sci-detail-body .progress-bar.bg-primary {
    background-color: var(--brand-primary) !important;
}

.sci-detail-card > .card-header .sci-detail-title,
.sci-detail-header .sci-detail-title {
    font-family: var(--font-heading);
}

@media (max-width: 991.98px) {
    .sci-detail-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

[dir="rtl"] .sci-detail-actions,
[dir="rtl"] .sci-detail-card > .card-header .col-md-6:last-child {
    justify-content: flex-start;
    margin-inline-end: auto;
    margin-inline-start: 0;
}

@media (max-width: 991.98px) {
    .sci-description-list,
    .sci-description-list--cols-3,
    .sci-detail-section-body > table.table-bordered,
    .sci-detail-section-body > table.sci-description-table,
    .sci-detail-field-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .sci-description-list--cols-2 .sci-description-item,
    .sci-detail-section-body > table.table-bordered th,
    .sci-detail-section-body > table.table-bordered td,
    .sci-detail-field-grid > [class*="col-"] {
        border-inline-start: 0 !important;
        padding-inline: 0 !important;
    }

    .sci-detail-card > .card-header,
    .sci-detail-header,
    .sci-detail-card > .card-body,
    .sci-detail-body {
        padding-inline: var(--space-4);
    }
}

@media (max-width: 575.98px) {
    .sci-detail-actions,
    .sci-detail-page .card-header ul.breadcrumb.float-end {
        justify-content: stretch;
        width: 100%;
    }

    .sci-detail-actions .btn,
    .sci-detail-page .card-header .btn {
        flex: 1 1 calc(50% - var(--space-2));
        justify-content: center;
        min-width: 0;
    }

    .sci-detail-footer .btn {
        flex: 1 1 100%;
        justify-content: center;
    }
}

/* =============================================================================
   Create / Add form pages — shared layout, field alignment, and actions
   ============================================================================= */

.sci-form-page {
    --sci-form-gap: var(--space-4);
    --sci-form-gutter: 1.25rem;
    --sci-form-control-height: var(--sci-field-height);
    --sci-form-label-lines: 2.625rem;
}

.sci-form-card,
.sci-form-page > [class*="col-"] > .card {
    background: var(--sci-card-bg);
    border: 1px solid var(--sci-card-border);
    border-radius: var(--sci-card-radius);
    box-shadow: var(--sci-card-shadow);
    margin-block-end: var(--space-4);
}

.sci-form-card > .card-header,
.sci-form-header {
    align-items: flex-start;
    background: var(--sci-card-bg);
    border-block-end: 1px solid var(--sci-card-border);
    padding: var(--sci-card-pad-y) var(--sci-card-pad-x);
}

.sci-form-card > .card-header .row,
.sci-form-header-row {
    align-items: flex-start;
    gap: var(--space-3);
    margin: 0;
    width: 100%;
}

.sci-form-card > .card-header .col-md-6:first-child,
.sci-form-header-main {
    flex: 1 1 280px;
    min-width: 0;
    padding: 0;
}

.sci-form-card > .card-header .col-md-6:last-child,
.sci-form-header-actions {
    align-items: center;
    display: flex;
    flex: 0 1 auto;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: flex-end;
    margin-inline-start: auto;
    padding: 0;
}

.sci-form-card > .card-header ul.breadcrumb.float-end,
.sci-form-card > .card-header ul.breadcrumb.mb-0.float-end {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: flex-end;
    list-style: none;
    margin: 0;
    padding: 0;
}

.sci-form-card > .card-header ul.breadcrumb.float-end li,
.sci-form-card > .card-header ul.breadcrumb.mb-0.float-end li {
    display: contents;
}

.sci-form-card > .card-header h5,
.sci-form-title {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.25;
    margin: 0;
    text-transform: none;
}

.sci-form-card > .card-header .d-block,
.sci-form-subtitle {
    color: var(--brand-dark-grey);
    display: block;
    font-family: var(--font-body);
    font-size: 0.9375rem;
    margin-block-start: var(--space-1);
}

.sci-form-card > .card-body,
.sci-form-card > .card-block,
.sci-form-body {
    padding: var(--sci-card-body-pad-y) var(--sci-card-pad-x);
}

.sci-form-alert {
    align-items: flex-start;
    display: flex;
    gap: 0.75rem;
    margin-block-end: var(--space-4);
}

.sci-form-alert ul {
    margin: 0.35rem 0 0;
    padding-inline-start: 1.15rem;
}

.sci-field-error {
    color: var(--brand-primary-hover);
    display: block;
    font-size: 0.8125rem;
    margin-block-start: 0.25rem;
}

.sci-form,
form.sci-form {
    min-width: 0;
}

.sci-form .row {
    --bs-gutter-x: var(--sci-form-gutter);
    --bs-gutter-y: 0;
    align-items: stretch;
    margin-inline: calc(var(--sci-form-gutter) / -2);
}

.sci-form .row > [class*="col-"] {
    display: flex;
    flex-direction: column;
    padding-inline: calc(var(--sci-form-gutter) / 2);
}

.sci-form .form-group,
.sci-form .mb-3,
.sci-form .row > [class*="col-"] > .form-group,
.sci-form .row > [class*="col-"] > .mb-3 {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    margin-block-end: 1.25rem;
    min-width: 0;
    width: 100%;
}

.sci-form .form-group:empty {
    display: none;
}

.sci-form .form-label,
.sci-form label:not(.form-check-label):not(.cr) {
    align-items: flex-end;
    color: var(--brand-dark-grey);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.8125rem;
    font-weight: 700;
    gap: 0.2rem;
    line-height: 1.35;
    margin-block-end: 0.375rem;
}

.sci-form .row > [class*="col-"] .form-label,
.sci-form .row > [class*="col-"] > .form-group > label:not(.form-check-label):not(.cr),
.sci-form .row > [class*="col-"] > .mb-3 > label:not(.form-check-label):not(.cr) {
    min-height: var(--sci-form-label-lines);
}

.sci-form .form-label .text-danger,
.sci-form .sci-required-indicator {
    color: var(--brand-primary) !important;
    font-weight: 700;
    line-height: 1;
}

.sci-form .form-control,
.sci-form .form-select,
.sci-form select.form-control,
.sci-form input[type="date"].form-control,
.sci-form input[type="datetime-local"].form-control,
.sci-form input[type="month"].form-control,
.sci-form input[type="number"].form-control,
.sci-form input[type="email"].form-control,
.sci-form input[type="text"].form-control,
.sci-form input[type="tel"].form-control {
    min-height: var(--sci-form-control-height);
    width: 100%;
}

.sci-form textarea.form-control {
    min-height: 5.5rem;
    resize: vertical;
}

.sci-form .form-control,
.sci-form .form-select,
.sci-form .select2-container {
    width: 100% !important;
}

.sci-form .select2-container--default .select2-selection--single,
.sci-form .select2-container--default .select2-selection--multiple {
    align-items: center;
    background-color: var(--sci-white) !important;
    border: 1px solid var(--border-strong) !important;
    border-radius: var(--radius-sm) !important;
    display: flex;
    min-height: var(--sci-form-control-height) !important;
    padding: 0.2rem 0.75rem !important;
}

.sci-form .select2-container--default .select2-selection--single {
    height: var(--sci-form-control-height) !important;
}

.sci-form .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--brand-black) !important;
    line-height: 1.4 !important;
    padding-inline: 0 1.5rem !important;
}

.sci-form .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: calc(var(--sci-form-control-height) - 2px) !important;
    inset-inline-end: 0.4rem !important;
}

.sci-form .select2-container--default.select2-container--focus .select2-selection--single,
.sci-form .select2-container--default.select2-container--open .select2-selection--single,
.sci-form .select2-container--default.select2-container--focus .select2-selection--multiple,
.sci-form .select2-container--default.select2-container--open .select2-selection--multiple {
    border-color: var(--brand-primary) !important;
    box-shadow: 0 0 0 3px var(--brand-primary-focus) !important;
}

.sci-form .form-text,
.sci-form small.form-text,
.sci-form .text-danger.text-left,
.sci-form .invalid-feedback {
    margin-block-start: 0.25rem;
}

.sci-form .form-section-title,
.sci-form h6.form-section-title,
.sci-form-section-title {
    border-block-end: 1px solid var(--border-default);
    color: var(--brand-black) !important;
    font-family: var(--font-heading);
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    line-height: 1.3;
    margin: var(--space-5) 0 var(--space-4);
    padding-block: 0.15rem 0.65rem;
    text-transform: uppercase;
}

.sci-form h6.form-section-title:first-of-type,
.sci-form .form-section-title:first-of-type {
    margin-block-start: 0;
}

.sci-form h5:not(.sci-form-title):not(.mb-0),
.sci-form > h5 {
    color: var(--brand-black) !important;
    font-family: var(--font-heading);
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    margin: var(--space-4) 0 var(--space-2);
    text-transform: uppercase;
}

.sci-form h5:not(.sci-form-title):first-child,
.sci-form > h5:first-child {
    margin-block-start: 0;
}

.sci-form hr {
    border: 0;
    border-block-start: 1px solid var(--border-default);
    margin: 0 0 var(--space-4);
    opacity: 1;
}

.sci-form-section {
    background: var(--sci-card-bg);
    border: 1px solid var(--sci-card-border);
    border-radius: var(--sci-card-radius);
    margin-block-end: var(--space-4);
}

.sci-form-section:last-child {
    margin-block-end: 0;
}

.sci-form-section-header {
    align-items: center;
    background: var(--sci-card-bg);
    border-block-end: 1px solid var(--sci-card-border);
    display: flex;
    gap: var(--space-3);
    padding: var(--sci-card-pad-y) var(--sci-card-pad-x);
}

.sci-form-section-title,
.sci-form .form-section-title,
.sci-form h6.form-section-title {
    font-size: var(--sci-card-section-size);
}

.sci-form-section-body {
    padding: var(--sci-card-body-pad-y) var(--sci-card-pad-x);
}

.sci-form .card {
    background: var(--sci-card-bg);
    border: 1px solid var(--sci-card-border);
    box-shadow: none;
    margin-block-end: var(--space-4);
}

.sci-form .card > .card-header {
    background: var(--sci-card-bg);
    border-block-end: 1px solid var(--sci-card-border);
    padding: var(--sci-card-pad-y) var(--sci-card-pad-x);
}

.sci-form .card > .card-header h5,
.sci-form .card > .card-header .mb-0 {
    color: var(--brand-black);
    font-family: var(--font-heading);
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    margin: 0;
    text-transform: uppercase;
}

.sci-form .card > .card-body {
    padding: var(--sci-card-body-pad-y) var(--sci-card-pad-x);
}

.sci-form .table-responsive {
    margin-block-end: var(--space-3);
}

.sci-form .table .form-group {
    margin-block-end: 0;
}

.sci-form .table .form-control,
.sci-form .table .form-select {
    min-height: 38px;
}

.sci-form .table .form-label {
    min-height: 0;
}

.sci-form .checkbox,
.sci-form .form-check {
    align-items: center;
    min-height: var(--sci-form-control-height);
}

.sci-form-page .sci-form-body > .row > .col-md-12,
.sci-form-page .sci-form-body > .row > .col-xl-12,
.sci-form-page .sci-form-body > .table-responsive {
    min-width: 0;
    width: 100%;
}

.sci-density-compact .sci-form .form-group,
.sci-density-compact .sci-form .mb-3 {
    margin-block-end: 0.85rem;
}

.sci-density-compact .sci-form-page {
    --sci-form-label-lines: 2.1rem;
    --sci-form-control-height: 38px;
}

@media (max-width: 991.98px) {
    .sci-form .row > [class*="col-"] .form-label,
    .sci-form .row > [class*="col-"] > .form-group > label:not(.form-check-label):not(.cr),
    .sci-form .row > [class*="col-"] > .mb-3 > label:not(.form-check-label):not(.cr) {
        min-height: 0;
    }
}

@media (max-width: 767.98px) {
    .sci-form-card > .card-header,
    .sci-form-header,
    .sci-form-card > .card-body,
    .sci-form-card > .card-block,
    .sci-form-body {
        padding-inline: var(--space-4);
    }

    .sci-form-card > .card-header .col-md-6:last-child,
    .sci-form-header-actions {
        justify-content: flex-start;
        margin-inline-start: 0;
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .sci-form-header-actions .btn,
    .sci-form-card > .card-header .btn {
        flex: 1 1 calc(50% - var(--space-2));
        justify-content: center;
        min-width: 0;
    }
}

/* =============================================================================
   Shared tabs, pills, and section navigation
   ============================================================================= */

.sci-tabs {
    min-width: 0;
    position: relative;
    z-index: 4;
}

.sci-tabs__list {
    align-items: stretch;
    background: var(--surface-card);
    border-block-end: 1px solid var(--border-default);
    display: flex;
    flex-wrap: nowrap;
    gap: 0;
    isolation: isolate;
    margin: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    padding: 0;
    position: relative;
    scrollbar-width: thin;
}

.sci-tab {
    align-items: center;
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    border: 0;
    border-block-end: 2px solid transparent;
    border-radius: 0;
    box-shadow: none;
    color: var(--brand-dark-grey);
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 auto;
    font-family: var(--font-body);
    font-size: 0.9375rem;
    font-weight: 400;
    gap: 0.4rem;
    height: 2.75rem;
    justify-content: center;
    line-height: 1;
    margin: 0;
    padding: 0 1rem;
    position: relative;
    text-decoration: none;
    touch-action: manipulation;
    white-space: nowrap;
}

button.sci-tab {
    background-color: transparent;
    box-shadow: none;
    color: inherit;
    min-width: 0;
}

button.sci-tab::-moz-focus-inner {
    border: 0;
    padding: 0;
}

.sci-tab:hover,
.sci-tab:focus {
    background: transparent;
    color: var(--brand-black);
    text-decoration: none;
}

.sci-tab:focus {
    outline: 0;
}

.sci-tab:focus-visible {
    box-shadow: var(--sci-btn-focus);
    outline: 0;
    z-index: 1;
}

.sci-tab.is-active,
.sci-tab.active,
.sci-tab[aria-selected="true"],
.sci-tab[aria-current="page"] {
    background: var(--surface-card);
    border-block-end-color: var(--sci-red);
    color: var(--sci-red);
    font-weight: 700;
}

.sci-tab.is-disabled,
.sci-tab:disabled,
.sci-tab[aria-disabled="true"] {
    color: var(--sci-light-grey);
    cursor: not-allowed;
    opacity: 0.55;
    pointer-events: none;
}

.sci-tab .feather {
    font-size: 1rem;
    height: 1rem;
    width: 1rem;
}

.sci-tab__label {
    font-family: var(--font-body);
}

.sci-tab__count {
    align-items: center;
    background: var(--surface-muted);
    border-radius: 999px;
    color: var(--brand-dark-grey);
    display: inline-flex;
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    justify-content: center;
    line-height: 1;
    min-width: 1.25rem;
    padding: 0.15rem 0.4rem;
}

.sci-tab.is-active .sci-tab__count,
.sci-tab.active .sci-tab__count,
.sci-tab[aria-selected="true"] .sci-tab__count,
.sci-tab[aria-current="page"] .sci-tab__count {
    background: var(--brand-primary-soft);
    color: var(--sci-red);
}

.sci-tabs--segmented .sci-tabs__list {
    background: var(--surface-muted);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm);
    gap: 0;
    padding: 0.15rem;
}

.sci-tabs--segmented .sci-tab {
    border-block-end-width: 2px;
    border-radius: 2px;
    height: 2.25rem;
    padding-inline: 0.85rem;
}

.sci-tabs--segmented .sci-tab.is-active,
.sci-tabs--segmented .sci-tab.active,
.sci-tabs--segmented .sci-tab[aria-selected="true"],
.sci-tabs--segmented .sci-tab[aria-current="page"] {
    background: var(--surface-card);
}

.sci-tabs--compact .sci-tab {
    font-size: 0.875rem;
    height: 2.35rem;
    padding-inline: 0.75rem;
}

.card-header > .sci-tabs,
.sci-card-header-actions > .sci-tabs {
    flex: 1 1 auto;
    min-width: 0;
}

.card-header > .sci-tabs .sci-tabs__list,
.card-body.pb-0 > .sci-tabs .sci-tabs__list {
    border-block-end-color: var(--border-default);
}

.header-user-list .nav-tabs {
    background: var(--surface-card);
    border-block-end: 1px solid var(--border-default);
}

.header-user-list .nav-tabs .nav-item a,
.header-user-list .nav-tabs .nav-link {
    color: var(--brand-dark-grey);
    text-transform: none;
}

.header-user-list .nav-tabs .nav-item a.active,
.header-user-list .nav-tabs .nav-link.active {
    background: var(--surface-card);
    color: var(--sci-red);
}

html.sci-theme-dark .sci-tabs__list,
html.sci-theme-dark .sci-tab.is-active,
html.sci-theme-dark .sci-tab.active,
html.sci-theme-dark .nav-tabs,
html.sci-theme-dark .nav-tabs .nav-link.active {
    background: var(--surface-card);
}

[dir="rtl"] .sci-tabs__list,
[dir="rtl"] .nav-tabs,
[dir="rtl"] .nav-pills {
    flex-direction: row;
}

@media (max-width: 575.98px) {
    .sci-tab,
    .nav-tabs .nav-link,
    .nav-pills .nav-link {
        padding-inline: 0.85rem;
    }
}

/* =============================================================================
   Responsive consistency — shared directional layout across breakpoints
   Mobile <576 · Tablet <768 · Laptop <992 · Desktop ≥992
   ============================================================================= */

.text-end,
.text-right {
    text-align: end !important;
}

.text-start,
.text-left {
    text-align: start !important;
}

.ms-auto {
    margin-inline-start: auto !important;
    margin-inline-end: 0 !important;
}

.me-auto {
    margin-inline-end: auto !important;
    margin-inline-start: 0 !important;
}

.pcoded-content,
.sci-page-header,
.sci-index-page,
.sci-form-page,
.sci-detail-page,
.card,
.sci-card {
    max-width: 100%;
    min-width: 0;
}

.form-label,
.sci-form .form-label,
.sci-index-filters-form .form-label {
    overflow-wrap: anywhere;
    text-align: start;
}

.sci-form .row > [class*="col-"],
.sci-form-page [class*="col-"],
.sci-detail-page [class*="col-"],
.sci-index-page [class*="col-"] {
    min-width: 0;
}

.table-responsive,
.sci-data-table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.table {
    min-width: 100%;
}

.table tbody td:not(.sci-col-actions) {
    overflow-wrap: break-word;
}

.pagination {
    flex-wrap: wrap;
    justify-content: flex-start;
    max-width: 100%;
}

.sci-index-pagination,
.sci-index-pagination-row {
    overflow-x: auto;
}

.sci-page-actions,
.sci-index-action-group,
.sci-form-header-actions,
.sci-detail-actions,
.sci-card-actions,
.dashboard-header-actions {
    max-width: 100%;
}

@media (max-width: 1199.98px) {
    .sci-form .row > .col-xl-3,
    .sci-form .row > .col-xl-4 {
        flex: 0 0 50%;
        max-width: 50%;
    }
}

@media (max-width: 991.98px) {
    .sci-page-header__row,
    .sci-page-title-row {
        align-items: stretch;
    }

    .sci-page-header__toolbar {
        max-width: 100%;
    }

    .sci-page-actions .btn,
    .sci-form-header-actions .btn,
    .sci-detail-actions .btn {
        max-width: 100%;
    }

    .sci-form .row > .col-md-3,
    .sci-form .row > .col-lg-3,
    .sci-form .row > .col-md-4,
    .sci-form .row > .col-lg-4 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .sci-form .row > [class*="col-"] .form-label,
    .sci-form .row > [class*="col-"] > .form-group > label:not(.form-check-label):not(.cr) {
        min-height: 0;
    }

    .dashboard-chart,
    .dashboard-chart-wide {
        min-height: 220px;
        width: 100%;
    }

    .sci-settings-user-cell {
        min-width: 0;
    }

    .table tbody td:not(.sci-col-actions) {
        max-width: 18rem;
    }
}

@media (max-width: 767.98px) {
    .sci-index-toolbar {
        flex-wrap: wrap;
    }

    .sci-index-toolbar > .sci-index-toolbar-search,
    .sci-index-toolbar > .col-md-10,
    .sci-index-toolbar > .col-lg-10 {
        flex: 1 1 100%;
        width: 100% !important;
    }

    .sci-index-toolbar > .sci-index-toolbar-filters,
    .sci-index-toolbar > .col-md-2,
    .sci-index-toolbar > .col-lg-2 {
        flex: 1 1 100%;
        width: 100% !important;
    }

    .sci-index-toolbar-filters .btn,
    .sci-index-filter-toggle {
        justify-content: center;
        width: 100%;
    }

    .sci-form .row > [class*="col-"] {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .sci-page-actions .btn,
    .sci-form-actions .btn,
    .modal-footer .btn,
    .sci-detail-footer .btn {
        height: auto;
        white-space: normal;
    }

    .sci-index-card-title,
    .sci-card-title,
    .sci-form-title,
    .sci-detail-title,
    .sci-page-header__title {
        overflow-wrap: anywhere;
    }

    .table thead th {
        white-space: normal;
    }

    .sci-index-pagination,
    .sci-index-pagination-row,
    .dq-pagination-footer {
        align-items: stretch;
        flex-direction: column;
        gap: var(--space-3);
    }

    .modal-dialog,
    .modal-dialog.modal-sm,
    .modal-dialog.modal-lg,
    .modal-dialog.modal-xl {
        margin-block: 0.75rem;
        margin-inline: 0.75rem;
        max-width: calc(100vw - 1.5rem);
        width: calc(100vw - 1.5rem);
    }
}

@media (max-width: 575.98px) {
    .sci-page-actions,
    .sci-page-actions__primary,
    .sci-page-actions__back,
    .sci-page-actions__cluster {
        width: 100%;
    }

    .sci-page-actions .btn,
    .sci-page-header__back,
    .sci-page-actions__more-toggle {
        flex: 1 1 auto;
        justify-content: center;
        min-width: 0;
        white-space: normal;
    }

    .sci-page-actions__more {
        flex: 1 1 auto;
    }

    .sci-page-actions__more-toggle {
        width: 100%;
    }

    .sci-index-filter-panel {
        width: 100%;
    }

    .sci-form .row > .col-md-3,
    .sci-form .row > .col-lg-3,
    .sci-form .row > .col-xl-3,
    .sci-form .row > .col-md-4,
    .sci-form .row > .col-lg-4,
    .sci-form .row > .col-xl-4 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .dashboard-section-heading h2,
    .dashboard-focus-card h2 {
        overflow-wrap: anywhere;
    }
}

.sci-consistency-table,
.sci-report-table {
    font-variant-numeric: tabular-nums;
}

.sci-consistency-table thead th,
.sci-report-table thead th {
    white-space: nowrap;
    vertical-align: middle;
}

.sci-consistency-table td,
.sci-report-table td {
    overflow-wrap: normal;
    white-space: nowrap;
    word-break: normal;
}

.sci-consistency-table .sci-consistency-sticky {
    position: sticky;
    inset-inline-start: 0;
    z-index: 1;
    background: var(--sci-card-bg);
}

.sci-consistency-issue-select,
.sci-index-toolbar-filters .sci-consistency-issue-select {
    flex: 0 0 auto;
    min-width: 14.5rem;
    width: auto;
}

.sci-consistency-table .sci-consistency-status {
    min-width: 8.75rem;
    white-space: nowrap;
}

.sci-consistency-table .sci-status-badge,
.sci-consistency-table .sci-status-badge__label {
    max-width: none;
    overflow-wrap: normal;
    white-space: nowrap;
    word-break: normal;
}

.sci-consistency-match {
    color: var(--success);
}

.sci-consistency-issue {
    font-weight: 600;
}
