:root {
    --club-ui-layer-menu: 2147482000;
    --club-ui-layer-dialog: 2147483000;
    --club-ui-radius: 16px;
    --club-ui-shadow: 0 24px 70px rgba(15, 23, 42, .28);
}
.club-ui-scroll-locked { overflow: hidden !important; }
.club-ui-dialog {
    width: min(92vw, 560px);
    max-height: min(88vh, 760px);
    padding: 0;
    border: 0;
    border-radius: var(--club-ui-radius);
    background: var(--bs-body-bg, #fff);
    color: var(--bs-body-color, #0f172a);
    box-shadow: var(--club-ui-shadow);
    z-index: var(--club-ui-layer-dialog);
}
.club-ui-dialog::backdrop { background: rgba(15, 23, 42, .62); }
.club-ui-dialog-shell { display: flex; flex-direction: column; max-height: inherit; }
.club-ui-dialog-header,.club-ui-dialog-footer { display:flex; align-items:center; gap:.75rem; padding:1rem 1.15rem; }
.club-ui-dialog-header { justify-content:space-between; border-bottom:1px solid rgba(148,163,184,.28); }
.club-ui-dialog-header h2 { margin:0; font-size:1.2rem; }
.club-ui-dialog-body { padding:1.15rem; overflow:auto; }
.club-ui-dialog-footer { justify-content:flex-end; border-top:1px solid rgba(148,163,184,.28); }
.club-ui-icon-button { min-width:44px; min-height:44px; border:0; border-radius:999px; background:transparent; font-size:1.5rem; line-height:1; }
.club-ui-icon-button:hover,.club-ui-icon-button:focus-visible { background:rgba(148,163,184,.18); }
.club-ui-menu {
    position: fixed;
    inset: auto;
    min-width: 220px;
    max-width: min(92vw, 360px);
    padding: .4rem;
    margin: 0;
    border: 1px solid rgba(148,163,184,.34);
    border-radius: 14px;
    background: var(--bs-body-bg, #fff);
    color: var(--bs-body-color, #0f172a);
    box-shadow: 0 18px 50px rgba(15,23,42,.25);
    z-index: var(--club-ui-layer-menu);
}
.club-ui-menu[hidden] { display:none !important; }
.club-ui-menu [role="menuitem"],.club-ui-menu button,.club-ui-menu a { display:block; width:100%; min-height:42px; border:0; border-radius:9px; padding:.62rem .75rem; background:transparent; color:inherit; text-align:left; text-decoration:none; }
.club-ui-menu [role="menuitem"]:hover,.club-ui-menu [role="menuitem"]:focus-visible,.club-ui-menu button:hover,.club-ui-menu button:focus-visible { background:rgba(148,163,184,.16); outline:none; }
.club-ui-menu .is-danger { color:#dc2626; }
.club-ui-toast-region { position:fixed; right:1rem; bottom:1rem; z-index:var(--club-ui-layer-dialog); display:grid; gap:.65rem; max-width:min(92vw,420px); }
.club-ui-toast { display:flex; align-items:center; gap:.8rem; padding:.85rem 1rem; border-radius:13px; background:#111827; color:#fff; box-shadow:0 16px 40px rgba(15,23,42,.3); }
.club-ui-toast-message { flex:1 1 auto; }
.club-ui-toast.is-error { background:#7f1d1d; }
.club-ui-toast-action { border:0; background:transparent; color:#93c5fd; font-weight:700; }
.club-ui-field-error { margin-top:.35rem; color:#b91c1c; font-size:.875rem; }
.club-ui-confirm-detail { color:#64748b; }
@media (pointer: coarse), (max-width: 768px) {
    .club-ui-menu [role="menuitem"],.club-ui-menu button,.club-ui-menu a { min-height:48px; }
    .club-ui-dialog-footer .btn,.club-ui-dialog-footer button { min-height:44px; }
}
@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

/* ClubOS 8.13.0 — les menus portalisés utilisent strictement les coordonnées du viewport. */
.club-ui-menu {
    position: fixed !important;
    right: auto !important;
    bottom: auto !important;
    margin: 0 !important;
}

/* Les menus portalisés restent dans un plan de composition net, au-dessus du voile. */
.club-ui-menu {
    filter: none !important;
    -webkit-filter: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    opacity: 1 !important;
    isolation: isolate;
}
.club-ui-menu-backdrop {
    filter: none !important;
    opacity: 1;
}
