:root {
    --app-navy-950: #081229;
    --app-navy-900: #0f1d3d;
    --app-navy-800: #172b52;
    --app-blue-600: #2563eb;
    --app-blue-100: #dbeafe;
    --app-surface: #ffffff;
    --app-canvas: #edf2f7;
    --app-border: #d8e1ed;
    --app-text: #172033;
    --app-muted: #64748b;
}

body {
    color: var(--app-text);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

a,
button,
input,
select,
textarea {
    transition: border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease, color 150ms ease, transform 150ms ease;
}

:focus-visible {
    outline: 3px solid rgb(59 130 246 / 35%);
    outline-offset: 2px;
}

.page-loader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 50% 45%, rgb(33 150 243 / 20%), transparent 24rem),
        rgb(8 14 36 / 96%);
    opacity: 1;
    visibility: visible;
    transition: opacity 180ms ease, visibility 180ms ease;
}

.journey-loader {
    width: min(88vw, 360px);
    color: #fff;
    text-align: center;
}

.journey-loader__scene {
    position: relative;
    width: 320px;
    max-width: 100%;
    height: 120px;
    margin-inline: auto;
}

.journey-loader__road {
    width: 100%;
    height: 100%;
    overflow: visible;
    fill: none;
}

.journey-loader__road-glow {
    stroke: rgb(255 214 102 / 30%);
    stroke-width: 16;
    filter: blur(6px);
}

.journey-loader__road-line {
    stroke: #ffe08a;
    stroke-width: 5;
    stroke-linecap: round;
    stroke-dasharray: 10 9;
    animation: journey-road-flow 900ms linear infinite;
}

.journey-loader__traveller {
    position: absolute;
    inset: 0 auto auto 0;
    color: #7dd3fc;
    font-size: 1.75rem;
    filter: drop-shadow(0 0 8px rgb(125 211 252 / 80%));
    offset-path: path('M12 102 C76 104 53 43 132 57 S221 91 306 17');
    offset-rotate: 0deg;
    animation: journey-walk 2.8s ease-in-out infinite;
}

.journey-loader__traveller i {
    animation: journey-step 360ms ease-in-out infinite alternate;
}

.journey-loader__message {
    margin-top: 1rem;
    font-weight: 650;
    letter-spacing: .02em;
}

@keyframes journey-road-flow {
    to { stroke-dashoffset: -19; }
}

@keyframes journey-walk {
    0% { offset-distance: 0%; opacity: 0; }
    8% { opacity: 1; }
    92% { opacity: 1; }
    100% { offset-distance: 100%; opacity: 0; }
}

@keyframes journey-step {
    from { transform: translateY(1px) rotate(-2deg); }
    to { transform: translateY(-3px) rotate(2deg); }
}

@media (prefers-reduced-motion: reduce) {
    .journey-loader__road-line,
    .journey-loader__traveller,
    .journey-loader__traveller i {
        animation-duration: 1ms;
        animation-iteration-count: 1;
    }
}

.page-loader.is-hidden {
    opacity: 0;
    visibility: hidden;
}

.app-shell {
    height: 100vh;
    min-height: 100vh;
    overflow: hidden;
    background: var(--app-canvas) !important;
}

.app-shell > .navbar,
.app-shell > .app-footer {
    flex: 0 0 auto;
}

.app-shell > .navbar {
    z-index: 1030;
    box-shadow: 0 .35rem 1.2rem rgb(8 18 41 / 18%);
}

.app-shell > main {
    min-height: 0;
    flex: 1 1 auto;
    padding-bottom: 2.5rem !important;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.app-shell > main.public-auth {
    padding: 2rem 1.25rem !important;
}

.app-shell > main.app-main--fixed {
    overflow: hidden;
}

.management-workspace {
    display: flex;
    height: 100%;
    min-height: 0;
    flex-direction: column;
}

.management-workspace__header {
    flex: 0 0 auto;
}

.management-workspace__body {
    min-height: 0;
    flex: 1 1 auto;
}

.management-workspace__body > [class*="col-"] {
    height: 100%;
    min-height: 0;
}

.management-workspace__body .viewport-scroll-card {
    height: 100%;
    max-height: none;
}

.navbar-brand img {
    object-fit: cover;
}

.app-navbar {
    min-height: 4.5rem;
    padding-block: .45rem;
    border-bottom: 1px solid rgb(255 255 255 / 9%);
    background:
        radial-gradient(circle at 12% 0%, rgb(59 130 246 / 18%), transparent 22rem),
        linear-gradient(112deg, var(--app-navy-950), var(--app-navy-900) 64%, #14264b);
}

.app-navbar__brand {
    min-width: max-content;
    padding-block: .2rem;
}

.app-navbar__logo {
    border: 1px solid rgb(255 255 255 / 22%);
    box-shadow: 0 .35rem 1rem rgb(0 0 0 / 30%);
}

.app-navbar__brand-copy {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}

.app-navbar__brand-copy strong {
    color: #fff;
    font-size: 1.05rem;
    letter-spacing: -.01em;
}

.app-navbar__brand-copy small {
    margin-top: .28rem;
    color: #a8b6d3;
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .025em;
}

.app-navbar__primary {
    gap: .18rem;
    margin-left: 1.15rem;
}

.app-nav-link {
    display: inline-flex;
    min-height: 2.7rem;
    align-items: center;
    gap: .45rem;
    padding: .58rem .72rem !important;
    border: 1px solid transparent !important;
    border-radius: .68rem;
    color: #bdc8dd !important;
    font-size: .9rem;
    font-weight: 650;
    white-space: nowrap;
}

button.app-nav-link {
    background: transparent;
}

.app-nav-link:hover,
.app-nav-link:focus-visible {
    color: #fff !important;
    background: rgb(255 255 255 / 9%) !important;
}

.app-nav-link.active,
.app-nav-link.show {
    border-color: rgb(96 165 250 / 28%) !important;
    color: #fff !important;
    background: rgb(37 99 235 / 24%) !important;
    box-shadow: inset 0 0 0 1px rgb(147 197 253 / 8%);
}

.app-nav-count {
    display: inline-grid;
    min-width: 1.45rem;
    height: 1.45rem;
    place-items: center;
    padding-inline: .35rem;
    border-radius: 999px;
    color: #0f172a;
    background: #facc15;
    font-size: .72rem;
    font-weight: 800;
}

.app-navbar__dropdown {
    width: min(23rem, calc(100vw - 2rem));
    padding: .5rem;
    border: 1px solid var(--app-border);
    border-radius: .85rem;
}

.app-nav-section-label {
    padding: .4rem .65rem .5rem;
    color: var(--app-muted);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.app-menu-item {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .68rem;
    border-radius: .65rem;
    white-space: normal;
}

.app-menu-item:hover,
.app-menu-item:focus-visible {
    background: #eff6ff;
}

.app-menu-item.active {
    color: #1e3a8a;
    background: var(--app-blue-100);
}

.app-menu-item__icon {
    display: inline-grid;
    width: 2rem;
    height: 2rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: .55rem;
    color: #1d4ed8;
    background: #eff6ff;
}

.app-menu-item__copy {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
}

.app-menu-item__copy strong {
    font-size: .88rem;
}

.app-menu-item__copy small {
    margin-top: .15rem;
    color: var(--app-muted);
    font-size: .73rem;
}

.app-account-trigger {
    min-height: 3rem;
    padding: .35rem .55rem !important;
    border: 1px solid transparent !important;
    border-radius: .72rem;
    color: #fff !important;
    background: rgb(255 255 255 / 6%) !important;
}

.app-account-trigger:hover,
.app-account-trigger:focus-visible,
.app-account-trigger.show {
    border-color: rgb(255 255 255 / 15%) !important;
    background: rgb(255 255 255 / 11%) !important;
}

.app-account-trigger__avatar {
    display: inline-grid;
    width: 2.25rem;
    height: 2.25rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: #dbeafe;
    background: rgb(59 130 246 / 34%);
}

.app-account-trigger__copy {
    display: flex;
    max-width: 11rem;
    flex-direction: column;
    line-height: 1.05;
}

.app-account-trigger__copy small {
    color: #9eabc4;
    font-size: .68rem;
}

.app-account-trigger__copy strong {
    margin-top: .25rem;
    overflow: hidden;
    font-size: .82rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-navbar__toggler {
    border-color: rgb(255 255 255 / 18%);
    border-radius: .65rem;
}

.app-shell .card {
    border: 1px solid var(--app-border) !important;
    border-radius: .85rem;
    box-shadow: 0 .35rem 1.1rem rgb(15 23 42 / 7%) !important;
}

.app-shell .card-header {
    padding: 1rem 1.1rem;
    border-bottom-color: var(--app-border);
    border-radius: .85rem .85rem 0 0 !important;
    background: #fff !important;
}

.btn {
    display: inline-flex;
    min-height: 2.45rem;
    align-items: center;
    justify-content: center;
    border-radius: .58rem;
    font-weight: 650;
}

.btn-sm {
    min-height: 2.15rem;
}

.form-control,
.form-select,
.input-group-text {
    min-height: 2.55rem;
    border-color: #cbd5e1;
    border-radius: .55rem;
}

.form-control:focus,
.form-select:focus {
    border-color: #60a5fa;
    box-shadow: 0 0 0 .22rem rgb(59 130 246 / 15%);
}

.badge {
    padding: .38rem .58rem;
    font-weight: 750;
    letter-spacing: .005em;
}

.text-bg-light {
    border: 1px solid #cbd5e1;
    color: #334155 !important;
    background: #f1f5f9 !important;
}

.text-bg-info {
    border: 1px solid #7dd3fc;
    color: #075985 !important;
    background: #e0f2fe !important;
}

.text-bg-warning {
    border: 1px solid #fde68a;
    color: #78350f !important;
    background: #fef3c7 !important;
}

.text-bg-success {
    border: 1px solid #86efac;
    color: #14532d !important;
    background: #dcfce7 !important;
}

.text-bg-primary {
    border: 1px solid #93c5fd;
    color: #1e3a8a !important;
    background: #dbeafe !important;
}

.table {
    --bs-table-color: var(--app-text);
    --bs-table-hover-bg: #f8fafc;
}

.table > thead > tr > th {
    color: #334155;
    font-size: .82rem;
    font-weight: 750;
}

.account-menu__dropdown {
    width: min(19rem, calc(100vw - 2rem));
    overflow: hidden;
    border: 0;
    border-radius: .8rem;
}

.account-menu .dropdown-item {
    padding: .65rem 1rem;
}

.profile-summary {
    color: #fff;
    background:
        radial-gradient(circle at 20% 10%, rgb(255 255 255 / 18%), transparent 14rem),
        linear-gradient(145deg, #233876, #111936);
}

.profile-avatar {
    display: grid;
    width: 6rem;
    height: 6rem;
    place-items: center;
    border: 3px solid rgb(255 255 255 / 45%);
    border-radius: 50%;
    background: rgb(255 255 255 / 14%);
    font-size: 1.8rem;
    font-weight: 750;
    letter-spacing: .04em;
    box-shadow: 0 .75rem 2rem rgb(0 0 0 / 18%);
}

.user-badge {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .38rem .7rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.user-badge--role-system-admin {
    color: #5b21b6;
    background: #ede9fe;
    border-color: #ddd6fe;
}

.user-badge--role-admin {
    color: #1d4ed8;
    background: #dbeafe;
    border-color: #bfdbfe;
}

.user-badge--role-master {
    color: #9a3412;
    background: #ffedd5;
    border-color: #fed7aa;
}

.user-badge--role-user {
    color: #334155;
    background: #e2e8f0;
    border-color: #cbd5e1;
}

.user-badge--account-standard {
    color: #0f766e;
    background: #ccfbf1;
    border-color: #99f6e4;
}

.user-badge--account-dependant {
    color: #92400e;
    background: #fef3c7;
    border-color: #fde68a;
}

.user-badge--status-active {
    color: #166534;
    background: #dcfce7;
    border-color: #bbf7d0;
}

.user-badge--status-inactive {
    color: #991b1b;
    background: #fee2e2;
    border-color: #fecaca;
}

.user-badge__dot {
    width: .45rem;
    height: .45rem;
    border-radius: 50%;
    background: currentColor;
}

.users-management-layout {
    --bs-gutter-x: 2rem;
}

.users-notifications {
    position: sticky;
    top: 0;
    padding-right: .5rem;
}

.users-notifications__icon {
    display: inline-grid;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: #0d6efd;
    background: #e7f1ff;
}

.users-notifications__item {
    padding: 1rem 0;
    border-bottom: 1px solid #dee2e6;
}

.users-notifications__item p {
    font-size: .925rem;
}

.users-notifications__empty {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: 1rem 0;
    font-size: .925rem;
}

.users-table-section {
    min-width: 0;
}

.viewport-scroll-card {
    display: flex;
    max-height: calc(100dvh - 14rem);
    flex-direction: column;
    overflow: hidden;
    overscroll-behavior: contain;
}

.viewport-scroll-card > .card-header {
    flex: 0 0 auto;
    padding: 1rem;
    border-bottom: 1px solid #dee2e6;
}

.viewport-scroll-card > .card-body {
    min-height: 0;
    flex: 1 1 auto;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: thin;
}

.remote-choice-options {
    max-height: 18rem;
    overflow-y: auto;
    padding: .75rem;
    border: 1px solid #d8dee8;
    border-radius: .5rem;
    background: #f8fafc;
}

.group-membership-badge {
    display: inline-flex;
    align-items: center;
    padding: .35rem .55rem;
    border: 1px solid #93c5fd;
    border-radius: 999px;
    color: #1e3a5f;
    background: #dbeafe;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1;
    white-space: normal;
}

.user-table-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem;
    min-width: 12rem;
}

.user-table-actions form {
    display: inline-flex;
    margin: 0;
}

.users-table th,
.users-table td {
    vertical-align: middle;
}

.users-table td {
    overflow-wrap: anywhere;
}

@media (max-width: 991.98px) {
    .app-shell > main.app-main--fixed {
        overflow-x: hidden;
        overflow-y: auto;
    }

    .management-workspace {
        height: auto;
    }

    .management-workspace__body > [class*="col-"] {
        height: auto;
    }

    .users-notifications {
        position: static;
        padding-right: 0;
    }

    .viewport-scroll-card {
        max-height: none;
        overflow: visible;
    }

    .viewport-scroll-card > .card-body {
        overflow: visible;
    }
}

@media (max-width: 1599.98px) {
    .users-table thead {
        display: none;
    }

    .users-table,
    .users-table tbody,
    .users-table tr,
    .users-table td {
        display: block;
        width: 100% !important;
    }

    .users-table tr {
        margin-bottom: 1rem;
        padding: .4rem .8rem;
        border: 1px solid #dee2e6;
        border-radius: .75rem;
        background: #fff;
    }

    .users-table td {
        display: grid;
        grid-template-columns: minmax(7rem, 28%) minmax(0, 1fr);
        gap: .75rem;
        padding: .7rem 0;
        border-bottom: 1px solid #edf0f3;
    }

    .users-table td:last-child {
        border-bottom: 0;
    }

    .users-table td::before {
        content: attr(data-label);
        color: #6c757d;
        font-size: .75rem;
        font-weight: 750;
        letter-spacing: .03em;
        text-transform: uppercase;
    }

    .user-table-actions {
        min-width: 0;
    }
}

@media (max-width: 1199.98px) {
    .app-navbar .navbar-collapse {
        max-height: calc(100dvh - 5.5rem);
        padding: .75rem 0 .25rem;
        overflow-y: auto;
    }

    .app-navbar__primary {
        gap: .25rem;
        margin-left: 0;
    }

    .app-nav-link {
        width: 100%;
    }

    .app-navbar__dropdown,
    .account-menu__dropdown {
        width: 100%;
        margin-top: .35rem;
    }

    .app-navbar__account {
        padding-top: .65rem;
        border-top: 1px solid rgb(255 255 255 / 10%);
    }

    .app-account-trigger {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .app-navbar__brand-copy small {
        display: none;
    }

    .app-navbar__brand-copy strong {
        font-size: .96rem;
    }

    .users-table td {
        grid-template-columns: 1fr;
        gap: .3rem;
    }

    .user-table-actions .btn,
    .user-table-actions form {
        width: 100%;
    }

    .user-table-actions form .btn {
        width: 100%;
    }
}

/* Private note launcher, threaded drawer, consolidated workspace, and discussion view. */
.private-notes-launcher {
    align-items: center;
    bottom: 1.25rem;
    box-shadow: 0 .75rem 2rem rgba(9, 42, 99, .28);
    display: inline-flex;
    gap: .5rem;
    left: 1.25rem;
    position: fixed;
    z-index: 1035;
}
.private-notes-panel { width: min(31rem, 94vw); }
.private-note-list { display: flex; flex-direction: column; gap: .75rem; }
.private-note-thread { margin-left: calc(min(var(--note-depth, 0), 4) * .85rem); }
.private-note-thread__body {
    background: #fff;
    border: 1px solid #dbe3ef;
    border-left: .25rem solid #0d6efd;
    border-radius: .65rem;
    padding: .8rem;
}
.private-note-thread .private-note-thread { margin-top: .65rem; }
.my-notes-workspace .accordion-button:not(.collapsed) { background: #eef5ff; color: #0b4fb3; }
.discussion-question .table { min-width: 42rem; }

@media print {
    .private-notes-launcher, .private-notes-panel, .session-discussion-workspace .btn { display: none !important; }
    .session-discussion-workspace .card { box-shadow: none !important; break-inside: avoid; }
}

@media (max-width: 575.98px) {
    .private-notes-launcher { bottom: 1rem; left: 1rem; }
    .private-notes-launcher > span:not(.badge) { display: none; }
    .private-note-thread { margin-left: calc(min(var(--note-depth, 0), 4) * .45rem); }
    .discussion-question .table { min-width: 0; }
    .discussion-answer-table thead { display: none; }
    .discussion-answer-table,
    .discussion-answer-table tbody,
    .discussion-answer-table tr,
    .discussion-answer-table th,
    .discussion-answer-table td { display: block; width: 100%; }
    .discussion-answer-table tr { border-bottom: 1px solid #dbe3ef; padding: .75rem; }
    .discussion-answer-table th,
    .discussion-answer-table td { border: 0; padding: .25rem 0; }
    .discussion-answer-table th::before,
    .discussion-answer-table td::before { color: #667085; content: attr(data-label); display: block; font-size: .72rem; font-weight: 700; text-transform: uppercase; }
}

.audit-user-panel {
    position: sticky;
    top: 0;
}

.audit-user-list {
    max-height: none;
    overflow: visible;
}

.audit-user-item {
    display: flex;
    width: 100%;
    align-items: flex-start;
    flex-direction: column;
    gap: .55rem;
    padding: .8rem;
    border: 0;
    border-bottom: 1px solid #dee2e6;
    color: #212529;
    background: transparent;
    text-align: left;
    transition: background-color 150ms ease, color 150ms ease;
}

.audit-user-item:hover,
.audit-user-item:focus-visible {
    background: #eef4ff;
}

.audit-user-item.is-active {
    color: #084298;
    background: #cfe2ff;
}

.audit-user-item__email {
    max-width: 100%;
    overflow: hidden;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.audit-detail-panel {
    min-height: 24rem;
}

.audit-detail-placeholder {
    display: flex;
    min-height: 24rem;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: .75rem;
    text-align: center;
}

.audit-detail-placeholder > i {
    color: #6c757d;
    font-size: 2.5rem;
}

.audit-event {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid #dee2e6;
}

.audit-event:last-child {
    border-bottom: 0;
}

.audit-change-dropdown {
    width: min(46rem, calc(100vw - 3rem));
}

.audit-snapshot {
    max-height: 18rem;
    padding: .75rem;
    overflow: auto;
    border-radius: .5rem;
    color: #e2e8f0;
    background: #172033;
    font-size: .75rem;
    white-space: pre-wrap;
}

@media (max-width: 991.98px) {
    .audit-user-panel {
        position: static;
    }

    .audit-user-list {
        max-height: 20rem;
    }
}

@media (max-width: 575.98px) {
    .audit-event {
        align-items: flex-start;
        flex-direction: column;
    }
}

.group-list-panel {
    position: sticky;
    top: 0;
}

.group-list {
    max-height: none;
    overflow: visible;
}

.group-list-item {
    display: flex;
    width: 100%;
    align-items: flex-start;
    flex-direction: column;
    gap: .35rem;
    padding: .85rem;
    border: 0;
    border-bottom: 1px solid #dee2e6;
    color: #212529;
    background: transparent;
    text-align: left;
    transition: background-color 150ms ease, color 150ms ease;
}

.group-list-item:hover,
.group-list-item:focus-visible {
    background: #eef4ff;
}

.group-list-item.is-active {
    color: #084298;
    background: #cfe2ff;
}

.group-list-item__name {
    font-weight: 700;
}

.group-detail-panel,
.group-detail-placeholder {
    min-height: 24rem;
}

.group-detail-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: .75rem;
    text-align: center;
}

.group-detail-placeholder > i {
    color: #6c757d;
    font-size: 2.5rem;
}

.journey-list-panel {
    position: sticky;
    top: 0;
}

.journey-list-item {
    display: flex;
    width: 100%;
    align-items: flex-start;
    flex-direction: column;
    gap: .4rem;
    padding: .9rem;
    border: 0;
    border-bottom: 1px solid #dee2e6;
    color: #212529;
    background: transparent;
    text-align: left;
    transition: background-color 150ms ease, color 150ms ease;
}

.journey-list-item:hover,
.journey-list-item:focus-visible {
    background: #eef4ff;
}

.journey-list-item.is-active {
    color: #084298;
    background: #cfe2ff;
}

.journey-list-item__name {
    font-weight: 700;
}

.journey-list-item__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.journey-detail-panel,
.journey-detail-placeholder {
    min-height: 24rem;
}

.journey-detail-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: .75rem;
    text-align: center;
}

.journey-detail-placeholder > i {
    color: #6c757d;
    font-size: 2.5rem;
}

.journey-detail-section {
    padding-bottom: 1.5rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid #e5e7eb;
}

.journey-badge,
.journey-book-chip {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .6rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1;
}

.journey-badge--category,
.journey-book-chip {
    color: #1e3a8a;
    background: #dbeafe;
    border-color: #bfdbfe;
}

.journey-badge--private {
    color: #334155;
    background: #e2e8f0;
    border-color: #cbd5e1;
}

.journey-badge--public,
.journey-badge--status {
    color: #166534;
    background: #dcfce7;
    border-color: #bbf7d0;
}

.journey-badge--pending {
    color: #92400e;
    background: #fef3c7;
    border-color: #fde68a;
}

.journey-badge--lifecycle-draft,
.journey-badge--approval-pending {
    color: #92400e;
    background: #fef3c7;
    border-color: #fde68a;
}

.journey-badge--lifecycle-active,
.journey-badge--approval-approved {
    color: #166534;
    background: #dcfce7;
    border-color: #bbf7d0;
}

.journey-badge--lifecycle-completed {
    color: #1d4ed8;
    background: #dbeafe;
    border-color: #bfdbfe;
}

.journey-badge--lifecycle-archived,
.journey-badge--approval-not-required {
    color: #334155;
    background: #e2e8f0;
    border-color: #cbd5e1;
}

.journey-badge--approval-rejected {
    color: #991b1b;
    background: #fee2e2;
    border-color: #fecaca;
}

.journey-visibility-option {
    display: flex;
    height: 100%;
    align-items: flex-start;
    gap: .75rem;
    padding: .9rem;
    border: 1px solid #dee2e6;
    border-radius: .75rem;
    background: #f8f9fa;
    cursor: pointer;
}

.journey-visibility-option span,
.journey-visibility-option small {
    display: block;
}

.journey-visibility-option span {
    min-width: 0;
    flex: 1 1 auto;
}

/*
 * Bootstrap's scrollable modal expects the body to be a direct flex child of
 * the modal content. AJAX forms add an intermediate form element, so this
 * class preserves the same constrained, independently scrolling body layout.
 */
.modal-dialog-scrollable .modal-scroll-form {
    display: flex;
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
    overflow: hidden;
}

.modal-dialog-scrollable .modal-scroll-form > .modal-body {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.modal-dialog-scrollable .modal-scroll-form > .modal-footer {
    flex: 0 0 auto;
}

.journey-dashboard__summary {
    flex: 0 0 auto;
}

.journey-dashboard__summary-grid {
    display: grid;
    align-items: center;
    grid-template-columns: minmax(18rem, 1.25fr) minmax(30rem, 1fr);
    gap: 1rem;
}

.journey-dashboard__statistics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.journey-stat {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    min-height: 3rem;
    padding-inline: .75rem;
    border-left: 1px solid #dee2e6;
}

.journey-stat > i {
    color: #0d6efd;
    font-size: 1.15rem;
}

.journey-stat span,
.journey-stat small {
    display: block;
}

.journey-stat strong {
    font-size: 1.1rem;
}

.journey-stat small {
    color: #6c757d;
    font-size: .75rem;
}

.journey-dashboard__sidebar {
    display: grid;
    min-height: 0;
    grid-template-rows: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: 1rem;
}

.journey-filter-card {
    display: flex;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
}

.journey-filter-card__body {
    min-height: 0;
    overflow-y: auto;
    scrollbar-width: thin;
}

.journey-filter-item {
    display: flex;
    width: 100%;
    align-items: center;
    gap: .7rem;
    padding: .7rem .8rem;
    border: 0;
    border-bottom: 1px solid #edf0f3;
    color: #212529;
    background: #fff;
    text-align: left;
    transition: background-color 150ms ease, color 150ms ease;
}

.journey-filter-item:hover,
.journey-filter-item:focus-visible {
    background: #eef4ff;
}

.journey-filter-item.is-active {
    color: #084298;
    background: #cfe2ff;
    box-shadow: inset .22rem 0 0 #0d6efd;
}

.journey-filter-item > span:last-child {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.journey-filter-item strong,
.journey-filter-item small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.journey-filter-item small {
    color: #6c757d;
    font-size: .72rem;
}

.journey-filter-icon,
.journey-filter-avatar {
    display: inline-grid;
    width: 2rem;
    height: 2rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: .45rem;
    color: #1e3a8a;
    background: #dbeafe;
    font-size: .75rem;
    font-weight: 800;
}

.journey-filter-avatar {
    border-radius: 50%;
    color: #fff;
    background: #334f8d;
}

.journey-gallery {
    height: 100%;
    max-height: none;
}

.journey-gallery__search {
    width: min(30rem, 100%);
}

.journey-gallery__status {
    min-width: 10rem;
}

.journey-relationship-filter {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.file-upload-existing {
    display: grid;
    grid-template-columns: minmax(8rem, 12rem) 1fr;
    align-items: center;
    gap: .35rem 1rem;
    padding: .75rem;
    margin-bottom: .75rem;
    border: 1px solid #dbe2ea;
    border-radius: .65rem;
    background: #f8fafc;
}

.file-upload-existing img {
    grid-row: 1 / span 2;
    width: 100%;
    max-height: 7rem;
    border-radius: .45rem;
    object-fit: cover;
}

.filepond--root {
    margin-bottom: .25rem;
    font-family: inherit;
}

.filepond--panel-root {
    background: #eef3f8;
}

@media (max-width: 575.98px) {
    .file-upload-existing {
        grid-template-columns: 1fr;
    }

    .file-upload-existing img {
        grid-row: auto;
    }
}

.journey-dashboard-card__relationship {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.2rem 0.55rem;
    font-size: 0.7rem;
    font-weight: 700;
    background: #e7f1ff;
    color: #0a58ca;
}

.journey-dashboard-card__relationship--collaborating {
    background: #e8f8f2;
    color: #146c43;
}

.journey-date-filter {
    display: flex;
    align-items: center;
    gap: .65rem;
    flex-wrap: wrap;
}

.journey-date-filter__field {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin: 0;
    color: #6c757d;
    font-size: .78rem;
}

.journey-date-filter__field .form-control {
    width: 9.5rem;
}

.journey-gallery__body {
    padding: 1rem;
}

.journey-category-section {
    margin-bottom: 1.75rem;
}

.journey-category-section:last-child {
    margin-bottom: 0;
}

.journey-category-section__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: .65rem;
    margin-bottom: .85rem;
    border-bottom: 1px solid #dee2e6;
}

.journey-dashboard-card {
    display: block;
    height: 100%;
    overflow: hidden;
    border: 1px solid #dbe2ea;
    border-radius: .75rem;
    color: #212529;
    background: #fff;
    text-decoration: none;
    box-shadow: 0 .2rem .65rem rgb(15 23 42 / 7%);
    transition: transform 150ms ease, box-shadow 150ms ease;
}

.journey-dashboard-card:hover,
.journey-dashboard-card:focus-visible {
    color: #212529;
    transform: translateY(-2px);
    box-shadow: 0 .65rem 1.3rem rgb(15 23 42 / 14%);
}

.journey-dashboard-card__banner {
    position: relative;
    display: block;
    height: clamp(9rem, 15vw, 12rem);
    overflow: hidden;
    background: #d9dde3;
}

.journey-dashboard-card__banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 240ms ease;
}

.journey-dashboard-card:hover .journey-dashboard-card__banner img {
    transform: scale(1.025);
}

.journey-dashboard-card__status {
    position: absolute;
    top: .65rem;
    right: .65rem;
    padding: .3rem .55rem;
    border-radius: 999px;
    color: #334155;
    background: rgb(255 255 255 / 90%);
    font-size: .7rem;
    font-weight: 750;
    text-transform: capitalize;
    backdrop-filter: blur(4px);
}

.journey-dashboard-card__status--active,
.journey-dashboard-card__status--completed {
    color: #166534;
}

.journey-dashboard-card__content {
    display: flex;
    min-height: 8.4rem;
    flex-direction: column;
    padding: .85rem;
}

.journey-dashboard-card__content > strong {
    font-size: 1rem;
}

.journey-dashboard-card__content > small {
    margin-top: .2rem;
    color: #6c757d;
}

.journey-dashboard-card__footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: .75rem;
    margin-top: auto;
    padding-top: .75rem;
    color: #64748b;
    font-size: .75rem;
}

.journey-gallery-empty {
    display: flex;
    min-height: 22rem;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
}

.journey-gallery-empty > i {
    margin-bottom: 1rem;
    color: #6c757d;
    font-size: 3rem;
}

.journey-overview {
    width: 100%;
}

.active-journey-search {
    width: min(32rem, 100%);
}

.active-journey-card {
    border: 1px solid #e1e7ef !important;
    transition: transform 150ms ease, box-shadow 150ms ease;
}

.active-journey-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 .75rem 1.5rem rgb(15 23 42 / 12%) !important;
}

.active-journey-card__image {
    position: relative;
    display: block;
    height: 12rem;
    overflow: hidden;
    background: #dbe2ea;
}

.active-journey-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.active-journey-card__image .journey-badge {
    position: absolute;
    top: .75rem;
    right: .75rem;
    max-width: calc(100% - 1.5rem);
    color: #0f5132;
    background: rgb(209 231 221 / 94%);
}

.active-journey-card__summary {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.active-journey-card__details {
    display: grid;
    gap: .35rem;
}

.active-journey-card__details > div {
    display: grid;
    grid-template-columns: minmax(6rem, auto) 1fr;
    gap: .65rem;
}

.active-journey-card__details dt {
    color: #64748b;
    font-weight: 600;
}

.active-journey-card__details dt i {
    width: 1.1rem;
    color: #0d6efd;
}

.active-journey-card__details dd {
    margin: 0;
    text-align: right;
}

.journey-overview__banner {
    height: clamp(15rem, 34vw, 28rem);
    overflow: hidden;
    background: #172033;
}

.journey-overview__banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.journey-session-panel {
    min-height: 18rem;
}

.journey-session-panel__body {
    max-height: 24rem;
    overflow-y: auto;
}

.journey-session-summary {
    max-width: 20rem;
}

.journey-visibility-option small {
    margin-top: .25rem;
    color: #6c757d;
    line-height: 1.4;
}

@media (max-width: 991.98px) {
    .journey-list-panel {
        position: static;
    }

    .journey-list {
        max-height: 20rem;
        overflow-y: auto;
    }

    .journey-stat {
        border-left: 0;
    }

    .journey-dashboard__summary-grid {
        grid-template-columns: 1fr;
    }

    .journey-dashboard__statistics {
        border-top: 1px solid #dee2e6;
    }

    .journey-dashboard__sidebar {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: none;
    }

    .journey-filter-card__body {
        max-height: 20rem;
    }

    .journey-gallery {
        height: auto;
    }
}

@media (max-width: 575.98px) {
    .journey-dashboard__sidebar {
        grid-template-columns: 1fr;
    }

    .journey-stat {
        min-height: 2.75rem;
        padding-inline: .35rem;
    }

    .journey-dashboard__statistics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .journey-dashboard-card__footer {
        align-items: flex-start;
        flex-direction: column;
    }
}

.notification-history__list {
    display: grid;
    gap: .75rem;
}

.notification-history__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid #dee2e6;
    border-radius: .75rem;
    background: #fff;
}

.notification-history__item.is-unread {
    border-color: #9ec5fe;
    background: #f5f9ff;
    box-shadow: inset .25rem 0 0 #0d6efd;
}

.notification-history__content {
    min-width: 0;
}

.member-picker__search {
    width: min(24rem, 100%);
}

.member-picker__list {
    min-height: 18rem;
    max-height: min(25rem, 52vh);
    padding: .5rem;
    overflow-y: auto;
    border: 1px solid #dee2e6;
    border-radius: .75rem;
    background: #f8f9fa;
    scrollbar-width: thin;
}

.group-members-modal .member-picker__list {
    min-height: 14rem;
    max-height: min(21rem, 38vh);
}

.member-picker__list--selected {
    border-color: #a3cfbb;
    background: #f4fbf7;
}

.member-picker__item {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: .5rem;
    padding: .7rem;
    border: 1px solid #dee2e6;
    border-radius: .65rem;
    background: #fff;
}

.member-picker__item:last-of-type {
    margin-bottom: 0;
}

.member-picker__item.is-selected {
    border-color: #75b798;
}

.member-picker__avatar {
    display: inline-grid;
    width: 2.35rem;
    height: 2.35rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #334f8d;
    font-size: .75rem;
    font-weight: 800;
}

.member-picker__identity {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
}

.member-picker__identity strong,
.member-picker__identity small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.member-picker__identity small {
    color: #6c757d;
}

.member-picker__empty {
    padding: 1rem .5rem;
    text-align: center;
}

@media (max-width: 575.98px) {
    .notification-history__item {
        align-items: stretch;
        flex-direction: column;
    }

    .notification-history__item form,
    .notification-history__item button {
        width: 100%;
    }

    .member-picker__item {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .member-picker__identity {
        width: calc(100% - 3.1rem);
    }

    .member-picker__item button {
        width: 100%;
    }
}

@media (max-width: 991.98px) {
    .group-list-panel {
        position: static;
    }

    .group-list {
        max-height: 20rem;
    }
}

.public-auth-page {
    min-height: 100vh;
    background:
        radial-gradient(circle at 10% 15%, rgb(13 110 253 / 12%), transparent 34rem),
        linear-gradient(145deg, #e9edf3 0%, #dfe6f0 100%) !important;
}

.public-auth {
    display: flex;
    align-items: center;
    justify-content: center;
}

.app-footer a {
    color: #495057;
    font-size: .875rem;
    text-decoration: none;
}

.app-footer a:hover,
.app-footer a:focus-visible {
    color: #0d6efd;
    text-decoration: underline;
}

.legal-page {
    max-width: 62rem;
}

.legal-copy h2 {
    margin-top: 2rem;
    font-size: 1.25rem;
}

.legal-copy p,
.legal-copy li {
    line-height: 1.75;
}

.public-auth__shell {
    width: 100%;
    max-width: 70rem;
    min-height: 560px;
    margin-inline: auto;
    overflow: hidden;
    border: 1px solid rgb(255 255 255 / 60%);
    border-radius: 1.25rem;
    background-color: #142052;
    background-image:
        linear-gradient(90deg, rgb(10 17 44 / 4%) 0%, rgb(10 17 44 / 18%) 44%, rgb(10 17 44 / 92%) 72%, rgb(10 17 44 / 98%) 100%),
        url('../images/journey-of-knowledge-without-text.png');
    background-position: center;
    background-size: cover;
    box-shadow: 0 1rem 3rem rgb(17 24 39 / 18%);
}

.public-auth__shell > .row {
    min-height: 560px;
}

.public-auth__content {
    display: flex;
    align-items: center;
    padding: 2rem;
    color: #fff;
    background: transparent;
}

.public-auth__form-wrap {
    max-width: 30rem;
    margin-inline: auto;
}

.public-auth__card {
    width: 100%;
    max-width: 30rem;
    margin-inline: auto;
    border-radius: .9rem;
    background: transparent;
    box-shadow: none !important;
}

.public-auth__card .text-muted,
.public-auth__card .form-text {
    color: rgb(255 255 255 / 72%) !important;
}

.public-auth__card a {
    color: #9ec5fe;
}

.public-auth__card a:hover,
.public-auth__card a:focus-visible {
    color: #cfe2ff;
}

@media (max-width: 991.98px) {
    .public-auth {
        align-items: center;
        padding: 1.25rem !important;
    }

    .public-auth__shell {
        max-width: 38rem;
        min-height: 0;
        background-color: #0a112c;
        background-image: url('../images/journey-of-knowledge-without-text.png');
        background-position: center top;
        background-size: 100% auto;
        background-repeat: no-repeat;
    }

    .public-auth__shell > .row {
        min-height: 0;
    }

    .public-auth__artwork {
        display: block;
        min-height: 0;
        aspect-ratio: 1024 / 507;
    }

    .public-auth__content {
        padding: 1.25rem 1.25rem 1.75rem;
        background: transparent;
    }
}

@media (max-width: 575.98px) {
    .public-auth {
        padding: .75rem !important;
    }

    .public-auth__shell {
        border-radius: 1rem;
    }

    .public-auth__content {
        padding: .75rem .75rem 1.25rem;
    }
}

/* Make the default Select2 theme align with Bootstrap 5 form controls. */
.select2-container {
    width: 100% !important;
}

.select2-container .select2-selection--single,
.select2-container .select2-selection--multiple {
    min-height: 38px;
    border-color: #dee2e6;
    border-radius: .375rem;
}

.select2-container .select2-selection--single .select2-selection__rendered {
    padding: .375rem 2.25rem .375rem .75rem;
    line-height: 1.5;
}

.select2-container .select2-selection--single .select2-selection__arrow {
    height: 36px;
    right: 6px;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single {
    border-color: #86b7fe;
    box-shadow: 0 0 0 .25rem rgb(13 110 253 / 25%);
}

.is-invalid + .select2-container .select2-selection {
    border-color: #dc3545;
}

/* Keep journey-resource headings visible while longer link collections scroll. */
.journey-resource-panel__body {
    max-height: 18rem;
    overflow-y: auto;
}

.journey-resource-panel .min-w-0 {
    min-width: 0;
}

/* Member question workflow and retained-answer review. */
.session-participation .progress,
.member-journey-progress .progress,
.session-progress-summary .progress {
    height: .55rem;
    border-radius: 999px;
    background: #e2e8f0;
}

.session-question-accordion .accordion-button {
    padding: 1rem 1.1rem;
    background: #f8fafc;
}

.session-question-accordion .accordion-button:not(.collapsed) {
    color: #1e3a8a;
    background: #eff6ff;
    box-shadow: inset 0 -1px 0 var(--app-border);
}

.session-group-icon {
    display: inline-grid;
    width: 2.25rem;
    height: 2.25rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: .65rem;
    color: #1d4ed8;
    background: #dbeafe;
}

.session-question-list {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    background: #f8fafc;
}

.session-question-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .9rem;
    padding: 1rem;
    border: 1px solid var(--app-border);
    border-radius: .8rem;
    background: #fff;
    box-shadow: 0 .2rem .65rem rgb(15 23 42 / 5%);
}

.session-question-card__number {
    display: inline-grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #2563eb;
    font-size: .82rem;
    font-weight: 800;
}

.session-question-card__content {
    min-width: 0;
}

.session-answer-review {
    padding: .8rem .9rem;
    border-left: .25rem solid #2563eb;
    border-radius: .35rem .65rem .65rem .35rem;
    background: #eff6ff;
}

.session-answer-review > span {
    display: block;
    margin-bottom: .25rem;
    color: #475569;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.member-journey-notes textarea {
    resize: vertical;
}

.member-progress-list {
    max-height: 28rem;
    overflow-y: auto;
}

.member-progress-item {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(7rem, .8fr) auto;
    align-items: center;
    gap: .8rem;
    padding: .85rem 1rem;
    border-bottom: 1px solid var(--app-border);
}

.member-progress-item:last-child {
    border-bottom: 0;
}

.member-progress-item__main,
.member-progress-item__stats {
    min-width: 0;
}

.member-progress-item__stats {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    color: #64748b;
    font-size: .76rem;
}

@media (max-width: 575.98px) {
    .member-progress-item {
        grid-template-columns: 1fr;
    }
}

/* Screen preview for the protected session and journey printouts. */
.print-preview-shell {
    width: min(100%, 68rem);
    margin-inline: auto;
}

.print-document {
    padding: clamp(1.25rem, 4vw, 3.5rem);
    border: 1px solid var(--app-border);
    border-radius: .85rem;
    color: #172033;
    background: #fff;
    box-shadow: 0 .75rem 2.5rem rgb(15 23 42 / 10%);
}

.print-document__header {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding-bottom: 1.5rem;
    border-bottom: .18rem solid #1d4ed8;
}

.print-document__header img {
    flex: 0 0 auto;
    border-radius: .75rem;
}

.print-document__header h1 {
    margin: 0 0 .35rem;
    font-size: clamp(1.65rem, 4vw, 2.5rem);
}

.print-document__eyebrow {
    margin-bottom: .35rem;
    color: #1d4ed8;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.print-document__meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    padding: 1.25rem 0;
    border-bottom: 1px solid var(--app-border);
}

.print-document__meta > div {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.print-document__meta span {
    color: #64748b;
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.print-document__section {
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--app-border);
}

.print-document__section > h2,
.print-session-summary h2 {
    margin-bottom: .8rem;
    font-size: 1.25rem;
}

.print-answer-group {
    margin-top: 1.25rem;
}

.print-answer-group h3,
.print-answer-group__heading {
    padding-bottom: .45rem;
    margin: 1rem 0 .45rem;
    border-bottom: 1px solid #cbd5e1;
    color: #334155;
    font-size: 1rem;
}

.print-answer {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .75rem;
    padding: .8rem 0;
    break-inside: avoid;
}

.print-answer__number {
    display: inline-grid;
    width: 1.7rem;
    height: 1.7rem;
    place-items: center;
    border-radius: 50%;
    color: #1e3a8a;
    background: #dbeafe;
    font-size: .75rem;
    font-weight: 800;
}

.print-answer__question {
    margin-bottom: .2rem;
    font-weight: 750;
}

.print-answer__guidance {
    margin-bottom: .4rem;
    color: #64748b;
    font-size: .85rem;
}

.print-answer__value {
    padding: .55rem .7rem;
    margin: 0;
    border-left: .2rem solid #2563eb;
    background: #f8fafc;
}

.print-completed-mark {
    color: #166534;
    font-size: .82rem;
    font-weight: 750;
    white-space: nowrap;
}

.print-document__footer {
    padding-top: 1.25rem;
    color: #64748b;
    font-size: .75rem;
    text-align: center;
}

@media (max-width: 575.98px) {
    .session-question-card {
        grid-template-columns: 1fr;
    }

    .print-document__header {
        align-items: flex-start;
    }

    .print-document__header img {
        width: 3.25rem;
        height: 3.25rem;
    }

    .print-document__meta {
        grid-template-columns: 1fr;
    }
}

@page {
    size: A4;
    margin: 13mm;
}

@media print {
    html,
    body,
    .app-shell {
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
        background: #fff !important;
    }

    .app-shell > .navbar,
    .app-shell > .app-footer,
    .page-loader,
    .print-preview-actions,
    .modal {
        display: none !important;
    }

    .app-shell > main {
        display: block !important;
        padding: 0 !important;
        overflow: visible !important;
    }

    .print-preview-shell {
        width: 100%;
        max-width: none;
    }

    .print-document {
        padding: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .print-document__section,
    .print-answer,
    .print-session-summary {
        break-inside: avoid;
    }

    .print-session-summary {
        break-before: page;
    }

    .print-session-summary:first-of-type {
        break-before: auto;
    }

    a[href]::after {
        content: none !important;
    }
}
.help-centre__hero {
    background: linear-gradient(135deg, #fff 0%, #eef5ff 58%, #e5f8f5 100%);
    overflow: hidden;
}

.help-centre__eyebrow {
    color: #155bc2;
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.help-guide-card { transition: transform .18s ease, box-shadow .18s ease; }
.help-guide-card:hover { transform: translateY(-3px); }
.help-guide-card__icon {
    align-items: center;
    background: #e8f1ff;
    border-radius: 1rem;
    color: #0d6efd;
    display: inline-flex;
    font-size: 1.35rem;
    height: 3rem;
    justify-content: center;
    width: 3rem;
}

.help-article { max-width: 920px; }
.help-step-number {
    align-items: center;
    background: #0d6efd;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 2.35rem;
    font-weight: 800;
    height: 2.35rem;
    justify-content: center;
}
.help-check-list { list-style: none; padding: 0; }
.help-check-list li { display: flex; gap: .65rem; margin-top: .65rem; }
.help-check-list i { color: #198754; margin-top: .25rem; }

.help-tour { inset: 0; position: fixed; z-index: 1085; }
.help-tour__shade { background: rgba(5, 14, 35, .72); position: fixed; z-index: 1085; }
.help-tour__focus {
    border-radius: .6rem;
    box-shadow: 0 0 0 5px rgba(255, 210, 86, .95), 0 0 28px rgba(255, 210, 86, .55);
    pointer-events: none;
    position: fixed;
    z-index: 1087;
}
.help-tour__popover {
    background: #fff;
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 1.25rem 3rem rgba(3, 15, 38, .28);
    max-height: calc(100vh - 1.5rem);
    overflow-y: auto;
    padding: 1rem;
    position: fixed;
    z-index: 1090;
}
.help-tour__progress { align-items: center; color: #667085; display: flex; font-size: .78rem; gap: .75rem; margin-bottom: .65rem; }
.help-tour__progress .progress { flex: 1; height: .35rem; }
.help-tour__actions { align-items: center; display: flex; gap: .5rem; justify-content: space-between; }
.help-tour-open { overflow: hidden; }

@media (max-width: 575.98px) {
    .help-tour__popover { border-radius: .8rem; padding: .85rem; }
    .help-tour__actions { align-items: stretch; flex-direction: column-reverse; }
    .help-tour__actions > .btn { align-self: flex-start; }
    .help-tour__actions > div { display: grid !important; grid-template-columns: 1fr 1fr; width: 100%; }
    .help-centre__hero .display-6, .help-article .display-6 { font-size: 2rem; }
}
