/**
 * Portal brand tokens — aligned with public site Crafto demo
 * (modern-business: --base-color #602482, accent green #4DAA57).
 * Adjust here if ICTAZ publishes official hex values.
 */
:root {
    --ictaz-brand: #602482;
    --ictaz-brand-rgb: 96, 36, 130;
    --ictaz-accent: #4daa57;
    --ictaz-accent-rgb: 77, 170, 87;

    --bs-primary: var(--ictaz-brand);
    --bs-primary-rgb: var(--ictaz-brand-rgb);
    --bs-link-color: var(--ictaz-brand);
    --bs-link-hover-color: #521f6f;
    --bs-focus-ring-color: rgba(var(--ictaz-brand-rgb), 0.35);
}

.btn-primary {
    --bs-btn-bg: var(--ictaz-brand);
    --bs-btn-border-color: var(--ictaz-brand);
    --bs-btn-hover-bg: #521f6f;
    --bs-btn-hover-border-color: #4a1c66;
    --bs-btn-active-bg: #4a1c66;
    --bs-btn-active-border-color: #451a5f;
}

/* Steex theme can override Bootstrap primary — keep ICTAZ purple (#602482) on portal chrome */
#layout-wrapper .btn.btn-primary {
    --bs-btn-bg: #602482;
    --bs-btn-border-color: #602482;
    --bs-btn-hover-bg: #521f6f;
    --bs-btn-hover-border-color: #4a1c66;
    --bs-btn-active-bg: #4a1c66;
    --bs-btn-active-border-color: #451a5f;
    --bs-btn-disabled-bg: #602482;
    --bs-btn-disabled-border-color: #602482;
    background-color: #602482;
    border-color: #602482;
}

#layout-wrapper .btn.btn-primary:hover,
#layout-wrapper .btn.btn-primary:focus-visible {
    background-color: #521f6f;
    border-color: #4a1c66;
}

#layout-wrapper .btn.btn-primary:active {
    background-color: #4a1c66;
    border-color: #451a5f;
}

/* Steex markup uses btn-soft-primary in many templates; the bundled theme may omit it — restore visible soft buttons */
#layout-wrapper .btn.btn-soft-primary {
    --bs-btn-color: #602482;
    --bs-btn-bg: rgba(var(--ictaz-brand-rgb), 0.14);
    --bs-btn-border-color: rgba(var(--ictaz-brand-rgb), 0.32);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #602482;
    --bs-btn-hover-border-color: #602482;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #521f6f;
    --bs-btn-active-border-color: #4a1c66;
    --bs-btn-disabled-color: #602482;
    --bs-btn-disabled-bg: rgba(var(--ictaz-brand-rgb), 0.08);
    --bs-btn-disabled-border-color: rgba(var(--ictaz-brand-rgb), 0.16);
    color: #602482;
    background-color: rgba(var(--ictaz-brand-rgb), 0.14);
    border-color: rgba(var(--ictaz-brand-rgb), 0.32);
}

#layout-wrapper .btn.btn-soft-primary:hover,
#layout-wrapper .btn.btn-soft-primary:focus-visible {
    color: #fff;
    background-color: #602482;
    border-color: #602482;
}

#layout-wrapper .btn.btn-soft-primary:active {
    color: #fff;
    background-color: #521f6f;
    border-color: #4a1c66;
}

/* Dark sidebar: logo strip uses same background as menu (Steex --tb-vertical-menu-bg). */
html[data-sidebar="dark"] .navbar-brand-box {
    background-color: var(--tb-vertical-menu-bg) !important;
    border-color: var(--tb-vertical-menu-border, transparent) !important;
}

/* Topbar: default user icon asset (non-photo). */
#layout-wrapper .portal-default-user-icon {
    object-fit: contain;
    flex-shrink: 0;
}

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

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

.border-primary {
    border-color: var(--ictaz-brand) !important;
}

.progress-bar.bg-primary {
    background-color: var(--ictaz-brand) !important;
}

/* A-01 auth / onboarding polish */
.portal-auth-hero-pattern {
    background:
        radial-gradient(circle at 18% 22%, rgba(255, 255, 255, 0.22) 0%, transparent 42%),
        radial-gradient(circle at 82% 70%, rgba(255, 255, 255, 0.12) 0%, transparent 38%);
    pointer-events: none;
}

.portal-auth-progress {
    height: 6px;
}

.portal-auth-field {
    position: relative;
}

.portal-auth-field .form-control {
    padding-left: 2.65rem;
    min-height: calc(1.5em + 0.75rem + 2px);
}

.portal-auth-field .portal-auth-field__icon {
    position: absolute;
    left: 1rem;
    top: 0;
    height: calc(1.5em + 0.75rem + 2px);
    display: flex;
    align-items: center;
    z-index: 3;
    color: var(--bs-secondary-color);
    pointer-events: none;
    font-size: 1.1rem;
    line-height: 1;
}

.portal-auth-field:has(.form-control-lg) .portal-auth-field__icon {
    height: calc(1.5em + 1rem + 2px);
}

.letter-spacing-1 {
    letter-spacing: 0.06em;
}

/* Pending activation — vertical timeline */
.portal-onboarding-timeline {
    position: relative;
}

.portal-onboarding-timeline__item {
    position: relative;
}

.portal-onboarding-timeline__item:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 15px;
    top: 2.25rem;
    bottom: 0;
    width: 2px;
    background-color: var(--bs-border-color);
    border-radius: 1px;
}

.portal-onboarding-timeline__marker {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    line-height: 1;
}

.portal-onboarding-timeline__item--done .portal-onboarding-timeline__marker {
    background-color: rgba(var(--ictaz-accent-rgb), 0.18);
    color: var(--ictaz-accent);
}

.portal-onboarding-timeline__item--current .portal-onboarding-timeline__marker {
    background-color: rgba(255, 193, 7, 0.25);
    color: #b45309;
}

/* A-01 — advanced shell, stepper, panels */
.portal-auth-main-card {
    border-radius: 0.5rem;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.portal-auth-shell .portal-auth-main-card.border {
    border-color: rgba(33, 37, 41, 0.16) !important;
}

@media (hover: hover) {
    .portal-auth-main-card:hover {
        box-shadow: 0 0.35rem 1rem rgba(15, 23, 42, 0.08) !important;
    }
}

.portal-page-eyebrow {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-hero-benefits__icon {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: rgba(255, 255, 255, 0.14);
    font-size: 1rem;
}

.portal-auth-steptrack {
    position: relative;
    padding: 0 0.25rem;
}

.portal-auth-steptrack__rail {
    position: absolute;
    left: 14%;
    right: 14%;
    top: 18px;
    height: 2px;
    background-color: var(--bs-border-color-translucent, var(--bs-border-color));
    z-index: 0;
}

@media (max-width: 575.98px) {
    .portal-auth-steptrack__rail {
        left: 10%;
        right: 10%;
    }
}

.portal-auth-steptrack__node {
    position: relative;
    z-index: 1;
}

.portal-auth-steptrack__circle {
    width: 38px;
    height: 38px;
    border: 2px solid transparent;
    line-height: 1;
}

.portal-auth-steptrack__circle--done {
    background-color: var(--ictaz-accent);
    border-color: var(--ictaz-accent);
    color: #fff;
}

.portal-auth-steptrack__circle--current {
    background-color: var(--ictaz-brand);
    border-color: var(--ictaz-brand);
    color: #fff;
}

.portal-auth-steptrack__circle--todo {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-secondary-color);
}

.portal-auth-progress--animated .portal-auth-progress__bar {
    transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.tabular-nums {
    font-variant-numeric: tabular-nums;
}

.portal-auth-field .form-control:focus {
    border-color: rgba(var(--ictaz-brand-rgb), 0.55);
    box-shadow: 0 0 0 0.2rem rgba(var(--ictaz-brand-rgb), 0.12);
}

.portal-auth-credential-panel {
    border: 1px solid rgba(33, 37, 41, 0.16);
    border-radius: 0.5rem;
    background: var(--bs-body-bg);
    padding: 1.25rem 1.25rem 1rem;
    box-shadow: none;
}

.portal-form-section-title {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--bs-border-color);
}

legend.portal-form-section-title {
    float: none;
    width: 100%;
    padding: 0;
}

.portal-verify-roadmap {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.875rem;
    overflow: hidden;
    background: var(--bs-body-bg);
}

.portal-verify-roadmap__row {
    display: flex;
    align-items: stretch;
    gap: 0;
    border-bottom: 1px solid var(--bs-border-color);
}

.portal-verify-roadmap__row:last-child {
    border-bottom: 0;
}

.portal-verify-roadmap__index {
    width: 3.25rem;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
    border-right: 1px solid var(--bs-border-color);
}

.portal-verify-roadmap__body {
    padding: 1rem 1.25rem;
    font-size: 0.875rem;
    line-height: 1.55;
}

.portal-onboarding-panel {
    border-radius: 0.875rem;
    border: 1px solid var(--bs-border-color);
    background: var(--bs-tertiary-bg);
    padding: 1.25rem 1.25rem 0.25rem;
}

.portal-sticky-sidebar {
    top: 1rem;
}

.portal-meta-hint {
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.portal-auth-flash {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.portal-form-actions {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(var(--ictaz-brand-rgb), 0.1);
}

.portal-auth-option-well {
    border: 1px solid rgba(33, 37, 41, 0.14);
    background: var(--bs-body-bg);
}

.portal-auth-footer-tile {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    height: 100%;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(33, 37, 41, 0.16);
    border-radius: 0.5rem;
    text-decoration: none;
    color: inherit;
    background-color: var(--bs-body-bg);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.portal-auth-footer-tile:hover {
    border-color: rgba(var(--ictaz-brand-rgb), 0.45);
    box-shadow: 0 0.15rem 0.5rem rgba(var(--ictaz-brand-rgb), 0.1);
    background-color: var(--bs-body-bg);
}

.portal-auth-footer-tile__label {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    margin-bottom: 0.25rem;
}

.portal-auth-footer-tile__title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--bs-body-color);
    margin-bottom: 0;
}

.portal-auth-footer-tile__meta {
    font-size: 0.75rem;
    color: var(--bs-secondary-color);
    margin-top: 0.35rem;
    margin-bottom: 0;
}

.portal-auth-footer-tile .ph-caret-right {
    opacity: 0.45;
}

/* Auth shell — institutional / registry tone (scoped) */
.portal-auth-shell .portal-auth-slot > header {
    margin-bottom: 1rem !important;
}

.portal-auth-shell .portal-auth-slot > footer {
    margin-top: 1.25rem !important;
    padding-top: 1.25rem !important;
}

.portal-auth-shell .portal-auth-step-badge {
    font-weight: 600;
    font-size: 0.6875rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-body-color);
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
}

.portal-auth-shell .portal-auth-notice {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
    padding: 0.8125rem 1rem;
    margin-bottom: 1rem;
    border-radius: 0.375rem;
    border: 1px solid var(--bs-border-color);
    border-left: 3px solid var(--ictaz-brand);
    background-color: var(--bs-tertiary-bg);
    box-shadow: none;
}

.portal-auth-shell .portal-auth-notice__icon {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--ictaz-brand-rgb), 0.12);
    color: var(--ictaz-brand);
    line-height: 1;
}

.portal-auth-shell .portal-auth-notice--muted {
    border-left-color: color-mix(in srgb, var(--bs-secondary-color) 70%, var(--bs-body-bg));
}

.portal-auth-shell .portal-auth-notice--muted .portal-auth-notice__icon {
    background: var(--bs-secondary-bg);
    color: var(--bs-body-color);
}

.portal-auth-shell .portal-auth-notice--success {
    border-left-color: var(--ictaz-accent);
}

.portal-auth-shell .portal-auth-notice--success .portal-auth-notice__icon {
    background: rgba(var(--ictaz-accent-rgb), 0.16);
    color: #2d6a35;
}

.portal-auth-shell .portal-auth-summary-card {
    border: 1px solid rgba(33, 37, 41, 0.16);
    border-radius: 0.5rem;
    background: var(--bs-body-bg);
    box-shadow: none !important;
}

.portal-auth-shell .portal-auth-summary-card .card-body {
    padding: 1rem 1.15rem;
}

.portal-auth-shell .portal-auth-credential-panel {
    background: var(--bs-body-bg);
    border: 1px solid rgba(33, 37, 41, 0.16);
    padding: 1.25rem 1.25rem 1rem;
}

.portal-auth-shell .portal-auth-field .form-control {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
    padding-right: 2.25rem;
}

.portal-auth-shell .portal-auth-field .form-control::placeholder {
    color: var(--bs-secondary-color);
    opacity: 0.85;
}

.portal-auth-shell .portal-form-actions {
    margin-top: 1rem;
    padding-top: 1rem;
}

.portal-auth-shell .btn-primary:not(.btn-link) {
    --bs-btn-font-weight: 600;
    --bs-btn-padding-y: 0.5rem;
    --bs-btn-padding-x: 1.125rem;
    --bs-btn-font-size: 0.9375rem;
    border-radius: 0.375rem;
    letter-spacing: 0.02em;
}

.portal-auth-shell .btn-primary.btn-lg:not(.btn-link) {
    --bs-btn-padding-y: 0.5625rem;
    --bs-btn-font-size: 0.9375rem;
}

.portal-auth-shell .btn-outline-secondary.btn-lg {
    --bs-btn-padding-y: 0.5625rem;
    --bs-btn-font-size: 0.9375rem;
    border-radius: 0.375rem;
}

.portal-auth-shell .portal-auth-inbox-badge {
    font-weight: 600;
    font-size: 0.6875rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-body-color);
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
}

.portal-auth-shell .portal-auth-main-card {
    border-radius: 0.5rem;
}

@media (hover: hover) {
    .portal-auth-shell .portal-auth-main-card:hover {
        box-shadow: 0 0.35rem 1rem rgba(15, 23, 42, 0.09) !important;
    }
}

.portal-auth-shell .portal-auth-hero .card-body {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.portal-auth-shell .portal-auth-hero h2 {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-weight: 600;
    letter-spacing: -0.02em;
}

/* Guest auth: lock to viewport; scroll inside .portal-auth-slot only */
html.portal-auth-html {
    height: 100vh;
    height: 100dvh;
    margin: 0;
    overflow: hidden;
}

body.portal-auth-body {
    height: 100%;
    max-height: 100vh;
    max-height: 100dvh;
    margin: 0 !important;
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
}

.portal-auth-page.auth-page-wrapper {
    flex: 1 1 0% !important;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.portal-auth-page__container {
    flex: 1 1 0% !important;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.portal-auth-page .portal-auth-shell {
    flex: 1 1 0% !important;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.portal-auth-page .portal-auth-shell > .row {
    flex: 1 1 0%;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
}

.portal-auth-page .portal-auth-shell > .row > [class*="col-"] {
    flex: 1 1 0%;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.portal-auth-page .portal-auth-main-card {
    flex: 1 1 0%;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.portal-auth-page .portal-auth-main-card > .row {
    flex: 1 1 0%;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
    display: flex;
}

.portal-auth-page .portal-auth-main-card > .row > [class*="col-"] {
    display: flex;
    flex-direction: column;
    flex: 1 1 0%;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
}

.portal-auth-page .portal-auth-col-form {
    min-height: 0;
}

.portal-auth-page .portal-auth-workspace {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    justify-content: flex-start;
}

.portal-auth-page .portal-auth-workspace .portal-auth-mobile-hero,
.portal-auth-page .portal-auth-workspace .portal-auth-steptrack-wrap {
    flex-shrink: 0;
}

.portal-auth-page .portal-auth-workspace .portal-auth-slot {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

/* Equal flex spacers: vertically center short forms; collapse when content needs scroll */
.portal-auth-page .portal-auth-workspace .portal-auth-slot::before,
.portal-auth-page .portal-auth-workspace .portal-auth-slot::after {
    content: "";
    flex: 1 1 0;
    min-height: 0;
    pointer-events: none;
}

.portal-auth-page .portal-auth-hero {
    min-height: 0;
    overflow: hidden;
}

/* Auth guest: vertical rhythm */
.portal-auth-page .portal-auth-slot > header {
    margin-bottom: 1rem !important;
}

.portal-auth-page .portal-auth-slot > footer {
    margin-top: 0.75rem !important;
    padding-top: 0.75rem !important;
}

.portal-auth-page .portal-auth-steptrack__circle {
    width: 32px;
    height: 32px;
}

.portal-auth-page .portal-auth-steptrack__rail {
    top: 15px;
}

.portal-auth-page .portal-auth-shell .portal-auth-notice {
    padding: 0.45rem 0.65rem;
    margin-bottom: 0.45rem;
    gap: 0.5rem;
}

.portal-auth-page .portal-auth-shell .portal-auth-notice .fs-13.lh-lg {
    font-size: 0.75rem;
    line-height: 1.35;
}

.portal-auth-page .portal-auth-shell .portal-auth-notice .portal-auth-notice__icon {
    width: 1.85rem;
    height: 1.85rem;
    font-size: 0.95rem;
}

.portal-auth-page .portal-form-section-title {
    margin-bottom: 0.45rem;
    padding-bottom: 0.25rem;
}

.portal-auth-page .form-label {
    margin-bottom: 0.2rem;
    font-size: 0.8125rem;
}

.portal-auth-page .portal-auth-field .form-control {
    padding-top: 0.32rem;
    padding-bottom: 0.32rem;
    padding-left: 2.35rem;
    padding-right: 1.65rem;
    min-height: 2.125rem;
    font-size: 0.875rem;
}

.portal-auth-page .portal-auth-field .portal-auth-field__icon {
    height: 2.125rem;
    left: 0.85rem;
    font-size: 1rem;
}

.portal-auth-page .portal-auth-credential-panel .mb-3 {
    margin-bottom: 0.45rem !important;
}

.portal-auth-page .portal-auth-register-form .row {
    --bs-gutter-y: 0.4rem;
    --bs-gutter-x: 0.5rem;
}

.portal-auth-page .portal-auth-register-form .form-text {
    margin-top: 0.15rem !important;
    line-height: 1.25;
}

@media (max-width: 1199.98px) {
    .portal-auth-page .portal-auth-workspace.card-body {
        padding: 0.65rem 0.75rem !important;
    }
}

@media (min-width: 1200px) {
    .portal-auth-page .portal-auth-workspace.card-body {
        padding: 0.75rem 0.95rem !important;
    }
}

.portal-auth-page .portal-auth-shell .portal-auth-hero .card-body {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.portal-auth-page .portal-auth-hero > .card-body {
    flex: 1 1 auto;
    min-height: 0;
}

/* Auth — modern professional right column (forms, stepper, actions) */
.portal-auth-shell .portal-auth-col-form {
    background: linear-gradient(165deg, #eef1f6 0%, #e4e9f1 40%, #eceff4 100%);
}

.portal-auth-shell .portal-auth-workspace {
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.portal-auth-slot-header {
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.portal-auth-slot-title {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: clamp(1.2rem, 2.2vw, 1.45rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    color: #0f172a;
    line-height: 1.2;
}

.portal-auth-form-surface {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.1);
    border-radius: 0.75rem;
    padding: 1.35rem 1.4rem 1.2rem;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.05),
        0 6px 24px rgba(15, 23, 42, 0.07);
}

.portal-auth-shell .portal-auth-credential-panel.portal-auth-form-surface {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.1);
    border-radius: 0.75rem;
    padding: 1.35rem 1.4rem 1.15rem;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.05),
        0 6px 24px rgba(15, 23, 42, 0.07);
}

.portal-auth-page .portal-auth-shell .portal-auth-workspace .portal-auth-steptrack-wrap {
    margin-bottom: 1rem !important;
    padding: 0.85rem 1rem 1rem !important;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.625rem;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

.portal-auth-shell .portal-auth-workspace .portal-auth-field .form-control {
    border-radius: 0.625rem;
    border: 1px solid rgba(15, 23, 42, 0.12);
    min-height: 2.5rem;
    padding: 0.5rem 0.75rem 0.5rem 2.55rem;
    font-size: 0.9rem;
    line-height: 1.45;
    background-color: #fbfcfe;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.portal-auth-shell .portal-auth-workspace .portal-auth-field .form-control:hover {
    border-color: rgba(96, 36, 130, 0.28);
}

.portal-auth-shell .portal-auth-workspace .portal-auth-field .form-control:focus {
    border-color: rgba(96, 36, 130, 0.55);
    background-color: #fff;
    box-shadow:
        inset 0 1px 2px rgba(15, 23, 42, 0.03),
        0 0 0 3px rgba(96, 36, 130, 0.14);
}

.portal-auth-shell .portal-auth-workspace .portal-auth-field .portal-auth-field__icon {
    height: 2.5rem;
    left: 0.9rem;
    color: #64748b;
    font-size: 1.05rem;
}

.portal-auth-shell .portal-auth-workspace .form-label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #334155;
    letter-spacing: 0.01em;
}

.portal-auth-shell .portal-auth-workspace .portal-form-section-title {
    color: #64748b;
    border-bottom-color: rgba(15, 23, 42, 0.08);
    letter-spacing: 0.11em;
}

.portal-auth-shell .portal-auth-workspace .portal-auth-steptrack__rail {
    background-color: rgba(15, 23, 42, 0.1);
}

.portal-auth-shell .portal-auth-workspace .portal-auth-steptrack__circle--current {
    box-shadow: 0 0 0 3px rgba(96, 36, 130, 0.22);
}

.portal-auth-shell .portal-auth-workspace .btn-primary:not(.btn-link) {
    background-color: var(--ictaz-brand) !important;
    background-image: linear-gradient(180deg, #723092 0%, var(--ictaz-brand) 45%, #521f6f 100%) !important;
    border-color: #4a1c66 !important;
    color: #fff !important;
    font-weight: 600;
    letter-spacing: 0.035em;
    border-radius: 0.625rem !important;
    padding-top: 0.55rem !important;
    padding-bottom: 0.55rem !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.14),
        0 2px 10px rgba(96, 36, 130, 0.3);
}

.portal-auth-shell .portal-auth-workspace .btn-primary:not(:disabled):not(.btn-link):hover {
    background-image: linear-gradient(180deg, #8034a3 0%, #5c2780 48%, #451a5f 100%) !important;
    border-color: #3d1855 !important;
    color: #fff !important;
}

.portal-auth-shell .portal-auth-workspace .btn-primary .spinner-border-sm {
    border-color: rgba(255, 255, 255, 0.45);
    border-right-color: transparent;
}

.portal-auth-shell .portal-auth-workspace .btn-soft-secondary,
.portal-auth-shell .portal-auth-workspace .btn-outline-secondary {
    border-radius: 0.625rem;
    font-weight: 600;
    border-color: rgba(15, 23, 42, 0.14);
}

.portal-auth-shell .portal-auth-workspace .portal-auth-option-well {
    border-radius: 0.625rem;
    background: #f8fafc;
    border-color: rgba(15, 23, 42, 0.1);
}

.portal-auth-shell .portal-auth-workspace .portal-auth-footer-tile {
    border-radius: 0.625rem;
    border-color: rgba(15, 23, 42, 0.12);
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

.portal-auth-shell .portal-auth-workspace .portal-auth-summary-card {
    border-color: rgba(15, 23, 42, 0.12);
    border-radius: 0.625rem;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

/* A-03 / A-04 — KPI strip (member + admin) */
.portal-member-kpi,
.portal-admin-kpi {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.875rem;
    overflow: hidden;
    background: var(--bs-body-bg);
    margin-bottom: 1.5rem;
}

.portal-member-kpi__item,
.portal-admin-kpi__item {
    flex: 1 1 0;
    min-width: 140px;
    padding: 1rem 1.25rem;
    text-align: center;
    border-right: 1px solid var(--bs-border-color);
}

.portal-member-kpi__item:last-child,
.portal-admin-kpi__item:last-child {
    border-right: 0;
}

@media (max-width: 575.98px) {
    .portal-member-kpi__item,
    .portal-admin-kpi__item {
        border-right: 0;
        border-bottom: 1px solid var(--bs-border-color);
        flex: 1 1 100%;
    }

    .portal-member-kpi__item:last-child,
    .portal-admin-kpi__item:last-child {
        border-bottom: 0;
    }
}

.portal-member-kpi__value,
.portal-admin-kpi__value {
    font-size: 1.35rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    color: var(--bs-body-color);
}

.portal-member-kpi__label,
.portal-admin-kpi__label {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    margin-top: 0.35rem;
}

.portal-member-kpi__denom {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--bs-secondary-color);
}

.portal-admin-kpi__hint {
    font-size: 0.75rem;
    color: var(--bs-secondary-color);
    margin-top: 0.35rem;
    line-height: 1.35;
}

.portal-admin-kpi__hint--clip {
    max-width: 14rem;
    margin-left: auto;
    margin-right: auto;
}

/* Admin dashboard — Operations overview stat cards (replaces flat KPI strip on dashboard only) */
.portal-admin-dashboard-kpis .portal-admin-stat-card {
    position: relative;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
    border: 1px solid rgba(15, 23, 42, 0.08) !important;
    box-shadow: 0 0.35rem 1.1rem rgba(15, 23, 42, 0.06);
}

@media (hover: hover) {
    .portal-admin-dashboard-kpis .portal-admin-stat-card:hover {
        border-color: rgba(var(--ictaz-brand-rgb), 0.2) !important;
        box-shadow: 0 0.5rem 1.35rem rgba(15, 23, 42, 0.09);
    }
}

.portal-admin-dashboard-kpis .portal-admin-stat-card::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    z-index: 1;
    border-radius: 0.75rem 0.75rem 0 0;
}

.portal-admin-stat-card--members::before {
    background: linear-gradient(90deg, #0284c7, rgba(2, 132, 199, 0.35));
}

.portal-admin-stat-card--paid::before {
    background: linear-gradient(90deg, var(--ictaz-accent), rgba(var(--ictaz-accent-rgb), 0.4));
}

.portal-admin-stat-card--pending::before {
    background: linear-gradient(90deg, #d97706, rgba(217, 119, 6, 0.38));
}

.portal-admin-stat-card--cpdqueue::before {
    background: linear-gradient(90deg, #4f46e5, rgba(79, 70, 229, 0.35));
}

.portal-admin-stat-card__glyph {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    color: var(--ictaz-brand);
    background: rgba(var(--ictaz-brand-rgb), 0.1);
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.16);
}

.portal-admin-stat-card__glyph > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    font-style: normal;
}

.portal-admin-stat-card--members .portal-admin-stat-card__glyph {
    color: #0284c7;
    background: rgba(2, 132, 199, 0.12);
    border-color: rgba(2, 132, 199, 0.22);
}

.portal-admin-stat-card--paid .portal-admin-stat-card__glyph {
    color: var(--ictaz-accent);
    background: rgba(var(--ictaz-accent-rgb), 0.14);
    border-color: rgba(var(--ictaz-accent-rgb), 0.28);
}

.portal-admin-stat-card--pending .portal-admin-stat-card__glyph {
    color: #b45309;
    background: rgba(217, 119, 6, 0.12);
    border-color: rgba(217, 119, 6, 0.25);
}

.portal-admin-stat-card--cpdqueue .portal-admin-stat-card__glyph {
    color: #4f46e5;
    background: rgba(79, 70, 229, 0.12);
    border-color: rgba(79, 70, 229, 0.22);
}

.portal-admin-stat-card__value {
    font-size: 1.35rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    color: var(--bs-body-color);
}

.portal-admin-stat-card__label {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    margin-top: 0.35rem;
}

.portal-admin-stat-card__hint {
    font-size: 0.75rem;
    color: var(--bs-secondary-color);
    margin-top: 0.35rem;
    line-height: 1.35;
}

.portal-member-snapshot {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.875rem;
    background: linear-gradient(145deg, var(--bs-tertiary-bg) 0%, var(--bs-body-bg) 55%);
    padding: 1.25rem 1.35rem;
}

.portal-member-snapshot__avatar {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.1rem;
    background: rgba(var(--ictaz-brand-rgb), 0.12);
    color: var(--ictaz-brand);
}

.portal-member-snapshot__row {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.portal-member-snapshot__meta {
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
    line-height: 1.45;
}

.portal-member-snapshot__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.65rem;
    padding: 0;
    margin-bottom: 0;
}

.portal-member-snapshot__chips li {
    list-style: none;
}

/* Hub tiles — top accent + masthead */
.portal-member-hub-card {
    position: relative;
    transition: box-shadow 0.22s ease, transform 0.22s ease;
}

@media (hover: hover) {
    .portal-member-hub-card:hover {
        box-shadow: 0 0.65rem 2rem rgba(var(--ictaz-brand-rgb), 0.1) !important;
    }
}

.portal-member-hub-card::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    z-index: 1;
    border-radius: 0.75rem 0.75rem 0 0;
}

.portal-member-hub-card--cpd::before {
    background: linear-gradient(90deg, var(--ictaz-brand), rgba(var(--ictaz-brand-rgb), 0.35));
}

.portal-member-hub-card--directory::before {
    background: linear-gradient(90deg, #0284c7, rgba(2, 132, 199, 0.38));
}

.portal-member-hub-card--finance::before {
    background: linear-gradient(90deg, var(--ictaz-accent), rgba(var(--ictaz-accent-rgb), 0.4));
}

.portal-member-hub-card--profile::before {
    background: linear-gradient(90deg, #6366f1, rgba(99, 102, 241, 0.35));
}

.portal-member-hub-card--catalog::before {
    background: linear-gradient(90deg, #0f766e, rgba(15, 118, 110, 0.38));
}

.portal-admin-workspaces {
    margin-bottom: 0;
}

.portal-admin-workspaces--tiles .portal-admin-workspaces__title {
    letter-spacing: -0.01em;
}

.portal-admin-workspaces--tiles .portal-admin-workspace-tile.card {
    border-radius: 0.9rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 0.35rem 1.15rem rgba(15, 23, 42, 0.07);
    transition: box-shadow 0.22s ease, transform 0.22s ease, border-color 0.22s ease;
    overflow: visible;
}

@media (hover: hover) {
    .portal-admin-workspaces--tiles .portal-admin-workspace-tile.card:hover {
        border-color: rgba(var(--ictaz-brand-rgb), 0.22);
        box-shadow: 0 0.55rem 1.65rem rgba(15, 23, 42, 0.1);
    }
}

.portal-admin-workspaces--tiles .portal-admin-workspace-tile .card-body {
    min-height: 0;
}

.portal-admin-workspaces--tiles .portal-member-hub-card__masthead .avatar-title {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.portal-admin-workspaces--tiles .portal-member-hub-card__masthead .avatar-title > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    font-style: normal;
}

.portal-admin-workspaces--tiles .portal-member-hub-card--profile .portal-member-hub-card__masthead .avatar-title {
    background: rgba(99, 102, 241, 0.12) !important;
    color: #4f46e5 !important;
}

/* Admin workspace tiles — readable meta (avoid cramped 2-col + clipped footers) */
.portal-admin-workspaces--tiles .portal-admin-workspace-tile .portal-member-meta-dl {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.2rem 0;
    row-gap: 0;
    font-size: 0.875rem;
    line-height: 1.5;
    min-height: 0;
}

.portal-admin-workspaces--tiles .portal-admin-workspace-tile .portal-member-meta-dl dt {
    margin-top: 0.9rem;
    color: var(--bs-body-color);
    opacity: 0.72;
}

.portal-admin-workspaces--tiles .portal-admin-workspace-tile .portal-member-meta-dl dt:first-of-type {
    margin-top: 0;
}

.portal-admin-workspaces--tiles .portal-admin-workspace-tile .portal-member-meta-dl dd {
    margin-bottom: 0.35rem;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.portal-admin-workspaces--tiles .portal-admin-workspace-tile .portal-member-meta-dl dd.text-muted,
.portal-admin-workspaces--tiles .portal-admin-workspace-tile .portal-member-meta-dl dd.text-body-secondary {
    color: var(--bs-body-color) !important;
    opacity: 0.78;
}

/* A-06 — admin member dossier (show) reuses KPI, snapshot, ledger tables */
.portal-admin-registry-filters {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.875rem;
    padding: 1.25rem 1.35rem;
    background: var(--bs-body-bg);
}

.portal-admin-registry {
    position: relative;
}

.portal-registry-filter-banner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-radius: 0.875rem;
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.22);
    background: rgba(var(--ictaz-brand-rgb), 0.06);
}

.portal-registry-filter-banner__body {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    min-width: 0;
}

.portal-registry-filter-banner__title {
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 0.25rem;
    color: var(--bs-body-color);
}

.portal-registry-filter-banner__text {
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
    line-height: 1.45;
}

.portal-registry-status-pills li {
    display: inline-block;
}

.portal-registry-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.4rem 0.95rem;
    border-radius: 999px;
    border: 1px solid var(--bs-border-color);
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
    transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

@media (hover: hover) {
    .portal-registry-pill:hover {
        border-color: rgba(var(--ictaz-brand-rgb), 0.35);
        color: var(--ictaz-brand);
    }
}

.portal-registry-pill.is-active {
    border-color: rgba(var(--ictaz-brand-rgb), 0.45);
    background: rgba(var(--ictaz-brand-rgb), 0.1);
    color: var(--ictaz-brand);
}

.portal-registry-pill:focus-visible {
    outline: 0;
    border-color: rgba(var(--ictaz-brand-rgb), 0.55);
    box-shadow: 0 0 0 0.2rem rgba(var(--ictaz-brand-rgb), 0.2);
}

.portal-admin-registry-results-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem 2rem;
    font-size: 0.8125rem;
    line-height: 1.4;
}

.portal-admin-registry-results-meta > div {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.25rem 0.65rem;
    align-items: baseline;
}

.portal-admin-registry-results-meta dt {
    margin: 0;
    font-weight: 700;
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-registry-results-meta dd {
    margin: 0;
    font-variant-numeric: tabular-nums;
    color: var(--bs-body-color);
}

.portal-admin-registry-org {
    max-width: 11rem;
    vertical-align: middle;
}

/* A-04 — admin secondary tools */
.portal-admin-tool-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    height: 100%;
    padding: 1.1rem 1.2rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.875rem;
    text-decoration: none;
    color: inherit;
    background: var(--bs-body-bg);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

@media (hover: hover) {
    .portal-admin-tool-card:hover {
        border-color: rgba(var(--ictaz-brand-rgb), 0.35);
        box-shadow: 0 0.35rem 1.15rem rgba(var(--ictaz-brand-rgb), 0.08);
        background-color: var(--bs-body-bg);
    }
}

.portal-admin-tool-card__icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    flex-shrink: 0;
    background: rgba(var(--ictaz-brand-rgb), 0.1);
    color: var(--ictaz-brand);
}

.portal-admin-tool-card__title {
    font-size: 0.9375rem;
    font-weight: 600;
    margin: 0 0 0.25rem;
    color: var(--bs-body-color);
}

.portal-admin-tool-card__meta {
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
    margin: 0;
    line-height: 1.45;
}

.portal-admin-tool-card__chevron {
    margin-left: auto;
    opacity: 0.45;
    flex-shrink: 0;
    font-size: 1.1rem;
}

.portal-admin-tool-card:focus-visible {
    outline: 0;
    border-color: rgba(var(--ictaz-brand-rgb), 0.55);
    box-shadow: 0 0 0 0.2rem rgba(var(--ictaz-brand-rgb), 0.22);
}

.portal-admin-ledger {
    position: relative;
}

.portal-admin-ledger::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    z-index: 2;
    border-radius: 0.75rem 0.75rem 0 0;
    background: linear-gradient(90deg, rgba(var(--ictaz-brand-rgb), 0.55), rgba(var(--ictaz-accent-rgb), 0.45));
}

.portal-admin-kpi__item:focus-within {
    background-color: var(--bs-tertiary-bg);
}

.portal-admin-ledger-ref dd {
    margin: 0;
}

.portal-admin-ledger-ref dd + dt {
    margin-top: 0;
}

.portal-admin-header-callout {
    max-width: 22rem;
}

/* A-06 — admin member dossier (show): document shell, anchor nav, KPI glyphs, ledger toolbars */
/* A-07 — admin member edit (registry editor): form feedback spacing, toolbar, select affordance */
.portal-admin-edit .portal-auth-field + .invalid-feedback,
.portal-admin-edit .portal-auth-field--select ~ .invalid-feedback,
.portal-admin-edit .form-select + .invalid-feedback {
    margin-top: 0.25rem;
}

.portal-auth-field--select .form-select {
    padding-left: 2.65rem;
    min-height: calc(1.5em + 0.75rem + 2px);
}

.portal-auth-field--select .portal-auth-field__icon {
    position: absolute;
    left: 1rem;
    top: 0;
    height: calc(1.5em + 0.75rem + 2px);
    display: flex;
    align-items: center;
    z-index: 3;
    color: var(--bs-secondary-color);
    pointer-events: none;
    font-size: 1.1rem;
    line-height: 1;
}

.portal-auth-field--select:has(.form-select-lg) .portal-auth-field__icon {
    height: calc(1.5em + 1rem + 2px);
}

.portal-admin-edit-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    padding: 1rem 1.15rem;
    border-radius: 0.875rem;
    border: 1px solid var(--bs-border-color);
    background: linear-gradient(145deg, rgba(var(--ictaz-brand-rgb), 0.05) 0%, var(--bs-body-bg) 55%);
    box-shadow: 0 0.25rem 0.85rem rgba(var(--ictaz-brand-rgb), 0.05);
}

.portal-admin-edit-toolbar .portal-member-snapshot--edit {
    flex: 1 1 16rem;
    min-width: 0;
}

.portal-admin-edit-toolbar__facts {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.75rem;
    align-items: flex-end;
    font-size: 0.8125rem;
    line-height: 1.35;
}

@media (min-width: 768px) {
    .portal-admin-edit-toolbar__facts {
        margin-left: auto;
        justify-content: flex-end;
    }
}

.portal-admin-edit-toolbar__fact {
    display: grid;
    gap: 0.12rem;
    text-align: left;
}

@media (min-width: 768px) {
    .portal-admin-edit-toolbar__fact {
        text-align: right;
    }
}

.portal-admin-edit-toolbar__fact dt {
    margin: 0;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-edit-toolbar__fact dd {
    margin: 0;
    font-weight: 600;
    color: var(--bs-body-color);
    font-variant-numeric: tabular-nums;
}

.portal-member-snapshot--edit {
    padding: 0.85rem 1rem;
}

.portal-member-snapshot--edit .portal-member-snapshot__avatar {
    width: 2.75rem;
    height: 2.75rem;
    font-size: 1rem;
    border-radius: 0.65rem;
}

.portal-admin-edit-error-summary__list {
    margin: 0;
    padding-left: 1.15rem;
}

.portal-admin-edit-error-summary__list a {
    color: inherit;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.portal-admin-edit-error-summary__list a:focus-visible {
    outline: 0;
    border-radius: 0.2rem;
    box-shadow: 0 0 0 0.2rem rgba(var(--ictaz-brand-rgb), 0.35);
}

.portal-admin-edit-actions {
    position: relative;
}

.portal-admin-edit-actions::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    z-index: 2;
    border-radius: 0.75rem 0.75rem 0 0;
    background: linear-gradient(90deg, rgba(var(--ictaz-brand-rgb), 0.55), rgba(var(--ictaz-accent-rgb), 0.45));
}

.portal-admin-edit-labelrow {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
    margin-bottom: 0.35rem;
}

.portal-admin-edit-labelrow .form-label {
    margin-bottom: 0;
}

.portal-admin-edit-req {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    white-space: nowrap;
}

.portal-admin-edit-field {
    margin-bottom: 0.15rem;
}

.portal-admin-edit-schema {
    flex-shrink: 0;
    align-self: flex-start;
    margin-top: 0.15rem;
    padding: 0.2rem 0.55rem;
    border-radius: 0.4rem;
    border: 1px solid var(--bs-border-color);
    background: var(--bs-tertiary-bg);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: lowercase;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    color: var(--bs-secondary-color);
}

.portal-admin-edit-toolbar__fact--wide {
    flex: 1 1 100%;
}

@media (min-width: 768px) {
    .portal-admin-edit-toolbar__fact--wide {
        flex: 1 1 12rem;
        max-width: min(100%, 20rem);
    }
}

.portal-admin-edit-toolbar__fact--wide dd {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-weight: 500;
    font-size: 0.8125rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (min-width: 992px) {
    .portal-admin-edit-actions {
        position: sticky;
        bottom: 1rem;
        z-index: 20;
    }

    .portal-admin-edit-actions .card-body {
        background-color: var(--bs-body-bg);
        box-shadow: 0 0.4rem 1.35rem rgba(15, 17, 20, 0.08);
    }
}

.portal-admin-dossier {
    position: relative;
}

.portal-admin-dossier-section {
    scroll-margin-top: 5.75rem;
}

.portal-admin-dossier-nav {
    padding-bottom: 0.35rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.portal-admin-dossier-nav__track {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    padding: 0.1rem 0;
}

@media (max-width: 575.98px) {
    .portal-admin-dossier-nav__track {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
        padding-bottom: 0.45rem;
        margin-bottom: -0.1rem;
        mask-image: linear-gradient(90deg, #000 0%, #000 calc(100% - 1.25rem), transparent 100%);
    }
}

.portal-admin-dossier-alerts {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.portal-admin-dossier-alert {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 0.9rem 1.1rem;
    border-radius: 0.75rem;
    border: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
    box-shadow: 0 0.2rem 0.65rem rgba(15, 17, 20, 0.04);
}

.portal-admin-dossier-alert__glyph {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
}

.portal-admin-dossier-alert--danger {
    border-color: rgba(220, 53, 69, 0.35);
    background: rgba(220, 53, 69, 0.06);
}

.portal-admin-dossier-alert--danger .portal-admin-dossier-alert__glyph {
    color: var(--bs-danger);
    background: rgba(220, 53, 69, 0.12);
}

.portal-admin-dossier-alert--info {
    border-color: rgba(var(--ictaz-brand-rgb), 0.32);
    background: rgba(var(--ictaz-brand-rgb), 0.06);
}

.portal-admin-dossier-alert--info .portal-admin-dossier-alert__glyph {
    color: var(--ictaz-brand);
    background: rgba(var(--ictaz-brand-rgb), 0.12);
}

.portal-admin-dossier-alert__title {
    margin: 0 0 0.2rem;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-dossier-alert__body {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--bs-body-color);
}

.portal-admin-dossier-band {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0.35rem 0 0.35rem 1rem;
    border-left: 3px solid rgba(var(--ictaz-brand-rgb), 0.55);
    border-radius: 0.35rem 0 0 0.35rem;
    background: linear-gradient(90deg, rgba(var(--ictaz-brand-rgb), 0.06), transparent 55%);
}

.portal-admin-dossier-band__shell {
    width: 100%;
    min-width: 0;
}

.portal-admin-dossier-band__meta {
    margin-top: 0.95rem;
    padding-top: 0.95rem;
    border-top: 1px solid rgba(var(--ictaz-brand-rgb), 0.14);
    display: grid;
    gap: 0.55rem;
}

.portal-admin-dossier-band__meta-row {
    display: grid;
    grid-template-columns: minmax(6.5rem, 10rem) minmax(0, 1fr);
    gap: 0.5rem 1.25rem;
    align-items: start;
}

.portal-admin-dossier-band__meta dt {
    margin: 0;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-dossier-band__meta dd {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-body-color);
}

@media (max-width: 575.98px) {
    .portal-admin-dossier-band__meta-row {
        grid-template-columns: 1fr;
    }
}

.portal-admin-dossier-band__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--bs-body-color);
}

.portal-admin-dossier-band__lede {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

.portal-admin-dossier-head-meta {
    margin: 0;
    display: grid;
    grid-template-columns: auto auto;
    gap: 0.25rem 0.85rem;
    justify-content: start;
    text-align: left;
    font-size: 0.8125rem;
    line-height: 1.4;
}

.portal-admin-dossier-head-meta dt {
    margin: 0;
    font-weight: 700;
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-dossier-head-meta dd {
    margin: 0;
    font-variant-numeric: tabular-nums;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-weight: 500;
    color: var(--bs-body-color);
}

.portal-admin-kpi--dossier .portal-admin-kpi__item {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    text-align: left;
    padding-top: 1.1rem;
    padding-bottom: 1.1rem;
}

.portal-admin-kpi--dossier .portal-admin-kpi__glyph {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 0.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.2rem;
    color: var(--ictaz-brand);
    background: rgba(var(--ictaz-brand-rgb), 0.1);
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.16);
}

.portal-admin-kpi--dossier .portal-admin-kpi__glyph > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    font-style: normal;
}

.portal-admin-kpi--dossier .portal-admin-kpi__body {
    flex: 1 1 auto;
    min-width: 0;
}

.portal-admin-kpi--dossier .portal-admin-kpi__value {
    margin-top: 0.15rem;
}

.portal-admin-kpi--dossier .portal-admin-kpi__value--plain {
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.35;
    font-variant-numeric: normal;
    color: var(--bs-body-color);
}

.portal-admin-kpi--dossier .portal-admin-kpi__label {
    margin-top: 0.2rem;
}

.portal-admin-kpi__micro {
    font-size: 0.6875rem;
    line-height: 1.35;
    color: var(--bs-secondary-color);
    margin-top: 0.35rem;
}

.portal-member-snapshot--dossier {
    border-width: 1px;
    box-shadow: 0 0.35rem 1.1rem rgba(var(--ictaz-brand-rgb), 0.06);
}

.portal-admin-dossier-snapshot-foot {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.2rem 0.65rem;
    font-size: 0.75rem;
    line-height: 1.35;
    padding-top: 0.75rem;
    border-top: 1px dashed var(--bs-border-color);
}

.portal-admin-dossier-snapshot-foot dt {
    margin: 0;
    font-weight: 700;
    font-size: 0.62rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-dossier-snapshot-foot dd {
    margin: 0;
    color: var(--bs-body-color);
    font-variant-numeric: tabular-nums;
}

.portal-admin-dossier-card {
    transition: box-shadow 0.22s ease, border-color 0.22s ease;
}

@media (hover: hover) {
    .portal-admin-dossier-card:hover {
        box-shadow: 0 0.5rem 1.5rem rgba(var(--ictaz-brand-rgb), 0.08) !important;
    }
}

.portal-admin-dossier-cardhead {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.portal-admin-dossier-cardhead--flush {
    align-items: center;
}

.portal-admin-dossier-cardhead__lead {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    min-width: 0;
}

.portal-admin-dossier-cardhead__lede {
    margin: 0.25rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

.portal-admin-dossier-cardhead__icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.1rem;
    color: var(--ictaz-brand);
    background: rgba(var(--ictaz-brand-rgb), 0.1);
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.14);
}

.portal-admin-dossier-cardhead__icon > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    font-style: normal;
}

/* Dossier card header: transport / ledger convention chips (replaces ad-hoc flex utilities) */
.portal-admin-dossier-cardhead__schemas {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.portal-admin-ledger-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    background: linear-gradient(180deg, rgba(var(--ictaz-brand-rgb), 0.045), transparent 85%);
}

.portal-admin-ledger-toolbar__eyebrow {
    display: block;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    margin-bottom: 0.2rem;
}

.portal-admin-ledger-toolbar__title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--bs-body-color);
}

.portal-admin-ledger-toolbar__facts {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.75rem;
    font-size: 0.8125rem;
    line-height: 1.35;
}

.portal-admin-ledger-toolbar__fact {
    display: grid;
    gap: 0.15rem;
}

.portal-admin-ledger-toolbar__facts dt {
    margin: 0;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-ledger-toolbar__facts dd {
    margin: 0;
    font-weight: 600;
    color: var(--bs-body-color);
}

.portal-admin-dossier-ledger.portal-admin-ledger::before {
    height: 4px;
}

.portal-empty-state--dossier {
    padding-top: 2.75rem;
    padding-bottom: 2.75rem;
}

.portal-admin-amount {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.portal-admin-amount__ccy {
    display: inline-block;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    margin-right: 0.4rem;
    vertical-align: 0.05em;
}

.portal-admin-amount__num {
    font-weight: 600;
    color: var(--bs-body-color);
}

.portal-admin-dossier-ledger .table-responsive {
    max-height: min(70vh, 38rem);
    overflow: auto;
}

.portal-admin-dossier-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    box-shadow: inset 0 -1px 0 var(--bs-border-color);
}

.portal-admin-dossier-table thead.table-light th {
    background-color: var(--bs-secondary-bg) !important;
}

.portal-data-null {
    color: var(--bs-secondary-color);
    letter-spacing: 0.02em;
}

.portal-admin-cycle-summary {
    margin: 0;
    display: grid;
    grid-template-columns: auto auto;
    gap: 0.25rem 0.75rem;
    justify-content: end;
    text-align: right;
    font-size: 0.8125rem;
    line-height: 1.4;
}

.portal-admin-cycle-summary dt {
    margin: 0;
    font-weight: 700;
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-cycle-summary dd {
    margin: 0;
    font-variant-numeric: tabular-nums;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-weight: 500;
    color: var(--bs-body-color);
}

.portal-member-hub-card__masthead {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.portal-member-meta-dl {
    display: grid;
    grid-template-columns: minmax(5.5rem, auto) 1fr;
    gap: 0.35rem 1rem;
    font-size: 0.8125rem;
    line-height: 1.45;
    margin-bottom: 0;
}

.portal-member-meta-dl dt {
    margin: 0;
    font-weight: 600;
    color: var(--bs-secondary-color);
    text-transform: uppercase;
    font-size: 0.6875rem;
    letter-spacing: 0.06em;
}

.portal-member-meta-dl dd {
    margin: 0;
    color: var(--bs-body-color);
}

.portal-progress-compact {
    height: 10px;
}

.portal-member-ledger-table caption {
    caption-side: top;
}

.portal-empty-state {
    text-align: center;
    padding: 2.5rem 1.25rem;
}

.portal-empty-state__icon {
    width: 4rem;
    height: 4rem;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--bs-tertiary-bg);
}

.portal-empty-state__copy {
    max-width: 22rem;
    margin-left: auto;
    margin-right: auto;
}

.portal-profile-verify-callout {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
}

.portal-profile-verify-callout__icon {
    flex-shrink: 0;
    font-size: 1.35rem;
    color: var(--bs-warning);
    margin-top: 0.1rem;
}

.portal-danger-callout {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
}

.portal-member-metric-caption {
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

.portal-member-callout {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin-top: 0.75rem;
    padding: 0.75rem 0.85rem;
    border-radius: 0.625rem;
    border: 1px solid var(--bs-border-color);
    background: var(--bs-tertiary-bg);
}

.portal-member-callout--warning {
    border-color: rgba(234, 179, 8, 0.45);
    background: rgba(234, 179, 8, 0.09);
}

.portal-member-callout__icon {
    flex-shrink: 0;
    font-size: 1.25rem;
    color: #b45309;
    margin-top: 0.05rem;
}

.portal-member-callout__label {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    margin-bottom: 0.2rem;
    line-height: 1.35;
}

.portal-member-pending-staff-notice {
    word-break: break-word;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--bs-secondary-color);
}

/* B-11 — pending activation: head rail, main workspace, sidebar actions, logout */
.portal-member-pending-page {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

.portal-member-pending-page__grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 1fr;
    grid-template-areas:
        "aside"
        "main";
}

@media (min-width: 1200px) {
    .portal-member-pending-page__grid {
        grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
        grid-template-areas: "main aside";
        align-items: start;
    }

    .portal-member-pending-sidebar {
        position: sticky;
        top: 1rem;
    }
}

.portal-member-pending-page__main {
    grid-area: main;
    min-width: 0;
}

.portal-member-pending-page__aside {
    grid-area: aside;
    min-width: 0;
}

.portal-member-pending-surface.card,
.portal-member-dashboard-surface.card {
    border: 0;
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 0.125rem 0.25rem rgba(15, 17, 20, 0.06);
}

.portal-member-pending-head {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 992px) {
    .portal-member-pending-head {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: flex-start;
        justify-content: space-between;
    }
}

.portal-member-pending-head__primary {
    min-width: 0;
    flex: 1 1 auto;
}

.portal-member-pending-head__rail {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    flex-shrink: 0;
}

@media (min-width: 992px) {
    .portal-member-pending-head__rail {
        align-items: flex-end;
        text-align: right;
    }
}

.portal-member-pending-breadcrumb-nav {
    margin-bottom: 0.5rem;
}

.portal-member-pending-breadcrumb {
    margin-bottom: 0;
    font-size: 0.8125rem;
}

.portal-member-pending-breadcrumb__link {
    color: inherit;
    text-decoration: none;
}

@media (hover: hover) {
    .portal-member-pending-breadcrumb__link:hover {
        color: var(--ictaz-brand);
        text-decoration: underline;
    }
}

.portal-member-pending-breadcrumb__link:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.35);
    outline-offset: 2px;
    border-radius: 0.2rem;
}

.portal-member-pending-eyebrow {
    margin-bottom: 0.5rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-member-pending-principal {
    margin: 0;
    font-family: var(--bs-font-monospace);
    font-size: 0.8125rem;
}

.portal-member-pending-title {
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 0.35rem;
    color: var(--bs-body-color);
}

.portal-member-pending-lede {
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--bs-secondary-color);
    margin: 0 0 0.75rem;
    max-width: 40rem;
}

.portal-member-pending-mode-eyebrow {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-member-pending-modescap {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.85rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-variant-numeric: tabular-nums;
    color: rgba(var(--ictaz-brand-rgb), 0.95);
    background: rgba(var(--ictaz-brand-rgb), 0.1);
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.22);
    border-radius: 0.45rem;
}

.portal-member-pending-statuscap {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.85rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-warning-text-emphasis);
    background: rgba(var(--bs-warning-rgb), 0.12);
    border: 1px solid rgba(var(--bs-warning-rgb), 0.28);
    border-radius: 0.45rem;
}

.portal-member-pending-main__header {
    padding: 1.25rem 1.25rem 1rem;
    background: transparent;
    border-bottom: 1px solid var(--bs-border-color);
}

.portal-member-pending-hero {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.portal-member-pending-hero__glyph {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    color: var(--bs-warning-text-emphasis);
    background: rgba(var(--bs-warning-rgb), 0.12);
    border: 1px solid rgba(var(--bs-warning-rgb), 0.22);
}

.portal-member-pending-hero__body {
    min-width: 0;
}

.portal-member-pending-main__title {
    margin: 0 0 0.5rem;
    font-size: 1.0625rem;
    font-weight: 600;
    color: var(--bs-body-color);
}

.portal-member-pending-main__lede {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.55;
    color: var(--bs-secondary-color);
}

.portal-member-pending-main__body {
    padding: 1.25rem 1.25rem 1.5rem;
}

.portal-member-pending-timeline-heading {
    margin: 0 0 1rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-member-pending-timeline-panel.portal-onboarding-panel {
    margin-bottom: 0;
}

.portal-member-pending-timeline {
    margin-bottom: 0;
    padding-left: 0;
}

.portal-member-pending-timeline__state {
    font-weight: 600;
    color: var(--bs-body-color);
}

.portal-member-pending-timeline .portal-member-pending-timeline__item {
    display: flex;
    gap: 0.85rem;
    padding-bottom: 1.15rem;
}

.portal-member-pending-timeline .portal-member-pending-timeline__item:last-child {
    padding-bottom: 0;
}

.portal-member-pending-timeline .portal-onboarding-timeline__marker {
    flex-shrink: 0;
}

.portal-member-pending-timeline__copy {
    min-width: 0;
}

.portal-member-pending-timeline__title {
    margin: 0 0 0.25rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--bs-body-color);
}

.portal-member-pending-timeline__text {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--bs-secondary-color);
}

.portal-member-pending-b11 {
    margin-top: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.portal-member-pending-b11__block {
    margin-top: 0;
}

.portal-member-pending-b11__body {
    min-width: 0;
}

.portal-member-pending-b11 .portal-member-callout__label {
    margin-bottom: 0.35rem;
}

.portal-member-pending-b11__copy {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--bs-secondary-color);
}

.portal-member-pending-sidebar__header {
    padding: 1rem 1.25rem;
    background: transparent;
    border-bottom: 1px solid var(--bs-border-color);
}

.portal-member-pending-sidebar__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--bs-body-color);
}

.portal-member-pending-action-nav {
    margin: 0;
}

.portal-member-pending-action-stack li {
    margin: 0;
}

.portal-member-pending-action-stack {
    display: flex;
    flex-direction: column;
}

.portal-member-pending-action {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.9rem 1.25rem;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--bs-border-color);
    transition: background-color 0.15s ease;
}

.portal-member-pending-action-stack li:last-child .portal-member-pending-action {
    border-bottom: none;
}

@media (hover: hover) {
    .portal-member-pending-action:hover {
        background: rgba(var(--ictaz-brand-rgb), 0.04);
    }
}

.portal-member-pending-action__glyph {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.portal-member-pending-action__glyph--primary {
    color: var(--ictaz-brand);
    background: rgba(var(--ictaz-brand-rgb), 0.1);
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.16);
}

.portal-member-pending-action__glyph--info {
    color: var(--bs-info-text-emphasis);
    background: rgba(var(--bs-info-rgb), 0.1);
    border: 1px solid rgba(var(--bs-info-rgb), 0.22);
}

.portal-member-pending-action__text {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.portal-member-pending-action__label {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--bs-body-color);
}

.portal-member-pending-action__hint {
    font-size: 0.75rem;
    line-height: 1.35;
    color: var(--bs-secondary-color);
}

.portal-member-pending-action__chevron {
    flex-shrink: 0;
    font-size: 1rem;
    color: var(--bs-secondary-color);
}

.portal-member-pending-sidebar__footer {
    margin: 0;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--bs-border-color);
    background: var(--bs-tertiary-bg);
}

.portal-member-pending-logout {
    margin: 0;
}

.portal-member-pending-logout__submit {
    display: block;
    width: 100%;
    padding: 0.65rem 1rem;
    font-size: 0.9375rem;
    font-weight: 600;
    font-family: inherit;
    line-height: 1.25;
    color: var(--bs-body-color);
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 0.65rem;
    cursor: pointer;
    transition:
        border-color 0.15s ease,
        background-color 0.15s ease;
}

.portal-member-pending-logout__submit:hover {
    border-color: rgba(var(--ictaz-brand-rgb), 0.28);
    background: var(--bs-body-bg);
}

.portal-member-pending-logout__submit:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.35);
    outline-offset: 2px;
}

.portal-b11-notice-textarea {
    min-height: 9rem;
    resize: vertical;
}

.portal-b11-notice-hint {
    margin-top: 0.5rem;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

h3.portal-member-callout__label {
    font-size: 0.6875rem;
}

/* B-12 — member overview dashboard: hero head, KPI strip, workspace grid, ledger */
.portal-member-dashboard-page {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-bottom: 2rem;
}

.portal-member-dashboard-overview.card {
    border-radius: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.05),
        0 16px 48px rgba(96, 36, 130, 0.07);
    overflow: hidden;
}

.portal-member-dashboard-overview__header {
    padding: 1.25rem 1.35rem 0;
    background: linear-gradient(135deg, rgba(var(--ictaz-brand-rgb), 0.07) 0%, transparent 55%);
}

.portal-member-dashboard-overview__title {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--bs-body-color);
}

.portal-member-dashboard-overview__subtitle {
    margin: 0;
    max-width: 46rem;
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--bs-secondary-color);
}

.portal-member-dashboard-overview__body {
    padding: 1rem 1.35rem 1.35rem;
}

.portal-member-dashboard-statgrid {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    height: 100%;
}

.portal-member-dashboard-statcard {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.35rem;
    padding: 1rem 1.1rem;
    border-radius: 0.85rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: linear-gradient(180deg, #fff 0%, var(--bs-secondary-bg) 100%);
    min-height: 4.75rem;
}

[data-bs-theme="dark"] .portal-member-dashboard-statcard {
    background: rgba(255, 255, 255, 0.04);
    border-color: var(--bs-border-color);
}

.portal-member-dashboard-statcard__value {
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.15;
    color: #0f172a;
}

[data-bs-theme="dark"] .portal-member-dashboard-statcard__value {
    color: var(--bs-emphasis-color);
}

.portal-member-dashboard-statcard__value--split {
    font-variant-numeric: tabular-nums;
}

.portal-member-dashboard-statcard__sep {
    font-weight: 600;
    color: var(--bs-secondary-color);
    margin: 0 0.1em;
}

.portal-member-dashboard-statcard__value--mono {
    font-size: 1.05rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-weight: 700;
}

.portal-member-dashboard-statcard__label {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-member-dashboard-chart-card {
    display: flex;
    flex-direction: column;
    padding: 1rem 1rem 0.5rem;
    border-radius: 0.85rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: var(--bs-body-bg);
    min-height: 100%;
}

[data-bs-theme="dark"] .portal-member-dashboard-chart-card {
    border-color: var(--bs-border-color);
}

.portal-member-dashboard-chart-card__title {
    margin: 0 0 0.25rem;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-body-color);
}

.portal-member-dashboard-chart-card__hint {
    margin: 0 0 0.35rem;
    font-size: 0.75rem;
    line-height: 1.4;
    color: var(--bs-secondary-color);
}

.portal-member-dashboard-chart {
    flex: 1 1 auto;
    min-height: 260px;
}

.portal-member-dashboard-chart--bars {
    min-height: 220px;
}

.portal-member-dashboard-workspaces-head {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.portal-member-dashboard-workspaces-title {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--bs-body-color);
}

.portal-member-dashboard-workspaces-lede {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
    max-width: 40rem;
}

.portal-member-dashboard-head {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 0.15rem 0 0.35rem;
}

@media (min-width: 992px) {
    .portal-member-dashboard-head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
        column-gap: 2rem;
        row-gap: 0.65rem;
        align-items: start;
    }

    .portal-member-dashboard-breadcrumb-nav {
        grid-column: 1;
        grid-row: 1;
    }

    .portal-member-dashboard-head__primary {
        grid-column: 1;
        grid-row: 2;
    }

    .portal-member-dashboard-head__rail {
        grid-column: 2;
        grid-row: 1 / span 2;
        align-self: center;
        justify-self: end;
    }
}

.portal-member-dashboard-head__primary {
    min-width: 0;
    flex: 1 1 auto;
}

.portal-member-dashboard-head__rail {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.45rem;
    flex-shrink: 0;
    padding: 0.35rem 0.65rem 0.35rem 0.85rem;
    border-radius: 0.75rem;
    background: linear-gradient(135deg, rgba(var(--ictaz-brand-rgb), 0.06) 0%, rgba(var(--ictaz-brand-rgb), 0.02) 100%);
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.12);
}

@media (min-width: 992px) {
    .portal-member-dashboard-head__rail {
        align-items: flex-end;
        text-align: right;
        min-width: 11rem;
    }
}

.portal-member-dashboard-breadcrumb-nav {
    margin-bottom: 0;
}

.portal-member-dashboard-breadcrumb {
    margin-bottom: 0;
    font-size: 0.8125rem;
    padding: 0.35rem 0;
}

.portal-member-dashboard-breadcrumb__link {
    color: inherit;
    text-decoration: none;
}

@media (hover: hover) {
    .portal-member-dashboard-breadcrumb__link:hover {
        color: var(--ictaz-brand);
        text-decoration: underline;
    }
}

.portal-member-dashboard-breadcrumb__link:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.35);
    outline-offset: 2px;
    border-radius: 0.2rem;
}

.portal-member-dashboard-eyebrow {
    margin-bottom: 0.4rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-member-dashboard-title {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: clamp(1.45rem, 2.4vw, 1.85rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.2;
    margin: 0 0 0.5rem;
    color: #0f172a;
}

[data-bs-theme="dark"] .portal-member-dashboard-title {
    color: var(--bs-heading-color);
}

.portal-member-dashboard-lede {
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--bs-secondary-color);
    margin: 0 0 1rem;
    max-width: 38rem;
}

.portal-member-dashboard-principal {
    margin: 0;
    font-family: var(--bs-font-monospace);
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.portal-member-dashboard-identity {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.85rem 0.45rem 0.65rem;
    border-radius: 0.65rem;
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    max-width: 100%;
}

.portal-member-dashboard-identity__icon {
    font-size: 1.1rem;
    color: var(--ictaz-brand);
    flex-shrink: 0;
}

.portal-member-dashboard-identity__email {
    font-size: 0.8125rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    color: var(--bs-body-color);
    word-break: break-all;
}

.portal-member-dashboard-metrics {
    margin-bottom: 2rem;
}

.portal-member-dashboard-metrics-heading {
    margin: 0 0 0.65rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-member-dashboard-status-eyebrow {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-member-dashboard-statuscap {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 0.95rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border-radius: 9999px;
    border: 1px solid transparent;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.portal-member-dashboard-statuscap--active {
    color: var(--bs-success-text-emphasis);
    background: rgba(var(--bs-success-rgb), 0.12);
    border-color: rgba(var(--bs-success-rgb), 0.28);
}

.portal-member-dashboard-statuscap--pending {
    color: var(--bs-warning-text-emphasis);
    background: rgba(var(--bs-warning-rgb), 0.12);
    border-color: rgba(var(--bs-warning-rgb), 0.28);
}

.portal-member-dashboard-statuscap--suspended {
    color: var(--bs-danger-text-emphasis);
    background: rgba(var(--bs-danger-rgb), 0.1);
    border-color: rgba(var(--bs-danger-rgb), 0.26);
}

.portal-member-dashboard-workspaces {
    display: grid;
    gap: 1.75rem;
    grid-template-columns: 1fr;
}

@media (min-width: 1200px) {
    .portal-member-dashboard-workspaces {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.portal-member-dashboard-page .portal-member-dashboard-surface.card {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    overflow: hidden;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.05),
        0 14px 48px rgba(15, 23, 42, 0.07);
    background: var(--bs-body-bg);
}

[data-bs-theme="dark"] .portal-member-dashboard-page .portal-member-dashboard-surface.card {
    border-color: var(--bs-border-color);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}

.portal-member-dashboard-page .portal-member-dashboard-tile__body.card-body {
    padding: 1.35rem 1.4rem 1.25rem;
}

.portal-member-dashboard-page .portal-member-dashboard-tile__meta.portal-member-meta-dl {
    padding: 0.75rem 0.85rem;
    border-radius: 0.65rem;
    background: rgba(15, 23, 42, 0.03);
    border: 1px solid rgba(15, 23, 42, 0.06);
    gap: 0.45rem 1rem;
}

[data-bs-theme="dark"] .portal-member-dashboard-page .portal-member-dashboard-tile__meta.portal-member-meta-dl {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.08);
}

.portal-member-dashboard-page .portal-member-dashboard-tile__footer {
    padding-top: 1.35rem;
    margin-top: 1.1rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.portal-member-dashboard-page .portal-member-dashboard-tile__cta {
    min-height: 2.65rem;
    font-weight: 600;
    border-radius: 0.7rem;
}

.portal-member-dashboard-page .portal-member-dashboard-tile__title {
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.25;
}

.portal-member-dashboard-tile__eyebrow {
    margin: 0 0 0.5rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-member-dashboard-tile__title {
    margin: 0 0 1rem;
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--bs-body-color);
}

.portal-member-dashboard-tile__body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.portal-member-dashboard-tile__footer {
    margin-top: auto;
    padding-top: 1.25rem;
    border-top: 1px solid var(--bs-border-color);
}

.portal-member-dashboard-tile__cta {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border-radius: 0.65rem;
    font-weight: 600;
}

.portal-member-dashboard-progress {
    margin-bottom: 0.5rem;
}

.portal-member-dashboard-progress__track {
    --portal-dash-cpd-progress: 0;
    position: relative;
    height: 10px;
    border-radius: 9999px;
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    overflow: hidden;
}

.portal-member-dashboard-progress__bar {
    height: 100%;
    min-width: 0;
    width: calc(var(--portal-dash-cpd-progress, 0) * 1%);
    border-radius: inherit;
    background: linear-gradient(90deg, var(--ictaz-brand), rgba(var(--ictaz-brand-rgb), 0.82));
    transition: width 0.45s ease;
}

.portal-member-dashboard-callout__copy {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

.portal-member-dashboard-ledger {
    margin-top: 2rem;
    border-radius: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08) !important;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.05),
        0 12px 40px rgba(15, 23, 42, 0.06);
    overflow: hidden;
}

.portal-member-dashboard-ledger__header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem 1.25rem;
    padding: 1.15rem 1.35rem 1rem;
    background: linear-gradient(180deg, rgba(var(--ictaz-brand-rgb), 0.04) 0%, transparent 100%);
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.portal-member-dashboard-ledger__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--bs-body-color);
}

.portal-member-dashboard-ledger__lead {
    min-width: 0;
}

.portal-member-dashboard-ledger__lede {
    margin: 0.25rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
    max-width: 28rem;
}

.portal-member-dashboard-ledger__action {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.portal-member-dashboard-workspaces-section {
    margin: 0;
}

.portal-member-dashboard-tile.card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.portal-member-dashboard-tile__masthead {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.portal-member-dashboard-tile__glyph {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
}

.portal-member-dashboard-tile__glyph--cpd {
    color: var(--ictaz-brand);
    background: rgba(var(--ictaz-brand-rgb), 0.1);
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.14);
}

.portal-member-dashboard-tile__glyph--finance {
    color: var(--ictaz-accent);
    background: rgba(var(--ictaz-accent-rgb), 0.12);
    border: 1px solid rgba(var(--ictaz-accent-rgb), 0.22);
}

.portal-member-dashboard-tile__glyph--profile {
    color: #4f46e5;
    background: rgba(79, 70, 229, 0.1);
    border: 1px solid rgba(79, 70, 229, 0.18);
}

.portal-member-dashboard-tile__meta {
    margin-bottom: 0.75rem;
}

.portal-member-dashboard-tile__meta--grow {
    margin-bottom: 0;
    flex: 1 1 auto;
    min-height: 0;
}

.portal-member-meta-dl dd.portal-member-dashboard-meta-dd--muted {
    color: var(--bs-secondary-color);
}

.portal-member-dashboard-callout__body {
    min-width: 0;
}

.portal-member-dashboard-progress-caption {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

.portal-member-dashboard-ledger__body.card-body {
    padding: 0;
}

.portal-member-dashboard-ledger__caption {
    padding: 0.75rem 1rem 0;
    font-size: 0.75rem;
    line-height: 1.4;
    color: var(--bs-secondary-color);
}

.portal-member-dashboard-ledger-linkbtn {
    border-radius: 9999px;
    padding-inline: 0.85rem;
    font-weight: 600;
}

.portal-member-dashboard-ledger__responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.portal-member-dashboard-ledger__table.table {
    width: 100%;
    margin-bottom: 0;
}

.portal-member-dashboard-ledger__table.table > :not(caption) > * > * {
    vertical-align: middle;
}

.portal-member-dashboard-ledger__table.table tbody tr:hover {
    background-color: rgba(var(--ictaz-brand-rgb), 0.04);
}

.portal-member-dashboard-ledger__thead th:last-child {
    text-align: end;
}

.portal-member-dashboard-ledger__empty-cell {
    padding: 0;
    border: none;
    vertical-align: top;
}

.portal-member-dashboard-ledger__thead th {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-secondary-color);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-bottom-color: var(--bs-border-color);
}

.portal-member-dashboard-ledger-empty.portal-empty-state {
    padding: 2.25rem 1.25rem;
}

.portal-member-dashboard-ledger-empty__icon.portal-empty-state__icon {
    margin-bottom: 0.85rem;
}

.portal-member-dashboard-ledger-empty__icon .ph-receipt {
    font-size: 1.75rem;
    color: var(--bs-secondary-color);
    line-height: 1;
}

.portal-member-dashboard-ledger-empty__title {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--bs-body-color);
}

.portal-member-dashboard-ledger-empty__copy {
    margin: 0 auto 1.1rem;
    max-width: 22rem;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

.portal-member-dashboard-ledger-empty__cta {
    border-radius: 9999px;
    padding-inline: 1.15rem;
    font-weight: 600;
}

/* B-10 — member pay workspace: structured shell, plan pick → checkout, ledger status tokens */
.portal-member-payments-page {
    max-width: 1200px;
}

.portal-member-payments-breadcrumb-nav {
    margin-bottom: 0.5rem;
}

.portal-member-payments-breadcrumb {
    margin-bottom: 0;
    font-size: 0.8125rem;
}

.portal-member-payments-eyebrow {
    margin-bottom: 0.5rem;
}

.portal-member-payments-title {
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 0.35rem;
    color: var(--bs-body-color);
}

.portal-member-payments-lede {
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--bs-secondary-color);
    margin: 0;
}

.portal-member-payments-principal-hint {
    margin: 0.5rem 0 0;
}

.portal-member-payments-stanbic.portal-member-callout {
    margin-top: 0;
    margin-bottom: 1.5rem;
}

.portal-member-payments-callout-body {
    min-width: 0;
}

.portal-member-payments-callout-body .portal-member-callout__label {
    margin-bottom: 0.25rem;
}

.portal-member-payments-callout-copy {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

.portal-member-payments-plans-card {
    margin-bottom: 1.5rem;
}

.portal-member-payments-cardhead {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--bs-border-color);
    background: transparent;
}

.portal-member-payments-cardhead__title {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 600;
    color: var(--bs-body-color);
}

.portal-member-payments-cardhead__lede {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

.portal-member-payments-cardbody {
    padding: 1.25rem 1.25rem;
}

.portal-member-payments-cardbody--flush {
    padding: 0;
}

.portal-member-payments-flash--danger {
    margin-bottom: 1.25rem;
}

.portal-member-plan-pay__fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}

.portal-member-payments-help {
    margin: 1rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

.portal-member-payments-ledger-shell {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.portal-member-payments-ledger-table.portal-member-ledger-table th:first-child,
.portal-member-payments-ledger-table.portal-member-ledger-table td:first-child {
    padding-left: 1.25rem;
}

.portal-member-payments-ledger-table.portal-member-ledger-table th:last-child,
.portal-member-payments-ledger-table.portal-member-ledger-table td:last-child {
    padding-right: 1.25rem;
    text-align: end;
}

.portal-member-payments-ledger-refcell {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.8125rem;
    font-weight: 400;
    color: var(--bs-secondary-color);
}

.portal-member-payments-ledger-plan {
    color: var(--bs-body-color);
}

.portal-member-payments-amount {
    font-variant-numeric: tabular-nums;
}

.portal-member-payments-amount__ccy {
    font-weight: 500;
    color: var(--bs-secondary-color);
    margin-right: 0.35rem;
    font-size: 0.8125rem;
}

.portal-member-payments-amount__num {
    font-weight: 600;
    color: var(--bs-body-color);
}

.portal-member-payments-ledger-when {
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
    text-align: end;
}

.portal-member-payments-pagination {
    border-top: 1px solid var(--bs-border-color);
    padding: 0.85rem 1.25rem 0.65rem;
}

.portal-member-payments-head {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 992px) {
    .portal-member-payments-head {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: flex-start;
        justify-content: space-between;
    }
}

.portal-member-payments-head__primary {
    min-width: 0;
    flex: 1 1 auto;
}

.portal-member-payments-head__rail {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    flex-shrink: 0;
}

@media (min-width: 992px) {
    .portal-member-payments-head__rail {
        align-items: flex-end;
        text-align: right;
    }
}

.portal-member-payments-mode-eyebrow {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-member-payments-modecap {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.85rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    font-variant-numeric: tabular-nums;
    color: rgba(var(--ictaz-brand-rgb), 0.95);
    background: rgba(var(--ictaz-brand-rgb), 0.1);
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.22);
    border-radius: 0.45rem;
}

.portal-member-payments-flash {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1rem 1.15rem;
    border-radius: 0.65rem;
    border: 1px solid transparent;
    margin-bottom: 1.5rem;
}

.portal-member-payments-flash__glyph {
    flex-shrink: 0;
    font-size: 1.35rem;
    line-height: 1;
    margin-top: 0.05rem;
}

.portal-member-payments-flash__body {
    min-width: 0;
    font-size: 0.9375rem;
    font-weight: 500;
    line-height: 1.45;
}

.portal-member-payments-flash--success {
    border-color: rgba(var(--bs-success-rgb), 0.35);
    background: rgba(var(--bs-success-rgb), 0.08);
    color: var(--bs-success-text-emphasis);
}

.portal-member-payments-flash--success .portal-member-payments-flash__glyph {
    color: var(--bs-success);
}

.portal-member-payments-flash--danger {
    border-color: rgba(var(--bs-danger-rgb), 0.35);
    background: rgba(var(--bs-danger-rgb), 0.07);
    color: var(--bs-danger-text-emphasis);
}

.portal-member-payments-flash--danger .portal-member-payments-flash__glyph {
    color: var(--bs-danger);
}

.portal-member-payments-plans-card .card-header,
.portal-member-payments-ledger-card .card-header {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.portal-member-plan-pay__grid {
    display: grid;
    gap: 0.85rem;
}

@media (min-width: 768px) {
    .portal-member-plan-pay__grid {
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    }
}

.portal-member-plan-pay__label.btn {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    min-height: 7.75rem;
    padding: 1rem 1.1rem;
    border-radius: 0.65rem;
    text-align: start;
    line-height: 1.35;
}

.portal-member-plan-pay__interval {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-member-plan-pay__title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--bs-body-color);
    margin-bottom: 0.35rem;
}

.portal-member-plan-pay__amount {
    margin-top: auto;
    font-size: 1.375rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--ictaz-brand);
}

.portal-member-plan-pay__choice .portal-member-plan-pay__label {
    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease,
        background-color 0.15s ease;
}

.portal-member-plan-pay__choice .btn-check:checked + .portal-member-plan-pay__label {
    border-color: rgba(var(--ictaz-brand-rgb), 0.65);
    background: rgba(var(--ictaz-brand-rgb), 0.08);
    box-shadow: 0 0 0 0.12rem rgba(var(--ictaz-brand-rgb), 0.18);
}

.portal-member-plan-pay__choice .btn-check:focus-visible + .portal-member-plan-pay__label {
    box-shadow: 0 0 0 0.2rem rgba(var(--ictaz-brand-rgb), 0.28);
}

.portal-member-plan-pay__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.25rem;
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--bs-border-color);
}

.portal-member-plan-pay__submit {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: inherit;
    padding: 0.65rem 1.35rem;
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.25;
    color: #fff;
    background: linear-gradient(180deg, rgba(var(--ictaz-brand-rgb), 0.92), rgba(var(--ictaz-brand-rgb), 1));
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.55);
    border-radius: 0.65rem;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
    cursor: pointer;
    transition:
        filter 0.15s ease,
        border-color 0.15s ease;
}

.portal-member-plan-pay__submit:hover {
    filter: brightness(1.05);
}

.portal-member-plan-pay__submit:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.45);
    outline-offset: 2px;
}

.portal-member-plan-pay__rail-hint {
    font-size: 0.8125rem;
    line-height: 1.4;
    color: var(--bs-secondary-color);
    max-width: 28rem;
}

.portal-member-payments-pagination__nav {
    display: flex;
    justify-content: flex-end;
    overflow-x: auto;
    padding: 0;
}

.portal-member-payments-ledger-status {
    display: inline-flex;
    align-items: center;
    padding: 0.22rem 0.55rem;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    border-radius: 0.4rem;
    border: 1px solid transparent;
    line-height: 1.2;
}

.portal-member-payments-ledger-status--paid {
    color: var(--bs-success-text-emphasis);
    background: rgba(var(--bs-success-rgb), 0.12);
    border-color: rgba(var(--bs-success-rgb), 0.28);
}

.portal-member-payments-ledger-status--pending {
    color: var(--bs-warning-text-emphasis);
    background: rgba(var(--bs-warning-rgb), 0.14);
    border-color: rgba(var(--bs-warning-rgb), 0.32);
}

.portal-member-payments-ledger-status--exception {
    color: var(--bs-danger-text-emphasis);
    background: rgba(var(--bs-danger-rgb), 0.1);
    border-color: rgba(var(--bs-danger-rgb), 0.26);
}

.portal-member-payments-ledger-status--neutral {
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}

.portal-empty-state--compact {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}

.portal-member-ledger .table thead th,
.portal-admin-ledger .table thead th {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    border-bottom-width: 1px;
}

.portal-member-rail {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

@media (min-width: 1200px) {
    .portal-member-rail--sticky {
        position: sticky;
        top: 1rem;
        align-self: flex-start;
    }
}

/* -------------------------------------------------------------------------- */
/* Profile edit (auth) — card layout, completion, dashboard-style head        */
/* -------------------------------------------------------------------------- */

.portal-profile-page {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
    padding-bottom: 0.5rem;
}

.portal-profile-head {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 0.15rem 0 0.35rem;
}

@media (min-width: 992px) {
    .portal-profile-head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
        column-gap: 2rem;
        row-gap: 0.65rem;
        align-items: start;
    }

    .portal-profile-breadcrumb-nav {
        grid-column: 1;
        grid-row: 1;
    }

    .portal-profile-head__primary {
        grid-column: 1;
        grid-row: 2;
    }

    .portal-profile-head__rail {
        grid-column: 2;
        grid-row: 1 / span 2;
        align-self: center;
        justify-self: end;
    }
}

.portal-profile-breadcrumb-nav {
    margin-bottom: 0;
}

.portal-profile-breadcrumb {
    margin-bottom: 0;
    font-size: 0.8125rem;
    padding: 0.35rem 0;
}

.portal-profile-breadcrumb__link {
    color: inherit;
    text-decoration: none;
}

@media (hover: hover) {
    .portal-profile-breadcrumb__link:hover {
        color: var(--ictaz-brand);
        text-decoration: underline;
    }
}

.portal-profile-breadcrumb__link:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.35);
    outline-offset: 2px;
    border-radius: 0.2rem;
}

.portal-profile-head__primary {
    min-width: 0;
    flex: 1 1 auto;
}

.portal-profile-head__rail {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.45rem;
    flex-shrink: 0;
    padding: 0.35rem 0.65rem 0.35rem 0.85rem;
    border-radius: 0.75rem;
    background: linear-gradient(135deg, rgba(var(--ictaz-brand-rgb), 0.06) 0%, rgba(var(--ictaz-brand-rgb), 0.02) 100%);
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.12);
}

@media (min-width: 992px) {
    .portal-profile-head__rail {
        align-items: flex-end;
        text-align: right;
        min-width: 11rem;
    }
}

.portal-profile-eyebrow {
    margin-bottom: 0.4rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-profile-title {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: clamp(1.45rem, 2.4vw, 1.85rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.2;
    margin: 0 0 0.5rem;
    color: #0f172a;
}

[data-bs-theme="dark"] .portal-profile-title {
    color: var(--bs-heading-color);
}

.portal-profile-lede {
    margin: 0 0 0.75rem;
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
    max-width: 40rem;
}

.portal-profile-status-eyebrow {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-profile-statuscap {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.65rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.portal-profile-statuscap--success {
    background: rgba(25, 135, 84, 0.12);
    color: #198754;
}

.portal-profile-statuscap--warning {
    background: rgba(255, 193, 7, 0.2);
    color: #b45309;
}

.portal-profile-statuscap--danger {
    background: rgba(220, 53, 69, 0.12);
    color: #dc3545;
}

.portal-profile-meta-hint {
    font-size: 0.75rem;
    color: var(--bs-secondary-color);
    max-width: 14rem;
}

.portal-profile-surface.card {
    border-radius: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 12px 28px rgba(15, 23, 42, 0.06);
}

[data-bs-theme="dark"] .portal-profile-surface.card {
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 12px 28px rgba(0, 0, 0, 0.25);
}

.portal-profile-panel__header {
    padding: 1.25rem 1.25rem 0;
    background: transparent;
}

.portal-profile-panel__title {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--bs-body-color);
}

.portal-profile-panel__subtitle {
    margin-top: 0.35rem;
    font-size: 0.8125rem;
    line-height: 1.4;
    color: var(--bs-secondary-color);
}

.portal-profile-panel__body {
    padding: 1.25rem;
    padding-top: 1rem;
}

.portal-profile-panel--danger .portal-profile-panel__header--danger {
    padding-top: 1.25rem;
}

.portal-profile-panel__title--danger {
    color: #b02a37;
}

[data-bs-theme="dark"] .portal-profile-panel__title--danger {
    color: #f1aeb5;
}

.portal-profile-completion__body {
    padding: 1.35rem 1.35rem;
}

.portal-profile-completion-title {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin: 0 0 0.35rem;
    color: var(--bs-body-color);
}

.portal-profile-completion-lede {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
    max-width: 36rem;
}

.portal-profile-completion-ring {
    --portal-profile-pct: 0;
    width: 5.5rem;
    height: 5.5rem;
    border-radius: 50%;
    background: conic-gradient(
        rgb(var(--ictaz-brand-rgb)) calc(var(--portal-profile-pct) * 1%),
        rgba(15, 23, 42, 0.1) 0
    );
    display: grid;
    place-items: center;
}

[data-bs-theme="dark"] .portal-profile-completion-ring {
    background: conic-gradient(
        rgb(var(--ictaz-brand-rgb)) calc(var(--portal-profile-pct) * 1%),
        rgba(255, 255, 255, 0.12) 0
    );
}

.portal-profile-completion-ring__hole {
    width: 4.15rem;
    height: 4.15rem;
    border-radius: 50%;
    background: #0f172a;
    display: grid;
    place-items: center;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25);
}

[data-bs-theme="dark"] .portal-profile-completion-ring__hole {
    background: #020617;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.4);
}

.portal-profile-completion-ring__value {
    font-weight: 800;
    font-size: 0.95rem;
    letter-spacing: -0.03em;
    color: #ffffff;
}

.portal-profile-completion-track {
    height: 0.5rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

[data-bs-theme="dark"] .portal-profile-completion-track {
    background: rgba(255, 255, 255, 0.1);
}

.portal-profile-completion-fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, rgb(var(--ictaz-brand-rgb)), rgba(var(--ictaz-brand-rgb), 0.75));
    transition: width 0.35s ease;
}

.portal-profile-rail.portal-member-rail {
    gap: 1.25rem;
}

.portal-profile-identity__body {
    padding: 1.25rem;
}

.portal-profile-identity__row {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.portal-profile-identity__avatar {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 1rem;
    letter-spacing: 0.02em;
    color: rgb(var(--ictaz-brand-rgb));
    background: linear-gradient(145deg, rgba(var(--ictaz-brand-rgb), 0.18), rgba(var(--ictaz-brand-rgb), 0.06));
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.2);
}

.portal-profile-identity__name {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0;
    color: var(--bs-body-color);
}

.portal-profile-identity__dl {
    margin-top: 0.25rem;
}

.portal-profile-page .portal-auth-field .form-control {
    border-radius: 0.65rem;
}

.portal-profile-form .form-label {
    display: block;
    margin-bottom: 0.5rem;
}

/* Profile form: inner .row inside fieldset so Bootstrap grid works (row on <form> breaks with fieldset). */
.portal-profile-panel__body .portal-profile-form .row {
    --bs-gutter-x: 1.25rem;
    --bs-gutter-y: 1.25rem;
}

.portal-profile-form-section {
    margin-bottom: 0;
}

.portal-profile-form-section--follows {
    margin-top: 2rem;
    padding-top: 0.25rem;
}

.portal-profile-form-section__title.portal-form-section-title {
    margin-top: 0;
    margin-bottom: 1rem;
    padding-top: 0.35rem;
}

.portal-profile-form-section--follows .portal-profile-form-section__title.portal-form-section-title {
    margin-top: 0;
}

.portal-profile-form-actions {
    margin-top: 0.5rem;
}

.portal-member-snapshot-dl {
    margin: 0.5rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: minmax(4.5rem, auto) 1fr;
    gap: 0.25rem 0.75rem;
    font-size: 0.8125rem;
    line-height: 1.4;
}

.portal-member-snapshot-dl dt {
    margin: 0;
    font-weight: 700;
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-member-snapshot-dl dd {
    margin: 0;
    min-width: 0;
    color: var(--bs-body-color);
}

.portal-member-flash-title {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--bs-body-color);
}

/* A-08 — admin member CSV import (drop target + option panel) */
.portal-admin-import-drop {
    position: relative;
    display: block;
    border: 2px dashed rgba(var(--ictaz-brand-rgb), 0.32);
    border-radius: 0.875rem;
    padding: 2.1rem 1.25rem;
    text-align: center;
    background: linear-gradient(180deg, rgba(var(--ictaz-brand-rgb), 0.05), var(--bs-body-bg) 70%);
    cursor: pointer;
    transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.portal-admin-import-drop:hover,
.portal-admin-import-drop:focus-within {
    border-color: rgba(var(--ictaz-brand-rgb), 0.52);
    background-color: rgba(var(--ictaz-brand-rgb), 0.06);
    box-shadow: 0 0.35rem 1.1rem rgba(var(--ictaz-brand-rgb), 0.08);
}

.portal-admin-import-drop:focus-within {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(var(--ictaz-brand-rgb), 0.22);
}

.portal-admin-import-drop:has(.is-invalid) {
    border-color: rgba(220, 53, 69, 0.45);
    background-color: rgba(220, 53, 69, 0.04);
}

.portal-admin-import-drop__input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 3;
    font-size: 0;
}

.portal-admin-import-drop__caption {
    position: relative;
    z-index: 1;
    pointer-events: none;
    display: block;
}

.portal-admin-import-drop__icon {
    width: 3rem;
    height: 3rem;
    margin-left: auto;
    margin-right: auto;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--ictaz-brand-rgb), 0.1);
}

.portal-admin-import-option {
    border-color: var(--bs-border-color) !important;
    background: var(--bs-tertiary-bg);
}

.portal-admin-import-sample {
    margin: 0;
    padding: 0.75rem 1rem;
    font-size: 0.8125rem;
    line-height: 1.45;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    overflow-x: auto;
    white-space: nowrap;
}

.portal-admin-import .portal-admin-edit-toolbar.portal-admin-ledger {
    overflow: hidden;
}

/* A-09 — admin organisation payment ledger (query shell + semantics)
   B-01 — contact inbox reuses the same interaction tokens via .portal-admin-inbox-*; B-08 elevates payments header/query to the same dossier shell */
.portal-admin-payments-skiplinks .btn,
.portal-admin-inbox-skiplinks .btn,
.portal-admin-newsletter-skiplinks .btn {
    white-space: nowrap;
}

.portal-admin-dossier-alerts.portal-admin-payments-notices,
.portal-admin-dossier-alerts.portal-admin-inbox-notices,
.portal-admin-dossier-alerts.portal-admin-newsletter-notices {
    gap: 0.85rem;
}

.portal-admin-payments-headmeta-dd {
    max-width: 18rem;
}

/* B-08 — payment registry header shell (structured grid; no Bootstrap layout chains) */
.portal-admin-payments-head__layout {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 992px) {
    .portal-admin-payments-head__layout {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: flex-start;
        justify-content: space-between;
    }
}

.portal-admin-payments-head__primary {
    min-width: 0;
    flex: 1 1 auto;
}

.portal-admin-payments-head__aside {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    flex-shrink: 0;
    width: 100%;
}

@media (min-width: 992px) {
    .portal-admin-payments-head__aside {
        align-items: flex-end;
        width: auto;
    }
}

.portal-admin-payments-head__stack {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    align-items: flex-start;
}

@media (min-width: 992px) {
    .portal-admin-dossier-head-meta .portal-admin-payments-head__stack {
        align-items: flex-end;
        text-align: right;
    }
}

.portal-admin-payments-head__console-groups {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: stretch;
}

@media (min-width: 1200px) {
    .portal-admin-payments-head__console-groups {
        flex-direction: row;
        align-items: flex-end;
        justify-content: flex-end;
    }
}

.portal-admin-payments-head__console-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-start;
}

@media (min-width: 1200px) {
    .portal-admin-payments-head__console-list {
        justify-content: flex-end;
    }
}

.portal-admin-payments .portal-admin-newsletter-record-consolelink {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.portal-admin-payments-rail__cluster {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.portal-admin-payments-skiplinks__track,
.portal-admin-payments-sectionnav__track {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.portal-admin-payments-activechips__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.portal-admin-payments-activechips__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.portal-admin-payments-query .portal-auth-field .form-select,
.portal-admin-payments-query .portal-auth-field .form-control {
    border-radius: 0.5rem;
}

.portal-admin-payments-spec-codecell {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    align-items: flex-start;
}

.portal-admin-payments-latest__identity {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.5rem;
}

.portal-admin-payments-latest__sep {
    color: var(--bs-secondary-color);
}

@media (max-width: 575.98px) {
    .portal-admin-payments-latest__sep {
        display: none;
    }
}

.portal-admin-payments-latest__email {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.8125rem;
    word-break: break-word;
}

.portal-admin-payments-emptypulse__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
}

.portal-admin-payments-pagination__meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.5rem;
}

.portal-admin-payments-pagination__rail {
    display: flex;
    justify-content: flex-end;
    overflow-x: auto;
    padding-bottom: 0.25rem;
}

.portal-admin-payments-empty-recover {
    display: inline-flex;
}

.portal-admin-payments-membercell__name {
    display: block;
    font-weight: 600;
    color: var(--bs-body-color);
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-admin-payments-membercell__email {
    display: block;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-admin-payments-membercell__directory {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-admin-payments-spec .portal-admin-dossier-cardhead,
.portal-admin-contact-inbox-spec .portal-admin-dossier-cardhead,
.portal-admin-newsletter-spec .portal-admin-dossier-cardhead {
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
}

.portal-admin-payments-query .card-body,
.portal-admin-inbox-query .card-body,
.portal-admin-newsletter-query .card-body {
    background: linear-gradient(180deg, var(--bs-body-bg), rgba(var(--ictaz-brand-rgb), 0.02));
}

.portal-admin-payments-query .portal-admin-dossier-cardhead,
.portal-admin-inbox-query .portal-admin-dossier-cardhead,
.portal-admin-newsletter-query .portal-admin-dossier-cardhead {
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
}

.portal-admin-payments-activechips,
.portal-admin-inbox-activechips,
.portal-admin-newsletter-activechips {
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.18);
    background: linear-gradient(135deg, rgba(var(--ictaz-brand-rgb), 0.06), var(--bs-body-bg) 55%);
}

.portal-admin-payments-constraint,
.portal-admin-inbox-constraint {
    display: inline-flex;
    align-items: baseline;
    gap: 0.2rem;
    padding: 0.35rem 0.85rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--bs-body-color);
    background: rgba(var(--ictaz-brand-rgb), 0.08);
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.14);
}

.portal-admin-payments-constraint--mono .portal-admin-payments-constraint__val,
.portal-admin-inbox-constraint--mono .portal-admin-inbox-constraint__val {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-weight: 500;
    font-size: 0.78rem;
}

.portal-admin-payments-constraint__sep,
.portal-admin-inbox-constraint__sep {
    opacity: 0.45;
    font-weight: 500;
}

.portal-admin-payments-constraint__val,
.portal-admin-inbox-constraint__val {
    font-weight: 600;
    color: rgba(var(--ictaz-brand-rgb), 0.95);
}

.portal-admin-payments-constraint {
    border-radius: 0.45rem;
}

.portal-admin-payments-rowmeta {
    display: block;
    margin-top: 0.35rem;
}

.portal-admin-payments-rowmeta__pill {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.45rem;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: 0.35rem;
    color: var(--bs-primary);
    background: rgba(var(--ictaz-brand-rgb), 0.12);
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.2);
}

.portal-admin-payments-rowmeta__pill--neutral {
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}

/* B-08 — organisation payment ledger: settlement status tokens (replaces Bootstrap badges in grid + latest strip) */
.portal-admin-payments-ledger-status {
    display: inline-flex;
    align-items: center;
    padding: 0.22rem 0.55rem;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    border-radius: 0.4rem;
    border: 1px solid transparent;
    line-height: 1.2;
}

.portal-admin-payments-ledger-status--paid {
    color: var(--bs-success-text-emphasis);
    background: rgba(var(--bs-success-rgb), 0.12);
    border-color: rgba(var(--bs-success-rgb), 0.28);
}

.portal-admin-payments-ledger-status--pending {
    color: var(--bs-warning-text-emphasis);
    background: rgba(var(--bs-warning-rgb), 0.14);
    border-color: rgba(var(--bs-warning-rgb), 0.32);
}

.portal-admin-payments-ledger-status--exception {
    color: var(--bs-danger-text-emphasis);
    background: rgba(var(--bs-danger-rgb), 0.1);
    border-color: rgba(var(--bs-danger-rgb), 0.26);
}

/* B-08 — payments ledger query row: primary/secondary actions (no Bootstrap .btn) */
.portal-admin-payments-query-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.5rem;
}

@media (min-width: 1200px) {
    .portal-admin-payments-query-actions {
        justify-content: flex-end;
        padding-top: 0.25rem;
    }
}

.portal-admin-payments-query-actions__submit {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 1.05rem;
    font-family: inherit;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.25;
    color: #fff;
    background: linear-gradient(180deg, rgba(var(--ictaz-brand-rgb), 0.92), rgba(var(--ictaz-brand-rgb), 1));
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.55);
    border-radius: 0.5rem;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07);
    cursor: pointer;
    transition:
        filter 0.15s ease,
        border-color 0.15s ease;
}

.portal-admin-payments-query-actions__submit:hover {
    filter: brightness(1.05);
}

.portal-admin-payments-query-actions__submit:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.45);
    outline-offset: 2px;
}

.portal-admin-payments-query-actions__reset {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.9rem;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--bs-body-color);
    text-decoration: none;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    background: linear-gradient(180deg, var(--bs-body-bg), var(--bs-tertiary-bg));
    transition:
        border-color 0.15s ease,
        background-color 0.15s ease;
}

.portal-admin-payments-query-actions__reset:hover,
.portal-admin-payments-query-actions__reset:focus-visible {
    border-color: rgba(var(--ictaz-brand-rgb), 0.32);
    color: var(--bs-body-color);
}

.portal-admin-payments-query-actions__reset:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.35);
    outline-offset: 2px;
}

.portal-admin-payments-ledger .portal-admin-dossier-table thead th,
.portal-admin-inbox-ledger .portal-admin-dossier-table thead th,
.portal-admin-newsletter-ledger .portal-admin-dossier-table thead th {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-payments-pagination .page-link,
.portal-admin-inbox-pagination .page-link,
.portal-admin-newsletter-ledger .portal-admin-inbox-pagination .page-link {
    border-radius: 0.45rem;
    margin: 0 0.1rem;
    min-width: 2.25rem;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.portal-admin-payments-pagination .page-item:first-child .page-link,
.portal-admin-payments-pagination .page-item:last-child .page-link,
.portal-admin-inbox-pagination .page-item:first-child .page-link,
.portal-admin-inbox-pagination .page-item:last-child .page-link,
.portal-admin-newsletter-ledger .portal-admin-inbox-pagination .page-item:first-child .page-link,
.portal-admin-newsletter-ledger .portal-admin-inbox-pagination .page-item:last-child .page-link {
    border-radius: 0.45rem;
}

.portal-admin-payments-query-form fieldset,
.portal-admin-inbox-query-form fieldset,
.portal-admin-newsletter-query-form fieldset {
    min-width: 0;
}

.portal-admin-payments-latest.portal-admin-edit-toolbar.portal-admin-ledger {
    overflow: hidden;
}

.portal-admin-payments-membercell {
    max-width: 16rem;
    min-width: 0;
}

.portal-admin-payments-ledger .portal-admin-dossier-cardhead,
.portal-admin-inbox-ledger .portal-admin-dossier-cardhead,
.portal-admin-newsletter-ledger .portal-admin-dossier-cardhead {
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
}

.portal-admin-payments-emptypulse,
.portal-admin-inbox-emptypulse {
    border: 1px solid var(--bs-border-color);
    background: linear-gradient(135deg, rgba(var(--ictaz-brand-rgb), 0.04), var(--bs-body-bg) 60%);
}

.portal-admin-payments-emptypulse__glyph,
.portal-admin-inbox-emptypulse__glyph,
.portal-admin-newsletter-emptypulse .portal-admin-inbox-emptypulse__glyph {
    width: 2.75rem;
    height: 2.75rem;
    font-size: 1.25rem;
    color: var(--bs-secondary-color);
    background: rgba(var(--ictaz-brand-rgb), 0.08);
}

.portal-admin-payments-pagination .pagination,
.portal-admin-inbox-pagination .pagination,
.portal-admin-newsletter-ledger .portal-admin-inbox-pagination .pagination {
    margin-bottom: 0;
}

/* B-01 — admin contact inbox (portal-admin-contact-inbox + portal-admin-inbox-*); B-07 — message dossier; B-08 — payments ledger shell; B-11 — member pending CPD posture + staff notice; B-12 — member overview dashboard */
.portal-admin-contact-inbox-latest.portal-admin-edit-toolbar.portal-admin-ledger,
.portal-admin-newsletter-latest.portal-admin-edit-toolbar.portal-admin-ledger {
    overflow: hidden;
    align-items: flex-start;
}

.portal-admin-contact-record-bodywrap {
    border-radius: 0.65rem;
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.16);
    background: linear-gradient(180deg, rgba(var(--ictaz-brand-rgb), 0.04), var(--bs-tertiary-bg) 55%);
}

.portal-admin-contact-record-body {
    max-height: 16rem;
    overflow-y: auto;
}

.portal-admin-contact-inbox-message {
    max-height: 7.75rem;
    overflow-y: auto;
    white-space: pre-wrap;
    padding: 0.35rem 0.5rem;
    border-radius: 0.5rem;
    border: 1px solid var(--bs-border-color);
    background: var(--bs-tertiary-bg);
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
    word-break: break-word;
}

.portal-admin-inbox-mailto {
    color: var(--bs-body-color);
}

.portal-admin-inbox-mailto:hover,
.portal-admin-inbox-mailto:focus-visible {
    color: var(--ictaz-brand);
    text-decoration: underline !important;
}

.portal-admin-inbox-rowid {
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-inbox-message-toolbar {
    min-height: 1.1rem;
}

.portal-admin-inbox-preview {
    border-left: 3px solid rgba(var(--ictaz-brand-rgb), 0.35);
    padding-left: 0.65rem;
    line-height: 1.45;
    white-space: pre-wrap;
}

blockquote.portal-admin-inbox-preview {
    margin-block: 0;
}

.portal-admin-meta-sep {
    padding: 0 0.2em;
    opacity: 0.45;
    font-weight: 400;
}

.portal-admin-inbox-paramspec {
    padding: 0.85rem 1rem;
    border-radius: 0.65rem;
    border: 1px solid var(--bs-border-color);
    background: linear-gradient(135deg, rgba(var(--ictaz-brand-rgb), 0.04), var(--bs-tertiary-bg) 70%);
}

.portal-admin-inbox-paramspec__grid {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.portal-admin-inbox-paramspec__row {
    display: grid;
    grid-template-columns: 4.75rem minmax(0, 1fr);
    gap: 0.65rem 1rem;
    align-items: baseline;
}

.portal-admin-inbox-paramspec__row dt {
    margin: 0;
}

.portal-admin-inbox-paramspec__row dd {
    margin: 0;
}

@media (max-width: 575.98px) {
    .portal-admin-inbox-paramspec__row {
        grid-template-columns: 1fr;
    }
}

.portal-admin-inbox-kcode {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.08rem 0.38rem;
    border-radius: 0.35rem;
    background: rgba(var(--ictaz-brand-rgb), 0.1);
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.18);
    color: var(--ictaz-brand);
}

.portal-admin-inbox-kcode--inline {
    font-size: 0.62rem;
    padding: 0.04rem 0.28rem;
}

.portal-admin-inbox-latest__primary,
.portal-admin-contact-inbox-latest__primary {
    flex: 1 1 14rem;
    min-width: 0;
}

.portal-admin-inbox-latest__aside {
    flex: 0 1 auto;
    min-width: min(100%, 12rem);
}

@media (max-width: 767.98px) {
    .portal-admin-inbox-latest__aside {
        width: 100%;
        padding-top: 0.85rem;
        border-top: 1px solid var(--bs-border-color);
    }

    .portal-admin-inbox-latest__aside .portal-admin-edit-toolbar__facts {
        margin-left: 0;
        justify-content: flex-start;
    }

    .portal-admin-inbox-latest__aside .portal-admin-edit-toolbar__fact {
        text-align: left;
    }
}

.portal-admin-inbox-messagecell {
    min-width: 0;
}

@media (min-width: 1200px) {
    .portal-admin-contact-inbox-col--date {
        width: 9.5rem;
    }

    .portal-admin-contact-inbox-col--name {
        width: 11rem;
    }

    .portal-admin-contact-inbox-col--email {
        width: 14rem;
    }

    .portal-admin-contact-inbox-col--subject {
        width: 14rem;
    }
}

/* B-01 — admin contact inbox: dossier header shell, surface cards, transport strip, query help */
.portal-admin-contact-inbox-head {
    max-width: 100%;
}

.portal-admin-contact-inbox-head__shell {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 992px) {
    .portal-admin-contact-inbox-head__shell {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: flex-start;
        justify-content: space-between;
    }
}

.portal-admin-contact-inbox-head__primary {
    min-width: 0;
    flex: 1 1 auto;
}

.portal-admin-contact-inbox-breadcrumb-nav {
    margin-bottom: 0.5rem;
}

.portal-admin-contact-inbox-breadcrumb {
    margin-bottom: 0;
    font-size: 0.8125rem;
}

.portal-admin-contact-inbox-breadcrumb__link {
    color: inherit;
    text-decoration: none;
}

@media (hover: hover) {
    .portal-admin-contact-inbox-breadcrumb__link:hover {
        color: var(--ictaz-brand);
        text-decoration: underline;
    }
}

.portal-admin-contact-inbox-breadcrumb__link:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.35);
    outline-offset: 2px;
    border-radius: 0.2rem;
}

.portal-admin-contact-inbox-eyebrow {
    margin-bottom: 0.35rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ictaz-brand);
}

.portal-admin-contact-inbox-title {
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 0.35rem;
    color: var(--bs-body-color);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 575.98px) {
    .portal-admin-contact-inbox-title {
        white-space: normal;
    }
}

.portal-admin-contact-inbox-lede {
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--bs-secondary-color);
    margin: 0 0 0.75rem;
    max-width: 40rem;
}

.portal-admin-contact-inbox-principal {
    margin: 0;
    font-family: var(--bs-font-monospace);
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-admin-contact-inbox-head__rail {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 100%;
    flex-shrink: 0;
}

@media (min-width: 992px) {
    .portal-admin-contact-inbox-head__rail {
        width: auto;
        max-width: 26rem;
        align-items: flex-end;
    }
}

.portal-admin-contact-inbox-head-meta {
    margin-bottom: 0;
}

.portal-admin-contact-inbox-head-meta__mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.8125rem;
}

.portal-admin-contact-inbox-head-meta__tabular {
    font-variant-numeric: tabular-nums;
}

.portal-admin-contact-inbox-head-meta__routes {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    align-items: flex-end;
    text-align: end;
}

.portal-admin-contact-inbox-head-meta__code {
    font-size: 0.8125rem;
    margin: 0;
}

.portal-admin-contact-inbox-head-meta__path {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-head__consoles {
    width: 100%;
}

.portal-admin-contact-inbox-head__consoles .portal-admin-newsletter-console-actions__groups {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    align-items: stretch;
}

@media (min-width: 1200px) {
    .portal-admin-contact-inbox-head__consoles .portal-admin-newsletter-console-actions__groups {
        flex-direction: row;
        align-items: flex-end;
        justify-content: flex-end;
    }
}

.portal-admin-contact-inbox-console-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
    justify-content: flex-end;
}

.portal-admin-contact-inbox-head .portal-admin-newsletter-record-consolelink {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.portal-admin-contact-inbox-transport {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--bs-border-color);
}

.portal-admin-contact-inbox-transport__row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin: 0;
}

.portal-admin-contact-inbox-transport__row--flush {
    margin-bottom: 0;
}

.portal-admin-contact-inbox-transport__code,
.portal-admin-contact-inbox-transport__path {
    margin: 0;
}

.portal-admin-contact-inbox-transport__path {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-transport__tabular {
    font-variant-numeric: tabular-nums;
}

.portal-admin-contact-inbox-surface.card {
    border: 0;
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 0.125rem 0.25rem rgba(15, 17, 20, 0.06);
}

.portal-admin-contact-inbox-cardhead.card-header {
    padding: 1rem 1.25rem;
    background: transparent;
    border-bottom: 1px solid var(--bs-border-color);
}

.portal-admin-contact-inbox-specfoot {
    padding: 1rem 1.25rem;
    background: var(--bs-tertiary-bg);
    border-top: 1px solid var(--bs-border-color);
}

.portal-admin-contact-inbox-specfoot__copy {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-specstack {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    align-items: flex-start;
}

.portal-admin-contact-inbox-specstack__code {
    font-size: 0.8125rem;
    margin: 0;
}

.portal-admin-contact-inbox-specstack__path {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-activechips__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.portal-admin-contact-inbox-activechips__eyebrow {
    margin: 0;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-query-help {
    margin: 0.85rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-kpi-channel {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--bs-body-color);
}

.portal-admin-contact-inbox .portal-admin-kpi--dossier {
    box-shadow: 0 0.35rem 1.1rem rgba(15, 23, 42, 0.06);
    border-color: rgba(15, 23, 42, 0.08);
    border-radius: 0.9rem;
}

.portal-admin-contact-inbox .portal-admin-kpi--dossier .portal-admin-kpi__item {
    align-items: center;
}

.portal-admin-contact-inbox-trend__chart {
    min-height: 280px;
}

.portal-admin-contact-inbox-trend.card {
    box-shadow: 0 0.35rem 1.2rem rgba(15, 23, 42, 0.07);
}

.portal-admin-contact-inbox-ledger-summary-note {
    font-size: 0.8125rem;
    font-weight: 400;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-toolbar-window {
    margin: 0;
    font-size: 0.75rem;
    line-height: 1.35;
    color: var(--bs-secondary-color);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    word-break: break-word;
}

.portal-admin-contact-inbox-emptypulse__body {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
}

.portal-admin-contact-inbox-emptypulse__glyph,
.portal-admin-inbox-emptypulse__glyph.portal-admin-contact-inbox-emptypulse__glyph {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    color: var(--ictaz-brand);
    background: rgba(var(--ictaz-brand-rgb), 0.1);
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.16);
}

.portal-admin-contact-inbox-emptypulse__copy {
    min-width: 0;
    flex: 1 1 auto;
}

.portal-admin-contact-inbox-emptypulse__title {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--bs-body-color);
}

.portal-admin-contact-inbox-emptypulse__lede {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

/* B-01 (surface) — skiplinks, section rail, validation, spec grid, latest strip, query rail, ledger grid */
.portal-admin-contact-inbox-skiplinks__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.portal-admin-contact-inbox-sectionnav__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.portal-admin-contact-inbox-validation__body,
.portal-admin-contact-inbox-notice__body,
.portal-admin-contact-inbox-cardhead__text {
    min-width: 0;
}

.portal-admin-contact-inbox-validation__link {
    color: inherit;
    text-decoration: none;
}

@media (hover: hover) {
    .portal-admin-contact-inbox-validation__link:hover {
        color: var(--ictaz-brand);
        text-decoration: underline;
    }
}

.portal-admin-contact-inbox-cardtitle {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--bs-body-color);
    line-height: 1.35;
}

.portal-admin-contact-inbox-cardtitle--ledger {
    font-size: 1.1rem;
}

.portal-admin-contact-inbox-table-caption {
    padding: 0.75rem 1rem 0;
    font-size: 0.75rem;
    color: var(--bs-secondary-color);
    caption-side: top;
}

.portal-admin-contact-inbox-spec-table .portal-admin-contact-inbox-spec-col--head-start {
    padding-left: 1.5rem;
}

.portal-admin-contact-inbox-spec-table .portal-admin-contact-inbox-spec-col--head-end {
    padding-right: 1.5rem;
}

.portal-admin-contact-inbox-spec-rowhead {
    padding-left: 1.5rem;
    font-weight: 500;
    vertical-align: top;
}

.portal-admin-contact-inbox-spec-mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
    vertical-align: top;
}

.portal-admin-contact-inbox-spec-note {
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
    vertical-align: top;
}

.portal-admin-contact-inbox-spec-col--cell-end {
    padding-right: 1.5rem;
}

.portal-admin-contact-inbox-latest__header {
    margin-bottom: 0;
}

.portal-admin-contact-inbox-latest__eyebrow {
    margin: 0 0 0.35rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-latest__title {
    margin: 0 0 0.25rem;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.3;
    min-width: 0;
}

.portal-admin-contact-inbox-latest__subject-link {
    color: inherit;
    text-decoration: none;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (hover: hover) {
    .portal-admin-contact-inbox-latest__subject-link:hover {
        color: var(--ictaz-brand);
    }
}

.portal-admin-contact-inbox-latest__identity {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-latest__submitter {
    font-weight: 500;
    color: var(--bs-body-color);
}

.portal-admin-contact-inbox-latest__sep--narrow {
    display: none;
}

@media (min-width: 576px) {
    .portal-admin-contact-inbox-latest__sep--narrow {
        display: inline;
    }
}

.portal-admin-contact-inbox-latest__mailto {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.8125rem;
}

.portal-admin-contact-inbox-latest__excerpt {
    margin: 0.5rem 0 0;
}

.portal-admin-contact-inbox-latest__idcell {
    margin: 0;
    font-variant-numeric: tabular-nums;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.8125rem;
}

.portal-admin-contact-inbox-latest__received {
    margin: 0;
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
}

.portal-admin-contact-inbox-paramspec__title {
    margin: 0 0 0.5rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-paramspec__desc {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-activechips__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.portal-admin-contact-inbox-field-hint {
    font-size: 0.8125rem;
    font-weight: 400;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-query-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    justify-content: flex-start;
    padding-top: 0.35rem;
}

@media (min-width: 1200px) {
    .portal-admin-contact-inbox-query-actions {
        justify-content: flex-end;
        padding-top: 0.25rem;
    }
}

.portal-admin-contact-inbox-query-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.portal-admin-contact-inbox-ledger-toolbar {
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--bs-border-color);
    background: linear-gradient(180deg, rgba(var(--ictaz-brand-rgb), 0.04), transparent 88%);
}

.portal-admin-contact-inbox-ledger-th--start {
    padding-left: 1.5rem;
}

.portal-admin-contact-inbox-ledger-th--end {
    padding-right: 1.5rem;
}

.portal-admin-contact-inbox-ledger-datecell {
    vertical-align: top;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
    font-variant-numeric: tabular-nums;
    padding-left: 1.5rem;
}

.portal-admin-contact-inbox-ledger-receiptlink {
    color: inherit;
    text-decoration: none;
    display: inline-block;
}

@media (hover: hover) {
    .portal-admin-contact-inbox-ledger-receiptlink:hover {
        color: var(--ictaz-brand);
    }
}

.portal-admin-contact-inbox-ledger-receiptlink:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.35);
    outline-offset: 2px;
    border-radius: 0.2rem;
}

.portal-admin-contact-inbox-ledger-rowid {
    display: block;
    margin-top: 0.25rem;
}

.portal-admin-contact-inbox-ledger-namecell {
    vertical-align: top;
    font-weight: 500;
}

.portal-admin-contact-inbox-ledger-namelink {
    color: inherit;
    text-decoration: none;
    font-weight: 500;
}

@media (hover: hover) {
    .portal-admin-contact-inbox-ledger-namelink:hover {
        color: var(--ictaz-brand);
    }
}

.portal-admin-contact-inbox-ledger-subject-sm {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--bs-secondary-color);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (min-width: 1200px) {
    .portal-admin-contact-inbox-ledger-subject-sm {
        display: none;
    }
}

.portal-admin-contact-inbox-ledger-emailcell {
    vertical-align: top;
}

.portal-admin-contact-inbox-ledger-mailblock {
    min-width: 0;
    width: 100%;
}

.portal-admin-contact-inbox-ledger-mailrow {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.5rem;
}

.portal-admin-contact-inbox-ledger-emaillink {
    flex: 1 1 auto;
    min-width: 0;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.8125rem;
    color: inherit;
    text-decoration: none;
    word-break: break-word;
}

@media (hover: hover) {
    .portal-admin-contact-inbox-ledger-emaillink:hover {
        color: var(--ictaz-brand);
        text-decoration: underline;
    }
}

.portal-admin-contact-inbox-ledger-subjectcell {
    vertical-align: top;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-ledger-subjectlink {
    color: inherit;
    text-decoration: none;
}

@media (hover: hover) {
    .portal-admin-contact-inbox-ledger-subjectlink:hover {
        color: var(--ictaz-brand);
    }
}

.portal-admin-contact-inbox-ledger-bodycell {
    vertical-align: top;
    padding-right: 1.5rem;
}

.portal-admin-contact-inbox-messagecell {
    min-width: 0;
}

.portal-admin-contact-inbox-bodypanel-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
    min-height: 1.1rem;
}

.portal-admin-contact-inbox-bodypanel-eyebrow {
    margin: 0;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-ledger-empty__glyphwrap {
    margin-bottom: 0.35rem;
}

.portal-admin-contact-inbox-ledger-empty__glyph {
    font-size: 1.75rem;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-ledger-empty__title {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--bs-body-color);
}

.portal-admin-contact-inbox-ledger-empty__lede {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-ledger-empty__lede--spaced {
    margin-bottom: 1rem;
}

.portal-admin-contact-inbox-ledger-empty__actions {
    display: inline-flex;
}

.portal-admin-contact-inbox-ledger-empty__recover {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.portal-admin-contact-inbox-pagination-summary {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.portal-admin-contact-inbox-pagination-meta,
.portal-admin-contact-inbox-pagination-range {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

.portal-admin-contact-inbox-pagination-range {
    font-size: 0.75rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-variant-numeric: tabular-nums;
}

.portal-admin-contact-inbox-pagination__nav {
    display: flex;
    justify-content: flex-end;
    overflow: auto;
    padding-bottom: 0.25rem;
}

.portal-admin-contact-inbox-pagination-foot {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color);
}

/* B-04 — admin newsletter ledger; B-05 — CSV export; B-06 — receipt dossier (consolelink, extract-primary, timegrid, predicate frame, specfoot dl) */
.portal-admin-newsletter-head {
    padding-bottom: 0.15rem;
}

.portal-admin-newsletter-console-actions .btn {
    min-height: 2.25rem;
}

.portal-admin-newsletter-toolbar-eyebrow {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    margin: 0;
}

.portal-admin-newsletter-console-actions__groups {
    width: 100%;
}

.portal-admin-newsletter-extract--toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.75rem 1rem;
    padding: 0.65rem 0.85rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.2);
    background: linear-gradient(135deg, rgba(var(--ictaz-brand-rgb), 0.07), var(--bs-body-bg) 60%);
}

.portal-admin-newsletter-extract__title {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-newsletter-extract__grid {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.portal-admin-newsletter-extract__row {
    display: grid;
    grid-template-columns: 5.5rem minmax(0, 1fr);
    gap: 0.35rem 0.65rem;
    align-items: baseline;
}

.portal-admin-newsletter-extract__row dt {
    margin: 0;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-newsletter-extract__row dd {
    margin: 0;
    min-width: 0;
}

.portal-admin-newsletter-rail-extract__facts {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
    gap: 0.5rem 1rem;
}

.portal-admin-newsletter-rail-extract__fact dt {
    margin: 0 0 0.1rem;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-newsletter-rail-extract__fact dd {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--bs-body-color);
}

.portal-admin-newsletter-rail-extract__fact--wide {
    grid-column: 1 / -1;
}

.portal-admin-newsletter-paramsibling {
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    border: 1px dashed rgba(var(--ictaz-brand-rgb), 0.35);
    background: linear-gradient(180deg, rgba(var(--ictaz-brand-rgb), 0.04), var(--bs-tertiary-bg) 75%);
}

.portal-admin-ledger-toolbar.portal-admin-newsletter-ledger-toolbar {
    background: linear-gradient(180deg, rgba(var(--ictaz-brand-rgb), 0.055), transparent 88%);
}

.portal-admin-newsletter-ledger-toolbar__shell {
    row-gap: 0.75rem;
}

.portal-admin-newsletter-ledger-extract .portal-admin-ledger-toolbar__eyebrow {
    color: var(--bs-secondary-color);
}

.portal-admin-tool-card__tags .portal-admin-edit-schema {
    font-size: 0.62rem;
    padding: 0.12rem 0.45rem;
}

.portal-admin-newsletter-rail-extract__banner {
    padding-bottom: 0.35rem;
    border-bottom: 1px dashed rgba(var(--ictaz-brand-rgb), 0.22);
}

.portal-admin-newsletter-csv-hyper {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--ictaz-brand);
    text-decoration: none;
    padding: 0.35rem 0.55rem;
    border-radius: 0.5rem;
    border: 1px solid transparent;
    transition:
        border-color 0.15s ease,
        background-color 0.15s ease,
        color 0.15s ease;
}

.portal-admin-newsletter-csv-hyper:hover,
.portal-admin-newsletter-csv-hyper:focus-visible {
    color: var(--ictaz-brand);
    border-color: rgba(var(--ictaz-brand-rgb), 0.35);
    background: rgba(var(--ictaz-brand-rgb), 0.06);
    text-decoration: none;
}

.portal-admin-newsletter-csv-hyper:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.45);
    outline-offset: 2px;
}

.portal-admin-newsletter-csv-hyper__glyph {
    font-size: 1rem;
    opacity: 0.9;
}

.portal-admin-newsletter-csv-hyper--compact {
    padding: 0.15rem 0.35rem;
    font-size: 0.8125rem;
}

.portal-admin-newsletter-paramsibling__nav ul {
    row-gap: 0.35rem;
}

.portal-admin-newsletter-skiplinks {
    padding: 0.65rem 0.85rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.14);
    background: linear-gradient(180deg, rgba(var(--ictaz-brand-rgb), 0.05), var(--bs-body-bg));
}

.portal-admin-newsletter-path {
    font-size: 0.72rem;
    letter-spacing: 0.02em;
    word-break: break-all;
}

.portal-admin-newsletter-provenance {
    display: inline-flex;
    align-items: center;
    padding: 0.22rem 0.55rem;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    border-radius: 0.4rem;
    border: 1px solid transparent;
    line-height: 1.2;
}

.portal-admin-newsletter-provenance--query {
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}

.portal-admin-newsletter-provenance--system {
    color: var(--bs-secondary-color);
    background: rgba(var(--ictaz-brand-rgb), 0.06);
    border-color: rgba(var(--ictaz-brand-rgb), 0.16);
}

.portal-admin-newsletter-provenance--visitor {
    color: var(--ictaz-brand);
    background: rgba(var(--ictaz-brand-rgb), 0.12);
    border-color: rgba(var(--ictaz-brand-rgb), 0.22);
}

.portal-admin-newsletter-provenance--presentation {
    color: var(--bs-secondary-color);
    background: linear-gradient(135deg, rgba(var(--ictaz-brand-rgb), 0.08), var(--bs-tertiary-bg));
    border-color: rgba(var(--ictaz-brand-rgb), 0.12);
}

.portal-admin-newsletter-statecap {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.65rem;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 999px;
}

.portal-admin-newsletter-rail {
    border-top-color: rgba(var(--ictaz-brand-rgb), 0.22) !important;
}

.portal-admin-newsletter-ingress {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.portal-admin-newsletter-ingress__mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.portal-admin-newsletter-ingress__quiet {
    opacity: 0.88;
}

.portal-admin-newsletter-latest {
    border-left: 3px solid rgba(var(--ictaz-brand-rgb), 0.45);
    padding-left: 0.15rem;
}

.portal-admin-newsletter-latest__primary {
    min-width: 0;
    padding-right: 1rem;
}

.portal-admin-newsletter-latest__header {
    min-width: 0;
}

.portal-admin-newsletter-latest__aside {
    margin-left: auto;
    padding-left: 1rem;
    border-left: 1px solid var(--bs-border-color);
}

.portal-admin-newsletter-subscriber__shell {
    min-width: 0;
}

.portal-admin-newsletter-subscriber__dossier {
    font-weight: 600;
    color: var(--ictaz-brand);
    border-radius: 0.35rem;
    padding: 0.1rem 0.25rem;
    margin: -0.1rem -0.25rem;
    transition:
        background-color 0.15s ease,
        color 0.15s ease;
}

.portal-admin-newsletter-subscriber__dossier:hover,
.portal-admin-newsletter-subscriber__dossier:focus-visible {
    color: var(--ictaz-brand);
    background: rgba(var(--ictaz-brand-rgb), 0.08);
}

.portal-admin-newsletter-subscriber__mailto {
    line-height: 1;
}

.portal-admin-newsletter-receipt__link:hover .portal-admin-newsletter-receipt__time,
.portal-admin-newsletter-receipt__link:focus-visible .portal-admin-newsletter-receipt__time {
    color: var(--ictaz-brand) !important;
}

.portal-admin-newsletter-receipt__link:hover .portal-admin-newsletter-receipt__id,
.portal-admin-newsletter-receipt__link:focus-visible .portal-admin-newsletter-receipt__id {
    color: var(--ictaz-brand);
}

.portal-admin-newsletter-receipt__link:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.45);
    outline-offset: 2px;
    border-radius: 0.35rem;
}

.portal-admin-newsletter-record-headrail {
    max-width: 42rem;
}

.portal-admin-newsletter-record-console__shell {
    background: linear-gradient(180deg, rgba(var(--ictaz-brand-rgb), 0.04), var(--bs-body-bg) 70%);
}

.portal-admin-newsletter-record-console__band-title {
    margin: 0;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-newsletter-record-console__glyph {
    display: inline-flex;
    width: 1.25rem;
    justify-content: center;
    color: var(--ictaz-brand);
    opacity: 0.85;
}

.portal-admin-newsletter-record-console__hint {
    font-weight: 500;
}

.portal-admin-newsletter-record-console__subline {
    max-width: 26rem;
}

.portal-admin-newsletter-record-console__egress-contract .portal-admin-newsletter-extract__row dt {
    align-self: start;
    padding-top: 0.15rem;
}

.portal-admin-newsletter-record-internal__list {
    margin: 0;
    padding: 0;
}

.portal-admin-newsletter-record-consolelink {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--bs-body-color);
    text-decoration: none;
    padding: 0.35rem 0.65rem;
    border-radius: 0.5rem;
    border: 1px solid var(--bs-border-color);
    background: linear-gradient(180deg, var(--bs-body-bg), var(--bs-tertiary-bg));
    transition:
        border-color 0.15s ease,
        background-color 0.15s ease,
        color 0.15s ease;
}

.portal-admin-newsletter-record-consolelink:hover,
.portal-admin-newsletter-record-consolelink:focus-visible {
    color: var(--ictaz-brand);
    border-color: rgba(var(--ictaz-brand-rgb), 0.38);
    background: rgba(var(--ictaz-brand-rgb), 0.07);
    text-decoration: none;
}

.portal-admin-newsletter-record-consolelink:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.45);
    outline-offset: 2px;
}

.portal-admin-newsletter-record-consolelink__glyph {
    font-size: 1rem;
    opacity: 0.9;
    color: var(--ictaz-brand);
}

.portal-admin-newsletter-record-extract-primary {
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-decoration: none;
    color: #fff !important;
    background: linear-gradient(135deg, var(--bs-primary), rgba(var(--ictaz-brand-rgb), 0.95));
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 0.5rem;
    padding: 0.48rem 0.95rem;
    box-shadow: 0 0.12rem 0.4rem rgba(var(--ictaz-brand-rgb), 0.28);
    transition:
        filter 0.15s ease,
        box-shadow 0.15s ease;
}

.portal-admin-newsletter-record-extract-primary:hover {
    filter: brightness(1.05);
    box-shadow: 0 0.18rem 0.5rem rgba(var(--ictaz-brand-rgb), 0.36);
    color: #fff !important;
}

.portal-admin-newsletter-record-extract-primary:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.55);
    outline-offset: 2px;
    color: #fff !important;
}

.portal-admin-newsletter-record-extract-primary__glyph {
    font-size: 1.05rem;
    opacity: 0.95;
}

.portal-admin-newsletter-record-skiplink {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 0.9rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 999px;
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.22);
    text-decoration: none;
    color: var(--bs-secondary-color);
    background: var(--bs-body-bg);
    transition:
        border-color 0.15s ease,
        background-color 0.15s ease,
        color 0.15s ease;
}

.portal-admin-newsletter-record-skiplink:hover {
    border-color: rgba(var(--ictaz-brand-rgb), 0.35);
    color: var(--ictaz-brand);
    background: rgba(var(--ictaz-brand-rgb), 0.06);
}

.portal-admin-newsletter-record-skiplink:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.45);
    outline-offset: 2px;
}

.portal-admin-newsletter-record-skiplink--emphasis {
    border-color: rgba(var(--ictaz-brand-rgb), 0.42);
    color: #fff;
    background: var(--ictaz-brand);
}

.portal-admin-newsletter-record-skiplink--emphasis:hover {
    color: #fff;
    filter: brightness(1.06);
}

.portal-admin-newsletter-record-skiplink--accent {
    border-color: rgba(var(--ictaz-brand-rgb), 0.35);
    color: var(--ictaz-brand);
    background: rgba(var(--ictaz-brand-rgb), 0.09);
}

.portal-admin-newsletter-record-timegrid {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.portal-admin-newsletter-record-timegrid__row {
    display: grid;
    grid-template-columns: 6.75rem minmax(0, 1fr);
    gap: 0.35rem 0.65rem;
    align-items: baseline;
}

.portal-admin-newsletter-record-timegrid__row dt {
    margin: 0;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-newsletter-record-timegrid__row dd {
    margin: 0;
    min-width: 0;
}

.portal-admin-newsletter-record-predicate--framed {
    padding: 0.65rem 0.9rem;
    border-radius: 0.65rem;
    border: 1px dashed rgba(var(--ictaz-brand-rgb), 0.32);
    background: linear-gradient(180deg, rgba(var(--ictaz-brand-rgb), 0.055), var(--bs-tertiary-bg) 72%);
}

.portal-admin-newsletter-record-predicate__head {
    border-bottom: 1px dashed rgba(var(--ictaz-brand-rgb), 0.18);
    padding-bottom: 0.5rem;
    margin-bottom: 0.65rem !important;
}

.portal-admin-newsletter-record-specfoot {
    display: grid;
    grid-template-columns: minmax(7.5rem, 10.5rem) minmax(0, 1fr);
    gap: 0.35rem 1rem;
    align-items: baseline;
}

.portal-admin-newsletter-record-specfoot__term {
    margin: 0;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-newsletter-record-specfoot__def {
    min-width: 0;
}

@media (max-width: 575.98px) {
    .portal-admin-newsletter-record-specfoot {
        grid-template-columns: 1fr;
    }
}

.portal-admin-newsletter-record-boundary {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--bs-secondary-color);
}

.portal-admin-newsletter-record-boundary__cap {
    font-size: 0.58rem !important;
    letter-spacing: 0.06em;
}

.portal-admin-newsletter-record-mailstrip {
    border-radius: 0.65rem;
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.18);
    background: linear-gradient(135deg, rgba(var(--ictaz-brand-rgb), 0.07), var(--bs-tertiary-bg) 55%);
}

.portal-admin-newsletter-record-mailstrip__grid {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem 1rem;
}

.portal-admin-newsletter-record-mailstrip__eyebrow {
    margin: 0;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.portal-admin-newsletter-record-mailstrip__value {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--bs-body-color);
}

.portal-admin-newsletter-record-mailstrip__toolbar {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
}

.portal-admin-newsletter-record-clipboard,
.portal-admin-newsletter-record-compose {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border-radius: 0.5rem;
    border: 1px solid rgba(var(--ictaz-brand-rgb), 0.28);
    background: var(--bs-body-bg);
    color: var(--ictaz-brand);
    text-decoration: none;
    transition:
        border-color 0.15s ease,
        background-color 0.15s ease,
        color 0.15s ease;
}

.portal-admin-newsletter-record-clipboard {
    cursor: pointer;
}

.portal-admin-newsletter-record-clipboard:hover,
.portal-admin-newsletter-record-clipboard:focus-visible,
.portal-admin-newsletter-record-compose:hover,
.portal-admin-newsletter-record-compose:focus-visible {
    border-color: rgba(var(--ictaz-brand-rgb), 0.45);
    background: rgba(var(--ictaz-brand-rgb), 0.08);
    color: var(--ictaz-brand);
}

.portal-admin-newsletter-record-clipboard:focus-visible,
.portal-admin-newsletter-record-compose:focus-visible {
    outline: 2px solid rgba(var(--ictaz-brand-rgb), 0.45);
    outline-offset: 2px;
}

.portal-admin-newsletter-record-predicate {
    text-align: end;
}

@media (max-width: 767.98px) {
    .portal-admin-newsletter-record-predicate {
        text-align: start;
        width: 100%;
    }
}

.portal-admin-newsletter-record-extract {
    align-self: stretch;
}

.portal-admin-newsletter-record-table .portal-admin-newsletter-receipt__id {
    margin-top: 0;
}

.portal-admin-newsletter-record-table caption {
    caption-side: top;
}

.portal-admin-newsletter-latest__dossierlink {
    color: inherit;
    font-weight: 600;
    border-radius: 0.35rem;
    padding: 0.1rem 0.2rem;
    margin: -0.1rem -0.2rem;
    transition:
        background-color 0.15s ease,
        color 0.15s ease;
}

.portal-admin-newsletter-latest__dossierlink:hover,
.portal-admin-newsletter-latest__dossierlink:focus-visible {
    color: var(--ictaz-brand);
    background: rgba(var(--ictaz-brand-rgb), 0.08);
}

.portal-admin-newsletter-subscriber__addr {
    font-weight: 500;
}

.portal-admin-newsletter-subscriber__realm-pill {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: lowercase;
    color: var(--bs-secondary-color) !important;
    background: var(--bs-tertiary-bg) !important;
    border-color: var(--bs-border-color) !important;
}

.portal-admin-newsletter-receipt__id {
    display: inline-block;
    margin-top: 0.35rem;
}

.portal-admin-newsletter-table tbody tr.portal-admin-newsletter-table__row {
    transition: background-color 0.15s ease;
}

@media (hover: hover) {
    .portal-admin-newsletter-table tbody tr.portal-admin-newsletter-table__row:hover {
        background-color: rgba(var(--ictaz-brand-rgb), 0.045);
    }
}

.portal-admin-newsletter-emptypulse {
    border-left: 3px solid rgba(var(--ictaz-brand-rgb), 0.35);
}

@media (min-width: 768px) {
    .portal-admin-newsletter-latest {
        display: flex;
        flex-wrap: nowrap;
        align-items: flex-start;
        gap: 0;
    }

    .portal-admin-newsletter-latest__aside {
        flex-shrink: 0;
        width: auto;
        min-width: 11rem;
    }
}

@media (max-width: 767.98px) {
    .portal-admin-newsletter-latest__aside {
        width: 100%;
        margin-top: 1rem;
        margin-left: 0;
        padding-left: 0;
        padding-top: 0.85rem;
        border-left: none;
        border-top: 1px solid var(--bs-border-color);
    }

    .portal-admin-newsletter-latest__aside .portal-admin-edit-toolbar__facts {
        margin-left: 0;
        justify-content: flex-start;
    }

    .portal-admin-newsletter-latest__aside .portal-admin-edit-toolbar__fact {
        text-align: left;
    }
}

@media (min-width: 1200px) {
    .portal-admin-newsletter-table .portal-admin-newsletter-col--receipt {
        width: 11rem;
    }

    .portal-admin-newsletter-table .portal-admin-newsletter-col--subscriber {
        min-width: 22rem;
    }
}
