:root {
    --portal-primary: #0056a6;
    --portal-primary-rgb: 0, 86, 166;
    --portal-dark: #16324f;
    --portal-dark-rgb: 22, 50, 79;
    --portal-accent: #d98c00;
    --portal-accent-rgb: 217, 140, 0;
    --portal-surface: #eef3f7;
    --portal-paper: #ffffff;
    --portal-muted: #5f7082;
    --portal-border: rgba(21, 48, 77, 0.14);
    --portal-shadow: 0 18px 40px rgba(15, 36, 58, 0.08);
    --portal-radius: 22px;
    --portal-font-sans: "Inter", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
    --portal-font-serif: "Source Serif 4", Georgia, serif;
    --portal-font-site: "Source Sans Pro", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
    --portal-leading-body: 1.65;
    --portal-leading-heading: 1.18;
    --portal-heading-tracking: -0.018em;
}

html,
body {
    min-height: 100%;
}

html {
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
}

body {
    color: #233445;
    font-family: var(--portal-font-sans);
    line-height: var(--portal-leading-body);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-feature-settings: "cv11" 1, "ss01" 1;
}

a {
    color: var(--portal-primary);
}

body,
button,
input,
select,
textarea,
.btn,
.form-control,
.form-select,
.table,
.dropdown-menu,
.breadcrumb,
.pagination {
    font-family: var(--portal-font-sans);
}

.portal-body {
    --portal-font-sans: var(--portal-font-site);
    --portal-font-serif: var(--portal-font-site);
    --portal-heading-color: var(--portal-primary);
    background:
        radial-gradient(circle at top left, rgba(var(--portal-nav-bg-rgb, 22, 50, 79), 0.08) 0%, rgba(var(--portal-nav-bg-rgb, 22, 50, 79), 0) 34%),
        linear-gradient(180deg, rgba(var(--portal-nav-bg-rgb, 22, 50, 79), 0.045) 0%, #f9fcfa 26%, #f6faf7 100%);
    color: #233445;
    font-family: var(--portal-font-site);
    font-size: 0.97rem;
    line-height: var(--portal-leading-body);
}

.portal-top-loader {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1205;
    height: 3px;
    opacity: 0;
    pointer-events: none;
    background: rgba(255, 255, 255, 0.16);
    overflow: hidden;
    transition: opacity 0.18s ease;
}

.portal-boot-veil {
    position: fixed;
    inset: 0;
    z-index: 1200;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    background:
        radial-gradient(circle at top left, rgba(var(--portal-nav-bg-rgb, 22, 50, 79), 0.12) 0%, rgba(var(--portal-nav-bg-rgb, 22, 50, 79), 0) 36%),
        linear-gradient(180deg, rgba(249, 252, 250, 0.995) 0%, rgba(246, 250, 247, 0.995) 100%);
    transition: opacity 0.24s ease, visibility 0s linear 0.24s;
}

.portal-boot-splash {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(92vw, 24rem);
    transform: translate(-50%, -50%);
    display: grid;
    gap: 1rem;
    padding: 1.5rem 1.35rem 1.2rem;
    text-align: center;
    color: #233445;
}

.portal-boot-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 8rem;
    padding: 0.35rem 0.5rem;
}

.portal-boot-brand.has-image img {
    display: block;
    width: min(100%, 18rem);
    max-height: 8.5rem;
    object-fit: contain;
    object-position: center;
    filter: drop-shadow(0 10px 22px rgba(15, 36, 58, 0.08));
}

.portal-boot-brand.is-fallback {
    border-radius: 1.2rem;
    background: linear-gradient(135deg, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.1), rgba(var(--portal-dark-rgb, 22, 50, 79), 0.08));
}

.portal-boot-brand-fallback {
    color: var(--portal-dark, #16324f);
    font-size: clamp(2rem, 1.6rem + 1vw, 2.6rem);
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.portal-boot-progress {
    position: relative;
    height: 0.45rem;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.09);
}

.portal-boot-progress-bar {
    display: block;
    width: max(12%, var(--portal-boot-progress, 15%));
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--portal-accent, #d98c00) 0%, var(--portal-primary, #0056a6) 100%);
    box-shadow: 0 0 16px rgba(var(--portal-primary-rgb, 0, 86, 166), 0.24);
    transition: width 0.22s ease;
}

.portal-boot-progress-label {
    color: var(--portal-primary, #0056a6);
    font-size: 0.84rem;
    font-weight: 700;
}

.portal-top-loader-bar {
    display: block;
    width: 42%;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--portal-accent, #d98c00) 0%, var(--portal-primary, #0056a6) 100%);
    box-shadow: 0 0 14px rgba(var(--portal-primary-rgb, 0, 86, 166), 0.32);
    transform: translateX(-120%);
}

.portal-body.portal-public-booting .portal-top-loader {
    opacity: 1;
}

.portal-body.portal-public-booting .portal-boot-veil {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.portal-body.portal-public-booting .portal-top-loader-bar {
    animation: portalTopLoaderSlide 1.05s ease-in-out infinite;
}

.portal-body.portal-public-ready .portal-top-loader {
    opacity: 0;
}

.portal-body.portal-public-ready .portal-boot-veil {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

@keyframes portalTopLoaderSlide {
    0% {
        transform: translateX(-120%);
    }

    60% {
        transform: translateX(135%);
    }

    100% {
        transform: translateX(165%);
    }
}

.portal-body,
.portal-body button,
.portal-body input,
.portal-body select,
.portal-body textarea,
.portal-body .btn,
.portal-body .form-control,
.portal-body .form-select,
.portal-body .table,
.portal-body .dropdown-menu,
.portal-body .breadcrumb,
.portal-body .pagination {
    font-family: var(--portal-font-site);
}

.portal-body .pagination {
    --bs-pagination-color: var(--portal-primary);
    --bs-pagination-bg: #fff;
    --bs-pagination-border-color: rgba(var(--portal-primary-rgb), 0.16);
    --bs-pagination-hover-color: var(--portal-primary);
    --bs-pagination-hover-bg: rgba(var(--portal-primary-rgb), 0.08);
    --bs-pagination-hover-border-color: rgba(var(--portal-primary-rgb), 0.28);
    --bs-pagination-focus-color: var(--portal-primary);
    --bs-pagination-focus-bg: rgba(var(--portal-primary-rgb), 0.1);
    --bs-pagination-focus-border-color: rgba(var(--portal-primary-rgb), 0.34);
    --bs-pagination-focus-box-shadow: 0 0 0 0.18rem rgba(var(--portal-primary-rgb), 0.14);
    --bs-pagination-active-color: #fff;
    --bs-pagination-active-bg: var(--portal-primary);
    --bs-pagination-active-border-color: var(--portal-primary);
    --bs-pagination-disabled-color: rgba(var(--portal-dark-rgb), 0.5);
    --bs-pagination-disabled-bg: rgba(var(--portal-primary-rgb), 0.04);
    --bs-pagination-disabled-border-color: rgba(var(--portal-primary-rgb), 0.1);
}

.portal-body .page-link {
    border-radius: 0.8rem;
    font-weight: 700;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.portal-body .page-item + .page-item .page-link {
    margin-left: 0.4rem;
}

.portal-body .page-item.active .page-link {
    box-shadow: 0 12px 24px rgba(var(--portal-primary-rgb), 0.18);
}

.portal-body h1,
.portal-body h2,
.portal-body h3,
.portal-body h4,
.portal-body h5,
.portal-body h6,
.portal-body .h1,
.portal-body .h2,
.portal-body .h3,
.portal-body .h4,
.portal-body .h5,
.portal-body .h6,
.portal-body .portal-brand-name,
.portal-body .portal-brand-logo-fallback {
    font-family: var(--portal-font-site);
    letter-spacing: -0.014em;
}

.portal-body p,
.portal-body li,
.portal-body dd,
.portal-body blockquote,
.portal-body .lead,
.portal-body .portal-rich-content p,
.portal-body .portal-rich-content li {
    text-align: justify;
    text-justify: inter-word;
}

.portal-body h1,
.portal-body h2,
.portal-body h3,
.portal-body h4,
.portal-body h5,
.portal-body h6,
.portal-admin-content h1,
.portal-admin-content h2,
.portal-admin-content h3,
.portal-admin-content h4,
.portal-admin-content h5,
.portal-admin-content h6,
.portal-client-main h1,
.portal-client-main h2,
.portal-client-main h3,
.portal-client-main h4,
.portal-client-main h5,
.portal-client-main h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
    color: var(--portal-heading-color, #19324a);
    font-family: var(--portal-font-serif);
    font-weight: 700;
    letter-spacing: var(--portal-heading-tracking);
    line-height: var(--portal-leading-heading);
}

.portal-main {
    position: relative;
}

.portal-skip-link {
    position: absolute;
    left: 1rem;
    top: -4rem;
    z-index: 1200;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    background: #111827;
    color: #fff;
    text-decoration: none;
}

.portal-skip-link:focus {
    top: 1rem;
}

.portal-header {
    --portal-header-motion-duration: 0.34s;
    --portal-header-motion-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1040;
    box-shadow: 0 12px 28px rgba(14, 34, 55, 0.08);
    transform: translateY(calc(var(--portal-header-offset, 0px) * -1));
    transition:
        transform var(--portal-header-motion-duration) var(--portal-header-motion-ease),
        box-shadow 0.24s ease;
    will-change: transform;
}

.portal-body.portal-public-booting .portal-header,
.portal-body.portal-public-booting .portal-header-spacer,
.portal-body.portal-public-booting .portal-header [data-portal-header-top] {
    transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
    .portal-header,
    .portal-header-spacer,
    .portal-boot-veil,
    .portal-boot-progress-bar,
    .portal-top-loader {
        transition: none !important;
    }

    .portal-body.portal-public-booting .portal-top-loader-bar {
        animation-duration: 1.4s;
    }
}

.portal-header-spacer {
    display: block;
    width: 100%;
    height: 0;
    pointer-events: none;
    transition: none;
}

.portal-header [data-portal-header-top] {
    position: relative;
    z-index: 1;
    max-height: 12rem;
    opacity: 1;
    transform: translateY(0);
    overflow: hidden;
    transition: none;
}

.portal-header.is-condensed {
    box-shadow: 0 10px 24px rgba(14, 34, 55, 0.12);
}

.portal-header.is-nav-open {
    z-index: 1060;
}

.portal-utilitybar {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0) 42%),
        linear-gradient(
            90deg,
            rgba(var(--portal-nav-bg-rgb, 22, 50, 79), 0.94) 0%,
            rgba(var(--portal-nav-bg-rgb, 22, 50, 79), 0.98) 52%,
            rgba(var(--portal-nav-bg-rgb, 22, 50, 79), 1) 100%
        );
    color: rgba(255, 255, 255, 0.92);
    font-family: var(--portal-font-sans);
    font-size: 0.76rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: inset 0 -1px 0 rgba(9, 20, 54, 0.2);
}

.portal-utilitybar .container {
    padding-top: 0.24rem;
    padding-bottom: 0.24rem;
    transition: none;
}

.portal-utility-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    min-height: 1.5rem;
}

.portal-utility-date-block {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
}

.portal-utility-label {
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-utility-date {
    color: var(--portal-nav-text, #fff);
    font-size: 0.83rem;
    font-weight: 700;
    letter-spacing: 0;
}

.portal-utility-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

.portal-utility-meta-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0;
    border-radius: 0;
    color: rgba(var(--portal-nav-text-rgb, 255, 255, 255), 0.92);
    text-decoration: none;
    background: transparent;
    border: 0;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.portal-utility-meta-link:hover,
.portal-utility-meta-link:focus-visible {
    color: var(--portal-nav-text, #fff);
    background: transparent;
    border-color: transparent;
}

.portal-utility-meta-label {
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.72rem;
    font-weight: 700;
}

.portal-utility-meta-value {
    font-size: 0.82rem;
    font-weight: 700;
}

.portal-utility-shortcut {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.5rem;
    text-decoration: none;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.portal-utility-shortcut--label {
    padding: 0 0.34rem 0 0;
    border-radius: 999px;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: transparent;
    border: 0;
}

.portal-utility-shortcut--icon {
    width: 1.5rem;
    border-radius: 999px;
    color: #fff;
    font-size: 0.92rem;
}

.portal-utility-shortcut:hover,
.portal-utility-shortcut:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.22);
}

.portal-accessibility-button {
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    font-size: 0.76rem;
    font-weight: 700;
    padding: 0.26rem 0.7rem;
    min-height: 1.5rem;
    min-width: 2.45rem;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.portal-accessibility-button:hover,
.portal-accessibility-button:focus-visible {
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.38);
}

.portal-accessibility-contrast {
    min-width: auto;
}

.portal-brandbar {
    background: var(--portal-brand-bg, #fff);
    border-bottom: 1px solid rgba(var(--portal-brand-bg-rgb, 255, 255, 255), 0.2);
    transition: border-color var(--portal-header-motion-duration) var(--portal-header-motion-ease);
}

.portal-brandbar .container {
    padding-top: 0.85rem;
    padding-bottom: 0.85rem;
    transition: padding var(--portal-header-motion-duration) var(--portal-header-motion-ease);
}

.portal-brandbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.35rem;
}

.portal-brand-column {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    justify-content: center;
}

.portal-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    color: inherit;
    text-decoration: none;
    min-width: 0;
}

.portal-brand-logo {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex: 0 0 auto;
    width: min(100%, 24rem);
    max-width: 24rem;
    height: auto;
    min-height: 7.65rem;
    min-width: 12rem;
    padding: 0.2rem 0;
}

.portal-brand-logo.has-image {
    background: transparent;
}

.portal-brand-logo.is-fallback {
    border-radius: 1.15rem;
    background: linear-gradient(135deg, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.12) 0%, rgba(var(--portal-dark-rgb, 22, 50, 79), 0.1) 100%);
    border: 1px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.16);
    justify-content: center;
}

.portal-brand-logo-fallback {
    color: var(--portal-dark);
    font-family: var(--portal-font-serif);
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.portal-brand-logo img {
    width: 100%;
    height: auto;
    max-height: 7.25rem;
    object-fit: contain;
    object-position: left center;
    display: block;
}

.portal-footer-brand img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left center;
}
.portal-brand-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 0.22rem;
    min-width: 0;
    text-align: left;
}

.portal-brand-name {
    color: var(--portal-brand-name, var(--portal-brand-text, var(--portal-primary)));
    font-family: var(--portal-font-serif);
    font-size: clamp(1.2rem, 1.38vw, 1.62rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1;
}

.portal-brand-address,
.portal-brand-cnpj {
    color: var(--portal-brand-address, var(--portal-brand-text, var(--portal-muted)));
    font-family: var(--portal-font-sans);
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.42;
}

.portal-header-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
    flex: 0 0 auto;
    max-width: 31rem;
}

.portal-navbar {
    --portal-navbar-min-height: 1.98rem;
    --portal-navbar-link-padding-y: 0;
    --portal-navbar-link-padding-x: 0.46rem;
    --portal-navbar-item-font-size: 0.83rem;
    --portal-navbar-toggle-padding-y: 0.08rem;
    --portal-navbar-toggle-padding-x: 0.46rem;
    --portal-navbar-toggle-gap: 0.24rem;
    --portal-navbar-toggle-font-size: 0.78rem;
    --portal-navbar-toggle-icon-size: 1.22rem;
    --portal-nav-bg: var(--portal-menu-bg, var(--portal-dark));
    --portal-nav-bg-rgb: var(--portal-menu-bg-rgb, var(--portal-dark-rgb));
    --portal-nav-text: var(--portal-menu-text, #fff);
    --portal-nav-text-rgb: var(--portal-menu-text-rgb, 255, 255, 255);
    position: relative;
    top: auto;
    z-index: 1;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 38%),
        linear-gradient(
            90deg,
            rgba(var(--portal-nav-bg-rgb, 22, 50, 79), 0.94) 0%,
            rgba(var(--portal-nav-bg-rgb, 22, 50, 79), 0.98) 46%,
            rgba(var(--portal-nav-bg-rgb, 22, 50, 79), 1) 100%
        );
    padding-top: 0;
    padding-bottom: 0;
    border-top: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        inset 0 -1px 0 rgba(10, 21, 56, 0.24);
    transition: box-shadow 0.24s ease;
}

.portal-header.is-condensed .portal-navbar {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        inset 0 -1px 0 rgba(10, 21, 56, 0.24),
        0 7px 18px rgba(14, 34, 55, 0.14);
}

.portal-navbar .container {
    min-height: var(--portal-navbar-min-height);
    padding-top: 0;
    padding-bottom: 0;
    align-items: center;
    justify-content: center;
}

.portal-navbar-compact-brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 0;
    max-width: 0;
    text-align: center;
    padding-inline: 0;
    margin-right: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    text-decoration: none;
    transform: translateX(-1.1rem);
    visibility: hidden;
    transition:
        width var(--portal-header-motion-duration) var(--portal-header-motion-ease),
        max-width var(--portal-header-motion-duration) var(--portal-header-motion-ease),
        opacity 0.24s ease,
        transform var(--portal-header-motion-duration) var(--portal-header-motion-ease),
        visibility 0s linear var(--portal-header-motion-duration);
}

.portal-navbar-compact-logo {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    min-height: 3.4rem;
    max-width: clamp(9.5rem, 28vw, 16rem);
    overflow: hidden;
}

.portal-navbar-compact-logo.has-image img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: 3.6rem;
    object-fit: contain;
    object-position: left center;
    filter: var(--portal-menu-logo-filter, brightness(0) invert(1));
}

.portal-navbar-compact-logo.is-fallback {
    justify-content: center;
}

.portal-navbar-compact-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    color: var(--portal-nav-text, #fff);
    font-family: var(--portal-font-site);
    font-size: clamp(1.2rem, 1rem + 0.6vw, 1.7rem);
    font-style: normal;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-navbar .navbar-collapse {
    flex-grow: 0;
    justify-content: center;
}

.portal-nav-label {
    color: rgba(var(--portal-nav-text-rgb, 255, 255, 255), 0.74);
    font-family: var(--portal-font-sans);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-nav-toggle {
    display: inline-flex;
    align-items: center;
    gap: var(--portal-navbar-toggle-gap);
    border-color: rgba(var(--portal-nav-text-rgb, 255, 255, 255), 0.35);
    border-radius: 999px;
    padding: var(--portal-navbar-toggle-padding-y) var(--portal-navbar-toggle-padding-x);
    background: rgba(var(--portal-nav-text-rgb, 255, 255, 255), 0.09);
    color: var(--portal-nav-text, #fff);
    font-size: var(--portal-navbar-toggle-font-size);
    font-weight: 700;
    box-shadow: none;
}

.portal-nav-toggle:hover,
.portal-nav-toggle:focus-visible {
    background: rgba(var(--portal-nav-text-rgb, 255, 255, 255), 0.16);
    border-color: rgba(var(--portal-nav-text-rgb, 255, 255, 255), 0.52);
}

.portal-navbar .navbar-toggler-icon {
    width: var(--portal-navbar-toggle-icon-size);
    height: var(--portal-navbar-toggle-icon-size);
    background-image: linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor);
    background-size: 100% 2px, 100% 2px, 100% 2px;
    background-position: center 28%, center, center 72%;
    background-repeat: no-repeat;
}

.portal-toggler-label {
    line-height: 1;
}

.portal-navbar-nav {
    align-items: stretch;
    gap: 0.12rem;
    margin-left: auto;
    margin-right: auto;
    justify-content: center;
}

.portal-nav-item {
    position: relative;
}

.portal-navbar .container,
.portal-navbar .navbar-collapse,
.portal-navbar-nav {
    overflow: visible;
}

.portal-header.is-condensed .portal-navbar .container {
    --portal-compact-brand-slot: clamp(11.25rem, 14vw, 13.5rem);
    display: grid;
    grid-template-columns: var(--portal-compact-brand-slot) minmax(0, 1fr);
    align-items: center;
    column-gap: 1rem;
}

.portal-header.is-condensed .portal-navbar .navbar-collapse {
    grid-column: 2;
    flex-grow: 1;
    justify-content: flex-start;
    min-width: 0;
}

.portal-header.is-condensed .portal-navbar-nav {
    margin-left: 0;
    margin-right: 0;
    justify-content: flex-start;
}

.portal-header.is-condensed .portal-navbar-compact-brand {
    grid-column: 1;
    width: 100%;
    max-width: 100%;
    padding-inline: 0.15rem;
    margin-right: 0;
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
    visibility: visible;
    transition-delay: 0s;
}

.portal-navbar .nav-link {
    display: flex;
    align-items: center;
    color: rgba(var(--portal-nav-text-rgb, 255, 255, 255), 0.9);
    font-family: var(--portal-font-sans);
    font-size: var(--portal-navbar-item-font-size);
    font-weight: 700;
    letter-spacing: 0;
    padding: var(--portal-navbar-link-padding-y) var(--portal-navbar-link-padding-x);
    border-radius: 0;
    white-space: nowrap;
    line-height: 1;
    transition: color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease;
}

.portal-nav-dropdown-group {
    display: flex;
    align-items: stretch;
    border-radius: 0.5rem;
    transition: none;
}

.portal-nav-link-main {
    border-radius: 0.5rem 0 0 0.5rem;
}

.portal-nav-link-dropdown-only {
    width: 100%;
    justify-content: space-between;
    border: 0;
    background: transparent;
    border-radius: 0.5rem;
}

.portal-nav-link-dropdown-only::after {
    margin-left: 0.5rem;
}

.portal-nav-dropdown-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.55rem;
    border: 0;
    background: transparent;
    border-radius: 0 0.5rem 0.5rem 0;
    padding-left: 0.4rem !important;
    padding-right: 0.62rem !important;
    transition: none;
}

.portal-nav-dropdown-toggle::after {
    margin-left: 0;
    transition: none;
}

.portal-navbar .nav-link:hover,
.portal-navbar .nav-link:focus-visible,
.portal-navbar .nav-link.active,
.portal-navbar .show > .nav-link,
.portal-nav-dropdown-group.is-active,
.portal-nav-dropdown-group:hover,
.portal-nav-dropdown-group:focus-within {
    color: var(--portal-nav-text, #fff);
    background: rgba(var(--portal-nav-text-rgb, 255, 255, 255), 0.08);
    box-shadow: none;
}

@media (max-width: 1199.98px) {
    .portal-header,
    .portal-header-spacer,
    .portal-header [data-portal-header-top] {
        transition: none;
    }

    .portal-navbar .container,
    .portal-header.is-condensed .portal-navbar .container {
        display: flex;
        flex-wrap: nowrap;
        position: relative;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        min-height: var(--portal-navbar-min-height);
    padding-top: 0;
    padding-bottom: 0;
    }

    .portal-header.is-condensed .portal-navbar-compact-brand {
        order: 1;
        width: auto;
        max-width: min(14rem, 52vw);
        padding-inline: 0;
        margin-right: auto;
        opacity: 1;
        overflow: hidden;
        pointer-events: auto;
        transform: none;
        visibility: visible;
    }

    .portal-navbar .navbar-toggler,
    .portal-nav-toggle {
        order: 2;
        margin-left: auto;
    }

    .portal-navbar .navbar-collapse,
    .portal-header.is-condensed .portal-navbar .navbar-collapse {
        order: 3;
        position: absolute;
        top: calc(100% + 0.5rem);
        left: 0;
        right: 0;
        z-index: 1065;
        grid-column: auto;
        flex: 0 0 auto;
        width: 100%;
        min-width: 0;
        max-width: none;
        max-height: calc(100vh - var(--portal-header-nav-height, 3.75rem) - 1rem);
        margin-top: 0;
        padding: 0.85rem;
        overflow-y: auto;
        border-radius: 1rem;
        background: rgba(var(--portal-nav-bg-rgb, 7, 26, 42), 0.985);
        border: 1px solid rgba(255, 255, 255, 0.08);
        box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.24);
        backdrop-filter: blur(16px);
    }

    .portal-navbar .navbar-collapse:not(.show):not(.collapsing) {
        display: none !important;
    }

    .portal-navbar .navbar-collapse.show,
    .portal-navbar .navbar-collapse.collapsing {
        display: block !important;
    }

    .portal-navbar-nav,
    .portal-header.is-condensed .portal-navbar-nav {
        flex-direction: column !important;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0.12rem;
        margin-left: 0;
        margin-right: 0;
    }

    .portal-navbar .nav-link {
        white-space: normal;
        border-radius: 0.85rem;
    }

    .portal-nav-dropdown-group {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .portal-nav-link-main {
        border-radius: 0.85rem 0 0 0.85rem;
    }

    .portal-nav-link-dropdown-only {
        border-radius: 0.85rem;
    }

    .portal-nav-dropdown-toggle {
        border-radius: 0 0.85rem 0.85rem 0;
    }

    .portal-dropdown-menu,
    .portal-dropdown-menu[data-bs-popper] {
        position: static !important;
        inset: auto !important;
        min-width: 0;
        width: 100%;
        max-width: none;
        margin-top: 0.35rem;
        padding: 0.55rem;
        border-radius: 0.95rem;
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.985) 0%, rgba(244, 247, 251, 0.98) 100%);
        border: 1px solid rgba(21, 48, 77, 0.14);
        box-shadow:
            0 0.7rem 1.4rem rgba(7, 26, 42, 0.08),
            inset 0 0 0 1px rgba(255, 255, 255, 0.34);
        transform: none !important;
        float: none;
    }

    .portal-dropdown-menu::before,
    .portal-dropdown-item-group::after {
        display: none;
    }

    .portal-dropdown-panel,
    .portal-dropdown-links {
        width: 100%;
    }

    .portal-dropdown-item-parent {
        align-items: flex-start;
        padding-right: 0.65rem;
    }

    .portal-dropdown-item-icon {
        margin-top: 0.35rem;
        color: rgba(var(--portal-primary-rgb), 0.72);
    }

    .portal-dropdown-item-parent .portal-dropdown-item-icon {
        display: none;
    }

    .portal-dropdown-item-group {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
    }

    .portal-dropdown-subtoggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        align-self: stretch;
        min-width: 2.8rem;
        border: 0;
        border-radius: 0.85rem;
        background: transparent;
        color: rgba(var(--portal-primary-rgb), 0.72);
        transition: background-color 0.18s ease, color 0.18s ease;
    }

    .portal-dropdown-subtoggle:hover,
    .portal-dropdown-subtoggle:focus-visible,
    .portal-dropdown-item-group.is-expanded .portal-dropdown-subtoggle {
        background: rgba(var(--portal-primary-rgb), 0.08);
        color: var(--portal-primary);
    }

    .portal-dropdown-item-group.is-expanded .portal-dropdown-subtoggle i {
        transform: rotate(180deg);
    }

    .portal-dropdown-submenu {
        position: static;
        top: auto;
        left: auto;
        grid-column: 1 / -1;
        min-width: 0;
        margin-top: 0.35rem;
        padding: 0.4rem;
        border: 1px solid rgba(var(--portal-primary-rgb), 0.12);
        border-left: 0.28rem solid rgba(var(--portal-primary-rgb), 0.46);
        border-radius: 0.85rem;
        background: rgba(var(--portal-primary-rgb), 0.045);
        box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.42);
    }

    .portal-dropdown-submenu::before {
        display: none;
    }

    .portal-dropdown-subitem {
        display: block;
        padding: 0.55rem 0.75rem;
        border-radius: 0.75rem;
        color: var(--portal-primary);
        white-space: normal;
        font-weight: 700;
    }

    .portal-dropdown-subitem:hover,
    .portal-dropdown-subitem:focus-visible {
        background: rgba(var(--portal-primary-rgb), 0.08);
        color: var(--portal-nav-bg, var(--portal-dark));
    }
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
    .portal-navbar {
        --portal-navbar-link-padding-y: 0;
        --portal-navbar-link-padding-x: 0.42rem;
        --portal-navbar-item-font-size: 0.83rem;
        --portal-navbar-min-height: 1.9rem;
    }

    .portal-navbar .container,
    .portal-header.is-condensed .portal-navbar .container {
        display: flex;
        flex-wrap: nowrap;
        position: relative;
        align-items: center;
        justify-content: space-between;
        gap: 0.65rem 0.9rem;
        min-height: var(--portal-navbar-min-height);
    padding-top: 0;
    padding-bottom: 0;
    }

    .portal-navbar-compact-brand,
    .portal-header.is-condensed .portal-navbar-compact-brand {
        order: 1;
        width: auto;
        max-width: clamp(11rem, 34vw, 15rem);
        padding-inline: 0;
        margin-right: auto;
        opacity: 1;
        overflow: hidden;
        pointer-events: auto;
        transform: none;
        visibility: visible;
    }

    .portal-navbar-compact-logo {
        max-width: clamp(9.5rem, 28vw, 14rem);
    }

    .portal-navbar .navbar-toggler,
    .portal-nav-toggle {
        order: 2;
        display: inline-flex;
        margin-left: auto;
    }

    .portal-navbar .navbar-collapse,
    .portal-header.is-condensed .portal-navbar .navbar-collapse {
        order: 3;
        position: absolute;
        top: calc(100% + 0.45rem);
        right: var(--bs-gutter-x, 0.75rem);
        left: auto;
        z-index: 1050;
        grid-column: auto;
        flex: 0 0 auto;
        width: min(22rem, calc(100vw - 1.5rem));
        min-width: min(22rem, calc(100vw - 1.5rem));
        max-width: calc(100vw - 1.5rem);
        margin-top: 0.25rem;
        padding: 0.85rem;
        border-radius: 1rem;
        background: rgba(var(--portal-nav-bg-rgb, 7, 26, 42), 0.98);
        border: 1px solid rgba(255, 255, 255, 0.08);
        box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.22);
    }

    .portal-navbar .navbar-collapse:not(.show) {
        display: none !important;
    }

    .portal-navbar .navbar-collapse.show,
    .portal-navbar .navbar-collapse.collapsing {
        display: block !important;
    }

    .portal-navbar-nav,
    .portal-header.is-condensed .portal-navbar-nav {
        flex-direction: column !important;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0.12rem;
        margin-left: 0;
        margin-right: 0;
    }

    .portal-navbar .nav-link {
        border-radius: 0.85rem;
    }

    .portal-nav-dropdown-group {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .portal-nav-link-main {
        border-radius: 0.85rem 0 0 0.85rem;
    }

    .portal-nav-link-dropdown-only {
        border-radius: 0.85rem;
    }

    .portal-nav-dropdown-toggle {
        border-radius: 0 0.85rem 0.85rem 0;
    }

    .portal-dropdown-menu {
        position: absolute !important;
        top: 0 !important;
        right: calc(100% + 0.45rem) !important;
        left: auto !important;
        min-width: 18rem;
        max-width: min(20rem, calc(100vw - 25rem));
        margin-top: 0.35rem;
        inset: auto !important;
        background: rgba(var(--portal-nav-bg-rgb, 7, 26, 42), 0.62);
        border-color: rgba(255, 255, 255, 0.08);
        box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.18);
    }

    .portal-dropdown-menu::before {
        display: none;
    }

    .portal-dropdown-item {
        color: rgba(var(--portal-nav-text-rgb, 255, 255, 255), 0.9);
    }

    .portal-dropdown-item:hover,
    .portal-dropdown-item:focus-visible {
        background: rgba(var(--portal-nav-text-rgb, 255, 255, 255), 0.08);
        color: var(--portal-nav-text, #fff);
    }

    .portal-dropdown-item-group::after {
        right: auto;
        left: -1.35rem;
        width: 1.55rem;
    }

    .portal-dropdown-submenu {
        left: auto;
        right: calc(100% - 0.08rem);
    }

    .portal-dropdown-submenu::before {
        left: auto;
        right: -0.8rem;
    }

    .portal-dropdown-subitem {
        color: rgba(var(--portal-nav-text-rgb, 255, 255, 255), 0.86);
    }

    .portal-dropdown-subitem:hover,
    .portal-dropdown-subitem:focus-visible {
        background: rgba(var(--portal-nav-text-rgb, 255, 255, 255), 0.08);
        color: var(--portal-nav-text, #fff);
    }
}

.portal-dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 20rem;
    max-width: min(24rem, calc(100vw - 1.5rem));
    padding: 0.7rem;
    margin-top: 0;
    border: 1px solid rgba(21, 48, 77, 0.1);
    border-radius: 1.1rem;
    box-shadow: 0 20px 42px rgba(13, 28, 44, 0.14);
    transition: none;
}

.portal-dropdown-menu[data-bs-popper] {
    inset: 100% auto auto 0;
    margin-top: 0;
    right: auto;
    transform: none !important;
}

.portal-dropdown-menu::before {
    content: "";
    position: absolute;
    top: -0.55rem;
    left: 0;
    right: 0;
    height: 0.65rem;
    background: transparent;
}

.portal-dropdown-panel {
    display: block;
}

.portal-dropdown-links {
    display: grid;
    gap: 0.12rem;
}

.portal-dropdown-item {
    border-radius: 0.85rem;
    color: var(--portal-primary);
    font-family: var(--portal-font-sans);
    font-size: 0.86rem;
    font-weight: 700;
    padding: 0.7rem 0.9rem;
    white-space: normal;
    transition: none;
}

.portal-dropdown-item:hover,
.portal-dropdown-item:focus-visible {
    background: rgba(var(--portal-primary-rgb), 0.08);
    color: var(--portal-nav-bg, var(--portal-dark));
}

.portal-dropdown-item-group {
    position: relative;
}

.portal-dropdown-item-group::after {
    content: "";
    position: absolute;
    top: 0;
    right: -0.65rem;
    width: 0.85rem;
    height: 100%;
}

.portal-dropdown-item-parent {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
}

.portal-dropdown-subtoggle {
    display: none;
}

.portal-dropdown-item-icon {
    color: var(--portal-primary);
    font-size: 0.7rem;
    opacity: 0.72;
    transition: none;
}

.portal-dropdown-submenu {
    position: absolute;
    top: 0;
    left: calc(100% - 0.08rem);
    min-width: 17rem;
    padding: 0.55rem;
    border: 1px solid rgba(21, 48, 77, 0.1);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 16px 36px rgba(13, 28, 44, 0.14);
    display: none;
    z-index: 30;
    transition: none;
}

.portal-dropdown-submenu::before {
    content: "";
    position: absolute;
    top: 0;
    left: -0.8rem;
    width: 0.95rem;
    height: 100%;
    background: transparent;
}

.portal-dropdown-item-group:hover .portal-dropdown-submenu,
.portal-dropdown-item-group:focus-within .portal-dropdown-submenu,
.portal-dropdown-item-group.is-hovering .portal-dropdown-submenu {
    display: block;
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
    .portal-navbar .navbar-collapse,
    .portal-header.is-condensed .portal-navbar .navbar-collapse {
        position: absolute;
        top: calc(100% + 0.45rem);
        right: var(--bs-gutter-x, 0.75rem);
        left: auto;
        width: min(22rem, calc(100vw - 1.5rem));
        min-width: min(22rem, calc(100vw - 1.5rem));
        max-width: calc(100vw - 1.5rem);
    }

    .portal-dropdown-menu,
    .portal-dropdown-menu[data-bs-popper] {
        position: absolute !important;
        top: 0 !important;
        right: calc(100% - 0.2rem) !important;
        left: auto !important;
        inset: auto calc(100% - 0.2rem) auto auto !important;
        min-width: 18rem;
        width: max-content;
        max-width: min(20rem, calc(100vw - 25rem));
        padding: 0.55rem;
        border-radius: 1rem;
        background: #fff;
        border: 1px solid rgba(21, 48, 77, 0.14);
        box-shadow: 0 1rem 2rem rgba(13, 28, 44, 0.18);
        transform: none !important;
    }

    .portal-nav-item.dropdown::before {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: -1.45rem;
        width: 1.7rem;
        background: transparent;
    }

    .portal-dropdown-menu::after {
        content: "";
        position: absolute;
        top: 0;
        right: -1.2rem;
        width: 1.45rem;
        height: 100%;
        background: transparent;
    }

    .portal-dropdown-panel,
    .portal-dropdown-links {
        width: max-content;
        max-width: 100%;
    }

    .portal-dropdown-item-group::after {
        right: auto;
        left: -1rem;
        width: 1.25rem;
    }

    .portal-dropdown-item {
        color: var(--portal-primary);
    }

    .portal-dropdown-item:hover,
    .portal-dropdown-item:focus-visible {
        background: rgba(var(--portal-primary-rgb), 0.08);
        color: var(--portal-nav-bg, var(--portal-dark));
    }

    .portal-dropdown-item-icon {
        transform: rotate(180deg);
    }

    .portal-dropdown-submenu {
        left: auto;
        right: calc(100% - 0.18rem);
        width: max-content;
        max-width: min(18rem, calc(100vw - 45rem));
        background: #fff;
        border-color: rgba(21, 48, 77, 0.14);
        box-shadow: 0 1rem 2rem rgba(13, 28, 44, 0.16);
    }

    .portal-dropdown-submenu::before {
        left: auto;
        right: -1rem;
        width: 1.2rem;
    }

    .portal-dropdown-subitem {
        color: var(--portal-primary);
    }

    .portal-dropdown-subitem:hover,
    .portal-dropdown-subitem:focus-visible {
        background: rgba(var(--portal-primary-rgb), 0.08);
        color: var(--portal-nav-bg, var(--portal-dark));
    }
}

.portal-dropdown-subitem {
    border-radius: 0.8rem;
    color: var(--portal-primary);
    font-family: var(--portal-font-sans);
    font-size: 0.82rem;
    font-weight: 700;
    padding: 0.62rem 0.82rem;
    white-space: normal;
    transition: none;
}

.portal-dropdown-subitem:hover,
.portal-dropdown-subitem:focus-visible {
    background: rgba(var(--portal-primary-rgb), 0.08);
    color: var(--portal-nav-bg, var(--portal-dark));
}

.portal-quick-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.7rem;
    padding: 0.7rem 0.95rem;
    border-radius: 999px;
    border: 1px solid rgba(16, 48, 76, 0.14);
    background: #fff;
    color: var(--portal-dark);
    font-family: var(--portal-font-sans);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(16, 48, 76, 0.08);
    transition: transform 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.portal-quick-button:hover,
.portal-quick-button:focus-visible {
    transform: translateY(-1px);
    color: var(--portal-primary);
    border-color: rgba(0, 86, 166, 0.28);
    box-shadow: 0 16px 30px rgba(16, 48, 76, 0.12);
}

.portal-quick-button.active {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, var(--portal-primary) 0%, var(--portal-dark) 100%);
    box-shadow: 0 16px 32px rgba(15, 36, 58, 0.18);
}

.portal-quick-button.active:hover,
.portal-quick-button.active:focus-visible {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, #0a66bc 0%, #16324f 100%);
}

.portal-quick-button-accent {
    background: linear-gradient(135deg, var(--portal-primary) 0%, var(--portal-dark) 100%);
    border-color: transparent;
    color: #fff;
}

.portal-quick-button-accent:hover,
.portal-quick-button-accent:focus-visible {
    color: #fff;
    background: linear-gradient(135deg, #0a66bc 0%, #16324f 100%);
}

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

.portal-breadcrumb .breadcrumb-item a {
    color: var(--portal-primary);
    text-decoration: none;
}

.portal-home-highlight,
.portal-content-card,
.portal-side-panel,
.portal-contact-panel,
.portal-feature-card,
.portal-news-card,
.portal-contact-block,
.portal-metric-card,
.portal-public-card,
.portal-publication-card {
    background: var(--portal-paper);
    border: 1px solid var(--portal-border);
    border-top: 4px solid rgba(var(--portal-primary-rgb), 0.24);
    border-radius: var(--portal-radius);
    box-shadow: var(--portal-shadow);
}

.portal-home-highlight,
.portal-content-card,
.portal-side-panel,
.portal-contact-panel,
.portal-public-card {
    padding: 1.35rem;
}

.portal-home-highlight {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
}

.portal-home-highlight-media img,
.portal-banner-card img,
.portal-news-card img,
.portal-news-lead img,
.portal-article-cover {
    width: 100%;
    object-fit: cover;
}

.portal-home-highlight-media img {
    height: 280px;
}

.portal-home-news-hero {
    position: relative;
    margin-top: 0;
    margin-bottom: 0;
    padding: 0 0 1.35rem;
}

.portal-home-carousel {
    position: relative;
    margin-top: -1px;
    border-top: 0;
    background: linear-gradient(135deg, #0f2f4c 0%, #154978 58%, #1d6c9c 100%);
    overflow: hidden;
    box-shadow: 0 18px 40px rgba(15, 36, 58, 0.12);
}

.portal-home-carousel-item {
    min-height: 37.5rem;
    height: 37.5rem;
}

.portal-home-carousel-media {
    position: relative;
    min-height: 37.5rem;
    height: 37.5rem;
    background: linear-gradient(135deg, #113555 0%, #195c89 100%);
}

.portal-home-carousel-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    inset: 0;
}

.portal-home-carousel-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(8, 22, 36, 0.08) 0%, rgba(8, 22, 36, 0.28) 36%, rgba(8, 22, 36, 0.82) 100%),
        linear-gradient(90deg, rgba(8, 22, 36, 0.66) 0%, rgba(8, 22, 36, 0.18) 52%, rgba(8, 22, 36, 0.08) 100%);
}

.portal-home-carousel-media.is-fallback .portal-home-carousel-overlay {
    background:
        linear-gradient(180deg, rgba(8, 22, 36, 0.12) 0%, rgba(8, 22, 36, 0.24) 38%, rgba(8, 22, 36, 0.78) 100%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.06) 0%, rgba(8, 24, 40, 0.18) 100%);
}

.portal-home-carousel-placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    min-height: 37.5rem;
    height: 37.5rem;
    background:
        radial-gradient(circle at 24% 22%, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.2) 3rem, transparent 3rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.06) 0%, rgba(12, 32, 50, 0.18) 100%);
}

.portal-home-carousel-placeholder-label {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 0.85rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.portal-home-carousel-body {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 0.85rem;
    min-height: 37.5rem;
    max-width: 46rem;
    padding: 3.6rem clamp(1.4rem, 4.6vw, 4rem) 2.2rem;
    color: #fff;
}

.portal-home-carousel-body .portal-kicker {
    width: fit-content;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

.portal-home-carousel-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.2rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.83rem;
    font-weight: 700;
}

.portal-home-carousel-title {
    margin: 0;
    color: #fff;
    font-size: clamp(1.65rem, 2.8vw, 2.5rem);
    line-height: 1.14;
}

.portal-home-carousel-summary {
    margin: 0;
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.98rem;
    line-height: 1.7;
    max-width: 38rem;
}

.portal-home-carousel-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
}

.portal-home-carousel-actions .btn-outline-light {
    border-color: rgba(255, 255, 255, 0.5);
    color: #fff;
}

.portal-home-carousel-actions .btn-outline-light:hover,
.portal-home-carousel-actions .btn-outline-light:focus {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.75);
    color: #fff;
}

.portal-home-carousel-indicators {
    margin-bottom: 1.2rem;
}

.portal-home-carousel-indicators [data-bs-target] {
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 999px;
    border: 0;
    opacity: 0.45;
}

.portal-home-carousel-control {
    width: 4.5rem;
}

.portal-home-carousel-empty {
    padding: 0 0.75rem;
}

.portal-home-carousel-empty-card {
    margin-top: 0.25rem;
    padding: 2rem 1.5rem;
    background: var(--portal-paper);
    border: 1px solid var(--portal-border);
    border-top: 4px solid rgba(0, 86, 166, 0.24);
    border-radius: var(--portal-radius);
    box-shadow: var(--portal-shadow);
}

.portal-home-informative-carousel .portal-home-carousel-item,
.portal-home-informative-carousel .portal-home-carousel-media,
.portal-home-informative-carousel .portal-home-carousel-body,
.portal-home-informative-carousel .portal-home-carousel-placeholder {
    min-height: var(--portal-home-informative-height, clamp(24rem, calc(100svh - 10.5rem), 52rem));
    height: var(--portal-home-informative-height, clamp(24rem, calc(100svh - 10.5rem), 52rem));
}

@supports (height: 100dvh) {
    .portal-home-informative-carousel .portal-home-carousel-item,
    .portal-home-informative-carousel .portal-home-carousel-media,
    .portal-home-informative-carousel .portal-home-carousel-body,
    .portal-home-informative-carousel .portal-home-carousel-placeholder {
        min-height: var(--portal-home-informative-height, clamp(24rem, calc(100dvh - 10.5rem), 52rem));
        height: var(--portal-home-informative-height, clamp(24rem, calc(100dvh - 10.5rem), 52rem));
    }
}

.portal-home-informative-carousel .portal-home-carousel-overlay {
    background: transparent;
}

.portal-home-informative-carousel .portal-home-carousel-body {
    justify-content: flex-end;
    align-items: flex-start;
    gap: 0.5rem;
    max-width: 38rem;
    padding:
        clamp(5.75rem, 14vh, 8.75rem)
        clamp(1.4rem, 4vw, 4rem)
        clamp(1.5rem, 4vh, 2.4rem);
}

.portal-home-informative-carousel .portal-home-carousel-meta,
.portal-home-informative-carousel .portal-home-carousel-title,
.portal-home-informative-carousel .portal-home-carousel-summary,
.portal-home-informative-carousel .portal-home-carousel-body .portal-kicker {
    color: #fff;
}

.portal-home-informative-carousel .portal-home-carousel-body .portal-kicker {
    background: rgba(255, 255, 255, 0.14);
}

.portal-home-informative-carousel .portal-home-carousel-meta {
    gap: 0.4rem 0.8rem;
    font-size: 0.72rem;
}

.portal-home-informative-carousel .portal-home-carousel-title {
    font-size: clamp(1.15rem, 1.9vw, 1.6rem);
    line-height: 1.2;
    max-width: 30rem;
}

.portal-home-informative-carousel .portal-home-carousel-summary {
    max-width: 34rem;
    font-size: 0.88rem;
    line-height: 1.45;
}

.portal-home-informative-carousel .portal-home-carousel-actions .btn {
    padding: 0.45rem 0.9rem;
    font-size: 0.85rem;
}

@media (max-width: 991.98px) {
    .portal-home-informative-carousel .portal-home-carousel-item,
    .portal-home-informative-carousel .portal-home-carousel-media,
    .portal-home-informative-carousel .portal-home-carousel-body,
    .portal-home-informative-carousel .portal-home-carousel-placeholder {
        min-height: var(--portal-home-informative-height-tablet, clamp(23rem, calc(100svh - 8.5rem), 40rem));
        height: var(--portal-home-informative-height-tablet, clamp(23rem, calc(100svh - 8.5rem), 40rem));
    }

    @supports (height: 100dvh) {
        .portal-home-informative-carousel .portal-home-carousel-item,
        .portal-home-informative-carousel .portal-home-carousel-media,
        .portal-home-informative-carousel .portal-home-carousel-body,
        .portal-home-informative-carousel .portal-home-carousel-placeholder {
            min-height: var(--portal-home-informative-height-tablet, clamp(23rem, calc(100dvh - 8.5rem), 40rem));
            height: var(--portal-home-informative-height-tablet, clamp(23rem, calc(100dvh - 8.5rem), 40rem));
        }
    }

    .portal-home-informative-carousel .portal-home-carousel-body {
        padding:
            clamp(4.75rem, 11vh, 6.5rem)
            clamp(1.25rem, 3vw, 2.25rem)
            1.4rem;
    }
}

@media (max-width: 575.98px) {
    .portal-home-informative-carousel .portal-home-carousel-item,
    .portal-home-informative-carousel .portal-home-carousel-media,
    .portal-home-informative-carousel .portal-home-carousel-body,
    .portal-home-informative-carousel .portal-home-carousel-placeholder {
        min-height: var(--portal-home-informative-height-mobile, clamp(22rem, calc(100svh - 6.75rem), 32rem));
        height: var(--portal-home-informative-height-mobile, clamp(22rem, calc(100svh - 6.75rem), 32rem));
    }

    @supports (height: 100dvh) {
        .portal-home-informative-carousel .portal-home-carousel-item,
        .portal-home-informative-carousel .portal-home-carousel-media,
        .portal-home-informative-carousel .portal-home-carousel-body,
        .portal-home-informative-carousel .portal-home-carousel-placeholder {
            min-height: var(--portal-home-informative-height-mobile, clamp(22rem, calc(100dvh - 6.75rem), 32rem));
            height: var(--portal-home-informative-height-mobile, clamp(22rem, calc(100dvh - 6.75rem), 32rem));
        }
    }

    .portal-home-informative-carousel .portal-home-carousel-body {
        padding:
            clamp(4.25rem, 9vh, 5.5rem)
            1.1rem
            1.2rem;
    }
}

.portal-home-shell {
    position: relative;
    overflow-x: hidden;
    padding: clamp(2.2rem, 3.2vw, 3rem) clamp(1.15rem, 2.8vw, 2.1rem) clamp(3.2rem, 5vw, 4.9rem);
    background:
        radial-gradient(circle at top left, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.11), transparent 34rem),
        radial-gradient(circle at top right, rgba(var(--portal-dark-rgb, 22, 50, 79), 0.06), transparent 28rem),
        linear-gradient(180deg, rgba(255, 255, 255, 0.97) 0%, rgba(248, 251, 255, 0.98) 52%, rgba(246, 250, 248, 0.98) 100%);
}

.portal-home-container {
    width: min(100%, var(--portal-home-container-max, 78rem));
    margin-inline: auto;
    display: grid;
    gap: 1.75rem;
    min-width: 0;
}

.portal-home-container > section {
    margin-bottom: 0 !important;
}

.portal-home-container--wide {
    --portal-home-container-max: 96rem;
}

.portal-body .portal-home-shell .portal-content-card,
.portal-body .portal-home-shell .portal-public-card {
    padding: clamp(1.25rem, 1vw + 1rem, 1.55rem);
    border-radius: 1.35rem;
    box-shadow: 0 18px 42px rgba(15, 36, 58, 0.07);
}

.portal-home-editorial-row {
    margin-bottom: 0 !important;
}

.portal-home-editorial-row > .row {
    --bs-gutter-x: 1.25rem;
    --bs-gutter-y: 1.25rem;
}

.portal-home-editorial-row > .row > [class*="col-"] {
    display: flex;
    align-items: flex-start;
}

.portal-home-news-list-section {
    margin-top: 0.1rem;
}

.portal-home-editorial-row .portal-content-card,
.portal-home-editorial-row .portal-public-card {
    padding: 1.35rem 1.4rem;
}

.portal-home-editorial-main-column,
.portal-home-editorial-side-column,
.portal-home-editorial-side {
    min-width: 0;
    width: 100%;
}

.portal-home-editorial-side {
    display: flex !important;
    flex-direction: column;
    align-content: start;
    justify-items: stretch;
    height: auto !important;
    gap: 1rem !important;
}

.portal-home-editorial-row .portal-home-protocol-card {
    align-self: start;
    width: 100%;
    margin: 0 !important;
    position: relative;
    top: 0;
    flex: 0 0 auto;
    height: auto;
    min-height: 0;
}

.portal-home-editorial-row .portal-home-news-panel {
    width: 100%;
    margin: 0;
    height: auto;
    min-height: 0;
}

.portal-home-editorial-row .portal-home-protocol-card,
.portal-home-editorial-row .portal-home-birthday-card {
    margin-inline: auto;
}

.portal-home-editorial-row .portal-home-protocol-card .portal-home-section-head,
.portal-home-editorial-row .portal-home-birthday-card .portal-panel-heading {
    text-align: center;
    align-items: center;
    justify-content: center;
}

.portal-home-editorial-row .portal-home-protocol-card .portal-section-title,
.portal-home-editorial-row .portal-home-birthday-card .portal-panel-heading {
    margin-inline: auto;
}

.portal-home-editorial-row .portal-home-protocol-card .portal-kicker,
.portal-home-editorial-row .portal-home-birthday-card .portal-kicker {
    margin-inline: auto;
}

.portal-home-news-panel,
.portal-home-calendar-card,
.portal-home-protocol-card {
    position: relative;
    overflow: hidden;
    border-top-width: 4px;
    border-color: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.16);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.985), rgba(248, 251, 255, 0.965)),
        radial-gradient(circle at top right, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.09), transparent 48%);
}

.portal-home-news-panel::before,
.portal-home-calendar-card::before,
.portal-home-protocol-card::before,
.portal-home-services-card::before {
    display: none;
}

.portal-home-news-panel > .portal-kicker,
.portal-home-calendar-card .portal-kicker,
.portal-home-services-card .portal-kicker {
    position: relative;
    z-index: 1;
}

.portal-home-calendar-card {
    min-height: 100%;
}

.portal-home-services-card {
    position: relative;
    overflow: hidden;
    border-top-width: 4px;
    border-top-color: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.24);
    border-color: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.14);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(248, 251, 255, 0.97)),
        radial-gradient(circle at top right, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.1), transparent 40%);
}

.portal-home-section-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1rem;
}

.portal-home-section-head--services .portal-section-title {
    margin-bottom: 0;
}

.portal-home-section-head--services .portal-section-title p {
    max-width: 52rem;
}

.portal-home-services-section {
    margin-top: 0.3rem;
}

.portal-home-services-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(18rem, 0.9fr);
    gap: 1.5rem;
    align-items: start;
}

@media (min-width: 1200px) {
    .portal-home-editorial-row > .row {
        display: grid;
        grid-template-columns: minmax(0, 1.7fr) minmax(18rem, 0.9fr);
        gap: 1.5rem;
    }

    .portal-home-editorial-row > .row > [class*="col-"] {
        width: auto;
        max-width: none;
        padding: 0;
    }
}

.portal-home-services-primary,
.portal-home-services-aside {
    min-width: 0;
}

.portal-home-services-aside-stack {
    display: grid;
    gap: 1.5rem;
    align-content: start;
}

.portal-home-services-section,
.portal-home-protocol-card {
    height: 100%;
}

.portal-home-protocol-card {
    position: sticky;
    top: 1.5rem;
}

.portal-home-services-section .row {
    --bs-gutter-x: 0.85rem;
    --bs-gutter-y: 0.85rem;
}

.portal-home-services-section .row > [class*="col-"] {
    display: flex;
}

.portal-shortcut-card-service {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 9.4rem;
    padding: 1rem 1rem 0.95rem;
    border-radius: 1.1rem;
    align-items: center;
    overflow: hidden;
    border-color: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.12);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(249, 252, 255, 0.97)),
        radial-gradient(circle at top right, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.075), transparent 48%);
    box-shadow: 0 14px 34px rgba(15, 36, 58, 0.055);
}

.portal-shortcut-card-service--featured {
    min-height: 12rem;
    padding: 1.25rem 1.25rem 1.15rem;
    border-color: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.22);
    background:
        linear-gradient(135deg, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.12), rgba(255, 255, 255, 0.98) 42%),
        radial-gradient(circle at top right, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.16), transparent 48%);
    box-shadow: 0 18px 38px rgba(15, 36, 58, 0.09);
}

.portal-shortcut-card-service::after {
    content: "";
    position: absolute;
    inset: auto 1rem 0;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.24), rgba(var(--portal-primary-rgb, 0, 86, 166), 0));
}

.portal-shortcut-card-service .portal-shortcut-icon {
    width: 3.2rem;
    height: 3.2rem;
    flex: 0 0 3.2rem;
    border-radius: 0.95rem;
    box-shadow: 0 10px 22px rgba(15, 36, 58, 0.1);
}

.portal-shortcut-card-service--featured .portal-shortcut-icon {
    width: 4rem;
    height: 4rem;
    flex-basis: 4rem;
    border-radius: 1.1rem;
    box-shadow: 0 14px 28px rgba(15, 36, 58, 0.14);
}

.portal-shortcut-card-service .portal-shortcut-icon i {
    font-size: 1.15rem;
}

.portal-shortcut-card-service--featured .portal-shortcut-icon i {
    font-size: 1.35rem;
}

.portal-shortcut-card-service .portal-shortcut-copy {
    width: 100%;
    flex: 1 1 auto;
    gap: 0.28rem;
}

.portal-shortcut-card-service--featured .portal-shortcut-copy {
    gap: 0.4rem;
}

.portal-shortcut-card-service .portal-shortcut-label {
    font-size: 0.92rem;
    text-align: left;
    color: var(--portal-dark);
    line-height: 1.28;
}

.portal-shortcut-card-service--featured .portal-shortcut-label {
    font-size: 1.18rem;
    line-height: 1.2;
}

.portal-shortcut-description {
    color: var(--portal-muted);
    font-size: 0.78rem;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.portal-shortcut-card-service--featured .portal-shortcut-description {
    max-width: 26rem;
    font-size: 0.9rem;
    line-height: 1.45;
    -webkit-line-clamp: 3;
}

.portal-shortcut-action {
    margin-top: auto;
    padding-top: 0.45rem;
    color: var(--portal-primary);
    font-size: 0.69rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.portal-shortcut-chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-end;
    margin-top: 0.7rem;
    color: var(--portal-primary);
    font-size: 0.92rem;
    transition: transform 0.18s ease, color 0.18s ease;
}

.portal-shortcut-card-service--featured .portal-shortcut-chevron {
    font-size: 1.08rem;
}

.portal-shortcut-card-service:hover .portal-shortcut-chevron,
.portal-shortcut-card-service:focus-visible .portal-shortcut-chevron {
    transform: translateX(2px);
    color: var(--portal-dark);
}

@media (min-width: 992px) {
    .portal-shortcut-card-service--featured {
        min-height: 9.4rem;
        padding: 1rem 1rem 0.95rem;
        border-color: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.12);
        background:
            linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(249, 252, 255, 0.97)),
            radial-gradient(circle at top right, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.075), transparent 48%);
        box-shadow: 0 14px 34px rgba(15, 36, 58, 0.055);
    }

    .portal-shortcut-card-service--featured .portal-shortcut-icon {
        width: 3.2rem;
        height: 3.2rem;
        flex-basis: 3.2rem;
        border-radius: 0.95rem;
        box-shadow: 0 10px 22px rgba(15, 36, 58, 0.1);
    }

    .portal-shortcut-card-service--featured .portal-shortcut-icon i {
        font-size: 1.15rem;
    }

    .portal-shortcut-card-service--featured .portal-shortcut-copy {
        gap: 0.28rem;
    }

    .portal-shortcut-card-service--featured .portal-shortcut-label {
        font-size: 0.92rem;
        line-height: 1.28;
    }

    .portal-shortcut-card-service--featured .portal-shortcut-description {
        max-width: none;
        font-size: 0.78rem;
        line-height: 1.35;
        -webkit-line-clamp: 2;
    }

    .portal-shortcut-card-service--featured .portal-shortcut-chevron {
        font-size: 0.92rem;
    }
}

@media (max-width: 991.98px) {
    .portal-shortcut-card-service--featured {
        min-height: 11.25rem;
    }

    .portal-shortcut-card-service {
        min-height: 9rem;
        justify-content: center;
        text-align: center;
        gap: 0.9rem;
    }

    .portal-shortcut-card-service .portal-shortcut-icon {
        margin-inline: auto;
    }

    .portal-shortcut-card-service .portal-shortcut-description,
    .portal-shortcut-card-service .portal-shortcut-action,
    .portal-shortcut-card-service .portal-shortcut-chevron {
        display: none;
    }

    .portal-shortcut-card-service .portal-shortcut-copy {
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    .portal-shortcut-card-service .portal-shortcut-label {
        text-align: center;
    }

    .portal-shortcut-card-service--featured {
        min-height: 10rem;
        gap: 1rem;
    }

    .portal-shortcut-card-service--featured .portal-shortcut-icon {
        width: 4rem;
        height: 4rem;
        flex-basis: 4rem;
    }

    .portal-shortcut-card-service--featured .portal-shortcut-label {
        font-size: 1.08rem;
        line-height: 1.2;
    }
}

.portal-home-news-panel {
    display: flex;
    flex-direction: column;
    gap: 0.95rem;
}

.portal-home-news-carousel-shell {
    display: flex;
    flex-direction: column;
    gap: 0.95rem;
    min-height: 0;
}

.portal-home-news-carousel-shell.has-rail {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(17rem, 0.95fr);
    gap: 1rem;
    align-items: stretch;
}

.portal-home-news-carousel-shell.has-supplementary {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(17rem, 0.95fr);
    gap: 1rem;
    align-items: stretch;
}

.portal-home-news-carousel {
    position: relative;
    flex: 1 1 auto;
    min-height: clamp(18rem, 24vw, 21.5rem);
    height: clamp(18rem, 24vw, 21.5rem);
}

.portal-home-news-carousel .carousel-inner,
.portal-home-news-carousel-item {
    height: 100%;
}

.portal-home-news-visual-card--featured,
.portal-home-news-visual-card--featured .portal-home-news-visual-body {
    min-height: clamp(18rem, 24vw, 21.5rem);
    height: clamp(18rem, 24vw, 21.5rem);
}

.portal-home-news-visual-card--featured {
    aspect-ratio: auto;
    width: 100%;
}

.portal-home-news-visual-card--featured .portal-home-news-visual-body {
    padding: 1.35rem 1.4rem 1.35rem;
}

.portal-home-news-visual-card--featured .portal-home-news-visual-copy {
    gap: 0.5rem;
    max-width: min(100%, 36rem);
}

.portal-home-news-visual-card--featured .portal-home-news-list-meta {
    gap: 0.55rem 0.95rem;
}

.portal-home-news-panel .portal-home-news-visual-card--featured .h4 {
    color: #fff;
    font-size: clamp(1.26rem, 0.8vw + 1.02rem, 1.78rem);
    line-height: 1.15;
    font-weight: 700;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-wrap: balance;
}

.portal-home-news-carousel-control {
    position: absolute;
    top: 1rem;
    bottom: auto;
    width: 2.65rem;
    height: 2.65rem;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 999px;
    background: rgba(var(--portal-dark-rgb, 22, 50, 79), 0.18);
    opacity: 1;
}

.portal-home-news-carousel-control.carousel-control-prev {
    left: auto;
    right: 4.15rem;
}

.portal-home-news-carousel-control.carousel-control-next {
    right: 1rem;
}

.portal-home-news-carousel-control:hover,
.portal-home-news-carousel-control:focus {
    background: rgba(var(--portal-dark-rgb, 22, 50, 79), 0.32);
}

.portal-home-news-carousel-control:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.85);
    outline-offset: 2px;
}

.portal-home-news-carousel-control .carousel-control-prev-icon,
.portal-home-news-carousel-control .carousel-control-next-icon {
    width: 0.95rem;
    height: 0.95rem;
}

.portal-home-news-secondary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
}

.portal-home-news-carousel-shell.has-rail .portal-home-news-carousel,
.portal-home-news-carousel-shell.has-supplementary .portal-home-news-carousel {
    grid-column: 1;
    grid-row: 1;
}

.portal-home-news-carousel-shell.has-rail .portal-home-news-secondary-grid,
.portal-home-news-carousel-shell.has-supplementary .portal-home-news-secondary-grid {
    grid-column: 2;
    grid-row: 1;
    grid-template-columns: 1fr;
    align-content: start;
}

.portal-home-news-carousel-shell.has-rail .portal-home-news-footer,
.portal-home-news-carousel-shell.has-supplementary .portal-home-news-footer {
    grid-column: 1 / -1;
}

.portal-home-news-secondary-card {
    display: grid;
    gap: 0.48rem;
    min-height: 6.5rem;
    padding: 1rem 1.05rem;
    border: 1px solid rgba(21, 48, 77, 0.12);
    border-radius: 1rem;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(248, 251, 255, 0.97)),
        radial-gradient(circle at top right, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.05), transparent 50%);
    color: inherit;
    text-decoration: none;
    box-shadow: 0 12px 24px rgba(15, 36, 58, 0.05);
    transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.portal-home-news-secondary-card:hover,
.portal-home-news-secondary-card:focus-visible {
    border-color: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.34);
    background: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.05);
    transform: translateY(-1px);
    box-shadow: 0 16px 28px rgba(15, 36, 58, 0.08);
}

.portal-home-news-secondary-card:focus-visible {
    outline: 2px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.35);
    outline-offset: 2px;
}

.portal-home-news-secondary-card--institutional {
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: flex-start;
}

.portal-home-news-secondary-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.75rem;
    color: var(--portal-muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.portal-home-news-secondary-title {
    color: #17304d;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.42;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.portal-home-news-visual-card {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    min-height: 13.25rem;
    height: 100%;
    overflow: hidden;
    isolation: isolate;
    border-radius: 1.25rem;
    border: 1px solid rgba(21, 48, 77, 0.12);
    background-color: rgb(var(--portal-dark-rgb, 22, 50, 79));
    background-image:
        linear-gradient(180deg, rgba(var(--portal-dark-rgb, 22, 50, 79), 0) 0%, rgba(var(--portal-dark-rgb, 22, 50, 79), 0.04) 46%, rgba(var(--portal-dark-rgb, 22, 50, 79), 0.14) 78%, rgba(var(--portal-dark-rgb, 22, 50, 79), 0.28) 100%),
        linear-gradient(135deg, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.04) 0%, rgba(var(--portal-dark-rgb, 22, 50, 79), 0.08) 100%);
    box-shadow: 0 14px 28px rgba(15, 36, 58, 0.1);
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.portal-home-news-visual-card.has-image::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: var(--portal-card-media-bg);
    background-size: cover;
    background-position: center;
    opacity: 1;
    transition: opacity 0.45s ease;
}

.portal-home-news-visual-card.has-image.is-media-loaded::before {
    opacity: 1;
}

.portal-home-news-visual-card:hover,
.portal-home-news-visual-card:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 18px 34px rgba(15, 36, 58, 0.12);
}

.portal-home-news-visual-card:focus-visible {
    outline: 2px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.35);
    outline-offset: 3px;
}

.portal-home-news-visual-card.is-fallback {
    background-color: rgb(var(--portal-dark-rgb, 22, 50, 79));
    background-image:
        linear-gradient(180deg, rgba(var(--portal-dark-rgb, 22, 50, 79), 0.04) 0%, rgba(var(--portal-dark-rgb, 22, 50, 79), 0.1) 46%, rgba(var(--portal-dark-rgb, 22, 50, 79), 0.22) 78%, rgba(var(--portal-dark-rgb, 22, 50, 79), 0.38) 100%),
        linear-gradient(135deg, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.08) 0%, rgba(var(--portal-dark-rgb, 22, 50, 79), 0.18) 100%);
}

.portal-home-news-visual-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg, rgba(var(--portal-dark-rgb, 22, 50, 79), 0) 0%, rgba(var(--portal-dark-rgb, 22, 50, 79), 0.02) 46%, rgba(var(--portal-dark-rgb, 22, 50, 79), 0.1) 78%, rgba(var(--portal-dark-rgb, 22, 50, 79), 0.2) 100%),
        linear-gradient(180deg, rgba(var(--portal-primary-rgb, 0, 86, 166), 0) 0%, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.01) 62%, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.03) 100%);
}

.portal-home-news-visual-body {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 100%;
    padding: 0.95rem 1rem 0.9rem;
    color: #fff;
}

.portal-home-news-visual-copy {
    display: grid;
    gap: 0.42rem;
    width: 100%;
    margin-top: auto;
}

.portal-home-news-visual-copy .portal-home-news-list-meta {
    margin-bottom: 0;
    gap: 0.45rem 0.75rem;
}

.portal-home-news-visual-copy .portal-home-news-link {
    align-self: flex-start;
    margin-top: 0.1rem;
}

.portal-home-news-panel .h3,
.portal-home-calendar-card .h4 {
    line-height: 1.2;
}

.portal-home-news-panel .portal-home-news-visual-body .h5 {
    font-size: 1rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.portal-home-news-panel .portal-home-news-visual-body p {
    font-size: 0.83rem;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.portal-home-news-visual-body .h5,
.portal-home-news-visual-body p,
.portal-home-news-visual-body .portal-home-news-link,
.portal-home-news-visual-body .portal-home-news-list-meta {
    color: #fff;
}

.portal-home-news-list-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 1.05rem 1.1rem;
    background: var(--portal-paper);
    border: 1px solid var(--portal-border);
    border-top: 4px solid rgba(217, 140, 0, 0.24);
    border-radius: 1.25rem;
    box-shadow: 0 14px 28px rgba(15, 36, 58, 0.05);
}

.portal-home-news-list-card .h5 {
    line-height: 1.35;
}

.portal-home-news-list-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem 1rem;
    margin-bottom: 0.7rem;
    color: var(--portal-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.portal-home-news-empty {
    padding: 1rem 1.05rem;
    border-radius: 1rem;
    background: rgba(0, 86, 166, 0.04);
    border: 1px dashed rgba(0, 86, 166, 0.18);
}

.portal-home-news-sublist {
    display: grid;
    gap: 0.85rem;
    margin-top: 1rem;
}

.portal-home-news-list-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.95rem 1rem;
    background: #fff;
    border: 1px solid rgba(21, 48, 77, 0.1);
    border-radius: 1rem;
}

.portal-home-news-list-copy {
    min-width: 0;
}

.portal-home-news-list-row .h6 {
    margin-bottom: 0.2rem;
    color: #17304d;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.portal-home-news-list-row p {
    color: var(--portal-muted);
    font-size: 0.9rem;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.portal-home-news-footer {
    display: flex;
    justify-content: flex-end;
    margin-top: auto;
}

.portal-home-instagram-card {
    padding: 1.15rem 1.2rem;
    border-top-width: 4px;
}

.portal-home-instagram-media {
    display: block;
    position: relative;
    aspect-ratio: 4 / 5;
    min-height: 20rem;
    border-radius: 1.25rem;
    overflow: hidden;
    isolation: isolate;
    color: inherit;
    text-decoration: none;
    background:
        linear-gradient(180deg, rgba(15, 36, 58, 0.08) 0%, rgba(15, 36, 58, 0.26) 38%, rgba(15, 36, 58, 0.88) 100%),
        linear-gradient(135deg, #833ab4 0%, #fd1d1d 52%, #fcb045 100%);
}

.portal-home-instagram-media.has-image::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: var(--portal-card-media-bg);
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 0.45s ease;
}

.portal-home-instagram-media.has-image.is-media-loaded::before {
    opacity: 1;
}

.portal-home-instagram-media:hover,
.portal-home-instagram-media:focus-visible {
    color: inherit;
    text-decoration: none;
}

.portal-home-instagram-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg, rgba(8, 22, 36, 0.06) 0%, rgba(8, 22, 36, 0.18) 38%, rgba(8, 22, 36, 0.84) 100%),
        linear-gradient(90deg, rgba(8, 22, 36, 0.72) 0%, rgba(8, 22, 36, 0.24) 54%, rgba(8, 22, 36, 0.12) 100%);
}

.portal-home-instagram-content {
    position: absolute;
    z-index: 2;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    z-index: 1;
    color: #fff;
}

.portal-home-instagram-handle {
    display: inline-flex;
    margin-bottom: 0.5rem;
    padding: 0.28rem 0.7rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-size: 0.74rem;
    font-weight: 700;
}

.portal-calendar-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.portal-calendar-legend-item {
    display: inline-flex;
    align-items: center;
    padding: 0.32rem 0.7rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.portal-calendar-legend-item.is-upcoming {
    background: rgba(0, 86, 166, 0.12);
    color: #0d4f8a;
}

.portal-calendar-legend-item.is-history {
    background: rgba(25, 135, 84, 0.12);
    color: #126945;
}

.portal-calendar-legend-item.is-alert {
    background: rgba(217, 140, 0, 0.16);
    color: #8b5b05;
}

.portal-calendar-monthly {
    display: grid;
    gap: 0.85rem;
}

.portal-calendar-toolbar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
}

.portal-calendar-nav-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border: 1px solid rgba(21, 48, 77, 0.14);
    border-radius: 999px;
    background: #fff;
    color: var(--portal-dark);
    font-size: 1.15rem;
    line-height: 1;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.portal-calendar-nav-button:hover,
.portal-calendar-nav-button:focus-visible {
    background: rgba(0, 86, 166, 0.06);
    border-color: rgba(0, 86, 166, 0.2);
    color: var(--portal-primary);
    transform: translateY(-1px);
}

.portal-calendar-month-label {
    text-align: center;
    color: var(--portal-dark);
    font-family: var(--portal-font-sans);
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.portal-calendar-weekdays,
.portal-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.4rem;
}

.portal-calendar-weekdays span {
    text-align: center;
    color: var(--portal-muted);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.portal-calendar-day,
.portal-calendar-day-empty {
    min-height: 4.25rem;
    border-radius: 0.95rem;
}

.portal-calendar-day-empty {
    background: transparent;
    border: 1px solid transparent;
}

.portal-calendar-day {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.25rem;
    width: 100%;
    padding: 0.4rem 0.45rem;
    border: 1px solid rgba(21, 48, 77, 0.1);
    background: #fff;
    color: var(--portal-dark);
    text-align: left;
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease, background-color 0.16s ease;
}

.portal-calendar-day:hover,
.portal-calendar-day:focus-visible {
    border-color: rgba(0, 86, 166, 0.2);
    box-shadow: 0 12px 24px rgba(15, 36, 58, 0.08);
    transform: translateY(-1px);
}

.portal-calendar-day.is-no-event {
    background: #f6f9fc;
}

.portal-calendar-day.is-outside {
    opacity: 0.48;
}

.portal-calendar-day.has-event.is-upcoming {
    background: rgba(0, 86, 166, 0.06);
    border-color: rgba(0, 86, 166, 0.22);
}

.portal-calendar-day.has-event.is-history {
    background: rgba(25, 135, 84, 0.08);
    border-color: rgba(25, 135, 84, 0.24);
}

.portal-calendar-day.has-event.is-alert {
    background: rgba(217, 140, 0, 0.12);
    border-color: rgba(217, 140, 0, 0.28);
}

.portal-calendar-day-number {
    font-size: 0.94rem;
    font-weight: 700;
}

.portal-calendar-day-meta {
    display: none;
}

.portal-calendar-helper {
    color: var(--portal-muted);
    font-size: 0.78rem;
    line-height: 1.5;
}

.portal-calendar-tooltip .tooltip-inner {
    max-width: 20rem;
    padding: 0.8rem 0.9rem;
    border-radius: 0.95rem;
    background: #16324f;
    box-shadow: 0 14px 32px rgba(15, 36, 58, 0.22);
    color: #fff;
    text-align: left;
}

.portal-calendar-tooltip-list {
    display: grid;
    gap: 0.6rem;
}

.portal-calendar-tooltip-item {
    display: grid;
    gap: 0.22rem;
}

.portal-calendar-tooltip-title {
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1.35;
}

.portal-calendar-tooltip-meta,
.portal-calendar-tooltip-participants {
    font-size: 0.74rem;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.88);
}

.portal-calendar-modal-content {
    border: 0;
    border-radius: 1.3rem;
    box-shadow: 0 24px 54px rgba(15, 36, 58, 0.16);
}

.portal-calendar-modal-list {
    display: grid;
    gap: 0.85rem;
}

.portal-calendar-detail-card {
    padding: 1rem 1.05rem;
    border-radius: 1rem;
    border: 1px solid rgba(21, 48, 77, 0.1);
    background: #fff;
}

.portal-calendar-detail-card.is-upcoming {
    border-left: 4px solid var(--portal-primary);
}

.portal-calendar-detail-card.is-history {
    border-left: 4px solid #198754;
}

.portal-calendar-detail-card.is-alert {
    border-left: 4px solid var(--portal-accent);
    background: rgba(217, 140, 0, 0.05);
}

.portal-calendar-detail-card h3 {
    margin: 0 0 0.45rem;
    color: var(--portal-dark);
    font-size: 1rem;
    line-height: 1.35;
}

.portal-calendar-detail-status {
    display: inline-flex;
    align-items: center;
    margin-bottom: 0.5rem;
    padding: 0.22rem 0.6rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.portal-calendar-detail-card.is-upcoming .portal-calendar-detail-status {
    background: rgba(0, 86, 166, 0.12);
    color: #0d4f8a;
}

.portal-calendar-detail-card.is-history .portal-calendar-detail-status {
    background: rgba(25, 135, 84, 0.12);
    color: #126945;
}

.portal-calendar-detail-card.is-alert .portal-calendar-detail-status {
    background: rgba(217, 140, 0, 0.16);
    color: #8b5b05;
}

.portal-calendar-detail-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.8rem;
    margin-bottom: 0.55rem;
    color: var(--portal-muted);
    font-size: 0.8rem;
    font-weight: 700;
}

.portal-calendar-detail-text {
    margin: 0;
    color: var(--portal-muted);
    font-size: 0.86rem;
    line-height: 1.55;
}

.portal-calendar-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 0.85rem;
}

.portal-calendar-empty {
    padding: 0.8rem 0.9rem;
    border-radius: 0.5rem;
    background: rgba(0, 86, 166, 0.04);
    border: 1px dashed rgba(0, 86, 166, 0.16);
    color: var(--portal-muted);
    font-size: 0.84rem;
}

.portal-home-news-link {
    margin-top: auto;
    color: var(--portal-primary);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none;
    text-transform: uppercase;
}

.portal-home-highlight-body {
    padding: 1.45rem 1.55rem 1.55rem;
}

.portal-banner-card {
    display: block;
    position: relative;
    overflow: hidden;
    min-height: 320px;
    border-radius: var(--portal-radius);
    background: #dde6f0;
    box-shadow: var(--portal-shadow);
}

.portal-banner-card img {
    height: 100%;
}

.portal-banner-overlay {
    position: absolute;
    inset: auto 0 0 0;
    padding: 1.5rem;
    color: #fff;
    background: linear-gradient(180deg, transparent 0%, rgba(10, 25, 40, 0.9) 100%);
}

.portal-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.75rem;
    border-radius: 999px;
    background: rgba(var(--portal-primary-rgb), 0.08);
    color: var(--portal-primary);
    font-family: var(--portal-font-sans);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.portal-display {
    font-size: clamp(1.7rem, 3vw, 2.65rem);
    font-family: var(--portal-font-serif);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1;
}

.portal-lead {
    color: var(--portal-muted);
    font-size: 0.98rem;
    max-width: 48rem;
}

.portal-highlight-callout {
    display: grid;
    gap: 0.25rem;
    margin-bottom: 1.2rem;
    padding: 0.9rem 1rem;
    border-radius: 18px;
    background: #f7fafc;
    border: 1px solid rgba(21, 48, 77, 0.1);
}

.portal-highlight-callout strong {
    color: var(--portal-dark);
}

.portal-highlight-callout span {
    color: var(--portal-muted);
}

.portal-highlight-callout a {
    color: var(--portal-primary);
    font-weight: 700;
    text-decoration: none;
}

.portal-showcase-stack {
    display: grid;
    gap: 1rem;
}

.portal-panel-heading,
.portal-section-heading,
.portal-section-title {
    margin-bottom: 1rem;
}

.portal-mini-label,
.portal-metric-label,
.portal-link-action {
    color: var(--portal-muted);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.portal-metric-card {
    padding: 0.85rem 0.95rem;
    border-top-width: 3px;
}

.portal-metric-value {
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1;
    color: var(--portal-dark);
}

.portal-shortcut-card,
.portal-transparency-link,
.portal-side-link,
.portal-list-link,
.portal-news-list-item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(21, 48, 77, 0.11);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 12px 24px rgba(15, 36, 58, 0.04);
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

.portal-shortcut-card:hover,
.portal-transparency-link:hover,
.portal-side-link:hover,
.portal-list-link:hover,
.portal-news-list-item:hover,
.portal-publication-card:hover {
    transform: translateY(-2px);
    border-color: rgba(0, 86, 166, 0.28);
    box-shadow: 0 18px 30px rgba(15, 36, 58, 0.08);
}

.portal-shortcut-icon {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    border-radius: 15px;
    background: linear-gradient(180deg, var(--portal-primary) 0%, var(--portal-dark) 100%);
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 1.1rem;
    font-weight: 700;
}

.portal-shortcut-icon i {
    font-size: 1.35rem;
    line-height: 1;
}

.portal-shortcut-copy {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0.22rem;
    min-width: 0;
}

.portal-shortcut-card-minimal {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 0.8rem;
    min-height: 6.9rem;
    padding: 1rem;
}

.portal-shortcut-card-minimal .portal-shortcut-icon {
    width: 4.3rem;
    height: 4.3rem;
    border-radius: 1.25rem;
    box-shadow: 0 16px 32px rgba(15, 36, 58, 0.14);
    transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.portal-shortcut-card-minimal .portal-shortcut-icon i {
    font-size: 1.55rem;
}

.portal-shortcut-card-minimal:hover .portal-shortcut-icon,
.portal-shortcut-card-minimal:focus-visible .portal-shortcut-icon {
    transform: translateY(-1px) scale(1.02);
    box-shadow: 0 18px 34px rgba(15, 36, 58, 0.18);
}

.portal-shortcut-label {
    display: block;
    max-width: 100%;
    color: #17304d;
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    text-wrap: balance;
}

.portal-benefits-home-section {
    padding-top: 0.2rem;
}

.portal-benefits-section-head {
    max-width: 48rem;
    margin: 0 auto 1.5rem;
    text-align: center;
}

.portal-benefits-title {
    font-family: var(--portal-font-serif);
    font-size: clamp(1.8rem, 2.6vw, 2.6rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1;
}

.portal-benefits-title span {
    color: var(--portal-primary);
    font-weight: 400;
}

.portal-benefits-title strong {
    color: var(--portal-primary);
    font-weight: 800;
}

.portal-benefits-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
    min-width: 0;
}

.portal-benefits-grid > * {
    min-width: 0;
}

.portal-benefits-grid-page {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.portal-benefit-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
    padding: 1.3rem 1rem 1.15rem;
    background: var(--portal-paper);
    border: 1px solid rgba(21, 48, 77, 0.1);
    border-top: 4px solid rgba(0, 86, 166, 0.22);
    border-radius: 1.35rem;
    box-shadow: 0 14px 28px rgba(15, 36, 58, 0.06);
    text-align: center;
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

.portal-benefit-card:hover,
.portal-benefit-card:focus-within {
    transform: translateY(-2px);
    border-color: rgba(0, 86, 166, 0.24);
    box-shadow: 0 20px 36px rgba(15, 36, 58, 0.1);
}

.portal-benefit-visual {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.95rem;
    text-decoration: none;
}

.portal-benefit-visual img,
.portal-benefit-avatar-fallback {
    width: 5.3rem;
    height: 5.3rem;
    border-radius: 50%;
}

.portal-benefit-visual img {
    object-fit: cover;
    box-shadow: 0 14px 28px rgba(15, 36, 58, 0.1);
}

.portal-benefit-avatar-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--portal-primary) 0%, var(--portal-dark) 100%);
    color: #fff;
    font-family: var(--portal-font-sans);
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    box-shadow: 0 14px 28px rgba(15, 36, 58, 0.12);
}

.portal-benefit-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    width: 100%;
}

.portal-benefit-name {
    margin: 0;
    color: var(--portal-dark);
    font-family: var(--portal-font-sans);
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    line-height: 1.25;
    text-transform: uppercase;
}

.portal-benefit-type {
    color: var(--portal-muted);
    font-size: 0.96rem;
    font-weight: 500;
}

.portal-benefit-meta {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    color: var(--portal-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.portal-benefit-summary {
    margin: 0.2rem 0 0;
    color: var(--portal-muted);
    font-size: 0.82rem;
    line-height: 1.5;
}

.portal-benefit-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: auto;
    padding: 0.4rem 0;
    color: var(--portal-accent);
    font-size: 0.88rem;
    font-weight: 700;
    text-decoration: none;
}

.portal-benefit-link:hover,
.portal-benefit-link:focus-visible {
    color: #aa6e00;
}

.portal-benefit-link.secondary {
    color: var(--portal-primary);
}

.portal-benefit-link.secondary:hover,
.portal-benefit-link.secondary:focus-visible {
    color: #004c92;
}

.portal-benefits-empty {
    padding: 1.2rem 1.3rem;
}

.portal-weather-home-section {
    padding-top: 0.2rem;
}

.portal-weather-card {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.portal-weather-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.portal-weather-update {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.8rem;
    border-radius: 999px;
    background: rgba(0, 86, 166, 0.08);
    color: var(--portal-primary);
    font-size: 0.78rem;
    font-weight: 700;
}

.portal-weather-update.is-stale {
    background: rgba(217, 140, 0, 0.12);
    color: #9a6200;
}

.portal-weather-current {
    display: block;
}

.portal-weather-current-main {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 11.5rem;
    padding: 1.25rem 1.3rem;
    border-radius: 1.4rem;
    background:
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.18), transparent 40%),
        linear-gradient(135deg, var(--portal-primary) 0%, var(--portal-dark) 100%);
    color: #fff;
    box-shadow: 0 16px 30px rgba(15, 36, 58, 0.12);
}

.portal-weather-current-top {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.portal-weather-current-location {
    margin-top: 0.25rem;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.92rem;
}

.portal-weather-current-body {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-end;
    margin-top: 0.9rem;
}

.portal-weather-current-summary {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.portal-weather-current-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.12);
    font-size: 1.85rem;
}

.portal-weather-temperature {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.25rem;
    margin: 1.1rem 0 0.45rem;
    font-family: var(--portal-font-serif);
    font-size: clamp(2.8rem, 5vw, 4.2rem);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 0.95;
}

.portal-weather-temperature small {
    margin-top: 0.35rem;
    font-family: var(--portal-font-sans);
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0;
}

.portal-weather-condition {
    color: rgba(var(--portal-nav-text-rgb, 255, 255, 255), 0.92);
    font-size: 1rem;
    line-height: 1.5;
}

.portal-weather-inline-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.6rem;
    min-width: min(100%, 26rem);
}

.portal-weather-inline-metric {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
    padding: 0.8rem 0.85rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(6px);
}

.portal-weather-inline-metric-label {
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-weather-inline-metric strong {
    color: #fff;
    font-size: 0.98rem;
    font-weight: 800;
    line-height: 1.2;
}

.portal-weather-forecast-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
}

.portal-weather-day-card {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-height: 8.9rem;
    padding: 0.9rem 0.95rem;
    border: 1px solid rgba(21, 48, 77, 0.09);
    border-radius: 1.15rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(243, 247, 252, 0.96) 100%);
    box-shadow: 0 10px 20px rgba(15, 36, 58, 0.045);
}

.portal-weather-day-head {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: center;
}

.portal-weather-day-label {
    color: var(--portal-dark);
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.portal-weather-day-icon {
    color: var(--portal-primary);
    font-size: 1.35rem;
}

.portal-weather-day-condition {
    min-height: 1.5rem;
    color: var(--portal-muted);
    font-size: 0.84rem;
    line-height: 1.4;
}

.portal-weather-day-temps {
    display: inline-flex;
    align-items: baseline;
    gap: 0.35rem;
    margin-top: auto;
    color: var(--portal-dark);
    font-size: 0.95rem;
    font-weight: 700;
}

.portal-weather-day-temps strong {
    font-size: 1.3rem;
    font-weight: 800;
}

.portal-weather-day-rain {
    color: var(--portal-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.portal-weather-empty {
    padding: 1rem 1.1rem;
    border: 1px dashed rgba(21, 48, 77, 0.18);
    border-radius: 1rem;
    background: rgba(250, 252, 255, 0.9);
}

.portal-weather-note {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    color: var(--portal-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.portal-benefit-detail-header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1.2rem;
    align-items: center;
}

.portal-benefit-detail-visual {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.portal-benefit-detail-visual img,
.portal-benefit-detail-visual .portal-benefit-avatar-fallback {
    width: 7rem;
    height: 7rem;
}

.portal-link-action {
    color: var(--portal-primary);
}

.portal-list-link,
.portal-news-list-item,
.portal-side-link {
    text-decoration: none;
}

.portal-list-link strong,
.portal-news-list-item strong,
.portal-side-link strong {
    display: block;
    color: #18324b;
}

.portal-side-link--title-only {
    justify-content: flex-start;
    align-items: center;
    gap: 0;
    padding: 0.78rem 0.9rem;
    border-radius: 15px;
}

.portal-side-link--title-only strong {
    width: 100%;
    margin: 0;
    font-size: 1rem;
    line-height: 1.25;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.portal-list-link span,
.portal-news-list-item span,
.portal-side-link span {
    display: block;
    color: var(--portal-muted);
}

.portal-legal-index-row {
    display: grid;
    grid-template-columns: minmax(14rem, 22rem) minmax(0, 1fr) minmax(8.5rem, 10rem);
    align-items: center;
    gap: 1rem;
}

.portal-legal-index-summary {
    color: #526073;
    font-size: 0.84rem;
    line-height: 1.35;
    white-space: nowrap;
    line-height: 1;
    text-overflow: ellipsis;
    overflow: hidden;
}

.portal-legal-index-published {
    text-align: right;
}

.portal-legal-index-published span {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.portal-legal-index-published strong {
    font-size: 0.88rem;
}

.portal-rich-content {
    color: #32475b;
    font-size: 0.96rem;
    font-family: var(--portal-font-site);
    line-height: 1.7;
}

.portal-rich-content h2,
.portal-rich-content h3,
.portal-rich-content h4 {
    margin-top: 1.4rem;
    margin-bottom: 0.7rem;
}

.portal-rich-content p:last-child {
    margin-bottom: 0;
}

.portal-presentation-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.95fr);
    gap: 1.5rem;
    align-items: start;
}

.portal-presentation-layout-history {
    grid-template-columns: minmax(260px, 0.92fr) minmax(0, 1.28fr);
}

.portal-presentation-copy {
    min-width: 0;
}

.portal-presentation-figure {
    margin: 0;
}

.portal-presentation-figure img {
    width: 100%;
    display: block;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 1rem;
    border: 1px solid rgba(22, 50, 79, 0.12);
    background: linear-gradient(180deg, #eef3f8 0%, #dfe9f3 100%);
    box-shadow: 0 18px 44px rgba(10, 37, 64, 0.12);
}

.portal-presentation-layout-history .portal-presentation-figure img {
    aspect-ratio: 5 / 4;
    object-position: center;
}

.portal-presentation-note {
    margin-top: 0.75rem;
    color: #5f7286;
    font-size: 0.82rem;
    line-height: 1.5;
}

.portal-organogram-note {
    margin-bottom: 1.15rem;
    padding: 1.1rem 1.15rem;
    border: 1px solid rgba(16, 47, 83, 0.1);
    border-left: 4px solid rgba(0, 86, 166, 0.5);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(247, 250, 254, 0.94), rgba(255, 255, 255, 1));
    box-shadow: 0 14px 28px rgba(16, 47, 83, 0.05);
}

.portal-organogram-note strong {
    display: block;
    margin-bottom: 0.45rem;
    color: #16324f;
    font-size: 1rem;
    font-weight: 700;
}

.portal-organogram-copy {
    max-width: 100%;
}

.portal-governance-summary {
    display: grid;
    gap: 1rem;
    align-items: start;
}

.portal-governance-summary-stat {
    display: inline-flex;
    align-items: baseline;
    gap: 0.65rem;
    flex-wrap: wrap;
    width: fit-content;
    padding: 0.85rem 1rem;
    border-radius: 1rem;
    border: 1px solid rgba(12, 78, 140, 0.12);
    background: linear-gradient(180deg, rgba(247, 250, 254, 0.98), rgba(236, 243, 251, 0.94));
}

.portal-governance-summary-stat strong {
    font-size: 1.85rem;
    line-height: 1;
    color: var(--portal-primary);
}

.portal-governance-summary-stat span {
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgba(22, 50, 79, 0.78);
}

.portal-section-map-card {
    padding: 1rem;
}

.portal-contact-location-card {
    padding: clamp(1.15rem, 2vw, 1.65rem);
}

.portal-contact-location-card .portal-rich-content {
    color: #17324b;
    font-size: 0.98rem;
    line-height: 1.72;
    max-width: 34rem;
}

.portal-contact-location-card .portal-rich-content p,
.portal-contact-location-card .portal-rich-content li {
    text-align: left;
    text-justify: auto;
}

.portal-contact-location-summary {
    display: grid;
    grid-template-columns: minmax(8.5rem, max-content) minmax(15rem, 1fr);
    gap: 0;
    margin-top: 1.25rem;
    overflow: hidden;
    border: 1px solid var(--portal-border);
    border-top-width: 3px;
    border-top-color: rgba(var(--portal-primary-rgb), 0.24);
    border-radius: var(--portal-radius);
    background: var(--portal-paper);
    box-shadow: 0 10px 22px rgba(16, 47, 83, 0.06);
}

.portal-contact-location-item {
    display: grid;
    align-content: center;
    gap: 0.35rem;
    min-width: 0;
    padding: 1rem 1.1rem;
    border-right: 1px solid rgba(16, 47, 83, 0.08);
    border-bottom: 1px solid rgba(16, 47, 83, 0.08);
}

.portal-contact-location-item:nth-child(2n),
.portal-contact-location-item.is-full {
    border-right: 0;
}

.portal-contact-location-item.is-full {
    grid-column: 1 / -1;
}

.portal-contact-location-item:last-child {
    border-bottom: 0;
}

.portal-contact-location-card .portal-mini-label {
    color: #52657d;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.portal-contact-location-card .fw-semibold {
    color: #102f53;
    font-size: clamp(0.86rem, 1.28vw, 0.96rem);
    line-height: 1.38;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1;
    word-break: normal;
}

@media (max-width: 575.98px) {
    .portal-contact-location-summary {
        grid-template-columns: 1fr;
    }

    .portal-contact-location-item,
    .portal-contact-location-item:nth-child(2n) {
        border-right: 0;
    }
}

.portal-section-map-embed {
    overflow: hidden;
    border-radius: 1rem;
    border: 1px solid rgba(16, 47, 83, 0.08);
    background: rgba(247, 250, 254, 0.92);
    box-shadow: 0 14px 28px rgba(16, 47, 83, 0.08);
}

.portal-section-map-embed iframe {
    width: 100%;
    min-height: 420px;
    border: 0;
    display: block;
}

.portal-governance-person-card {
    padding: 1.35rem;
}

.portal-governance-person-card-compact {
    padding: 1.15rem;
    border-color: rgba(var(--portal-primary-rgb), 0.16);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 251, 247, 0.96));
    box-shadow: 0 16px 30px rgba(18, 34, 56, 0.08);
}

.portal-governance-person-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.2rem;
    align-items: start;
}

.portal-governance-person-content {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.portal-governance-person-header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: start;
}

.portal-governance-person-header h2 {
    word-break: break-word;
}

.portal-governance-person-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-end;
}

.portal-governance-member-list {
    display: grid;
    gap: 0.7rem;
}

.portal-governance-members-panel .portal-panel-heading {
    margin-bottom: 0.95rem;
}

.portal-governance-members-panel .portal-kicker {
    font-size: 0.68rem;
    letter-spacing: 0.14em;
}

.portal-governance-members-panel h2 {
    font-size: 1.08rem;
    line-height: 1.25;
}

.portal-governance-member-list--sidebar {
    max-height: min(68vh, 720px);
    overflow-y: auto;
    padding-right: 0.15rem;
    scrollbar-gutter: stable;
}

.portal-governance-member-list-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
    padding: 0.8rem 0.9rem;
    border: 1px solid rgba(var(--portal-primary-rgb), 0.12);
    border-radius: 0.5rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 251, 247, 0.96));
    box-shadow: 0 8px 18px rgba(18, 34, 56, 0.05);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.portal-governance-member-list-item:hover {
    border-color: rgba(var(--portal-primary-rgb), 0.2);
    box-shadow: 0 12px 24px rgba(18, 34, 56, 0.08);
    transform: translateY(-1px);
}

.portal-governance-member-list-copy {
    min-width: 0;
    flex: 1 1 auto;
}

.portal-governance-member-list-name {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.3;
    font-weight: 700;
    color: var(--portal-heading-color, var(--portal-primary));
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: normal;
    overflow-wrap: anywhere;
}

.portal-governance-member-list-role {
    margin: 0.18rem 0 0;
    color: color-mix(in srgb, var(--portal-heading-color, var(--portal-primary)) 62%, white 38%);
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.4;
}

.portal-governance-member-list-action {
    flex: 0 0 auto;
    align-self: center;
}

.portal-governance-member-list-action .btn {
    min-height: 1.5rem;
    padding: 0.36rem 0.8rem;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 700;
    white-space: nowrap;
    line-height: 1;
}

.portal-governance-member-list-action .btn:hover,
.portal-governance-member-list-action .btn:focus-visible {
    box-shadow: 0 0 0 0.18rem rgba(var(--portal-primary-rgb), 0.12);
}

.portal-governance-contextual-panel {
    height: 100%;
}

.portal-governance-title-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.25rem;
    flex-wrap: wrap;
}

.portal-governance-title-copy {
    flex: 1 1 20rem;
    min-width: 0;
}

.portal-governance-title-copy .h2,
.portal-governance-title-copy h1 {
    line-height: 1.15;
}

.portal-governance-next-meeting {
    flex: 0 0 auto;
    width: fit-content;
    max-width: 100%;
    min-width: 0;
    margin-left: auto;
    padding: 0.72rem 0.9rem;
    border: 1px solid rgba(var(--portal-primary-rgb), 0.12);
    border-radius: 1rem;
    background:
        radial-gradient(circle at top right, rgba(var(--portal-primary-rgb), 0.08), transparent 58%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 250, 247, 0.96));
}

.portal-governance-next-meeting-inline {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.5rem;
    flex-wrap: nowrap;
    white-space: nowrap;
    line-height: 1;
    min-height: 1.5rem;
}

.portal-governance-next-meeting-date {
    color: #12365c;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1;
}

.portal-governance-next-meeting-inline > span:not(.portal-kicker):not(.portal-governance-next-meeting-date) {
    color: #5a6879;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1;
    display: inline-flex;
    align-items: center;
}

.portal-governance-next-meeting-status {
    color: rgba(var(--portal-primary-rgb), 0.92);
}

.portal-governance-next-meeting-link {
    display: inline-flex;
    align-items: center;
    margin-top: 0.6rem;
    color: var(--portal-primary);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-decoration: none;
    text-transform: uppercase;
}

.portal-governance-next-meeting-link:hover,
.portal-governance-next-meeting-link:focus-visible {
    color: var(--portal-primary);
    text-decoration: underline;
}

.portal-governance-next-meeting-empty {
    margin-top: 0.28rem;
    color: #5a6879;
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1.35;
}

.portal-governance-contextual-panel .portal-panel-heading {
    margin-bottom: 0.9rem;
}

.portal-governance-contextual-panel h2 {
    font-size: 1rem;
    line-height: 1.25;
}

.portal-governance-contextual-grid {
    display: grid;
    gap: 0.9rem;
}

.portal-governance-contextual-link {
    display: grid;
    align-content: start;
    gap: 0.36rem;
    padding: 0.95rem 1rem;
    min-height: 6.1rem;
    border: 1px solid rgba(var(--portal-primary-rgb), 0.14);
    border-radius: 1rem;
    background:
        radial-gradient(circle at top right, rgba(var(--portal-primary-rgb), 0.08), transparent 56%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(245, 250, 246, 0.97));
    color: inherit;
    text-decoration: none;
    box-shadow: 0 12px 24px rgba(18, 34, 56, 0.05);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
}

.portal-governance-contextual-link:hover,
.portal-governance-contextual-link:focus-visible {
    border-color: rgba(var(--portal-primary-rgb), 0.28);
    box-shadow: 0 16px 28px rgba(18, 34, 56, 0.08);
    transform: translateY(-1px);
    text-decoration: none;
}

.portal-governance-contextual-link:focus-visible {
    outline: 2px solid rgba(var(--portal-primary-rgb), 0.2);
    outline-offset: 2px;
}

.portal-governance-contextual-link strong {
    display: block;
}

.portal-governance-contextual-link-title {
    display: block;
    color: var(--portal-heading-color, var(--portal-primary));
    font-size: 0.98rem;
    line-height: 1.28;
    font-weight: 700;
}

.portal-governance-contextual-link-description {
    display: block;
    color: var(--portal-muted);
    font-size: 0.84rem;
    line-height: 1.4;
    font-weight: 500;
}

.portal-governance-contextual-link-action {
    display: inline-flex;
    align-items: center;
    margin-top: auto;
    color: var(--portal-primary);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-governance-member-list + .portal-governance-contextual-panel {
    margin-top: 1rem;
}

@media (max-width: 991.98px) {
    .portal-governance-next-meeting {
        flex-basis: 100%;
        width: 100%;
        min-width: 0;
        margin-left: 0;
    }

    .portal-governance-next-meeting-inline {
        flex-wrap: wrap;
        white-space: normal;
    }
}

.portal-governance-person-card-compact .portal-governance-person-layout {
    grid-template-columns: 1fr;
    gap: 0.95rem;
}

.portal-governance-person-card-compact .portal-governance-person-content {
    gap: 0.85rem;
}

.portal-governance-person-card-compact .portal-governance-person-header {
    flex-direction: column;
    align-items: center;
    gap: 0.7rem;
    text-align: center;
}

.portal-governance-person-card-compact .portal-governance-person-header h2 {
    margin-top: 0 !important;
    margin-bottom: 0.35rem !important;
    font-size: 1.75rem;
    line-height: 1.18;
}

.portal-governance-person-card-compact .portal-governance-person-header .text-muted {
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(16, 47, 83, 0.78) !important;
}

.portal-governance-person-card-compact .portal-governance-person-actions {
    width: auto;
    justify-content: center;
}

.portal-governance-person-card-compact .portal-governance-person-actions .btn {
    width: auto;
    min-width: 0;
    justify-content: center;
    border-radius: 0.95rem;
    font-weight: 700;
    padding-inline: 1rem;
}

.portal-governance-person-card-compact .portal-kicker {
    display: none;
}

.portal-governance-person-card-compact .portal-governance-person-meta {
    grid-template-columns: 1fr;
    gap: 0.65rem;
}

.portal-governance-person-card-compact .portal-governance-meta-item {
    padding: 0.8rem 0.9rem;
}

.portal-governance-profile-dialog {
    max-width: min(1240px, calc(100vw - 2rem));
}

.portal-home-institutional-shell {
    border-color: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.12);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(247, 250, 253, 0.97)),
        radial-gradient(circle at top right, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.06), transparent 42%);
}

.portal-home-institutional-card {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    height: 100%;
    padding: 1.1rem 1rem;
    border: 1px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.12);
    border-radius: 1.05rem;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 12px 28px rgba(15, 36, 58, 0.05);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.portal-home-institutional-card:hover,
.portal-home-institutional-card:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.2);
    box-shadow: 0 18px 32px rgba(15, 36, 58, 0.08);
}

.portal-home-institutional-icon {
    width: 3rem;
    height: 3rem;
    flex: 0 0 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.95rem;
    background: var(--portal-primary);
    color: #fff;
    box-shadow: 0 10px 22px rgba(15, 36, 58, 0.12);
}

.portal-home-institutional-copy {
    display: grid;
    gap: 0.3rem;
    min-width: 0;
    flex: 1 1 auto;
}

.portal-home-institutional-title {
    color: var(--portal-dark);
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.3;
}

.portal-home-institutional-text {
    color: var(--portal-muted);
    font-size: 0.82rem;
    line-height: 1.45;
}

.portal-home-institutional-action {
    color: var(--portal-primary);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.portal-home-institutional-chevron {
    color: var(--portal-primary);
    align-self: center;
    font-size: 0.95rem;
}

.portal-home-faq-empty {
    padding: 1.2rem 1.25rem;
    border: 1px dashed rgba(var(--portal-primary-rgb, 0, 86, 166), 0.22);
    border-radius: 1rem;
    background: rgba(248, 251, 255, 0.88);
}

.portal-governance-profile-modal {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1.5rem;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 28px 72px rgba(10, 37, 64, 0.18);
}

.portal-governance-profile-modal .modal-header {
    position: relative;
    padding: 1.5rem 1.75rem 1.35rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    align-items: flex-start;
    background: #fff;
    color: var(--portal-dark, #16324f);
}

.portal-governance-profile-modal .modal-body {
    padding: 1.4rem 1.75rem 1.75rem;
}

.portal-governance-profile-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
}

.portal-governance-profile-content {
    display: grid;
    gap: 1.35rem;
}

.portal-governance-profile-overview-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.95fr);
    gap: 1.25rem;
    align-items: start;
}

.portal-governance-profile-secondary-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
}

.portal-governance-profile-section {
    padding: 1.05rem 1.1rem 1.1rem;
    border: 1px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.12);
    border-radius: 1rem;
    background: #fff;
    box-shadow: none;
}

.portal-governance-profile-description {
    margin: 0;
    padding: 1.05rem 1.1rem 1.1rem;
    border: 1px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.1);
    border-radius: 1rem;
    background: #fff;
    box-shadow: none;
}

.portal-governance-profile-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.95rem;
    margin: 0;
}

.portal-governance-profile-fact {
    margin: 0;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.1);
    border-radius: 0.95rem;
    background: #fff;
}

.portal-governance-profile-fact dd {
    margin: 0;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--portal-dark, #16324f);
    font-weight: 700;
    overflow-wrap: anywhere;
}

.portal-governance-profile-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.portal-governance-profile-legal-acts {
    display: grid;
    gap: 0.8rem;
    padding: 1.05rem 1.1rem;
    border: 1px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.1);
    border-radius: 1rem;
    background: #fff;
    box-shadow: none;
}

.portal-governance-profile-legal-acts-list {
    display: grid;
    gap: 0.7rem;
}

.portal-governance-profile-legal-act {
    display: block;
    padding-bottom: 0.7rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.2);
    color: var(--portal-heading-color, var(--portal-primary));
    font-weight: 700;
    text-decoration: none;
}

.portal-governance-profile-legal-act:hover {
    color: var(--portal-primary);
}

.portal-governance-profile-legal-act-meta {
    display: block;
    margin-top: 0.22rem;
    font-size: 0.84rem;
    font-weight: 500;
    color: var(--portal-muted);
}

.portal-governance-profile-memberships {
    display: grid;
    gap: 0.8rem;
    padding: 1.05rem;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 1.05rem;
    background: rgba(255, 255, 255, 0.84);
}

.portal-governance-profile-hero {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1.25rem;
    align-items: center;
}

.portal-governance-profile-avatar-shell {
    position: relative;
    width: 104px;
    height: 104px;
    flex: 0 0 104px;
}

.portal-governance-profile-avatar,
.portal-governance-profile-avatar-placeholder {
    width: 100%;
    height: 100%;
    border-radius: 1.25rem;
}

.portal-governance-profile-avatar {
    display: block;
    object-fit: cover;
    border: 1px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.16);
    box-shadow: none;
}

.portal-governance-profile-avatar-placeholder {
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.08), rgba(var(--portal-primary-rgb, 0, 86, 166), 0.18));
    color: var(--portal-dark, #16324f);
    font-size: 1.8rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    border: 1px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.16);
}

.portal-governance-profile-hero-role {
    color: var(--portal-muted);
    font-size: 1rem;
    font-weight: 700;
}

.portal-governance-profile-hero-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.portal-governance-profile-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.5rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.1);
    color: var(--portal-dark, #16324f);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    border: 1px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.12);
}

.portal-governance-profile-badge--soft {
    background: rgba(148, 163, 184, 0.12);
    color: var(--portal-muted);
}

.portal-governance-profile-badge--success {
    background: rgba(134, 239, 172, 0.18);
    color: #14532d;
    border-color: rgba(134, 239, 172, 0.34);
}

.portal-governance-profile-badge--warning {
    background: rgba(253, 224, 71, 0.2);
    color: #854d0e;
    border-color: rgba(253, 224, 71, 0.35);
}

.portal-governance-profile-badge--danger {
    background: rgba(254, 202, 202, 0.18);
    color: #991b1b;
    border-color: rgba(254, 202, 202, 0.32);
}

.portal-governance-profile-section-heading {
    margin-bottom: 1rem;
}

.portal-governance-profile-section-title {
    margin: 0.25rem 0 0;
    color: var(--portal-dark, #16324f);
    font-size: 1.08rem;
    font-weight: 700;
}

.portal-governance-profile-certification-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.15rem;
    align-items: start;
    padding: 1.05rem 1.1rem;
    border-radius: 1rem;
    background: #fff;
    border: 1px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.16);
}

.portal-governance-profile-certification-title-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    align-items: center;
    margin-bottom: 0.8rem;
}

.portal-governance-profile-certification-title {
    color: var(--portal-dark, #16324f);
    font-size: 1.04rem;
}

.portal-governance-profile-certification-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.portal-governance-profile-certification-meta-item {
    min-width: 0;
    padding: 0.85rem 0.95rem;
    border-radius: 0.95rem;
    background: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.04);
    border: 1px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.1);
}

.portal-governance-profile-certification-meta-item strong {
    display: block;
    margin-top: 0.22rem;
    color: var(--portal-dark, #16324f);
}

.portal-governance-profile-certification-notes {
    margin-top: 0.85rem;
    color: rgba(15, 23, 42, 0.72);
    line-height: 1.55;
}

body .portal-governance-profile-cert-btn,
.portal-body .portal-governance-profile-cert-btn,
.portal-client-layout-body .portal-governance-profile-cert-btn,
.portal-client-unified-body .portal-governance-profile-cert-btn,
.portal-internal-body .portal-governance-profile-cert-btn {
    width: auto;
    justify-content: center;
    min-height: 2.7rem;
    padding: 0.72rem 1.1rem;
    border: 1px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.22);
    border-radius: 0.5rem;
    background: #fff;
    color: var(--portal-primary, #0056a6);
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    box-shadow: none;
    text-decoration: none;
    transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

body .portal-governance-profile-cert-btn:hover,
body .portal-governance-profile-cert-btn:focus-visible,
.portal-body .portal-governance-profile-cert-btn:hover,
.portal-body .portal-governance-profile-cert-btn:focus-visible,
.portal-client-layout-body .portal-governance-profile-cert-btn:hover,
.portal-client-layout-body .portal-governance-profile-cert-btn:focus-visible,
.portal-client-unified-body .portal-governance-profile-cert-btn:hover,
.portal-client-unified-body .portal-governance-profile-cert-btn:focus-visible,
.portal-internal-body .portal-governance-profile-cert-btn:hover,
.portal-internal-body .portal-governance-profile-cert-btn:focus-visible {
    border-color: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.36);
    background: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.06);
    color: var(--portal-primary, #0056a6);
}

.portal-governance-profile-modal .btn-close {
    margin: 0;
    padding: 0.55rem;
    border-radius: 999px;
    background-color: rgba(15, 23, 42, 0.04);
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);
    opacity: 1;
    filter: none;
}

.portal-governance-profile-modal .btn-close:hover,
.portal-governance-profile-modal .btn-close:focus-visible {
    background-color: rgba(15, 23, 42, 0.08);
}

.portal-governance-person-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
}

.portal-governance-meta-item {
    padding: 0.9rem 1rem;
    border-radius: 1rem;
    border: 1px solid rgba(12, 78, 140, 0.1);
    background: rgba(245, 249, 253, 0.88);
}

.portal-governance-meta-item strong {
    display: block;
    font-size: 0.96rem;
    line-height: 1.45;
    color: var(--portal-heading);
}

.portal-governance-meta-label {
    display: block;
    margin-bottom: 0.28rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(22, 50, 79, 0.68);
}

.portal-governance-person-text {
    color: rgba(27, 43, 61, 0.92);
}

.portal-governance-person-text p:last-child {
    margin-bottom: 0;
}

.portal-governance-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.portal-governance-chip {
    display: inline-flex;
    align-items: center;
    min-height: 1.5rem;
    padding: 0.45rem 0.8rem;
    border-radius: 999px;
    border: 1px solid rgba(var(--portal-primary-rgb), 0.14);
    background: rgba(var(--portal-primary-rgb), 0.08);
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--portal-primary);
}

.portal-leaders-directory-card {
    display: grid;
    grid-template-columns: 108px minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    min-height: 100%;
    padding: 0;
    background: transparent;
    border: 0;
}

.portal-leaders-directory-trigger {
    width: 100%;
    text-align: left;
    cursor: pointer;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.portal-leaders-directory-trigger:hover,
.portal-leaders-directory-trigger:focus-visible {
    transform: translateY(-2px);
}

.portal-leaders-directory-trigger:focus-visible {
    outline: 3px solid rgba(0, 86, 166, 0.22);
    outline-offset: 0.35rem;
}

.portal-leaders-directory-photo-wrap {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
}

.portal-leaders-directory-photo {
    width: 92px;
    height: 100px;
    object-fit: cover;
    border-radius: 0.85rem;
    background: #fff;
    border: 1px solid rgba(16, 47, 83, 0.08);
    box-shadow: 0 14px 28px rgba(16, 47, 83, 0.12);
}

.portal-leaders-directory-photo-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    color: #000;
}

.portal-leaders-directory-copy {
    min-width: 0;
}

.portal-leaders-directory-aside {
    padding: 0.85rem;
}

.portal-leaders-directory-figure img {
    aspect-ratio: 16 / 9;
    max-height: 340px;
    object-position: center;
}

.portal-leaders-directory-role {
    display: block;
    margin-bottom: 0.25rem;
    font-size: 1rem;
    font-style: italic;
    color: rgba(104, 118, 139, 0.94);
}

.portal-leaders-directory-name {
    margin: 0;
    font-size: 1.9rem;
    line-height: 1.15;
    color: #864a79;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.portal-leaders-directory-certification {
    margin: 0.45rem 0 0;
    font-size: 1rem;
    color: #8d6e8e;
}

.portal-leaders-modal .modal-content {
    border: 0;
    border-radius: 1.4rem;
    overflow: hidden;
    box-shadow: 0 28px 56px rgba(12, 29, 46, 0.2);
}

.portal-leaders-modal-header {
    padding: 1.35rem 1.5rem;
    border-bottom: 1px solid rgba(16, 47, 83, 0.08);
    background: linear-gradient(180deg, rgba(247, 250, 254, 0.98), rgba(255, 255, 255, 1));
}

.portal-leaders-modal-body {
    padding: 1.5rem;
}

.portal-leaders-modal-top {
    display: grid;
    grid-template-columns: 148px minmax(0, 1fr);
    gap: 1.35rem;
    align-items: start;
    margin-bottom: 1.5rem;
}

.portal-leaders-modal-photo-wrap {
    display: flex;
    justify-content: center;
}

.portal-leaders-modal-photo {
    width: 136px;
    height: 148px;
    object-fit: cover;
    border-radius: 1rem;
    background: #fff;
    border: 1px solid rgba(16, 47, 83, 0.08);
    box-shadow: 0 14px 30px rgba(16, 47, 83, 0.12);
}

.portal-leaders-modal-photo-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 4rem;
    color: #000;
}

.portal-leaders-modal-role {
    font-size: 1.05rem;
    font-style: italic;
    color: rgba(104, 118, 139, 0.95);
}

.portal-leaders-modal-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.portal-leaders-modal-item {
    padding: 0.9rem 1rem;
    border-radius: 1rem;
    border: 1px solid rgba(12, 78, 140, 0.09);
    background: rgba(245, 249, 253, 0.9);
}

.portal-leaders-modal-item span {
    display: block;
    margin-bottom: 0.3rem;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(22, 50, 79, 0.68);
}

.portal-leaders-modal-item strong {
    display: block;
    font-size: 0.97rem;
    line-height: 1.45;
    color: var(--portal-heading);
}

.portal-leaders-modal-section + .portal-leaders-modal-section {
    margin-top: 1.2rem;
}

.portal-leaders-modal-section h3 {
    margin-bottom: 0.7rem;
    font-size: 1.05rem;
    color: #16324f;
}

.portal-leaders-certification-viewer {
    padding: 0.9rem;
    border: 1px solid rgba(12, 78, 140, 0.1);
    border-radius: 1rem;
    background: rgba(248, 250, 253, 0.95);
}

.portal-leaders-certification-viewer iframe {
    width: 100%;
    min-height: 32rem;
    border: 0;
    border-radius: 0.85rem;
    background: #fff;
}

.portal-leaders-certification-fallback {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.8rem;
    align-items: center;
    margin-top: 0.9rem;
    color: var(--portal-muted);
}

@media (max-width: 767.98px) {
    .portal-leaders-directory-card {
        grid-template-columns: 1fr;
        gap: 0.85rem;
    }

    .portal-leaders-directory-photo-wrap {
        justify-content: flex-start;
    }

    .portal-leaders-directory-name {
        font-size: 1.55rem;
    }

    .portal-leaders-directory-figure img {
        max-height: 240px;
    }

    .portal-section-map-embed iframe {
        min-height: 300px;
    }

    .portal-leaders-modal-top,
    .portal-leaders-modal-grid {
        grid-template-columns: 1fr;
    }

    .portal-leaders-modal-photo-wrap {
        justify-content: flex-start;
    }

    .portal-leaders-certification-viewer iframe {
        min-height: 22rem;
    }

    .portal-governance-person-layout {
        grid-template-columns: 1fr;
    }

    .portal-governance-person-media {
        justify-content: flex-start;
    }

    .portal-governance-person-header {
        flex-direction: column;
    }

    .portal-governance-person-actions {
        justify-content: flex-start;
    }

    .portal-governance-member-list-item {
        flex-direction: column;
        align-items: flex-start;
    }

    .portal-governance-member-list-name {
        font-size: 0.88rem;
    }

    .portal-governance-member-list-role {
        font-size: 0.74rem;
    }

    .portal-governance-member-list-action {
        width: 100%;
    }

    .portal-governance-member-list-action .btn {
        width: 100%;
    }

    .portal-governance-contextual-link {
        min-height: auto;
        padding: 0.95rem 1rem;
    }

    .portal-governance-contextual-link-title {
        font-size: 0.94rem;
    }

    .portal-governance-contextual-link-description {
        font-size: 0.81rem;
    }

    .portal-governance-person-meta {
        grid-template-columns: 1fr;
    }

    .portal-governance-profile-layout {
        grid-template-columns: 1fr;
    }

    .portal-governance-profile-overview-grid,
    .portal-governance-profile-secondary-grid {
        grid-template-columns: 1fr;
    }

    .portal-governance-profile-media {
        justify-content: flex-start;
    }

    .portal-governance-profile-modal .modal-header {
        padding: 1.35rem 1.15rem 1.05rem;
    }

    .portal-governance-profile-modal .modal-body {
        padding: 1.15rem;
    }

    .portal-governance-profile-hero {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .portal-governance-profile-avatar-shell {
        width: 72px;
        height: 72px;
    }

    .portal-governance-profile-certification-card {
        grid-template-columns: 1fr;
    }

    .portal-governance-profile-facts {
        grid-template-columns: 1fr;
    }

    .portal-governance-profile-certification-meta {
        grid-template-columns: 1fr;
    }
}

/* Portal do Segurado */
.portal-insured-body {
    min-height: 100vh;
    margin: 0;
    background: #eef4f1;
    color: #132033;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.portal-insured-shell {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    min-height: 100vh;
}

.portal-insured-sidebar {
    position: sticky;
    top: 0;
    display: flex;
    height: 100vh;
    flex-direction: column;
    gap: 1rem;
    overflow-y: auto;
    padding: 1rem;
    background: #10253d;
    color: #fff;
}

.portal-insured-brand,
.portal-insured-nav-link,
.portal-insured-public-link,
.portal-insured-logout {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
    border: 0;
    border-radius: 8px;
    color: inherit;
    text-decoration: none;
}

.portal-insured-brand {
    padding: 0.55rem;
    background: rgba(255, 255, 255, 0.08);
}

.portal-insured-brand-logo {
    display: inline-flex;
    width: 56px;
    height: 42px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 6px;
    background: #fff;
    color: #10253d;
    font-weight: 800;
}

.portal-insured-brand-logo img {
    max-width: 52px;
    max-height: 38px;
    object-fit: contain;
}

.portal-insured-brand-copy {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.portal-insured-brand-copy strong,
.portal-insured-profile-copy strong,
.portal-insured-list-row strong {
    overflow-wrap: anywhere;
}

.portal-insured-brand-copy small,
.portal-insured-profile-copy small {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.78rem;
}

.portal-insured-nav {
    display: grid;
    gap: 0.35rem;
}

.portal-insured-nav-link {
    min-height: 42px;
    padding: 0.62rem 0.72rem;
    color: rgba(255, 255, 255, 0.82);
    font-weight: 750;
}

.portal-insured-nav-link:hover,
.portal-insured-nav-link.is-active {
    background: rgba(var(--insured-primary-rgb), 0.9);
    color: #fff;
}

.portal-insured-sidebar-footer {
    display: grid;
    gap: 0.4rem;
    margin-top: auto;
}

.portal-insured-public-link,
.portal-insured-logout {
    min-height: 40px;
    padding: 0.58rem 0.7rem;
    background: rgba(255, 255, 255, 0.08);
    font-weight: 700;
}

.portal-insured-logout {
    cursor: pointer;
}

.portal-insured-main {
    min-width: 0;
    padding: 1rem;
}

.portal-insured-topbar,
.portal-insured-card,
.portal-insured-hero-card,
.portal-insured-alert-card,
.portal-insured-metrics article,
.portal-insured-actions a {
    border: 1px solid rgba(120, 144, 169, 0.28);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 32, 51, 0.06);
}

.portal-insured-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 0.9rem 1rem;
}

.portal-insured-topbar h1,
.portal-insured-hero-card h2,
.portal-insured-section-heading h2 {
    margin: 0;
    color: #10253d;
    font-size: 1.35rem;
    font-weight: 800;
}

.portal-insured-kicker {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-bottom: 0.25rem;
    border-radius: 999px;
    padding: 0.18rem 0.48rem;
    background: rgba(var(--insured-primary-rgb), 0.1);
    color: var(--insured-primary);
    font-size: 0.66rem;
    font-weight: 800;
    text-transform: uppercase;
}

.portal-insured-profile {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.portal-insured-profile-copy {
    display: grid;
    text-align: right;
}

.portal-insured-profile-copy small {
    color: #617189;
}

.portal-insured-avatar {
    display: inline-flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--insured-primary);
    color: #fff;
    font-weight: 900;
}

.portal-insured-summary {
    display: grid;
    grid-template-columns: minmax(0, 1.8fr) minmax(280px, 0.8fr);
    gap: 1rem;
    margin-bottom: 1rem;
}

.portal-insured-hero-card,
.portal-insured-alert-card,
.portal-insured-card {
    padding: 1rem;
}

.portal-insured-identity-grid,
.portal-insured-metrics,
.portal-insured-actions,
.portal-insured-data-grid,
.portal-insured-document-grid {
    display: grid;
    gap: 0.75rem;
}

.portal-insured-identity-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 1rem;
}

.portal-insured-identity-grid span,
.portal-insured-data-grid div {
    display: grid;
    gap: 0.16rem;
    min-width: 0;
    border-radius: 8px;
    padding: 0.75rem;
    background: #f7fafc;
}

.portal-insured-identity-grid strong,
.portal-insured-data-grid dt {
    color: #65758b;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.portal-insured-alert-card {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.portal-insured-alert-card i,
.portal-insured-simulation-note i {
    color: var(--insured-primary);
    font-size: 1.45rem;
}

.portal-insured-alert-card p,
.portal-insured-simulation-note p,
.portal-insured-auth-panel p,
.portal-insured-empty-state p {
    margin: 0.25rem 0 0;
    color: #65758b;
}

.portal-insured-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 1rem;
}

.portal-insured-metrics article {
    display: grid;
    gap: 0.25rem;
    padding: 0.9rem 1rem;
}

.portal-insured-metrics span {
    color: #65758b;
    font-weight: 700;
}

.portal-insured-metrics strong {
    color: #10253d;
    font-size: 1.6rem;
}

.portal-insured-actions {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 1rem;
}

.portal-insured-actions a {
    display: flex;
    min-height: 88px;
    align-items: center;
    gap: 0.7rem;
    padding: 1rem;
    color: #10253d;
    font-weight: 800;
    text-decoration: none;
}

.portal-insured-actions a:hover {
    border-color: rgba(var(--insured-primary-rgb), 0.45);
    color: var(--insured-primary);
}

.portal-insured-actions i {
    color: var(--insured-primary);
    font-size: 1.3rem;
}

.portal-insured-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.portal-insured-list {
    display: grid;
    gap: 0.5rem;
}

.portal-insured-list-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 58px;
    border: 1px solid #d9e3ee;
    border-radius: 8px;
    padding: 0.7rem 0.8rem;
    color: #10253d;
    text-decoration: none;
}

.portal-insured-list-row span:first-child {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}

.portal-insured-list-row small {
    color: #65758b;
}

.portal-insured-status {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    border-radius: 999px;
    padding: 0.25rem 0.58rem;
    background: #edf7f1;
    color: #12633a;
    font-size: 0.78rem;
    font-weight: 800;
}

.portal-insured-empty,
.portal-insured-empty-state {
    border: 1px dashed #c7d4e2;
    border-radius: 8px;
    padding: 1rem;
    color: #65758b;
    text-align: center;
}

.portal-insured-empty-state {
    display: grid;
    justify-items: center;
    gap: 0.75rem;
}

.portal-insured-empty-state i {
    color: var(--insured-primary);
    font-size: 2rem;
}

.portal-insured-grid-2 {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 1rem;
}

.portal-insured-form {
    display: grid;
    gap: 0.9rem;
}

.portal-insured-readonly-note,
.portal-insured-simulation-note {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    margin-bottom: 1rem;
    border-radius: 8px;
    padding: 0.75rem;
    background: #f3f8f5;
    color: #183b2a;
}

.portal-insured-data-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.portal-insured-data-grid dd {
    margin: 0;
    overflow-wrap: anywhere;
    color: #10253d;
    font-weight: 700;
}

.portal-insured-description,
.portal-insured-answer {
    margin-top: 1rem;
    border-radius: 8px;
    padding: 0.9rem;
    background: #f7fafc;
}

.portal-insured-answer {
    background: #eef8f2;
}

.portal-insured-timeline {
    display: grid;
    gap: 0.75rem;
    margin: 0;
    padding-left: 1.1rem;
}

.portal-insured-timeline li {
    padding-left: 0.2rem;
}

.portal-insured-timeline span {
    display: block;
    color: #65758b;
    font-size: 0.84rem;
}

.portal-insured-table th {
    color: #65758b;
    font-size: 0.78rem;
    text-transform: uppercase;
}

.portal-insured-document-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-insured-document-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.85rem;
    align-items: center;
    border: 1px solid #d9e3ee;
    border-radius: 8px;
    padding: 0.85rem;
}

.portal-insured-document-card > i {
    color: var(--insured-primary);
    font-size: 1.6rem;
}

.portal-insured-document-card h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
}

.portal-insured-document-card p,
.portal-insured-document-card span,
.portal-insured-document-card small {
    display: block;
    margin: 0;
    color: #65758b;
}

.portal-insured-auth {
    display: grid;
    min-height: 58vh;
    place-items: center;
}

.portal-insured-auth-panel {
    width: min(100%, 520px);
    border: 1px solid rgba(120, 144, 169, 0.28);
    border-radius: 8px;
    padding: 1.3rem;
    background: #fff;
    box-shadow: 0 12px 30px rgba(15, 32, 51, 0.08);
}

.portal-insured-auth-panel h1 {
    margin: 0;
    color: #10253d;
    font-size: 1.6rem;
    font-weight: 800;
}

.portal-insured-auth-form {
    display: grid;
    gap: 0.9rem;
    margin-top: 1rem;
}

.portal-insured-auth-switch {
    margin-top: 1rem;
    text-align: center;
}

.portal-body .portal-insured-auth,
.portal-body .portal-public-auth-shell {
    display: grid;
    width: 100%;
    min-height: clamp(31rem, 62vh, 42rem);
    place-items: center;
    padding: clamp(1rem, 3vw, 2.5rem) 0;
}

.portal-body .portal-insured-auth-panel,
.portal-body .portal-public-auth-shell .portal-auth-card {
    width: min(100%, 34rem);
    margin-inline: auto;
    border: 1px solid rgba(var(--portal-primary-rgb), 0.16);
    border-top: 4px solid var(--portal-primary);
    border-radius: 1.15rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.94)),
        radial-gradient(circle at top right, rgba(var(--portal-primary-rgb), 0.10), transparent 52%);
    box-shadow: 0 22px 58px rgba(15, 32, 51, 0.12);
}

.portal-body .portal-insured-auth-panel h1 {
    margin: 0;
    color: var(--portal-dark);
    font-family: var(--portal-font-site);
    font-size: clamp(1.75rem, 4vw, 2.25rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1;
}

.portal-body .portal-insured-auth-panel p {
    max-width: 30rem;
    margin-top: 0.65rem;
    color: #4f6075;
    text-align: left;
}

.portal-body .portal-insured-auth-form {
    display: grid;
    gap: 0.85rem;
    margin-top: 1.4rem;
}

.portal-body .portal-insured-auth-form .form-control,
.portal-body .portal-public-auth-shell .portal-auth-input {
    min-height: 3rem;
    border-color: rgba(120, 144, 169, 0.36);
    border-radius: 0.8rem;
    background-color: #fff;
}

.portal-body .portal-insured-auth-form .btn,
.portal-body .portal-public-auth-shell .portal-auth-submit {
    min-height: 3rem;
    border-radius: 0.85rem;
    font-weight: 800;
}

.portal-body .portal-insured-auth-switch {
    margin-top: 1rem;
    text-align: center;
}

.portal-body .portal-insured-auth-switch a {
    color: var(--portal-primary);
    font-weight: 700;
}

.portal-client-import-help {
    display: grid;
    gap: 0.35rem;
    border-radius: 8px;
    padding: 0.75rem;
    background: #f7fafc;
}

.portal-client-import-help code {
    white-space: normal;
    overflow-wrap: anywhere;
}

@media (max-width: 1100px) {
    .portal-insured-shell {
        grid-template-columns: 1fr;
    }

    .portal-insured-sidebar {
        position: relative;
        height: auto;
    }

    .portal-insured-nav {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .portal-insured-summary,
    .portal-insured-grid-2 {
        grid-template-columns: 1fr;
    }

    .portal-insured-actions,
    .portal-insured-data-grid,
    .portal-insured-document-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .portal-insured-main {
        padding: 0.7rem;
    }

    .portal-insured-topbar,
    .portal-insured-section-heading,
    .portal-insured-profile,
    .portal-insured-list-row,
    .portal-insured-document-card {
        align-items: stretch;
        flex-direction: column;
    }

    .portal-insured-topbar {
        display: grid;
    }

    .portal-insured-profile-copy {
        text-align: left;
    }

    .portal-insured-nav,
    .portal-insured-identity-grid,
    .portal-insured-metrics,
    .portal-insured-actions,
    .portal-insured-data-grid,
    .portal-insured-document-grid {
        grid-template-columns: 1fr;
    }

    .portal-insured-document-card {
        grid-template-columns: 1fr;
    }
}

.portal-structure-hero {
    display: block;
}

.portal-structure-intro {
    min-width: 0;
    max-width: 100%;
}

.portal-structure-summary {
    padding: 1.2rem 1.15rem;
    border: 1px solid rgba(16, 47, 83, 0.1);
    border-radius: 1.15rem;
    background: linear-gradient(180deg, rgba(247, 250, 254, 0.96), rgba(255, 255, 255, 1));
    box-shadow: 0 16px 32px rgba(16, 47, 83, 0.06);
}

.portal-structure-summary-list {
    display: grid;
    gap: 0.7rem;
}

.portal-structure-summary-link {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    gap: 0.7rem;
    align-items: center;
    padding: 0.75rem 0.85rem;
    border-radius: 0.95rem;
    border: 1px solid rgba(16, 47, 83, 0.08);
    background: #fff;
    color: #17324d;
    text-decoration: none;
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

.portal-structure-summary-link:hover,
.portal-structure-summary-link:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(0, 86, 166, 0.2);
    box-shadow: 0 12px 24px rgba(16, 47, 83, 0.08);
    color: #0f4d84;
}

.portal-structure-summary-link i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.75rem;
    background: rgba(0, 86, 166, 0.08);
    color: var(--portal-primary);
    font-size: 1rem;
}

.portal-structure-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.portal-structure-card {
    padding: 1.25rem;
    border: 1px solid rgba(16, 47, 83, 0.1);
    border-top: 4px solid rgba(0, 86, 166, 0.22);
    border-radius: 1.2rem;
    background: #fff;
    box-shadow: 0 18px 36px rgba(15, 36, 58, 0.06);
}

.portal-structure-card-header {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    gap: 0.95rem;
    align-items: start;
    margin-bottom: 0.95rem;
}

.portal-structure-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(0, 86, 166, 0.12) 0%, rgba(22, 50, 79, 0.1) 100%);
    color: var(--portal-primary);
    font-size: 1.2rem;
}

.portal-structure-card-body {
    font-size: 0.94rem;
}

.portal-structure-card-body h2,
.portal-structure-card-body h3,
.portal-structure-card-body h4 {
    display: none;
}

@media (max-width: 991.98px) {
    .portal-presentation-layout {
        grid-template-columns: 1fr;
    }

    .portal-presentation-figure img {
        max-height: 320px;
    }

    .portal-presentation-layout-history .portal-presentation-figure {
        order: -1;
    }

    .portal-structure-hero,
    .portal-structure-grid {
        grid-template-columns: 1fr;
    }
}

.portal-legal-box {
    margin-top: 1.6rem;
    padding: 1rem;
    border-radius: 18px;
    background: #f8fbff;
    border: 1px solid rgba(0, 86, 166, 0.12);
}

.portal-legal-item + .portal-legal-item {
    margin-top: 0.9rem;
    padding-top: 0.9rem;
    border-top: 1px solid rgba(21, 48, 77, 0.08);
}

.portal-publication-card {
    display: grid;
    gap: 0.35rem;
    height: 100%;
    padding: 1rem;
    color: inherit;
    text-decoration: none;
}

.portal-publication-card strong {
    color: #18324b;
}

.portal-publication-card span,
.portal-publication-card small {
    color: var(--portal-muted);
}

.portal-feature-card {
    display: flex;
    flex-direction: column;
    padding: 1.05rem;
}

.portal-feature-card .h5,
.portal-news-body .h5,
.portal-side-link strong {
    line-height: 1.32;
    overflow-wrap: anywhere;
}

.portal-side-link--title-only strong {
    overflow-wrap: normal;
}

.portal-feature-card .text-muted,
.portal-news-body .text-muted,
.portal-side-link span {
    font-size: 0.89rem;
    line-height: 1.5;
}

.portal-news-body .small {
    font-size: 0.78rem;
}

.portal-feature-tag {
    display: inline-flex;
    align-self: flex-start;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: rgba(var(--portal-accent-rgb), 0.14);
    color: var(--portal-dark);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.portal-news-lead {
    display: grid;
    grid-template-columns: minmax(220px, 42%) minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid rgba(21, 48, 77, 0.11);
    border-radius: 20px;
    background: #fbfdff;
}

.portal-news-lead img {
    height: 100%;
    min-height: 220px;
}

.portal-news-lead-body {
    padding: 1.15rem;
}

.portal-news-card {
    position: relative;
    overflow: hidden;
}

.portal-news-card img {
    height: 190px;
}

.portal-news-body {
    padding: 1rem;
}

.portal-news-card .stretched-link {
    font-weight: 700;
    color: var(--portal-primary);
}

.portal-article-cover {
    max-height: 380px;
    border-radius: 20px;
}

.portal-contact-block {
    height: 100%;
    padding: 1rem;
}

.portal-prefooter-contact-section {
    margin-top: 2.25rem;
    padding: 0 0 1rem;
}

.portal-prefooter-contact-wrap {
    padding: 1.45rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 250, 253, 0.98) 100%);
    border: 1px solid var(--portal-border);
    border-top: 4px solid rgba(0, 86, 166, 0.24);
    border-radius: var(--portal-radius);
    box-shadow: var(--portal-shadow);
}

.portal-contact-summary-card,
.portal-contact-form-card {
    background: var(--portal-paper);
    border: 1px solid rgba(21, 48, 77, 0.1);
    border-radius: 1.2rem;
    box-shadow: 0 14px 32px rgba(15, 36, 58, 0.06);
}

.portal-contact-summary-card {
    height: 100%;
    padding: 1rem 1.05rem;
}

.portal-contact-summary-card a {
    color: inherit;
    text-decoration: none;
}

.portal-contact-summary-card a:hover,
.portal-contact-summary-card a:focus-visible {
    color: var(--portal-primary);
}

.portal-contact-form-card {
    padding: 1.15rem 1.15rem 1.25rem;
}

.portal-contact-form-card .form-label {
    color: var(--portal-primary);
    font-size: 0.84rem;
    font-weight: 700;
}

.portal-contact-form-card .form-control {
    min-height: 3rem;
    border-radius: 0.95rem;
    border-color: rgba(var(--portal-primary-rgb), 0.3);
}

.portal-contact-form-card .form-control:focus {
    border-color: var(--portal-primary);
    box-shadow: 0 0 0 0.18rem rgba(var(--portal-primary-rgb), 0.14);
}

.portal-contact-form-card textarea.form-control {
    min-height: 10rem;
    resize: vertical;
}

.portal-contact-submit {
    min-width: 15rem;
}

.portal-contact-honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.portal-policy-content {
    display: grid;
    gap: 1.25rem;
}

.portal-policy-section + .portal-policy-section {
    padding-top: 1.15rem;
    border-top: 1px solid rgba(21, 48, 77, 0.08);
}

.portal-policy-text {
    color: #33495f;
    font-size: 0.95rem;
}

.portal-policy-summary {
    display: grid;
    gap: 0.95rem;
}

.portal-policy-summary-item {
    padding: 0.95rem 1rem;
    border-radius: 1rem;
    background: rgba(0, 86, 166, 0.04);
    border: 1px solid rgba(0, 86, 166, 0.1);
}

.portal-institutional-modal .modal-content {
    overflow: hidden;
    border: 0;
    border-radius: 1.5rem;
    box-shadow: 0 24px 48px rgba(12, 29, 46, 0.22);
}

.portal-institutional-modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 0;
    border-radius: 999px;
    background: rgba(16, 48, 76, 0.08);
    color: var(--portal-dark);
}

.portal-institutional-modal-grid {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    min-height: 24rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(247, 250, 252, 0.98) 100%);
}

.portal-institutional-modal-grid.no-image {
    grid-template-columns: 1fr;
    min-height: auto;
}

.portal-institutional-modal-media {
    position: relative;
    min-height: 24rem;
    background: linear-gradient(135deg, rgba(0, 86, 166, 0.16) 0%, rgba(22, 50, 79, 0.16) 100%);
}

.portal-institutional-modal-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.portal-institutional-modal-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2.15rem;
}

.portal-institutional-modal-text {
    margin: 0;
    color: #42596f;
    font-size: 0.98rem;
    line-height: 1.7;
}

.portal-institutional-modal-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-top: 1.5rem;
}

.portal-cookie-banner {
    position: fixed;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    z-index: 1090;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border: 1px solid rgba(21, 48, 77, 0.12);
    border-top: 4px solid rgba(0, 86, 166, 0.24);
    border-radius: 1.25rem;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 18px 34px rgba(15, 36, 58, 0.16);
    backdrop-filter: blur(14px);
}

.portal-cookie-banner-copy {
    flex: 1 1 28rem;
}

.portal-cookie-banner-copy strong {
    display: block;
    margin-bottom: 0.3rem;
    color: var(--portal-dark);
}

.portal-cookie-banner-copy p {
    color: #4f6276;
    font-size: 0.9rem;
    line-height: 1.55;
}

.portal-cookie-banner-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.7rem;
}

.portal-cookie-banner-link {
    color: var(--portal-primary);
    font-size: 0.85rem;
    font-weight: 700;
    text-decoration: none;
}

.portal-cookie-banner-link:hover,
.portal-cookie-banner-link:focus-visible {
    text-decoration: underline;
}

.portal-cookie-modal {
    border: 0;
    border-radius: 1.25rem;
    overflow: hidden;
}

.portal-cookie-category-list {
    display: grid;
    gap: 0.85rem;
}

.portal-cookie-category-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1rem;
    border-radius: 1rem;
    background: rgba(0, 86, 166, 0.04);
    border: 1px solid rgba(21, 48, 77, 0.08);
}

.portal-cookie-category-item p {
    margin-top: 0.25rem;
    color: #566c81;
    font-size: 0.86rem;
    line-height: 1.5;
}

.portal-admin-modal-preview {
    padding: 0.8rem;
    border-radius: 1.25rem;
    background: linear-gradient(180deg, rgba(246, 249, 252, 0.96) 0%, rgba(237, 242, 247, 0.96) 100%);
}

.portal-admin-modal-surface {
    overflow: hidden;
    border: 1px solid rgba(21, 48, 77, 0.08);
    border-radius: 1.2rem;
    background: #fff;
    box-shadow: 0 18px 34px rgba(15, 36, 58, 0.08);
}

.portal-admin-modal-media img {
    width: 100%;
    max-height: 16rem;
    object-fit: cover;
}

.portal-admin-modal-copy {
    padding: 1.25rem;
}

.portal-floating-sidebar {
    position: fixed;
    right: max(1rem, env(safe-area-inset-right));
    top: auto;
    bottom: max(1rem, env(safe-area-inset-bottom));
    z-index: 1110;
    display: flex;
    align-items: flex-end;
    gap: 0.85rem;
    transform: none;
    pointer-events: none;
}

.portal-client-layout-body .portal-floating-sidebar {
    bottom: max(4.25rem, calc(env(safe-area-inset-bottom) + 4.25rem));
}

.portal-floating-buttons,
.portal-floating-panel {
    pointer-events: auto;
}

.portal-floating-buttons {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.7rem;
}

.portal-vlibras-slot {
    display: none;
}

.portal-floating-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.35rem;
    height: 3.35rem;
    border: 1px solid rgba(21, 48, 77, 0.12);
    border-radius: 1.15rem;
    background: rgba(255, 255, 255, 0.96);
    color: var(--portal-dark);
    box-shadow: 0 16px 32px rgba(15, 36, 58, 0.14);
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.portal-floating-button i {
    font-size: 1.3rem;
    line-height: 1;
}

.portal-floating-button:hover,
.portal-floating-button:focus-visible {
    transform: translateY(-1px) scale(1.01);
    color: var(--portal-primary);
    border-color: rgba(0, 86, 166, 0.22);
    box-shadow: 0 18px 36px rgba(15, 36, 58, 0.18);
}

.portal-floating-button.is-whatsapp {
    background: linear-gradient(135deg, #25d366 0%, #138849 100%);
    border-color: transparent;
    color: #fff;
}

.portal-floating-button.is-whatsapp:hover,
.portal-floating-button.is-whatsapp:focus-visible {
    color: #fff;
    background: linear-gradient(135deg, #1fbc58 0%, #11773f 100%);
}

.portal-floating-button.is-accessibility,
.portal-floating-button.is-libras {
    background: linear-gradient(135deg, rgba(16, 48, 76, 0.96) 0%, rgba(0, 86, 166, 0.96) 100%);
    border-color: transparent;
    color: #fff;
}

.portal-floating-button.is-accessibility:hover,
.portal-floating-button.is-accessibility:focus-visible,
.portal-floating-button.is-libras:hover,
.portal-floating-button.is-libras:focus-visible {
    color: #fff;
}

.portal-floating-button--vlibras-official {
    padding: 0;
    overflow: hidden;
}

.portal-vlibras-badge {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    overflow: hidden;
    background: linear-gradient(135deg, rgba(45, 130, 255, 0.96) 0%, rgba(13, 88, 191, 0.98) 100%);
}

.portal-vlibras-badge img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.portal-vlibras-host {
    position: fixed !important;
    right: -9999px !important;
    bottom: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
}

.portal-vlibras-host .vw-access-button,
.portal-vlibras-host [vw-access-button] {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.portal-vlibras-host .vw-access-button .access-button,
.portal-vlibras-host [vw-access-button] .access-button {
    width: 1px !important;
    height: 1px !important;
    float: none !important;
    display: block !important;
}

.portal-vlibras-host .vw-access-button .pop-up,
.portal-vlibras-host [vw-access-button] .pop-up {
    display: none !important;
}

.portal-vlibras-host .vw-plugin-wrapper {
    top: auto !important;
    right: calc(max(1rem, env(safe-area-inset-right)) + 4.4rem) !important;
    left: auto !important;
    bottom: max(1rem, env(safe-area-inset-bottom)) !important;
    transform: none !important;
    z-index: 1115 !important;
}

.portal-vlibras-host .vw-plugin-wrapper.active {
    display: block !important;
}

.portal-floating-panel {
    width: min(22rem, calc(100vw - 6.5rem));
    padding: 1.05rem;
    border: 1px solid rgba(21, 48, 77, 0.12);
    border-top: 4px solid rgba(0, 86, 166, 0.26);
    border-radius: 1.3rem;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 24px 44px rgba(15, 36, 58, 0.16);
    backdrop-filter: blur(14px);
}

.portal-floating-panel.is-open {
    display: block;
}

.portal-floating-panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.95rem;
}

.portal-floating-panel-header .h6 {
    color: var(--portal-dark);
    font-family: var(--portal-font-sans);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}

.portal-floating-panel-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 999px;
    background: rgba(16, 48, 76, 0.08);
    color: var(--portal-dark);
}

.portal-floating-panel-note {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.75rem;
    margin-bottom: 0.9rem;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(21, 48, 77, 0.08);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(240, 246, 252, 0.96) 0%, rgba(232, 241, 250, 0.96) 100%);
}

.portal-floating-panel-note-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 0.85rem;
    background: linear-gradient(135deg, rgba(16, 48, 76, 0.96) 0%, rgba(0, 86, 166, 0.96) 100%);
    color: #fff;
    box-shadow: 0 12px 22px rgba(15, 36, 58, 0.12);
}

.portal-floating-panel-note-icon i {
    font-size: 1rem;
}

.portal-floating-panel-note-copy strong {
    display: block;
    margin-bottom: 0.2rem;
    color: var(--portal-dark);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.portal-floating-panel-note-copy p {
    margin: 0;
    color: var(--portal-muted);
    font-size: 0.82rem;
    line-height: 1.5;
}

.portal-floating-panel-actions {
    display: grid;
    gap: 0.7rem;
}

.portal-floating-tool-button {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
    min-height: 2.85rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid rgba(21, 48, 77, 0.1);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(241, 246, 251, 0.96) 100%);
    color: #294056;
    font-size: 0.86rem;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.16s ease, border-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

.portal-floating-tool-button i {
    font-size: 1rem;
    color: var(--portal-primary);
}

.portal-floating-tool-button:hover,
.portal-floating-tool-button:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(0, 86, 166, 0.22);
    color: var(--portal-primary);
    box-shadow: 0 12px 22px rgba(15, 36, 58, 0.08);
}

.portal-floating-shortcuts {
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(21, 48, 77, 0.08);
}

.portal-floating-shortcuts-title {
    margin: 0 0 0.55rem;
    color: var(--portal-dark);
    font-size: 0.88rem;
    font-weight: 700;
}

.portal-floating-shortcuts-list {
    margin: 0;
    padding-left: 1.1rem;
    color: var(--portal-muted);
    font-size: 0.82rem;
    line-height: 1.6;
}

.portal-floating-shortcuts-list li + li {
    margin-top: 0.28rem;
}

.portal-floating-button.is-agenda {
    background: linear-gradient(135deg, rgba(8, 126, 67, 0.96) 0%, rgba(22, 163, 74, 0.96) 100%);
    border-color: transparent;
    color: #fff;
}

.portal-floating-button.is-agenda:hover,
.portal-floating-button.is-agenda:focus-visible {
    color: #fff;
    background: linear-gradient(135deg, rgba(7, 110, 58, 0.98) 0%, rgba(21, 144, 66, 0.98) 100%);
}

.portal-floating-panel--agenda {
    width: min(23.5rem, calc(100vw - 6.5rem));
}

.portal-floating-agenda-groups {
    display: grid;
    gap: 0.95rem;
}

.portal-floating-agenda-group + .portal-floating-agenda-group {
    padding-top: 0.9rem;
    border-top: 1px solid rgba(21, 48, 77, 0.08);
}

.portal-floating-agenda-group-title {
    margin: 0 0 0.6rem;
    color: var(--portal-muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-floating-agenda-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}

.portal-floating-agenda-link {
    position: relative;
    display: block;
    padding: 0.8rem 0.9rem 0.8rem 1rem;
    border: 1px solid rgba(21, 48, 77, 0.1);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(241, 246, 251, 0.96) 100%);
    color: #294056;
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
    transition: transform 0.16s ease, border-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

.portal-floating-agenda-link::before {
    content: '';
    position: absolute;
    left: 0.58rem;
    top: 50%;
    width: 0.36rem;
    height: 0.36rem;
    border-radius: 999px;
    background: rgba(0, 86, 166, 0.55);
    transform: translateY(-50%);
}

.portal-floating-agenda-link:hover,
.portal-floating-agenda-link:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(0, 86, 166, 0.22);
    color: var(--portal-primary);
    box-shadow: 0 12px 22px rgba(15, 36, 58, 0.08);
}

.portal-floating-agenda-link.is-today::before {
    background: #169a57;
}

.portal-floating-agenda-link.is-overdue::before {
    background: #d44949;
}

.portal-floating-agenda-link.is-upcoming::before {
    background: rgba(var(--portal-primary-rgb), 0.9);
}

.portal-floating-agenda-empty {
    padding: 0.95rem 1rem;
    border: 1px dashed rgba(21, 48, 77, 0.16);
    border-radius: 1rem;
    background: rgba(241, 246, 251, 0.74);
    color: var(--portal-muted);
    font-size: 0.84rem;
    line-height: 1.5;
}

.portal-footer {
    --portal-heading-color: #fff;
    margin-top: 2.5rem;
    background:
        radial-gradient(circle at top left, rgba(255, 255, 255, 0.14), transparent 28%),
        linear-gradient(135deg, rgba(var(--portal-nav-bg-rgb), 0.98), rgba(6, 16, 33, 0.99));
    color: #fff;
    box-shadow: none;
}

.footer-main {
    row-gap: 2rem;
}

.portal-footer-shell {
    display: grid;
    gap: 1.5rem;
}

.portal-footer-panel {
    height: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.portal-footer-panel--brand {
    padding-right: 1.25rem;
}

.site-footer-brand-copy {
    display: grid;
    gap: 0.42rem;
}

.site-footer-client-logo-wrap {
    display: flex;
    align-items: center;
    min-height: 5.5rem;
}

.site-footer-client-logo {
    width: auto;
    max-width: min(100%, 26rem);
    max-height: 5.75rem;
    display: block;
    object-fit: contain;
    object-position: left center;
    filter: none;
}

.portal-footer-panel--status {
    padding-left: 0;
}

.portal-footer-eyebrow {
    margin-bottom: 0.15rem;
    font-size: 0.72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(201, 215, 255, 0.72);
}

.portal-footer-title {
    margin-bottom: 1.15rem;
    font-size: 1.08rem;
    font-weight: 700;
    color: #fff;
}

.portal-footer-summary {
    margin: 1.2rem 0 1.7rem;
    color: rgba(233, 239, 255, 0.9);
    font-size: 0.99rem;
    line-height: 1.72;
    max-width: 34ch;
}

.portal-footer-meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.2rem;
}

.portal-footer-meta-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 0.9rem;
    padding: 0.2rem 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.portal-footer-meta-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 0.75rem;
    color: #69acff;
    background: rgba(82, 139, 232, 0.1);
    border: 1px solid rgba(122, 169, 247, 0.16);
    font-size: 1.1rem;
}

.portal-footer-meta-content {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
}

.portal-footer-meta-label {
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(196, 212, 249, 0.72);
}

.portal-footer-meta-value {
    color: #fff;
    line-height: 1.55;
    font-size: 0.98rem;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.site-footer-name {
    color: #fff;
    font-size: clamp(1.9rem, 1.45rem + 1vw, 3rem);
    font-weight: 700;
    letter-spacing: -0.035em;
    line-height: 0.98;
    text-transform: uppercase;
}

.site-footer-legal-name {
    color: rgba(216, 226, 252, 0.74);
    font-size: 0.96rem;
    line-height: 1.45;
    max-width: 32ch;
}

.portal-footer-link,
.portal-footer-link:visited {
    color: rgba(255, 255, 255, 0.84);
    text-decoration: none;
}

.site-footer-nav {
    display: grid;
    gap: 0;
}

.portal-footer-link {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    min-height: 0;
    padding: 0.9rem 0;
    border-radius: 0;
    border: 0;
    background: transparent;
    transition: color 0.18s ease, transform 0.18s ease;
}

.portal-footer-link + .portal-footer-link {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.site-footer-link-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    flex: 0 0 1rem;
    color: #69acff;
    font-size: 0.9rem;
}

.site-footer-link-icon--institutional {
    width: 1.4rem;
    flex-basis: 1.4rem;
    font-size: 1.15rem;
}

.portal-footer-link:hover,
.portal-footer-link:focus-visible {
    color: #fff;
}

.portal-footer-link:hover {
    transform: translateX(2px);
    background: transparent;
    border-color: transparent;
}

.portal-footer-credit {
    margin-top: 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.65rem;
}

.portal-footer-credit-label {
    font-size: 0.8rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.68);
}

.portal-footer-credit-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.portal-footer-credit-logo {
    width: auto;
    max-width: 100%;
    max-height: 42px;
    height: auto;
    display: block;
    filter: none;
    opacity: 1;
}

.portal-footer-credit-link:hover .portal-footer-credit-logo,
.portal-footer-credit-link:focus-visible .portal-footer-credit-logo {
    opacity: 1;
}

.portal-footer-status-list {
    margin-top: 2rem;
    display: grid;
    gap: 0.75rem;
}

.portal-footer-status-item {
    display: grid;
    gap: 0.7rem;
    align-items: flex-start;
    padding: 0;
    border-radius: 0;
    background: transparent;
    border: 0;
    justify-items: start;
    text-align: left;
}

.portal-footer-status-label {
    display: block;
    margin-bottom: 0.1rem;
    font-size: 0.74rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(134, 183, 255, 0.88);
}

.portal-footer-status-link,
.portal-footer-status-link:visited {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.15rem;
    color: rgba(255, 255, 255, 0.92);
    text-decoration: none;
    font-weight: 700;
    border-radius: 1rem;
    border: 1px solid rgba(105, 172, 255, 0.38);
    background: linear-gradient(180deg, rgba(36, 83, 156, 0.22), rgba(14, 36, 75, 0.16));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.portal-footer-status-link:hover {
    color: #fff;
    text-decoration: none;
    border-color: rgba(141, 196, 255, 0.55);
    transform: translateY(-1px);
}

.portal-footer-status-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 0.85rem;
    color: #69acff;
    background: rgba(255, 255, 255, 0.04);
    font-size: 1.5rem;
}

.portal-footer-status-copy {
    display: grid;
    gap: 0.22rem;
    min-width: 0;
}

.portal-footer-status-title {
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
}

.portal-footer-status-text {
    color: rgba(220, 231, 255, 0.74);
    font-size: 0.92rem;
    line-height: 1.5;
    font-weight: 400;
}

.portal-footer-status-arrow {
    color: #7cb5ff;
    font-size: 1.1rem;
}

.portal-copybar {
    margin-top: 2rem;
    padding-top: 1.6rem;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem 2rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.92rem;
}

.portal-copybar-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem 1.6rem;
    align-items: center;
    min-width: 0;
    flex: 1 1 34rem;
}

.portal-copybar-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
    flex-wrap: nowrap;
}

.portal-copybar-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    color: #6faeff;
    font-size: 1.05rem;
}

.portal-copybar-item + .portal-copybar-item::before {
    content: "";
    width: 1px;
    height: 1.35rem;
    background: rgba(255, 255, 255, 0.18);
    margin-right: 1rem;
}

.portal-copybar-label {
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.62);
    white-space: nowrap;
    line-height: 1;
}

.portal-copybar-value {
    color: #fff;
    font-weight: 700;
    line-height: 1.35;
    white-space: nowrap;
    line-height: 1;
}

.portal-footer-credit--copybar {
    margin-top: 0;
    align-items: flex-end;
    gap: 0.35rem;
    text-align: left;
    margin-left: auto;
    flex: 0 0 auto;
}

.portal-footer-credit--copybar .portal-footer-credit-label {
    color: rgba(255, 255, 255, 0.72);
}

.portal-footer-credit--copybar .portal-footer-credit-logo {
    width: auto;
    max-height: 38px;
    min-width: 0;
}

.btn-primary {
    background: var(--portal-primary);
    border-color: var(--portal-primary);
}

.btn-primary:hover,
.btn-primary:focus {
    background: color-mix(in srgb, var(--portal-primary) 82%, #091a3a);
    border-color: color-mix(in srgb, var(--portal-primary) 82%, #091a3a);
}

.btn-outline-primary {
    color: var(--portal-primary);
    border-color: rgba(var(--portal-primary-rgb), 0.42);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background: rgba(var(--portal-primary-rgb), 0.08);
    color: var(--portal-primary);
    border-color: var(--portal-primary);
}

.btn-outline-secondary {
    color: #495b6d;
    border-color: rgba(73, 91, 109, 0.36);
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
    background: rgba(73, 91, 109, 0.08);
    color: #2b3e50;
    border-color: rgba(73, 91, 109, 0.55);
}

.alert {
    border-radius: 1rem;
}

.portal-flash-toast-stack {
    position: fixed;
    top: max(1rem, env(safe-area-inset-top));
    right: max(1rem, env(safe-area-inset-right));
    z-index: 11050;
    display: grid;
    gap: 0.72rem;
    width: min(26rem, calc(100vw - 2rem));
    pointer-events: none;
}

.portal-flash-toast {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: flex-start;
    gap: 0.75rem;
    width: 100%;
    margin: 0;
    padding: 0.85rem 0.95rem;
    border-radius: 0.78rem;
    box-shadow: 0 20px 42px rgba(15, 23, 42, 0.18);
    pointer-events: auto;
}

.portal-flash-toast > .bi {
    margin-top: 0.12rem;
    font-size: 1rem;
}

.portal-flash-toast-copy {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.portal-flash-toast-copy strong {
    color: currentColor;
    font-size: 0.82rem;
    line-height: 1.2;
}

.portal-flash-toast-copy span {
    color: rgba(15, 23, 42, 0.82);
    font-size: 0.86rem;
    line-height: 1.38;
}

.portal-flash-toast .btn-close {
    margin: -0.18rem -0.2rem 0 0;
}

@media (max-width: 575.98px) {
    .portal-flash-toast-stack {
        top: auto;
        right: 0.75rem;
        bottom: max(0.75rem, env(safe-area-inset-bottom));
        left: 0.75rem;
        width: auto;
    }
}

.portal-empty-state {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 8rem;
    padding: 1.5rem;
    border: 1px dashed rgba(148, 163, 184, 0.38);
    border-radius: 1rem;
    background: rgba(248, 250, 252, 0.88);
    color: #475569;
    text-align: center;
}

.portal-empty-state--inline {
    min-height: 0;
    margin: 0;
}

.portal-empty-state-copy {
    display: inline-flex;
    align-items: center;
    gap: 0.85rem;
}

.portal-empty-state-copy i {
    color: var(--app-primary, #0F3A5F);
    font-size: 1.15rem;
}

.portal-empty-state-copy strong {
    display: block;
    color: #0f172a;
    font-weight: 700;
}

.portal-loading-state {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    padding: 1rem 1.25rem;
    color: #475569;
}

.portal-data-table .table {
    --bs-table-bg: transparent;
}

.portal-data-table thead th {
    white-space: nowrap;
    line-height: 1;
}

.portal-list-actions-col {
    width: 72px;
    white-space: nowrap;
    line-height: 1;
}

.portal-data-table td,
.portal-data-table th {
    vertical-align: middle;
}

.portal-request-table-title strong,
.portal-periodic-doc-title {
    display: block;
}

.portal-edit-record-frame {
    display: block;
    width: 100%;
    min-height: min(78vh, 980px);
    border: 0;
    background: #fff;
}

.portal-edit-record-loading[hidden] {
    display: none !important;
}

.portal-confirm-delete-record {
    padding: 0.85rem 1rem;
    border: 1px solid rgba(248, 113, 113, 0.25);
    border-radius: 0.85rem;
    background: rgba(254, 242, 242, 0.75);
    color: #7f1d1d;
    font-weight: 700;
}

.card,
.rounded-4 {
    border-radius: 1.15rem !important;
}

.portal-high-contrast {
    background: #000 !important;
    color: #fff !important;
}

.portal-high-contrast .portal-utilitybar,
.portal-high-contrast .portal-brandbar,
.portal-high-contrast .portal-navbar {
    background: #000 !important;
}

.portal-high-contrast .portal-brandbar,
.portal-high-contrast .portal-main,
.portal-high-contrast .portal-footer {
    background: #000 !important;
}

.portal-high-contrast .portal-content-card,
.portal-high-contrast .portal-side-panel,
.portal-high-contrast .portal-contact-panel,
.portal-high-contrast .portal-prefooter-contact-wrap,
.portal-high-contrast .portal-contact-summary-card,
.portal-high-contrast .portal-contact-form-card,
.portal-high-contrast .portal-feature-card,
.portal-high-contrast .portal-benefit-card,
.portal-high-contrast .portal-news-card,
.portal-high-contrast .portal-contact-block,
.portal-high-contrast .portal-metric-card,
.portal-high-contrast .portal-public-card,
.portal-high-contrast .portal-publication-card,
.portal-high-contrast .portal-home-highlight,
.portal-high-contrast .portal-shortcut-card,
.portal-high-contrast .portal-transparency-link,
.portal-high-contrast .portal-side-link,
.portal-high-contrast .portal-list-link,
.portal-high-contrast .portal-news-list-item,
.portal-high-contrast .portal-news-lead,
.portal-high-contrast .portal-quick-button,
.portal-high-contrast .portal-dropdown-menu,
.portal-high-contrast .portal-home-carousel-empty-card,
.portal-high-contrast .portal-home-news-list-card,
.portal-high-contrast .portal-home-news-visual-card,
.portal-high-contrast .portal-calendar-day,
.portal-high-contrast .portal-calendar-empty,
.portal-high-contrast .portal-calendar-modal-content,
.portal-high-contrast .portal-calendar-detail-card,
.portal-high-contrast .portal-policy-summary-item,
.portal-high-contrast .portal-cookie-banner,
.portal-high-contrast .portal-cookie-modal,
.portal-high-contrast .portal-cookie-category-item,
.portal-high-contrast .portal-institutional-modal .modal-content,
.portal-high-contrast .portal-floating-panel,
.portal-high-contrast .portal-floating-button,
.portal-high-contrast .portal-floating-tool-button {
    background: #111 !important;
    border-color: #ffd54a !important;
    box-shadow: none !important;
    color: #fff !important;
}

.portal-high-contrast .portal-kicker,
.portal-high-contrast .portal-feature-tag {
    background: #ffd54a !important;
    color: #000 !important;
}

.portal-high-contrast .portal-floating-agenda-group-title {
    color: #ffd54a !important;
}

.portal-high-contrast .portal-floating-agenda-link,
.portal-high-contrast .portal-floating-agenda-empty {
    background: #111 !important;
    border-color: #ffd54a !important;
    box-shadow: none !important;
    color: #fff !important;
}

.portal-high-contrast .portal-floating-agenda-link::before {
    background: #ffd54a !important;
}

.portal-high-contrast a,
.portal-high-contrast .portal-link-action,
.portal-high-contrast .portal-benefit-link,
.portal-high-contrast .portal-utility-meta-link,
.portal-high-contrast .portal-footer-link,
.portal-high-contrast .portal-social-link,
.portal-high-contrast .portal-navbar .nav-link,
.portal-high-contrast .portal-dropdown-item,
.portal-high-contrast .portal-brand-address,
.portal-high-contrast .portal-brand-cnpj,
.portal-high-contrast .portal-floating-tool-button,
.portal-high-contrast .portal-floating-button {
    color: #ffd54a !important;
}

.portal-high-contrast .btn-primary,
.portal-high-contrast .btn-outline-primary,
.portal-high-contrast .btn-outline-secondary {
    background: #ffd54a !important;
    border-color: #ffd54a !important;
    color: #000 !important;
}

.portal-high-contrast .portal-benefit-avatar-fallback {
    background: #ffd54a !important;
    color: #000 !important;
}

.portal-high-contrast .portal-weather-current-main,
.portal-high-contrast .portal-weather-day-card,
.portal-high-contrast .portal-weather-inline-metric,
.portal-high-contrast .portal-weather-empty {
    background: #111 !important;
    border-color: #ffd54a !important;
    color: #fff !important;
}

.portal-high-contrast .portal-weather-update,
.portal-high-contrast .portal-weather-update.is-stale {
    background: #ffd54a !important;
    color: #000 !important;
}

.portal-high-contrast .portal-weather-current-location,
.portal-high-contrast .portal-weather-condition,
.portal-high-contrast .portal-weather-day-condition,
.portal-high-contrast .portal-weather-day-rain,
.portal-high-contrast .portal-weather-note,
.portal-high-contrast .portal-weather-inline-metric-label {
    color: #fff !important;
}

.portal-high-contrast .portal-weather-day-icon,
.portal-high-contrast .portal-weather-current-icon {
    color: #ffd54a !important;
}

.portal-high-contrast h1,
.portal-high-contrast h2,
.portal-high-contrast h3,
.portal-high-contrast h4,
.portal-high-contrast h5,
.portal-high-contrast h6,
.portal-high-contrast strong,
.portal-high-contrast .portal-metric-value {
    color: #fff !important;
}

.portal-admin-shell,
.portal-client-shell {
    display: grid;
    grid-template-columns: 18.5rem minmax(0, 1fr);
    gap: 1.5rem;
    min-height: calc(100vh - 11rem);
}

.portal-client-layout-frame {
    width: 100%;
    padding: 0;
    height: 100%;
}

.portal-client-shell {
    gap: 0;
    min-height: 100vh;
    height: 100vh;
    overflow: hidden;
}

.portal-admin-sidebar,
.portal-client-sidebar {
    position: sticky;
    top: 1.5rem;
    align-self: start;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.2rem;
    border-radius: 1.4rem;
}

.portal-client-sidebar {
    position: relative;
    top: 0;
    min-height: 100vh;
    height: 100vh;
    padding: 1.25rem 1rem;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.24) rgba(9, 23, 38, 0.92);
}

.portal-client-sidebar::-webkit-scrollbar {
    width: 0.45rem;
}

.portal-client-sidebar::-webkit-scrollbar-track {
    background: rgba(9, 23, 38, 0.92);
}

.portal-client-sidebar::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.24);
}

.portal-client-sidebar::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.34);
}

.portal-admin-sidebar-top,
.portal-client-sidebar-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.portal-client-sidebar-copy {
    min-width: 0;
    display: grid;
    gap: 0.35rem;
}

.portal-client-sidebar-title {
    margin: 0;
    font-family: var(--portal-font-sans);
    font-size: 1.55rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.15;
    text-wrap: balance;
}

.portal-client-sidebar-description {
    margin: 0;
    max-width: 15rem;
    font-size: 0.9rem;
    line-height: 1.65;
}

.portal-admin-brand {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    text-decoration: none;
    min-width: 0;
}

.portal-admin-brand-media,
.portal-admin-brand-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 0.5rem;
    flex: 0 0 auto;
    overflow: hidden;
}

.portal-client-sidebar .portal-admin-brand-media,
.portal-client-sidebar .portal-admin-brand-mark {
    border-radius: 0;
}

.portal-admin-brand-media {
    padding: 0.18rem;
}

.portal-admin-brand-media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.portal-admin-brand-mark {
    background: linear-gradient(135deg, var(--portal-primary) 0%, var(--portal-accent) 100%);
    color: #fff;
    font-weight: 700;
}

.portal-admin-brand-copy,
.portal-client-user,
.portal-admin-nav-group-title,
.portal-admin-nav-text,
.portal-client-nav-group-title {
    transition: opacity 0.18s ease, transform 0.18s ease;
}

.portal-admin-brand-copy strong,
.portal-client-user strong {
    display: block;
    font-size: 0.96rem;
}

.portal-admin-brand-copy span,
.portal-client-user span {
    display: block;
    font-size: 0.76rem;
}

.portal-admin-identity {
    padding: 0.9rem 1rem;
    border-radius: 1rem;
}

.portal-admin-identity-name {
    font-weight: 700;
}

.portal-admin-identity-meta {
    font-size: 0.8rem;
    margin-top: 0.18rem;
}

.portal-admin-sidebar-toggle,
.portal-client-sidebar-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.5rem;
}

.portal-client-sidebar-toggle {
    border-radius: 0;
}

.portal-client-user {
    border-radius: 0 !important;
}

.portal-admin-nav,
.portal-client-nav {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.portal-admin-nav-group,
.portal-client-nav-group {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.portal-admin-nav-group-title,
.portal-client-nav-group-title {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-admin-nav-links,
.portal-client-nav-links {
    display: grid;
    gap: 0.3rem;
}

.portal-admin-nav-link,
.portal-client-nav-link {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    min-height: 2.8rem;
    padding: 0.7rem 0.85rem;
    border-radius: 0.95rem;
    text-decoration: none;
    transition: background-color 0.18s ease, color 0.18s ease;
}

.portal-client-nav-link {
    border-radius: 0;
}

.portal-admin-nav-icon,
.portal-client-nav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.75rem;
    font-size: 0.95rem;
}

.portal-client-nav-icon,
.portal-client-nav-group-icon {
    border-radius: 0;
}

.portal-admin-main,
.portal-client-main {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    min-width: 0;
}

.portal-admin-content,
.portal-client-layout-main,
.portal-client-layout-frame,
.portal-client-layout-frame--with-sidebar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
}

.portal-client-layout-body {
    overflow-x: hidden;
    overflow-y: visible;
}

.portal-client-layout-main {
    min-height: 100vh;
    height: auto;
    overflow: visible;
}

.portal-client-main {
    min-height: 0;
    height: auto;
    overflow: visible;
    overscroll-behavior: auto;
    padding: 0 0 1.25rem;
}

.portal-admin-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1.4rem 1.5rem 0.25rem;
}

.portal-admin-header-title {
    color: #19324a;
    font-family: var(--portal-font-serif);
    font-size: 1.45rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1;
}

.portal-admin-header-subtitle {
    color: var(--portal-muted);
    font-size: 0.86rem;
}

.portal-panel-heading .h1,
.portal-panel-heading .h2,
.portal-panel-heading .h3,
.portal-panel-heading .h4,
.portal-section-title .h2,
.portal-section-title .h3,
.portal-display,
.portal-benefits-title,
.portal-admin-header-title {
    font-family: var(--portal-font-serif);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1;
    text-wrap: balance;
}

.portal-home-news-panel .h3 {
    font-size: clamp(1.55rem, 2.05vw, 2.1rem);
}

.portal-home-news-visual-body .h5,
.portal-home-news-list-card .h5,
.portal-education-home-card .h5,
.portal-feature-card .h5 {
    font-family: var(--portal-font-serif);
    font-weight: 700;
    letter-spacing: -0.022em;
    line-height: 1.14;
    text-wrap: balance;
}

.portal-home-news-visual-body .h5 {
    font-size: 1.14rem;
    font-weight: 500;
    max-width: 100%;
}

.portal-home-news-panel .portal-home-news-visual-body p,
.portal-home-news-list-card p,
.portal-section-title p,
.portal-panel-heading p,
.portal-lead,
.portal-admin-header-subtitle {
    line-height: 1.58;
}

.portal-home-news-panel .portal-home-news-visual-body p,
.portal-home-news-list-card p {
    font-size: 0.88rem;
}

.portal-home-news-list-meta,
.portal-home-news-link,
.portal-kicker,
.portal-nav-label,
.portal-admin-nav-group-title,
.portal-client-nav-group-title {
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-home-news-list-meta {
    font-size: 0.74rem;
    font-weight: 700;
}

.portal-home-news-link {
    font-size: 0.76rem;
    font-weight: 800;
}

.portal-utility-date,
.portal-utility-meta-value {
    font-weight: 700;
}

.portal-admin-brand-copy strong,
.portal-client-user strong,
.portal-admin-identity-name {
    letter-spacing: -0.01em;
    font-weight: 700;
}

.portal-admin-nav-link,
.portal-client-nav-link {
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.portal-admin-content {
    padding: 0.5rem 1.5rem 1.5rem;
}

.portal-admin-header-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.65rem;
}

.portal-admin-context-switcher {
    min-width: min(100%, 20rem);
}

.portal-admin-nav-group {
    gap: 0.38rem;
}

.portal-admin-nav-group-button,
.portal-client-nav-group-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    width: 100%;
    padding: 0.65rem 0.8rem;
    border-radius: 1rem;
    text-align: left;
    transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.portal-client-nav-group-button {
    border-radius: 0;
}

.portal-client-nav-group-button--link {
    text-decoration: none;
}

.portal-admin-nav-group-button-copy,
.portal-client-nav-group-button-copy {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.portal-admin-nav-group-icon,
.portal-client-nav-group-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.8rem;
}

.portal-admin-nav-group-meta,
.portal-client-nav-group-meta {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.portal-admin-nav-group-description,
.portal-client-nav-group-description {
    font-size: 0.74rem;
    line-height: 1.35;
}

.portal-admin-nav-group-aside,
.portal-client-nav-group-aside {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.portal-admin-nav-group-count,
.portal-client-nav-group-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.9rem;
    height: 1.9rem;
    padding: 0 0.45rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
}

.portal-admin-nav-group-direct {
    text-decoration: none;
}

.portal-admin-nav-group.is-open .portal-admin-nav-group-aside .bi,
.portal-client-nav-group.is-open .portal-client-nav-group-aside .bi {
    transform: rotate(180deg);
}

.portal-admin-nav-group-aside .bi,
.portal-client-nav-group-aside .bi {
    transition: transform 0.18s ease;
}

.portal-admin-nav-links[hidden],
.portal-client-nav-links[hidden] {
    display: none !important;
}

.portal-client-nav-subgroup {
    display: grid;
    gap: 0.35rem;
}

.portal-client-nav-subgroup-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    min-height: 2.35rem;
    padding: 0.5rem 0.68rem;
    border-radius: 0.88rem;
    font-weight: 700;
    text-align: left;
}

.portal-client-nav-subgroup-copy,
.portal-client-nav-subgroup-aside {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
}

.portal-client-nav-subgroup-body {
    display: grid;
    gap: 0.28rem;
    padding-left: 0.72rem;
}

.portal-client-nav-subgroup-body[hidden] {
    display: none !important;
}

.portal-client-nav-subgroup.is-open .portal-client-nav-subgroup-aside .bi {
    transform: rotate(180deg);
}

.portal-client-nav-link.is-nested {
    min-height: 2.15rem;
    padding-left: 0.62rem;
    font-size: 0.9rem;
}

.portal-client-module-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    align-items: stretch;
    border-bottom: 1px solid rgba(148, 163, 184, 0.26);
}

.portal-client-module-nav--embedded {
    margin-top: 0.82rem;
    padding-top: 0.72rem;
    border-top: 1px solid rgba(25, 50, 74, 0.08);
}

.portal-client-module-nav--tabbed {
    margin-top: 0.62rem;
    padding-top: 0;
    border-top: 0;
}

.portal-client-module-nav-link {
    display: inline-flex;
    align-items: center;
    position: relative;
    z-index: 1;
    min-height: 2.12rem;
    margin-bottom: -1px;
    padding: 0.42rem 0.96rem 0.34rem;
    border: 1px solid rgba(148, 163, 184, 0.34);
    border-bottom-color: rgba(148, 163, 184, 0.26);
    border-top-left-radius: 0.96rem;
    border-top-right-radius: 0.96rem;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    background: linear-gradient(180deg, #eef3f8 0%, #e4eaf2 100%);
    color: #334155;
    font-weight: 700;
    letter-spacing: -0.01em;
    text-decoration: none;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.76);
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.portal-client-module-nav-link + .portal-client-module-nav-link {
    margin-left: -0.82rem;
}

.portal-client-module-nav-dropdown {
    display: inline-flex;
    position: relative;
    z-index: 1;
}

.portal-client-module-nav-dropdown + .portal-client-module-nav-link,
.portal-client-module-nav-link + .portal-client-module-nav-dropdown,
.portal-client-module-nav-dropdown + .portal-client-module-nav-dropdown {
    margin-left: -0.82rem;
}

.portal-client-module-nav-button {
    font-family: inherit;
    cursor: pointer;
}

.portal-client-module-nav-button.dropdown-toggle::after {
    margin-left: 0.42rem;
    vertical-align: middle;
}

.portal-client-module-nav-menu {
    min-width: 14.5rem;
    padding: 0.38rem;
    border: 1px solid rgba(148, 163, 184, 0.32);
    border-radius: 0.58rem;
    box-shadow: 0 18px 34px rgba(15, 23, 42, 0.14);
}

.portal-client-module-nav-menu-item {
    display: flex;
    align-items: center;
    gap: 0.48rem;
    min-height: 2.28rem;
    padding: 0.52rem 0.62rem;
    border-radius: 0.44rem;
    color: #334155;
    font-size: 0.84rem;
    font-weight: 700;
}

.portal-client-module-nav-menu-item i {
    color: #17324b;
    font-size: 0.92rem;
}

.portal-client-module-nav-menu-item:hover,
.portal-client-module-nav-menu-item:focus,
.portal-client-module-nav-menu-item.is-active {
    color: #0f172a;
    background: #eef3f8;
}

.portal-client-module-nav-link:hover,
.portal-client-module-nav-link:focus-visible {
    z-index: 3;
    color: #0f172a;
    border-color: rgba(148, 163, 184, 0.42);
    background: linear-gradient(180deg, #f4f7fb 0%, #eaf0f7 100%);
    transform: translateY(-1px);
}

.portal-client-module-nav-link.is-active {
    z-index: 5;
    color: #0f172a;
    border-color: rgba(37, 99, 235, 0.28);
    border-bottom-color: var(--portal-paper);
    background: var(--portal-paper);
    transform: translateY(-2px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.94), 0 8px 18px rgba(15, 23, 42, 0.08);
}

.portal-client-module-nav-link.is-active::after {
    content: "";
    position: absolute;
    left: -1px;
    right: -1px;
    bottom: -3px;
    height: 4px;
    background: var(--portal-paper);
}

.portal-client-page-header {
    display: grid;
    gap: 0.85rem;
    width: 100%;
    margin-bottom: 1rem;
    padding: 0.9rem 1.15rem 0.8rem;
    background: #f4f7fb;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.portal-client-page-header--tabbed {
    margin-bottom: 0;
    padding-bottom: 0;
    background: var(--portal-paper);
}

.portal-client-context-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.portal-client-context-main {
    display: grid;
    gap: 0.28rem;
    min-width: 0;
    max-width: min(100%, 46rem);
    padding: 0;
    background: transparent;
    color: #17324b;
}

.portal-client-context-kicker {
    display: block;
    max-width: 100%;
    color: #6c7f94;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.45;
    text-transform: none;
    text-wrap: balance;
    overflow-wrap: anywhere;
}

.portal-client-context-title {
    margin: 0;
    color: #17324b;
    font-size: 1.24rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.12;
}

.portal-client-context-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.6rem;
}

.portal-client-context-chip,
.portal-client-inline-metric {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
    min-height: 1.5rem;
    padding: 0.42rem 0.72rem;
    border: 1px solid rgba(25, 50, 74, 0.1);
    border-radius: 999px;
    background: rgba(244, 247, 250, 0.92);
    color: #5f7387;
    font-size: 0.8rem;
    line-height: 1.1;
}

.portal-client-context-chip i,
.portal-client-inline-metric strong {
    color: #17324b;
}

.portal-client-inline-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.portal-client-inline-metric strong {
    font-weight: 800;
}

.portal-client-page-header .portal-client-module-nav--embedded {
    margin-top: 0;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(25, 50, 74, 0.08);
}

.portal-client-page-header--tabbed .portal-client-module-nav--embedded {
    margin-top: 0.62rem;
    padding-top: 0;
    border-top: 0;
}

.portal-feature-card.is-active {
    border-color: rgba(245, 130, 32, 0.32);
    box-shadow: 0 20px 36px rgba(245, 130, 32, 0.14);
}

@media (max-width: 767.98px) {
    .portal-client-page-header {
        gap: 0.75rem;
        margin-bottom: 0.9rem;
        padding: 0.85rem 0.9rem 0.75rem;
    }

    .portal-client-module-nav {
        gap: 0.24rem;
        border-bottom: 0;
    }

    .portal-client-module-nav-link {
        width: 100%;
        justify-content: flex-start;
        margin-bottom: 0;
        padding: 0.48rem 0.78rem;
        border-bottom-color: rgba(148, 163, 184, 0.34);
        border-radius: 0.54rem;
        transform: none !important;
        box-shadow: none;
    }

    .portal-client-module-nav-link + .portal-client-module-nav-link {
        margin-left: 0;
    }

    .portal-client-module-nav-dropdown {
        width: 100%;
    }

    .portal-client-module-nav-dropdown + .portal-client-module-nav-link,
    .portal-client-module-nav-link + .portal-client-module-nav-dropdown,
    .portal-client-module-nav-dropdown + .portal-client-module-nav-dropdown {
        margin-left: 0;
    }

    .portal-client-module-nav-menu {
        width: 100%;
    }

    .portal-client-module-nav-link.is-active {
        border-bottom-color: rgba(148, 163, 184, 0.42);
    }

    .portal-client-context-row {
        align-items: flex-start;
    }

    .portal-client-context-main {
        width: 100%;
        min-width: 0;
    }

    .portal-client-context-meta {
        width: 100%;
        justify-content: flex-start;
    }

    .portal-client-page-header .portal-client-module-nav--embedded {
        margin-top: 0;
        padding-top: 0.7rem;
    }
}

.portal-accounting-combobox {
    display: grid;
    gap: 1rem;
}

.portal-accounting-combobox-card {
    display: grid;
    gap: 0.85rem;
    padding: 1.15rem 1.2rem;
    border: 1px solid rgba(21, 48, 77, 0.1);
    border-radius: 1.25rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(var(--portal-accent-rgb), 0.06) 100%);
    box-shadow: 0 14px 28px rgba(15, 36, 58, 0.05);
}

.portal-accounting-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.32rem 0.72rem;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-accounting-status.is-ready {
    background: rgba(var(--portal-primary-rgb), 0.12);
    color: var(--portal-primary);
}

.portal-accounting-status.is-pending {
    background: rgba(176, 32, 32, 0.1);
    color: #b02020;
}

.portal-accounting-submit-button.disabled,
.portal-accounting-submit-button:disabled {
    pointer-events: none;
    opacity: 0.56;
}

.portal-admin-surface {
    border: 1px solid rgba(21, 48, 77, 0.09);
    border-radius: 1.5rem;
    background: #fff;
    box-shadow: 0 18px 38px rgba(15, 36, 58, 0.08);
}

.portal-admin-sticky-stack {
    position: sticky;
    top: 1.5rem;
    display: grid;
    gap: 1rem;
}

.portal-admin-onboarding-card {
    padding: 1.25rem;
}

.portal-admin-onboarding-card h2,
.portal-admin-onboarding-card .h4 {
    font-size: 1.35rem;
}

.portal-admin-details {
    border: 1px solid rgba(21, 48, 77, 0.1);
    border-radius: 1.35rem;
    background: #fff;
    box-shadow: 0 16px 32px rgba(15, 36, 58, 0.06);
    overflow: hidden;
}

.portal-admin-details + .portal-admin-details {
    margin-top: 1rem;
}

.portal-admin-details-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    cursor: pointer;
    list-style: none;
    background: linear-gradient(180deg, rgba(16, 48, 76, 0.035) 0%, rgba(16, 48, 76, 0.015) 100%);
}

.portal-admin-details-summary::-webkit-details-marker {
    display: none;
}

.portal-admin-details-summary span {
    display: grid;
    gap: 0.18rem;
}

.portal-admin-details-summary strong {
    color: var(--portal-dark);
    font-size: 1rem;
}

.portal-admin-details-summary small {
    color: var(--portal-muted);
    font-size: 0.8rem;
    line-height: 1.45;
}

.portal-admin-details-summary::after {
    content: "\f282";
    font-family: "bootstrap-icons";
    font-size: 1rem;
    color: var(--portal-muted);
    transition: transform 0.18s ease;
}

.portal-admin-details[open] .portal-admin-details-summary::after {
    transform: rotate(180deg);
}

.portal-admin-details-body {
    padding: 1.15rem;
    border-top: 1px solid rgba(21, 48, 77, 0.08);
}

.portal-admin-details-body > .card,
.portal-admin-details-body > .card > .card-body {
    border: 0;
    box-shadow: none;
    padding: 0 !important;
    background: transparent;
}

.portal-client-operational-workspace {
    align-items: flex-start;
}

.portal-client-operational-meeting-list,
.portal-client-operational-workflow-panel {
    background: #fff;
    border: 1px solid rgba(21, 48, 77, 0.1);
    border-radius: 1.15rem;
    padding: 1rem;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
}

.portal-client-operational-meeting-list {
    position: sticky;
    top: 1rem;
    max-height: calc(100vh - 9rem);
    overflow: auto;
}

.portal-client-operational-meeting-item {
    display: block;
    color: var(--portal-dark);
    text-decoration: none;
    border: 1px solid rgba(21, 48, 77, 0.1);
    border-radius: 0.95rem;
    padding: 0.85rem;
    background: rgba(248, 250, 252, 0.86);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.portal-client-operational-meeting-item:hover,
.portal-client-operational-meeting-item:focus {
    color: var(--portal-dark);
    border-color: rgba(24, 119, 242, 0.35);
    box-shadow: 0 10px 22px rgba(24, 119, 242, 0.12);
    transform: translateY(-1px);
}

.portal-client-operational-meeting-item.is-active {
    border-color: rgba(24, 119, 242, 0.55);
    background: rgba(24, 119, 242, 0.08);
}

.portal-client-operational-meeting-title {
    display: block;
    font-weight: 700;
    line-height: 1.35;
}

.portal-client-operational-meeting-meta {
    display: block;
    margin-top: 0.35rem;
    color: var(--portal-muted);
    font-size: 0.82rem;
}

@media (max-width: 1199.98px) {
    .portal-client-operational-meeting-list {
        position: static;
        max-height: none;
    }
}

.portal-client-governance-filters {
    padding: 1rem 1.05rem;
    border: 1px solid rgba(21, 48, 77, 0.08);
    border-radius: 1.15rem;
    background: rgba(247, 250, 254, 0.82);
}

.portal-client-governance-table-wrap {
    border: 1px solid rgba(21, 48, 77, 0.08);
    border-radius: 1.15rem;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15, 36, 58, 0.06);
    overflow: hidden;
}

.portal-client-governance-table {
    margin-bottom: 0;
}

.portal-client-governance-table thead th {
    border-bottom-width: 1px;
    color: var(--portal-muted);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
    line-height: 1;
}

.portal-client-governance-table td,
.portal-client-governance-table th {
    padding: 1rem 1.05rem;
    vertical-align: middle;
}

.portal-client-governance-table tbody tr:last-child td {
    border-bottom: 0;
}

.portal-client-governance-empty {
    padding: 1.35rem 1.2rem;
    border: 1px dashed rgba(21, 48, 77, 0.18);
    border-radius: 1.15rem;
    background: rgba(247, 250, 254, 0.72);
}

.portal-client-governance-empty-body {
    display: grid;
    gap: 0.35rem;
}

.portal-client-governance-empty-body strong {
    color: var(--portal-dark);
}

.portal-client-governance-empty-body span {
    color: var(--portal-muted);
}

.portal-client-governance-inline-actions {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.65rem;
}

.portal-client-governance-inline-filter {
    min-width: 13rem;
}

.portal-client-governance-inline-filter .form-select {
    min-height: 2.55rem;
    border-radius: 0.95rem;
    font-size: 0.84rem;
}

.portal-client-governance-modal .modal-content,
.portal-client-governance-modal {
    border: 0;
    border-radius: 1.35rem;
}

.portal-client-governance-modal .modal-header,
.portal-client-governance-modal .modal-footer {
    border-color: rgba(21, 48, 77, 0.08);
}

.portal-client-governance-modal .modal-body {
    padding-top: 0.5rem;
}

.portal-client-governance-inline-panel {
    padding: 1rem 1rem 1.1rem;
    border: 1px solid rgba(21, 48, 77, 0.08);
    border-radius: 1rem;
    background: rgba(247, 250, 254, 0.74);
}

.portal-client-governance-instance-pill-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.portal-client-governance-instance-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 2.9rem;
    padding: 0.65rem 0.95rem;
    border: 1px solid rgba(21, 48, 77, 0.12);
    border-radius: 999px;
    background: #fff;
    color: #10304c;
    font-weight: 700;
}

.portal-client-governance-instance-pill .form-check-input {
    margin-top: 0;
    flex: 0 0 auto;
}

.portal-client-contact-modal .modal-dialog,
.portal-client-ouvidoria-modal .modal-dialog {
    max-height: calc(100vh - 3rem);
}

.portal-client-contact-modal .modal-content,
.portal-client-ouvidoria-modal .modal-content {
    display: flex;
    max-height: calc(100vh - 3rem);
}

.portal-client-contact-modal .modal-content > form,
.portal-client-ouvidoria-modal .modal-content > form {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.portal-client-contact-modal .modal-body,
.portal-client-ouvidoria-modal .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.publication-review-current-file {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 14px;
    background: #f8fafc;
    padding: 0.85rem 1rem;
}

.publication-review-attachment-item {
    background: #fff;
    border-color: rgba(15, 23, 42, 0.08) !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.publication-review-attachment-item.is-active {
    border-color: rgba(14, 165, 233, 0.45) !important;
    background: #f0f9ff;
    box-shadow: 0 0 0 1px rgba(14, 165, 233, 0.15);
}

.publication-review-attachment-meta {
    min-width: 0;
}

.procurement-bids-table {
    table-layout: fixed;
}

.procurement-bids-table .procurement-bids-col-main {
    width: 50%;
}

.procurement-bids-table .procurement-bids-col-secondary {
    width: 16.6667%;
}

.procurement-bids-table .procurement-bids-cell-main {
    white-space: normal;
}

.procurement-bids-table td,
.procurement-bids-table th {
    vertical-align: top;
}

.procurement-bids-table td.align-middle {
    vertical-align: middle;
}

.procurement-bids-eye-button {
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.procurement-bids-eye-button i {
    font-size: 1rem;
    line-height: 1;
}

@media (max-width: 991.98px) {
    .procurement-bids-table {
        table-layout: auto;
    }
}

.portal-client-governance-photo-current {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid rgba(21, 48, 77, 0.08);
    border-radius: 1rem;
    background: rgba(247, 250, 254, 0.82);
}

.portal-client-governance-photo-current img {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 0.95rem;
    object-fit: cover;
    border: 1px solid rgba(21, 48, 77, 0.08);
    background: #fff;
}

.portal-client-governance-photo-current a {
    color: var(--portal-primary);
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none;
}

.portal-client-governance-photo-current a:hover,
.portal-client-governance-photo-current a:focus-visible {
    text-decoration: underline;
}

.portal-client-governance-sidecard {
    padding: 1rem 1rem 1.1rem;
    border: 1px solid rgba(21, 48, 77, 0.08);
    border-radius: 1rem;
    background: rgba(247, 250, 254, 0.74);
}


.portal-admin-hero {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1.25rem 1.5rem;
    padding: 1.45rem 1.55rem;
}

.portal-admin-hero-copy {
    flex: 1 1 36rem;
    min-width: 0;
}

.portal-admin-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 1rem;
}

.portal-admin-hero-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 1.5rem;
    padding: 0.38rem 0.75rem;
    border-radius: 999px;
    background: rgba(16, 48, 76, 0.06);
    color: var(--portal-dark);
    font-size: 0.8rem;
    font-weight: 700;
}

.portal-admin-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: flex-start;
    justify-content: flex-end;
}

.portal-admin-metrics-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.portal-admin-metric-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.85rem;
    padding: 1rem 1.05rem;
    border: 1px solid rgba(21, 48, 77, 0.08);
    border-radius: 1.35rem;
    background: #fff;
    box-shadow: 0 16px 30px rgba(15, 36, 58, 0.06);
}

.portal-admin-metric-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.9rem;
    height: 2.9rem;
    border-radius: 1rem;
    background: rgba(0, 86, 166, 0.08);
    color: var(--portal-primary);
    font-size: 1.15rem;
}

.portal-admin-metric-card.is-dark .portal-admin-metric-icon {
    background: rgba(22, 50, 79, 0.1);
    color: var(--portal-dark);
}

.portal-admin-metric-card.is-accent .portal-admin-metric-icon,
.portal-admin-metric-card.is-warning .portal-admin-metric-icon {
    background: rgba(217, 140, 0, 0.12);
    color: var(--portal-accent);
}

.portal-admin-metric-card.is-success .portal-admin-metric-icon {
    background: rgba(16, 185, 129, 0.12);
    color: #0f9a6b;
}

.portal-admin-metric-card.is-info .portal-admin-metric-icon {
    background: rgba(3, 105, 161, 0.12);
    color: var(--app-info, #0369A1);
}

.portal-admin-metric-copy {
    display: grid;
    gap: 0.12rem;
}

.portal-admin-metric-label {
    color: var(--portal-muted);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.35;
}

.portal-admin-metric-value {
    color: var(--portal-dark);
    font-size: clamp(1.55rem, 2vw, 1.95rem);
    font-weight: 700;
    line-height: 1.02;
    letter-spacing: -0.03em;
}

.portal-admin-metric-value small {
    color: var(--portal-muted);
    font-size: 0.9rem;
    font-weight: 700;
}

.portal-admin-metric-helper {
    color: var(--portal-muted);
    font-size: 0.75rem;
    line-height: 1.45;
}

.portal-admin-chart-card,
.portal-admin-surface {
    padding: 1.2rem 1.25rem;
}

.portal-admin-hero {
    padding: 1.45rem 1.55rem;
}

.portal-admin-onboarding-card {
    padding: 1.25rem;
}

.portal-admin-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.portal-admin-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem 0.9rem;
    justify-content: flex-end;
    color: var(--portal-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.portal-admin-chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.portal-admin-chart-legend i {
    display: inline-block;
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 999px;
}

.portal-admin-multi-bar-chart {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.9rem;
    align-items: end;
    min-height: 17rem;
}

.portal-admin-multi-bar-group {
    display: grid;
    gap: 0.5rem;
}

.portal-admin-multi-bar-columns {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.35rem;
    align-items: end;
    min-height: 14rem;
    padding: 0.6rem 0.5rem 0.7rem;
    border-radius: 1.1rem;
    background: linear-gradient(180deg, rgba(16, 48, 76, 0.03) 0%, rgba(16, 48, 76, 0.01) 100%);
}

.portal-admin-multi-bar-column {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    min-height: 100%;
}

.portal-admin-multi-bar {
    width: 100%;
    min-height: 0.6rem;
    border-radius: 999px 999px 0.5rem 0.5rem;
    background: var(--chart-color, var(--portal-primary));
    box-shadow: inset 0 -10px 18px rgba(255, 255, 255, 0.12);
}

.portal-admin-multi-bar-label {
    text-align: center;
    color: var(--portal-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.portal-admin-status-list {
    display: grid;
    gap: 0.9rem;
}

.portal-admin-status-item {
    display: grid;
    gap: 0.35rem;
}

.portal-admin-status-copy {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: baseline;
}

.portal-admin-status-copy strong {
    font-size: 0.95rem;
}

.portal-admin-status-copy span {
    color: var(--portal-muted);
    font-size: 0.78rem;
}

.portal-admin-status-bar {
    height: 0.75rem;
    border-radius: 999px;
    background: rgba(16, 48, 76, 0.08);
    overflow: hidden;
}

.portal-admin-status-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--portal-primary) 0%, var(--portal-dark) 100%);
}

.portal-admin-simple-bars {
    display: grid;
    gap: 0.85rem;
}

.portal-admin-simple-bar-row {
    display: grid;
    gap: 0.4rem;
}

.portal-admin-simple-bar-meta {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    color: var(--portal-muted);
    font-size: 0.8rem;
    font-weight: 700;
}

.portal-admin-simple-bar-meta strong {
    color: var(--portal-dark);
}

.portal-admin-simple-bar-track {
    height: 0.8rem;
    border-radius: 999px;
    background: rgba(16, 48, 76, 0.08);
    overflow: hidden;
}

.portal-admin-simple-bar-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #2c78c4 0%, var(--portal-primary) 100%);
}

.portal-admin-status-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.8rem;
}

.portal-admin-status-tile {
    display: grid;
    gap: 0.15rem;
    padding: 0.9rem;
    border: 1px solid rgba(21, 48, 77, 0.08);
    border-radius: 1rem;
    background: rgba(16, 48, 76, 0.03);
}

.portal-admin-status-tile span {
    color: var(--portal-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.portal-admin-status-tile strong {
    color: var(--portal-dark);
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: -0.03em;
}

.portal-admin-feed {
    display: grid;
    gap: 0.8rem;
}

.portal-admin-feed.compact {
    gap: 0.65rem;
}

.portal-admin-feed-item {
    padding: 0.95rem 1rem;
    border: 1px solid rgba(21, 48, 77, 0.08);
    border-radius: 1rem;
    background: rgba(16, 48, 76, 0.02);
}

.portal-admin-feed-item.compact {
    padding: 0.75rem 0.85rem;
}

.portal-admin-feed-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.35rem;
}

.portal-admin-feed-top strong {
    color: var(--portal-dark);
    font-size: 0.93rem;
}

.portal-admin-feed-item p {
    font-size: 0.85rem;
    line-height: 1.55;
}

.portal-admin-feed-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem 0.9rem;
    color: var(--portal-muted);
    font-size: 0.76rem;
    font-weight: 700;
}

.portal-admin-split-feed {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.portal-admin-subhead {
    margin-bottom: 0.65rem;
    color: var(--portal-dark);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-admin-empty-state {
    display: grid;
    place-items: center;
    min-height: 9rem;
    padding: 1rem;
    border: 1px dashed rgba(21, 48, 77, 0.16);
    border-radius: 1rem;
    background: rgba(16, 48, 76, 0.02);
    color: var(--portal-muted);
    text-align: center;
}

.portal-admin-empty-state.is-compact {
    min-height: 5.5rem;
    font-size: 0.85rem;
}

.portal-admin-quick-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.portal-admin-quick-card {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(21, 48, 77, 0.08);
    border-radius: 1.15rem;
    background: rgba(16, 48, 76, 0.025);
}

.portal-admin-quick-head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.8rem;
    align-items: start;
}

.portal-admin-quick-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.95rem;
    background: rgba(0, 86, 166, 0.1);
    color: var(--portal-primary);
}

.portal-admin-quick-head strong {
    display: block;
    color: var(--portal-dark);
}

.portal-admin-quick-head p {
    margin: 0.18rem 0 0;
    color: var(--portal-muted);
    font-size: 0.82rem;
    line-height: 1.5;
}

.portal-admin-quick-links {
    display: grid;
    gap: 0.5rem;
}

.portal-admin-quick-links a {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--portal-dark);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 700;
}

.portal-admin-quick-links a:hover,
.portal-admin-quick-links a:focus-visible {
    color: var(--portal-primary);
}

.portal-admin-kpi-grid,
.portal-admin-master-grid,
.portal-admin-operations-grid,
.portal-admin-module-grid {
    display: grid;
    gap: 1rem;
}

.portal-admin-kpi-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.portal-admin-master-grid {
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.portal-admin-operations-grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.portal-admin-module-grid {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.portal-admin-metric-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.portal-admin-metric-link .portal-admin-metric-card {
    height: 100%;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.portal-admin-metric-link:hover .portal-admin-metric-card,
.portal-admin-metric-link:focus-visible .portal-admin-metric-card {
    transform: translateY(-2px);
    border-color: rgba(0, 86, 166, 0.2);
    box-shadow: 0 20px 34px rgba(15, 36, 58, 0.11);
}

.portal-admin-master-strip {
    display: grid;
    gap: 1rem;
    background:
        linear-gradient(135deg, rgba(0, 86, 166, 0.065), rgba(16, 48, 76, 0.02)),
        #fff;
}

.portal-admin-master-pill {
    display: inline-flex;
    align-items: center;
    min-height: 1.5rem;
    padding: 0.38rem 0.8rem;
    border-radius: 999px;
    background: rgba(0, 86, 166, 0.1);
    color: var(--portal-primary);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.portal-admin-master-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.85rem;
    padding: 1rem 1.05rem;
    border: 1px solid rgba(21, 48, 77, 0.08);
    border-radius: 1.2rem;
    background: rgba(255, 255, 255, 0.88);
}

.portal-admin-master-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 1rem;
    background: rgba(0, 86, 166, 0.1);
    color: var(--portal-primary);
    font-size: 1rem;
}

.portal-admin-master-copy {
    display: grid;
    gap: 0.12rem;
}

.portal-admin-master-copy span {
    color: var(--portal-muted);
    font-size: 0.77rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.portal-admin-master-copy strong {
    color: var(--portal-dark);
    font-size: 1.65rem;
    line-height: 1;
}

.portal-admin-master-copy small {
    color: var(--portal-muted);
    font-size: 0.8rem;
    line-height: 1.5;
}

.portal-admin-dashboard-callout {
    display: grid;
    gap: 0.35rem;
    min-height: 13rem;
    align-content: center;
    background:
        radial-gradient(circle at top right, rgba(0, 86, 166, 0.08), transparent 48%),
        #fff;
}

.portal-admin-alert-card {
    display: grid;
    gap: 1rem;
}

.portal-admin-alert-list {
    display: grid;
    gap: 0.8rem;
}

.portal-admin-alert-item {
    display: grid;
    gap: 0.5rem;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(21, 48, 77, 0.08);
    border-radius: 1rem;
    background: rgba(16, 48, 76, 0.02);
}

.portal-admin-alert-item strong {
    color: var(--portal-dark);
    display: block;
    margin-bottom: 0.2rem;
}

.portal-admin-alert-item p {
    margin: 0;
    color: var(--portal-muted);
    font-size: 0.84rem;
    line-height: 1.55;
}

.portal-admin-alert-item a {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--portal-primary);
    text-decoration: none;
}

.portal-admin-alert-item.is-danger {
    border-color: rgba(220, 53, 69, 0.18);
    background: rgba(220, 53, 69, 0.05);
}

.portal-admin-alert-item.is-warning {
    border-color: rgba(217, 140, 0, 0.18);
    background: rgba(217, 140, 0, 0.06);
}

.portal-admin-alert-item.is-info {
    border-color: rgba(0, 86, 166, 0.15);
    background: rgba(0, 86, 166, 0.04);
}

.portal-admin-operation-card,
.portal-admin-module-card {
    display: grid;
    gap: 1rem;
}

.portal-admin-mini-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 0.75rem;
}

.portal-admin-mini-stats--dense {
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
}

.portal-admin-mini-stat {
    display: grid;
    gap: 0.18rem;
    padding: 0.9rem 0.95rem;
    border-radius: 1rem;
    border: 1px solid rgba(21, 48, 77, 0.08);
    background: rgba(16, 48, 76, 0.025);
}

.portal-admin-mini-stat span {
    color: var(--portal-muted);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.portal-admin-mini-stat strong {
    color: var(--portal-dark);
    font-size: 1.35rem;
    line-height: 1.05;
}

.portal-admin-feed-item--link {
    color: inherit;
    text-decoration: none;
}

.portal-admin-operation-actions,
.portal-admin-module-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.portal-admin-module-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.8rem 1rem;
}

.portal-admin-module-status {
    display: inline-flex;
    align-items: center;
    min-height: 1.5rem;
    padding: 0.36rem 0.8rem;
    border-radius: 999px;
    background: rgba(0, 86, 166, 0.08);
    color: var(--portal-primary);
    font-size: 0.78rem;
    font-weight: 700;
}

.portal-admin-module-highlights {
    display: grid;
    gap: 0.5rem;
    margin: 0;
    padding-left: 1.15rem;
    color: var(--portal-muted);
    font-size: 0.85rem;
    line-height: 1.55;
}

.portal-admin-module-highlights li::marker {
    color: var(--portal-primary);
}

.portal-admin-module-links a {
    display: inline-flex;
    align-items: center;
    min-height: 2.3rem;
    padding: 0.45rem 0.8rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(0, 86, 166, 0.12);
    background: rgba(0, 86, 166, 0.04);
    color: var(--portal-dark);
    font-size: 0.84rem;
    font-weight: 700;
    text-decoration: none;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.portal-admin-module-links a:hover,
.portal-admin-module-links a:focus-visible {
    background: rgba(0, 86, 166, 0.09);
    border-color: rgba(0, 86, 166, 0.22);
    color: var(--portal-primary);
}

.portal-admin-shell.is-collapsed {
    grid-template-columns: 4.75rem minmax(0, 1fr);
}

.portal-client-shell.is-collapsed {
    grid-template-columns: 3.9rem minmax(0, 1fr);
}

.portal-admin-shell.is-collapsed [data-sidebar-nav-label],
.portal-client-shell.is-collapsed [data-sidebar-nav-label] {
    opacity: 0;
    transform: translateX(-6px);
    pointer-events: none;
    width: 0;
    height: 0;
    overflow: hidden;
}

.portal-admin-shell.is-collapsed .portal-admin-nav-link,
.portal-client-shell.is-collapsed .portal-client-nav-link,
.portal-admin-shell.is-collapsed .portal-admin-brand,
.portal-client-shell.is-collapsed .portal-client-user {
    justify-content: center;
}

.portal-admin-shell.is-collapsed .portal-admin-nav-link,
.portal-client-shell.is-collapsed .portal-client-nav-link {
    padding-left: 0.55rem;
    padding-right: 0.55rem;
}

.portal-admin-shell.is-collapsed .portal-admin-sidebar,
.portal-client-shell.is-collapsed .portal-client-sidebar {
    padding-left: 0.65rem;
    padding-right: 0.65rem;
}

.portal-admin-shell.is-collapsed .portal-admin-sidebar {
    min-width: 4.75rem;
    padding: 0.8rem 0.5rem 0.9rem;
    gap: 0.75rem;
}

.portal-client-shell.is-collapsed .portal-client-sidebar {
    min-width: 3.9rem;
    max-width: 3.9rem;
    padding: 0.65rem 0.25rem 0.75rem;
    gap: 0.5rem;
    align-items: center;
}

.portal-admin-shell.is-collapsed .portal-admin-nav-group-button,
.portal-client-shell.is-collapsed .portal-client-nav-group-button {
    justify-content: center;
    padding-left: 0.45rem;
    padding-right: 0.45rem;
}

.portal-admin-shell.is-collapsed .portal-admin-brand {
    width: 100%;
    justify-content: center;
}

.portal-admin-shell.is-collapsed .portal-admin-identity,
.portal-admin-shell.is-collapsed .portal-admin-sidebar-feedback {
    display: none;
}

.portal-admin-shell.is-collapsed .portal-admin-nav {
    gap: 0.6rem;
}

.portal-admin-shell.is-collapsed .portal-admin-nav-group,
.portal-admin-shell.is-collapsed .portal-admin-nav-subgroup {
    gap: 0.35rem;
}

.portal-admin-shell.is-collapsed .portal-admin-nav-link,
.portal-admin-shell.is-collapsed .portal-admin-nav-group-button,
.portal-admin-shell.is-collapsed .portal-admin-nav-subgroup-toggle,
.portal-admin-shell.is-collapsed .portal-admin-logout .btn {
    width: 100%;
    min-height: 3rem;
    padding: 0.45rem;
    justify-content: center;
}

.portal-admin-shell.is-collapsed .portal-admin-nav-group-button-copy,
.portal-admin-shell.is-collapsed .portal-admin-nav-subgroup-copy {
    width: 100%;
    justify-content: center;
    gap: 0;
}

.portal-admin-shell.is-collapsed .portal-admin-nav-icon,
.portal-admin-shell.is-collapsed .portal-admin-nav-group-icon {
    width: 2.35rem;
    height: 2.35rem;
}

.portal-admin-shell.is-collapsed .portal-admin-nav-links,
.portal-admin-shell.is-collapsed .portal-admin-nav-subgroup-body {
    display: none !important;
}

.portal-admin-shell.is-collapsed .portal-admin-logout {
    margin-top: auto;
}

.portal-admin-shell.is-collapsed .portal-admin-logout .btn {
    gap: 0;
}

.portal-client-shell.is-collapsed .portal-client-brand {
    width: auto;
    margin-left: auto;
    margin-right: auto;
    justify-content: center;
}

.portal-client-shell.is-collapsed .portal-client-sidebar-copy {
    display: none;
}

.portal-client-shell.is-collapsed .portal-client-nav {
    align-items: center;
    gap: 0.35rem;
}

.portal-client-shell.is-collapsed .portal-client-nav-group,
.portal-client-shell.is-collapsed .portal-client-nav-subgroup {
    width: auto;
    gap: 0.35rem;
}

.portal-client-shell.is-collapsed .portal-client-nav-link,
.portal-client-shell.is-collapsed .portal-client-nav-group-button,
.portal-client-shell.is-collapsed .portal-client-nav-subgroup-toggle,
.portal-client-shell.is-collapsed .portal-client-logout .btn {
    width: 2.5rem;
    min-width: 2.5rem;
    max-width: 2.5rem;
    min-height: 2.5rem;
    padding: 0;
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
}

.portal-client-shell.is-collapsed .portal-client-nav-group-button-copy,
.portal-client-shell.is-collapsed .portal-client-nav-subgroup-copy {
    width: auto;
    justify-content: center;
    gap: 0;
}

.portal-client-shell.is-collapsed .portal-client-nav-icon,
.portal-client-shell.is-collapsed .portal-client-nav-group-icon {
    width: 2rem;
    height: 2rem;
}

.portal-client-shell.is-collapsed .portal-client-sidebar .portal-admin-brand-mark,
.portal-client-shell.is-collapsed .portal-client-sidebar .portal-client-brand-mark,
.portal-client-shell.is-collapsed .portal-client-sidebar .portal-client-brand-dm-icon {
    width: 2.5rem;
    height: 2.5rem;
}

.portal-client-shell.is-collapsed .portal-client-nav-links,
.portal-client-shell.is-collapsed .portal-client-nav-subgroup-body {
    display: none !important;
}

.portal-client-shell.is-collapsed .portal-client-logout {
    margin-top: auto;
}

.portal-client-shell.is-collapsed .portal-client-logout .btn {
    gap: 0;
}

.portal-client-shell.is-collapsed .portal-client-sidebar-top {
    width: 100%;
    gap: 0.35rem;
}

.portal-admin-shell.is-collapsed .portal-admin-nav-group-button-copy,
.portal-client-shell.is-collapsed .portal-client-nav-group-button-copy {
    justify-content: center;
}

.portal-admin-shell.is-collapsed .portal-admin-nav-group-icon,
.portal-client-shell.is-collapsed .portal-client-nav-group-icon {
    width: 2.3rem;
    height: 2.3rem;
}

.portal-admin-shell.is-collapsed .portal-admin-sidebar-top,
.portal-client-shell.is-collapsed .portal-client-sidebar-top {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0.6rem;
}

.portal-admin-shell.is-collapsed .portal-admin-sidebar-toggle,
.portal-client-shell.is-collapsed .portal-client-sidebar-toggle {
    width: 2.7rem;
    height: 2.7rem;
    align-self: center;
}

.portal-client-shell.is-collapsed .portal-client-sidebar-toggle {
    width: 2.5rem;
    height: 2.5rem;
    margin-left: auto;
    margin-right: auto;
}

.portal-client-shell.is-collapsed .portal-client-sidebar {
    width: 3.9rem;
}

.portal-client-shell.is-collapsed .portal-client-sidebar-top,
.portal-client-shell.is-collapsed .portal-client-nav,
.portal-client-shell.is-collapsed .portal-client-logout {
    width: 100%;
    display: grid;
    justify-items: center;
}

.portal-client-shell.is-collapsed .portal-client-sidebar-top {
    align-content: start;
}

.portal-client-shell.is-collapsed .portal-client-nav-group,
.portal-client-shell.is-collapsed .portal-client-nav-subgroup {
    width: 100%;
    display: grid;
    justify-items: center;
}

.portal-client-shell.is-collapsed .portal-client-brand,
.portal-client-shell.is-collapsed .portal-client-sidebar-toggle,
.portal-client-shell.is-collapsed .portal-client-nav-link,
.portal-client-shell.is-collapsed .portal-client-nav-group-button,
.portal-client-shell.is-collapsed .portal-client-nav-subgroup-toggle,
.portal-client-shell.is-collapsed .portal-client-logout .btn {
    width: 2.5rem !important;
    min-width: 2.5rem !important;
    max-width: 2.5rem !important;
    min-height: 2.5rem;
    padding: 0 !important;
    margin: 0 auto !important;
}

.portal-client-shell.is-collapsed .portal-client-brand,
.portal-client-shell.is-collapsed .portal-client-sidebar-toggle,
.portal-client-shell.is-collapsed .portal-client-nav-link,
.portal-client-shell.is-collapsed .portal-client-nav-group-button,
.portal-client-shell.is-collapsed .portal-client-nav-subgroup-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.portal-client-shell.is-collapsed .portal-client-brand .portal-admin-brand-mark,
.portal-client-shell.is-collapsed .portal-client-brand .portal-client-brand-mark,
.portal-client-shell.is-collapsed .portal-client-brand .portal-client-brand-dm-icon {
    width: 2.5rem;
    height: 2.5rem;
}

.portal-client-shell.is-collapsed .portal-client-brand .portal-client-brand-dm-horizontal {
    display: none !important;
}

.portal-client-shell.is-collapsed .portal-client-brand .portal-client-brand-dm-icon {
    display: inline-flex !important;
}

.portal-client-shell.is-collapsed {
    --portal-client-rail-width: 3.85rem;
    --portal-client-rail-item-size: 2.5rem;
    grid-template-columns: var(--portal-client-rail-width) minmax(0, 1fr);
}

.portal-client-shell.is-collapsed .portal-client-sidebar {
    width: var(--portal-client-rail-width);
    min-width: var(--portal-client-rail-width);
    max-width: var(--portal-client-rail-width);
    padding: 0.65rem 0;
    align-items: center;
    overflow-x: hidden;
    scrollbar-width: none;
}

.portal-client-shell.is-collapsed .portal-client-sidebar::-webkit-scrollbar {
    display: none;
}

.portal-client-shell.is-collapsed .portal-client-sidebar-top,
.portal-client-shell.is-collapsed .portal-client-nav,
.portal-client-shell.is-collapsed .portal-client-logout {
    width: 100%;
    display: grid !important;
    justify-items: center;
}

.portal-client-shell.is-collapsed .portal-client-sidebar-top {
    align-content: start;
    gap: 0.35rem;
}

.portal-client-shell.is-collapsed .portal-client-nav {
    align-content: start;
    gap: 0.5rem;
}

.portal-client-shell.is-collapsed .portal-client-nav-group,
.portal-client-shell.is-collapsed .portal-client-nav-subgroup {
    width: 100%;
    display: grid;
    justify-items: center;
    gap: 0.4rem;
}

.portal-client-shell.is-collapsed .portal-client-brand,
.portal-client-shell.is-collapsed .portal-client-sidebar-toggle,
.portal-client-shell.is-collapsed .portal-client-nav-link,
.portal-client-shell.is-collapsed .portal-client-nav-group-button,
.portal-client-shell.is-collapsed .portal-client-nav-subgroup-toggle,
.portal-client-shell.is-collapsed .portal-client-logout .btn {
    width: var(--portal-client-rail-item-size) !important;
    min-width: var(--portal-client-rail-item-size) !important;
    max-width: var(--portal-client-rail-item-size) !important;
    min-height: var(--portal-client-rail-item-size) !important;
    padding: 0 !important;
    margin: 0 auto !important;
}

.portal-client-shell.is-collapsed .portal-client-brand,
.portal-client-shell.is-collapsed .portal-client-sidebar-toggle,
.portal-client-shell.is-collapsed .portal-client-nav-link,
.portal-client-shell.is-collapsed .portal-client-nav-group-button,
.portal-client-shell.is-collapsed .portal-client-nav-subgroup-toggle,
.portal-client-shell.is-collapsed .portal-client-logout .btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

.portal-client-shell.is-collapsed .portal-client-brand .portal-admin-brand-mark,
.portal-client-shell.is-collapsed .portal-client-brand .portal-client-brand-mark,
.portal-client-shell.is-collapsed .portal-client-brand .portal-client-brand-dm-icon {
    width: var(--portal-client-rail-item-size);
    height: var(--portal-client-rail-item-size);
}

.portal-client-shell.is-collapsed .portal-client-nav-icon,
.portal-client-shell.is-collapsed .portal-client-nav-group-icon {
    width: 2rem !important;
    height: 2rem !important;
}

.portal-client-shell.is-collapsed .portal-client-logout {
    margin-top: auto;
    padding-top: 0.25rem;
}

.portal-client-hub-shell {
    display: grid;
    gap: 1.1rem;
    padding: 1.2rem 1.25rem;
    background:
        radial-gradient(circle at top left, rgba(var(--dm-brand-accent-rgb, 56, 189, 248), 0.16), transparent 42%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 255, 0.96));
}

.portal-client-hub-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(22rem, 0.85fr);
    gap: 1rem;
    align-items: stretch;
}

.portal-client-hub-hero {
    position: relative;
    display: grid;
    overflow: hidden;
    min-height: 18rem;
    border: 1px solid rgba(28, 60, 91, 0.1);
    border-radius: 1.25rem;
    background:
        linear-gradient(135deg, rgba(var(--dm-brand-secondary-rgb, 15, 23, 42), 0.96), rgba(var(--dm-brand-primary-rgb, 37, 99, 235), 0.86));
    color: #f8fbff;
}

.portal-client-hub-hero.has-image {
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
}

.portal-client-hub-hero-media {
    position: relative;
    min-height: 100%;
}

.portal-client-hub-hero-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(15, 23, 42, 0.06), rgba(15, 23, 42, 0.48));
}

.portal-client-hub-hero-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.portal-client-hub-hero-copy {
    position: relative;
    z-index: 1;
    display: grid;
    align-content: start;
    gap: 1rem;
    padding: 1.35rem 1.4rem;
}

.portal-client-hub-title {
    margin: 0;
    font-size: clamp(1.55rem, 2vw, 2rem);
    font-weight: 800;
    line-height: 1.06;
    letter-spacing: -0.035em;
}

.portal-client-hub-summary {
    margin: 0;
    max-width: 46rem;
    color: rgba(248, 251, 255, 0.88);
    font-size: 0.98rem;
    line-height: 1.65;
}

.portal-client-hub-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    color: rgba(248, 251, 255, 0.72);
    font-size: 0.76rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-client-hub-hero-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 2.45rem;
    padding: 0.65rem 1rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: #f8fbff;
    font-weight: 700;
    text-decoration: none;
}

.portal-client-hub-hero-link:hover {
    background: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

.portal-client-hub-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.portal-client-hub-hero-link--secondary {
    background: rgba(255, 255, 255, 0.08);
}

.portal-client-hub-search-form--hero {
    margin-top: 0.2rem;
}

.portal-client-hub-search-form--hero .portal-client-hub-search-input {
    min-height: 3rem;
    padding: 0 1rem;
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 18px 32px rgba(15, 23, 42, 0.12);
}

.portal-client-hub-search-form--hero .portal-client-hub-search-input input {
    color: #17324f;
}

.portal-client-hub-search-form--hero .btn-primary {
    min-width: 8.25rem;
}

.portal-client-hub-side {
    display: grid;
    gap: 1rem;
}

.portal-client-hub-search-card,
.portal-client-hub-shortcuts-card,
.portal-client-hub-status-shell,
.portal-client-hub-panel {
    display: grid;
    gap: 0.9rem;
    padding: 1rem 1.05rem;
    border: 1px solid rgba(18, 54, 86, 0.08);
    border-radius: 1.1rem;
    background: rgba(255, 255, 255, 0.96);
}

.portal-client-hub-search-head,
.portal-client-hub-section-head {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 0.75rem;
}

.portal-client-hub-section-head span,
.portal-client-hub-search-head span {
    color: #6b7a90;
    font-size: 0.8rem;
}

.portal-client-hub-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
}

.portal-client-hub-search-input {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    min-height: 2.75rem;
    padding: 0 0.95rem;
    border: 1px solid rgba(18, 54, 86, 0.1);
    border-radius: 0.95rem;
    background: rgba(248, 250, 255, 0.92);
}

.portal-client-hub-search-input i {
    color: #5f6d84;
}

.portal-client-hub-search-input input {
    width: 100%;
    border: 0;
    background: transparent;
    outline: none;
    color: #17324f;
    font-size: 0.95rem;
}

.portal-client-hub-search-results {
    display: grid;
    gap: 0.75rem;
}

.portal-client-hub-result-list,
.portal-client-hub-highlight-list {
    display: grid;
    gap: 0.7rem;
}

.portal-client-hub-result-item,
.portal-client-hub-highlight-item {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid rgba(17, 61, 94, 0.08);
    border-radius: 0.95rem;
    background: rgba(249, 251, 255, 0.92);
}

.portal-client-hub-result-item strong,
.portal-client-hub-highlight-item strong,
.portal-client-hub-shortcut strong,
.portal-client-hub-result-item p,
.portal-client-hub-highlight-item p,
.portal-client-hub-shortcut p,
.portal-client-hub-news-card p {
    margin: 0;
    color: #5d6c84;
    font-size: 0.84rem;
    line-height: 1.55;
}

.portal-client-hub-result-kind {
    display: inline-flex;
    margin-bottom: 0.3rem;
    color: var(--dm-brand-primary, #0F3A5F);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-client-hub-result-meta {
    display: grid;
    justify-items: end;
    gap: 0.4rem;
    text-align: right;
    color: #6e7f97;
    font-size: 0.77rem;
}

.portal-client-hub-result-meta a,
.portal-client-hub-highlight-item a,
.portal-client-hub-news-card a {
    color: var(--dm-brand-primary, #0F3A5F);
    font-weight: 700;
    text-decoration: none;
}

.portal-client-hub-shortcuts-grid,
.portal-client-hub-news-grid,
.portal-client-hub-panels {
    display: grid;
    gap: 0.76rem;
}

.portal-client-hub-shortcuts-grid {
    grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
}

.portal-client-hub-shortcut {
    display: grid;
    grid-template-columns: 1.95rem minmax(0, 1fr);
    gap: 0.58rem;
    align-items: center;
    padding: 0.62rem 0.72rem;
    border: 1px solid rgba(17, 61, 94, 0.08);
    border-radius: 0.5rem;
    background: linear-gradient(180deg, rgba(250, 252, 255, 0.98), rgba(246, 249, 255, 0.95));
    text-decoration: none;
}

.portal-client-hub-shortcut:hover {
    border-color: rgba(var(--dm-brand-primary-rgb, 15, 58, 95), 0.24);
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.08);
}

.portal-client-hub-shortcut-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.95rem;
    height: 1.95rem;
    border-radius: 0.42rem;
    background: rgba(var(--dm-brand-primary-rgb, 15, 58, 95), 0.1);
    color: var(--dm-brand-primary, #0F3A5F);
}

.portal-client-hub-shortcut strong {
    display: block;
    color: #0f172a;
    font-size: 0.84rem;
    line-height: 1.14;
}

.portal-client-hub-shortcut p {
    display: none;
}

.portal-client-hub-panels {
    grid-template-columns: minmax(0, 1.1fr) minmax(19rem, 0.9fr);
}

.portal-client-hub-panel--compact {
    align-content: start;
}

.portal-client-hub-shortcuts-card--full {
    gap: 0.72rem;
}

.portal-client-hub-status-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
}

.portal-client-hub-status-card {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: 0.8rem;
    align-items: start;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(17, 61, 94, 0.08);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.96);
}

.portal-client-hub-status-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.5rem;
    background: rgba(var(--dm-brand-primary-rgb, 15, 58, 95), 0.1);
    color: var(--dm-brand-primary, #0F3A5F);
    font-size: 1rem;
}

.portal-client-hub-status-label {
    display: block;
    margin-bottom: 0.2rem;
    color: #6b7a90;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-client-hub-status-card strong {
    display: block;
    margin: 0;
    color: #17324f;
    font-size: 1rem;
    line-height: 1.35;
}

.portal-client-hub-status-card p {
    margin: 0.2rem 0 0;
    color: #62718a;
    font-size: 0.83rem;
    line-height: 1.55;
}

.portal-client-hub-status-card a {
    display: inline-flex;
    margin-top: 0.45rem;
    color: var(--dm-brand-primary, #0F3A5F);
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none;
}

.portal-client-hub-status-card.is-success .portal-client-hub-status-icon {
    background: rgba(22, 163, 74, 0.14);
    color: #15803d;
}

.portal-client-hub-status-card.is-info .portal-client-hub-status-icon {
    background: rgba(14, 165, 233, 0.14);
    color: #0369a1;
}

.portal-client-hub-status-card.is-primary .portal-client-hub-status-icon {
    background: rgba(var(--dm-brand-primary-rgb, 15, 58, 95), 0.14);
    color: var(--dm-brand-primary, #0F3A5F);
}

.portal-client-hub-status-card.is-accent .portal-client-hub-status-icon {
    background: rgba(245, 158, 11, 0.16);
    color: #b45309;
}

.portal-client-hub-news-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-client-hub-news-card {
    display: grid;
    gap: 0.5rem;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(17, 61, 94, 0.08);
    border-radius: 1rem;
    background: rgba(250, 252, 255, 0.94);
}

.portal-client-hub-news-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    color: #6b7a90;
    font-size: 0.73rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.portal-client-hub-news-media {
    overflow: hidden;
    border-radius: 0.95rem;
    background: rgba(232, 239, 247, 0.85);
}

.portal-client-hub-news-media img {
    display: block;
    width: 100%;
    max-height: 12rem;
    object-fit: cover;
}

.portal-client-hub-empty {
    padding: 0.85rem 0.95rem;
    border: 1px dashed rgba(18, 54, 86, 0.16);
    border-radius: 0.95rem;
    color: #62718a;
    font-size: 0.88rem;
    line-height: 1.6;
    background: rgba(250, 252, 255, 0.65);
}

.portal-client-hub-summary-head {
    display: grid;
    gap: 0.25rem;
    margin-bottom: 0.9rem;
}

.portal-client-hub-summary-head p {
    margin: 0;
    max-width: 44rem;
    color: #64748b;
    font-size: 0.9rem;
    line-height: 1.6;
}

.portal-client-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.portal-client-summary-card {
    padding: 1rem 1.1rem;
    border: 1px solid rgba(21, 48, 77, 0.1);
    border-radius: 1.1rem;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15, 36, 58, 0.06);
}

.portal-client-summary-card span {
    display: block;
    color: var(--portal-muted);
    font-size: 0.8rem;
}

.portal-client-summary-card strong {
    display: block;
    margin-top: 0.35rem;
    color: var(--portal-dark);
    font-size: 1.55rem;
    line-height: 1.1;
}

.portal-module-card {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    gap: 0.85rem;
    align-items: start;
    padding: 1rem;
    border: 1px solid rgba(21, 48, 77, 0.1);
    border-radius: 1.1rem;
    background: #fff;
    cursor: pointer;
}

.portal-module-card .form-check-input {
    margin-top: 0.25rem;
}

.portal-settings-switch .form-check-input {
    width: 2.85rem;
    height: 1.45rem;
    margin-top: 0;
    border-color: rgba(21, 48, 77, 0.18);
    background-color: #d7dfeb;
    box-shadow: none;
    cursor: pointer;
}

.portal-settings-switch .form-check-input:not(:checked) {
    background-color: #d7dfeb;
    border-color: rgba(21, 48, 77, 0.18);
}

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

.portal-settings-switch .form-check-input:focus {
    border-color: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.42);
    box-shadow: 0 0 0 0.2rem rgba(var(--portal-primary-rgb, 0, 86, 166), 0.16);
}

.portal-module-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 0.5rem;
    background: rgba(0, 86, 166, 0.08);
    color: var(--portal-primary);
}

.portal-module-card-copy strong {
    display: block;
    color: var(--portal-dark);
}

.portal-module-card-copy small {
    display: block;
    margin-top: 0.18rem;
    color: var(--portal-muted);
}

.portal-module-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.6rem;
    color: var(--portal-muted);
    font-size: 0.76rem;
}

.portal-education-home-section {
    position: relative;
    isolation: isolate;
    padding: 1.5rem 0;
}

.portal-education-home-section::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    z-index: -1;
    background:
        linear-gradient(180deg, rgba(var(--portal-primary-rgb), 0.1), rgba(var(--portal-primary-rgb), 0.05)),
        radial-gradient(circle at top left, rgba(var(--portal-primary-rgb), 0.16), transparent 34%);
    pointer-events: none;
}

.portal-education-home-section .portal-section-title {
    max-width: 58rem;
}

.portal-home-central-banner-section {
    min-width: 0;
}

.portal-home-central-banner-link {
    display: block;
    text-decoration: none;
}

.portal-home-central-banner-frame {
    position: relative;
    overflow: hidden;
    border-radius: 1.5rem;
    box-shadow: 0 14px 30px rgba(15, 36, 58, 0.1);
    aspect-ratio: 1920 / 300;
    min-height: 120px;
    background: linear-gradient(135deg, rgba(var(--portal-primary-rgb), 0.08), rgba(var(--portal-dark-rgb), 0.16));
}

.portal-home-central-banner-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.portal-education-home-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(21, 48, 77, 0.09);
    border-radius: 1.2rem;
    background: #fff;
    box-shadow: 0 16px 32px rgba(15, 36, 58, 0.06);
}

.portal-education-home-media {
    position: relative;
    display: block;
    min-height: 12rem;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    isolation: isolate;
    background: linear-gradient(135deg, rgba(0, 86, 166, 0.08) 0%, rgba(22, 50, 79, 0.1) 100%);
}

.portal-education-home-media.has-image::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: var(--portal-card-media-bg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 0.45s ease;
}

.portal-education-home-media.has-image.is-media-loaded::before {
    opacity: 1;
}

.portal-education-home-media.has-image::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(16, 48, 76, 0.12) 0%, rgba(16, 48, 76, 0.28) 100%);
}

.portal-education-home-media.is-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(0, 86, 166, 0.08) 0%, rgba(22, 50, 79, 0.1) 100%);
}

.portal-education-home-media-fallback {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    border-radius: 1.2rem;
    background: rgba(255, 255, 255, 0.88);
    color: var(--portal-primary);
    font-size: 1.5rem;
}

.portal-education-home-body {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 1.1rem 1.15rem 1.2rem;
}

.admin-sidebar .nav-link {
    transition: background-color 0.18s ease, color 0.18s ease;
}

.bg-dark-subtle {
    background-color: rgba(255, 255, 255, 0.07);
}

*:focus-visible {
    outline: 3px solid rgba(217, 140, 0, 0.5);
    outline-offset: 2px;
}

@media (max-width: 1199.98px) {
    .portal-navbar {
        --portal-navbar-link-padding-y: 0;
        --portal-navbar-link-padding-x: 0.46rem;
        --portal-navbar-item-font-size: 0.83rem;
        --portal-navbar-toggle-padding-y: 0.1rem;
        --portal-navbar-toggle-padding-x: 0.46rem;
        --portal-navbar-toggle-gap: 0.24rem;
    }

    .portal-home-services-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .portal-home-protocol-card {
        position: relative;
        top: 0;
    }

    .portal-home-central-banner-frame {
        min-height: 108px;
    }

    .portal-admin-metrics-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .portal-admin-quick-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-admin-status-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-navbar .container {
        align-items: center;
        gap: 0.95rem;
    }

    .portal-navbar .navbar-collapse {
        flex-grow: 1;
        justify-content: stretch;
        width: 100%;
        margin-top: 0.85rem;
        padding: 0.85rem;
        border-radius: 1rem;
        background: rgba(var(--portal-nav-bg-rgb, 7, 26, 42), 0.98);
        border: 1px solid rgba(255, 255, 255, 0.08);
    }

    .portal-navbar-nav {
        gap: 0.12rem;
        margin-left: 0;
        margin-right: 0;
        justify-content: flex-start;
    }

    .portal-navbar .nav-link {
        border-radius: 0.85rem;
    }

    .portal-nav-dropdown-group {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .portal-nav-link-main {
        border-radius: 0.85rem 0 0 0.85rem;
    }

    .portal-nav-link-dropdown-only {
        border-radius: 0.85rem;
    }

    .portal-nav-dropdown-toggle {
        border-radius: 0 0.85rem 0.85rem 0;
    }

    .portal-dropdown-menu {
        position: static !important;
        min-width: 100%;
        margin-top: 0.35rem;
        inset: auto !important;
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.985) 0%, rgba(244, 247, 251, 0.98) 100%);
        border-color: rgba(21, 48, 77, 0.14);
        box-shadow:
            0 0.7rem 1.4rem rgba(7, 26, 42, 0.08),
            inset 0 0 0 1px rgba(255, 255, 255, 0.34);
    }

    .portal-dropdown-menu::before {
        display: none;
    }

    .portal-dropdown-item {
        color: var(--portal-primary);
    }

    .portal-dropdown-item:hover,
    .portal-dropdown-item:focus-visible {
        background: rgba(var(--portal-primary-rgb), 0.08);
        color: var(--portal-nav-bg, var(--portal-dark));
    }

    .portal-dropdown-item-group {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
        gap: 0.22rem;
    }

    .portal-dropdown-item-group::after {
        display: none;
    }

    .portal-dropdown-item-parent {
        padding-right: 0.65rem;
    }

    .portal-dropdown-item-parent .portal-dropdown-item-icon {
        display: none;
    }

    .portal-dropdown-subtoggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        align-self: stretch;
        min-width: 2.8rem;
        border: 0;
        border-radius: 0.85rem;
        background: transparent;
        color: rgba(var(--portal-primary-rgb), 0.72);
        transition: background-color 0.18s ease, color 0.18s ease;
    }

    .portal-dropdown-subtoggle:hover,
    .portal-dropdown-subtoggle:focus-visible,
    .portal-dropdown-item-group.is-expanded .portal-dropdown-subtoggle {
        background: rgba(var(--portal-primary-rgb), 0.08);
        color: var(--portal-primary);
    }

    .portal-dropdown-item-group.is-expanded .portal-dropdown-subtoggle i {
        transform: rotate(180deg);
    }

    .portal-dropdown-submenu {
        position: static;
        grid-column: 1 / -1;
        min-width: 100%;
        margin-top: 0.35rem;
        margin-left: 0.8rem;
        padding: 0.4rem;
        border: 1px solid rgba(var(--portal-primary-rgb), 0.12);
        border-left: 0.28rem solid rgba(var(--portal-primary-rgb), 0.46);
        border-radius: 0.85rem;
        background: rgba(var(--portal-primary-rgb), 0.045);
        box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.42);
    }

    .portal-dropdown-submenu::before {
        display: none;
    }

    .portal-dropdown-subitem {
        color: var(--portal-primary);
        padding: 0.45rem 0.75rem;
        font-weight: 700;
    }

    .portal-dropdown-subitem:hover,
    .portal-dropdown-subitem:focus-visible {
        background: rgba(var(--portal-primary-rgb), 0.08);
        color: var(--portal-nav-bg, var(--portal-dark));
    }

}

@media (max-width: 991.98px) {
    .portal-admin-header-actions {
        justify-content: flex-start;
    }

    .portal-admin-metrics-grid,
    .portal-admin-quick-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-admin-split-feed {
        grid-template-columns: 1fr;
    }

    .portal-admin-shell,
    .portal-client-shell {
        grid-template-columns: 1fr;
    }

    .portal-admin-shell.is-collapsed {
        grid-template-columns: 4.75rem minmax(0, 1fr);
    }

    .portal-client-shell {
        grid-template-columns: 1fr;
    }

    .portal-client-shell.is-collapsed {
        grid-template-columns: var(--portal-client-rail-width, 3.85rem) minmax(0, 1fr);
        min-height: 100vh;
        height: 100vh;
        overflow: hidden;
    }

    .portal-admin-sidebar,
    .portal-client-sidebar {
        position: static;
        min-height: auto;
        height: auto;
        overflow: visible;
    }

    .portal-admin-shell.is-collapsed .portal-admin-sidebar {
        position: sticky;
        top: 0;
        min-height: 100vh;
        height: 100vh;
        max-width: 4.75rem;
        overflow-y: auto;
    }

    .portal-client-shell.is-collapsed .portal-client-sidebar {
        position: relative;
        min-height: 100vh;
        height: 100vh;
        max-width: var(--portal-client-rail-width, 3.85rem);
        overflow-y: auto;
    }

    .portal-client-layout-frame {
        padding: 0;
        height: auto;
    }

    .portal-client-layout-body {
        overflow: auto;
    }

    .portal-client-layout-main,
    .portal-client-shell,
    .portal-client-main {
        height: auto;
        min-height: 0;
        overflow: visible;
    }

    .portal-client-shell.is-collapsed,
    .portal-client-shell.is-collapsed .portal-client-main,
    .portal-client-shell.is-collapsed .portal-client-layout-main {
        height: 100vh;
        min-height: 100vh;
        overflow: hidden;
    }

    .portal-client-shell.is-collapsed .portal-client-main {
        overflow-y: auto;
    }

    .portal-client-sidebar-title {
        font-size: 1.3rem;
    }

    .portal-client-sidebar-description {
        max-width: none;
        font-size: 0.86rem;
        line-height: 1.55;
    }

    .portal-client-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-client-hub-grid,
    .portal-client-hub-status-grid,
    .portal-client-hub-panels {
        grid-template-columns: 1fr;
    }

    .portal-client-hub-shortcuts-grid,
    .portal-client-hub-news-grid {
        grid-template-columns: 1fr;
    }

    .portal-client-hub-hero.has-image {
        grid-template-columns: 1fr;
    }

    .portal-client-hub-hero-media {
        min-height: 12rem;
    }

    .portal-client-hub-hero-link {
        width: 100%;
    }

    .portal-utility-inner,
    .portal-brandbar-inner {
        flex-direction: column;
        align-items: flex-start;
    }

    .portal-utility-tools,
    .portal-header-actions {
        justify-content: flex-start;
    }

    .portal-utility-date-block,
    .portal-utility-tools {
        width: 100%;
    }

    .portal-utility-meta-link {
        max-width: 100%;
    }

    .portal-utility-meta-value {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .portal-header-actions {
        width: 100%;
    }

    .portal-quick-button {
        flex: 1 1 calc(50% - 0.5rem);
    }

    .portal-brandbar-inner {
        align-items: center;
    }

    .portal-brand-column {
        width: 100%;
        justify-content: center;
    }

    .portal-home-highlight-body,
    .portal-content-card,
    .portal-side-panel,
    .portal-contact-panel,
    .portal-public-card {
        padding: 1.25rem;
    }

    .portal-home-highlight-media img {
        height: 220px;
    }

    .portal-news-lead {
        grid-template-columns: 1fr;
    }

    .portal-news-lead img {
        min-height: 220px;
    }

    .portal-home-carousel-body {
        min-height: 24rem;
        padding: 2.2rem 1.4rem 1.6rem;
    }

    .portal-home-carousel-placeholder {
        min-height: 24rem;
    }

    .portal-floating-sidebar {
        right: 0.8rem;
    }

    .portal-floating-panel {
        width: min(20rem, calc(100vw - 6rem));
    }

    .portal-prefooter-contact-wrap,
    .portal-contact-form-card {
        padding: 1.2rem;
    }

    .portal-institutional-modal-grid {
        grid-template-columns: 1fr;
    }

    .portal-institutional-modal-media {
        min-height: 14rem;
    }

    .portal-home-news-carousel {
        min-height: clamp(16rem, 45vw, 20rem);
        height: clamp(16rem, 45vw, 20rem);
    }

    .portal-home-news-visual-card,
    .portal-home-news-visual-body,
    .portal-home-news-visual-card--featured,
    .portal-home-news-visual-card--featured .portal-home-news-visual-body {
        min-height: clamp(16rem, 45vw, 20rem);
        height: clamp(16rem, 45vw, 20rem);
        aspect-ratio: auto;
    }

    .portal-home-news-visual-card.has-image::before {
        background-position: center top;
    }

    .portal-home-news-carousel-shell.has-rail,
    .portal-home-news-carousel-shell.has-supplementary {
        grid-template-columns: 1fr;
    }

    .portal-home-news-carousel-shell.has-rail .portal-home-news-secondary-grid,
    .portal-home-news-carousel-shell.has-supplementary .portal-home-news-secondary-grid {
        grid-column: 1;
        grid-row: auto;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-home-news-carousel-control {
        top: 0.85rem;
        width: 2.35rem;
        height: 2.35rem;
    }

    .portal-home-news-carousel-control.carousel-control-prev {
        right: 3.45rem;
    }

    .portal-home-shell {
        padding-inline: 1rem;
        padding-bottom: 2.6rem;
    }

    .portal-home-editorial-row > .row {
        margin-left: 0;
        margin-right: 0;
    }

    .portal-footer-credit {
        align-items: stretch;
    }

    .portal-footer-credit-logo {
        width: min(100%, 200px);
    }

    .portal-home-section-head {
        flex-direction: column;
        align-items: stretch;
    }

    .portal-education-home-section {
        padding: 1.2rem 0;
    }

    .portal-shortcut-card-service {
        min-height: 10rem;
    }

    .portal-weather-forecast-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-weather-current-body {
        flex-direction: column;
        align-items: flex-start;
    }

    .portal-weather-inline-metrics {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 767.98px) {
    .portal-home-news-carousel-shell.has-rail .portal-home-news-secondary-grid,
    .portal-home-news-carousel-shell.has-supplementary .portal-home-news-secondary-grid {
        grid-template-columns: 1fr;
    }

    .portal-footer {
        text-align: center;
    }

    .portal-footer .row > [class*="col-"] {
        text-align: center;
    }

    .site-footer-brand-copy {
        justify-items: center;
    }

    .site-footer-client-logo-wrap {
        justify-content: center;
    }

    .site-footer-client-logo {
        object-position: center;
    }

    .portal-footer-panel {
        padding: 0;
        border-radius: 0;
    }

    .portal-footer-panel--brand {
        padding-right: 0;
    }

    .portal-footer-meta-grid {
        grid-template-columns: 1fr;
    }

    .site-footer-legal-name,
    .portal-footer-summary {
        max-width: none;
    }

    .portal-footer-summary {
        margin-inline: auto;
    }

    .portal-footer-meta-card {
        justify-items: center;
        text-align: center;
        grid-template-columns: 1fr;
    }

    .portal-footer-meta-content {
        justify-items: center;
    }

    .site-footer-nav {
        justify-items: center;
    }

    .portal-footer-link {
        justify-content: center;
        text-align: center;
    }

    .portal-education-home-section {
        padding: 1rem 0;
    }

    .portal-footer-status-item {
        justify-items: center;
        text-align: center;
    }

    .portal-footer-status-link,
    .portal-footer-status-link:visited {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }

    .portal-footer-credit {
        align-items: center;
        text-align: center;
    }

    .portal-footer-credit--copybar {
        align-items: center;
        text-align: center;
    }

    .portal-footer-credit-link {
        justify-content: center;
    }

    .portal-copybar {
        justify-content: center;
        text-align: center;
    }

    .portal-copybar-meta {
        justify-content: center;
        flex: 1 1 100%;
    }

    .portal-copybar-item {
        justify-content: center;
        flex-wrap: wrap;
    }

    .portal-copybar-item + .portal-copybar-item::before {
        display: none;
    }

    .portal-footer-credit--copybar {
        margin-left: auto;
        margin-right: auto;
        align-items: center;
        text-align: center;
    }

    .portal-admin-hero,
    .portal-admin-chart-card,
    .portal-admin-surface {
        padding: 1rem;
    }

    .portal-admin-metrics-grid,
    .portal-admin-quick-grid,
    .portal-admin-status-grid {
        grid-template-columns: 1fr;
    }

    .portal-home-shell {
        padding-top: 1.5rem;
        padding-left: 0.8rem;
        padding-right: 4.6rem;
        padding-bottom: 2.2rem;
    }

    .portal-home-editorial-row {
        margin-bottom: 1.25rem !important;
    }

    .portal-shortcut-card-service {
        min-height: auto;
        padding: 1rem;
    }

    .portal-shortcut-card-service .portal-shortcut-icon {
        width: 3.35rem;
        height: 3.35rem;
        flex-basis: 3.35rem;
    }

    .portal-shortcut-card-service .portal-shortcut-label {
        font-size: 0.9rem;
    }

    .portal-shortcut-description {
        font-size: 0.8rem;
    }

    .portal-education-home-section::before {
        left: 0;
        right: 0;
        width: auto;
        transform: none;
    }

    .portal-admin-section-head,
    .portal-admin-hero {
        flex-direction: column;
    }

    .portal-admin-chart-legend {
        justify-content: flex-start;
    }

    .portal-weather-head {
        flex-direction: column;
    }

    .portal-weather-inline-metrics,
    .portal-weather-forecast-grid {
        grid-template-columns: 1fr;
    }

    .portal-weather-current-main {
        min-height: auto;
    }

    .portal-admin-multi-bar-chart {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .portal-admin-header,
    .portal-admin-content {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .portal-client-summary-grid {
        grid-template-columns: 1fr;
    }

    .portal-client-hub-shell {
        padding: 1rem;
    }

    .portal-client-hub-search-form {
        grid-template-columns: 1fr;
    }

    .portal-client-hub-status-card {
        grid-template-columns: 1fr;
    }

    .portal-client-hub-result-item,
    .portal-client-hub-highlight-item {
        flex-direction: column;
        align-items: stretch;
    }

    .portal-brand {
        flex-direction: column;
        align-items: center;
        gap: 0.75rem;
    }

    .portal-brand-logo {
        width: min(100%, 18rem);
        max-width: 18rem;
        min-width: 0;
        height: auto;
        min-height: 5.65rem;
        padding-top: 0;
        padding-bottom: 0;
    }

    .portal-brand-logo img {
        max-height: 5.25rem;
    }

    .portal-brand-copy {
        width: 100%;
        align-items: flex-start;
        text-align: left;
    }

    .portal-display {
        font-size: 1.6rem;
    }

    .portal-utility-meta-link {
        width: 100%;
        justify-content: space-between;
        align-items: flex-start;
        gap: 0.85rem;
        padding: 0.65rem 0.9rem;
    }

    .portal-utility-date {
        font-size: 0.95rem;
        line-height: 1.3;
    }

    .portal-utility-meta-label {
        flex: 0 0 auto;
    }

    .portal-utility-meta-value {
        font-size: 0.94rem;
        text-align: right;
    }

    .portal-accessibility-button {
        min-height: 2.25rem;
        padding: 0.42rem 0.9rem;
    }

    .portal-quick-button {
        width: 100%;
        flex: 1 1 100%;
    }

    .portal-shortcut-card-minimal {
        min-height: 6rem;
    }

    .portal-shortcut-card-minimal .portal-shortcut-icon {
        width: 3.75rem;
        height: 3.75rem;
    }

    .portal-shortcut-card,
    .portal-transparency-link,
    .portal-side-link,
    .portal-list-link,
    .portal-news-list-item {
        flex-direction: column;
    }

    .portal-legal-index-row {
        grid-template-columns: 1fr;
        gap: 0.4rem;
    }

    .portal-legal-index-summary {
        white-space: normal;
    }

    .portal-legal-index-published {
        text-align: left;
    }

    .portal-home-news-hero {
        padding-bottom: 1.2rem;
    }

    .portal-home-carousel {
        border-radius: 0;
    }

    .portal-home-carousel-title {
        font-size: 1.55rem;
    }

    .portal-home-carousel-summary {
        font-size: 0.92rem;
    }

    .portal-home-carousel-item,
    .portal-home-carousel-media,
    .portal-home-carousel-body,
    .portal-home-carousel-placeholder {
        min-height: 0;
        height: auto;
    }

    .portal-home-carousel-media {
        display: grid;
        grid-template-rows: auto auto;
        align-content: start;
        background: linear-gradient(180deg, #0c2540 0%, #102f53 100%);
    }

    .portal-home-carousel-media img {
        position: relative;
        inset: auto;
        width: 100%;
        height: auto;
        max-height: min(70vw, 24rem);
        object-fit: contain;
        object-position: center top;
        display: block;
        background: #0c2540;
    }

    .portal-home-carousel-overlay {
        display: none;
    }

    .portal-home-carousel-body {
        min-height: 0;
        max-width: none;
        gap: 0.7rem;
        padding: 1.25rem 1.15rem 1.35rem;
        background:
            linear-gradient(180deg, rgba(8, 22, 36, 0.04) 0%, rgba(8, 22, 36, 0.12) 10%, rgba(8, 22, 36, 0.92) 100%);
    }

    .portal-home-carousel-placeholder {
        min-height: 14rem;
        height: 14rem;
    }

    .portal-home-carousel-actions .btn {
        width: 100%;
    }

    .portal-benefits-grid {
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    }

    .portal-benefit-card {
        padding: 1.15rem 0.85rem 1rem;
    }

    .portal-benefit-detail-header {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .portal-benefit-detail-visual {
        justify-content: center;
    }

    .portal-calendar-toolbar {
        gap: 0.5rem;
    }

    .portal-calendar-weekdays,
    .portal-calendar-grid {
        gap: 0.28rem;
    }

    .portal-calendar-day,
    .portal-calendar-day-empty {
        min-height: 3.55rem;
        border-radius: 0.82rem;
    }

    .portal-floating-sidebar {
        right: 0.7rem;
        bottom: max(1rem, env(safe-area-inset-bottom));
        align-items: flex-end;
        gap: 0.65rem;
    }

    .portal-client-layout-body .portal-floating-sidebar {
        bottom: 4.25rem;
    }

    .portal-floating-buttons {
        gap: 0.5rem;
    }

    .portal-floating-button {
        width: 3rem;
        height: 3rem;
        border-radius: 1rem;
    }

    .portal-vlibras-host .vw-plugin-wrapper {
        right: calc(0.7rem + 3.9rem) !important;
        bottom: max(1rem, env(safe-area-inset-bottom)) !important;
    }

    .portal-floating-panel {
        width: min(20rem, calc(100vw - 1.5rem));
        max-height: min(70vh, 32rem);
        overflow-y: auto;
    }

    .portal-floating-tool-button {
        min-height: 2.65rem;
        font-size: 0.82rem;
    }

    .portal-floating-agenda-link {
        padding: 0.75rem 0.8rem 0.75rem 0.95rem;
        font-size: 0.82rem;
    }

    .portal-contact-submit {
        width: 100%;
        min-width: 0;
    }

    .portal-institutional-modal-body {
        padding: 1.35rem;
    }

    .portal-institutional-modal-actions .btn {
        width: 100%;
    }

    .portal-cookie-banner {
        left: 0.75rem;
        right: 0.75rem;
        bottom: 0.75rem;
        padding: 0.95rem;
    }

    .portal-cookie-banner-actions {
        justify-content: flex-start;
    }
}

@media (min-width: 1200px) and (hover: hover) {
    .portal-navbar .dropdown:hover > .dropdown-menu,
    .portal-navbar .dropdown:focus-within > .dropdown-menu,
    .portal-navbar .dropdown.is-hovering > .dropdown-menu {
        display: block;
    }

    .portal-navbar .dropdown:hover > .dropdown-menu[data-bs-popper],
    .portal-navbar .dropdown:focus-within > .dropdown-menu[data-bs-popper],
    .portal-navbar .dropdown.is-hovering > .dropdown-menu[data-bs-popper] {
        left: 0;
        transform: none !important;
    }
}

@media (min-width: 1200px) and (max-width: 1399.98px) and (hover: hover) {
    .portal-navbar .dropdown.is-hovering > .dropdown-menu[data-bs-popper] {
        left: auto;
        right: calc(100% - 0.2rem) !important;
        inset: auto calc(100% - 0.2rem) auto auto !important;
    }
}

.portal-document-viewer {
    display: grid;
    gap: 1.5rem;
}

.portal-document-viewer-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
}

.portal-document-viewer-header--actions-only {
    justify-content: flex-end;
}

.portal-document-viewer-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.portal-document-preview-modal .modal-dialog {
    max-width: min(1280px, calc(100vw - 2.2rem));
}

.portal-document-preview-modal .modal-content {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 1rem);
    overflow: hidden;
    border: 1px solid rgba(10, 31, 68, 0.1);
    border-radius: 1.6rem;
    background:
        radial-gradient(circle at top left, rgba(var(--portal-primary-rgb), 0.1), transparent 28%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(244, 248, 252, 0.98));
    box-shadow: 0 28px 70px rgba(8, 29, 58, 0.22);
    backdrop-filter: blur(12px);
}

.portal-document-preview-header {
    align-items: flex-start;
    gap: 1rem;
    padding: 1.25rem 1.4rem 1rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    background:
        linear-gradient(135deg, rgba(var(--portal-primary-rgb), 0.08), rgba(255, 255, 255, 0.72) 40%, rgba(255, 255, 255, 0.92));
}

.portal-document-preview-header-main {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
}

.portal-document-preview-header-actions {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-left: auto;
    padding-right: 0.75rem;
}

.portal-document-preview-header-actions .portal-document-preview-action {
    min-height: 2.55rem;
    padding-inline: 1rem;
    white-space: nowrap;
    line-height: 1;
}

.portal-document-preview-kicker {
    display: inline-flex;
    align-items: center;
    padding: 0.36rem 0.8rem;
    border-radius: 999px;
    background: rgba(var(--portal-primary-rgb), 0.1);
    color: var(--portal-primary);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.portal-document-preview-title {
    color: #102f53;
    font-size: clamp(1.18rem, 1.45vw, 1.62rem);
    line-height: 1.3;
    font-weight: 800;
}

.portal-document-preview-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    gap: 0.35rem 1rem;
    text-align: left;
    white-space: normal;
}

.portal-document-preview-meta strong {
    color: #526073;
    font-weight: 700;
}

.portal-document-preview-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 1rem 1.25rem 1.25rem;
}

.portal-document-preview-stage {
    display: grid;
    gap: 0.9rem;
    min-height: 0;
}

.portal-document-preview-frame-shell {
    position: relative;
    min-height: clamp(32rem, 74vh, 56rem);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    overflow: hidden;
    background: #eef3f8;
    box-shadow: none;
}

.portal-document-preview-frame {
    display: block;
    width: 100%;
    min-height: inherit;
    border: 0;
    background: #fff;
}

.portal-document-preview-context {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.95rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 250, 252, 0.98));
}

.portal-document-preview-context-item {
    display: grid;
    gap: 0.28rem;
    align-content: start;
    padding: 0.1rem 0;
}

.portal-document-preview-context-item span {
    color: #6b7788;
    font-size: 0.69rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-document-preview-context-item strong {
    color: #102f53;
    font-size: 0.94rem;
    line-height: 1.4;
    font-weight: 700;
}

.portal-document-preview-context-item--published {
    justify-self: end;
    text-align: right;
}

.portal-document-preview-context-item--published strong {
    color: #526073;
    font-size: 0.85rem;
    font-weight: 700;
}

.portal-document-preview-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(21rem, 0.92fr);
    gap: 0.9rem;
    align-items: start;
}

.portal-document-preview-panel {
    display: grid;
    gap: 0.8rem;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.95rem;
    background: #fff;
    box-shadow: none;
}

.portal-document-preview-panel-label {
    color: #5b6d81;
    font-size: 0.73rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.portal-document-preview-info-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.7rem;
}

.portal-document-preview-info-card {
    display: grid;
    gap: 0.32rem;
    padding: 0.82rem 0.9rem;
    border-radius: 0.85rem;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.06);
    box-shadow: none;
}

.portal-document-preview-info-card span {
    color: #6b7788;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.portal-document-preview-info-card strong {
    color: #102f53;
    font-size: 0.98rem;
    line-height: 1.4;
    word-break: break-word;
}

.portal-document-preview-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

.portal-document-preview-actions .btn {
    width: 100%;
    justify-content: center;
}

.portal-document-preview-action {
    min-height: 2.75rem;
    border-radius: 0.85rem;
    font-weight: 700;
    letter-spacing: 0;
    box-shadow: none;
    transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

.portal-document-preview-action:hover,
.portal-document-preview-action:focus-visible {
    transform: none;
    box-shadow: none;
}

.portal-document-preview-action--request {
    border-color: transparent;
    background: linear-gradient(135deg, var(--portal-primary), color-mix(in srgb, var(--portal-primary) 70%, #091a3a));
}

.portal-document-preview-action--request:hover,
.portal-document-preview-action--request:focus-visible {
    background: linear-gradient(135deg, color-mix(in srgb, var(--portal-primary) 88%, white), color-mix(in srgb, var(--portal-primary) 72%, #091a3a));
}

.portal-document-preview-action--download,
.portal-document-preview-action--validate {
    border-color: rgba(var(--portal-primary-rgb), 0.22);
    background: rgba(var(--portal-primary-rgb), 0.06);
    color: var(--portal-primary);
}

.portal-document-preview-action--download:hover,
.portal-document-preview-action--download:focus-visible,
.portal-document-preview-action--validate:hover,
.portal-document-preview-action--validate:focus-visible {
    border-color: rgba(var(--portal-primary-rgb), 0.34);
    background: rgba(var(--portal-primary-rgb), 0.11);
    color: var(--portal-primary);
}

.portal-document-preview-action--neutral {
    border-color: rgba(16, 47, 83, 0.12);
    background: rgba(255, 255, 255, 0.92);
    color: #294764;
}

.portal-document-preview-action--neutral:hover,
.portal-document-preview-action--neutral:focus-visible {
    border-color: rgba(16, 47, 83, 0.22);
    background: rgba(245, 248, 252, 0.98);
    color: #17324b;
}

.portal-document-preview-fallback {
    padding: 1rem 1.1rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: #fff;
}

@media (max-width: 991.98px) {
    .portal-document-preview-toolbar {
        grid-template-columns: minmax(0, 1fr);
    }

    .portal-document-preview-context {
        grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    }

    .portal-document-preview-context-item--published {
        justify-self: auto;
        text-align: left;
    }

    .portal-document-preview-header-actions {
        width: 100%;
        justify-content: flex-start;
        padding-right: 0;
        margin-top: 0.75rem;
    }

    .portal-document-preview-info-grid {
        grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    }

    .portal-document-preview-actions {
        grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
    }
}

@media (max-width: 767.98px) {
    .portal-document-preview-modal .modal-dialog {
        max-width: calc(100vw - 1rem);
        margin: 0.5rem;
    }

    .portal-document-preview-header {
        padding-inline: 1rem;
    }

    .portal-document-preview-body {
        padding: 0.9rem 1rem 1rem;
    }

    .portal-document-preview-header-actions {
        flex-wrap: wrap;
    }

    .portal-document-preview-frame-shell {
        min-height: 22rem;
        border-radius: 0.95rem;
    }

    .portal-document-preview-context {
        padding: 0.85rem 0.9rem;
    }

    .portal-document-preview-panel,
    .portal-document-preview-info-card,
    .portal-document-preview-action {
        border-radius: 0.85rem;
    }
}

@media (max-width: 575.98px) {
    .portal-document-preview-actions {
        grid-template-columns: 1fr;
    }
}

.portal-document-viewer-meta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.85rem;
}

.portal-document-viewer-meta-grid--viewer {
    display: flex;
    justify-content: flex-end;
    align-items: stretch;
    flex-wrap: wrap;
}

.portal-document-viewer-meta-grid--viewer-only-toolbar {
    justify-content: flex-end;
}

.portal-document-viewer-meta-card {
    padding: 0.9rem 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.92), rgba(255, 255, 255, 0.98));
}

.portal-document-viewer-meta-card--publisher {
    min-width: 220px;
}

.portal-document-viewer-meta-card--toolbar {
    flex: 0 1 auto;
    min-width: min(100%, 560px);
    padding: 0;
    overflow: hidden;
}

.portal-document-viewer-meta-card span {
    display: block;
    color: #526073;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.portal-document-viewer-meta-card strong {
    display: block;
    margin-top: 0.35rem;
    color: #102f53;
    font-size: 0.98rem;
}

.portal-document-embed-shell {
    display: grid;
    gap: 1rem;
}

.portal-document-viewer-summary-bar {
    padding: 1rem 1.2rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1.15rem;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.92), rgba(255, 255, 255, 0.98));
}

.portal-document-viewer-summary-copy {
    display: grid;
    gap: 0.35rem;
}

.portal-document-viewer-summary-title {
    display: block;
    color: #102f53;
    font-size: clamp(1.05rem, 1.5vw, 1.28rem);
    line-height: 1.4;
}

.portal-document-viewer-summary-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 1rem;
    color: #526073;
    font-size: 0.94rem;
}

.portal-document-viewer-summary-meta strong {
    color: #344256;
}

.portal-document-viewer-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.95rem 1.1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1.15rem;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.92), rgba(255, 255, 255, 0.98));
}

.portal-document-viewer-toolbar--meta {
    height: 100%;
    padding: 0.9rem 1rem;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.portal-document-viewer-toolbar-copy {
    display: grid;
    gap: 0.12rem;
}

.portal-document-viewer-toolbar-label {
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #5b6b81;
}

.portal-document-viewer-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.6rem;
}

.portal-document-viewer-alert {
    margin: 0;
    border-radius: 1rem;
    color: #3b4759;
}

.portal-document-embed-stage {
    position: relative;
    margin-inline: -0.45rem;
}

.portal-document-flipbook-shell {
    position: relative;
    padding: clamp(0.45rem, 1vw, 0.7rem);
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 1.5rem;
    background:
        radial-gradient(circle at top, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.08), transparent 40%),
        linear-gradient(180deg, rgba(250, 252, 255, 0.98), rgba(238, 244, 251, 0.98));
    overflow: hidden;
}

.portal-document-flipbook-stage {
    position: relative;
    min-height: 78vh;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 1.25rem;
    background:
        linear-gradient(180deg, rgba(15, 23, 42, 0.04), transparent 24%),
        linear-gradient(90deg, rgba(15, 23, 42, 0.05), transparent 8%, transparent 92%, rgba(15, 23, 42, 0.05));
}

.portal-document-flipbook {
    width: min(100%, 1400px);
    margin: 0 auto;
}

.portal-document-flipbook .stf__parent {
    margin: 0 auto;
}

.portal-document-flipbook-page {
    position: relative;
    width: 100%;
    height: 100%;
    padding: 1rem;
    background: linear-gradient(180deg, #fefefe, #f8fafc);
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.04);
}

.portal-document-flipbook-canvas {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 auto;
    border-radius: 0.75rem;
    background: #fff;
    box-shadow: 0 1rem 2.5rem rgba(15, 23, 42, 0.08);
}

.portal-document-viewer[data-document-contextmenu-protected="1"] .portal-document-flipbook-shell,
.portal-document-viewer[data-document-contextmenu-protected="1"] .portal-document-flipbook-shell *,
.portal-document-viewer[data-document-contextmenu-protected="1"] .portal-document-flipbook-stage,
.portal-document-viewer[data-document-contextmenu-protected="1"] .portal-document-flipbook,
.portal-document-viewer[data-document-contextmenu-protected="1"] .portal-document-flipbook-page,
.portal-document-viewer[data-document-contextmenu-protected="1"] .portal-document-flipbook-canvas,
.portal-document-viewer[data-document-contextmenu-protected="1"] .portal-document-canvas-viewer,
.portal-document-viewer[data-document-contextmenu-protected="1"] .portal-document-canvas-viewer * {
    -webkit-user-select: none;
    user-select: none;
    -webkit-user-drag: none;
}

.portal-document-flipbook-page-number {
    position: absolute;
    right: 1.35rem;
    bottom: 1.15rem;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: #5a6578;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    box-shadow: 0 0.35rem 0.8rem rgba(15, 23, 42, 0.08);
}

.portal-document-flipbook-loading {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    color: #44546b;
    font-weight: 700;
}

.portal-document-simple-viewer[hidden],
.portal-document-flipbook-shell[hidden],
.portal-document-viewer-toolbar[hidden],
.portal-document-viewer-alert[hidden],
.portal-document-flipbook-loading[hidden],
.portal-document-canvas-loading[hidden] {
    display: none !important;
}

.portal-document-canvas-viewer {
    min-height: 78vh;
    padding: clamp(0.75rem, 2vw, 1.25rem);
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 1.5rem;
    background: #eef2f7;
    overflow: auto;
}

.portal-document-canvas-loading {
    min-height: 12rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    color: #44546b;
    font-weight: 700;
}

.portal-document-canvas-pages {
    display: grid;
    gap: 1rem;
    justify-items: center;
}

.portal-document-canvas-page {
    width: auto;
    height: auto;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.portal-document-canvas-page .portal-document-flipbook-canvas {
    max-width: 100%;
    border-radius: 0.35rem;
    box-shadow: 0 1rem 2.5rem rgba(15, 23, 42, 0.14);
}

.portal-document-embed {
    width: 100%;
    min-height: 78vh;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 1.5rem;
    background: #f8fafc;
}

.portal-document-fallback {
    padding: 1rem 1.125rem;
    border: 1px dashed rgba(15, 23, 42, 0.2);
    border-radius: 1rem;
    color: #526073;
    background: rgba(248, 250, 252, 0.75);
}

.portal-main--full-bleed {
    overflow: hidden;
    margin-top: -1px;
}

.portal-body--full-bleed {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.portal-body--full-bleed .portal-main--full-bleed {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

.portal-body--full-bleed .portal-footer {
    margin-top: 0;
}

.portal-transparency-embed-page {
    width: 100%;
    flex: 0 0 auto;
}

.portal-transparency-embed-frame {
    display: block;
    width: 100%;
    height: clamp(42rem, 68vh, 56rem);
    min-height: clamp(42rem, 68vh, 56rem);
    border: 0;
    background: #fff;
}

@media (max-width: 991.98px) {
    .portal-document-embed {
        min-height: 70vh;
    }

    .portal-transparency-embed-page,
    .portal-transparency-embed-frame {
        height: clamp(34rem, 62vh, 48rem);
        min-height: clamp(34rem, 62vh, 48rem);
    }
}

@media (max-width: 575.98px) {
    .portal-document-viewer-actions {
        width: 100%;
    }

    .portal-document-viewer-actions .btn {
        flex: 1 1 auto;
    }

    .portal-document-embed {
        min-height: 62vh;
        border-radius: 1rem;
    }
}

@media (max-width: 991.98px) {
    .portal-document-viewer-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .portal-document-viewer-toolbar-actions {
        justify-content: flex-start;
    }

    .portal-document-flipbook-stage {
        min-height: 62vh;
    }

    .portal-document-viewer-meta-card--toolbar {
        width: 100%;
        min-width: 0;
    }

    .portal-document-embed-stage {
        margin-inline: 0;
    }
}

@media (min-width: 1200px) {
    .portal-document-embed-stage {
        margin-inline: -0.7rem;
    }
}

.portal-validation-result {
    display: grid;
    gap: 1rem;
}

.portal-protocol-panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.portal-protocol-panel-brand {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}

.portal-protocol-panel-seal {
    width: 68px;
    height: 68px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border: 1px solid rgba(16, 47, 83, 0.12);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(248, 251, 255, 0.98), rgba(255, 255, 255, 1));
    overflow: hidden;
}

.portal-home-news-secondary-icon {
    width: 2.7rem;
    height: 2.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    background: var(--portal-primary);
    color: #fff;
    box-shadow: 0 10px 22px rgba(15, 36, 58, 0.12);
}

.portal-home-news-secondary-copy {
    display: grid;
    gap: 0.22rem;
    min-width: 0;
}

.portal-home-news-secondary-kicker,
.portal-home-news-secondary-action {
    color: var(--portal-primary);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.portal-home-news-secondary-text {
    color: var(--portal-muted);
    font-size: 0.82rem;
    line-height: 1.4;
}

.portal-home-news-secondary-chevron {
    color: var(--portal-primary);
    align-self: center;
}

.portal-protocol-panel-seal img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 0.6rem;
}

.portal-protocol-panel-seal span {
    color: #17324d;
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.portal-validation-result__header {
    width: 100%;
    max-width: none;
    display: grid;
    gap: 0.35rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(16, 47, 83, 0.1);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(248, 251, 255, 0.96), rgba(255, 255, 255, 0.98));
}

.portal-document-embed-body {
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.portal-validation-result__headrow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.portal-validation-result__protocol {
    color: #17324d;
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.2;
}

.portal-validation-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.portal-validation-grid__item {
    min-width: 0;
    padding: 0.85rem 0.95rem;
    border: 1px solid rgba(16, 47, 83, 0.08);
    border-radius: 0.95rem;
    background: rgba(248, 251, 255, 0.72);
}

.portal-validation-grid__label {
    margin-bottom: 0.2rem;
    color: #526073;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.portal-validation-grid__value {
    color: #17324d;
    font-weight: 700;
    line-height: 1.45;
    word-break: break-word;
}

.portal-validation-copy-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.portal-validation-copy-grid__wide {
    grid-column: 1 / -1;
}

.protocol-hash {
    word-break: break-all;
}

.portal-info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.portal-info-grid > div {
    padding: 1rem 1.05rem;
    border: 1px solid rgba(16, 47, 83, 0.1);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(247, 250, 254, 0.92), rgba(255, 255, 255, 0.98));
    box-shadow: 0 14px 30px rgba(16, 47, 83, 0.06);
}

.portal-info-grid span {
    display: block;
    margin-bottom: 0.35rem;
    color: #5a6980;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.portal-info-grid strong {
    color: #102f53;
    font-size: 1rem;
    line-height: 1.4;
}

@media (max-width: 991.98px) {
    .portal-protocol-panel-header,
    .portal-protocol-panel-brand {
        align-items: flex-start;
    }

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

@media (max-width: 575.98px) {
    .portal-protocol-panel-brand {
        gap: 0.85rem;
    }

    .portal-protocol-panel-seal {
        width: 60px;
        height: 60px;
    }

    .portal-info-grid {
        grid-template-columns: 1fr;
    }
}

.portal-admin-schedule-builder {
    border-color: rgba(21, 48, 77, 0.12) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

.portal-admin-schedule-builder .form-check-input {
    cursor: pointer;
}

.portal-admin-schedule-preview {
    padding: 1rem 1.1rem;
    border: 1px dashed rgba(0, 86, 166, 0.24);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.78);
}

.portal-faq-intro {
    max-width: 70rem;
}

.portal-faq-shell {
    overflow: hidden;
}

.portal-faq-accordion {
    display: grid;
    gap: 1rem;
}

.portal-faq-item {
    overflow: hidden;
    border: 1px solid rgba(18, 52, 86, 0.12);
    border-radius: 1.15rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(246, 249, 252, 0.96) 100%);
    box-shadow: 0 14px 32px rgba(17, 42, 68, 0.06);
}

.portal-faq-item .accordion-button {
    padding: 1.2rem 1.35rem;
    background: transparent;
    color: #17324b;
    font-family: var(--portal-font-site);
    font-size: 1.03rem;
    font-weight: 700;
    box-shadow: none;
}

.portal-faq-item .accordion-button:not(.collapsed) {
    color: #17324b;
    background: rgba(232, 241, 250, 0.72);
}

.portal-faq-item .accordion-button:focus {
    box-shadow: inset 0 0 0 2px rgba(0, 86, 166, 0.16);
}

.portal-faq-item .accordion-button::after {
    transform-origin: center;
}

.portal-faq-item .accordion-body {
    padding: 1.25rem 1.35rem 1.35rem;
}

.portal-lai-hero .portal-info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-lai-subtitle {
    color: #41586f;
    font-size: 0.96rem;
    line-height: 1.65;
}

.portal-lai-side-panel {
    display: grid;
    gap: 0;
}

.portal-lai-contact-list {
    display: grid;
    gap: 0.85rem;
}

.portal-lai-contact-list .portal-contact-block {
    padding: 1rem 1.05rem;
}

.portal-lai-step-list {
    display: grid;
    gap: 0.95rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.portal-lai-step-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.9rem;
    align-items: start;
    padding: 1rem 1.05rem;
    border: 1px solid rgba(16, 47, 83, 0.1);
    border-radius: 1rem;
    background: rgba(248, 251, 255, 0.82);
}

.portal-lai-step-badge {
    width: 0.85rem;
    height: 0.85rem;
    margin-top: 0.38rem;
    border-radius: 50%;
    background: linear-gradient(180deg, var(--portal-primary), var(--portal-dark));
    box-shadow: 0 0 0 0.35rem rgba(0, 86, 166, 0.12);
}

.portal-lai-step-copy {
    color: #2f465b;
    line-height: 1.65;
}

.portal-lai-deadline-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.portal-lai-deadline-card {
    padding: 1rem 1.05rem;
    border: 1px solid rgba(16, 47, 83, 0.1);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(247, 250, 254, 0.92), rgba(255, 255, 255, 0.98));
    box-shadow: 0 14px 30px rgba(16, 47, 83, 0.05);
}

.portal-lai-deadline-card p {
    color: #4f6478;
    line-height: 1.62;
}

.portal-lai-legal-list {
    display: grid;
    gap: 0.95rem;
}

.portal-lai-legal-item {
    padding: 0.95rem 1rem;
    border: 1px solid rgba(16, 47, 83, 0.1);
    border-radius: 1rem;
    background: rgba(248, 251, 255, 0.85);
}

.portal-lai-legal-item strong {
    display: block;
    margin-bottom: 0.35rem;
    color: #16324f;
}

.portal-lai-legal-item p {
    color: #526073;
    line-height: 1.6;
}

.portal-lai-legal-item a {
    display: inline-block;
    margin-top: 0.6rem;
    color: var(--portal-primary);
    font-weight: 700;
    text-decoration: none;
}

.portal-lai-legal-item a:hover,
.portal-lai-legal-item a:focus-visible {
    text-decoration: underline;
}

@media (max-width: 991.98px) {
    .portal-lai-deadline-grid {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 575.98px) {
    .portal-lai-hero .portal-info-grid {
        grid-template-columns: 1fr;
    }

    .portal-lai-step-item {
        grid-template-columns: 1fr;
    }

    .portal-lai-step-badge {
        margin-top: 0;
    }

    .portal-home-central-banner-frame {
        aspect-ratio: 1920 / 300;
        min-height: clamp(72px, 18vw, 96px);
    }

    .portal-home-central-banner-image {
        height: 100%;
        object-fit: cover;
        object-position: center;
    }

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

    .portal-benefit-card {
        max-width: none;
    }

    .portal-floating-sidebar {
        right: 0.45rem;
        bottom: max(0.75rem, env(safe-area-inset-bottom));
        gap: 0.5rem;
    }

    .portal-floating-buttons {
        gap: 0.35rem;
    }

    .portal-floating-button {
        width: 2.7rem;
        height: 2.7rem;
        border-radius: 0.85rem;
    }

    .portal-vlibras-host .vw-plugin-wrapper {
        right: calc(0.45rem + 3.35rem) !important;
    }
}

.portal-protocol-lookup-card {
    position: relative;
    overflow: hidden;
}

.portal-protocol-lookup-card--compact {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.95rem 1rem 0.85rem;
}

.portal-protocol-lookup-card--compact .portal-home-section-head {
    margin-bottom: 0 !important;
}

.portal-protocol-lookup-card--compact .portal-section-title {
    display: grid;
    gap: 0.25rem;
    max-width: 32rem;
    margin: 0;
    text-align: center;
}

.portal-protocol-lookup-card--compact .portal-section-title h2 {
    font-size: 1.42rem;
}

.portal-protocol-lookup-card--compact .portal-protocol-lookup-form {
    --bs-gutter-x: 0.8rem;
    --bs-gutter-y: 0.5rem;
    margin-top: 0;
    max-width: 36rem;
    margin-left: auto;
    margin-right: auto;
}

.portal-protocol-lookup-card--compact .portal-protocol-lookup-form > [class*="col-"] {
    display: grid;
    align-content: start;
    min-width: 0;
}

.portal-protocol-lookup-card--compact .form-label {
    margin-bottom: 0.24rem;
    font-size: 0.88rem;
}

.portal-protocol-lookup-card--compact .form-control,
.portal-protocol-lookup-card--compact .btn {
    min-height: 2.45rem;
    font-size: 0.9rem;
    border-radius: 0.82rem;
}

.portal-protocol-lookup-card--compact .form-control {
    width: 100%;
    padding: 0.45rem 0.75rem;
}

.portal-protocol-lookup-card--compact .portal-protocol-lookup-form-action {
    align-content: end;
    min-width: 0;
}

.portal-protocol-lookup-card--compact .portal-protocol-lookup-form-action--compact {
    align-self: end;
}

.portal-protocol-lookup-card--compact .portal-protocol-lookup-form-button-row {
    justify-content: center;
    --bs-gutter-y: 0;
}

.portal-protocol-lookup-card--compact .btn {
    width: 100%;
    padding: 0.45rem 0.8rem;
}

@media (max-width: 1199.98px) {
    .portal-protocol-lookup-card--compact .portal-protocol-lookup-form-action {
        align-content: start;
    }

    .portal-protocol-lookup-card--compact .portal-protocol-lookup-form-action--compact {
        align-self: auto;
    }
}

@media (max-width: 991.98px) {
    .portal-protocol-lookup-card--compact .portal-section-title {
        max-width: none;
    }

    .portal-protocol-lookup-card--compact .portal-protocol-lookup-form-action {
        grid-column: 1 / -1;
    }
}

.portal-protocol-lookup-card::after {
    content: "";
    position: absolute;
    inset: auto -12% -68% auto;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(var(--portal-primary-rgb), 0.11), transparent 70%);
    pointer-events: none;
}

.portal-home-birthday-card {
    --portal-home-birthday-gap: 0;
    --portal-home-birthday-visible-items: 3;
    --portal-home-birthday-item-height: 3.15rem;
    position: relative;
    overflow: hidden;
    min-width: 0;
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;
    height: auto;
    min-height: 0;
}

.portal-home-birthday-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.035), transparent 72%);
    pointer-events: none;
}

.portal-home-birthday-card > * {
    position: relative;
}

.portal-home-birthday-card .portal-panel-heading {
    flex: 0 0 auto;
}

.portal-home-birthday-list {
    display: grid;
    gap: var(--portal-home-birthday-gap);
    flex: 1 1 auto;
    min-height: 0;
    max-height: calc(
        (var(--portal-home-birthday-item-height) * var(--portal-home-birthday-visible-items))
        + (var(--portal-home-birthday-gap) * (var(--portal-home-birthday-visible-items) - 1))
    );
    overflow-y: auto;
    padding-right: 0.2rem;
    align-content: start;
    scrollbar-width: thin;
    scrollbar-color: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.4) rgba(var(--portal-primary-rgb, 0, 86, 166), 0.08);
}

.portal-home-birthday-list::-webkit-scrollbar {
    width: 0.45rem;
}

.portal-home-birthday-list::-webkit-scrollbar-track {
    background: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.08);
    border-radius: 999px;
}

.portal-home-birthday-list::-webkit-scrollbar-thumb {
    background: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.36);
    border-radius: 999px;
}

.portal-home-birthday-list::-webkit-scrollbar-thumb:hover {
    background: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.52);
}

.portal-home-birthday-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.7rem;
    align-items: center;
    min-height: var(--portal-home-birthday-item-height);
    padding: 0.4rem 0.25rem;
    border: 0;
    border-bottom: 1px solid rgba(15, 23, 42, 0.09);
    border-radius: 0;
    background: transparent;
}

.portal-home-birthday-item:last-child {
    border-bottom: 0;
}

.portal-home-birthday-day {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.1rem;
    min-height: 2.1rem;
    padding: 0.25rem;
    border-radius: 999px;
    background: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.12);
    color: var(--portal-primary, #0056a6);
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1;
}

.portal-home-birthday-name {
    min-width: 0;
    color: #17324d;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.45;
}

.portal-home-birthday-empty {
    padding: 0.9rem 1rem;
    border: 1px dashed rgba(15, 23, 42, 0.16);
    border-radius: 1rem;
    color: #5f6f85;
    font-size: 0.94rem;
    line-height: 1.55;
    background: rgba(255, 255, 255, 0.72);
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

@media (max-width: 575.98px) {
    .portal-home-birthday-item {
        gap: 0.7rem;
        padding: 0.65rem 0.75rem;
    }

    .portal-home-birthday-name {
        font-size: 0.92rem;
    }
}

.portal-protocol-lookup-modal .modal-dialog {
    max-width: 1080px;
}

.portal-protocol-modal-panel {
    height: 100%;
    padding: 1.35rem;
    border: 1px solid rgba(16, 47, 83, 0.1);
    border-radius: 1.15rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 255, 0.98));
}

.portal-protocol-modal-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
    margin: 0;
}

.portal-protocol-modal-facts div {
    padding: 0.9rem 1rem;
    border-radius: 0.95rem;
    border: 1px solid rgba(16, 47, 83, 0.08);
    background: rgba(255, 255, 255, 0.84);
}

.portal-protocol-modal-facts dt {
    margin: 0 0 0.3rem 0;
    color: #6b7c90;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-protocol-modal-facts dd {
    margin: 0;
    color: #12324f;
    font-weight: 700;
}

.portal-protocol-history-list {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.portal-protocol-history-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.85rem;
    align-items: start;
}

.portal-protocol-history-dot {
    width: 0.9rem;
    height: 0.9rem;
    margin-top: 0.42rem;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--portal-primary), var(--portal-dark));
    box-shadow: 0 0 0 0.35rem rgba(var(--portal-primary-rgb), 0.12);
}

.portal-protocol-history-content {
    padding: 1rem 1.05rem;
    border-radius: 1rem;
    border: 1px solid rgba(16, 47, 83, 0.08);
    background: rgba(248, 251, 255, 0.85);
}

.portal-protocol-history-meta,
.portal-protocol-print__timeline-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 0.45rem;
    color: #5f7286;
    font-size: 0.84rem;
}

.portal-protocol-history-meta strong,
.portal-protocol-print__timeline-head strong {
    color: #12324f;
    font-size: 0.98rem;
}

.portal-protocol-history-text,
.portal-protocol-print__timeline-body {
    color: #33485d;
    line-height: 1.65;
}

.portal-protocol-history-footer,
.portal-protocol-print__timeline-foot {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-top: 0.7rem;
    color: #6b7c90;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.portal-protocol-print__timeline {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(16, 47, 83, 0.08);
}

.portal-protocol-print__timeline-list {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.portal-protocol-print__timeline-item {
    padding: 1rem 1.05rem;
    border-radius: 1rem;
    border: 1px solid rgba(16, 47, 83, 0.08);
    background: rgba(248, 251, 255, 0.85);
}

.portal-protocol-print {
    max-width: 1080px;
    margin: 0 auto;
    padding: 1.5rem;
}

.portal-protocol-print__header {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.portal-protocol-print__brand {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.portal-protocol-print__seal {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 1.2rem;
    background: rgba(var(--portal-primary-rgb), 0.08);
    border: 1px solid rgba(var(--portal-primary-rgb), 0.12);
    overflow: hidden;
    font-weight: 800;
    color: var(--portal-primary);
}

.portal-protocol-print__seal img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #fff;
}

.portal-protocol-print__brand-copy {
    max-width: 34rem;
}

.portal-protocol-print__eyebrow {
    display: inline-flex;
    margin-bottom: 0.45rem;
    color: #6f8195;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.portal-protocol-print__institution {
    display: block;
    color: #102f53;
    font-size: 1rem;
    font-weight: 700;
}

.portal-protocol-print__title {
    margin: 0.3rem 0 0.25rem;
    color: #102f53;
    font-size: 2rem;
    font-weight: 700;
}

.portal-protocol-print__subtitle {
    margin: 0;
    color: #5f7286;
    font-size: 0.98rem;
}

.portal-protocol-print__header-side {
    display: grid;
    gap: 0.75rem;
    min-width: 13rem;
    justify-items: end;
}

.portal-protocol-print__protocol-box {
    min-width: 100%;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(16, 47, 83, 0.1);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.96);
}

.portal-protocol-print__protocol-box span,
.portal-protocol-print__footer span,
.portal-protocol-print__validation-list dt {
    display: block;
    margin-bottom: 0.22rem;
    color: #6f8195;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-protocol-print__protocol-box strong,
.portal-protocol-print__footer strong,
.portal-protocol-print__validation-list dd {
    color: #102f53;
    font-weight: 700;
}

.portal-protocol-print__notice {
    margin-bottom: 1rem;
    padding: 0.95rem 1.15rem;
    border-radius: 1rem;
    border: 1px solid rgba(var(--portal-primary-rgb), 0.12);
    background: rgba(var(--portal-primary-rgb), 0.05);
}

.portal-protocol-print__notice p {
    margin: 0;
    color: #35506a;
}

.portal-protocol-print__sheet {
    padding: 1.35rem;
    border-radius: 1.3rem;
    border: 1px solid rgba(16, 47, 83, 0.1);
    background: #fff;
    box-shadow: 0 18px 38px rgba(15, 36, 58, 0.08);
}

.portal-protocol-print__sheet--empty {
    text-align: center;
}

.portal-protocol-print__sheet-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.8fr) minmax(18rem, 0.95fr);
    gap: 1.4rem;
}

.portal-protocol-print__main {
    min-width: 0;
}

.portal-protocol-print__aside {
    min-width: 0;
}

.portal-protocol-print__status-row {
    display: grid;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.portal-protocol-print__status-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 0.38rem 0.75rem;
    border-radius: 999px;
    background: rgba(var(--portal-primary-rgb), 0.12);
    color: var(--portal-primary);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.portal-protocol-print__status-badge--warning {
    background: rgba(204, 120, 0, 0.14);
    color: #9a6400;
}

.portal-protocol-print__doc-title {
    color: #102f53;
    font-size: 1.28rem;
    font-weight: 700;
}

.portal-protocol-print__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
    margin: 0;
}

.portal-protocol-print__fact {
    padding: 0.95rem 1rem;
    border-radius: 1rem;
    border: 1px solid rgba(16, 47, 83, 0.08);
    background: rgba(248, 251, 255, 0.72);
}

.portal-protocol-print__fact--wide {
    grid-column: 1 / -1;
}

.portal-protocol-print__fact dt {
    margin: 0 0 0.28rem 0;
    color: #6f8195;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-protocol-print__fact dd {
    margin: 0;
    color: #102f53;
    font-weight: 700;
    line-height: 1.6;
}

.portal-protocol-print__validation-card {
    position: sticky;
    top: 0;
    display: grid;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(16, 47, 83, 0.08);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(246, 250, 254, 0.98), rgba(255, 255, 255, 0.98));
}

.portal-protocol-print__validation-title {
    margin: 0;
    color: #102f53;
    font-size: 0.98rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.portal-print-qr {
    display: grid;
    gap: 0.75rem;
}

.portal-print-qr__canvas {
    display: grid;
    place-items: center;
    min-height: 12rem;
    padding: 0.75rem;
    border-radius: 1rem;
    border: 1px solid rgba(16, 47, 83, 0.08);
    background: #fff;
}

.portal-print-qr__canvas svg {
    width: 100%;
    height: auto;
    max-width: 8.5rem;
}

.portal-print-qr__copy {
    display: grid;
    gap: 0.35rem;
}

.portal-print-qr__label {
    color: #102f53;
    font-size: 0.92rem;
    font-weight: 700;
}

.portal-print-qr__caption,
.portal-print-qr__url-label {
    color: #6f8195;
    font-size: 0.8rem;
}

.portal-print-qr__url {
    word-break: break-word;
    color: var(--portal-primary);
    font-size: 0.78rem;
    text-decoration: none;
}

.portal-print-qr__url:hover,
.portal-print-qr__url:focus-visible {
    text-decoration: underline;
}

.portal-protocol-print__validation-list {
    display: grid;
    gap: 0.85rem;
    margin: 0;
}

.portal-protocol-print__validation-list div {
    padding-top: 0.75rem;
    border-top: 1px solid rgba(16, 47, 83, 0.08);
}

.portal-protocol-print__validation-list dd {
    margin: 0;
    word-break: break-word;
}

.portal-protocol-print__internal-only {
    display: grid;
    gap: 0.35rem;
    padding: 1rem;
    border-radius: 1rem;
    border: 1px dashed rgba(16, 47, 83, 0.16);
    background: rgba(248, 251, 255, 0.7);
}

.portal-protocol-print__internal-only strong {
    color: #102f53;
}

.portal-protocol-print__internal-only span {
    color: #5f7286;
}

.portal-protocol-print__footer {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(16, 47, 83, 0.08);
}

.portal-protocol-print__footer-note {
    grid-column: 1 / -1;
}

.portal-protocol-print__footer-card--note {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
    gap: 0.28rem;
}

.portal-protocol-print__footer-card--note span {
    margin-top: 0;
}

.portal-protocol-print__footer-card--note strong {
    font-size: 0.88rem;
    line-height: 1.5;
    word-break: normal;
    overflow-wrap: anywhere;
}

@media (max-width: 991.98px) {
    .portal-protocol-print__header,
    .portal-protocol-print__sheet-grid,
    .portal-protocol-print__footer,
    .portal-protocol-print__facts {
        grid-template-columns: 1fr;
    }

    .portal-protocol-print__header {
        display: grid;
    }

    .portal-protocol-print__header-side {
        justify-items: stretch;
    }

    .portal-protocol-print__footer-note {
        grid-column: auto;
    }

    .portal-protocol-print__footer-card--note {
        grid-template-columns: 1fr;
        gap: 0.28rem;
    }
}

@media print {
    @page {
        size: A4 portrait;
        margin: 12mm;
    }

    body {
        background: #fff !important;
    }

    .portal-protocol-print {
        max-width: none;
        padding: 0;
    }

    .portal-protocol-print__sheet {
        border: 1px solid rgba(16, 47, 83, 0.18);
        box-shadow: none;
        break-inside: avoid;
    }

    .btn,
    [data-protocol-print-trigger] {
        display: none !important;
    }
}

@media (max-width: 991.98px) {
    .portal-protocol-modal-facts {
        grid-template-columns: 1fr;
    }
}

.portal-year-groups {
    display: grid;
    gap: 1rem;
}

.portal-year-group {
    border: 1px solid rgba(20, 55, 90, 0.12);
    border-radius: 1rem;
    background: #fff;
    overflow: hidden;
}

.portal-year-group-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    cursor: pointer;
    list-style: none;
    background: linear-gradient(180deg, rgba(244, 248, 252, 0.95), rgba(236, 243, 249, 0.9));
    font-weight: 700;
    color: #12365a;
}

.portal-year-group-summary::-webkit-details-marker {
    display: none;
}

.portal-year-group-label {
    font-size: 1.05rem;
}

.portal-year-group-count {
    font-size: 0.82rem;
    font-weight: 700;
    color: #5b6d81;
}

.portal-year-group-body {
    padding: 1rem 1.25rem 1.25rem;
}

@media (max-width: 767.98px) {
    .portal-year-group-summary {
        align-items: flex-start;
        flex-direction: column;
    }
}

.portal-governance-board-minutes-table thead th:nth-child(2),
.portal-governance-board-minutes-table thead th:nth-child(3),
.portal-governance-board-minutes-table thead th:nth-child(4),
.portal-governance-board-minutes-table tbody td:nth-child(2),
.portal-governance-board-minutes-table tbody td:nth-child(3),
.portal-governance-board-minutes-table tbody td:nth-child(4),
.portal-governance-instance-minutes-table thead th:nth-child(2),
.portal-governance-instance-minutes-table thead th:nth-child(3),
.portal-governance-instance-minutes-table thead th:nth-child(4),
.portal-governance-instance-minutes-table tbody td:nth-child(2),
.portal-governance-instance-minutes-table tbody td:nth-child(3),
.portal-governance-instance-minutes-table tbody td:nth-child(4) {
    text-align: center;
}

/* Institutional density pass: tighter public surfaces while preserving existing structure. */
.portal-body .portal-content-card,
.portal-body .portal-side-panel,
.portal-body .portal-contact-panel,
.portal-body .portal-feature-card,
.portal-body .portal-public-card,
.portal-body .portal-publication-card,
.portal-body .portal-home-highlight {
    border-radius: 0.85rem;
    box-shadow: 0 8px 22px rgba(15, 36, 58, 0.055);
}

.portal-body .portal-content-card,
.portal-body .portal-side-panel,
.portal-body .portal-contact-panel,
.portal-body .portal-feature-card,
.portal-body .portal-public-card,
.portal-body .portal-home-highlight {
    padding: 1rem;
}

.portal-simulator-shell {
    display: grid;
    gap: 1rem;
}

.portal-simulator-privacy {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(var(--portal-primary-rgb), 0.16);
    border-radius: 0.75rem;
    background: rgba(var(--portal-primary-rgb), 0.06);
    color: #20364d;
    font-size: 0.92rem;
    line-height: 1.35;
}

.portal-simulator-privacy i {
    color: var(--portal-primary);
    font-size: 1.25rem;
}

.portal-simulator-tabs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
}

.portal-simulator-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 3.1rem;
    border: 1px solid rgba(21, 48, 77, 0.13);
    border-radius: 0.75rem;
    background: #fff;
    color: #1f3448;
    font-weight: 700;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, color 0.18s ease;
}

.portal-simulator-tab:hover,
.portal-simulator-tab.is-active {
    border-color: rgba(var(--portal-primary-rgb), 0.45);
    color: var(--portal-primary);
    box-shadow: 0 12px 28px rgba(15, 36, 58, 0.08);
}

.portal-simulator-form .form-label {
    font-weight: 700;
    color: #233a52;
}

.portal-simulator-panel {
    display: none;
}

.portal-simulator-panel.is-active {
    display: block;
}

.portal-simulator-result-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.portal-simulator-result-card {
    display: grid;
    gap: 1rem;
    min-height: 100%;
    padding: 1rem;
    border: 1px solid rgba(21, 48, 77, 0.12);
    border-top: 4px solid rgba(var(--portal-accent-rgb), 0.62);
    border-radius: 0.85rem;
    background: #fff;
    box-shadow: 0 12px 26px rgba(15, 36, 58, 0.06);
}

.portal-simulator-result-card.is-complete {
    border-top-color: #198754;
}

.portal-simulator-result-header,
.portal-simulator-result-date {
    display: grid;
    gap: 0.25rem;
}

.portal-simulator-result-header span,
.portal-simulator-result-date span {
    color: var(--portal-muted);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
}

.portal-simulator-result-header strong {
    color: #18324b;
    font-size: 1.12rem;
}

.portal-simulator-result-date strong {
    color: var(--portal-primary);
    font-size: 1.35rem;
}

.portal-simulator-checklist {
    display: grid;
    gap: 0.5rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.portal-simulator-checklist li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.62rem 0.72rem;
    border-radius: 0.7rem;
    background: #f6f8fb;
    color: #253a50;
}

.portal-simulator-checklist li strong {
    text-align: right;
    white-space: nowrap;
    line-height: 1;
}

.portal-simulator-checklist li.is-ok {
    background: rgba(25, 135, 84, 0.1);
    color: #145c3b;
}

.portal-simulator-checklist li.is-pending {
    background: rgba(var(--portal-accent-rgb), 0.12);
    color: #6b4a05;
}

.portal-simulator-period-list {
    display: grid;
    gap: 0.5rem;
}

.portal-simulator-empty,
.portal-simulator-period {
    padding: 0.72rem 0.8rem;
    border: 1px solid rgba(21, 48, 77, 0.1);
    border-radius: 0.5rem;
    background: #f8fafc;
    color: var(--portal-muted);
}

.portal-simulator-period {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 0.7rem;
    color: #24384d;
}

.portal-simulator-period strong {
    color: var(--portal-primary);
}

.portal-simulator-period button {
    width: 2rem;
    height: 2rem;
    border: 1px solid rgba(220, 53, 69, 0.18);
    border-radius: 50%;
    background: #fff;
    color: #b02a37;
}

@media (max-width: 991.98px) {
    .portal-simulator-result-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .portal-simulator-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-simulator-tab {
        min-height: 2.85rem;
    }

    .portal-simulator-period {
        grid-template-columns: 1fr auto;
    }

    .portal-simulator-period strong {
        grid-column: 1 / -1;
    }
}

.portal-body .portal-panel-heading,
.portal-body .portal-section-heading,
.portal-body .portal-section-title {
    margin-bottom: 0.65rem;
}

.portal-body .portal-section-heading h1,
.portal-body .portal-section-heading h2,
.portal-body .portal-panel-heading h1,
.portal-body .portal-panel-heading h2,
.portal-body .portal-content-card h1,
.portal-body .portal-content-card .h1,
.portal-body .portal-content-card .h2 {
    line-height: 1.12;
}

.portal-body .portal-kicker {
    margin-bottom: 0.35rem;
    padding: 0.2rem 0.48rem;
    font-size: 0.66rem;
}

.portal-body .portal-publication-card {
    gap: 0.28rem;
    padding: 0.9rem;
}

.portal-body .portal-publication-card strong {
    font-size: 0.92rem;
    line-height: 1.25;
}

.portal-body .portal-publication-card span,
.portal-body .portal-publication-card small {
    font-size: 0.78rem;
    line-height: 1.28;
}

.portal-body .portal-home-carousel-item,
.portal-body .portal-home-carousel-media {
    min-height: clamp(24rem, 54vh, 32rem);
    height: clamp(24rem, 54vh, 32rem);
}

.portal-body .portal-home-highlight-body {
    padding: 1rem;
}

.portal-body .portal-home-highlight-media img {
    height: 220px;
}

.portal-body .portal-home-news-sublist {
    gap: 0.58rem;
    margin-top: 0.7rem;
}

.portal-body .portal-home-news-list-row {
    gap: 0.7rem;
    padding: 0.56rem 0;
}

.portal-body .portal-home-news-list-row p {
    font-size: 0.82rem;
    line-height: 1.35;
}

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

.portal-body .btn {
    border-radius: 0.55rem;
}

@media (max-width: 767.98px) {
    .portal-validation-grid,
    .portal-validation-copy-grid {
        grid-template-columns: 1fr;
    }

    .portal-validation-copy-grid__wide {
        grid-column: auto;
    }

    .portal-body .portal-content-card,
    .portal-body .portal-side-panel,
    .portal-body .portal-contact-panel,
    .portal-body .portal-feature-card,
    .portal-body .portal-public-card,
    .portal-body .portal-home-highlight {
        padding: 0.85rem;
    }

    .portal-body .portal-home-carousel-item,
    .portal-body .portal-home-carousel-media {
        min-height: clamp(20rem, 58vh, 28rem);
        height: clamp(20rem, 58vh, 28rem);
    }

    .portal-side-link,
    .portal-news-list-item {
        flex-direction: column;
        gap: 0.5rem;
    }
}

/* Final enforced internal sidebar readability */

.portal-official-validation {
    position: relative;
    overflow: hidden;
    display: grid;
    gap: 1.5rem;
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.12);
    background:
        radial-gradient(circle at top right, rgba(var(--portal-official-primary-rgb), 0.12), transparent 32%),
        linear-gradient(180deg, rgba(var(--portal-official-primary-rgb), 0.05), rgba(255, 255, 255, 0.98) 28%);
}

.portal-official-validation__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.9fr);
    gap: 1.5rem;
    align-items: stretch;
}

.portal-official-validation__hero-main,
.portal-official-validation__hero-side,
.portal-official-validation__result-card,
.portal-official-validation__info-strip {
    position: relative;
    z-index: 1;
}

.portal-official-validation__hero-main {
    display: grid;
    gap: 1rem;
}

.portal-official-validation__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.85rem;
    width: fit-content;
    padding: 0.5rem 0.8rem;
    border-radius: 999px;
    background: rgba(var(--portal-official-primary-rgb), 0.08);
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.14);
    color: var(--portal-official-primary);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-official-validation__dm-badge {
    width: 1.8rem;
    height: 1.8rem;
    object-fit: contain;
}

.portal-official-validation__title {
    margin: 0;
    color: var(--portal-official-dark);
    font-size: clamp(2rem, 3.3vw, 2.9rem);
    line-height: 1.02;
    letter-spacing: -0.03em;
}

.portal-official-validation__lead {
    max-width: 52rem;
    margin: 0;
    color: #42566f;
    font-size: 1.02rem;
    line-height: 1.7;
}

.portal-official-validation__trust-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.9rem;
}

.portal-official-validation__trust-card,
.portal-official-validation__meta-card,
.portal-official-validation__official-note {
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.12);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 18px 36px rgba(15, 36, 58, 0.06);
}

.portal-official-validation__trust-card {
    display: grid;
    gap: 0.4rem;
    padding: 1rem 1.05rem;
}

.portal-official-validation__trust-card strong,
.portal-official-validation__meta-card strong,
.portal-official-validation__official-note strong {
    color: var(--portal-official-dark);
}

.portal-official-validation__trust-card span,
.portal-official-validation__official-note span,
.portal-official-validation__meta-card span {
    color: #5d7187;
    line-height: 1.5;
}

.portal-official-validation__hero-side {
    display: grid;
    gap: 1rem;
    align-content: start;
}

.portal-official-validation__dm-lockup {
    display: grid;
    place-items: center;
    min-height: 13.5rem;
    padding: 1.4rem;
    border-radius: 1.25rem;
    background:
        linear-gradient(155deg, rgba(var(--portal-official-primary-rgb), 0.08), rgba(var(--portal-official-primary-rgb), 0.02)),
        #ffffff;
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.16);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.portal-official-validation__dm-logo {
    width: min(100%, 250px);
    max-height: 84px;
    object-fit: contain;
}

.portal-official-validation__official-note {
    display: grid;
    gap: 0.4rem;
    padding: 1rem 1.1rem;
}

.portal-official-validation__form {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.2fr) auto;
    gap: 1rem;
    align-items: end;
    padding: 1.1rem;
    border-radius: 1.1rem;
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.14);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 16px 30px rgba(15, 36, 58, 0.05);
}

.portal-official-validation__form .form-label {
    margin-bottom: 0.45rem;
    color: var(--portal-official-dark);
    font-weight: 700;
}

.portal-official-validation__form .form-control {
    min-height: 3.45rem;
    border-radius: 0.5rem;
    border-color: rgba(var(--portal-official-primary-rgb), 0.18);
}

.portal-official-validation__form .form-control:focus {
    border-color: rgba(var(--portal-official-primary-rgb), 0.42);
    box-shadow: 0 0 0 0.2rem rgba(var(--portal-official-primary-rgb), 0.12);
}

.portal-official-validation__form-actions {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    justify-content: flex-end;
    min-height: 3.45rem;
}

.portal-official-validation__form-actions .btn {
    min-width: 12rem;
}

.portal-official-validation__result-card {
    display: grid;
    gap: 1.35rem;
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.14);
    background:
        radial-gradient(circle at top right, rgba(var(--portal-official-primary-rgb), 0.09), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(var(--portal-official-primary-rgb), 0.025));
}

.portal-official-validation__result-card--empty {
    gap: 0.8rem;
    border-color: rgba(180, 140, 16, 0.22);
    background: linear-gradient(180deg, rgba(255, 250, 233, 0.88), #fff);
}

.portal-official-validation__result-head {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(250px, 0.7fr);
    gap: 1rem;
    align-items: start;
}

.portal-official-validation__result-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 0.42rem 0.78rem;
    border-radius: 999px;
    background: rgba(var(--portal-official-accent-rgb), 0.11);
    color: var(--portal-official-accent);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-official-validation__result-badge--warning {
    background: rgba(180, 140, 16, 0.12);
    color: #8c6a00;
}

.portal-official-validation__result-title {
    margin: 0.8rem 0 0.55rem;
    color: var(--portal-official-dark);
    font-size: clamp(1.55rem, 2.5vw, 2.15rem);
    line-height: 1.1;
}

.portal-official-validation__result-copy {
    max-width: 56rem;
    margin: 0;
    color: #495d72;
    line-height: 1.68;
}

.portal-official-validation__entity-pill {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 0.95rem 1rem;
    border-radius: 1rem;
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.12);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 14px 28px rgba(15, 36, 58, 0.05);
}

.portal-official-validation__entity-pill img {
    width: 64px;
    height: 64px;
    object-fit: contain;
    padding: 0.45rem;
    border-radius: 1rem;
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.14);
    background: #fff;
    flex: 0 0 auto;
}

.portal-official-validation__entity-pill span {
    display: block;
    margin-bottom: 0.15rem;
    color: #698096;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.portal-official-validation__entity-pill strong {
    color: var(--portal-official-dark);
    font-size: 1rem;
    line-height: 1.35;
}

.portal-official-validation__meta-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.9rem;
}

.portal-official-validation__meta-card {
    display: grid;
    gap: 0.42rem;
    padding: 1rem;
    min-height: 100%;
}

.portal-official-validation__meta-card span {
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.portal-official-validation__meta-card strong {
    font-size: 1rem;
    line-height: 1.45;
    word-break: break-word;
}

.portal-official-validation__result-footer {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) 220px;
    gap: 1rem;
    align-items: start;
}

.portal-official-validation__result-footer-copy h3,
.portal-official-validation__info-grid h3 {
    margin: 0 0 0.5rem;
    color: var(--portal-official-dark);
    font-size: 1rem;
}

.portal-official-validation__result-footer-copy a {
    display: inline-block;
    margin-bottom: 0.7rem;
    color: var(--portal-official-primary);
    font-weight: 700;
    word-break: break-all;
}

.portal-official-validation__result-footer-copy p,
.portal-official-validation__info-grid p {
    margin: 0;
    color: #5c7085;
    line-height: 1.65;
}

.portal-official-validation__qr-shell {
    display: grid;
    gap: 0.8rem;
    justify-items: center;
    padding: 1rem;
    border-radius: 1rem;
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.12);
    background: rgba(255, 255, 255, 0.94);
}

.portal-official-validation__qr-shell .portal-qrcode {
    margin: 0;
}

.portal-official-validation__qr-shell .portal-qrcode__frame {
    box-shadow: none;
    border-color: rgba(var(--portal-official-primary-rgb), 0.14);
}

.portal-official-validation__qr-shell .btn {
    width: 100%;
}

.portal-official-validation__info-strip {
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.12);
    background: rgba(255, 255, 255, 0.95);
}

.portal-official-validation__info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.portal-official-validation__info-grid article {
    padding: 1rem;
    border-radius: 0.95rem;
    background: rgba(var(--portal-official-primary-rgb), 0.035);
}

.portal-official-validation-panel {
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.12);
    background:
        linear-gradient(180deg, rgba(var(--portal-official-primary-rgb), 0.04), rgba(255, 255, 255, 0.98) 16%),
        #fff;
}

.portal-official-validation-panel__header {
    align-items: flex-start;
    gap: 1rem;
}

.portal-official-validation-panel__seal {
    width: 72px;
    height: 72px;
    border-radius: 1rem;
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.14);
    background: rgba(var(--portal-official-primary-rgb), 0.05);
}

.portal-official-validation-panel__seal img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 0.65rem;
}

.portal-official-validation-panel__header-side {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.75rem;
    margin-left: auto;
}

.portal-official-validation-panel__dm-card {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 48px;
    padding: 0.75rem 0.9rem;
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.12);
    border-radius: 0.5rem;
    background: rgba(255, 255, 255, 0.92);
    color: #506379;
    font-weight: 700;
}

.portal-official-validation-panel__dm-card img {
    width: 92px;
    height: auto;
    object-fit: contain;
}

.portal-official-validation-panel__notice {
    display: grid;
    gap: 0.25rem;
    padding: 0.95rem 1rem;
    margin-top: 1rem;
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.1);
    border-radius: 0.95rem;
    background: rgba(var(--portal-official-primary-rgb), 0.045);
}

.portal-official-validation-panel__notice strong {
    color: var(--portal-official-dark);
    font-size: 0.95rem;
}

.portal-official-validation-panel__notice span {
    color: #5a6f84;
    line-height: 1.5;
}

.portal-official-validation-panel__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    justify-content: flex-end;
    min-height: 58px;
}

.portal-official-validation-panel__actions .btn {
    min-width: 10rem;
}

.portal-official-validation-panel__result {
    gap: 1.25rem;
}

.portal-official-validation-panel__summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 0.9rem;
}

.portal-official-validation-panel__summary-item {
    padding: 0.85rem 0.95rem;
    border: 1px solid rgba(16, 47, 83, 0.08);
    border-radius: 0.95rem;
    background: rgba(248, 251, 255, 0.72);
}

.portal-official-validation-panel__summary-item span {
    display: block;
    margin-bottom: 0.2rem;
    color: #526073;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.portal-official-validation-panel__summary-item strong {
    color: #17324d;
    font-weight: 700;
    line-height: 1.45;
}

.portal-official-validation-panel__content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(270px, 0.82fr);
    gap: 1rem;
    align-items: start;
}

.portal-official-validation-panel__aside {
    display: grid;
    gap: 0.85rem;
}

.portal-official-validation-panel__entity-card,
.portal-official-validation-panel__qr-card {
    display: grid;
    gap: 0.6rem;
    padding: 1rem;
    border: 1px solid rgba(16, 47, 83, 0.08);
    border-radius: 0.95rem;
    background: rgba(248, 251, 255, 0.8);
}

.portal-official-validation-panel__entity-card img {
    width: 84px;
    height: 84px;
    object-fit: contain;
    padding: 0.55rem;
    border-radius: 1rem;
    border: 1px solid rgba(var(--portal-official-primary-rgb), 0.14);
    background: #fff;
}

.portal-official-validation-panel__entity-card span,
.portal-official-validation-panel__qr-copy span {
    color: #5a6f84;
    line-height: 1.5;
}

.portal-official-validation-panel__entity-card strong,
.portal-official-validation-panel__qr-copy strong {
    color: var(--portal-official-dark);
}

.portal-official-validation-panel__qr-card .portal-qrcode {
    margin: 0;
}

.portal-official-validation-panel__qr-card .portal-qrcode__frame {
    box-shadow: none;
    border-color: rgba(var(--portal-official-primary-rgb), 0.14);
}

@media (max-width: 1199.98px) {
    .portal-official-validation-panel__content-grid,
    .portal-official-validation-panel__summary,
    .portal-official-validation__hero,
    .portal-official-validation__result-head,
    .portal-official-validation__result-footer {
        grid-template-columns: 1fr;
    }

    .portal-official-validation__hero-side {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .portal-official-validation__meta-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .portal-official-validation-panel__header {
        flex-direction: column;
    }

    .portal-official-validation-panel__header-side,
    .portal-official-validation-panel__actions {
        justify-content: flex-start;
        margin-left: 0;
    }

    .portal-official-validation-panel__actions .btn {
        min-width: 0;
    }

    .portal-official-validation__trust-grid,
    .portal-official-validation__info-grid {
        grid-template-columns: 1fr;
    }

    .portal-official-validation__form {
        grid-template-columns: 1fr;
    }

    .portal-official-validation__form-actions {
        justify-content: stretch;
        flex-wrap: wrap;
    }

    .portal-official-validation__form-actions .btn {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 767.98px) {
    .portal-official-validation-panel__seal {
        width: 64px;
        height: 64px;
    }

    .portal-official-validation__title {
        font-size: 1.8rem;
    }

    .portal-official-validation__hero-side {
        grid-template-columns: 1fr;
    }

    .portal-official-validation__meta-grid {
        grid-template-columns: 1fr;
    }

    .portal-official-validation__entity-pill {
        align-items: flex-start;
    }
}
/* Public header Pro-Gestao certification layout. */
.portal-brand-column {
    justify-content: flex-start;
}

.portal-brand {
    --portal-brand-item-gap: clamp(0.85rem, 1.35vw, 1.25rem);
    width: 100%;
    justify-content: flex-start;
    gap: var(--portal-brand-item-gap);
    max-width: 100%;
}

.portal-brand-logo {
    flex: 0 0 clamp(8.5rem, 13vw, 12rem);
    width: clamp(8.5rem, 13vw, 12rem);
    max-width: 12rem;
    min-width: 8.5rem;
    min-height: 5.4rem;
    justify-content: center;
}

.portal-brand-logo img {
    width: auto;
    max-width: 100%;
    max-height: 6.2rem;
    object-position: center;
}

.portal-brand-certification {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 clamp(6rem, 8.5vw, 8.25rem);
    width: clamp(6rem, 8.5vw, 8.25rem);
    min-width: 6rem;
    max-width: 8.25rem;
    padding: 0;
}

.portal-brand-certification img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 2.55rem;
    object-fit: contain;
    object-position: center;
}

.portal-brand-copy {
    flex: 1 1 24rem;
    min-width: 14rem;
    max-width: 44rem;
    margin-left: 0;
}

.portal-brand-name {
    font-size: clamp(1.34rem, 1.72vw, 1.9rem);
    font-weight: 800;
    letter-spacing: 0;
}

@media (max-width: 1199.98px) {
    .portal-brand {
        --portal-brand-item-gap: 0.9rem;
    }

    .portal-brand-logo {
        flex-basis: 8.75rem;
        width: 8.75rem;
        min-width: 7.5rem;
    }

    .portal-brand-certification {
        flex-basis: 7rem;
        width: 7rem;
        min-width: 6rem;
    }

    .portal-brand-copy {
        min-width: 12rem;
    }
}

@media (max-width: 767.98px) {
    .portal-brand {
        flex-direction: column;
        align-items: center;
        gap: 0.75rem;
    }

    .portal-brand-logo {
        width: min(100%, 18rem);
        max-width: 18rem;
        min-width: 0;
    }

    .portal-brand-certification {
        width: min(100%, 8.5rem);
        max-width: 8.5rem;
        min-width: 0;
    }

    .portal-brand-certification img {
        max-height: 2.45rem;
    }

    .portal-brand-copy {
        min-width: 0;
        max-width: 100%;
    }
}

@media (max-width: 767.98px) {
    .portal-utility-meta-link {
        width: auto;
        justify-content: flex-start;
        align-items: center;
        gap: 0.35rem;
        padding: 0;
    }

    .portal-utility-meta-value {
        font-size: 0.82rem;
        text-align: left;
    }
}

/* Home layout A: institutional news composition */
.portal-home-layout-a .portal-home-news-panel {
    gap: 1.2rem;
}

.portal-home-layout-a .portal-home-news-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    text-align: left;
}

.portal-home-layout-a .portal-home-news-heading > div {
    display: grid;
    gap: 0.45rem;
}

.portal-home-layout-a .portal-home-news-heading .portal-kicker {
    margin: 0;
}

.portal-home-layout-a .portal-home-news-heading .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    flex: 0 0 auto;
}

.portal-home-layout-a .portal-home-news-carousel-shell.has-supplementary .portal-home-news-secondary-grid {
    height: 100%;
    grid-auto-rows: minmax(0, 1fr);
    align-content: stretch;
}

.portal-home-layout-a .portal-home-news-institutional-card {
    display: grid;
    grid-template-rows: minmax(8.5rem, 46%) minmax(0, 1fr);
    min-width: 0;
    height: 100%;
    overflow: hidden;
    border: 1px solid rgba(21, 48, 77, 0.14);
    border-radius: 1.1rem;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 12px 26px rgba(15, 36, 58, 0.07);
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.portal-home-layout-a .portal-home-news-institutional-card:hover,
.portal-home-layout-a .portal-home-news-institutional-card:focus-visible {
    border-color: rgba(var(--portal-primary-rgb, 0, 86, 166), 0.38);
    transform: translateY(-2px);
    box-shadow: 0 18px 32px rgba(15, 36, 58, 0.11);
}

.portal-home-layout-a .portal-home-news-institutional-card:focus-visible {
    outline: 2px solid rgba(var(--portal-primary-rgb, 0, 86, 166), 0.35);
    outline-offset: 3px;
}

.portal-home-layout-a .portal-home-news-institutional-media {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 0;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(var(--portal-primary-rgb, 0, 86, 166), 0.12), rgba(var(--portal-dark-rgb, 22, 50, 79), 0.2)),
        rgb(var(--portal-dark-rgb, 22, 50, 79));
    color: #fff;
}

.portal-home-layout-a .portal-home-news-institutional-card.has-image .portal-home-news-institutional-media::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--portal-card-media-bg);
    background-position: center;
    background-size: cover;
    transition: transform 0.35s ease;
}

.portal-home-layout-a .portal-home-news-institutional-card:hover .portal-home-news-institutional-media::before,
.portal-home-layout-a .portal-home-news-institutional-card:focus-visible .portal-home-news-institutional-media::before {
    transform: scale(1.035);
}

.portal-home-layout-a .portal-home-news-institutional-media i {
    font-size: 2rem;
}

.portal-home-layout-a .portal-home-news-institutional-body {
    display: flex;
    flex-direction: column;
    gap: 0.62rem;
    min-width: 0;
    padding: 1rem 1.05rem;
    text-align: left;
}

.portal-home-layout-a .portal-home-news-institutional-body .portal-home-news-secondary-title {
    font-size: 1.05rem;
    line-height: 1.34;
    -webkit-line-clamp: 3;
}

.portal-home-layout-a .portal-home-news-institutional-summary {
    color: var(--portal-muted);
    font-size: 0.86rem;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.portal-home-layout-a .portal-home-news-institutional-body .portal-home-news-secondary-action {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: auto;
}

.portal-home-layout-a .portal-home-news-secondary-grid.items-2 .portal-home-news-institutional-card,
.portal-home-layout-a .portal-home-news-secondary-grid.items-3 .portal-home-news-institutional-card {
    grid-template-columns: minmax(6rem, 34%) minmax(0, 1fr);
    grid-template-rows: 1fr;
}

.portal-home-layout-a .portal-home-news-secondary-grid.items-2 .portal-home-news-institutional-summary,
.portal-home-layout-a .portal-home-news-secondary-grid.items-3 .portal-home-news-institutional-summary {
    display: none;
}

.portal-home-layout-a .portal-home-editorial-side {
    align-items: stretch;
    height: 100% !important;
}

.portal-home-layout-a .portal-home-birthday-card {
    --portal-home-birthday-visible-items: 4;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    flex: 1 1 auto;
}

.portal-home-layout-a .portal-home-birthday-list {
    width: 100%;
    max-height: calc(
        (var(--portal-home-birthday-item-height) * var(--portal-home-birthday-visible-items))
        + (var(--portal-home-birthday-gap) * (var(--portal-home-birthday-visible-items) - 1))
    );
    overflow-y: auto;
}

@media (max-width: 991.98px) {
    .portal-home-layout-a .portal-home-news-secondary-grid.items-1 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .portal-home-layout-a .portal-home-news-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .portal-home-layout-a .portal-home-news-heading .btn {
        justify-content: center;
        width: 100%;
    }

    .portal-home-layout-a .portal-home-news-institutional-card,
    .portal-home-layout-a .portal-home-news-secondary-grid.items-2 .portal-home-news-institutional-card,
    .portal-home-layout-a .portal-home-news-secondary-grid.items-3 .portal-home-news-institutional-card {
        grid-template-columns: 1fr;
        grid-template-rows: minmax(10rem, 44vw) auto;
    }
}

.portal-brand-cnpj { color: var(--portal-brand-cnpj, var(--portal-brand-address, var(--portal-brand-text, var(--portal-muted)))); }
