/* Documentation compacte v2.6.91 : fichier projet public/css/app.css. Commentaires compacts sans impact fonctionnel. */
:root{
    --green:#1f4d3d;
    --gold:#c7a54b;
    --off:#f5f1e8;
    --white:#ffffff;
    --gray:#6b7280;
    --danger:#b91c1c;
    --success:#15803d;
    --blue:#1d4ed8;
    --silver:#64748b;
    --wine:#7c2d12;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--off);color:#111827}
a{color:inherit;text-decoration:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.container{max-width:1180px;margin:0 auto;padding:0 20px}
.site-header{background:var(--green);color:#fff;position:sticky;top:0;z-index:10;box-shadow:0 8px 24px rgba(0,0,0,.15)}
.header-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px}
.brand{display:flex;align-items:center;gap:12px;font-weight:800}
.brand-logo{font-size:1.5rem}
.brand-logo-shell{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:.3rem .6rem .38rem;border-radius:999px;background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(245,249,246,.92) 100%);border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 1px 0 rgba(255,255,255,.95), inset 0 -1px 0 rgba(31,77,61,.08), 0 10px 22px rgba(15,23,42,.10), 0 3px 8px rgba(31,77,61,.12);overflow:hidden;flex:0 0 auto;transition:transform .18s ease, box-shadow .18s ease}
.brand-logo-shell::before{content:'';position:absolute;inset:1px 1px auto 1px;height:46%;border-radius:999px;background:linear-gradient(180deg, rgba(255,255,255,.78) 0%, rgba(255,255,255,0) 100%)}
.brand:hover .brand-logo-shell{transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.98), inset 0 -1px 0 rgba(31,77,61,.10), 0 12px 26px rgba(15,23,42,.14), 0 5px 12px rgba(31,77,61,.16)}
.nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.nav-desktop{display:flex}
.mobile-header-actions,.mobile-nav-shell,.mobile-nav-backdrop{display:none}
.mobile-nav-shell[hidden],.mobile-nav-backdrop[hidden]{display:none!important}
.mobile-nav-open{overflow:hidden}
.mobile-nav-toggle{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);box-shadow:0 12px 28px rgba(0,0,0,.12);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff}
.mobile-nav-toggle-icon{display:inline-flex;flex-direction:column;gap:4px}
.mobile-nav-toggle-icon span{display:block;width:16px;height:2px;border-radius:999px;background:currentColor}
.mobile-nav-panel{background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,244,237,.98));color:#111827;border-radius:24px;border:1px solid rgba(255,255,255,.92);box-shadow:0 28px 60px rgba(15,23,42,.24), 0 10px 24px rgba(31,77,61,.12);padding:18px}
.mobile-nav-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}
.mobile-nav-header strong{display:block;font-size:1rem}
.mobile-nav-header p{margin:4px 0 0;color:#6b7280;font-size:.92rem}
.mobile-nav-close{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:999px;background:#eef2f0;color:#1f4d3d;border:1px solid #dbe4df}
.mobile-nav-links{display:grid;gap:10px}
.mobile-nav-links a{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;border-radius:16px;background:#fff;border:1px solid #e5e7eb;font-weight:700;box-shadow:0 10px 20px rgba(15,23,42,.04)}
.mobile-nav-links a::after{content:'›';font-size:1.1rem;color:#6b7280}
.mobile-nav-footer{display:grid;gap:14px;margin-top:18px;padding-top:16px;border-top:1px solid #e5e7eb}
.mobile-nav-notice{display:flex;align-items:center;gap:10px;color:#475569;font-size:.95rem}
.mobile-nav-logout{width:100%;justify-content:center;background:linear-gradient(180deg,#285f4a,#1f4d3d);color:#fff;border:1px solid rgba(31,77,61,.18);box-shadow:0 12px 24px rgba(31,77,61,.18);min-height:52px}
.mobile-nav-footer form{margin:0}
.notification-pill-mobile{min-width:auto;padding:9px 12px;box-shadow:0 10px 24px rgba(0,0,0,.10)}
.page{padding:28px 20px 48px}
.center-wrap{display:flex;align-items:center;justify-content:center;min-height:72vh}
.auth-card,.card,.status-card{background:#fff;border-radius:20px;box-shadow:0 20px 50px rgba(31,77,61,.12)}
.auth-card{padding:30px;max-width:1100px;width:100%}
.auth-card.narrow{max-width:540px}
.logo-mark{width:80px;height:80px;border-radius:999px;display:grid;place-items:center;background:linear-gradient(135deg,var(--green),#285f4a);color:#fff;font-size:2rem;margin:0 auto 14px}
.animate-intro{animation:intro .7s ease}
@keyframes intro{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
@keyframes landingLogoFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.02)}}
@keyframes landingLogoGlow{0%,100%{box-shadow:0 22px 64px rgba(8,18,14,.30), inset 0 1px 0 rgba(255,255,255,.26)}50%{box-shadow:0 28px 76px rgba(8,18,14,.36), 0 0 0 10px rgba(255,255,255,.06), inset 0 1px 0 rgba(255,255,255,.30)}}
.auth-grid,.cards-two,.dashboard-header,.grid-two,.grid-four{display:grid;gap:18px}
.auth-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px}
.grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.cards-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.dashboard-header{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:24px}
.dashboard-header-single{grid-template-columns:1fr}
.dashboard-top-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.dashboard-greeting{margin:0 0 14px}
.dashboard-greeting h1{margin:0;color:#13251f;font-size:clamp(1.45rem,3vw,2.15rem);line-height:1.1;letter-spacing:-.03em}
.dashboard-next-event-widget,.dashboard-member-events-widget{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:14px 16px;border-radius:20px;background:linear-gradient(135deg,#fffdf7 0%,#f3f8f5 100%);border:1px solid rgba(31,77,61,.1);box-shadow:0 14px 34px rgba(31,77,61,.08)}
.dashboard-member-events-widget{background:linear-gradient(135deg,#ffffff 0%,#f7fbf8 58%,#fff8e6 100%)}
.dashboard-next-event-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.dashboard-next-event-summary{display:flex;align-items:center;gap:9px;min-width:0;max-width:100%}
.dashboard-next-event-summary strong{color:#13251f;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.dashboard-next-event-summary small{color:#64748b;font-weight:700;white-space:nowrap;flex:0 0 auto}
.dashboard-member-events-summary{display:flex;flex-direction:column;gap:8px;min-width:0;color:#475569}
.dashboard-member-events-summary p{margin:0;color:#64748b;font-weight:650;line-height:1.35}
.dashboard-member-events-status{display:flex;align-items:center;gap:9px;min-width:0}
.dashboard-member-events-status .status-pill{padding:.28rem .62rem;font-size:.82rem;line-height:1}
.dashboard-member-events-status strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#13251f}
.dashboard-member-events-list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;min-width:0}
.dashboard-member-event-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:6px 0;border-top:1px solid rgba(31,77,61,.08);position:relative}.dashboard-member-event-link{display:flex;align-items:center;min-width:0;flex:1 1 auto;color:#13251f;text-decoration:none}
.dashboard-member-events-list li:first-child .dashboard-member-event-row{border-top:0;padding-top:0}
.dashboard-member-event-main{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%}
.dashboard-member-event-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}
.dashboard-member-event-date{flex:0 0 auto;color:#64748b;font-size:.86rem;font-weight:750;white-space:nowrap}
.dashboard-member-event-icons{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto}
.dashboard-member-event-status-icon{width:28px;height:28px}.dashboard-member-event-status-popover{position:relative;display:inline-flex}.dashboard-member-event-status-popover summary{list-style:none;cursor:pointer}.dashboard-member-event-status-popover summary::-webkit-details-marker{display:none}.dashboard-member-event-status-popover[open] summary{box-shadow:0 6px 14px rgba(194,65,12,.16)}.dashboard-member-event-status-popover-hotel-selected[open] summary,.dashboard-member-event-status-popover-accommodation-complete[open] summary{box-shadow:0 6px 14px rgba(4,120,87,.16)}.dashboard-member-event-status-popover-accommodation-partial[open] summary{box-shadow:0 6px 14px rgba(217,119,6,.18)}.dashboard-member-event-status-popover-hotel-missing[open] summary,.dashboard-member-event-status-popover-accommodation-missing[open] summary{box-shadow:0 6px 14px rgba(194,65,12,.18)}.dashboard-member-event-status-message{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:min(260px,72vw);padding:9px 11px;border-radius:14px;background:#fff7ed;border:1px solid #fdba74;color:#9a3412;box-shadow:0 14px 30px rgba(15,23,42,.14);font-size:.82rem;font-weight:750;line-height:1.3;text-align:left}.dashboard-member-event-status-message-green,.dashboard-member-event-status-message-accommodation-complete{background:#ecfdf5;border-color:#86efac;color:#047857}.dashboard-member-event-status-message-accommodation-partial{background:#fffbeb;border-color:#fcd34d;color:#92400e}.dashboard-member-event-status-message-muted,.dashboard-member-event-status-message-accommodation-missing{background:#fff7ed;border-color:#fdba74;color:#9a3412}
.dashboard-member-event-status-icon svg{width:14px;height:14px}.dashboard-member-event-status-icon-accommodation svg{width:16px;height:16px}
.event-location-icon-action.dashboard-member-event-status-icon-warning{background:#fff7ed;border-color:#fb923c;color:#c2410c}
.event-location-icon-action.dashboard-member-event-status-icon-green{background:#ecfdf5;border-color:#86efac;color:#047857}
.event-location-icon-action.dashboard-member-event-status-icon-muted{background:#f8fafc;border-color:#cbd5e1;color:#64748b}.event-location-icon-action.dashboard-member-event-status-icon-accommodation-complete{background:#ecfdf5;border-color:#86efac;color:#047857}.event-location-icon-action.dashboard-member-event-status-icon-accommodation-partial{background:#fffbeb;border-color:#fcd34d;color:#b45309}.event-location-icon-action.dashboard-member-event-status-icon-accommodation-missing{background:#fff7ed;border-color:#fdba74;color:#c2410c}
.event-location-icon-action.dashboard-member-event-status-icon-warning:hover,.event-location-icon-action.dashboard-member-event-status-icon-warning:focus-visible{background:#ffedd5;border-color:#f97316;color:#9a3412}
.event-location-icon-action.dashboard-member-event-status-icon-green:hover,.event-location-icon-action.dashboard-member-event-status-icon-green:focus-visible{background:#dcfce7;border-color:#22c55e;color:#065f46}
.event-location-icon-action.dashboard-member-event-status-icon-muted:hover,.event-location-icon-action.dashboard-member-event-status-icon-muted:focus-visible{background:#f1f5f9;border-color:#94a3b8;color:#475569}.event-location-icon-action.dashboard-member-event-status-icon-accommodation-complete:hover,.event-location-icon-action.dashboard-member-event-status-icon-accommodation-complete:focus-visible{background:#dcfce7;border-color:#22c55e;color:#065f46}.event-location-icon-action.dashboard-member-event-status-icon-accommodation-partial:hover,.event-location-icon-action.dashboard-member-event-status-icon-accommodation-partial:focus-visible{background:#fef3c7;border-color:#f59e0b;color:#92400e}.event-location-icon-action.dashboard-member-event-status-icon-accommodation-missing:hover,.event-location-icon-action.dashboard-member-event-status-icon-accommodation-missing:focus-visible{background:#ffedd5;border-color:#f97316;color:#9a3412}
.dashboard-member-event-link:hover .dashboard-member-event-title,.dashboard-member-event-link:focus-visible .dashboard-member-event-title{text-decoration:underline;text-underline-offset:3px}
.dashboard-member-event-link:focus-visible,.dashboard-member-event-status-popover summary:focus-visible{outline:2px solid rgba(24,89,67,.22);outline-offset:3px;border-radius:10px}
.dashboard-agenda-link{display:inline-flex;align-items:center;gap:7px;color:#185943;text-decoration:none;font-weight:800;white-space:nowrap;flex:0 0 auto}
.dashboard-agenda-link-icon{width:32px;height:32px;flex:0 0 auto}
.dashboard-agenda-link-icon svg{width:16px;height:16px}
.dashboard-agenda-link:hover,.dashboard-agenda-link:focus-visible{text-decoration:none;outline:none}
.dashboard-agenda-link:hover .dashboard-agenda-link-text,.dashboard-agenda-link:focus-visible .dashboard-agenda-link-text{text-decoration:underline;text-underline-offset:3px}
.dashboard-agenda-link:hover .dashboard-agenda-link-icon,.dashboard-agenda-link:focus-visible .dashboard-agenda-link-icon{transform:translateY(-1px);box-shadow:0 6px 14px rgba(15,23,42,.12);border-color:#185943;background:#ecfdf5;color:#064e3b}
.stack{display:flex;flex-direction:column;gap:12px}
.stack.compact{max-width:480px}
.inline{display:flex;gap:8px;align-items:center}
.inline-form{display:flex;gap:8px;flex-wrap:wrap}
input,select,textarea,button{font:inherit}
input,select,textarea{width:100%;padding:12px 14px;border:1px solid #d1d5db;border-radius:14px;background:#fff}
textarea{min-height:110px}
button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;padding:12px 16px;border-radius:14px;background:var(--green);color:#fff;font-weight:700;cursor:pointer;transition:transform .16s ease, box-shadow .16s ease, background-color .16s ease, color .16s ease, border-color .16s ease, filter .16s ease}\nbutton:hover,.btn:hover,button:focus-visible,.btn:focus-visible{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.10)}
.btn-secondary{background:var(--gold);color:#1f2937}
.btn-outline{background:transparent;color:var(--green);border:2px solid var(--green)}
.btn-danger{background:var(--danger)}
.title-row,.action-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.action-row.wrap{flex-wrap:wrap}
.events-index-header{display:grid;gap:14px;margin-bottom:22px}
.events-index-title-line{display:flex;align-items:center;justify-content:space-between;gap:14px}
.events-index-title-line h1{margin:0;min-width:0}
.events-index-new-btn{flex:0 0 auto;min-height:44px;white-space:nowrap}
.events-index-actions{display:flex;gap:12px;flex-wrap:wrap}
.events-index-management-note{max-width:720px;margin:0}
.card{padding:22px;margin-bottom:20px}
.card-link{display:block;transition:transform .2s ease,box-shadow .2s ease}
.card-link:hover{transform:translateY(-3px);box-shadow:0 24px 52px rgba(31,77,61,.16)}
.event-card-link{overflow:hidden}
.event-card-link-with-cover{padding:0}
.event-card-cover{height:132px;overflow:hidden;background:#eef4f1}
.event-card-cover img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .28s ease, filter .28s ease}
.event-card-link-with-cover:hover .event-card-cover img{transform:scale(1.035);filter:saturate(1.04)}
.event-card-body{display:flex;flex-direction:column;gap:10px;padding:22px}
.event-card-body h3{margin:0}
.event-form-cover-preview{overflow:hidden;border-radius:18px;border:1px solid #e2e8f0;background:#f8fafc;max-width:520px}
.event-form-cover-preview img{display:block;width:100%;height:auto;max-height:260px;object-fit:cover}
.notification-pill{padding:8px 12px;background:rgba(255,255,255,.15);border-radius:999px}
.big-number{font-size:2.2rem;font-weight:800;color:var(--gold);margin-top:6px}
.events-flow{display:flex;flex-direction:column;gap:14px}
.event-widget{display:grid;grid-template-columns:120px 1fr 180px;gap:18px;background:#fff;padding:16px;border-radius:20px;box-shadow:0 20px 50px rgba(31,77,61,.10)}
.date-block{border-radius:18px;background:linear-gradient(180deg,#fff, #edf5f1);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px}
.day{font-size:2rem;font-weight:800}
.month{color:var(--green);text-transform:uppercase}
.info-block,.status-block{display:flex;flex-direction:column;justify-content:center;gap:8px}
.status{display:inline-block;padding:8px 12px;border-radius:999px;font-weight:700}
.success{background:#dcfce7;color:var(--success)}
.danger{background:#fee2e2;color:var(--danger)}
.neutral{background:#f3f4f6;color:#374151}
.badge{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:.9rem;font-weight:700}
.badge-gold{background:#fef3c7;color:#92400e}
.badge-blue{background:#dbeafe;color:#1d4ed8}
.badge-silver{background:#e2e8f0;color:#334155}
.badge-wine{background:#fce7f3;color:#831843}
.badge-green{background:#dcfce7;color:#166534}
.table{width:100%;border-collapse:collapse;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 20px 50px rgba(31,77,61,.10)}
.table th,.table td{padding:14px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top}
.alert{padding:14px 18px;border-radius:16px;margin-bottom:18px}
.alert-success{background:#dcfce7;color:#166534}
.alert-warning{background:#fef3c7;color:#92400e}
/* Alerte de clôture plus visible sur cartes événement. */
.event-closed-notice{background:linear-gradient(180deg,#fff7ed,#ffedd5);color:#9a3412;border:1px solid #fb923c;box-shadow:0 12px 28px rgba(234,88,12,.16);font-weight:800;line-height:1.45}
.event-closed-notice-compact{display:flex;align-items:flex-start;gap:8px;margin-top:10px;padding:10px 12px;border-radius:14px;font-size:.92rem}
.alert.event-closed-notice{margin-top:14px}
.alert-error{background:#fee2e2;color:#991b1b}
.alert-info{background:#e0f2fe;color:#0c4a6e}
.muted{color:var(--gray)}
.form-field{display:flex;flex-direction:column;gap:8px}
.password-help{margin:0;font-size:.92rem;line-height:1.4;color:var(--gray)}
.field-error{font-size:.9rem;line-height:1.4;color:var(--danger);font-weight:600}
.generated-password-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:-2px}.generated-password-button,.generated-password-copy{min-height:46px}.generated-password-status{margin:-2px 0 0;font-size:.92rem;line-height:1.4;color:var(--gray)}.generated-password-status[data-tone="success"]{color:var(--success)}.generated-password-status[data-tone="warning"]{color:#92400e}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12)}
.alert ul{margin:0;padding-left:1.1rem}

.carpool-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #eee}
.mt-2{margin-top:12px}
@media (max-width: 900px){
    .auth-grid,.cards-two,.dashboard-header,.grid-two,.grid-four{grid-template-columns:1fr}
    .event-widget{grid-template-columns:1fr}
    .title-row,.action-row{flex-direction:column;align-items:flex-start}
    .header-row{padding:12px 20px}
    .nav-desktop{display:none}
    .mobile-header-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}
    .mobile-nav-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.38);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:24}
    .mobile-nav-shell{display:block;position:fixed;top:78px;left:0;right:0;z-index:25}
    .mobile-nav-panel{margin:0 auto;width:min(100%, calc(100% - 24px))}
    .brand{min-width:0}
    .brand > span:last-child{max-width:155px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .events-index-header{gap:18px;margin-bottom:24px}
    .events-index-title-line{align-items:center;gap:12px}
    .events-index-title-line h1{font-size:clamp(2rem, 9.6vw, 3.25rem);line-height:1.02;letter-spacing:-.04em}
    .events-index-new-btn{padding:.7rem .9rem;border-radius:18px;font-size:.95rem;min-height:44px}
    .events-index-actions .btn{width:auto;max-width:100%}
}


.event-feed {
    display: grid;
    gap: 1rem;
}

.event-widget.horizontal {
    display: grid;
    grid-template-columns: 110px 1fr 140px;
    gap: 1rem;
    align-items: center;
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
    padding: 1rem 1.25rem;
    text-decoration: none;
    color: inherit;
}

.event-date-block {
    text-align: center;
    border-right: 1px solid #e8e5dc;
    padding-right: 1rem;
}

.event-day {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
}

.event-month {
    color: #b68b2d;
    font-weight: 700;
    letter-spacing: .08em;
    margin-top: .35rem;
}

.event-icon {
    margin-top: .5rem;
    font-size: 1.25rem;
}

.event-main-block h3 {
    margin: 0 0 .3rem;
}

.event-status-block {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .5rem;
}

/* Résumé de disponibilité compact : statut + nombre sur une seule ligne. */
.event-status-summary {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: .45rem;
    max-width: 100%;
}

/* Ligne mobile dédiée : date à gauche, disponibilité à droite, sans duplication du résumé desktop. */
.event-mobile-card-top {
    display: none;
}

.event-seats-count {
    color: var(--gray);
    font-weight: 800;
    white-space: nowrap;
}

.status-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .35rem .75rem;
    font-weight: 700;
    font-size: .9rem;
}

.status-green { background: #e7f8ee; color: #177245; }
.status-red { background: #ffe8e8; color: #b42318; }
.status-gray { background: #f2f4f7; color: #475467; }
.status-orange { background: #fff1e6; color: #b54708; }

.event-badge {
    display: inline-flex;
    border-radius: 999px;
    padding: .25rem .65rem;
    font-size: .8rem;
    font-weight: 700;
}

.event-badge-competition { background: #fff3d6; color: #8a5a00; }
.event-badge-training { background: #dff2ff; color: #0b5cab; }
.event-badge-meeting { background: #eceff3; color: #344054; }
.event-badge-dinner, .event-badge-social { background: #e8f7ef; color: #146c43; }
.event-badge-participating { background: #d1fae5; color: #14532d; border: 1px solid rgba(20, 83, 45, .18); box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); }
.event-badge-external-required { background: #eef2ff; color: #4338ca; border: 1px solid rgba(67, 56, 202, .12); }
.event-badge-confirmed { background: #ecfdf3; color: #027a48; border: 1px solid rgba(2, 122, 72, .12); }
.event-badge-pending { background: #fff7ed; color: #c2410c; border: 1px solid rgba(194, 65, 12, .12); }
.event-badge-action { text-decoration: none; cursor: pointer; }
.event-badge-action:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.event-badge-participants{align-items:center;gap:.32rem;background:#eef4f1;color:#1f4d3d;border:1px solid rgba(31,77,61,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.42);transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease}
.event-badge-participants:hover,.event-badge-participants:focus{background:#e4eee9;box-shadow:0 10px 22px rgba(31,77,61,.12);transform:translateY(-1px)}
.event-badge-icon{line-height:1}
.event-external-registration-box { margin-top: 1rem; padding: 1rem 1.1rem; border-radius: 16px; background: #f8fafc; border: 1px solid #e2e8f0; }

@media (max-width: 900px) {
    .event-widget.horizontal {
        grid-template-columns: 1fr;
    }

    .event-date-block {
        border-right: 0;
        border-bottom: 1px solid #e8e5dc;
        padding-right: 0;
        padding-bottom: .75rem;
    }

    .event-status-block {
        align-items: flex-start;
    }
}


.event-widget.horizontal {
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 1.25rem;
}

.event-widget-link {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 1rem;
    align-items: center;
    color: inherit;
    text-decoration: none;
}

.event-widget-link:hover .event-main-block h3 {
    text-decoration: underline;
}

.event-main-block {
    display: flex;
    flex-direction: column;
    gap: .45rem;
}

.event-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    align-items: center;
}

.event-detail-hint {
    font-size: .9rem;
    color: var(--gray);
}

.event-actions {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    width: 100%;
}

.event-actions form {
    width: 100%;
}

.btn-event-action {
    width: 100%;
}

.btn-success {
    background: var(--success);
}

.btn-active {
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.35);
}

.btn-danger-outline {
    background: #fff1f2;
    color: var(--danger);
    border: 2px solid #fecdd3;
}

.btn-state-disabled,
.btn-state-disabled:hover,
.btn-state-disabled:focus {
    background: #e5e7eb;
    color: #475569;
    border: 1px solid #d1d5db;
    box-shadow: none;
    cursor: not-allowed;
    opacity: 1;
}

.btn-state-disabled[disabled] {
    pointer-events: none;
}

@media (max-width: 900px) {
    .event-widget.horizontal {
        grid-template-columns: 1fr;
    }

    .event-widget-link {
        grid-template-columns: 1fr;
    }

    /* Dashboard mobile : la date passe dans la ligne haute dédiée avec la disponibilité. */
    .event-date-block {
        display: none;
    }

    .event-mobile-card-top {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: .75rem;
        border-bottom: 1px solid #e8e5dc;
        padding: 0 0 .75rem;
        min-width: 0;
    }

    .event-mobile-date {
        color: var(--green);
        font-size: .9rem;
        font-weight: 900;
        letter-spacing: .06em;
        line-height: 1.15;
        text-transform: uppercase;
        white-space: nowrap;
    }

    .event-mobile-availability {
        display: inline-flex;
        align-items: center;
        justify-content: flex-end;
        gap: .35rem;
        min-width: 0;
    }

    .event-mobile-availability .status-pill {
        padding: .22rem .55rem;
        font-size: .76rem;
        white-space: nowrap;
    }

    .event-mobile-availability .event-seats-count {
        font-size: .78rem;
    }

    .event-day {
        font-size: clamp(1.7rem, 8vw, 2.15rem);
        line-height: 1;
    }

    .event-month {
        margin-top: 0;
        font-size: clamp(.95rem, 4.4vw, 1.15rem);
        line-height: 1;
        white-space: nowrap;
    }

    .event-icon {
        margin-top: 0;
        font-size: 1.15rem;
        line-height: 1;
    }

    .event-status-block {
        align-items: stretch;
    }

    /* Dashboard mobile : titre centré, statut + nombre sur une ligne, actions compactes en deux colonnes. */
    .event-main-block h3 {
        text-align: center;
    }

    .event-location-line {
        margin: 0;
        text-align: center;
    }

    .event-time-separator,
    .event-time-text {
        display: none;
    }

    .event-status-summary {
        display: none;
    }

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

    .event-actions > :nth-child(n+3) {
        grid-column: 1 / -1;
    }

    .btn-event-action {
        min-height: 42px;
        padding: .68rem .5rem;
        white-space: nowrap;
        font-size: .92rem;
    }
}


.page-actions { display:flex; gap:12px; flex-wrap:wrap; }


.site-header .btn-header-logout{
    background:transparent;
    color:#fff;
    border:2px solid rgba(255,255,255,.7);
}

.site-header .btn-header-logout:hover{
    background:rgba(255,255,255,.12);
    border-color:#fff;
}

.site-header .mobile-nav-logout{
    background:linear-gradient(180deg,#285f4a,#1f4d3d);
    color:#fff;
    border:1px solid rgba(31,77,61,.18);
}

.site-header .mobile-nav-logout:hover{
    background:linear-gradient(180deg,#2c6951,#235341);
    border-color:rgba(31,77,61,.3);
}

.site-header .nav form{
    margin:0;
}


.brand-logo-image{
    position:relative;
    height:42px;
    width:auto;
    display:block;
    object-fit:contain;
    transform:translateY(-1px);
    filter:drop-shadow(0 1px 0 rgba(255,255,255,.45)) drop-shadow(0 6px 12px rgba(31,77,61,.22));
}

.brand-logo-fallback{
    position:relative;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    color:var(--green);
    text-shadow:0 1px 0 rgba(255,255,255,.45), 0 6px 12px rgba(31,77,61,.18);
}

.welcome-logo-image{
    max-width:64px;
    max-height:64px;
    width:auto;
    height:auto;
    display:block;
    object-fit:contain;
}


.auth-card-split{max-width:720px}
.auth-flow{display:flex;flex-direction:column;gap:18px;margin-top:24px}
.auth-panel{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:22px}
.auth-signup-cta{margin-top:18px;padding-top:18px;border-top:1px solid #e5e7eb;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.auth-signup-text{margin:0}
.auth-signup-button{min-width:180px}
.register-panel{display:none}
.register-panel:target{display:block}
.auth-panel-header h2{margin:0}
.btn-small{padding:10px 14px;font-size:.95rem}

@media (max-width: 900px){
    .auth-panel-header{flex-direction:column;align-items:flex-start}
    .auth-signup-button{width:100%}
}

/* Landing page premium */
.landing-page{display:flex;flex-direction:column;gap:28px}
.landing-shell{max-width:1180px;margin:0 auto}
.landing-hero-section{position:relative;overflow:hidden;border-radius:30px;background:
    radial-gradient(circle at top left, rgba(199,165,75,.20), transparent 28%),
    linear-gradient(135deg, #173c31 0%, #204f3f 55%, #2b6150 100%);color:#fff;padding:36px 28px}
.landing-hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.8fr);gap:28px;align-items:start}
.landing-copy{padding:14px 4px 14px 0}
.landing-intro-brand{display:grid;grid-template-columns:minmax(0,1fr) clamp(150px,20vw,275px);gap:24px;align-items:center;margin-bottom:12px}
.landing-intro-logo-wrap{display:flex;align-items:center;justify-content:flex-end}
.landing-intro-logo,.landing-intro-logo-fallback{width:clamp(130px, 20vw, 260px);height:clamp(130px, 20vw, 260px);border-radius:clamp(32px, 4.8vw, 48px);display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg, rgba(255,255,255,.24), rgba(255,255,255,.10));border:1px solid rgba(255,255,255,.34);box-shadow:0 22px 64px rgba(8,18,14,.30), inset 0 1px 0 rgba(255,255,255,.26);backdrop-filter:blur(12px);aspect-ratio:1 / 1;flex:0 0 auto;overflow:hidden;animation:landingLogoFloat 6.5s ease-in-out infinite, landingLogoGlow 4.8s ease-in-out infinite}
.landing-intro-logo{object-fit:contain;padding:clamp(10px, 1.6vw, 18px);background:rgba(255,255,255,.18);transform-origin:center center}
.landing-intro-logo-fallback{font-size:3.25rem;color:#fff}
.landing-intro-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.landing-kicker,.landing-auth-kicker{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14);font-size:.85rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.landing-copy h1{font-size:clamp(2.2rem,4vw,4.35rem);line-height:1.02;margin:18px 0 18px;max-width:11ch}
.landing-intro{max-width:62ch;font-size:1.07rem;line-height:1.75;color:rgba(255,255,255,.94);margin:0 0 24px;text-shadow:0 2px 14px rgba(8,18,14,.20)}
.landing-auth-notice{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;margin:0 0 22px;padding:16px 18px;border-radius:22px;background:linear-gradient(180deg, rgba(255,255,255,.20), rgba(255,255,255,.10));border:1px solid rgba(255,255,255,.24);box-shadow:0 22px 40px rgba(0,0,0,.18);backdrop-filter:blur(14px)}
.landing-auth-notice-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:rgba(255,255,255,.16);font-size:1.35rem}
.landing-auth-notice-copy strong{display:block;font-size:1rem;margin-bottom:4px}
.landing-auth-notice-copy p{margin:0;color:rgba(255,255,255,.90);line-height:1.6}
.landing-cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:26px}
.landing-hero-section .btn-outline{border-color:rgba(255,255,255,.65);color:#fff}
.landing-hero-section .btn-outline:hover{background:rgba(255,255,255,.08)}
.landing-feature-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.landing-feature-chip{padding:18px;border-radius:22px;background:linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,.08));border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(14px);box-shadow:0 22px 40px rgba(0,0,0,.22)}
.landing-feature-chip strong{display:block;font-size:1rem;margin-bottom:8px}
.landing-feature-chip span{display:block;color:rgba(255,255,255,.82);font-size:.95rem;line-height:1.6}
.landing-auth-column{display:flex;justify-content:flex-end}
.landing-auth-card,.landing-register-card{background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.4);box-shadow:0 28px 65px rgba(9,25,20,.22)}
.landing-auth-card{position:relative;top:0;max-width:420px;width:100%}
.landing-auth-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.landing-logo-mark{margin:0;width:66px;height:66px;box-shadow:0 12px 25px rgba(31,77,61,.18)}
.landing-auth-card h2,.landing-register-card h2,.landing-section-head h2,.landing-visual-panel h2{margin:8px 0 10px}
.landing-auth-text{margin:0 0 14px;line-height:1.6}
.landing-signup-cta{align-items:stretch}
.landing-signup-cta .auth-signup-button{width:100%}
.landing-section{padding:8px 0}
.landing-section-soft{padding:8px 0 0}
.landing-section-head{max-width:760px;margin-bottom:18px}
.landing-grid-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.landing-info-card,.landing-visual-panel{background:#fff;border-radius:24px;padding:24px;box-shadow:0 18px 45px rgba(31,77,61,.10);border:1px solid #e7ebea}
.landing-info-card h3{margin-top:0;margin-bottom:10px}
.landing-info-card p{margin:0;color:#475467;line-height:1.7}
.landing-dual-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:20px;align-items:start}
.landing-visual-panel{background:linear-gradient(180deg,#ffffff,#f5f1e8)}
.landing-check-list{display:grid;gap:14px;padding:0;margin:22px 0 0;list-style:none}
.landing-check-list li{position:relative;padding-left:34px;line-height:1.65;color:#334155}
.landing-check-list li::before{content:'✓';position:absolute;left:0;top:0;width:22px;height:22px;border-radius:999px;background:#dcfce7;color:#166534;display:grid;place-items:center;font-weight:800}
.landing-register-card .auth-panel-header{align-items:flex-start}

@media (max-width: 1100px){
    .landing-feature-strip,.landing-grid-three{grid-template-columns:1fr}
    .landing-hero-grid,.landing-dual-grid{grid-template-columns:1fr}
    .landing-auth-column{justify-content:stretch}
    .landing-auth-card{max-width:none}
    .landing-intro-brand{grid-template-columns:1fr;gap:18px;justify-items:start}
    .landing-intro-logo-wrap{order:-1;justify-content:flex-start;align-self:start}
    .landing-intro-copy{order:1}
    .landing-intro-logo,.landing-intro-logo-fallback{width:clamp(120px,22vw,195px);height:clamp(120px,22vw,195px)}
    .landing-copy h1{max-width:none}
}

@media (max-width: 700px){
    .page{padding:20px 14px 34px}
    .landing-hero-section{padding:24px 16px;border-radius:24px}
    .landing-copy{padding-right:0}
    .landing-intro-brand{grid-template-columns:1fr;gap:14px;align-items:start;justify-items:start}
    .landing-intro-logo-wrap{order:-1;justify-content:center;align-self:center;width:100%}
    .landing-intro-copy{order:1}
    .landing-intro-logo,.landing-intro-logo-fallback{width:clamp(130px,37vw,192px);height:clamp(130px,37vw,192px);border-radius:34px;padding:clamp(10px,2.8vw,16px)}
    .landing-copy h1{font-size:2rem;line-height:1.08}
    .landing-intro{font-size:1rem}
    .landing-auth-notice{grid-template-columns:1fr}
    .landing-cta-row .btn{width:100%}
    .landing-auth-header{align-items:flex-start}
}


/* Landing page v2.5.24 member drawer + fairway scene */
.landing-premium .landing-hero-section{
    padding:32px 28px 42px;
    min-height:680px;
    isolation:isolate;
}
.landing-topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;position:relative;z-index:2;margin-bottom:30px}
.landing-topbar-brand{display:flex;align-items:center;gap:12px}
.landing-member-trigger{min-width:140px;border-color:rgba(255,255,255,.78);color:#fff;background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.06));backdrop-filter:blur(14px);box-shadow:0 14px 34px rgba(7,23,18,.24)}
.landing-member-trigger:hover{background:rgba(255,255,255,.12)}
.landing-hero-grid-single{grid-template-columns:minmax(0,1fr);position:relative;z-index:2;min-height:520px;align-items:center}
.landing-fairway-scene{
    background:
        linear-gradient(180deg, rgba(6,18,15,.14), rgba(6,18,15,.48)),
        radial-gradient(circle at 18% 14%, rgba(255,232,190,.22), transparent 20%),
        radial-gradient(circle at 78% 18%, rgba(255,255,255,.10), transparent 24%),
        url('/images/landing-fairway-user.jpg');
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;
}
.landing-scene-overlay{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden;background:
    radial-gradient(circle at 72% 22%, rgba(255,255,255,.18), transparent 18%),
    linear-gradient(180deg, rgba(7,20,16,.05) 0%, rgba(7,20,16,.18) 100%);}
.scene-fairway,.scene-green,.scene-bunker,.scene-rough,.scene-flag{display:none}
.member-access-backdrop{position:fixed;inset:0;z-index:60;height:100dvh}
.member-access-backdrop[hidden]{display:none !important}
.member-access-backdrop-layer{position:absolute;inset:0;background:rgba(8,18,14,.58);backdrop-filter:blur(6px)}
.member-access-drawer{position:fixed;top:20px;right:20px;bottom:20px;width:min(460px,calc(100% - 40px));max-height:none;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:linear-gradient(180deg, rgba(255,255,255,.985), rgba(249,247,240,.975));border-radius:30px;padding:22px;border:1px solid rgba(255,255,255,.82);box-shadow:0 40px 110px rgba(7,23,18,.38)}
.member-access-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}
.member-access-header h2{margin:8px 0 0}
.member-access-close{width:42px;height:42px;border-radius:999px;border:none;background:#f3f4f6;color:#111827;font-size:1.7rem;line-height:1;cursor:pointer}
.member-access-brand{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.member-access-brand .landing-logo-mark{flex:0 0 auto}
.member-access-brand .landing-auth-text{margin:0}
.member-access-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}
.member-access-tab{background:#f4f4f5;color:#334155;border:1px solid #e5e7eb}
.member-access-tab.is-active{background:var(--green);color:#fff;border-color:var(--green)}
.member-access-panel{display:none}
.member-access-panel.is-active{display:block}
.member-access-switch{margin-top:16px}
.member-drawer-open{overflow:hidden}

@media (max-width: 1100px){
    .landing-premium .landing-hero-section{min-height:760px}
    .scene-fairway{width:min(92vw,860px)}
    .scene-green{right:10%;bottom:12%}
}

@media (max-width: 900px){
    .member-access-drawer{top:12px;right:12px;left:12px;bottom:12px;width:auto;padding:18px 18px max(18px, env(safe-area-inset-bottom));border-radius:22px}
}

@media (max-width: 700px){
    .landing-topbar{margin-bottom:22px}
    .landing-member-trigger{min-width:112px}
    .landing-premium .landing-hero-section{padding:22px 16px 34px;min-height:720px}
    .landing-hero-grid-single{min-height:420px}
    .member-access-brand{flex-direction:column;align-items:flex-start}
    .scene-fairway{height:72%;width:118vw;bottom:-6%}
    .scene-green{width:150px;height:150px;right:8%;bottom:9%}
    .scene-bunker-one{width:118px;height:68px;right:25%;bottom:19%}
    .scene-bunker-two{width:88px;height:54px;right:3%;bottom:24%}
    .scene-flag{height:104px;right:22%;bottom:16%}
}

.landing-copy h1,.landing-kicker{ text-shadow:0 6px 28px rgba(8,18,14,.24); }
.landing-copy h1{letter-spacing:-.03em}
.landing-intro{max-width:66ch}
.landing-premium .landing-hero-section::after{content:'';position:absolute;inset:0;border-radius:32px;box-shadow:inset 0 1px 0 rgba(255,255,255,.18), inset 0 -60px 120px rgba(8,18,14,.18);pointer-events:none;z-index:0}


.member-access-panel .stack{padding-bottom:4px}

.member-login-feedback{display:grid;gap:.45rem;padding:1rem 1.05rem;border-width:1px 1px 1px 4px;box-shadow:0 14px 34px rgba(127,29,29,.12)}
.member-login-feedback strong{display:block;font-size:.98rem}
.member-login-feedback small{display:block;color:#7f1d1d;font-size:.88rem;line-height:1.45}

.member-remember-option{display:inline-flex;align-items:center;gap:9px;width:auto;color:#1f2937;font-weight:700;line-height:1.3;cursor:pointer}
.member-remember-option input[type="checkbox"]{width:18px;height:18px;min-width:18px;margin:0;accent-color:#1f4d3d}
.member-remember-option span{display:inline-block;color:#1f2937}
.member-access-panel .stack input[aria-invalid="true"]{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12)}

.notifications-panel {
    display: grid;
    gap: .9rem;
    padding: 1.15rem 1.35rem;
    max-width: 100%;
    overflow: hidden;
}

.notifications-panel.is-collapsed {
    gap: .65rem;
    padding-bottom: 1rem;
}

.notifications-collapsible-body {
    display: grid;
    gap: .85rem;
}

.notifications-collapsible-body[hidden] {
    display: none;
}

.notifications-toggle-button {
    min-width: 78px;
}

.notifications-panel-header {
    align-items: center;
    gap: .9rem;
    flex-wrap: nowrap;
}

.notifications-panel-title {
    min-width: 0;
    flex: 1 1 auto;
}

.dashboard-messages-panel{margin-top:0}
.dashboard-messages-title{display:flex;align-items:center;gap:.7rem;min-width:0}
.dashboard-messages-title h2{display:inline-flex;align-items:center;gap:.55rem;min-width:0}
.dashboard-messages-title h2 span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
/* Alerte visuelle premium : l’icône pulse et oscille uniquement si des messages in-app sont non lus. */
.dashboard-messages-icon{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;border-radius:14px;background:linear-gradient(180deg,#fffdf6,#fff3d6);border:1px solid rgba(199,165,75,.28);color:#1f4d3d;box-shadow:0 10px 22px rgba(31,77,61,.08)}
.dashboard-messages-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dashboard-messages-icon.is-animated{animation:dashboard-message-attention 2.45s ease-in-out infinite}
.dashboard-messages-icon.is-animated::after{content:"";position:absolute;inset:-6px;border-radius:18px;border:1px solid rgba(199,165,75,.42);box-shadow:0 0 0 0 rgba(199,165,75,.2);opacity:0;z-index:-1;animation:dashboard-message-halo 2.45s ease-out infinite}
.dashboard-messages-icon.is-animated svg{animation:dashboard-message-wiggle 2.45s ease-in-out infinite;transform-origin:50% 50%}
.dashboard-messages-counter{display:inline-flex;align-items:center;white-space:nowrap;padding:.36rem .72rem;border-radius:999px;background:#eef4f1;color:#1f4d3d;font-size:.84rem;font-weight:800;border:1px solid rgba(31,77,61,.12)}
@keyframes dashboard-message-attention{0%,100%{transform:translateY(0) scale(1);box-shadow:0 10px 22px rgba(31,77,61,.08)}14%{transform:translateY(-2px) scale(1.04);box-shadow:0 16px 32px rgba(31,77,61,.18)}30%{transform:translateY(0) scale(1);box-shadow:0 10px 22px rgba(31,77,61,.1)}}
@keyframes dashboard-message-wiggle{0%,9%,31%,100%{transform:rotate(0deg)}12%{transform:rotate(-8deg)}18%{transform:rotate(8deg)}24%{transform:rotate(-5deg)}}
@keyframes dashboard-message-halo{0%{opacity:0;transform:scale(.82);box-shadow:0 0 0 0 rgba(199,165,75,.22)}18%{opacity:.75}55%{opacity:0;transform:scale(1.22);box-shadow:0 0 0 8px rgba(199,165,75,0)}100%{opacity:0;transform:scale(1.22);box-shadow:0 0 0 8px rgba(199,165,75,0)}}
@media (prefers-reduced-motion: reduce){.dashboard-messages-icon.is-animated,.dashboard-messages-icon.is-animated::after,.dashboard-messages-icon.is-animated svg{animation:none}}

.notifications-panel-header h2 {
    margin: 0;
    font-size: clamp(1.12rem, 1.7vw, 1.45rem);
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.notifications-quick-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:nowrap;justify-content:flex-end;flex:0 0 auto;min-width:0;max-width:100%}
.notifications-quick-actions .btn{white-space:nowrap;min-width:0}
.btn-compact{padding:.42rem .72rem;border-radius:999px;font-size:.84rem;min-height:34px;line-height:1;transition:opacity .18s ease,transform .18s ease,box-shadow .18s ease}
.notification-inline-feedback{padding:.8rem .95rem;border-radius:16px;background:#eef4f1;border:1px solid rgba(31,77,61,.12);color:#1f4d3d;font-weight:700}
.notifications-list-fade{opacity:.42;transform:translateY(2px);transition:opacity .22s ease,transform .22s ease}
.notification-item-fading{opacity:0;transform:translateY(-6px) scale(.985);transition:opacity .24s ease,transform .24s ease}

.notification-item .status-pill{padding:.38rem .8rem;font-size:.82rem}
.notification-item-inline-content > strong{max-width:18ch}

.notifications-list {
    display: grid;
    gap: .85rem;
}

.notification-item {
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 1rem 1.1rem;
    background: #ffffff;
    display: grid;
    gap: .65rem;
}

.notification-item.is-unread {
    border-color: rgba(22, 101, 52, 0.24);
    box-shadow: 0 10px 30px rgba(22, 101, 52, 0.08);
}

.notification-item.is-highlighted {
    border-color: rgba(217, 119, 6, 0.35);
    box-shadow: 0 12px 32px rgba(217, 119, 6, 0.12);
}

.notification-item-link {
    text-decoration: none;
    color: inherit;
    max-width: 100%;
    overflow: hidden;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.notification-item-link:hover,
.notification-item-link:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(22, 101, 52, 0.34);
    box-shadow: 0 14px 34px rgba(22, 101, 52, 0.12);
}

.notification-item-inline-row,
.notification-item-meta {
    min-width: 0;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
}

.notification-item-inline-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
}

.notification-item-inline-content {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: .45rem;
    flex: 1 1 auto;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.notification-item-inline-content > strong,
.notification-item-inline-message,
.notification-item-inline-sender {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.notification-item-inline-content > strong {
    flex: 0 1 auto;
}

.notification-item-inline-message {
    flex: 1 1 auto;
}

.notification-item-inline-sender {
    flex: 0 1 18ch;
}

.notification-item-inline-message,
.notification-item-inline-sender,
.notification-inline-separator {
    color: #4b5563;
}

.notification-item-inline-meta,
.notification-item-badges {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
    justify-content: flex-end;
    flex: 0 0 auto;
}

.notification-item-inline-meta {
    white-space: nowrap;
}

.notification-item p {
    margin: 0;
}

.notification-item-message {
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.notification-empty-state {
    border: 1px dashed #d1d5db;
    border-radius: 18px;
    padding: 1rem 1.1rem;
    background: #fcfcfd;
}

@media (max-width: 900px) {
    .notifications-panel{padding:1rem}
    .notifications-panel-header{flex-direction:row;align-items:center;justify-content:space-between;gap:.6rem;min-width:0}
    .notifications-panel-header h2{font-size:1.02rem}
    .notifications-quick-actions{width:auto;justify-content:flex-end;gap:.35rem}
    .btn-compact{padding:.36rem .58rem;font-size:.78rem;min-height:31px}
    .notifications-toggle-button{min-width:0}
    .notification-item-inline-row,
    .notification-item-meta {
        flex-direction: column;
        align-items: flex-start;
    }

    .notification-item-inline-row {
        grid-template-columns: 1fr;
    }

    .notification-item-inline-content,
    .notification-item-inline-meta,
    .notification-item-badges {
        width: 100%;
    }

    .notification-item-inline-meta,
    .notification-item-badges {
        justify-content: flex-start;
    }
}


@media (max-width: 640px) {
    .notifications-panel-header{flex-direction:column;align-items:stretch;gap:.65rem}
    .dashboard-messages-header{flex-direction:row;align-items:center}
    .notifications-panel-title{width:100%;flex-basis:auto}
    .dashboard-messages-title{width:auto;flex:1 1 auto;gap:.45rem}
    .dashboard-messages-icon{width:31px;height:31px;flex-basis:31px;border-radius:12px}
    .dashboard-messages-counter{padding:.32rem .58rem;font-size:.78rem}
    .notifications-panel-header h2{max-width:100%}
    .notifications-quick-actions{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;justify-content:stretch}
    .notifications-quick-actions .btn{width:100%;padding-left:.45rem;padding-right:.45rem;text-align:center}
}

@media (max-width: 380px) {
    .notifications-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}


.event-deadline-badge {
    align-items: center;
    white-space: nowrap;
}

.badge-deadline-green { background: #dcfce7; color: #166534; }
.badge-deadline-orange { background: #fed7aa; color: #9a3412; }
.badge-deadline-red { background: #fee2e2; color: #991b1b; }
.badge-deadline-neutral { background: #f3f4f6; color: #374151; }

.notification-pill-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.notification-pill-link:hover,
.notification-pill-link:focus {
    background: rgba(255,255,255,.22);
    box-shadow: 0 10px 24px rgba(0,0,0,.10);
    transform: translateY(-1px);
}

.notification-filters {
    margin-bottom: 1rem;
}

.btn-filter {
    border-radius: 999px;
    padding: .7rem 1rem;
}

.btn-filter-active {
    background: var(--green);
    color: #fff;
}

.btn-filter-inactive {
    background: #fff;
    color: var(--green);
    border: 1px solid #d1d5db;
}

.notifications-page-card {
    margin-top: 0;
}

.notification-item-actions {
    align-items: center;
}

.event-page-stack{display:flex;flex-direction:column;gap:20px}
.event-hero-card{position:relative;overflow:hidden;background:linear-gradient(135deg, rgba(31,77,61,.98) 0%, rgba(41,97,77,.96) 58%, rgba(65,118,96,.94) 100%);color:#fff;border:1px solid rgba(255,255,255,.14);box-shadow:0 24px 60px rgba(31,77,61,.18)}
.event-hero-card::after{content:'';position:absolute;right:-70px;top:-70px;width:220px;height:220px;border-radius:999px;background:radial-gradient(circle, rgba(255,255,255,.16) 0%, rgba(255,255,255,0) 68%);pointer-events:none}
.event-hero-card-with-cover{background:#10241d;isolation:isolate}
.event-hero-card-with-cover::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg, rgba(8,24,19,.92) 0%, rgba(8,24,19,.76) 38%, rgba(8,24,19,.50) 68%, rgba(8,24,19,.72) 100%),linear-gradient(180deg, rgba(8,24,19,.66) 0%, rgba(8,24,19,.30) 48%, rgba(8,24,19,.78) 100%);pointer-events:none;z-index:0}
.event-hero-cover{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.62;transform:scale(1.01);z-index:0;filter:saturate(.96) contrast(.96)}
.event-hero-card-with-cover::after{z-index:0}
.event-hero-shell{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(250px,.7fr);gap:22px;align-items:stretch}
.event-hero-top{align-items:flex-start}

.event-hero-title-block{min-width:0;flex:1}
.event-hero-actions{flex:0 0 auto;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.event-hero-icon-button{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:15px;background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.72);color:var(--green);box-shadow:0 12px 28px rgba(15,23,42,.14);transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease}
.event-hero-icon-button:hover,.event-hero-icon-button:focus-visible{transform:translateY(-1px);background:#fff;border-color:#fff;box-shadow:0 16px 34px rgba(15,23,42,.18);outline:none}
.event-calendar-plus-icon{width:22px;height:22px;display:block}
.event-hero-card-with-cover .event-hero-icon-button{background:rgba(255,255,255,.90);border-color:rgba(255,255,255,.78);box-shadow:0 14px 30px rgba(0,0,0,.20)}
.event-hero-card-with-cover .event-hero-icon-button:hover,.event-hero-card-with-cover .event-hero-icon-button:focus-visible{background:#fff;border-color:#fff}
.event-eyebrow{margin:0 0 8px;font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.76)}
.event-hero-copy{min-width:0}
.event-hero-card-with-cover .event-hero-copy{padding:18px;border-radius:24px;background:linear-gradient(180deg, rgba(8,24,19,.58), rgba(8,24,19,.40));border:1px solid rgba(255,255,255,.16);box-shadow:0 18px 44px rgba(0,0,0,.18);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.event-hero-card-with-cover .event-hero-copy,.event-hero-card-with-cover .event-stat-card{text-shadow:0 2px 14px rgba(0,0,0,.48)}
.event-hero-card h1{margin:0;font-size:2rem;line-height:1.05}
.event-hero-meta{margin:10px 0 0;color:rgba(255,255,255,.82)}
.event-hero-card-with-cover .event-hero-meta{color:rgba(255,255,255,.92)}
.event-hero-description{margin:18px 0 0;max-width:65ch;color:rgba(255,255,255,.92);line-height:1.7}
.event-hero-card-with-cover .event-hero-description{color:rgba(255,255,255,.96);font-weight:600;text-shadow:0 2px 16px rgba(0,0,0,.58)}
.event-hero-card-with-cover .event-badge{box-shadow:0 6px 16px rgba(0,0,0,.18)}
.event-progress-block{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.event-progress-track{width:100%;height:10px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden;box-shadow:inset 0 1px 2px rgba(15,23,42,.18)}
.event-progress-bar{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#f6c453 0%,#f0a94a 100%);box-shadow:0 4px 12px rgba(240,169,74,.28)}
.event-progress-text{font-size:.85rem;font-weight:700;color:rgba(255,255,255,.88)}
.event-badge-link{text-decoration:none;transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease}
.event-badge-link:hover,.event-badge-link:focus{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.12)}
.event-badge-carpool{background:#dbeafe;color:#1d4ed8;border:1px solid rgba(29,78,216,.15)}
.event-badge-carpool-full{background:#f1f5f9;color:#475569;border:1px solid rgba(71,85,105,.15)}
.participant-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.participant-card-self{border-color:#cfe4da;box-shadow:0 16px 34px rgba(31,77,61,.10)}
.participant-badge-row{display:flex;flex-wrap:wrap;gap:8px}
.participant-mini-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:.74rem;font-weight:800;letter-spacing:.02em;white-space:nowrap}
.participant-mini-badge-self{background:#eef4f1;color:#1f4d3d}
.participant-mini-badge-organizer{background:#fff4d6;color:#8a5a00}
.participant-mini-badge-declined{background:#fde8e8;color:#b42318}
.participant-card-declined{border-color:#f5d0d0;background:linear-gradient(180deg,#fffafa 0%,#fff 100%)}
.btn-event-action{transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;will-change:transform;min-height:46px}
.btn-event-action:hover,.btn-event-action:focus{transform:translateY(-1px);box-shadow:0 12px 26px rgba(15,23,42,.12)}
.btn-event-action-primary{box-shadow:0 14px 30px rgba(31,77,61,.20)}
.btn-event-action-secondary{box-shadow:0 12px 26px rgba(214,158,46,.18)}
.btn-event-action-outline{background:#fff}
html{scroll-behavior:smooth}

.event-hero-stats{display:grid;gap:14px}
.event-stat-card{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:18px;border-radius:22px;background:linear-gradient(180deg, rgba(255,255,255,.15), rgba(255,255,255,.08));border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 18px 34px rgba(0,0,0,.14)}
.event-hero-card-with-cover .event-stat-card{background:linear-gradient(180deg, rgba(8,24,19,.62), rgba(8,24,19,.44));border-color:rgba(255,255,255,.20);box-shadow:0 22px 46px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.10)}
.event-hero-card .event-stat-card .muted{color:rgba(255,255,255,.82)}
.event-hero-card-with-cover .event-stat-card .muted{color:rgba(255,255,255,.88)}
.event-hero-card-with-cover .btn-outline{background:rgba(255,255,255,.88);color:#1f4d3d;border-color:rgba(255,255,255,.82);box-shadow:0 14px 30px rgba(0,0,0,.16)}
.event-hero-card-with-cover .btn-outline:hover,.event-hero-card-with-cover .btn-outline:focus{background:#fff;border-color:#fff}
.event-stat-card strong{font-size:1.45rem;line-height:1.1}
.event-stat-label{font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.74)}
.event-stat-label-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.event-stat-main-label{white-space:nowrap}.event-stat-card .event-stat-status{font-size:1rem;text-align:right}.event-stat-lodging-row{margin-top:2px}.event-stat-lodging-row .muted{font-weight:800}.event-stat-link{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);color:#fff;font-size:.74rem;font-weight:900;line-height:1;text-decoration:none;box-shadow:0 8px 18px rgba(15,23,42,.10)}.event-stat-link:hover,.event-stat-link:focus-visible{background:rgba(255,255,255,.22);color:#fff;text-decoration:none;outline:2px solid rgba(255,255,255,.24);outline-offset:2px}
.event-detail-grid{align-items:start}
.event-detail-column{display:flex;flex-direction:column;gap:16px;min-width:0}
.event-inline-alert{display:flex;align-items:flex-start;gap:14px;padding:18px 20px;border-radius:20px;border:1px solid #f0dfb7;background:linear-gradient(180deg,#fff8ec 0%,#fffdf7 100%);box-shadow:0 14px 30px rgba(240,169,74,.10)}
.event-inline-alert-important{border-color:#f0c36d}
.event-inline-alert-icon{width:34px;height:34px;border-radius:999px;display:grid;place-items:center;flex:0 0 auto;background:#f6c453;color:#5d3a00;font-size:1rem;font-weight:900;box-shadow:0 10px 22px rgba(246,196,83,.24);animation:event-alert-icon-pulse 2.4s ease-in-out infinite}
.event-inline-alert-copy{display:flex;flex-direction:column;gap:6px;min-width:0}
.event-inline-alert-copy strong{display:block;color:#5d3a00}
.event-inline-alert-copy p{margin:0;line-height:1.65;color:#5b5548}
.event-inline-alert-copy a{font-weight:800;color:#1f4d3d;text-decoration:underline}
@keyframes event-alert-icon-pulse{
    0%,100%{transform:scale(1);box-shadow:0 10px 22px rgba(246,196,83,.24)}
    50%{transform:scale(1.08);box-shadow:0 0 0 8px rgba(246,196,83,.14), 0 10px 22px rgba(246,196,83,.24)}
}
@media (prefers-reduced-motion: reduce){
    .event-inline-alert-icon{animation:none}
}
.event-detail-card{border:1px solid #ece7de;box-shadow:0 20px 48px rgba(31,77,61,.08)}
.event-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}
.event-section-head h2{margin:0 0 6px}
.event-section-head p{margin:0}
.event-section-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto;flex-wrap:wrap}.event-accommodations-section-head{align-items:flex-start}.accommodation-suggest-header-action{white-space:nowrap}.accommodation-member-count{white-space:nowrap;font-size:.82rem}.accommodation-member-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;user-select:none}.accommodation-member-toggle:focus-visible,.event-day-accommodation-member-toggle:focus-visible{outline:2px solid rgba(19,78,74,.45);outline-offset:2px}.accommodation-member-toggle-arrow{font-size:.78rem;line-height:1;transition:transform .18s ease}.accommodation-card-collapsible[open] .accommodation-member-toggle-arrow{transform:rotate(180deg)}.accommodation-occupancy-preview{font-size:.9rem;line-height:1.45;overflow-wrap:anywhere}.event-day-accommodation-member-count{font-size:.75rem;padding:4px 9px}.event-day-accommodation-occupancy-preview{display:block;margin-top:1px}
.event-inline-count{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;background:#eef4f1;color:#1f4d3d;font-weight:800;white-space:nowrap}
.event-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.event-summary-item{padding:16px 18px;border-radius:18px;background:linear-gradient(180deg,#fff,#f9f7f2);border:1px solid #ece7de;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.event-summary-item strong{display:block;font-size:1rem;line-height:1.45;color:#0f172a}
.event-summary-label{display:block;margin-bottom:6px;font-size:.82rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#64748b}
.event-note-box{margin-top:18px;padding:18px;border-radius:18px;background:#fff8ec;border:1px solid #f0dfb7}
.event-note-box-soft{background:#f8fafc;border-color:#e2e8f0}
.event-note-box strong{display:block;margin-bottom:8px}
.event-note-box p{margin:0;line-height:1.7}
.event-bullet-list{margin:10px 0 0;padding-left:18px;display:grid;gap:6px}
.event-bullet-list.compact{margin-top:8px}
.participant-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.participant-card{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:20px;background:linear-gradient(180deg,#ffffff,#f8fafc);border:1px solid #e2e8f0;box-shadow:0 12px 28px rgba(15,23,42,.05)}
.participant-avatar{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#1f4d3d,#2f6a54);color:#fff;font-weight:800;letter-spacing:.04em;flex:0 0 auto;box-shadow:0 10px 24px rgba(31,77,61,.18)}
.participant-subline{margin-top:4px;line-height:1.5}
.participant-self-badge{margin-left:auto;display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:#eef4f1;color:#1f4d3d;font-size:.82rem;font-weight:800;white-space:nowrap}
.event-current-state-pill{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:#dff3e8;color:#123f31;font-size:.92rem;font-weight:800;box-shadow:inset 0 0 0 1px rgba(18,63,49,.10), 0 8px 20px rgba(31,77,61,.08)}
.event-current-state-pill-muted{background:#f1f5f9;color:#475569;box-shadow:inset 0 0 0 1px rgba(148,163,184,.16)}
.event-empty-box{padding:18px;border-radius:18px;background:#f8fafc;border:1px dashed #cbd5e1}
.event-empty-box strong{display:block;margin-bottom:6px}
.event-day-list{display:grid;gap:12px}
.event-day-card{padding:16px 18px;border-radius:18px;background:linear-gradient(180deg,#fff,#f9f7f2);border:1px solid #ece7de;display:grid;gap:6px}
/* v2.6.127 : cartes jour multi-jours lisibles avec alternance douce et en-tête jour/date compact, sans bandeau supérieur. */
.event-day-card-odd{background:linear-gradient(180deg,#f3faf6,#ffffff);border-color:#d9eadf}
.event-day-card-even{background:linear-gradient(180deg,#fffaf0,#ffffff);border-color:#efe0bd}
.event-day-heading{display:flex;align-items:baseline;justify-content:center;gap:8px;flex-wrap:wrap;text-align:center;margin-bottom:4px}
.event-day-heading strong{font-size:1.02rem;color:#0f172a}
.event-day-index{font-size:.82rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#1f4d3d;white-space:nowrap}
.event-day-date{white-space:nowrap}
.event-day-index::after{content:"·";margin-left:8px;color:#94a3b8;font-weight:900;letter-spacing:0}
.event-day-meta{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;text-align:center;color:#475569;font-size:.92rem}
.event-day-meta span{display:inline-flex;align-items:center;gap:6px}
.event-response-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.event-response-head .muted{margin-top:4px}

/* v2.8.21 : Mes actions conserve la grille 4 tuiles et affine les boutons courts/danger sans changer les routes existantes. */
.event-actions-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:stretch}
.event-action-card{display:flex;flex-direction:column;gap:12px;min-width:0;padding:16px;border-radius:22px;background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #e2e8f0;box-shadow:0 14px 32px rgba(15,23,42,.05)}
.event-action-card-head{display:flex;align-items:center;gap:10px;min-width:0}.event-action-card-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:14px;background:#eef4f1;color:#1f4d3d;font-size:1rem;font-weight:900;flex:0 0 auto}.event-action-card-title{font-size:.82rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:#64748b;line-height:1.25}.event-action-card-body{display:flex;flex-direction:column;gap:8px;min-height:54px}.event-action-card-copy{margin:0;color:#64748b;font-size:.9rem;line-height:1.45}.event-action-status{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:8px 11px;border-radius:999px;font-size:.84rem;font-weight:900;line-height:1.2}.event-action-status-success{background:#dff3e8;color:#123f31;box-shadow:inset 0 0 0 1px rgba(18,63,49,.10)}.event-action-status-warning{background:#fff4d6;color:#8a5a00;box-shadow:inset 0 0 0 1px rgba(214,158,46,.18)}.event-action-status-muted{background:#f1f5f9;color:#475569;box-shadow:inset 0 0 0 1px rgba(148,163,184,.16)}.event-action-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.event-action-card-actions-inline{flex-wrap:nowrap}.event-action-card-actions form{display:flex;margin:0}.event-action-card-actions .btn{width:auto;min-height:38px;justify-content:center;padding:.56rem .78rem;font-size:.86rem;line-height:1.2}.btn-event-action-danger{background:var(--danger);color:#fff;box-shadow:0 12px 26px rgba(185,28,28,.18)}.btn-event-action-danger:hover,.btn-event-action-danger:focus-visible{filter:brightness(.98);box-shadow:0 14px 28px rgba(185,28,28,.24)}.event-action-card-accommodation .event-action-card-icon{background:#fff4d6;color:#8a5a00}.event-action-card-external .event-action-card-icon{background:#e0f2fe;color:#0369a1}.event-action-card-carpool .event-action-card-icon{background:#dbeafe;color:#1d4ed8}

/* v2.8.19 : icône compacte dans les actions d'événement. */
.btn-action-icon{width:1.05em;height:1.05em;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.event-status-inline-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.event-status-inline-list-single{grid-template-columns:minmax(0,340px)}
.event-status-inline-item{padding:16px 18px;border-radius:18px;background:#f8fafc;border:1px solid #e2e8f0}
.participant-row-lite{padding:14px 0}
.carpool-card-item{padding:18px 0}
.carpool-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.carpool-card-header .btn{white-space:nowrap}
.carpool-contact-form{align-items:center}
.carpool-contact-form input{min-width:240px}

@media (max-width: 900px){
    .event-hero-shell,.event-summary-grid,.participant-grid,.event-status-inline-list{grid-template-columns:1fr}

    .event-summary-item-mobile-nowrap{display:flex;align-items:center;justify-content:space-between;gap:12px}
    .event-summary-item-mobile-nowrap .event-summary-label{margin-bottom:0;white-space:nowrap;font-size:.76rem}
    .event-summary-item-mobile-nowrap strong{font-size:.92rem;text-align:right;white-space:nowrap}
    .event-hero-top{flex-direction:row;align-items:flex-start}
    .event-hero-actions{flex-direction:row;align-items:center;justify-content:flex-end;margin-left:auto}
    .event-hero-icon-button{width:40px;height:40px;border-radius:14px}
    .event-calendar-plus-icon{width:21px;height:21px}
    .event-inline-alert{padding:16px 18px}
    .event-inline-alert-icon{width:30px;height:30px}
    .event-response-head{flex-direction:column;align-items:flex-start}
    .event-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .event-action-card{padding:14px;border-radius:20px}
    .event-action-card-icon{width:30px;height:30px;border-radius:12px}
    .event-action-card-actions .btn{width:auto;justify-content:center}
    .carpool-card-header{flex-direction:column;align-items:stretch}
    .event-hero-card h1{font-size:1.65rem}
    .event-hero-card-with-cover .event-hero-copy{padding:16px;border-radius:20px}
    .event-inline-count,.participant-self-badge{margin-left:0}
    .participant-card{align-items:flex-start;flex-wrap:wrap}
    .carpool-contact-form input{min-width:0}
}
@media (max-width: 430px){
    .event-actions-grid{gap:10px}
    .event-action-card{padding:12px}
    .event-action-card-actions{flex-direction:column;align-items:stretch}
    .event-action-card-actions .btn,.event-action-card-actions form{width:100%}
    .event-action-card-actions-inline{flex-direction:row;align-items:stretch}
    .event-action-card-actions-inline .btn,.event-action-card-actions-inline form{width:auto;flex:1 1 0}
}

.accommodation-list{gap:12px}
.accommodation-card{gap:0;padding:0;overflow:hidden}
.accommodation-card-collapsible{border-radius:22px;border:1px solid rgba(15,23,42,.08);background:#fff;box-shadow:0 12px 32px rgba(15,23,42,.04)}
.accommodation-card-collapsible[open]{box-shadow:0 16px 38px rgba(15,23,42,.08)}
.accommodation-summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;cursor:default}
.accommodation-summary::-webkit-details-marker{display:none}
.accommodation-summary-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.accommodation-summary-copy strong{font-size:1rem;line-height:1.4}
.accommodation-panel-trigger{font-family:inherit;border:0;background:transparent;appearance:none;-webkit-appearance:none}
.accommodation-summary-name.accommodation-panel-trigger,.event-accommodation-name-toggle.accommodation-panel-trigger{display:inline;text-align:left;padding:0;color:inherit;font-weight:800;line-height:1.4}
.accommodation-summary-name.accommodation-panel-trigger:hover,.event-accommodation-name-toggle:hover{text-decoration:underline}
.accommodation-summary-name.accommodation-panel-trigger.is-open,.event-accommodation-name-toggle.accommodation-panel-trigger.is-open{color:#134e4a}
.accommodation-member-toggle.accommodation-panel-trigger{border:0;cursor:pointer;font-family:inherit}
.accommodation-member-toggle.accommodation-panel-trigger.is-open{background:#134e4a;color:#fff}
.accommodation-panel[hidden]{display:none!important}
.accommodation-members-panel{background:#fbfdfc}
.event-accommodation-panel[hidden]{display:none!important}
.event-accommodation-panel{margin-top:10px}
.accommodation-summary-name,.event-accommodation-name-toggle{cursor:pointer;text-decoration:none;text-underline-offset:4px}
.accommodation-summary-name:focus-visible,.event-accommodation-name-toggle:focus-visible{outline:3px solid rgba(199,165,75,.35);outline-offset:3px;border-radius:10px}
.accommodation-summary-meta{display:flex;align-items:center;gap:10px;flex-shrink:0}
.accommodation-summary-toggle{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid rgba(15,23,42,.12);font-size:.88rem;font-weight:700;color:#134e4a;background:rgba(255,255,255,.96);cursor:pointer;user-select:none}
.accommodation-summary-toggle::before{content:'+';font-size:1rem;line-height:1;font-weight:800}
.accommodation-card-collapsible[open] .accommodation-summary-toggle::before{content:'−'}
.accommodation-card-collapsible[open] .accommodation-summary-toggle{background:#134e4a;color:#fff;border-color:#134e4a}
.accommodation-type{font-size:.92rem}
.accommodation-actions{display:flex;flex-wrap:wrap;gap:10px;padding:0 20px 18px}
.accommodation-actions-compact{padding-top:0}
.accommodation-panel .accommodation-actions{padding:16px 0 4px}
.accommodation-details{display:flex;flex-direction:column;gap:12px;padding:0 20px 20px;border-top:1px solid rgba(148,163,184,.18)}
.accommodation-description{margin:0;padding-top:16px;line-height:1.7;color:#0f172a}
.accommodation-address{line-height:1.6}
.accommodation-contact-list{display:grid;gap:8px;margin:10px 0 0}
.accommodation-contact-list div{display:grid;gap:2px;min-width:0}
.accommodation-contact-list dt{font-size:.72rem;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.04em}
.accommodation-contact-list dd{margin:0;color:#0f172a;line-height:1.45;overflow-wrap:anywhere}
.accommodation-contact-list a{color:#047857;font-weight:700;text-decoration:none}
.accommodation-contact-list a:hover{text-decoration:underline}
.event-badge-offer{background:#fff7ed;color:#9a3412;border-color:#fed7aa}
.negotiated-offer-box{display:flex;flex-direction:column;gap:12px;margin-top:16px;padding:16px;border-radius:18px;border:1px solid #fed7aa;background:linear-gradient(180deg,#fff7ed,#fffbeb);box-shadow:0 12px 26px rgba(154,52,18,.08)}
.negotiated-offer-head{display:flex;align-items:flex-start;gap:12px}
.negotiated-offer-head strong{display:block;color:#7c2d12;font-size:1rem;line-height:1.35}
.negotiated-offer-head .muted{display:block;margin-top:2px;font-size:.9rem}
.negotiated-offer-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;border-radius:999px;background:#fff;color:#9a3412;box-shadow:0 8px 18px rgba(154,52,18,.12)}
.negotiated-offer-row{display:grid;gap:4px;padding-top:10px;border-top:1px solid rgba(251,146,60,.24)}
.negotiated-offer-row span{font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#9a3412}
.negotiated-offer-row p{margin:0;line-height:1.6;color:#431407}
.accommodation-choice-box{display:flex;flex-direction:column;gap:14px;margin-bottom:18px}
.accommodation-choice-list{display:flex;flex-direction:column;gap:12px}
.choice-card,.checkbox-card{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:18px;border:1px solid #dbe4ea;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.04)}
.choice-card input[type="radio"],.checkbox-card input[type="checkbox"]{margin-top:3px;accent-color:#1f4d3d}
.choice-card span,.checkbox-card span{display:flex;flex-direction:column;gap:4px;flex:1}

.profile-privacy-form{max-width:620px}
.privacy-switch-row{display:flex;align-items:center;gap:12px;width:100%;min-width:0;padding:12px 14px;border-radius:18px;border:1px solid #dbe4ea;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 10px 24px rgba(15,23,42,.04);cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.privacy-switch-row:hover,.privacy-switch-row:focus-within{border-color:rgba(31,77,61,.32);box-shadow:0 14px 28px rgba(31,77,61,.10);transform:translateY(-1px)}
.privacy-switch-input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
.privacy-switch-control{position:relative;display:inline-flex;flex:0 0 44px;width:44px;height:24px;border-radius:999px;background:#cbd5e1;border:1px solid rgba(100,116,139,.28);box-shadow:inset 0 2px 5px rgba(15,23,42,.14);transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}
.privacy-switch-control::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:999px;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 3px 8px rgba(15,23,42,.18);transition:transform .18s ease}
.privacy-switch-input:checked + .privacy-switch-control{background:linear-gradient(180deg,#1f4d3d,#173d31);border-color:#173d31;box-shadow:inset 0 2px 5px rgba(0,0,0,.18),0 6px 14px rgba(31,77,61,.16)}
.privacy-switch-input:checked + .privacy-switch-control::after{transform:translateX(20px)}
.privacy-switch-input:focus-visible + .privacy-switch-control{outline:3px solid rgba(199,165,75,.35);outline-offset:3px}
.privacy-switch-text{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:800;color:#0f172a;line-height:1.2}
.privacy-help{margin-top:-2px;font-size:.92rem;line-height:1.45}
.privacy-autosave-status{margin-top:-6px;font-size:.82rem;line-height:1.3;color:#64748b}
.profile-privacy-form.is-saving .privacy-switch-row{opacity:.72;pointer-events:none}
.profile-privacy-form.is-saving .privacy-autosave-status{color:#1f4d3d;font-weight:800}
.choice-card small{font-size:.92rem;line-height:1.5}
.choice-card-selected{border-color:#1f4d3d;box-shadow:0 12px 28px rgba(31,77,61,.12);background:rgba(31,77,61,.04)}
.btn-choose-accommodation{align-self:center;white-space:nowrap}
.accommodation-occupancy{padding-top:14px;border-top:1px solid rgba(148,163,184,.24);display:flex;flex-direction:column;gap:10px}
.accommodation-occupancy-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.accommodation-occupancy-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.accommodation-occupancy-list li{line-height:1.5}
@media (max-width: 900px){
    .accommodation-summary{align-items:flex-start;flex-direction:column}
    .accommodation-summary-meta{width:100%;justify-content:space-between}
    .accommodation-actions{padding:0 16px 16px}
    .accommodation-details{padding:0 16px 16px}
    .choice-card{flex-wrap:wrap}
    .btn-choose-accommodation{width:100%;justify-content:center}
    .accommodation-occupancy-head{align-items:flex-start;flex-direction:column}
}

.nav-link-active{color:#fff3c4;font-weight:800;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}

.agenda-page{display:grid;gap:20px}
.agenda-page-header{align-items:flex-start}
.agenda-nav{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;justify-content:flex-end}
.agenda-nav .btn{min-height:38px;padding:.52rem .86rem;border-radius:12px;font-size:.9rem;line-height:1;white-space:nowrap}
.agenda-summary-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;background:linear-gradient(180deg,#fff,#f8f4ea);border:1px solid rgba(199,165,75,.18)}
.agenda-summary-card h2{margin:4px 0 0;font-size:1.85rem}
.agenda-summary-kicker{margin:0;font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8a6a1f}
.agenda-summary-meta{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:18px;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 10px 24px rgba(15,23,42,.05)}
.agenda-summary-meta strong{font-size:1.35rem;color:#1f4d3d}
.agenda-calendar-shell{overflow-x:auto;padding-bottom:6px}
.agenda-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(140px,1fr));min-width:980px;border:1px solid rgba(15,23,42,.08);border-radius:24px;overflow:hidden;background:#e9ece8;box-shadow:0 20px 48px rgba(15,23,42,.08)}
.agenda-weekday{padding:14px 12px;background:#1f4d3d;color:#fff;font-weight:800;letter-spacing:.03em;text-align:center}
.agenda-day-card{min-height:150px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:12px;border-right:1px solid rgba(15,23,42,.06);border-bottom:1px solid rgba(15,23,42,.06)}
.agenda-day-card:nth-child(7n){border-right:none}
.agenda-day-card.is-outside-month{background:#f3f4f2}
.agenda-day-card.is-today{background:linear-gradient(180deg,#fffdf6,#fff8e8)}
.agenda-day-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.agenda-day-number{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 10px;border-radius:999px;background:#eef4f1;color:#1f4d3d;font-weight:800}
.agenda-day-card.is-outside-month .agenda-day-number{background:#e5e7eb;color:#64748b}
.agenda-day-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#fff3d6;color:#8a5a00;font-size:.75rem;font-weight:800}
.agenda-day-events{display:flex;flex-direction:column;gap:8px;min-height:0}
.agenda-event-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:14px;background:#f8fafc;border:1px solid rgba(15,23,42,.08);box-shadow:0 8px 18px rgba(15,23,42,.04);transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease}
.agenda-event-item:hover,.agenda-event-item:focus-visible{transform:translateY(-1px);box-shadow:0 12px 22px rgba(15,23,42,.08)}
.agenda-event-item.is-participating{border-color:rgba(20,83,45,.16);background:#ecfdf3}
.agenda-event-item--competition{border-left:4px solid #d4a72c}
.agenda-event-item--training{border-left:4px solid #2563eb}
.agenda-event-item--meeting{border-left:4px solid #64748b}
.agenda-event-item--dinner,.agenda-event-item--social{border-left:4px solid #15803d}
.agenda-event-time{flex:0 0 auto;font-size:.72rem;font-weight:800;color:#8a5a00;text-transform:uppercase}
.agenda-event-title{min-width:0;flex:1;font-size:.88rem;font-weight:700;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agenda-event-flag{flex:0 0 auto;font-size:.82rem;color:#4338ca}
.agenda-nav-label-mobile,.agenda-day-count,.agenda-mobile-day-list{display:none}
@media (max-width: 900px){
    .agenda-page-header{flex-direction:column;align-items:flex-start}
    .agenda-nav{width:100%;justify-content:flex-start;overflow-x:auto;padding-bottom:2px}
    .agenda-summary-card{flex-direction:column;align-items:flex-start}
}

@media (max-width: 700px){
    .agenda-page{gap:16px}
    .agenda-page-header{gap:12px}
    .agenda-page-header h1{font-size:2.15rem;line-height:1.05}
    .agenda-page-header .muted{font-size:1rem;line-height:1.5}
    .agenda-nav{display:grid;grid-template-columns:1fr .78fr .72fr 1fr;width:100%;gap:7px;flex-wrap:nowrap}
    .agenda-nav .btn{min-width:0;min-height:40px;padding:.55rem .38rem;border-radius:14px;font-size:.8rem;line-height:1;white-space:nowrap}
    .agenda-nav-label-desktop{display:none}
    .agenda-nav-label-mobile{display:inline}
    .agenda-summary-card{padding:18px;border-radius:22px;gap:14px}
    .agenda-summary-card h2{font-size:1.65rem}
    .agenda-summary-kicker{font-size:.74rem}
    .agenda-summary-meta{width:100%;padding:10px 12px;border-radius:16px}
    .agenda-summary-meta strong{font-size:1.25rem}
    .agenda-summary-meta span{font-size:.94rem;line-height:1.25}
    .agenda-calendar-shell{overflow-x:visible;padding-bottom:0}
    .agenda-calendar-grid{width:100%;min-width:0;grid-template-columns:repeat(7,minmax(0,1fr));border-radius:20px;background:#e5ebe7;box-shadow:0 14px 34px rgba(15,23,42,.08)}
    .agenda-weekday{padding:10px 2px;font-size:.74rem;letter-spacing:0}
    .agenda-day-card{min-height:68px;padding:6px 3px;gap:4px;align-items:center;justify-content:flex-start}
    .agenda-day-card:nth-child(7n){border-right:1px solid rgba(15,23,42,.06)}
    .agenda-day-card:nth-child(7n+7){border-right:none}
    .agenda-day-head{width:100%;justify-content:center;position:relative;min-height:54px}
    .agenda-day-number{min-width:30px;height:30px;padding:0;font-size:.95rem}
    .agenda-day-card.has-events .agenda-day-number{box-shadow:0 0 0 2px rgba(249,115,22,.12)}
    .agenda-day-pill{display:none}
    .agenda-day-events{display:none}
    .agenda-day-count{position:absolute;right:2px;bottom:2px;display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:linear-gradient(180deg,#fb923c,#ea580c);color:#fff;font-size:.68rem;font-weight:800;line-height:1;box-shadow:0 6px 12px rgba(234,88,12,.24), inset 0 1px 0 rgba(255,255,255,.28)}
    .agenda-day-count:focus-visible{outline:2px solid #1f4d3d;outline-offset:2px}
    .agenda-day-card.is-outside-month .agenda-day-count{opacity:.58}
    .agenda-mobile-day-list{display:grid;gap:12px;margin-top:4px}
    .agenda-mobile-day-list-head{display:grid;gap:4px}
    .agenda-mobile-day-list-head h2{margin:0;font-size:1.3rem}
    .agenda-mobile-day-list-head p{margin:0;font-size:.92rem;line-height:1.4}
    .agenda-mobile-day-card{scroll-margin-top:110px;background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:20px;padding:14px;box-shadow:0 12px 28px rgba(31,77,61,.08)}
    .agenda-mobile-day-title{display:flex;align-items:center;gap:12px;margin-bottom:12px}
    .agenda-mobile-day-number{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:14px;background:#eef4f1;color:#1f4d3d;font-weight:900}
    .agenda-mobile-day-title strong{display:block;font-size:1rem;line-height:1.2}
    .agenda-mobile-day-title span:not(.agenda-mobile-day-number){display:block;color:#6b7280;font-size:.88rem}
    .agenda-mobile-events{display:grid;gap:8px}
    .agenda-mobile-event-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:15px;background:#f8fafc;border:1px solid rgba(15,23,42,.08);box-shadow:0 6px 14px rgba(15,23,42,.04)}
    .agenda-mobile-event-item.is-participating{background:#ecfdf3;border-color:rgba(20,83,45,.16)}
    .agenda-mobile-event-main{min-width:0;display:flex;align-items:center;gap:8px;flex:1}
    .agenda-mobile-event-main .agenda-event-title{font-size:.92rem}
    .agenda-mobile-day-empty{color:#6b7280;font-weight:700}
}

@media (max-width: 520px){
    .profile-privacy-form{max-width:100%}
    .privacy-switch-row{gap:10px;padding:11px 12px}
    .privacy-switch-control{flex-basis:40px;width:40px;height:22px}
    .privacy-switch-control::after{width:16px;height:16px}
    .privacy-switch-input:checked + .privacy-switch-control::after{transform:translateX(18px)}
    .privacy-switch-text{font-size:.94rem}
}


/* Language switcher */
.language-switcher {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .18rem;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
}

.language-switcher-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    min-height: 1.75rem;
    padding: .25rem .45rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    color: inherit;
    opacity: .82;
}

.language-switcher-link:hover,
.language-switcher-link.is-active {
    background: rgba(255, 255, 255, .22);
    opacity: 1;
}

.mobile-header-actions .language-switcher {
    margin-right: .25rem;
}
.event-locations-box{display:grid;gap:12px}
.event-location-list{display:grid;gap:12px;margin-top:4px}
.event-location-card{display:grid;gap:10px;padding:14px 16px;border-radius:16px;background:#fff;border:1px solid #e2e8f0}
.event-location-main{display:grid;gap:5px;min-width:0}
.event-location-main strong{font-size:1rem;color:#0f172a;line-height:1.25}
.event-location-main p{margin:4px 0 0;line-height:1.6;color:#475569}
.event-location-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}
.event-location-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0;flex:1}
.event-location-type{display:inline-flex;width:max-content;align-items:center;padding:4px 10px;border-radius:999px;background:#ecfdf5;border:1px solid #bbf7d0;color:#047857;font-size:.75rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}
.event-location-icon-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex:0 0 auto;flex-wrap:wrap}
.event-location-icon-action{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#185943;text-decoration:none;box-shadow:0 1px 2px rgba(15,23,42,.05);transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease,color .16s ease}
.event-location-icon-action svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.event-location-icon-action-primary{background:#d0aa3f;border-color:#d0aa3f;color:#18251e}
.event-location-icon-action:hover,.event-location-icon-action:focus-visible{transform:translateY(-1px);box-shadow:0 6px 14px rgba(15,23,42,.12);border-color:#185943;background:#ecfdf5;color:#064e3b;outline:none}
.event-location-icon-action-primary:hover,.event-location-icon-action-primary:focus-visible{background:#c69c2e;border-color:#c69c2e;color:#111827}
.event-location-card-compact{padding:12px;gap:9px}
.event-location-card-compact .event-location-main strong{font-size:.95rem}
.event-location-card-compact .event-location-icon-action{width:32px;height:32px}
.event-location-list-compact{gap:10px;margin-top:8px}
.event-day-accommodation-list{margin-top:8px}
.event-accommodation-day-card{border-color:rgba(31,77,61,.13);background:linear-gradient(180deg,#fff,#fbf8ef)}
.event-accommodation-day-card .event-location-type{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.event-accommodation-day-card .event-badge-offer{font-size:.72rem;padding:4px 9px}
.event-accommodation-day-details dd strong{color:#7c2d12}
.event-location-details{border-top:1px solid #e2e8f0;padding-top:9px}
.event-location-details summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-weight:800;color:#047857;font-size:.9rem;list-style:none}
.event-location-details summary::-webkit-details-marker{display:none}
.event-location-details summary::after{content:'⌄';font-size:.95rem;line-height:1;transition:transform .18s ease}
.event-location-details[open] summary::after{transform:rotate(180deg)}
.event-location-details-label-close{display:none}
.event-location-details[open] .event-location-details-label-open{display:none}
.event-location-details[open] .event-location-details-label-close{display:inline}
.event-location-detail-list{display:grid;gap:8px;margin:10px 0 0}
.event-location-detail-list div{display:grid;gap:2px;min-width:0}
.event-location-detail-list dt{font-size:.72rem;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.04em}
.event-location-detail-list dd{margin:0;color:#0f172a;line-height:1.45;overflow-wrap:anywhere}
.event-location-detail-list a{color:#047857;font-weight:700;text-decoration:none}
.event-location-detail-list a:hover{text-decoration:underline}
.event-location-detail-action{display:inline-flex;align-items:center;gap:7px;width:max-content;max-width:100%;padding:7px 12px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#185943;box-shadow:0 1px 2px rgba(15,23,42,.05);line-height:1.1}
.event-location-detail-action svg{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.event-location-detail-action:hover,.event-location-detail-action:focus-visible{background:#ecfdf5;border-color:#185943;text-decoration:none;outline:none}
@media (max-width: 700px){.event-location-card{padding:12px}.event-location-topline{align-items:flex-start;gap:8px}.event-location-heading{gap:6px 8px}.event-location-icon-actions{gap:5px;max-width:92px}.event-location-icon-action{width:30px;height:30px}.event-location-icon-action svg{width:15px;height:15px}.event-location-details summary{width:100%;justify-content:center;padding:8px 10px;border-radius:12px;background:#ecfdf5;border:1px solid #bbf7d0}.event-location-detail-list{font-size:.92rem}.event-section-head-actions{gap:7px}.event-accommodations-section-head{align-items:flex-start}.accommodation-suggest-header-action{padding:.36rem .62rem;font-size:.8rem}.accommodation-member-count{font-size:.76rem}.accommodation-occupancy-preview{font-size:.84rem}}

@media (max-width: 700px){.dashboard-greeting{margin-bottom:12px}.dashboard-greeting h1{font-size:clamp(1.35rem,7vw,1.75rem)}.dashboard-next-event-widget,.dashboard-member-events-widget{padding:13px 14px;gap:8px}.dashboard-next-event-topline{gap:10px}.dashboard-next-event-summary,.dashboard-member-events-status,.dashboard-member-event-main{gap:7px}.dashboard-next-event-summary strong,.dashboard-member-events-status strong,.dashboard-member-event-title{max-width:100%;line-height:1.25}.dashboard-member-event-row{gap:8px;padding:6px 0}.dashboard-member-event-date{font-size:.82rem}.dashboard-member-event-icons{gap:4px}.dashboard-member-event-status-icon{width:26px;height:26px}.dashboard-member-event-status-icon svg{width:13px;height:13px}.dashboard-member-event-status-icon-accommodation svg{width:15px;height:15px}.dashboard-member-event-status-message{right:0;width:min(240px,76vw);font-size:.8rem}.dashboard-agenda-link-icon{width:30px;height:30px}.dashboard-agenda-link-icon svg{width:15px;height:15px}}



/* Dashboard v2.7.11 : en-tête de section pour la liste d'actions rapides événements. */
.dashboard-events-action-heading{margin:18px 0 14px;padding:2px 2px 0;display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.dashboard-events-action-heading h2{margin:0;color:#173d31;font-size:clamp(1.25rem,3.6vw,1.7rem);line-height:1.12;letter-spacing:-.02em}.dashboard-events-action-heading p{margin:5px 0 0;color:#64748b;font-size:.94rem;line-height:1.35}.dashboard-member-events-empty{display:flex;align-items:flex-start;gap:9px;margin:0;color:#64748b;line-height:1.4}.dashboard-member-events-empty-icon{width:28px;height:28px;flex:0 0 auto;background:#f8fafc;border-color:#cbd5e1;color:#64748b}.dashboard-member-events-empty-icon svg{width:14px;height:14px}

/* Page événements v2.7.11 : groupes actifs/expirés premium, sans changer les cartes. */
.events-index-section{margin:0 0 28px}.events-index-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:0 0 14px;padding:16px 18px;border-radius:22px;background:rgba(255,255,255,.72);border:1px solid rgba(203,213,225,.72);box-shadow:0 16px 42px rgba(31,77,61,.08);backdrop-filter:blur(8px)}.events-index-section-heading h2,.events-index-section-title{display:block;margin:0;color:#173d31;font-size:clamp(1.25rem,3.8vw,1.75rem);font-weight:900;line-height:1.1;letter-spacing:-.025em}.events-index-section-heading p,.events-index-section-heading .muted{display:block;margin:5px 0 0;font-size:.92rem;line-height:1.35}.events-index-section-summary{cursor:pointer;list-style:none}.events-index-section-summary::-webkit-details-marker{display:none}.events-index-section-summary-actions{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto}.events-index-section-chevron{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#185943;font-size:1.12rem;line-height:1;transition:transform .18s ease,background .18s ease,border-color .18s ease}.events-index-section-expired[open] .events-index-section-chevron{transform:rotate(180deg);background:#ecfdf5;border-color:#185943}.events-index-group-cards{margin-bottom:8px}.events-index-expired-cards{padding-top:2px}.events-index-expired-cards .event-card-link{opacity:.9}.events-index-empty-card{box-shadow:0 12px 34px rgba(31,77,61,.08)}.events-index-empty-card p{margin:0;color:#64748b}
@media (max-width:700px){.dashboard-events-action-heading{margin:16px 0 12px}.dashboard-events-action-heading h2{font-size:1.18rem}.dashboard-events-action-heading p{font-size:.86rem}.dashboard-member-events-empty{gap:8px;font-size:.9rem}.dashboard-member-events-empty-icon{width:26px;height:26px}.events-index-section{margin-bottom:22px}.events-index-section-heading{align-items:flex-start;padding:13px 14px;border-radius:18px}.events-index-section-heading h2,.events-index-section-title{font-size:1.18rem}.events-index-section-heading p,.events-index-section-heading .muted{font-size:.84rem}.events-index-section-summary-actions{gap:7px}.events-index-section-chevron{width:28px;height:28px}.events-index-expired-cards .event-card-link{opacity:.94}}


/* PWA launch splash */
.pwa-splash-locked{overflow:hidden}
.pwa-splash-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:stretch;justify-content:center;background:radial-gradient(circle at 50% 34%,rgba(255,255,255,.98) 0%,rgba(245,241,232,.98) 42%,rgba(232,242,236,.98) 100%);color:#13251f;transition:opacity .42s ease,visibility .42s ease;overflow:hidden}
.pwa-splash-overlay[hidden]{display:none!important}
.pwa-splash-overlay::before{content:'';position:absolute;inset:-30%;background:linear-gradient(115deg,transparent 36%,rgba(255,255,255,.55) 48%,transparent 60%);transform:translateX(-44%) rotate(10deg);animation:pwaSplashShine 1.65s ease .28s both;pointer-events:none}
.pwa-splash-inner{position:relative;width:min(100%,760px);min-height:100dvh;display:grid;grid-template-rows:1fr auto;align-items:center;justify-items:center;padding:52px clamp(18px,5vw,34px) 30px;text-align:center}
.pwa-splash-brand{display:grid;justify-items:center;gap:18px;transform:translateY(12px);animation:pwaSplashBrandIn .72s cubic-bezier(.2,.8,.2,1) both}
.pwa-splash-logo-shell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:clamp(176px,42vw,204px);height:clamp(176px,42vw,204px);border-radius:46px;background:linear-gradient(180deg,#fffdf7 0%,#eef7f1 100%);border:1px solid rgba(31,77,61,.14);box-shadow:0 30px 76px rgba(19,37,31,.2),inset 0 1px 0 rgba(255,255,255,.95);overflow:hidden;animation:pwaSplashPulse 2.2s ease-in-out infinite}
.pwa-splash-logo-shell::after{content:'';position:absolute;inset:13px;border-radius:34px;border:1px solid rgba(31,77,61,.08);pointer-events:none}
.pwa-splash-logo-image{position:relative;width:76%;height:76%;object-fit:contain;filter:drop-shadow(0 12px 22px rgba(31,77,61,.2));animation:pwaSplashLogoIn .82s cubic-bezier(.2,.8,.2,1) both}
.pwa-splash-title{margin:0;color:#1f4d3d;font-size:1.08rem;line-height:1.2;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.pwa-splash-sponsors{display:grid;gap:12px;justify-items:center;width:min(100%,700px);opacity:.9;animation:pwaSplashSponsorsIn .72s ease .42s both}
.pwa-splash-sponsors>span{color:#64736d;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.pwa-splash-sponsor-list{display:grid;grid-template-columns:repeat(var(--pwa-sponsor-columns,3),minmax(0,1fr));align-items:stretch;justify-content:center;gap:10px;width:100%;padding:12px;border-radius:24px;background:rgba(255,255,255,.68);border:1px solid rgba(31,77,61,.09);box-shadow:0 14px 34px rgba(19,37,31,.08);backdrop-filter:blur(10px)}
.pwa-splash-sponsor-item{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:clamp(56px,10.5vw,78px);padding:10px 12px;border-radius:16px;overflow:hidden;background:rgba(255,255,255,.76);border:1px solid rgba(31,77,61,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.86);opacity:0;transform:translateY(8px) scale(.96);animation:pwaSplashSponsorItemIn .56s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(.58s + (var(--pwa-sponsor-index,0) * 90ms))}.pwa-splash-sponsor-item::after{content:'';position:absolute;inset:-55%;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.72) 50%,transparent 62%);opacity:0;transform:translateX(-92%) rotate(12deg);animation:pwaSplashSponsorGlint 1.05s ease forwards;animation-delay:calc(1.02s + (var(--pwa-sponsor-index,0) * 110ms));pointer-events:none}.pwa-splash-sponsor-link{transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease}.pwa-splash-sponsor-link:hover,.pwa-splash-sponsor-link:focus-visible{opacity:1;transform:translateY(-1px) scale(1.02);outline:2px solid rgba(31,77,61,.24);outline-offset:4px;box-shadow:0 10px 24px rgba(19,37,31,.12),inset 0 1px 0 rgba(255,255,255,.9)}.pwa-splash-sponsor-logo{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;filter:saturate(.96) contrast(.98) drop-shadow(0 4px 10px rgba(19,37,31,.08));opacity:.95}
.pwa-splash-exit{opacity:0;visibility:hidden}
@keyframes pwaSplashBrandIn{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(12px) scale(1)}}
@keyframes pwaSplashLogoIn{from{opacity:0;transform:scale(.84)}to{opacity:1;transform:scale(1)}}
@keyframes pwaSplashPulse{0%,100%{transform:scale(1);box-shadow:0 30px 76px rgba(19,37,31,.2),inset 0 1px 0 rgba(255,255,255,.95)}50%{transform:scale(1.018);box-shadow:0 34px 84px rgba(19,37,31,.24),inset 0 1px 0 rgba(255,255,255,.95)}}
@keyframes pwaSplashShine{from{transform:translateX(-54%) rotate(10deg);opacity:0}35%{opacity:.9}to{transform:translateX(54%) rotate(10deg);opacity:0}}
@keyframes pwaSplashSponsorsIn{from{opacity:0;transform:translateY(14px)}to{opacity:.9;transform:translateY(0)}}
@keyframes pwaSplashSponsorItemIn{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes pwaSplashSponsorGlint{0%{opacity:0;transform:translateX(-92%) rotate(12deg)}30%{opacity:.72}100%{opacity:0;transform:translateX(92%) rotate(12deg)}}
@media (max-width: 480px){.pwa-splash-inner{padding:44px 16px 24px}.pwa-splash-logo-shell{width:clamp(168px,58vw,192px);height:clamp(168px,58vw,192px);border-radius:42px}.pwa-splash-logo-shell::after{inset:12px;border-radius:31px}.pwa-splash-logo-image{width:76%;height:76%}.pwa-splash-title{font-size:1rem}.pwa-splash-sponsors{width:100%;gap:9px}.pwa-splash-sponsor-list{gap:8px;padding:9px;border-radius:20px}.pwa-splash-sponsor-item{height:clamp(52px,15vw,62px);padding:8px 9px;border-radius:13px}}
@media (max-height: 640px){.pwa-splash-inner{padding-top:32px}.pwa-splash-brand{gap:12px}.pwa-splash-logo-shell{width:158px;height:158px;border-radius:38px}.pwa-splash-logo-shell::after{inset:11px;border-radius:28px}}
@media (prefers-reduced-motion: reduce){.pwa-splash-overlay,.pwa-splash-overlay::before,.pwa-splash-brand,.pwa-splash-logo-shell,.pwa-splash-logo-image,.pwa-splash-sponsors,.pwa-splash-sponsor-item,.pwa-splash-sponsor-item::after{animation:none!important;transition:opacity .12s ease,visibility .12s ease!important}.pwa-splash-brand{transform:translateY(12px)}.pwa-splash-sponsor-item{opacity:1;transform:none}}

/* PWA install prompt */
.pwa-install-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;border:1px solid rgba(31,77,61,.14);background:linear-gradient(135deg,#fffdf7 0%,#eef7f1 100%);box-shadow:0 14px 32px rgba(31,77,61,.08)}
.pwa-install-card[hidden]{display:none!important}
.pwa-install-visual{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:16px;background:#1f4d3d;color:#fff;box-shadow:0 10px 22px rgba(31,77,61,.22)}
.pwa-install-visual svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pwa-install-content{min-width:0;display:grid;gap:3px}
.pwa-install-content h2{margin:0;font-size:1.02rem;line-height:1.2;color:#13251f}
.pwa-install-content p{margin:0;color:#51615a;font-size:.92rem;line-height:1.42;max-width:46rem}
.pwa-install-hint{font-weight:700;color:#1f4d3d!important}
.pwa-ios-share-icon{display:inline-flex;align-items:center;justify-content:center;width:1.55em;height:1.55em;margin:0 .18em;vertical-align:-.34em;border-radius:.42em;border:1.5px solid currentColor;color:#1f4d3d;background:rgba(255,255,255,.58)}
.pwa-ios-share-icon svg{width:1.02em;height:1.02em;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.pwa-install-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
@media (max-width: 700px){.pwa-install-card{grid-template-columns:40px minmax(0,1fr);align-items:start;padding:14px;border-radius:20px;gap:10px 12px}.pwa-install-visual{width:40px;height:40px;border-radius:14px}.pwa-install-visual svg{width:23px;height:23px}.pwa-install-content{align-self:center;gap:4px}.pwa-install-content h2{font-size:1rem;line-height:1.15}.pwa-install-content p{font-size:.9rem;line-height:1.35;max-width:none}.pwa-install-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr;gap:7px;justify-content:stretch;margin-top:2px}.pwa-install-actions .btn{width:100%;min-height:40px;justify-content:center;padding:.58rem .85rem;font-size:.9rem}.pwa-install-actions .btn-outline{min-height:32px;padding:.28rem .5rem;border-color:transparent;background:transparent;box-shadow:none;color:#1f4d3d;text-decoration:underline;text-underline-offset:3px}.pwa-install-actions .btn-outline:hover,.pwa-install-actions .btn-outline:focus-visible{background:rgba(31,77,61,.08);border-color:rgba(31,77,61,.08);text-decoration:none}}
@media (max-width: 380px){.pwa-install-card{padding:12px}.pwa-install-content h2{font-size:.96rem}.pwa-install-content p{font-size:.86rem}.pwa-install-actions .btn{min-height:38px;font-size:.86rem}}

/* PWA update prompt */
.pwa-update-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:80;display:flex;justify-content:center;pointer-events:none}

/* v2.6.113 : les enfants masqués de la carte PWA doivent rester invisibles même si une classe bouton force display:inline-flex. */
.pwa-install-card [hidden]{display:none!important}
.pwa-update-banner[hidden]{display:none!important}
.pwa-update-banner-inner{width:min(100%,720px);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border-radius:22px;border:1px solid rgba(31,77,61,.18);background:rgba(255,253,247,.96);box-shadow:0 18px 44px rgba(19,37,31,.18);backdrop-filter:blur(12px);pointer-events:auto}
.pwa-update-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:15px;background:#1f4d3d;color:#fff;box-shadow:0 10px 22px rgba(31,77,61,.2)}
.pwa-update-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pwa-update-content{min-width:0;display:grid;gap:2px;color:#13251f}
.pwa-update-content strong{font-size:.98rem;line-height:1.2}
.pwa-update-content span{font-size:.88rem;line-height:1.35;color:#51615a}
.pwa-update-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.pwa-update-later{border:0;background:transparent;color:#1f4d3d;font-weight:800;cursor:pointer;padding:.45rem .55rem;border-radius:999px;text-decoration:underline;text-underline-offset:3px}
.pwa-update-later:hover,.pwa-update-later:focus-visible{background:rgba(31,77,61,.08);text-decoration:none;outline:none}
@media (max-width: 640px){.pwa-update-banner{left:10px;right:10px;bottom:10px}.pwa-update-banner-inner{grid-template-columns:38px minmax(0,1fr);align-items:start;border-radius:20px;padding:12px;gap:10px}.pwa-update-icon{width:38px;height:38px;border-radius:14px}.pwa-update-content{align-self:center}.pwa-update-content strong{font-size:.95rem}.pwa-update-content span{font-size:.84rem}.pwa-update-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr;gap:6px}.pwa-update-actions .btn{width:100%;justify-content:center;min-height:38px}.pwa-update-later{justify-self:center;font-size:.86rem;padding:.25rem .5rem}}
/* v2.6.115 : le formulaire membre de suggestion d’hébergement reste replié par défaut pour alléger la fiche événement. */
.accommodation-suggestion-box{display:flex;flex-direction:column;gap:14px}
.accommodation-suggestion-disclosure{display:flex;flex-direction:column;gap:14px}
.accommodation-suggestion-toggle{list-style:none;align-self:flex-start;cursor:pointer;user-select:none}
.accommodation-suggestion-toggle::-webkit-details-marker{display:none}
.accommodation-suggestion-toggle::after{content:'+';display:inline-flex;align-items:center;justify-content:center;margin-left:8px;width:18px;height:18px;border-radius:999px;background:rgba(255,255,255,.22);font-weight:900;line-height:1}
.accommodation-suggestion-disclosure[open] .accommodation-suggestion-toggle::after{content:'−'}
.accommodation-suggestion-panel{display:flex;flex-direction:column;gap:14px;padding-top:2px}
.accommodation-suggestion-form{display:flex;flex-direction:column;gap:16px}
.form-grid{display:grid;gap:14px}
.form-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.form-grid label{display:flex;flex-direction:column;gap:7px;font-weight:700;color:#1f2937}
.form-grid label span{font-size:.9rem}
.form-field-full{grid-column:1/-1}
@media(max-width:720px){.form-grid-two{grid-template-columns:1fr}}
@media(max-width:720px){.accommodation-suggestion-toggle{align-self:stretch;justify-content:center}}

/* v2.6.119 : actions compactes pour choisir son hébergement depuis les cartes d'hébergements du jour. */
.event-day-accommodation-choice-form{display:flex;margin-top:10px}
.event-day-accommodation-choice-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start;margin-top:10px}
.event-day-accommodation-choice-button{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:9px 12px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#185943;font-weight:800;font-size:.9rem;line-height:1.1;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.05);transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease,color .16s ease;text-decoration:none}
.event-day-accommodation-choice-button:hover,.event-day-accommodation-choice-button:focus-visible{transform:translateY(-1px);box-shadow:0 6px 14px rgba(15,23,42,.12);border-color:#185943;background:#ecfdf5;color:#064e3b;outline:none}
.event-day-accommodation-choice-button.is-selected,.event-day-accommodation-choice-button:disabled{cursor:default;border-color:#1f4d3d;background:linear-gradient(180deg,#1f4d3d,#173d31);color:#fff;box-shadow:0 8px 18px rgba(31,77,61,.16)}
.event-day-accommodation-choice-button.is-selected:hover,.event-day-accommodation-choice-button:disabled:hover{transform:none}
.event-day-accommodation-choice-button-cancel{width:auto;min-width:92px;border-color:#fecaca;color:#991b1b;background:#fff7f7;list-style:none}
.event-day-accommodation-choice-button-cancel::-webkit-details-marker{display:none}
.event-day-accommodation-choice-button-cancel:hover,.event-day-accommodation-choice-button-cancel:focus-visible{border-color:#ef4444;background:#fef2f2;color:#7f1d1d}
.event-day-accommodation-cancel-confirm{position:relative}
.event-day-accommodation-cancel-confirm[open] .event-day-accommodation-choice-button-cancel{border-color:#ef4444;background:#fef2f2;color:#7f1d1d;box-shadow:0 6px 14px rgba(127,29,29,.12)}
.event-day-accommodation-cancel-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:25;width:min(340px,78vw);padding:14px;border-radius:18px;background:#fff;border:1px solid #fecaca;box-shadow:0 18px 40px rgba(15,23,42,.16);color:#334155}
.event-day-accommodation-cancel-panel strong{display:block;margin-bottom:6px;color:#7f1d1d}
.event-day-accommodation-cancel-panel p{margin:0 0 12px;line-height:1.45;font-size:.9rem}
.event-day-accommodation-cancel-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.event-location-occupancy-list{margin:6px 0 0 1rem;padding:0;display:grid;gap:3px}
.accommodation-choice-box-multiday{margin-bottom:16px}

@media(max-width:720px){.event-day-accommodation-choice-actions{grid-template-columns:1fr}.event-day-accommodation-choice-button-cancel{width:100%}.event-day-accommodation-cancel-panel{position:static;width:100%;margin-top:8px}}


/* v2.8.0 : carte profil pour activer le socle notifications push PWA. */
.pwa-push-card{display:grid;gap:14px;background:linear-gradient(135deg,#fffdf7 0%,#eef7f1 100%);border:1px solid rgba(31,77,61,.14)}
.pwa-push-card-header{display:flex;align-items:flex-start;gap:12px}.pwa-push-card-header h2{margin:0}.pwa-push-card-header p{margin:4px 0 0;line-height:1.45}.pwa-push-card-icon{width:36px;height:36px;flex:0 0 auto;background:#fff;color:#1f4d3d;box-shadow:0 8px 18px rgba(31,77,61,.1)}.pwa-push-card-icon svg{width:18px;height:18px}.pwa-push-status-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pwa-push-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pwa-push-help{margin:0;font-size:.9rem;line-height:1.45}.pwa-push-actions [hidden]{display:none!important}
.pwa-push-reminder-card{display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(135deg,#fffdf7 0%,#eef7f1 100%);border:1px solid rgba(31,77,61,.14)}.pwa-push-reminder-card[hidden]{display:none!important}.pwa-push-reminder-content{display:flex;align-items:flex-start;gap:12px;min-width:0}.pwa-push-reminder-icon{width:36px;height:36px;flex:0 0 auto;background:#fff;color:#1f4d3d;box-shadow:0 8px 18px rgba(31,77,61,.1);transform-origin:50% 18%;animation:golftrotters-push-bell 4.8s ease-in-out infinite}.pwa-push-reminder-icon svg{width:18px;height:18px}.pwa-push-reminder-text{min-width:0}.pwa-push-reminder-text h2{margin:0;font-size:1rem}.pwa-push-reminder-text p{margin:4px 0 0;line-height:1.45}.pwa-push-reminder-status{font-size:.88rem}.pwa-push-reminder-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}@keyframes golftrotters-push-bell{0%,84%,100%{transform:rotate(0)}88%{transform:rotate(-7deg)}91%{transform:rotate(7deg)}94%{transform:rotate(-4deg)}97%{transform:rotate(3deg)}}@media (prefers-reduced-motion: reduce){.pwa-push-reminder-icon{animation:none}}
@media(max-width:700px){.pwa-push-card{gap:12px}.pwa-push-card-header{gap:10px}.pwa-push-card-icon{width:34px;height:34px}.pwa-push-actions{display:grid;grid-template-columns:1fr;align-items:stretch}.pwa-push-actions .btn{width:100%;justify-content:center}.pwa-push-reminder-card{display:grid;gap:12px}.pwa-push-reminder-content{gap:10px}.pwa-push-reminder-icon{width:34px;height:34px}.pwa-push-reminder-actions{display:grid;grid-template-columns:1fr}.pwa-push-reminder-actions .btn{width:100%;justify-content:center}}

/* v2.8.12 : aperçu multi-jours des hébergements dans la carte principale. */
.accommodation-list-multiday-overview{gap:18px;margin-top:12px}
.event-day-accommodation-overview-group{display:flex;flex-direction:column;gap:10px}
.event-day-accommodation-overview-heading{display:flex;align-items:center;gap:8px;font-size:.86rem;font-weight:800;color:#134e4a;text-transform:uppercase;letter-spacing:.04em}
.event-day-accommodation-overview-heading span{color:#64748b}
.event-day-accommodation-overview-list{gap:10px}
.accommodation-overview-card .accommodation-details{border-top:1px solid rgba(15,23,42,.08);padding:16px 20px;background:rgba(248,250,252,.72)}
@media(max-width:720px){.event-day-accommodation-overview-heading{justify-content:center}.accommodation-overview-card .accommodation-details{padding:14px}}

/* v2.8.22 : carte Inscription externe détaillée lisible, avec confirmation en bas et date limite compacte. */
.event-summary-item-inline{display:flex;align-items:center;justify-content:space-between;gap:12px}
.event-summary-item-inline .event-summary-label{margin-bottom:0;white-space:nowrap}
.event-summary-item-inline strong{text-align:right;white-space:nowrap}
.external-registration-confirm-form{display:flex;justify-content:flex-end;margin:18px 0 0;padding-top:16px;border-top:1px solid rgba(148,163,184,.22)}
.external-registration-confirm-button{min-height:42px}
@media (max-width: 640px){
    .external-registration-confirm-form{justify-content:stretch}
    .external-registration-confirm-button{width:100%;justify-content:center}
}
.event-external-registration-grid{grid-template-columns:1fr}

/* v2.8.23 : compteur hébergement et lien Voir participants dans la fiche événement. */
