:root {
    --aba-blue: #1769aa;
    --aba-blue-dark: #104d82;
    --aba-blue-soft: #eaf4fb;
    --aba-red: #c73d4a;
    --aba-red-dark: #a92e3a;
    --aba-red-soft: #fcebed;
    --aba-lilac: #d8b4e2;
    --aba-lilac-soft: #f4eaf7;
    --aba-ink: #182433;
    --aba-muted: #687586;
    --aba-line: #dce5ed;
    --aba-surface: #ffffff;
    --aba-success: #237a52;
    --aba-success-soft: #e5f5ed;
    --aba-warning: #956516;
    --aba-warning-soft: #fff5dc;
    --aba-radius: 14px;
    --aba-shadow: 0 10px 34px rgba(31, 65, 93, .09);
    --bs-primary: var(--aba-blue);
    --bs-primary-rgb: 23, 105, 170;
    --bs-danger: var(--aba-red);
    --bs-danger-rgb: 199, 61, 74;
    --bs-link-color: var(--aba-blue-dark);
    --bs-link-hover-color: #0b3c67;
    --bs-body-color: var(--aba-ink);
}

html {
    scroll-behavior: smooth;
}

body.aba-app {
    min-height: 100vh;
    color: var(--aba-ink);
    background: linear-gradient(180deg, #fff 0, #f5faff 48%, #eaf3fb 100%);
    background-attachment: fixed;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.5;
}

body.aba-app h1,
body.aba-app h2,
body.aba-app h3,
body.aba-app h4,
body.aba-app h5 {
    color: var(--aba-ink);
    letter-spacing: -.025em;
}

body.aba-app .container {
    max-width: 1180px;
}

body.aba-app .container-fluid {
    max-width: 1500px;
    padding-right: clamp(1rem, 3vw, 2.5rem);
    padding-left: clamp(1rem, 3vw, 2.5rem);
}

.aba-login-page {
    display: grid;
    min-height: 100dvh;
    padding: clamp(1rem, 4vw, 3rem);
    place-items: center;
}

.aba-login-card {
    width: min(100%, 520px);
    overflow: hidden;
    border: 1px solid rgba(200, 216, 229, .85);
    border-radius: 18px;
    background: var(--aba-surface);
    box-shadow: 0 22px 62px rgba(25, 68, 102, .14);
}

.aba-login-brand {
    display: flex;
    min-height: 112px;
    padding: 1.1rem 2rem;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid var(--aba-line);
    background: linear-gradient(135deg, #f8fbfe 0%, var(--aba-blue-soft) 100%);
}

.aba-login-brand img {
    width: 142px;
    height: 86px;
    object-fit: contain;
}

.aba-login-kicker {
    margin-bottom: .35rem;
    color: var(--aba-blue);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.aba-login-form-panel {
    background: #fff;
}

.aba-login-form-wrap {
    width: 100%;
    padding: clamp(1.6rem, 5vw, 2.6rem);
}

.aba-login-heading {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
}

.aba-login-lock {
    display: grid;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    color: var(--aba-blue-dark);
    border: 1px solid #c9dfef;
    border-radius: 12px;
    background: var(--aba-blue-soft);
    font-size: 1.15rem;
    place-items: center;
}

body.aba-app .aba-login-form-panel h1 {
    margin: 0;
    font-size: clamp(1.8rem, 4vw, 2.2rem);
}

.aba-login-description {
    margin: .75rem 0 1.6rem;
    color: var(--aba-muted);
}

.aba-password-group .input-group-text {
    padding-right: .35rem;
    padding-left: .9rem;
    color: #607589;
    border-color: #bfcdd9;
    border-right: 0;
    border-radius: 10px 0 0 10px;
    background: #fff;
}

body.aba-app .aba-password-group .form-control {
    min-width: 0;
    min-height: 54px;
    padding-left: .55rem;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
}

.aba-password-group:focus-within .input-group-text,
.aba-password-group:focus-within .aba-password-toggle {
    border-color: var(--aba-blue);
}

body.aba-app .aba-password-toggle {
    min-width: 52px;
    min-height: 54px;
    padding: .5rem .8rem;
    color: #53697d;
    border: 1px solid #bfcdd9;
    border-left: 0;
    border-radius: 0 10px 10px 0;
    background: #fff;
    box-shadow: none;
}

body.aba-app .aba-password-toggle:hover,
body.aba-app .aba-password-toggle:focus-visible {
    color: var(--aba-blue-dark);
    background: var(--aba-blue-soft);
    transform: none;
}

.aba-login-error {
    display: flex;
    margin: .25rem 0 1rem;
    padding: .7rem .8rem;
    gap: .55rem;
    align-items: flex-start;
    color: var(--aba-red-dark);
    border: 1px solid #efc6cb;
    border-radius: 9px;
    background: var(--aba-red-soft);
    font-size: .88rem;
    font-weight: 650;
}

.aba-login-submit {
    display: flex;
    width: 100%;
    min-height: 54px !important;
    margin-top: 1rem;
    align-items: center;
    justify-content: center;
    gap: .65rem;
}

.aba-login-submit .bi-arrow-right {
    transition: transform .15s ease;
}

.aba-login-submit:hover .bi-arrow-right {
    transform: translateX(3px);
}

.aba-login-note {
    margin: 1.2rem 0 0;
    color: #84909d;
    font-size: .78rem;
    text-align: center;
}

.aba-login-note i {
    margin-right: .15rem;
}

.aba-header {
    position: sticky;
    z-index: 1030;
    top: 0;
    border-bottom: 1px solid rgba(220, 229, 237, .9);
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 4px 22px rgba(31, 65, 93, .05);
    backdrop-filter: blur(14px);
}

.aba-header .navbar {
    min-height: 82px;
    padding: .55rem 0;
}

.aba-header .navbar-brand {
    display: inline-flex;
    margin-right: 2rem;
    align-items: center;
}

.aba-header .navbar-brand img {
    width: 142px;
    height: 58px;
    object-fit: contain;
}

.aba-header .nav-link {
    padding: .68rem .82rem !important;
    color: #344354;
    border: 0;
    border-radius: 9px;
    background: transparent;
    font-weight: 650;
}

.aba-header .nav-link:hover,
.aba-header .nav-link.active,
.aba-header .nav-link.show {
    color: var(--aba-blue-dark);
    background: var(--aba-blue-soft);
}

.aba-header .dropdown-menu {
    min-width: 230px;
    padding: .45rem;
    border: 1px solid var(--aba-line);
    border-radius: 12px;
    box-shadow: var(--aba-shadow);
}

.aba-header .dropdown-item {
    padding: .62rem .72rem;
    border-radius: 8px;
    color: #344354;
    font-weight: 600;
}

.aba-header .dropdown-item:hover,
.aba-header .dropdown-item.active {
    color: var(--aba-blue-dark);
    background: var(--aba-blue-soft);
}

.aba-header .navbar-toggler {
    min-width: 56px;
    min-height: 44px;
    border-color: #b9cfe0;
    border-radius: 9px;
}

.aba-header .navbar > .container {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.aba-launcher-wrap {
    margin-left: auto;
}

.aba-launcher-toggle {
    display: inline-grid;
    width: 48px;
    height: 48px;
    padding: 0;
    place-items: center;
    color: var(--aba-blue-dark);
    border: 1px solid #b9cfe0;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(31, 65, 93, .12);
    font-size: 1.45rem;
    cursor: pointer;
    transition: color .15s ease, border-color .15s ease, background-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.aba-launcher-toggle:hover,
.aba-launcher-toggle:focus-visible,
.aba-launcher-toggle[aria-expanded="true"] {
    color: var(--aba-blue-dark);
    border-color: #78acd1;
    outline: 0;
    background: var(--aba-blue-soft);
    box-shadow: 0 0 0 3px rgba(23, 105, 170, .12), 0 6px 16px rgba(31, 65, 93, .16);
    transform: translateY(-1px);
}

.aba-header .aba-app-launcher.dropdown-menu {
    width: min(660px, calc(100vw - 24px));
    max-height: min(760px, calc(100dvh - 96px));
    margin-top: .65rem !important;
    padding: .75rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid #d6e1e9;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 18px 55px rgba(31, 65, 93, .22);
}

.aba-launcher-search {
    position: sticky;
    z-index: 2;
    top: -.75rem;
    display: flex;
    align-items: center;
    margin: -.75rem -.75rem .55rem;
    padding: .75rem;
    background: rgba(255, 255, 255, .97);
    backdrop-filter: blur(10px);
}

.aba-launcher-search .bi {
    position: absolute;
    left: 1.65rem;
    color: #6b7b89;
    pointer-events: none;
}

.aba-launcher-search .form-control {
    min-height: 46px;
    padding-left: 2.55rem;
    border-color: #d5e0e8;
    border-radius: 23px;
    background: #f5f8fb;
    box-shadow: none;
}

.aba-launcher-search .form-control:focus {
    border-color: #83b7dc;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(23, 105, 170, .12);
}

.aba-launcher-sections {
    display: grid;
    gap: .75rem;
}

.aba-launcher-section {
    min-width: 0;
    padding-top: .75rem;
    border-top: 1px solid #e1e9ef;
}

.aba-launcher-section:first-child {
    padding-top: 0;
    border-top: 0;
}

.aba-launcher-section > h2 {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin: 0 0 .35rem .3rem;
    color: #51697a;
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.aba-launcher-section > h2 .bi {
    color: var(--aba-blue-dark);
    font-size: .9rem;
}

.aba-launcher-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .5rem;
}

.aba-launcher-item {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 102px;
    padding: .65rem .35rem .55rem;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    color: #314150;
    border: 1px solid transparent;
    border-radius: 14px;
    text-align: center;
    text-decoration: none;
    transition: color .15s ease, border-color .15s ease, background-color .15s ease, transform .15s ease;
}

.aba-launcher-item:hover,
.aba-launcher-item:focus-visible {
    color: var(--aba-blue-dark);
    border-color: #d4e4ef;
    outline: 0;
    background: #f2f7fb;
    transform: translateY(-1px);
}

.aba-launcher-item.active {
    color: var(--aba-blue-dark);
    border-color: #bdd8eb;
    background: var(--aba-blue-soft);
}

.aba-launcher-icon {
    display: grid;
    width: 46px;
    height: 46px;
    margin-bottom: .42rem;
    place-items: center;
    color: var(--aba-blue-dark);
    border-radius: 14px;
    background: #e7f2fa;
    font-size: 1.35rem;
}

.aba-launcher-label {
    width: 100%;
    overflow: hidden;
    font-size: .82rem;
    font-weight: 750;
    line-height: 1.15;
    text-overflow: ellipsis;
}

.aba-launcher-new-tab {
    position: absolute;
    top: .55rem;
    right: .55rem;
    color: #8293a0;
    font-size: .68rem;
}

.aba-launcher-session {
    padding-top: .65rem;
    border-top: 1px solid #e1e9ef;
}

.aba-launcher-session .aba-launcher-item {
    min-height: 52px;
    padding: .35rem .7rem;
    align-items: center;
    flex-direction: row;
    gap: .65rem;
}

.aba-launcher-session .aba-launcher-icon {
    width: 36px;
    height: 36px;
    margin-bottom: 0;
    border-radius: 10px;
    font-size: 1rem;
}

.aba-launcher-session .aba-launcher-label {
    width: auto;
    text-align: left;
}

.aba-launcher-logout .aba-launcher-icon {
    color: #a83232;
    background: #fbeaea;
}

.aba-launcher-logout:hover,
.aba-launcher-logout:focus-visible {
    color: #8e2424;
    border-color: #efd0d0;
    background: #fff3f3;
}

.aba-launcher-empty {
    margin: .85rem 0 .35rem;
    padding: 1rem;
    color: #657582;
    text-align: center;
}

body.aba-app .btn {
    min-height: 44px;
    padding: .6rem 1rem;
    border-radius: 9px;
    font-weight: 700;
    transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}

body.aba-app .btn:hover {
    transform: translateY(-1px);
}

body.aba-app .btn-primary {
    border-color: var(--aba-blue);
    background: var(--aba-blue);
    box-shadow: 0 5px 14px rgba(23, 105, 170, .17);
}

body.aba-app .btn-primary:hover,
body.aba-app .btn-primary:focus {
    border-color: var(--aba-blue-dark);
    background: var(--aba-blue-dark);
}

body.aba-app .btn-outline-primary {
    color: var(--aba-blue-dark);
    border-color: #9fc1dc;
}

body.aba-app .btn-outline-primary:hover {
    color: var(--aba-blue-dark);
    border-color: #7da8c9;
    background: var(--aba-blue-soft);
}

body.aba-app .btn-danger {
    border-color: var(--aba-red);
    background: var(--aba-red);
    box-shadow: 0 5px 14px rgba(199, 61, 74, .15);
}

body.aba-app .btn-danger:hover,
body.aba-app .btn-danger:focus {
    border-color: var(--aba-red-dark);
    background: var(--aba-red-dark);
}

body.aba-app .form-label {
    margin-bottom: .42rem;
    color: #26384b;
    font-size: .9rem;
    font-weight: 700;
}

body.aba-app .form-control,
body.aba-app .form-select {
    min-height: 50px;
    padding: .66rem .78rem;
    color: var(--aba-ink);
    border-color: #bfcdd9;
    border-radius: 9px;
    background-color: #fff;
}

body.aba-app .form-control:focus,
body.aba-app .form-select:focus {
    border-color: var(--aba-blue);
    box-shadow: 0 0 0 .25rem rgba(23, 105, 170, .12);
}

body.aba-app .form-check-input:checked {
    border-color: var(--aba-blue);
    background-color: var(--aba-blue);
}

body.aba-app .alert {
    padding: 1rem 1.1rem;
    border-radius: 10px;
}

body.aba-app .alert-info {
    color: var(--aba-blue-dark);
    border-color: #bcd4e7;
    background: var(--aba-blue-soft);
}

body.aba-app .alert-success {
    color: var(--aba-success);
    border-color: #bde0ce;
    background: var(--aba-success-soft);
}

body.aba-app .alert-warning {
    color: var(--aba-warning);
    border-color: #ead49d;
    background: var(--aba-warning-soft);
}

body.aba-app .alert-danger {
    color: var(--aba-red-dark);
    border-color: #edbdc2;
    background: var(--aba-red-soft);
}

body.aba-app .list-group {
    border: 1px solid var(--aba-line);
    border-radius: 12px;
    box-shadow: var(--aba-shadow);
    overflow: hidden;
}

body.aba-app .list-group-item {
    padding: .95rem 1.05rem;
    border-color: var(--aba-line);
}

body.aba-app .table-responsive {
    border: 1px solid var(--aba-line);
    border-radius: 12px;
    background: white;
    box-shadow: var(--aba-shadow);
    -webkit-overflow-scrolling: touch;
}

body.aba-app .table {
    --bs-table-bg: transparent;
    --bs-table-hover-bg: #f8fbfd;
    margin-bottom: 0;
    background: white;
}

body.aba-app .table > :not(caption) > * > * {
    padding: .78rem .85rem;
    border-bottom-color: #e7edf2;
    vertical-align: middle;
}

body.aba-app .table thead th,
body.aba-app .table > tbody:first-child > tr:first-child > th {
    color: #3c4b5b;
    background: #f1f6fa;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .02em;
    white-space: nowrap;
}

body.aba-app .table-borderless {
    background: transparent;
    box-shadow: none;
}

body.aba-app .table-borderless > :not(caption) > * > * {
    border: 0;
    background: transparent;
}

.page-inscription .container > .row > .col-md-6,
.page-montee-de-terrain .container > .col-6,
.page-edit_member .container > .row > .col-md-6,
.page-paiement .container,
.page-merci .container > .row > .col-md-6,
.page-merci-paiement .container > .row > .col-md-6 {
    width: min(820px, 100%);
    padding: clamp(1.25rem, 4vw, 2.35rem);
    border: 1px solid var(--aba-line);
    border-radius: var(--aba-radius);
    background: rgba(255, 255, 255, .97);
    box-shadow: var(--aba-shadow);
}

.page-montee-de-terrain .container > .col-6 {
    margin-right: auto;
    margin-left: auto;
}

.page-inscription h2.display-6,
.page-montee-de-terrain h2.display-6,
.page-merci h2.display-6,
.page-merci-paiement h2.display-6 {
    display: flex;
    align-items: center;
    gap: .7rem;
    font-size: clamp(2rem, 4vw, 2.8rem);
}

.page-inscription h2.display-6 img,
.page-merci h2.display-6 img,
.page-merci-paiement h2.display-6 img {
    width: 56px;
    height: 56px;
    object-fit: contain;
}

.page-inscription .border-danger {
    border-width: 2px !important;
    border-radius: 10px;
    background: #fffafa;
}

.page-montee-de-terrain .border-start {
    padding: 1.25rem !important;
    border-radius: 0 10px 10px 0;
    background: #f8fcfa;
}

.page-montee-de-terrain .border-start.border-danger {
    background: #fffafb;
}

.page-gestion .row-cols-md-2 > .col h3 {
    color: var(--aba-ink);
    font-size: 1.8rem;
}

.page-gestion .row-cols-md-2 > .col:last-child .table {
    width: 100% !important;
    max-width: 620px;
    margin: 0 auto;
    border: 1px solid var(--aba-line);
    border-radius: 12px;
    box-shadow: var(--aba-shadow);
    overflow: hidden;
}

.page-assemblee .border-dark.border-opacity-25 {
    border-color: #bdcad6 !important;
    border-radius: 12px;
    background: linear-gradient(180deg, #fff, #f5f9fc);
}

.page-assemblee .bi-qr-code-scan {
    display: inline-grid;
    width: 84px;
    height: 84px;
    margin-bottom: 1rem;
    place-items: center;
    color: var(--aba-blue-dark);
    border: 2px solid #91b7d3;
    border-radius: 16px;
    background: white;
}

.page-assemblee .scanner-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .75rem;
}

.page-assemblee .manual-member-number {
    width: 100% !important;
    max-width: 360px;
}

.activity-start-panel {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1.75rem;
    padding: clamp(1.25rem, 3.5vw, 2rem);
}

.activity-start-panel-heading,
.activity-workspace-heading {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.activity-step-icon,
.activity-workspace-icon {
    display: inline-grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    place-items: center;
    color: var(--aba-blue-dark);
    border: 1px solid #bed9ed;
    border-radius: 13px;
    background: #edf7fd;
    font-size: 1.25rem;
}

.activity-start-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.activity-choice-group {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.activity-choice-title {
    float: none;
    width: auto;
    margin: 0 0 .15rem;
    padding: 0;
    font-size: 1rem;
    font-weight: 800;
}

.activity-choice-hint {
    margin: 0 0 .7rem;
    color: var(--aba-muted);
    font-size: .86rem;
}

.activity-choice-grid {
    display: grid;
    gap: .65rem;
}

.activity-choice-card {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    min-height: 68px;
    margin: 0;
    padding: .72rem .8rem;
    color: var(--aba-ink);
    border: 2px solid #d5e0e9;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 2px 7px rgba(28, 58, 81, .05);
    cursor: pointer;
    transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease, transform .16s ease;
    -webkit-tap-highlight-color: transparent;
}

.activity-choice-card:hover {
    border-color: #86b7d8;
    background: #f7fbfe;
    box-shadow: 0 5px 14px rgba(28, 86, 126, .1);
    transform: translateY(-1px);
}

.activity-choice-radio {
    display: inline-grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border: 2px solid #aebfcb;
    border-radius: 50%;
    background: #fff;
    transition: border-color .16s ease, box-shadow .16s ease;
}

.activity-choice-radio > span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--aba-blue);
    opacity: 0;
    transform: scale(.35);
    transition: opacity .16s ease, transform .16s ease;
}

.activity-choice-copy,
.activity-choice-copy strong,
.activity-choice-copy small {
    display: block;
    min-width: 0;
}

.activity-choice-copy strong {
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.activity-choice-copy small {
    margin-top: .2rem;
    color: var(--aba-muted);
    line-height: 1.25;
}

.activity-choice-input:checked + .activity-choice-card {
    color: #173f5b;
    border-color: var(--aba-blue);
    background: #eef8fd;
    box-shadow: 0 0 0 3px rgba(37, 126, 181, .12), 0 7px 16px rgba(28, 86, 126, .12);
}

.activity-choice-input:checked + .activity-choice-card .activity-choice-radio {
    border-color: var(--aba-blue);
    box-shadow: 0 0 0 3px rgba(37, 126, 181, .12);
}

.activity-choice-input:checked + .activity-choice-card .activity-choice-radio > span {
    opacity: 1;
    transform: scale(1);
}

.activity-choice-input:focus-visible + .activity-choice-card {
    outline: 3px solid rgba(20, 103, 158, .35);
    outline-offset: 3px;
}

.activity-choice-input:disabled + .activity-choice-card {
    opacity: .58;
    cursor: not-allowed;
}

.activity-choice-empty {
    min-height: 74px;
    padding: 1rem;
    color: var(--aba-muted);
    border: 1px dashed #b9c8d3;
    border-radius: 13px;
    background: #f7f9fb;
}

.activity-start-submit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--aba-line);
}

.activity-start-submit > span {
    display: flex;
    align-items: center;
    gap: .5rem;
    color: var(--aba-muted);
    font-size: .9rem;
}

.activity-start-submit > span i {
    color: #318358;
}

.activity-live-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding: clamp(1.25rem, 3vw, 1.75rem);
    border: 1px solid #c7daea;
    border-radius: var(--aba-radius);
    background: linear-gradient(135deg, #fff 20%, #edf7fd);
    box-shadow: var(--aba-shadow);
}

.activity-live-status {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .36rem .7rem;
    color: #17643d;
    border: 1px solid #a9dbc0;
    border-radius: 999px;
    background: #edfaf2;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.activity-live-status > span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #2d9b5f;
    box-shadow: 0 0 0 4px rgba(45, 155, 95, .13);
}

.activity-live-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.activity-capacity-card .progress {
    height: 6px;
    margin-top: .65rem;
    background: #e3edf4;
}

.activity-capacity-card .progress-bar {
    background: linear-gradient(90deg, var(--aba-blue-dark), #62a8d3);
}

.activity-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
    gap: 1.25rem;
    align-items: stretch;
}

.activity-scanner-panel,
.activity-manual-panel {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 1.25rem;
}

.activity-workspace-heading h2 {
    font-weight: 800;
}

.activity-workspace-icon.manual {
    color: #674795;
    border-color: #d7c9ed;
    background: #f5f0fc;
}

.activity-camera-placeholder {
    display: grid;
    min-height: 210px;
    padding: 1.5rem;
    place-items: center;
    align-content: center;
    gap: .35rem;
    color: var(--aba-muted);
    border: 2px dashed #bfd4e3;
    border-radius: 14px;
    background: #f8fbfd;
    text-align: center;
}

.activity-camera-placeholder > i {
    margin-bottom: .35rem;
    color: var(--aba-blue-dark);
    font-size: 2rem;
}

.activity-camera-placeholder strong {
    color: var(--aba-ink);
    font-size: 1.05rem;
}

.activity-camera-placeholder span {
    font-size: .88rem;
}

.activity-offline-tools {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: .9rem 1rem;
    border: 1px solid #c8dbe8;
    border-radius: 13px;
    background: #f7fbfe;
}

.activity-offline-copy,
.activity-offline-actions {
    display: flex;
    align-items: center;
    gap: .7rem;
}

.activity-offline-copy > div {
    display: grid;
    gap: .15rem;
    min-width: 0;
}

.activity-offline-copy > div > span {
    color: var(--aba-muted);
    font-size: .82rem;
    line-height: 1.35;
}

.activity-offline-copy > div > span[data-state="ready"] {
    color: #17643d;
}

.activity-offline-copy > div > span[data-state="pending"] {
    color: #8b5800;
}

.activity-offline-copy > div > span[data-state="error"] {
    color: #a72d2d;
}

.activity-offline-icon {
    display: inline-grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    color: var(--aba-blue-dark);
    border-radius: 11px;
    background: #e8f3fa;
    font-size: 1.1rem;
}

.activity-offline-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
}

.activity-connectivity-badge,
.activity-pending-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-height: 32px;
    padding: .32rem .58rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 800;
    white-space: nowrap;
}

.activity-connectivity-badge.online {
    color: #17643d;
    border-color: #addbc2;
    background: #edfaf2;
}

.activity-connectivity-badge.offline,
.activity-pending-badge {
    color: #865500;
    border-color: #efd49b;
    background: #fff8e8;
}

.activity-qr-container {
    width: min(100%, 560px);
    margin-inline: auto;
    overflow: hidden;
    border: 1px solid #bfd4e3;
    border-radius: 14px;
    background: #f8fbfd;
}

.activity-scanner-message {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .75rem 1rem;
    color: var(--aba-ink);
    border-bottom: 1px solid #bfd4e3;
    background: #edf7fd;
    font-size: .9rem;
}

.activity-scanner-message strong {
    white-space: nowrap;
}

.activity-qr-container #reader {
    width: 100%;
    background: #fff;
}

.activity-reader-stage {
    position: relative;
    min-height: 240px;
    overflow: hidden;
    background: #111;
}

.activity-scan-result {
    position: absolute;
    z-index: 10;
    top: 50%;
    left: 50%;
    display: grid;
    width: min(86%, 360px);
    padding: 1.05rem 1.2rem;
    transform: translate(-50%, -50%);
    place-items: center;
    gap: .22rem;
    border: 2px solid #79c39d;
    border-radius: 16px;
    background: rgba(244, 255, 248, .96);
    box-shadow: 0 16px 42px rgba(0, 0, 0, .32);
    color: #134d30;
    text-align: center;
    pointer-events: none;
}

.activity-scan-result.warning {
    color: #754a00;
    border-color: #e0b65c;
    background: rgba(255, 250, 236, .97);
}

.activity-scan-result.error {
    color: #8e2626;
    border-color: #dc9292;
    background: rgba(255, 246, 246, .97);
}

.activity-scan-result-icon {
    font-size: 1.65rem;
    line-height: 1;
}

.activity-scan-result > strong {
    font-size: clamp(1.25rem, 4vw, 1.7rem);
    line-height: 1.15;
}

.activity-scan-result > span:not(.activity-scan-result-icon) {
    font-size: 1rem;
    font-weight: 800;
}

.activity-scan-result > small {
    margin-top: .2rem;
    font-weight: 700;
}

.activity-scanner-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: auto;
}

.activity-manual-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .75rem;
}

.activity-manual-form .manual-member-number {
    width: 100% !important;
    max-width: none;
}

.activity-presence-count {
    display: inline-grid;
    min-width: 42px;
    height: 42px;
    padding: 0 .7rem;
    place-items: center;
    color: #fff;
    border-radius: 12px;
    background: var(--aba-blue-dark);
    font-weight: 800;
}

.page-assemblee > .container:first-of-type,
.page-finances > .container,
.page-stats > .container,
.page-responsables > .container,
.page-liste-membres > .container,
.page-montee-de-terrain-admin > .container,
.page-plages-numeros > .container {
    padding-top: 1rem;
    padding-bottom: 4rem;
}

.page-edit_member label[for="montant_paye"] {
    display: block;
    margin-top: 1.25rem;
}

.page-edit_member .payment-delete-label {
    display: none;
}

.page-cartes .card {
    border-color: #bfc8d1;
    border-radius: 12px;
    box-shadow: 0 16px 42px rgba(26, 48, 69, .16);
    overflow: hidden;
}

.page-cartes .member-card-accent {
    background: var(--aba-lilac);
}

.page-cartes .guest-card-accent {
    background: var(--aba-lilac);
}

.page-cartes .card-body {
    padding: 1.6rem;
}

.page-cartes .card-text img {
    display: block;
    max-width: 100%;
    height: auto;
    margin-right: auto !important;
    margin-left: auto !important;
}

.page-cartes .card-footer {
    padding: .55rem .9rem !important;
}

.page-scan_de_carte > .container {
    width: min(700px, calc(100% - 2rem));
    padding: 2.4rem;
    border: 1px solid var(--aba-line);
    border-radius: var(--aba-radius);
    background: white;
    box-shadow: var(--aba-shadow);
}

.page-party > .container {
    border-radius: 14px;
    background: rgba(255, 255, 255, .93);
    box-shadow: var(--aba-shadow);
}

.range-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.range-summary-card {
    padding: 1.05rem;
    border: 1px solid var(--aba-line);
    border-radius: 11px;
    background: white;
}

.range-summary-card span {
    display: block;
    color: var(--aba-muted);
    font-size: .8rem;
    font-weight: 700;
}

.range-summary-card strong {
    display: block;
    margin-top: .25rem;
    font-size: 1.35rem;
}

.range-table .form-control {
    min-width: 110px;
}

.range-visibility {
    display: inline-flex;
    padding: .3rem .55rem;
    border-radius: 999px;
    color: var(--aba-success);
    background: var(--aba-success-soft);
    font-size: .75rem;
    font-weight: 800;
}

.range-visibility.hidden-category {
    color: var(--aba-muted);
    background: #eef1f4;
}

.range-gap-list {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.range-gap-list code {
    padding: .35rem .55rem;
    color: var(--aba-blue-dark);
    border-radius: 7px;
    background: var(--aba-blue-soft);
}

.category-range-summary-panel {
    overflow: hidden;
}

.category-range-summary-table {
    border: 1px solid var(--aba-line);
    border-radius: 11px;
}

.category-range-summary-table table {
    min-width: 850px;
}

.category-range-summary-table thead th {
    color: #40586b;
    background: #f1f6fa;
    font-size: .78rem;
    letter-spacing: .025em;
    white-space: nowrap;
}

.category-range-summary-table tbody th {
    min-width: 190px;
}

.category-range-summary-table tbody th span,
.category-range-summary-table tbody th small {
    display: block;
}

.category-range-summary-table tbody th small {
    margin-top: .15rem;
    color: var(--aba-muted);
    font-size: .72rem;
    font-weight: 650;
}

.category-range-summary-table td {
    white-space: nowrap;
}

.category-range-summary-table tr.category-summary-hidden > * {
    color: #71808d;
    background: #fafbfc;
}

.category-settings-summary {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.category-settings-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.category-setting-card {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(280px, .8fr) minmax(0, 2.2fr);
    grid-template-areas:
        "header fields"
        "requirements requirements"
        "footer footer";
    overflow: hidden;
    border: 1px solid var(--aba-line);
    border-radius: var(--aba-radius);
    background: rgba(255, 255, 255, .98);
    box-shadow: var(--aba-shadow);
    transition: border-color .16s ease, opacity .16s ease, box-shadow .16s ease, transform .16s ease;
}

.category-setting-card.category-hidden {
    border-color: #d9dee3;
    background: #fbfcfd;
}

.category-setting-card.category-just-moved {
    border-color: #76acd2;
    box-shadow: 0 0 0 3px rgba(23, 105, 170, .1), var(--aba-shadow);
}

.category-move-buttons button,
.settings-move-buttons button {
    display: grid;
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
    color: #496276;
    border: 1px solid #c4d3df;
    border-radius: 9px;
    background: #fff;
    font-size: 1.05rem;
    place-items: center;
}

.category-move-buttons button:hover,
.category-move-buttons button:focus-visible,
.settings-move-buttons button:hover,
.settings-move-buttons button:focus-visible {
    color: var(--aba-blue-dark);
    border-color: #7ca9ca;
    background: var(--aba-blue-soft);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(23, 105, 170, .12);
}

.category-move-buttons,
.settings-move-buttons {
    display: flex;
    gap: .55rem;
}

.category-move-buttons button:disabled,
.settings-move-buttons button:disabled {
    opacity: .35;
    cursor: not-allowed;
}

.category-setting-header {
    display: flex;
    grid-area: header;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
    gap: 1rem;
    padding: 1.1rem 1.15rem;
    border-right: 1px solid var(--aba-line);
    background: linear-gradient(135deg, #f8fbfd, #eef6fb);
}

.category-setting-title-row {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    justify-content: space-between;
}

.category-hidden .category-setting-header {
    background: #f3f5f7;
}

.category-type-id {
    display: block;
    margin-bottom: .25rem;
    color: var(--aba-muted);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.category-visibility-control {
    display: grid;
    margin-top: auto;
    justify-items: start;
    gap: .55rem;
}

.category-visibility-control .form-check-label {
    font-size: .85rem;
    font-weight: 650;
}

.category-setting-fields {
    display: grid;
    grid-area: fields;
    grid-template-columns: minmax(180px, 1.4fr) minmax(105px, .65fr) minmax(115px, .7fr) minmax(115px, .7fr);
    gap: 1rem;
    padding: 1.15rem;
}

.category-setting-fields .form-label,
.previous-number-range .form-label {
    margin-bottom: .35rem;
    font-size: .86rem;
    font-weight: 750;
}

.category-field-note {
    grid-column: 1 / -1;
}

.category-requirements {
    grid-area: requirements;
    margin: 0 1.15rem 1.15rem;
    padding: 1rem;
    border: 1px solid #d8c2df;
    border-radius: 11px;
    background: var(--aba-lilac-soft);
}

.category-requirements legend {
    float: none;
    width: auto;
    margin-bottom: .65rem;
    font-size: .9rem;
    font-weight: 800;
}

.category-requirement-options {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1.25rem;
}

.previous-number-range {
    margin-top: .9rem;
    padding-top: .9rem;
    border-top: 1px solid #dccbe2;
}

.category-range-pair {
    display: grid;
    grid-template-columns: minmax(90px, 1fr) auto minmax(90px, 1fr);
    gap: .55rem;
    align-items: center;
}

.category-setting-footer {
    display: flex;
    grid-area: footer;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .75rem 1rem;
    padding: .8rem 1.15rem;
    border-top: 1px solid var(--aba-line);
    background: #f8fbfd;
}

.category-setting-stats {
    display: flex;
    flex: 1 1 300px;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    color: var(--aba-muted);
    font-size: .82rem;
}

.category-setting-stats strong {
    color: var(--aba-ink);
}

.category-protected-note {
    color: var(--aba-muted);
    font-size: .78rem;
    font-weight: 700;
}

.category-add-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.category-add-name {
    grid-column: 1 / -1;
}

.archived-categories-panel {
    overflow: hidden;
}

.archived-category-list {
    display: grid;
    gap: .75rem;
    padding: 1rem 1.25rem 1.25rem;
}

.archived-category-row {
    display: grid;
    grid-template-columns: minmax(180px, .8fr) minmax(260px, 1.2fr) auto;
    align-items: center;
    gap: 1rem;
    padding: .9rem 1rem;
    border: 1px solid var(--aba-line);
    border-radius: 10px;
    background: #f8f9fa;
}

.archived-category-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem 1.25rem;
    color: var(--aba-muted);
    font-size: .85rem;
}

.archived-category-meta strong {
    color: var(--aba-ink);
}

.archived-category-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
}

.category-settings-savebar {
    position: sticky;
    z-index: 10;
    bottom: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid #b9d8ee;
    border-radius: 12px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 12px 30px rgba(31, 65, 93, .16);
    backdrop-filter: blur(10px);
}

.visitor-package-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.visitor-package-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.gymnasium-admin .category-settings-savebar {
    position: static;
}

body.aba-app .category-settings-admin,
body.aba-app .gymnasium-admin,
body.aba-app .visitor-package-admin,
body.aba-app .email-template-admin,
body.aba-app.page-responsables .aba-admin-main,
body.aba-app .season-settings-page {
    width: 100%;
    max-width: 1180px;
    margin-right: auto;
    margin-left: auto;
}

.season-settings-summary {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.season-settings-summary .range-summary-card small {
    display: block;
    margin-top: .25rem;
    color: var(--aba-muted);
    font-size: .78rem;
    font-weight: 600;
}

.season-name-panel,
.season-password-panel,
.season-danger-panel {
    padding: clamp(1.2rem, 3vw, 1.75rem);
}

.season-panel-heading {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.season-panel-icon {
    display: inline-grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    place-items: center;
    color: var(--aba-blue-dark);
    border: 1px solid #bed9ed;
    border-radius: 13px;
    background: #edf7fd;
    font-size: 1.25rem;
}

.season-panel-icon.danger {
    color: #a42634;
    border-color: #efbdc3;
    background: #fff1f2;
}

.season-name-form {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr)) auto;
    gap: 1rem;
    align-items: end;
}

.season-name-form .form-control {
    max-width: 440px;
}

.season-password-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr)) auto;
    gap: 1rem;
    align-items: end;
}

.season-password-group {
    max-width: 440px;
}

.season-password-group .form-control {
    min-width: 0;
    min-height: 54px;
    border-right: 0;
    border-radius: 10px 0 0 10px;
}

body.aba-app .season-password-toggle {
    min-width: 54px;
    min-height: 54px;
    color: #53697d;
    border: 1px solid #bfcdd9;
    border-left: 0;
    border-radius: 0 10px 10px 0;
    background: #fff;
    box-shadow: none;
}

.season-password-group:focus-within .season-password-toggle {
    border-color: var(--aba-blue);
}

body.aba-app .season-password-toggle:hover,
body.aba-app .season-password-toggle:focus-visible {
    color: var(--aba-blue-dark);
    background: var(--aba-blue-soft);
    transform: none;
}

.season-field-label {
    display: flex;
    align-items: center;
    gap: .35rem;
    margin-bottom: .5rem;
}

.season-field-label .form-label {
    margin-bottom: 0;
}

.season-field-info {
    display: inline-grid;
    width: 44px;
    height: 44px;
    padding: 0;
    place-items: center;
    color: var(--aba-blue-dark);
    border: 0;
    border-radius: 50%;
    background: transparent;
    font-size: .95rem;
    line-height: 1;
}

.season-field-info:hover,
.season-field-info:focus-visible {
    color: white;
    outline: none;
    background: var(--aba-blue-dark);
}

.season-danger-panel {
    border-color: #e9b6bc;
    box-shadow: 0 12px 32px rgba(126, 34, 45, .08);
}

.season-reset-comparison {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.season-reset-column {
    min-width: 0;
    padding: 1.1rem;
    border: 1px solid var(--aba-line);
    border-radius: 12px;
}

.season-reset-column.removed {
    border-color: #efc4c9;
    background: #fff7f8;
}

.season-reset-column.preserved {
    border-color: #b9dfca;
    background: #f3fbf6;
}

.season-reset-column h3 {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: .75rem;
    font-weight: 800;
}

.season-reset-column.removed h3 {
    color: #9b2634;
}

.season-reset-column.preserved h3 {
    color: #17643d;
}

.season-reset-column ul {
    display: grid;
    gap: .55rem;
    margin: 0;
    padding-left: 1.2rem;
    color: #4f5f6d;
    font-size: .9rem;
}

.season-danger-action {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: .55rem;
    padding-top: 1.25rem;
    border-top: 1px solid #efd0d4;
}

.season-danger-action small {
    color: var(--aba-muted);
}

.season-last-reset {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: 1.25rem;
    color: var(--aba-muted);
    font-size: .84rem;
}

.season-reset-modal {
    overflow: hidden;
    border: 1px solid #e6aeb5;
    border-radius: 15px;
}

.season-reset-modal .modal-header {
    align-items: flex-start;
    background: #fff7f8;
}

.season-modal-warning {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: .8rem;
    align-items: center;
    margin-bottom: 1.25rem;
    padding: 1rem;
    color: #812331;
    border: 1px solid #efc4c9;
    border-radius: 11px;
    background: #fff7f8;
}

.season-modal-warning i {
    font-size: 1.65rem;
    text-align: center;
}

.season-modal-warning p {
    margin: 0;
}

.season-confirmation-phrase {
    padding: .75rem .85rem;
    color: #812331;
    border: 1px solid #efc4c9;
    border-radius: 9px;
    background: #fff7f8;
    font-size: .9rem;
    overflow-wrap: anywhere;
    user-select: all;
}

.season-reset-check {
    padding: 1rem 1rem 1rem 2.7rem;
    border: 1px solid var(--aba-line);
    border-radius: 11px;
    background: #f8fafc;
}

.visitor-package-card {
    display: grid;
    grid-template-columns: minmax(280px, .8fr) minmax(0, 2.2fr);
    grid-template-areas:
        "header fields"
        "footer footer";
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--aba-line);
    border-radius: var(--aba-radius);
    background: rgba(255, 255, 255, .98);
    box-shadow: var(--aba-shadow);
    transition: border-color .16s ease, opacity .16s ease;
}

.visitor-package-card.visitor-package-hidden {
    border-color: #d9dee3;
    background: #fbfcfd;
}

.visitor-package-card-header {
    display: flex;
    grid-area: header;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    gap: 1rem;
    padding: 1.1rem 1.15rem;
    border-right: 1px solid var(--aba-line);
    background: linear-gradient(135deg, #f8fbfd, #eef6fb);
}

.visitor-package-card-title-row {
    display: flex;
    width: 100%;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
}

.visitor-package-hidden .visitor-package-card-header {
    background: #f3f5f7;
}

.visitor-package-visibility {
    display: grid;
    margin-top: auto;
    justify-items: start;
    gap: .55rem;
}

.visitor-package-visibility .form-check-label {
    font-size: .85rem;
    font-weight: 650;
}

.visitor-package-fields {
    display: grid;
    grid-area: fields;
    grid-template-columns: minmax(180px, 1.4fr) minmax(130px, .7fr) minmax(150px, .8fr);
    gap: 1rem;
    padding: 1.15rem;
}

.visitor-package-fields .form-label {
    margin-bottom: .35rem;
    font-size: .86rem;
    font-weight: 750;
}

.visitor-package-label-field {
    grid-column: auto;
}

.visitor-package-card-footer {
    display: flex;
    grid-area: footer;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem 1.15rem;
    color: var(--aba-muted);
    border-top: 1px solid var(--aba-line);
    background: #f8fbfd;
    font-size: .82rem;
}

.member-category-card.single-column {
    grid-template-columns: 1fr;
}

.tournoi-public {
    max-width: 1040px !important;
}

.tournoi-public-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.tournoi-brand {
    display: inline-flex;
    padding: .35rem .5rem;
    border-radius: 10px;
    background: white;
}

.tournoi-brand img {
    width: 150px;
    height: 62px;
    object-fit: contain;
}

.tournoi-heading,
.tournoi-confirmation {
    padding: clamp(1.4rem, 4vw, 2.5rem);
    border: 1px solid var(--aba-line);
    border-radius: var(--aba-radius);
    background: linear-gradient(135deg, #fff 0%, #f8fbfe 62%, var(--aba-lilac-soft) 100%);
    box-shadow: var(--aba-shadow);
}

.tournoi-heading h1 {
    margin-bottom: .7rem;
    font-size: clamp(2rem, 5vw, 3.35rem);
    font-weight: 850;
}

.tournoi-kicker {
    color: var(--aba-blue-dark);
    font-size: .8rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.tournoi-important {
    max-width: 760px;
    color: var(--aba-red-dark);
    font-size: 1.05rem;
    font-style: italic;
    font-weight: 750;
}

.tournoi-confirmation {
    max-width: 760px;
    margin: 3rem auto;
}

.tournoi-confirmation-icon {
    display: inline-grid;
    width: 76px;
    height: 76px;
    place-items: center;
    color: white;
    border-radius: 50%;
    background: var(--aba-success);
    font-size: 2.4rem;
}

.tournoi-confirmation-icon.payment-result-error {
    background: var(--aba-red);
}

.tournoi-section {
    margin-top: 1.25rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid var(--aba-line);
    border-radius: var(--aba-radius);
    background: rgba(255, 255, 255, .98);
    box-shadow: var(--aba-shadow);
}

.tournoi-section-heading {
    display: flex;
    align-items: flex-start;
    gap: .9rem;
    margin-bottom: 1.5rem;
}

.tournoi-section-heading > span {
    display: inline-grid;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    place-items: center;
    color: white;
    border-radius: 10px;
    background: var(--aba-blue);
    font-weight: 850;
}

.tournoi-section-heading h2 {
    margin: 0 0 .15rem;
    font-size: clamp(1.35rem, 3vw, 1.75rem);
}

.tournoi-section-heading p {
    margin: 0;
    color: var(--aba-muted);
}

.tournoi-field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.tournoi-choice-group {
    min-width: 0;
    margin: 0;
    padding: 1rem;
    border: 1px solid var(--aba-line);
    border-radius: 11px;
    background: #fbfdff;
}

.tournoi-choice-group > legend {
    float: none;
    width: auto;
    margin-bottom: .55rem;
    font-size: .95rem;
}

.tournoi-choice-list {
    display: grid;
    gap: .45rem;
}

.tournoi-choice,
.tournoi-menu-check {
    min-height: 30px;
    padding-left: 1.8rem;
}

.tournoi-choice .form-check-input,
.tournoi-menu-check .form-check-input,
.tournoi-event-toggle .form-check-input {
    width: 1.15rem;
    height: 1.15rem;
    margin-top: .18rem;
}

.tournoi-choice .form-check-label,
.tournoi-menu-check .form-check-label {
    overflow-wrap: anywhere;
}

.tournoi-event-card {
    padding: 1.1rem;
    border: 1px solid var(--aba-line);
    border-radius: 11px;
    background: #fbfdff;
}

.tournoi-event-toggle {
    min-height: 32px;
    padding-left: 1.9rem;
}

.tournoi-event-toggle .form-check-label {
    font-size: 1.05rem;
    font-weight: 800;
}

.tournoi-conditional {
    padding: 1rem;
    border-left: 4px solid var(--aba-lilac);
    border-radius: 0 9px 9px 0;
    background: var(--aba-lilac-soft);
}

.tournoi-conditional .tournoi-choice-group {
    background: white;
}

.tournoi-menu-grid,
.tournoi-beverage-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.tournoi-menu-card,
.tournoi-beverage-card {
    min-width: 0;
    padding: 1.1rem;
    border: 1px solid var(--aba-line);
    border-radius: 11px;
    background: #fbfdff;
}

.tournoi-menu-check .form-check-label {
    color: var(--aba-blue-dark);
    font-size: 1.05rem;
    font-weight: 850;
}

.tournoi-menu-card ul {
    margin: .8rem 0 0;
    padding-left: 1.2rem;
    color: #4f5e6d;
    font-size: .9rem;
}

.tournoi-menu-card li + li {
    margin-top: .25rem;
}

.tournoi-quantity {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--aba-line);
}

.tournoi-quantity .form-control {
    max-width: 180px;
}

.tournoi-submit-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.25rem;
    padding: 1.1rem 1.25rem;
    border: 1px solid #bcd4e7;
    border-radius: var(--aba-radius);
    background: var(--aba-blue-soft);
}

.tournoi-summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .8rem;
}

.tournoi-empty-state,
.tournoi-admin-detail {
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid var(--aba-line);
    border-radius: var(--aba-radius);
    background: white;
    box-shadow: var(--aba-shadow);
}

.tournoi-empty-state {
    text-align: center;
}

.tournoi-empty-state > i {
    color: var(--aba-muted);
    font-size: 2.5rem;
}

.tournoi-detail-header {
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--aba-line);
}

.tournoi-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.25rem;
}

.tournoi-detail-grid > section {
    min-width: 0;
    padding: 1.1rem;
    border: 1px solid var(--aba-line);
    border-radius: 11px;
    background: #fbfdff;
}

.tournoi-detail-grid h3 {
    margin-bottom: .85rem;
    font-size: 1.1rem;
}

.tournoi-detail-grid dl {
    margin: 0;
}

.tournoi-detail-grid dl > div {
    display: grid;
    grid-template-columns: minmax(120px, .7fr) minmax(0, 1.3fr);
    gap: .75rem;
    padding: .55rem 0;
    border-bottom: 1px solid #e6edf3;
}

.tournoi-detail-grid dl > div:last-child {
    border-bottom: 0;
}

.tournoi-detail-grid dt {
    color: var(--aba-muted);
    font-size: .82rem;
}

.tournoi-detail-grid dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
    font-weight: 700;
}

.tournoi-order-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.tournoi-order-list li {
    display: flex;
    justify-content: space-between;
    gap: .8rem;
    padding: .55rem 0;
    border-bottom: 1px solid #e6edf3;
}

.tournoi-order-list li:last-child {
    border-bottom: 0;
}

.tournoi-order-list strong {
    display: inline-grid;
    flex: 0 0 32px;
    height: 32px;
    place-items: center;
    border-radius: 8px;
    background: var(--aba-blue-soft);
}

.tournoi-submissions-table td {
    max-width: 260px;
    overflow-wrap: anywhere;
}

.tournoi-submissions-table .btn {
    white-space: nowrap;
}

.montee-heading h1 {
    max-width: 820px;
}

.montee-team-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.montee-player-card {
    min-width: 0;
    padding: clamp(1rem, 2vw, 1.35rem);
    border: 1px solid var(--aba-line);
    border-radius: 12px;
    background: #fbfdff;
}

.montee-player-card h3 {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-bottom: 1.2rem;
    color: var(--aba-blue-dark);
    font-size: 1.2rem;
}

.montee-player-card h3 > span {
    display: inline-grid;
    width: 32px;
    height: 32px;
    place-items: center;
    color: white;
    border-radius: 50%;
    background: var(--aba-lilac);
    font-size: .9rem;
}

.montee-player-card .montee-choice-group {
    margin-bottom: 1rem;
    background: white;
}

.montee-optional {
    display: inline-block;
    margin-left: .35rem;
    padding: .15rem .45rem;
    color: var(--aba-muted);
    border-radius: 999px;
    background: #eaf0f5;
    font-size: .72rem;
    font-weight: 750;
    vertical-align: middle;
}

.montee-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.montee-submissions-table {
    contain: layout inline-size;
}

.aba-admin-main {
    padding-top: .75rem;
}

.aba-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
}

.aba-page-header h1 {
    font-weight: 850;
}

.aba-page-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .65rem;
}

.aba-admin-panel {
    min-width: 0;
    padding: clamp(1rem, 2.5vw, 1.5rem);
    border: 1px solid var(--aba-line);
    border-radius: var(--aba-radius);
    background: rgba(255, 255, 255, .98);
    box-shadow: var(--aba-shadow);
}

.aba-admin-panel > .table-responsive {
    box-shadow: none;
}

.aba-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.15rem;
}

.aba-panel-header h2 {
    font-weight: 800;
}

.aba-table-search {
    position: relative;
    width: min(340px, 100%);
    flex: 0 1 340px;
}

.aba-table-search > i {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: .85rem;
    color: var(--aba-muted);
    transform: translateY(-50%);
}

body.aba-app .aba-table-search .form-control {
    padding-left: 2.45rem;
}

.aba-empty-inline {
    border: 0;
    box-shadow: none;
}

.member-summary {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.finance-summary,
.stats-summary,
.responsible-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.member-admin-table {
    contain: layout inline-size;
}

.member-admin-table table {
    min-width: 1180px;
}

.page-finances .tournoi-submissions-table table {
    min-width: 900px;
}

.page-responsables .tournoi-submissions-table table {
    min-width: 560px;
}

.page-responsables .tournoi-submissions-table {
    contain: layout inline-size;
}

.page-liste-membres .tournoi-submissions-table table {
    min-width: 720px;
}

.page-stats .table-responsive table {
    min-width: 520px;
}

.page-stats .aba-admin-panel:last-child .table-responsive table {
    min-width: 820px;
}

.member-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.member-form-grid > div {
    min-width: 0;
}

.member-category-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .8fr);
    gap: 1rem;
    align-items: start;
}

.member-category-help,
.member-conditional {
    padding: 1rem;
    border-left: 4px solid var(--aba-lilac);
    border-radius: 0 10px 10px 0;
    background: var(--aba-lilac-soft);
}

.member-category-help p {
    margin: 0;
}

.member-category-help p + p {
    margin-top: .7rem;
}

.member-conditional .form-control {
    max-width: 360px;
}

.member-safety-notice {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    padding: 1.15rem;
    border: 1px solid #edbdc2;
    border-radius: 12px;
    background: #fffafa;
}

.member-safety-notice > i {
    display: inline-grid;
    width: 44px;
    height: 44px;
    place-items: center;
    color: var(--aba-red-dark);
    border-radius: 11px;
    background: var(--aba-red-soft);
    font-size: 1.35rem;
}

.member-safety-notice h3 {
    margin-bottom: .55rem;
    font-size: 1.15rem;
}

.member-safety-notice p {
    color: #4b5967;
}

.member-confirmation-list {
    display: grid;
    gap: .75rem;
}

.member-confirmation-list .form-check {
    min-height: 48px;
    padding: .75rem .85rem .75rem 2.65rem;
    border: 1px solid var(--aba-line);
    border-radius: 10px;
    background: #fbfdff;
}

.member-confirmation-list .form-check-input {
    width: 1.2rem;
    height: 1.2rem;
    margin-left: -1.8rem;
}

.member-confirmation-list .form-check-label {
    font-weight: 650;
}

.member-confirmation {
    text-align: left;
}

.member-next-steps {
    padding: 1rem 1.1rem;
    border: 1px solid var(--aba-line);
    border-radius: 11px;
    background: #fbfdff;
}

.member-next-steps li + li {
    margin-top: .45rem;
}

.payment-form-content {
    display: grid;
    grid-template-columns: minmax(220px, .75fr) minmax(0, 1.25fr);
    gap: 1rem;
    align-items: start;
}

.payment-choice-group {
    background: #fbfdff;
}

.party-heading {
    position: relative;
    overflow: hidden;
}

.party-heading::after {
    position: absolute;
    right: -18px;
    bottom: -28px;
    width: 150px;
    height: 150px;
    content: "";
    opacity: .12;
    background: url("img/icons8-confetti-ball-96.png") center / contain no-repeat;
    transform: rotate(-12deg);
}

.member-editor {
    max-width: 1040px !important;
}

.member-editor-panel {
    padding: clamp(1.15rem, 3vw, 2rem);
}

.member-editor-heading {
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--aba-line);
}

.member-editor-heading h2 {
    font-size: 1.35rem;
}

.member-editor [data-paiement-ligne] {
    padding: .8rem;
    border: 1px solid var(--aba-line);
    border-radius: 10px;
    background: #fbfdff;
}

.stats-filter-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.stats-filter-group {
    min-width: 0;
    margin: 0;
    padding: 1rem;
    border: 1px solid var(--aba-line);
    border-radius: 11px;
    background: #fbfdff;
}

.stats-filter-group legend {
    float: none;
    width: auto;
    margin-bottom: .65rem;
    font-size: 1rem;
    font-weight: 800;
}

.stats-filter-group .form-check + .form-check {
    margin-top: .45rem;
}

.responsible-add-form {
    display: flex;
    width: min(470px, 100%);
    gap: .65rem;
}

.responsible-add-form .form-control {
    min-width: 0;
}

.email-template-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.email-template-layout {
    display: grid;
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}

.email-template-sidebar,
.email-template-editor {
    min-width: 0;
}

.email-template-sidebar {
    position: sticky;
    top: 102px;
    padding: 1rem;
}

.email-template-list {
    display: grid;
    gap: .55rem;
}

.email-template-list-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .65rem;
    align-items: start;
    padding: .8rem;
    color: var(--aba-ink);
    border: 1px solid transparent;
    border-radius: 11px;
    text-decoration: none;
    transition: border-color .16s ease, background .16s ease, transform .16s ease;
}

.email-template-list-item:hover {
    color: var(--aba-ink);
    border-color: var(--aba-line);
    background: #f8fbfd;
    transform: translateY(-1px);
}

.email-template-list-item.active {
    border-color: #b9d8ee;
    background: var(--aba-blue-soft);
}

.email-template-list-item strong,
.email-template-list-item small {
    display: block;
}

.email-template-list-item small {
    margin-top: .25rem;
    color: var(--aba-muted);
    line-height: 1.35;
}

.email-template-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    padding: .2rem .55rem;
    color: #526272;
    border-radius: 999px;
    background: #edf2f6;
    font-size: .72rem;
    font-weight: 800;
    white-space: nowrap;
}

.email-template-status.customized {
    color: var(--aba-success);
    background: var(--aba-success-soft);
}

.email-template-editor-header {
    align-items: flex-start;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--aba-line);
}

.email-template-variables {
    padding: 1rem;
    border: 1px solid #d8c2df;
    border-radius: 12px;
    background: var(--aba-lilac-soft);
}

.email-variable-list,
.email-editor-toolbar,
.email-template-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.email-variable-token {
    min-height: 36px;
    padding: .35rem .65rem;
    color: #65436f;
    border: 1px solid #d7bddf;
    border-radius: 8px;
    background: #fff;
    font: 700 .8rem/1.2 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.email-variable-token:hover,
.email-variable-token:focus-visible {
    color: #4b2856;
    border-color: #b58ac1;
    background: #fbf7fc;
}

.email-editor-shell {
    overflow: hidden;
    border: 1px solid #b9c8d5;
    border-radius: 10px;
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.email-editor-shell:focus-within {
    border-color: #86b7da;
    box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .16);
}

.email-editor-toolbar {
    padding: .65rem;
    border-bottom: 1px solid var(--aba-line);
    background: #f4f7fa;
}

.email-editor-toolbar .btn {
    display: inline-flex;
    min-width: 40px;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    gap: .3rem;
}

.email-editor-toolbar .bi {
    font-size: 1rem;
}

.email-template-wysiwyg {
    min-height: 390px;
    padding: 1rem;
    overflow-wrap: anywhere;
    background: #fff;
    font: 1rem/1.55 Arial, sans-serif;
    outline: 0;
}

.email-template-wysiwyg:empty::before {
    color: #8995a2;
    content: attr(data-placeholder);
    pointer-events: none;
}

.email-template-wysiwyg p:first-child,
.email-template-wysiwyg h1:first-child,
.email-template-wysiwyg h2:first-child,
.email-template-wysiwyg h3:first-child {
    margin-top: 0;
}

.email-template-wysiwyg p:last-child,
.email-template-wysiwyg ul:last-child,
.email-template-wysiwyg ol:last-child {
    margin-bottom: 0;
}

.email-template-actions {
    align-items: center;
    padding: 1rem;
    border: 1px solid var(--aba-line);
    border-radius: 11px;
    background: #f8fbfd;
}

.email-template-actions > span {
    flex: 1 1 220px;
    text-align: right;
}

.email-template-preview {
    overflow: hidden;
    border: 1px solid var(--aba-line);
    border-radius: 12px;
    background: #eef3f7;
}

.email-template-preview-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 1fr);
    gap: 1rem;
    align-items: center;
    padding: 1rem;
    border-bottom: 1px solid var(--aba-line);
    background: #fff;
}

.email-template-preview-header > strong {
    min-width: 0;
    padding: .65rem .75rem;
    overflow-wrap: anywhere;
    border-radius: 8px;
    background: #f4f7fa;
    font-size: .9rem;
}

.email-template-preview iframe {
    display: block;
    width: 100%;
    min-height: 430px;
    border: 0;
    background: #fff;
}

@media (max-width: 991.98px) {
    .aba-header .navbar {
        min-height: 72px;
    }

    .aba-header .navbar-brand img {
        width: 122px;
        height: 50px;
    }

    .aba-header .navbar-collapse {
        padding: .65rem 0 1rem;
    }

    .aba-header .navbar-nav {
        gap: .6rem;
    }

    .aba-header .nav-link {
        width: 100%;
    }

    .aba-header .dropdown-menu {
        border: 0;
        background: #f5f9fc;
        box-shadow: none;
    }

    .aba-header .aba-app-launcher.dropdown-menu {
        right: 0 !important;
        left: auto !important;
        max-height: calc(100dvh - 84px);
        margin-top: .45rem !important;
        border: 1px solid #d6e1e9;
        background: #fff;
        box-shadow: 0 18px 48px rgba(31, 65, 93, .24);
    }

    .aba-launcher-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .aba-launcher-item {
        min-height: 98px;
        padding-inline: .2rem;
    }

    .aba-launcher-session .aba-launcher-item {
        min-height: 52px;
        padding-inline: .7rem;
    }

    .aba-launcher-label {
        font-size: .76rem;
    }

    .range-summary {
        grid-template-columns: 1fr;
    }

    .category-settings-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .season-settings-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .category-settings-grid {
        grid-template-columns: 1fr;
    }

    .category-setting-card {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "header"
            "fields"
            "requirements"
            "footer";
    }

    .category-setting-header {
        border-right: 0;
        border-bottom: 1px solid var(--aba-line);
    }

    .category-setting-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .visitor-package-grid {
        grid-template-columns: 1fr;
    }

    .visitor-package-card {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "header"
            "fields"
            "footer";
    }

    .visitor-package-card-header {
        border-right: 0;
        border-bottom: 1px solid var(--aba-line);
    }

    .activity-workspace {
        grid-template-columns: 1fr;
    }

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

    .member-category-card {
        grid-template-columns: 1fr;
    }

    .email-template-layout {
        grid-template-columns: 1fr;
    }

    .email-template-sidebar {
        position: static;
    }
}

@media (max-width: 767.98px) {
    .tournoi-field-grid,
    .tournoi-menu-grid,
    .tournoi-beverage-grid,
    .tournoi-detail-grid,
    .montee-team-grid,
    .member-form-grid,
    .payment-form-content,
    .stats-filter-grid {
        grid-template-columns: 1fr;
    }

    .tournoi-submit-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .tournoi-submit-bar .btn {
        width: 100%;
    }

    .aba-page-header,
    .aba-panel-header {
        align-items: stretch;
        flex-direction: column;
    }

    .aba-page-actions {
        justify-content: flex-start;
    }

    .aba-table-search {
        width: 100%;
        flex-basis: auto;
    }

    .archived-category-row {
        grid-template-columns: 1fr;
    }

    .archived-category-row .btn {
        justify-self: start;
    }

    .archived-category-actions {
        justify-content: flex-start;
    }

    .responsible-add-form {
        width: 100%;
    }

    .category-setting-header {
        align-items: stretch;
        flex-direction: column;
    }

    .visitor-package-card-header {
        align-items: stretch;
        flex-direction: column;
    }

    .activity-start-fields {
        grid-template-columns: 1fr;
    }

    .activity-start-submit,
    .activity-live-header {
        align-items: stretch;
        flex-direction: column;
    }

    .activity-live-header > .btn {
        align-self: flex-start;
    }

    .season-name-form,
    .season-password-form,
    .season-reset-comparison {
        grid-template-columns: 1fr;
    }

    .season-name-form .btn,
    .season-password-form .btn[type="submit"] {
        justify-self: start;
    }

    .visitor-package-visibility {
        justify-items: start;
    }

    .category-visibility-control {
        justify-items: start;
    }

    .email-template-preview-header {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .aba-login-page {
        min-height: 100dvh;
        padding: .7rem;
    }

    .aba-login-card {
        border-radius: 14px;
    }

    .aba-login-brand {
        min-height: 88px;
        padding: .6rem 1rem;
    }

    .aba-login-brand img {
        width: 112px;
        height: 68px;
    }

    .aba-login-form-wrap {
        padding: 1.35rem 1.2rem 1.2rem;
    }

    .aba-login-heading {
        gap: .75rem;
    }

    .aba-login-lock {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
        font-size: 1.1rem;
    }

    body.aba-app .aba-login-form-panel h1 {
        font-size: 1.8rem;
    }

    .aba-login-description {
        margin-bottom: 1.2rem;
        font-size: .92rem;
    }

    .aba-login-note {
        margin-top: 1rem;
    }

    body.aba-app .container,
    body.aba-app .container-fluid {
        --bs-gutter-x: 1.35rem;
    }

    .page-inscription .container,
    .page-montee-de-terrain .container,
    .page-edit_member .container,
    .page-paiement .container,
    .page-merci .container,
    .page-merci-paiement .container {
        margin-top: 1.25rem !important;
        margin-bottom: 1.25rem !important;
    }

    .page-inscription .container > .row > .col-md-6,
    .page-montee-de-terrain .container > .col-6,
    .page-edit_member .container > .row > .col-md-6,
    .page-paiement .container,
    .page-merci .container > .row > .col-md-6,
    .page-merci-paiement .container > .row > .col-md-6 {
        padding: 1.15rem;
    }

    body.aba-app .btn-lg {
        width: 100%;
    }

    .aba-page-header > .btn,
    .aba-page-actions .btn,
    .responsible-add-form .btn {
        width: 100%;
    }

    .aba-page-actions,
    .responsible-add-form {
        align-items: stretch;
        flex-direction: column;
    }

    .email-template-summary {
        grid-template-columns: 1fr;
    }

    .visitor-package-summary,
    .visitor-package-fields {
        grid-template-columns: 1fr;
    }

    .visitor-package-label-field {
        grid-column: auto;
    }

    .visitor-package-card-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .visitor-package-card-footer .btn {
        width: 100%;
    }

    .activity-start-panel,
    .activity-live-header,
    .activity-scanner-panel,
    .activity-manual-panel,
    .activity-presence-panel {
        padding: 1.05rem;
    }

    .activity-live-summary {
        grid-template-columns: 1fr;
    }

    .activity-start-submit {
        padding-top: 1rem;
    }

    .activity-live-header > .btn,
    .activity-scanner-actions .btn {
        width: 100%;
    }

    .activity-scanner-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .activity-camera-placeholder {
        min-height: 165px;
        padding: 1rem;
    }

    .activity-offline-tools {
        grid-template-columns: 1fr;
        align-items: stretch;
        padding: .85rem;
    }

    .activity-offline-actions {
        justify-content: flex-start;
    }

    .activity-offline-actions .btn {
        width: 100%;
    }

    .activity-reader-stage {
        min-height: 210px;
    }

    .activity-manual-form {
        grid-template-columns: 1fr;
    }

    .activity-scanner-message {
        align-items: flex-start;
        flex-direction: column;
    }

    .season-settings-summary {
        grid-template-columns: 1fr;
    }

    .season-name-panel,
    .season-password-panel,
    .season-danger-panel {
        padding: 1.05rem;
    }

    .season-name-form .form-control,
    .season-name-form .btn,
    .season-password-form > div,
    .season-password-group,
    .season-password-form .btn[type="submit"],
    .season-danger-action .btn {
        width: 100%;
        max-width: none;
    }

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

    .season-reset-modal .modal-footer .btn {
        width: 100%;
        min-height: 44px;
    }

    .category-settings-summary,
    .category-setting-fields,
    .category-add-fields {
        grid-template-columns: 1fr;
    }

    .category-setting-card {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "header"
            "fields"
            "requirements"
            "footer";
    }

    .category-field-note,
    .category-add-name {
        grid-column: auto;
    }

    .category-setting-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .category-setting-stats {
        flex: 0 1 auto;
    }

    .category-setting-footer .btn,
    .archived-category-row .btn {
        width: 100%;
    }

    .archived-category-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .category-requirement-options,
    .category-settings-savebar {
        align-items: stretch;
        flex-direction: column;
    }

    .category-settings-savebar .btn {
        width: 100%;
        min-height: 44px;
    }

    .email-template-list-item {
        grid-template-columns: 1fr;
    }

    .email-template-list-item .email-template-status {
        justify-self: start;
    }

    .email-variable-token {
        min-height: 44px;
    }

    .email-template-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .email-editor-toolbar {
        display: grid;
        grid-template-columns: repeat(4, minmax(44px, 1fr));
        width: 100%;
        gap: .55rem;
    }

    .email-editor-toolbar .btn {
        width: 100%;
        min-width: 0;
        min-height: 44px;
        padding-right: .35rem;
        padding-left: .35rem;
    }

    .email-editor-toolbar .btn span:not(.visually-hidden) {
        display: none;
    }

    .email-template-actions .btn {
        width: 100%;
        min-height: 44px;
    }

    .email-template-actions > span {
        flex-basis: auto;
        text-align: left;
    }

    .email-template-wysiwyg {
        min-height: 330px;
    }

    .member-safety-notice {
        grid-template-columns: 1fr;
    }

    .member-safety-notice > i {
        width: 40px;
        height: 40px;
    }

    .page-gestion .season-summary {
        width: 100% !important;
        display: block;
    }

    .page-gestion .season-summary tbody {
        display: block;
    }

    .page-gestion .season-summary tr {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        border-bottom: 1px solid var(--aba-line);
    }

    .page-gestion .season-summary tr:last-child {
        border-bottom: 0;
    }

    .page-gestion .season-summary th,
    .page-gestion .season-summary td {
        display: block;
        padding: .72rem .8rem;
        border: 0;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    .page-gestion .season-summary th:empty,
    .page-gestion .season-summary td:empty {
        display: none;
    }

    .page-activites .border-dark.border-opacity-25,
    .page-assemblee .border-dark.border-opacity-25 {
        padding-top: 1.25rem !important;
        padding-bottom: 1.25rem !important;
    }

    .page-edit_member .col-md-6 > .row:not([data-paiement-ligne]) > .col,
    .page-edit_member .member-editor-panel > .row:not([data-paiement-ligne]) > .col {
        width: 100%;
        flex: 0 0 100%;
    }

    .page-edit_member [data-paiement-ligne] {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .75rem;
        padding: .85rem;
        border: 1px solid var(--aba-line);
        border-radius: 10px;
        background: #f8fbfd;
    }

    .page-edit_member [data-paiement-ligne] > .col {
        width: auto;
        min-width: 0;
        padding: 0;
    }

    .page-edit_member [data-paiement-ligne] > .col:nth-child(3),
    .page-edit_member [data-paiement-ligne] > .col-2,
    .page-edit_member [data-paiement-ligne] > .col-1 {
        grid-column: 1 / -1;
        width: auto;
        padding: 0;
        overflow-wrap: anywhere;
    }

    .page-edit_member [data-paiement-ligne] .btn-danger {
        width: 100%;
        min-width: 44px;
    }

    .page-edit_member .payment-delete-symbol {
        display: none;
    }

    .page-edit_member .payment-delete-label {
        display: inline;
    }

    .page-edit_member .input-group {
        display: grid;
        gap: .75rem;
    }

    .page-edit_member .input-group > .form-control,
    .page-edit_member .input-group > .btn {
        width: 100%;
        border-radius: 9px !important;
    }

    body.aba-app .display-6 {
        font-size: 2rem;
    }

    .page-cartes .card {
        width: calc(100% - 1.5rem) !important;
    }

    .tournoi-public-header {
        align-items: stretch;
        flex-direction: column;
    }

    .tournoi-brand {
        align-self: center;
    }

    .tournoi-section-heading {
        gap: .65rem;
    }

    .tournoi-section,
    .tournoi-heading,
    .tournoi-confirmation,
    .tournoi-admin-detail {
        padding: 1.05rem;
    }

    .tournoi-summary {
        grid-template-columns: 1fr;
    }

    .tournoi-detail-grid dl > div {
        grid-template-columns: 1fr;
        gap: .15rem;
    }
}

.sms-compose-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
    gap: 1.25rem;
    align-items: start;
}

.sms-recipient-controls {
    display: grid;
    grid-template-columns: minmax(180px, .8fr) minmax(180px, .8fr) minmax(240px, 1.4fr);
    gap: .85rem;
    padding: 1rem 1rem .5rem;
    align-items: end;
}

.sms-recipient-search .aba-table-search {
    width: 100%;
}

.sms-selection-actions {
    display: flex;
    gap: .65rem;
    padding: .5rem 1rem 1rem;
    flex-wrap: wrap;
}

.sms-recipient-list {
    max-height: 520px;
    overflow-y: auto;
    border-top: 1px solid var(--aba-line);
    overscroll-behavior: contain;
}

.sms-recipient-row {
    display: grid;
    grid-template-columns: 24px minmax(180px, 1fr) minmax(145px, auto) minmax(85px, auto);
    gap: .75rem;
    min-height: 66px;
    padding: .72rem 1rem;
    align-items: center;
    border-bottom: 1px solid #e7edf2;
    cursor: pointer;
    transition: background-color .15s ease;
}

.sms-recipient-row:hover,
.sms-recipient-row:has(input:checked) {
    background: #f1f7fb;
}

.sms-recipient-row .form-check-input {
    width: 20px;
    height: 20px;
    margin: 0;
}

.sms-recipient-person {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.sms-recipient-person strong,
.sms-recipient-person small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sms-recipient-person small,
.sms-recipient-phone {
    color: #71808c;
    font-size: .82rem;
}

.sms-recipient-visits {
    padding: .28rem .48rem;
    color: #245c82;
    border-radius: 999px;
    background: #e5f2fa;
    font-size: .76rem;
    font-weight: 700;
    text-align: center;
}

.sms-recipient-invalid {
    cursor: not-allowed;
    opacity: .58;
}

.sms-recipient-empty {
    margin: 0;
    padding: 1.4rem;
    color: #71808c;
    text-align: center;
}

.sms-message-panel {
    position: sticky;
    top: 102px;
}

.sms-message-panel textarea {
    min-height: 220px;
    resize: vertical;
}

.sms-message-meta {
    display: flex;
    gap: .75rem;
    margin-top: .55rem;
    justify-content: space-between;
    color: #71808c;
    font-size: .78rem;
}

.sms-history-list {
    display: grid;
}

.sms-history-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 1rem;
    padding: 1rem;
    align-items: center;
    border-top: 1px solid var(--aba-line);
}

.sms-history-item:first-child {
    border-top: 0;
}

.sms-history-main p {
    margin: 0 0 .25rem;
    overflow-wrap: anywhere;
}

.sms-history-main small,
.sms-history-item time,
.sms-history-results small {
    color: #71808c;
    font-size: .78rem;
}

.sms-history-results {
    display: flex;
    min-width: 95px;
    flex-direction: column;
    text-align: right;
}

.sms-history-results span {
    color: #a83232;
    font-size: .78rem;
}

.sms-confirm-preview {
    margin: .75rem 0;
    padding: .85rem;
    overflow-wrap: anywhere;
    border: 1px solid var(--aba-line);
    border-radius: 10px;
    background: #f6f9fb;
    white-space: pre-wrap;
}

@media (max-width: 991.98px) {
    .sms-compose-layout {
        grid-template-columns: 1fr;
    }

    .sms-message-panel {
        position: static;
    }

    .sms-recipient-controls {
        grid-template-columns: 1fr 1fr;
    }

    .sms-recipient-search {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {
    .sms-recipient-controls {
        grid-template-columns: 1fr;
    }

    .sms-recipient-search {
        grid-column: auto;
    }

    .sms-selection-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .sms-selection-actions .btn {
        width: 100%;
    }

    .sms-recipient-row {
        grid-template-columns: 24px minmax(0, 1fr);
        gap: .35rem .7rem;
    }

    .sms-recipient-phone,
    .sms-recipient-visits {
        grid-column: 2;
        justify-self: start;
    }

    .sms-message-meta {
        flex-direction: column;
    }

    .sms-history-item {
        grid-template-columns: 1fr;
        gap: .5rem;
    }

    .sms-history-results {
        text-align: left;
    }
}

@media (max-width: 359.98px) {
    .page-inscription .col-md-6 > .row > .col,
    .page-party > .container > .row > .col {
        width: 100%;
        flex: 0 0 100%;
    }
}

@media print {
    .aba-header,
    .btn,
    .no-print {
        display: none !important;
    }

    body.aba-app {
        background: white;
    }

    body.aba-app .table-responsive,
    .page-cartes .card {
        box-shadow: none;
    }
}
