/* ==========================================================================
   SYSTÈME VISUEL TRANSVERSAL — CSLQNA
   Cette couche modernise toutes les pages qui utilisent layout.html sans
   modifier leurs données, leurs formulaires, leurs routes ou leurs actions.
   ========================================================================== */

:root {
    --brand-red: #ed1c24;
    --brand-blue: #2e3192;
    --brand-green: #00a651;
    --brand-yellow: #fff200;
    --brand-light-blue: #1e77bc;
    --brand-black: #000000;
    --visual-navy-950: #090a20;
    --visual-navy-900: #17194a;
    --visual-navy-800: #242773;
    --visual-blue-700: var(--brand-blue);
    --visual-blue-600: var(--brand-light-blue);
    --visual-blue-500: #4b91c8;
    --visual-blue-100: #e8f2f8;
    --visual-blue-50: #f4f8fb;
    --visual-gold-500: #b8ae00;
    --visual-gold-300: #fff766;
    --visual-green-700: #007c3d;
    --visual-red-700: #b5151b;
    --visual-cyan-700: #155a8d;
    --visual-ink: #17182f;
    --visual-muted: #5b5c70;
    --visual-line: rgba(46, 49, 146, 0.14);
    --visual-line-strong: rgba(46, 49, 146, 0.24);
    --visual-surface: rgba(255, 255, 255, 0.97);
    --visual-surface-soft: #f6f9fc;
    --visual-radius-sm: 10px;
    --visual-radius-md: 16px;
    --visual-radius-lg: 22px;
    --visual-radius-xl: 30px;
    --visual-shadow-sm: 0 6px 18px rgba(23, 25, 74, 0.08);
    --visual-shadow-md: 0 14px 34px rgba(23, 25, 74, 0.12);
    --visual-shadow-lg: 0 24px 60px rgba(23, 25, 74, 0.16);
    --visual-focus: 0 0 0 0.24rem rgba(30, 119, 188, 0.24);
}

/* Foundations ------------------------------------------------------------ */

.site-app {
    color: var(--visual-ink);
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 100vh;
    background:
        radial-gradient(circle at 8% 2%, rgba(255, 255, 255, 0.98) 0, rgba(255, 255, 255, 0) 26rem),
        radial-gradient(circle at 92% 22%, rgba(30, 119, 188, 0.10) 0, rgba(30, 119, 188, 0) 30rem),
        linear-gradient(145deg, #f8f9fc 0%, #edf1f8 52%, #e4e9f4 100%);
    background-attachment: fixed;
}

.site-app .site-main {
    width: min(100% - 1.5rem, 1320px);
    padding-top: 0.5rem;
}

.site-app .site-main > .container,
.site-app .site-main > .container-fluid {
    width: 100%;
}

.site-app p,
.site-app li,
.site-app dd {
    text-wrap: pretty;
}

.site-app:not(.congress-page):not(.congress-archive-page) h1,
.site-app:not(.congress-page):not(.congress-archive-page) h2,
.site-app:not(.congress-page):not(.congress-archive-page) h3,
.site-app:not(.congress-page):not(.congress-archive-page) h4,
.site-app:not(.congress-page):not(.congress-archive-page) h5,
.site-app:not(.congress-page):not(.congress-archive-page) h6 {
    color: var(--visual-navy-900);
    letter-spacing: -0.018em;
}

.site-app:not(.congress-page):not(.congress-archive-page) h1 {
    font-size: clamp(2rem, 4vw, 2.75rem);
    line-height: 1.08;
}

.site-app:not(.congress-page):not(.congress-archive-page) h2 {
    line-height: 1.16;
}

.site-app:not(.congress-page):not(.congress-archive-page) .lead {
    color: #47586d;
    font-size: clamp(1.05rem, 1.8vw, 1.2rem);
    line-height: 1.65;
}

.site-app .text-muted {
    color: var(--visual-muted) !important;
}

.site-app a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item) {
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.18em;
}

.site-app hr {
    height: 1px;
    border: 0;
    background: linear-gradient(90deg, transparent, var(--visual-line-strong), transparent);
    opacity: 1;
}

.site-app :focus-visible {
    outline: 3px solid rgba(30, 119, 188, 0.48);
    outline-offset: 3px;
}

/* Content must be readable immediately; decorative entrance animations must
   never leave a page washed out while scripts or network requests finish. */
.site-app .fade-in,
.site-app .will-animate {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
}

/* Navigation and identity ------------------------------------------------ */

.site-app .navbar {
    min-height: 68px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    background:
        linear-gradient(110deg, rgba(255, 255, 255, 0.06), transparent 35%),
        linear-gradient(135deg, var(--visual-navy-800) 0%, var(--visual-navy-900) 58%, var(--visual-navy-950) 100%) !important;
    box-shadow: 0 10px 30px rgba(8, 26, 45, 0.18) !important;
}

.site-app .navbar .container {
    max-width: 1380px;
}

.site-app .navbar .nav-link {
    min-height: 44px;
    padding: 0.58rem 0.68rem;
    border: 1px solid transparent;
    border-radius: 12px;
    color: rgba(255, 255, 255, 0.86);
    line-height: 1.2;
}

.site-app .navbar .nav-link:hover,
.site-app .navbar .nav-link:focus-visible {
    border-color: rgba(255, 255, 255, 0.16);
    color: #fff !important;
    background: rgba(255, 255, 255, 0.09);
}

.site-app .navbar .nav-link.active,
.site-app .navbar .nav-item.show > .nav-link {
    border-color: rgba(240, 207, 115, 0.35);
    color: #ffe59d !important;
    background: rgba(255, 242, 0, 0.13);
    box-shadow: inset 0 0 0 1px rgba(255, 229, 157, 0.08);
}

.site-app .navbar-toggler {
    width: 48px;
    height: 44px;
    border-color: rgba(255, 255, 255, 0.24);
    border-radius: 12px;
}

.site-app .dropdown-menu {
    padding: 0.55rem;
    border: 1px solid var(--visual-line);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: var(--visual-shadow-lg);
}

.site-app .dropdown-item {
    padding: 0.62rem 0.75rem;
    border-radius: 10px;
    color: var(--visual-ink);
    font-weight: 550;
}

.site-app .dropdown-item:hover,
.site-app .dropdown-item:focus {
    color: var(--visual-navy-900);
    background: var(--visual-blue-100);
}

.site-app .site-logo-block {
    margin-top: 0.7rem;
    margin-bottom: 1.7rem;
}

.site-app .site-logo-block .logo-container {
    display: inline-grid;
    width: 132px;
    height: 132px;
    place-items: center;
    padding: 0.75rem;
    border: 1px solid rgba(18, 58, 99, 0.13);
    border-radius: 34px;
    background:
        radial-gradient(circle at 30% 18%, #fff 0%, rgba(255, 255, 255, 0.94) 38%, #edf4fb 100%);
    box-shadow: var(--visual-shadow-md), inset 0 1px 0 #fff;
}

.site-app .site-logo-block--compact .logo-container {
    width: 88px;
    height: 88px;
    padding: 0.55rem;
    border-radius: 25px;
}

.site-app .site-logo-block .logo-image {
    width: auto;
    max-width: 100%;
    max-height: 100%;
    filter: drop-shadow(0 4px 5px rgba(8, 26, 45, 0.10));
}

/* Page headings ---------------------------------------------------------- */

.site-app .site-page-title {
    margin-bottom: 0;
    color: var(--visual-navy-900);
    font-weight: 800;
    letter-spacing: -0.035em;
    text-wrap: balance;
}

.site-app .site-page-title > i,
.site-app .site-page-heading h1 > i {
    color: var(--visual-blue-600);
}

.site-app .site-page-heading {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    gap: 1rem;
    margin-bottom: 1.5rem !important;
    padding: clamp(1.15rem, 2.5vw, 1.8rem);
    border: 1px solid var(--visual-line);
    border-radius: var(--visual-radius-lg);
    background:
        linear-gradient(115deg, rgba(255, 255, 255, 0.98), rgba(244, 248, 253, 0.94));
    box-shadow: var(--visual-shadow-md);
}

.site-app .site-page-heading > * {
    min-width: 0;
}

.site-app .site-page-heading::before {
    position: absolute;
    z-index: -1;
    top: -80px;
    right: -60px;
    width: 230px;
    height: 230px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(30, 119, 188, 0.16), rgba(30, 119, 188, 0));
    content: "";
}

.site-app .site-page-heading::after {
    position: absolute;
    bottom: 0;
    left: clamp(1.15rem, 2.5vw, 1.8rem);
    width: 74px;
    height: 4px;
    border-radius: 99px 99px 0 0;
    background: linear-gradient(90deg, var(--visual-gold-500), var(--visual-gold-300));
    content: "";
}

.site-app .site-page-heading p:last-child {
    margin-bottom: 0;
}

.site-app .breadcrumb {
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--visual-line);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.76);
}

/* Cards and content surfaces -------------------------------------------- */

.site-app:not(.congress-page):not(.congress-archive-page) .card {
    border: 1px solid var(--visual-line);
    border-radius: var(--visual-radius-md);
    background: var(--visual-surface);
    box-shadow: var(--visual-shadow-sm);
}

.site-app:not(.congress-page):not(.congress-archive-page) .card:hover {
    border-color: var(--visual-line-strong);
    box-shadow: var(--visual-shadow-md);
}

.site-app:not(.congress-page):not(.congress-archive-page) .card > .card-header:first-child {
    border-radius: calc(var(--visual-radius-md) - 1px) calc(var(--visual-radius-md) - 1px) 0 0;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header {
    min-height: 58px;
    padding: 0.95rem 1.2rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
    color: #fff;
    background:
        linear-gradient(105deg, rgba(255, 255, 255, 0.05), transparent 48%),
        linear-gradient(135deg, var(--visual-navy-800), var(--visual-navy-900));
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header h1,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h2,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h3,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h4,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h5,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h6,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header .card-title {
    color: inherit !important;
    letter-spacing: -0.015em;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header.bg-light {
    border-bottom-color: var(--visual-line);
    color: var(--visual-navy-900) !important;
    background: linear-gradient(135deg, #f7faff, #e9f2fb) !important;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header.bg-primary {
    background: linear-gradient(135deg, var(--visual-blue-700), var(--visual-navy-800)) !important;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header.bg-info {
    background: linear-gradient(135deg, #16829a, #0f6278) !important;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header.bg-success {
    background: linear-gradient(135deg, var(--brand-green), var(--visual-green-700)) !important;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header.bg-danger {
    background: linear-gradient(135deg, #bd4050, #8e2938) !important;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header.bg-warning {
    border-bottom-color: rgba(111, 78, 0, 0.14);
    color: #352600 !important;
    background: linear-gradient(135deg, #f0c95d, #dfa92e) !important;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-body {
    padding: clamp(1rem, 2vw, 1.35rem);
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-footer {
    padding: 0.9rem 1.2rem;
    border-top: 1px solid var(--visual-line);
    border-radius: 0 0 calc(var(--visual-radius-md) - 1px) calc(var(--visual-radius-md) - 1px);
    background: var(--visual-surface-soft);
}

.site-app:not(.congress-page):not(.congress-archive-page) .card.border-primary,
.site-app:not(.congress-page):not(.congress-archive-page) .card.border-info,
.site-app:not(.congress-page):not(.congress-archive-page) .card.border-success,
.site-app:not(.congress-page):not(.congress-archive-page) .card.border-warning,
.site-app:not(.congress-page):not(.congress-archive-page) .card.border-danger {
    border-width: 1px !important;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card .card {
    border-radius: 14px;
    background: linear-gradient(145deg, #fff, #f7f9fc);
    box-shadow: 0 5px 16px rgba(17, 45, 78, 0.06);
}

.site-app .card-body > p.text-muted:only-child,
.site-app .card-body > div > p.text-muted:only-child {
    padding: 1rem;
    border: 1px dashed rgba(18, 58, 99, 0.24);
    border-radius: 12px;
    background: var(--visual-surface-soft);
}

/* Buttons ---------------------------------------------------------------- */

.site-app .btn {
    border-radius: 11px;
    font-weight: 700;
    letter-spacing: -0.01em;
    box-shadow: 0 4px 10px rgba(23, 25, 74, 0.09);
    transition: color 0.16s ease, background-color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

.site-app .btn:not(.btn-sm):not(.btn-link) {
    min-height: 44px;
    padding: 0.6rem 1rem;
}

.site-app .btn-sm:not(.btn-link) {
    min-height: 36px;
    padding: 0.4rem 0.68rem;
    border-radius: 9px;
}

.site-app .btn:hover,
.site-app .btn:focus-visible {
    transform: none;
    box-shadow: 0 8px 18px rgba(23, 25, 74, 0.16);
}

.site-app .btn-primary {
    border-color: var(--visual-blue-700);
    background: linear-gradient(135deg, var(--visual-blue-600), var(--visual-blue-700));
}

.site-app .btn-primary:hover,
.site-app .btn-primary:focus-visible {
    border-color: var(--visual-navy-800);
    background: linear-gradient(135deg, var(--visual-blue-700), var(--visual-navy-800));
}

.site-app .btn-success {
    border-color: var(--visual-green-700);
    background: linear-gradient(135deg, var(--brand-green), var(--visual-green-700));
}

.site-app .btn-info {
    border-color: var(--brand-light-blue);
    color: #fff;
    background: linear-gradient(135deg, #3890c9, var(--brand-light-blue));
}

.site-app .btn-warning {
    border-color: #c9bf00;
    color: var(--brand-black);
    background: linear-gradient(135deg, var(--brand-yellow), #d9ce00);
}

.site-app .btn-danger {
    border-color: var(--visual-red-700);
    background: linear-gradient(135deg, var(--brand-red), var(--visual-red-700));
}

.site-app .btn-secondary {
    border-color: #505168;
    background: linear-gradient(135deg, #696a7d, #3d3e52);
}

.site-app .btn-outline-primary,
.site-app .btn-outline-secondary,
.site-app .btn-outline-success,
.site-app .btn-outline-info,
.site-app .btn-outline-danger {
    background-color: rgba(255, 255, 255, 0.86);
}

.site-app .btn-link {
    box-shadow: none;
}

.site-app .btn-group {
    gap: 0.15rem;
}

/* Forms ------------------------------------------------------------------ */

.site-app .form-label,
.site-app legend {
    margin-bottom: 0.42rem;
    color: #26364b;
    font-weight: 700;
}

.site-app .form-control,
.site-app .form-select,
.site-app .input-group-text {
    min-height: 46px;
    border-color: rgba(18, 58, 99, 0.21);
    border-radius: 11px;
    color: var(--visual-ink);
    background-color: rgba(255, 255, 255, 0.96);
}

.site-app .form-control-sm,
.site-app .form-select-sm,
.site-app .input-group-sm > .form-control,
.site-app .input-group-sm > .form-select,
.site-app .input-group-sm > .input-group-text {
    min-height: 38px;
    border-radius: 9px;
}

.site-app textarea.form-control {
    min-height: 110px;
    line-height: 1.5;
}

.site-app .form-control::placeholder {
    color: #8491a3;
}

.site-app .form-control:focus,
.site-app .form-select:focus,
.site-app .form-check-input:focus {
    border-color: var(--visual-blue-500);
    box-shadow: var(--visual-focus);
}

.site-app .input-group > .form-control:not(:last-child),
.site-app .input-group > .form-select:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.site-app .input-group > .input-group-text:first-child {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    background: var(--visual-blue-50);
}

.site-app .input-group > .input-group-text:last-child {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    background: var(--visual-blue-50);
}

.site-app .form-check {
    min-height: 38px;
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}

.site-app .form-check-input {
    border-color: rgba(18, 58, 99, 0.35);
}

.site-app .form-check-input:checked {
    border-color: var(--visual-blue-700);
    background-color: var(--visual-blue-700);
}

.site-app .form-text {
    color: var(--visual-muted);
    line-height: 1.4;
}

.site-app fieldset {
    min-width: 0;
}

/* Alerts, badges and status --------------------------------------------- */

.site-app .alert {
    padding: 1rem 1.1rem;
    border-width: 1px;
    border-left-width: 4px;
    border-radius: 13px;
    box-shadow: 0 4px 14px rgba(17, 45, 78, 0.05);
}

.site-app .alert-info {
    border-color: rgba(20, 117, 141, 0.32);
    border-left-color: var(--visual-cyan-700);
    color: #174d5a;
    background: #edf9fc;
}

.site-app .alert-success {
    border-color: rgba(40, 118, 77, 0.28);
    border-left-color: var(--visual-green-700);
    color: #235b3d;
    background: #eff9f3;
}

.site-app .alert-warning {
    border-color: rgba(187, 133, 14, 0.30);
    border-left-color: #bb850e;
    color: #624b13;
    background: #fff9e9;
}

.site-app .alert-danger {
    border-color: rgba(170, 51, 68, 0.28);
    border-left-color: var(--visual-red-700);
    color: #762a36;
    background: #fff1f3;
}

.site-app .badge {
    padding: 0.42em 0.62em;
    border-radius: 999px;
    font-weight: 750;
    letter-spacing: 0.01em;
}

.site-app .progress {
    height: 0.75rem;
    border-radius: 999px;
    background: #e6edf5;
}

/* Tables ----------------------------------------------------------------- */

.site-app:not(.congress-page):not(.congress-archive-page) .table-responsive {
    width: 100%;
    max-width: 100%;
    border: 1px solid var(--visual-line);
    border-radius: 14px;
    background: #fff;
    scrollbar-color: var(--visual-blue-500) #e8eef5;
    scrollbar-width: thin;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-body.p-0 > .table-responsive {
    border: 0;
    border-radius: 0 0 calc(var(--visual-radius-md) - 1px) calc(var(--visual-radius-md) - 1px);
}

.site-app:not(.congress-page):not(.congress-archive-page) .table-responsive:focus-visible {
    outline-offset: 2px;
}

.site-app:not(.congress-page):not(.congress-archive-page) .table {
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(234, 243, 252, 0.52);
    --bs-table-hover-bg: rgba(30, 119, 188, 0.08);
    margin-bottom: 0;
    color: var(--visual-ink);
}

.site-app:not(.congress-page):not(.congress-archive-page) .table > :not(caption) > * > * {
    padding: 0.9rem 0.85rem;
    border-bottom-color: rgba(18, 58, 99, 0.10);
    vertical-align: middle;
}

.site-app:not(.congress-page):not(.congress-archive-page) .table thead th,
.site-app:not(.congress-page):not(.congress-archive-page) .table .table-light th {
    border-bottom: 1px solid rgba(18, 58, 99, 0.18);
    color: #33465d;
    background: linear-gradient(180deg, #f5f9fd, #e9f1f9);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.045em;
    text-transform: uppercase;
    white-space: nowrap;
}

.site-app:not(.congress-page):not(.congress-archive-page) .table tbody tr:last-child > * {
    border-bottom: 0;
}

.site-app:not(.congress-page):not(.congress-archive-page) .table caption {
    padding: 0.75rem;
    color: var(--visual-muted);
}

/* Lists, tabs, accordions and modals ------------------------------------ */

.site-app .list-group {
    border-radius: 13px;
}

.site-app .list-group-item {
    padding: 0.85rem 1rem;
    border-color: rgba(18, 58, 99, 0.11);
    background: rgba(255, 255, 255, 0.82);
}

.site-app .list-group-item-action:hover,
.site-app .list-group-item-action:focus {
    color: var(--visual-navy-900);
    background: var(--visual-blue-50);
}

.site-app .nav-tabs {
    gap: 0.35rem;
    padding: 0.35rem;
    border: 1px solid var(--visual-line);
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.72);
}

.site-app .nav-tabs .nav-link {
    min-height: 42px;
    border: 0;
    border-radius: 9px;
    color: var(--visual-muted);
    font-weight: 700;
}

.site-app .nav-tabs .nav-link.active {
    color: var(--visual-navy-900);
    background: #fff;
    box-shadow: var(--visual-shadow-sm);
}

.site-app .accordion-item {
    overflow: hidden;
    border-color: var(--visual-line);
    border-radius: 13px !important;
    background: rgba(255, 255, 255, 0.9);
}

.site-app .accordion-item + .accordion-item {
    margin-top: 0.65rem;
}

.site-app .accordion-button {
    min-height: 54px;
    color: var(--visual-navy-900);
    font-weight: 750;
    background: var(--visual-blue-50);
}

.site-app .accordion-button:not(.collapsed) {
    color: var(--visual-navy-900);
    background: var(--visual-blue-100);
    box-shadow: none;
}

.site-app .modal-content {
    overflow: hidden;
    border: 1px solid var(--visual-line);
    border-radius: 20px;
    box-shadow: var(--visual-shadow-lg);
}

.site-app .modal-header {
    padding: 1rem 1.2rem;
    border-bottom-color: var(--visual-line);
    background: linear-gradient(135deg, var(--visual-blue-50), #fff);
}

.site-app .modal-title {
    color: var(--visual-navy-900);
    font-weight: 800;
}

.site-app .modal-body,
.site-app .modal-footer {
    padding: 1.2rem;
}

/* Authentication pages -------------------------------------------------- */

.site-auth-page .site-main {
    width: min(100% - 1.5rem, 720px);
}

.site-auth-page .site-logo-block {
    margin-bottom: 1.25rem;
}

.site-auth-page .site-main > .row,
.site-auth-page .site-main > .container > .row {
    margin-right: 0;
    margin-left: 0;
}

.site-auth-page .site-main > .row > [class*="col-"],
.site-auth-page .site-main > .container > .row > [class*="col-"] {
    width: 100%;
    max-width: 610px;
    margin-right: auto;
    margin-left: auto;
    padding-right: 0;
    padding-left: 0;
}

.site-auth-page .card {
    position: relative;
    overflow: hidden;
    border-radius: 22px !important;
    box-shadow: var(--visual-shadow-lg) !important;
}

.site-auth-page .card::before {
    position: absolute;
    z-index: 4;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--visual-gold-500), var(--visual-blue-500));
    content: "";
}

.site-auth-page .card-header {
    min-height: 72px !important;
    padding: 1.25rem 1.4rem !important;
}

.site-auth-page .card-header .card-title {
    font-size: 1.2rem !important;
}

.site-auth-page .card-body {
    padding: clamp(1.25rem, 4vw, 2rem) !important;
}

.site-auth-page .d-grid .btn {
    min-height: 50px;
}

/* Workspaces and management pages -------------------------------------- */

.site-workspace-page:not(.site-auth-page) .site-main {
    width: min(100% - 1.5rem, 1380px);
}

.site-workspace-page:not(.site-auth-page) .site-page-heading,
.site-workspace-page:not(.site-auth-page) .dashboard-toolbar {
    border-color: rgba(30, 119, 188, 0.20);
    background:
        radial-gradient(circle at 92% 10%, rgba(30, 119, 188, 0.18), transparent 14rem),
        linear-gradient(135deg, #fff, #edf5fd);
}

.site-workspace-page .dashboard-actions .btn {
    box-shadow: 0 7px 16px rgba(17, 45, 78, 0.12);
}

.site-workspace-page .card + .card,
.site-workspace-page .row + .card,
.site-workspace-page .card + .row {
    margin-top: 1.25rem;
}

/* High-value page refinements ------------------------------------------ */

.page-main-index .homepage-primary-actions .card {
    position: relative;
    overflow: hidden;
    border-top: 4px solid var(--visual-blue-600) !important;
}

.page-main-index .homepage-primary-actions > div:nth-child(1) .card {
    border-top-color: var(--brand-green) !important;
}

.page-main-index .homepage-primary-actions > div:nth-child(2) .card {
    border-top-color: var(--brand-light-blue) !important;
}

.page-main-index .homepage-primary-actions > div:nth-child(3) .card {
    border-top-color: var(--brand-blue) !important;
}

.page-main-index .homepage-primary-actions .card-body {
    padding: 1.35rem;
}

.page-main-index .homepage-primary-actions .card-title i {
    display: inline-grid;
    width: 38px;
    height: 38px;
    place-items: center;
    margin-right: 0.35rem !important;
    border-radius: 11px;
    background: var(--visual-blue-50);
}

.page-main-map-page #map,
.page-main-calendar-page #calendar,
.page-main-reunion-detail .reunion-detail-map {
    overflow: hidden;
    border: 1px solid var(--visual-line);
    border-radius: 18px;
    box-shadow: var(--visual-shadow-md);
}

.page-main-calendar-page #calendar {
    padding: clamp(0.7rem, 2vw, 1.25rem);
}

.page-info-info-rsg .info-rsg-shortcuts .btn {
    justify-content: flex-start;
    text-align: left;
}

.page-main-reunion-detail .reunion-detail-page > div > .card {
    box-shadow: var(--visual-shadow-lg);
}

.page-main-postes-a-combler .card,
.page-info-anniversaries .card {
    box-shadow: var(--visual-shadow-md);
}

.site-app .fc .fc-toolbar-title {
    color: var(--visual-navy-900);
    font-weight: 800;
}

.site-app .fc .fc-button-primary {
    border-color: var(--visual-navy-800) !important;
    border-radius: 9px !important;
    background: var(--visual-navy-800) !important;
    box-shadow: none !important;
}

.site-app .leaflet-control-zoom a {
    color: var(--visual-navy-900);
}

.site-app .leaflet-container {
    max-width: 100%;
    contain: layout paint;
}

/* Footer ----------------------------------------------------------------- */

.site-app .site-footer {
    position: relative;
    overflow: hidden;
    padding-top: 0.25rem;
    background:
        radial-gradient(circle at 15% 0%, rgba(30, 119, 188, 0.18), transparent 24rem),
        linear-gradient(135deg, var(--visual-navy-900), var(--visual-navy-950)) !important;
}

.site-app .site-footer::before {
    display: block;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, transparent, var(--visual-gold-500), transparent);
    content: "";
}

.site-app .site-footer .container {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
}

.site-app .site-footer a {
    color: var(--brand-yellow);
    font-weight: 650;
}

.site-app .site-footer a:hover,
.site-app .site-footer a:focus-visible {
    color: #fff;
}

.site-app .text-primary {
    color: var(--brand-light-blue) !important;
}

.site-app .text-success {
    color: var(--visual-green-700) !important;
}

.site-app .text-danger {
    color: var(--brand-red) !important;
}

.site-app .badge.bg-primary {
    background-color: var(--brand-blue) !important;
}

.site-app .badge.bg-success {
    background-color: var(--brand-green) !important;
}

.site-app .badge.bg-danger {
    background-color: var(--brand-red) !important;
}

.site-app .badge.bg-warning {
    color: var(--brand-black) !important;
    background-color: var(--brand-yellow) !important;
}

/* Phase 3 — stronger identity and richer page composition ---------------- */

.site-app .site-nav-brand {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.65rem;
    margin-right: 1.15rem;
    padding: 0.25rem 0.35rem 0.25rem 0;
    color: #fff;
    text-decoration: none;
}

.site-app .site-nav-brand:hover,
.site-app .site-nav-brand:focus-visible {
    color: #fff;
}

.site-app .site-nav-brand-mark {
    display: inline-grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-items: center;
    padding: 0.32rem;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 8px 22px rgba(4, 15, 28, 0.24);
}

.site-app .site-nav-brand-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.site-app .site-nav-brand-copy {
    display: grid;
    line-height: 1.02;
}

.site-app .site-nav-brand-copy strong {
    color: #fff;
    font-size: 0.92rem;
    letter-spacing: 0.055em;
}

.site-app .site-nav-brand-copy small {
    margin-top: 0.22rem;
    color: rgba(255, 255, 255, 0.64);
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.site-app .navbar .nav-link.site-nav-current,
.site-app .navbar .nav-link.site-section-current {
    border-color: rgba(240, 207, 115, 0.34);
    color: #ffe59d !important;
    background: rgba(255, 242, 0, 0.13);
}

.site-app .navbar .nav-link.site-nav-current {
    position: relative;
}

.site-app .navbar .nav-link.site-nav-current::after {
    position: absolute;
    right: 0.7rem;
    bottom: 0.18rem;
    left: 0.7rem;
    height: 2px;
    border-radius: 99px;
    background: linear-gradient(90deg, transparent, var(--visual-gold-300), transparent);
    content: "";
}

.page-main-index .site-logo-block {
    position: relative;
    z-index: 3;
    margin-bottom: -3.8rem;
}

.page-main-index .site-logo-block .logo-container {
    width: 116px;
    height: 116px;
    border-color: rgba(255, 255, 255, 0.66);
    box-shadow: 0 20px 48px rgba(8, 26, 45, 0.20), inset 0 1px 0 #fff;
}

.page-main-index .home-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: grid;
    min-height: 348px;
    grid-template-columns: minmax(0, 1fr) minmax(235px, 310px);
    align-items: end;
    gap: clamp(1.5rem, 4vw, 3.5rem);
    margin-bottom: 1.5rem;
    padding: clamp(5.6rem, 8vw, 7rem) clamp(1.4rem, 4vw, 3.4rem) clamp(1.6rem, 4vw, 2.8rem);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--visual-radius-xl);
    color: #fff;
    background:
        radial-gradient(circle at 82% 16%, rgba(30, 119, 188, 0.34), transparent 20rem),
        linear-gradient(128deg, var(--visual-navy-950) 0%, var(--visual-navy-800) 64%, var(--brand-light-blue) 100%);
    box-shadow: var(--visual-shadow-lg);
}

.page-main-index .home-hero::before,
.page-main-index .home-hero::after {
    position: absolute;
    z-index: -1;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 50%;
    content: "";
}

.page-main-index .home-hero::before {
    top: -9rem;
    right: -4rem;
    width: 27rem;
    height: 27rem;
}

.page-main-index .home-hero::after {
    right: 12rem;
    bottom: -15rem;
    width: 31rem;
    height: 31rem;
}

.page-main-index .home-hero-copy {
    max-width: 760px;
}

.page-main-index .home-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.85rem;
    padding: 0.42rem 0.72rem;
    border: 1px solid rgba(255, 229, 157, 0.24);
    border-radius: 999px;
    color: #ffe8a8;
    background: rgba(255, 242, 0, 0.10);
    font-size: 0.77rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.site-app.page-main-index .home-hero h1.site-page-title {
    max-width: 770px;
    margin-bottom: 1rem;
    color: #fff;
    font-size: clamp(2.25rem, 5vw, 4.15rem);
    line-height: 0.98;
    letter-spacing: -0.052em;
    text-shadow: 0 8px 30px rgba(4, 15, 28, 0.22);
}

.page-main-index .home-hero-intro {
    max-width: 660px;
    margin-bottom: 1.3rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: clamp(1rem, 1.8vw, 1.15rem);
    line-height: 1.62;
}

.page-main-index .home-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
}

.page-main-index .home-hero-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 48px;
    padding-inline: 1.05rem;
}

.page-main-index .home-hero-actions .btn-light {
    color: var(--visual-navy-900);
    background: #fff;
    box-shadow: 0 10px 26px rgba(4, 15, 28, 0.18);
}

.page-main-index .home-hero-actions .btn-outline-light {
    border-color: rgba(255, 255, 255, 0.45);
    color: #fff;
    background: rgba(255, 255, 255, 0.06);
}

.page-main-index .home-hero-note {
    display: grid;
    align-self: end;
    gap: 0.75rem;
    margin: 0;
    padding: 1.2rem;
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 20px;
    color: rgba(255, 255, 255, 0.86);
    background: rgba(255, 255, 255, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
    font-size: 0.94rem;
    line-height: 1.55;
    backdrop-filter: blur(12px);
}

.page-main-index .home-hero-note > i {
    display: inline-grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 12px;
    color: #ffe59d;
    background: rgba(255, 242, 0, 0.15);
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header h1 > .bi:first-child,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h2 > .bi:first-child,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h3 > .bi:first-child,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h4 > .bi:first-child,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h5 > .bi:first-child {
    display: inline-grid;
    width: 34px;
    height: 34px;
    place-items: center;
    margin: -0.25rem 0.45rem -0.25rem -0.25rem !important;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.14);
}

.site-app .site-card-action {
    isolation: isolate;
}

.site-app .site-card-action::after {
    position: absolute;
    z-index: 2;
    top: 0;
    right: 22%;
    left: 22%;
    height: 3px;
    border-radius: 0 0 99px 99px;
    background: linear-gradient(90deg, transparent, rgba(30, 119, 188, 0.65), transparent);
    opacity: 0;
    content: "";
    transition: opacity 180ms ease, right 180ms ease, left 180ms ease;
}

.site-app .site-card-action:hover::after,
.site-app .site-card-action:focus-within::after {
    right: 8%;
    left: 8%;
    opacity: 1;
}

.site-app .site-empty-state {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-height: 58px;
    padding: 0.8rem 0.95rem;
    border: 1px dashed var(--visual-line-strong);
    border-radius: 13px;
    color: var(--visual-muted) !important;
    background: linear-gradient(110deg, rgba(244, 248, 253, 0.92), rgba(255, 255, 255, 0.92));
}

.site-app .site-empty-state > .site-empty-icon {
    display: inline-grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 10px;
    color: var(--visual-blue-600);
    background: var(--visual-blue-100);
}

.site-app .site-table-scroll-hint {
    display: none;
}

.site-app .site-reading-progress {
    position: fixed;
    z-index: 1095;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    pointer-events: none;
}

.site-app .site-reading-progress::after {
    display: block;
    width: 100%;
    height: 100%;
    transform: scaleX(var(--site-reading-progress, 0));
    transform-origin: left center;
    background: linear-gradient(90deg, var(--visual-gold-300), var(--visual-gold-500), #fff0b6);
    box-shadow: 0 0 12px rgba(255, 242, 0, 0.46);
    content: "";
    transition: transform 80ms linear;
}

/* Phase 4 — official palette, meeting profiles and subcommittee identity - */

.page-main-reunion-detail .reunion-detail-page {
    --meeting-accent: var(--brand-light-blue);
    --meeting-deep: var(--brand-blue);
}

.page-main-reunion-detail .meeting-profile-card {
    overflow: hidden;
    border: 1px solid rgba(46, 49, 146, 0.18);
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 24px 64px rgba(23, 25, 74, 0.17) !important;
}

.page-main-reunion-detail .meeting-profile-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    min-height: 218px;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    color: #fff;
    background:
        radial-gradient(circle at 88% 12%, rgba(30, 119, 188, 0.62), transparent 20rem),
        linear-gradient(132deg, var(--visual-navy-950), var(--meeting-deep) 72%, var(--meeting-accent));
}

.page-main-reunion-detail .meeting-profile-hero::after {
    position: absolute;
    z-index: -1;
    top: -9rem;
    right: -5rem;
    width: 25rem;
    height: 25rem;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    content: "";
}

.page-main-reunion-detail .meeting-profile-hero--closed {
    background:
        radial-gradient(circle at 88% 12%, rgba(237, 28, 36, 0.44), transparent 20rem),
        linear-gradient(132deg, #260405, #7b0f13 70%, var(--brand-red));
}

.page-main-reunion-detail .meeting-profile-title {
    max-width: 690px;
}

.page-main-reunion-detail .meeting-profile-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.76rem;
    font-weight: 750;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.page-main-reunion-detail .meeting-profile-hero h1.card-title {
    color: #fff !important;
    font-size: clamp(2rem, 5vw, 3.6rem);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -0.045em;
    text-wrap: balance;
}

.page-main-reunion-detail .meeting-profile-badges {
    display: flex;
    max-width: 330px;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.page-main-reunion-detail .meeting-status-badge {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    gap: 0.38rem;
    padding: 0.4rem 0.68rem;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: #fff;
    background: rgba(255, 255, 255, 0.11);
    font-size: 0.78rem;
    font-weight: 750;
    backdrop-filter: blur(10px);
}

.page-main-reunion-detail .meeting-status-badge--green {
    border-color: rgba(0, 166, 81, 0.7);
    background: rgba(0, 166, 81, 0.28);
}

.page-main-reunion-detail .meeting-status-badge--danger {
    border-color: rgba(255, 255, 255, 0.42);
    background: rgba(237, 28, 36, 0.34);
}

.page-main-reunion-detail .meeting-status-badge--blue {
    background: rgba(30, 119, 188, 0.32);
}

.page-main-reunion-detail .meeting-status-badge--deep-blue {
    background: rgba(46, 49, 146, 0.36);
}

.page-main-reunion-detail .meeting-profile-body {
    padding: clamp(1.1rem, 3vw, 2rem) !important;
}

.page-main-reunion-detail .meeting-facts-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.page-main-reunion-detail .meeting-fact {
    position: relative;
    display: grid;
    min-height: 156px;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 0.9rem;
    padding: 1.2rem;
    border: 1px solid rgba(46, 49, 146, 0.14);
    border-radius: 17px;
    background: linear-gradient(130deg, #fff, rgba(232, 242, 248, 0.7));
}

.page-main-reunion-detail .meeting-fact--schedule {
    border-top: 4px solid var(--brand-light-blue);
}

.page-main-reunion-detail .meeting-fact--location {
    border-top: 4px solid var(--brand-green);
}

.page-main-reunion-detail .meeting-fact-icon {
    display: inline-grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(135deg, var(--brand-light-blue), var(--brand-blue));
    box-shadow: 0 9px 22px rgba(46, 49, 146, 0.18);
}

.page-main-reunion-detail .meeting-fact--location .meeting-fact-icon {
    background: linear-gradient(135deg, var(--brand-green), var(--visual-green-700));
}

.page-main-reunion-detail .meeting-fact h2 {
    margin: 0.12rem 0 0.45rem;
    color: var(--visual-muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.page-main-reunion-detail .meeting-fact-primary {
    margin-bottom: 0.18rem;
    color: var(--visual-navy-900);
    font-size: clamp(1.15rem, 2.4vw, 1.45rem);
    font-weight: 800;
    line-height: 1.25;
}

.page-main-reunion-detail .meeting-fact-secondary {
    margin-bottom: 0;
    color: var(--visual-muted);
    font-size: 0.94rem;
}

.page-main-reunion-detail .meeting-missing-info {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid rgba(201, 191, 0, 0.48);
    border-radius: 11px;
    color: #4c4800;
    background: rgba(255, 242, 0, 0.17);
    font-weight: 700;
}

.page-main-reunion-detail .meeting-detail-notes {
    display: grid;
    gap: 0.8rem;
    margin-top: 1rem;
}

.page-main-reunion-detail .meeting-format-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.page-main-reunion-detail .meeting-format-chip {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    padding: 0.35rem 0.62rem;
    border: 1px solid rgba(46, 49, 146, 0.2);
    border-radius: 999px;
    color: var(--brand-blue);
    background: rgba(46, 49, 146, 0.07);
    font-size: 0.76rem;
    font-weight: 750;
}

.page-main-reunion-detail .meeting-note {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.9rem 1rem;
    border-left: 4px solid var(--brand-light-blue);
    border-radius: 0 13px 13px 0;
    color: var(--visual-ink);
    background: var(--visual-blue-50);
}

.page-main-reunion-detail .meeting-note > i {
    color: var(--brand-light-blue);
}

.page-main-reunion-detail .meeting-note strong {
    display: block;
    margin-bottom: 0.15rem;
    color: var(--brand-blue);
}

.page-main-reunion-detail .meeting-public-actions,
.page-main-reunion-detail .meeting-member-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.page-main-reunion-detail .meeting-public-actions {
    margin-top: 1.1rem;
    padding: 1rem;
    border: 1px solid rgba(30, 119, 188, 0.15);
    border-radius: 15px;
    background: rgba(232, 242, 248, 0.56);
}

.page-main-reunion-detail .meeting-public-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
}

.page-main-reunion-detail .meeting-member-services {
    margin-top: 1.25rem;
    padding-top: 1.15rem;
    border-top: 1px solid var(--visual-line);
}

.page-main-reunion-detail .meeting-member-services-label {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.75rem;
    color: var(--visual-muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.page-main-reunion-detail .meeting-map-card {
    overflow: hidden;
    border-top: 4px solid var(--brand-green) !important;
    border-radius: 22px !important;
}

.page-main-reunion-detail .meeting-map-card .card-header {
    background: linear-gradient(135deg, var(--visual-navy-900), var(--brand-blue));
}

/* Subcommittee theme variables use only the approved brand colors or
   darker/lighter variants produced from those anchors. */
.site-subcommittee-page,
.subcommittee-identity {
    --subcommittee-accent: var(--brand-blue);
    --subcommittee-deep: var(--visual-navy-900);
    --subcommittee-soft: rgba(46, 49, 146, 0.08);
    --subcommittee-contrast: #fff;
}

.page-subcommittees-radio,
.page-subcommittees-comportements-derangeants,
.subcommittee-theme-red {
    --subcommittee-accent: var(--brand-red);
    --subcommittee-deep: #8f1116;
    --subcommittee-soft: rgba(237, 28, 36, 0.08);
    --subcommittee-contrast: #fff;
}

.page-subcommittees-relations-publiques,
.subcommittee-theme-light-blue {
    --subcommittee-accent: var(--brand-light-blue);
    --subcommittee-deep: #155a8d;
    --subcommittee-soft: rgba(30, 119, 188, 0.09);
    --subcommittee-contrast: #fff;
}

.page-subcommittees-hopitaux-institutions,
.subcommittee-theme-green {
    --subcommittee-accent: var(--brand-green);
    --subcommittee-deep: var(--visual-green-700);
    --subcommittee-soft: rgba(0, 166, 81, 0.08);
    --subcommittee-contrast: #fff;
}

.page-subcommittees-journee-gratitude,
.subcommittee-theme-yellow {
    --subcommittee-accent: var(--brand-yellow);
    --subcommittee-deep: #c9bf00;
    --subcommittee-soft: rgba(255, 242, 0, 0.12);
    --subcommittee-contrast: var(--brand-black);
}

.page-subcommittees-publications,
.subcommittee-theme-deep-blue {
    --subcommittee-accent: var(--brand-blue);
    --subcommittee-deep: var(--visual-navy-900);
    --subcommittee-soft: rgba(46, 49, 146, 0.08);
    --subcommittee-contrast: #fff;
}

.subcommittee-theme-blue {
    --subcommittee-accent: var(--brand-light-blue);
    --subcommittee-deep: var(--brand-blue);
    --subcommittee-soft: rgba(30, 119, 188, 0.08);
    --subcommittee-contrast: #fff;
}

.site-subcommittee-page .site-page-heading {
    border-left: 5px solid var(--subcommittee-accent);
}

.site-subcommittee-page .site-page-heading::after {
    background: var(--subcommittee-accent);
}

.site-subcommittee-page .site-page-title > i,
.site-subcommittee-page .site-page-heading h1 > i {
    color: var(--subcommittee-accent);
}

.subcommittee-identity .subcommittee-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.15rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    border-radius: 24px;
    color: var(--subcommittee-contrast);
    background:
        radial-gradient(circle at 88% 15%, color-mix(in srgb, var(--subcommittee-accent) 55%, transparent), transparent 18rem),
        linear-gradient(130deg, var(--subcommittee-deep), color-mix(in srgb, var(--subcommittee-deep) 72%, var(--subcommittee-accent)));
    box-shadow: 0 20px 50px color-mix(in srgb, var(--subcommittee-deep) 22%, transparent);
}

.subcommittee-identity .subcommittee-hero::after {
    position: absolute;
    z-index: -1;
    top: -8rem;
    right: -3rem;
    width: 22rem;
    height: 22rem;
    border: 1px solid color-mix(in srgb, var(--subcommittee-contrast) 18%, transparent);
    border-radius: 50%;
    content: "";
}

.subcommittee-identity .subcommittee-hero-icon {
    display: inline-grid;
    width: 66px;
    height: 66px;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--subcommittee-contrast) 25%, transparent);
    border-radius: 19px;
    color: var(--subcommittee-contrast);
    background: color-mix(in srgb, var(--subcommittee-contrast) 13%, transparent);
    font-size: 1.65rem;
}

.subcommittee-identity .subcommittee-hero h1 {
    color: var(--subcommittee-contrast) !important;
    font-size: clamp(2rem, 4vw, 3.15rem);
    line-height: 1.02;
}

.subcommittee-identity .subcommittee-hero-copy > p:last-child {
    color: color-mix(in srgb, var(--subcommittee-contrast) 78%, transparent);
}

.subcommittee-identity .subcommittee-kicker {
    color: color-mix(in srgb, var(--subcommittee-contrast) 72%, transparent);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.subcommittee-identity .subcommittee-hero .btn {
    border-color: color-mix(in srgb, var(--subcommittee-contrast) 48%, transparent);
    color: var(--subcommittee-contrast);
    background: color-mix(in srgb, var(--subcommittee-contrast) 9%, transparent);
}

.subcommittee-identity .subcommittee-definition-card {
    border-left: 5px solid var(--subcommittee-accent) !important;
}

.site-subcommittee-page .subcommittee-summary-card,
.subcommittee-identity .subcommittee-summary-card {
    overflow: hidden;
    border-top: 4px solid var(--subcommittee-accent) !important;
    background: linear-gradient(140deg, #fff, var(--subcommittee-soft));
    box-shadow: 0 12px 28px color-mix(in srgb, var(--subcommittee-deep) 11%, transparent) !important;
}

.site-subcommittee-page .subcommittee-summary-card--meeting .card-header,
.subcommittee-identity .subcommittee-summary-card--meeting .card-header {
    color: var(--subcommittee-contrast) !important;
    background: linear-gradient(135deg, var(--subcommittee-deep), var(--subcommittee-accent)) !important;
}

.site-subcommittee-page .subcommittee-summary-card--contact,
.subcommittee-identity .subcommittee-summary-card--contact {
    border-top-color: var(--brand-light-blue) !important;
}

.site-subcommittee-page .subcommittee-summary-card--contact .card-header,
.subcommittee-identity .subcommittee-summary-card--contact .card-header {
    background: linear-gradient(135deg, #155a8d, var(--brand-light-blue)) !important;
}

.site-subcommittee-page .subcommittee-summary-card--announcement,
.subcommittee-identity .subcommittee-summary-card--announcement {
    border-top-color: var(--brand-yellow) !important;
}

.site-subcommittee-page .subcommittee-summary-card--announcement .card-header,
.subcommittee-identity .subcommittee-summary-card--announcement .card-header {
    color: var(--brand-black) !important;
    background: linear-gradient(135deg, var(--brand-yellow), #d9ce00) !important;
}

.site-app.site-subcommittee-page .subcommittee-identity .subcommittee-summary-card--contact .card-header.bg-info {
    color: #fff !important;
    background: linear-gradient(135deg, #155a8d, var(--brand-light-blue)) !important;
}

.site-app.site-subcommittee-page .subcommittee-identity .subcommittee-summary-card--announcement .card-header.bg-info {
    color: var(--brand-black) !important;
    background: linear-gradient(135deg, var(--brand-yellow), #d9ce00) !important;
}

.site-app.site-subcommittee-page .subcommittee-identity .subcommittee-summary-card--announcement .card-header.bg-info .bi {
    color: var(--brand-black) !important;
}

.site-subcommittee-page .subcommittee-overview-strip > h2 {
    color: var(--subcommittee-deep);
    font-weight: 800;
}

.site-subcommittee-page .subcommittee-overview-strip > h2 .bi {
    color: var(--subcommittee-accent);
}

.site-subcommittee-page .subcommittee-overview-strip .card-header {
    padding: 0.78rem 1rem;
    border-bottom: 0;
}

.site-subcommittee-page .subcommittee-overview-strip .card-body {
    padding: 1rem;
}

.site-subcommittee-page .subcommittee-overview-strip .subcommittee-summary-highlight {
    color: var(--subcommittee-deep);
    font-size: 1.18rem;
    font-weight: 800;
}

.site-subcommittee-page .subcommittee-overview-strip .subcommittee-summary-highlight span {
    display: block;
    margin-top: 0.2rem;
    color: var(--visual-ink-700);
    font-size: 0.9rem;
    font-weight: 700;
}

.site-app .card-header.bg-light h1 > .bi:first-child,
.site-app .card-header.bg-light h2 > .bi:first-child,
.site-app .card-header.bg-light h3 > .bi:first-child,
.site-app .card-header.bg-light h4 > .bi:first-child,
.site-app .card-header.bg-light h5 > .bi:first-child {
    color: var(--brand-light-blue);
    background: rgba(30, 119, 188, 0.1);
}

.subcommittee-identity .subcommittee-summary-grid + .row {
    margin-top: 1rem !important;
}

/* Responsive ------------------------------------------------------------- */

@media screen and (max-width: 1199.98px) and (min-width: 992px) {
    .site-app .site-nav-brand-copy {
        display: none;
    }

    .site-app .site-nav-brand {
        margin-right: 0.55rem;
    }

    .site-app .navbar .nav-link {
        padding-right: 0.4rem !important;
        padding-left: 0.4rem !important;
        font-size: 0.82rem;
    }

    .site-app .navbar .nav-link .me-1 {
        margin-right: 0.2rem !important;
    }
}

@media screen and (max-width: 991.98px) {
    .site-app .navbar {
        min-height: 60px;
    }

    .site-app .site-nav-brand {
        margin-right: auto;
    }

    .site-app .site-nav-brand-mark {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
        border-radius: 12px;
    }

    .page-main-reunion-detail .meeting-profile-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .page-main-reunion-detail .meeting-profile-badges {
        max-width: none;
        justify-content: flex-start;
    }

    .subcommittee-identity .subcommittee-hero {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .subcommittee-identity .subcommittee-hero > .btn {
        grid-column: 1 / -1;
        justify-self: stretch;
    }

    .site-app .navbar-collapse {
        margin-top: 0.65rem;
        padding: 0.75rem;
        border: 1px solid rgba(255, 255, 255, 0.10);
        border-radius: 16px;
        background: rgba(8, 26, 45, 0.96);
        box-shadow: 0 18px 40px rgba(8, 26, 45, 0.24);
    }

    .site-app .navbar .nav-link {
        width: 100%;
        max-width: none;
        justify-content: flex-start;
    }

    .page-main-index .home-hero {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .page-main-index .home-hero-note {
        grid-template-columns: auto 1fr;
        align-items: center;
    }

    .site-app .site-table-scrollable > .site-table-scroll-hint {
        position: sticky;
        left: 0;
        display: flex;
        width: max-content;
        align-items: center;
        gap: 0.35rem;
        margin: 0.55rem 0.65rem 0.2rem;
        padding: 0.3rem 0.55rem;
        border-radius: 999px;
        color: var(--visual-muted);
        background: var(--visual-blue-50);
        font-size: 0.72rem;
        font-weight: 700;
    }

    .site-app .navbar-nav.ms-auto {
        align-items: stretch !important;
        margin-top: 0.4rem;
        padding-top: 0.5rem;
        border-top: 1px solid rgba(255, 255, 255, 0.12);
    }

    .site-app .site-page-heading {
        align-items: flex-start !important;
    }

    .site-app:not(.congress-page):not(.congress-archive-page) .table-responsive {
        background:
            linear-gradient(90deg, #fff 30%, rgba(255, 255, 255, 0)) left center,
            linear-gradient(270deg, #fff 30%, rgba(255, 255, 255, 0)) right center,
            linear-gradient(90deg, rgba(18, 58, 99, 0.12), rgba(18, 58, 99, 0)) left center,
            linear-gradient(270deg, rgba(18, 58, 99, 0.12), rgba(18, 58, 99, 0)) right center;
        background-attachment: local, local, scroll, scroll;
        background-repeat: no-repeat;
        background-size: 36px 100%, 36px 100%, 14px 100%, 14px 100%;
    }
}

@media screen and (max-width: 767.98px) {
    .site-app .site-main,
    .site-auth-page .site-main,
    .site-workspace-page:not(.site-auth-page) .site-main {
        width: min(100% - 1rem, 100%);
    }

    .site-app .site-logo-block {
        margin-top: 0.35rem;
        margin-bottom: 1.15rem;
    }

    .site-app .site-logo-block .logo-container {
        width: 104px;
        height: 104px;
        border-radius: 28px;
    }

    .site-app .site-logo-block--compact .logo-container {
        width: 76px;
        height: 76px;
        border-radius: 22px;
    }

    .site-app .site-page-heading {
        flex-direction: column !important;
        align-items: stretch !important;
        padding: 1.05rem;
        border-radius: 17px;
    }

    .page-main-reunion-detail .meeting-profile-card {
        border-radius: 19px;
    }

    .page-main-reunion-detail .meeting-profile-hero {
        min-height: 0;
        padding: 1.2rem;
    }

    .page-main-reunion-detail .meeting-profile-hero h1.card-title {
        font-size: clamp(2rem, 11vw, 2.75rem);
    }

    .page-main-reunion-detail .meeting-facts-grid {
        grid-template-columns: 1fr;
    }

    .page-main-reunion-detail .meeting-fact {
        min-height: 0;
        padding: 1rem;
    }

    .page-main-reunion-detail .meeting-public-actions,
    .page-main-reunion-detail .meeting-member-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .page-main-reunion-detail .meeting-public-actions .btn,
    .page-main-reunion-detail .meeting-public-actions .dropdown,
    .page-main-reunion-detail .meeting-public-actions .dropdown > .btn,
    .page-main-reunion-detail .meeting-member-actions .btn,
    .page-main-reunion-detail .meeting-member-actions form {
        width: 100%;
    }

    .subcommittee-identity {
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    .subcommittee-identity .subcommittee-hero {
        grid-template-columns: 1fr;
        padding: 1.15rem;
        border-radius: 19px;
    }

    .subcommittee-identity .subcommittee-hero-icon {
        width: 54px;
        height: 54px;
        border-radius: 16px;
        font-size: 1.35rem;
    }

    .subcommittee-identity .subcommittee-hero > .btn {
        grid-column: auto;
        width: 100%;
    }

    .page-main-index .site-logo-block {
        margin-bottom: -3.2rem;
    }

    .page-main-index .site-logo-block .logo-container {
        width: 98px;
        height: 98px;
        border-radius: 28px;
    }

    .page-main-index .home-hero {
        min-height: 0;
        gap: 1.2rem;
        padding: 5rem 1.05rem 1.15rem;
        border-radius: 23px;
    }

    .site-app.page-main-index .home-hero h1.site-page-title {
        font-size: clamp(2rem, 10vw, 2.65rem);
        line-height: 1.02;
    }

    .page-main-index .home-hero-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .page-main-index .home-hero-actions .btn {
        width: 100%;
    }

    .page-main-index .home-hero-note {
        padding: 0.9rem;
        font-size: 0.86rem;
    }

    .site-app .site-page-heading::after {
        left: 1.05rem;
    }

    .site-app .site-page-heading .btn,
    .site-app .site-page-heading > a.btn {
        width: 100%;
    }

    .site-app .site-page-title {
        font-size: clamp(1.8rem, 9vw, 2.25rem);
    }

    .site-app:not(.congress-page):not(.congress-archive-page) .card {
        border-radius: 14px;
    }

    .site-app:not(.congress-page):not(.congress-archive-page) .card-header {
        min-height: 54px;
        padding: 0.85rem 0.95rem;
    }

    .site-app:not(.congress-page):not(.congress-archive-page) .card-body {
        padding: 1rem;
    }

    .site-app:not(.congress-page):not(.congress-archive-page) .table > :not(caption) > * > * {
        padding: 0.78rem 0.7rem;
    }

    .site-app:not(.congress-page):not(.congress-archive-page) .table thead th,
    .site-app:not(.congress-page):not(.congress-archive-page) .table .table-light th {
        font-size: 0.72rem;
    }

    .site-app .publication-order-table tbody td {
        padding: 0 !important;
    }

    .site-app .modal-dialog {
        margin: 0.6rem;
    }

    .site-auth-page .card-body {
        padding: 1.15rem !important;
    }

    .site-app .footer-links ul {
        flex-direction: column;
        gap: 0.45rem;
    }

    .site-app .footer-links li::after {
        display: none;
    }
}

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

    .site-app .site-reading-progress::after {
        transition: none;
    }
}

@media print {
    .site-app {
        color: #000;
        background: #fff !important;
    }

    .site-app .site-page-heading,
    .site-app .card,
    .site-app .table-responsive {
        border-color: #bbb !important;
        background: #fff !important;
        box-shadow: none !important;
    }

    .site-app .site-page-heading::before,
    .site-app .site-page-heading::after {
        display: none;
    }

    .site-app .site-reading-progress,
    .site-app .site-table-scroll-hint,
    .page-main-index .home-hero-actions {
        display: none !important;
    }
}
