/**
 * SCAP Cadaujac — Agenda (design natif du thème)
 *
 * Palette du site : --rouge #E00838 / --noir #16161A / --creme #F8F4EC,
 * typographies Outfit (titres) + Inter (texte), rayons 18px.
 * Vues : Semaine, Mois, Liste. Responsive mobile-first.
 */

/* =====================================================================
   ÉTATS GLOBAUX
   ===================================================================== */
.scap-agenda-wrapper { position:relative; transition:opacity .2s ease; }
.scap-agenda-wrapper.is-loading { opacity:.45; pointer-events:none; }
.scap-agenda-wrapper *:focus-visible {
	outline:3px solid rgba(224,8,56,.55);
	outline-offset:2px;
	border-radius:6px;
}

.agenda-error {
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	gap:14px;
	background:var(--blanc);
	border:1px solid rgba(224,8,56,.25);
	border-left:4px solid var(--rouge);
	border-radius:16px;
	padding:24px 26px;
}
.agenda-error strong {
	font-family:var(--outfit);
	font-weight:700;
	font-size:15.5px;
	color:var(--noir);
	line-height:1.4;
}

.agenda-empty {
	text-align:center;
	background:var(--blanc);
	border:1px dashed rgba(20,20,25,.16);
	border-radius:18px;
	padding:42px 26px;
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:10px;
}
.agenda-empty strong {
	font-family:var(--outfit);
	font-weight:800;
	font-size:clamp(17px,2.2vw,21px);
	color:var(--noir);
	text-transform:uppercase;
	letter-spacing:.02em;
}
.agenda-empty p { font-size:14.5px; color:#6A6A70; margin:0; max-width:460px; }

.col-empty-msg {
	flex:1;
	display:grid;
	place-items:center;
	min-height:70px;
	border:1px dashed rgba(20,20,25,.1);
	border-radius:13px;
	background:repeating-linear-gradient(135deg, rgba(20,20,25,.03) 0 8px, transparent 8px 16px);
}
.col-empty-msg span {
	font-family:var(--outfit);
	font-weight:600;
	font-size:11.5px;
	letter-spacing:.12em;
	text-transform:uppercase;
	color:#A8A7AF;
}

/* =====================================================================
   BARRE D'OUTILS : navigation, titre, vues, outils
   ===================================================================== */
.agenda-toolbar {
	display:flex;
	align-items:center;
	gap:16px;
	flex-wrap:wrap;
	margin-bottom:22px;
}

.agenda-nav-group { display:flex; align-items:center; gap:8px; }

.agenda-nav-btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	min-width:44px;
	height:44px;
	padding:0 15px;
	border-radius:13px;
	background:var(--blanc);
	border:1px solid rgba(20,20,25,.13);
	color:var(--noir);
	font-family:var(--outfit);
	font-weight:700;
	font-size:13.5px;
	cursor:pointer;
	text-decoration:none;
	transition:background var(--transition), color var(--transition),
		border-color var(--transition), transform var(--transition);
}
.agenda-nav-btn svg { width:17px; height:17px; flex:none; }
.agenda-nav-btn:hover {
	background:var(--noir);
	border-color:var(--noir);
	color:var(--creme);
	transform:translateY(-2px);
}
.agenda-nav-btn:active { transform:translateY(0); }
.agenda-today-btn { padding:0 18px; }

.agenda-period-title {
	font-family:var(--outfit);
	font-weight:800;
	font-size:clamp(16px,2vw,19px);
	text-transform:uppercase;
	letter-spacing:.03em;
	color:var(--noir);
	margin:0;
	flex:1 1 210px;
	min-width:0;
	line-height:1.25;
}
.agenda-period-title:focus { outline:none; }

/* Sélecteur de vue (Semaine / Mois / Liste) */
.agenda-view-selector {
	display:inline-flex;
	gap:4px;
	padding:4px;
	background:rgba(20,20,25,.06);
	border-radius:14px;
}
.view-btn {
	appearance:none;
	border:0;
	background:transparent;
	padding:9px 16px;
	border-radius:11px;
	font-family:var(--outfit);
	font-weight:700;
	font-size:13px;
	color:#5A5A61;
	cursor:pointer;
	transition:background var(--transition), color var(--transition), box-shadow var(--transition);
}
.view-btn:hover { color:var(--noir); }
.view-btn.is-active {
	background:var(--rouge);
	color:#fff;
	box-shadow:0 8px 18px -8px rgba(224,8,56,.65);
}

/* Outils annexes : date picker + lien Google Calendar */
.agenda-extra-tools {
	display:flex;
	align-items:center;
	gap:12px;
	flex-wrap:wrap;
	margin-left:auto;
}
.agenda-date-picker { display:inline-flex; align-items:center; gap:8px; }
.agenda-date-picker input {
	font-family:var(--outfit);
	font-size:13px;
	font-weight:600;
	color:var(--noir);
	padding:10px 12px;
	border-radius:11px;
	border:1px solid rgba(20,20,25,.14);
	background:var(--blanc);
	cursor:pointer;
}
.agenda-external-link {
	display:inline-flex;
	align-items:center;
	gap:8px;
	height:44px;
	padding:0 16px;
	border-radius:13px;
	background:transparent;
	border:1px dashed rgba(20,20,25,.22);
	color:var(--noir);
	font-family:var(--outfit);
	font-weight:700;
	font-size:13px;
	text-decoration:none;
	transition:background var(--transition), color var(--transition), border-color var(--transition);
}
.agenda-external-link svg { width:16px; height:16px; }
.agenda-external-link:hover {
	background:var(--rouge);
	border-color:var(--rouge);
	color:#fff;
	transform:translateY(-2px);
}

/* Légende des types (charte SCAP) */
.agenda-legend {
	display:flex;
	flex-wrap:wrap;
	gap:8px 18px;
	margin:0 0 18px;
	padding:0;
	list-style:none;
}
.agenda-legend li {
	display:inline-flex;
	align-items:center;
	gap:8px;
	font-family:var(--outfit);
	font-weight:700;
	font-size:12.5px;
	color:#4A4A50;
}
.agenda-legend .legend-dot {
	width:12px;
	height:12px;
	border-radius:50%;
	flex:none;
	box-shadow:0 2px 6px -2px rgba(20,20,25,.4);
}
.agenda-legend .legend-dot.type-fractionne { background:#E00838; }
.agenda-legend .legend-dot.type-cote { background:#6C4AB6; }
.agenda-legend .legend-dot.type-longue { background:#D6336C; }
.agenda-legend .legend-dot.type-renforcement { background:#B45309; }
.agenda-legend .legend-dot.type-course { background:#7D201B; }
.agenda-legend .legend-dot.type-entrainement { background:#16161A; }

/* =====================================================================
   VUE SEMAINE (7 colonnes, cartes pleines)
   ===================================================================== */
.agenda-view-week { overflow-x:auto; padding-bottom:6px; }

.week-grid {
	display:grid;
	grid-template-columns:repeat(7, minmax(148px, 1fr));
	gap:10px;
	min-width:100%;
}

.week-col {
	display:flex;
	flex-direction:column;
	background:var(--blanc);
	border:1px solid rgba(20,20,25,.07);
	border-radius:16px;
	overflow:hidden;
	min-width:0;
}
.week-col.is-today { border-color:rgba(224,8,56,.55); box-shadow:0 0 0 1px rgba(224,8,56,.28); }
.week-col.is-empty { background:rgba(255,253,248,.6); }

.week-col-head {
	display:flex;
	align-items:center;
	gap:8px;
	padding:12px 13px;
	border-bottom:1px solid rgba(20,20,25,.07);
	background:rgba(20,20,25,.03);
	position:relative;
	flex-wrap:wrap;
}
.week-col-head .day-name {
	font-family:var(--outfit);
	font-weight:700;
	font-size:11.5px;
	letter-spacing:.1em;
	text-transform:uppercase;
	color:#6A6A70;
}
.week-col-head .day-num {
	font-family:var(--outfit);
	font-weight:800;
	font-size:17px;
	color:var(--noir);
	line-height:1;
}
.week-col.is-today .day-num { color:var(--rouge); }

.today-badge {
	font-family:var(--outfit);
	font-weight:800;
	font-size:9.5px;
	letter-spacing:.1em;
	text-transform:uppercase;
	color:#fff;
	background:var(--rouge);
	border-radius:999px;
	padding:3px 9px;
	line-height:1.4;
}

.week-col-body {
	display:flex;
	flex-direction:column;
	gap:9px;
	padding:11px;
	flex:1;
}

/* Carte d'entraînement (semaine) */
.agenda-card {
	--tc:var(--rouge);
	appearance:none;
	border:0;
	text-align:left;
	cursor:pointer;
	display:flex;
	flex-direction:column;
	gap:5px;
	padding:13px 14px;
	border-radius:14px;
	background:var(--tc);
	color:#fff;
	box-shadow:0 14px 26px -14px rgba(20,20,25,.55);
	transition:transform var(--transition), box-shadow var(--transition);
	font:inherit;
	min-width:0;
}
.agenda-card:hover { transform:translateY(-3px); box-shadow:0 20px 32px -16px rgba(20,20,25,.6); }
.agenda-card .card-top { display:flex; align-items:center; gap:8px; }
.agenda-card .card-icon { display:inline-flex; flex:none; }
.agenda-card .card-icon svg { width:16px; height:16px; opacity:.92; }
.agenda-card .card-time {
	font-family:var(--outfit);
	font-weight:700;
	font-size:11.5px;
	letter-spacing:.04em;
	opacity:.94;
}
.agenda-card .card-title {
	font-family:var(--outfit);
	font-weight:800;
	font-size:13px;
	text-transform:uppercase;
	letter-spacing:.02em;
	line-height:1.25;
	overflow-wrap:break-word;
}
.agenda-card .card-loc { font-size:11.5px; line-height:1.35; opacity:.9; }
.agenda-card .card-action {
	font-family:var(--outfit);
	font-weight:700;
	font-size:10px;
	letter-spacing:.12em;
	text-transform:uppercase;
	opacity:0;
	max-height:0;
	overflow:hidden;
	transition:opacity var(--transition), max-height var(--transition);
}
.agenda-card:hover .card-action,
.agenda-card:focus-visible .card-action { opacity:.9; max-height:20px; }

/* Couleurs par type (source : PHP classify) */
.scap-agenda-wrapper .type-fractionne { --tc:#E00838; }
.scap-agenda-wrapper .type-cote { --tc:#6C4AB6; }
.scap-agenda-wrapper .type-longue { --tc:#e94273; }
.scap-agenda-wrapper .type-renforcement { --tc:#B45309; }
.scap-agenda-wrapper .type-course { --tc:#7D201B; }
.scap-agenda-wrapper .type-entrainement { --tc:#16161A; }

/* =====================================================================
   VUE MOIS (grille 7 colonnes + pastilles) — charte SCAP
   ===================================================================== */
.agenda-view-month { min-width:0; }

.month-headers {
	display:grid;
	grid-template-columns:repeat(7, 1fr);
	gap:6px;
	margin-bottom:8px;
}
.month-head-col {
	text-align:center;
	font-family:var(--outfit);
	font-weight:700;
	font-size:11.5px;
	letter-spacing:.09em;
	text-transform:uppercase;
	color:#6A6A70;
	padding:6px 2px;
}

.month-grid {
	display:grid;
	grid-template-columns:repeat(7, 1fr);
	gap:6px;
	background:var(--blanc);
	border:1px solid rgba(20,20,25,.07);
	border-radius:18px;
	padding:10px;
	box-shadow:0 14px 34px -26px rgba(20,20,25,.45);
}

.month-cell {
	display:flex;
	flex-direction:column;
	gap:5px;
	min-height:104px;
	padding:8px 7px;
	border-radius:12px;
	background:rgba(20,20,25,.022);
	border:1px solid transparent;
	min-width:0;
	transition:background var(--transition);
}
.month-cell.in-month.has-events { background:rgba(20,20,25,.045); }
.month-cell.out-month { opacity:.4; }
.month-cell.is-today {
	background:rgba(224,8,56,.06);
	border-color:rgba(224,8,56,.45);
	box-shadow:inset 0 0 0 1px rgba(224,8,56,.12);
}

.cell-head {
	display:flex;
	align-items:center;
	gap:6px;
	padding:0 2px;
	min-height:18px;
}
.cell-day-num {
	font-family:var(--outfit);
	font-weight:800;
	font-size:13.5px;
	color:var(--noir);
	line-height:1;
}
.month-cell.out-month .cell-day-num { color:#9C9BA3; }
.month-cell.is-today .cell-day-num { color:var(--rouge); }
.cell-today-dot {
	width:7px;
	height:7px;
	border-radius:50%;
	background:var(--rouge);
	margin-left:auto;
	flex:none;
	box-shadow:0 0 0 3px rgba(224,8,56,.16);
}

.cell-events { display:flex; flex-direction:column; gap:4px; min-width:0; }

/* Pastille d'événement dans la grille mensuelle */
.month-chip {
	--tc:var(--rouge);
	appearance:none;
	border:0;
	text-align:left;
	cursor:pointer;
	display:flex;
	align-items:center;
	gap:5px;
	padding:5px 7px;
	border-radius:8px;
	background:rgba(20,20,25,.05);
	border-left:3px solid var(--tc);
	color:var(--noir);
	font:inherit;
	min-width:0;
	width:100%;
	transition:background var(--transition), transform var(--transition), box-shadow var(--transition);
}
.month-chip:hover {
	background:rgba(20,20,25,.1);
	transform:translateX(2px);
	box-shadow:0 6px 14px -8px rgba(20,20,25,.5);
}
.month-chip:focus-visible { outline:3px solid rgba(224,8,56,.55); outline-offset:1px; }
.month-chip .chip-dot {
	width:8px;
	height:8px;
	border-radius:50%;
	background:var(--tc);
	flex:none;
}
.month-chip .chip-time {
	font-family:var(--outfit);
	font-weight:700;
	font-size:10.5px;
	color:#6A6A70;
	flex:none;
	letter-spacing:.02em;
}
.month-chip .chip-title {
	font-family:var(--outfit);
	font-weight:700;
	font-size:11.5px;
	line-height:1.25;
	color:var(--noir);
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
	min-width:0;
}
.month-cell.is-today .month-chip { background:rgba(224,8,56,.07); }

/* Indicateur « +N » quand une journée dépasse 3 événements */
.month-chip-more {
	font-family:var(--outfit);
	font-weight:700;
	font-size:10.5px;
	color:#8A878F;
	padding:2px 7px;
	letter-spacing:.04em;
}

/* =====================================================================
   VUE LISTE (mobile-first, 4 semaines)
   ===================================================================== */
.list-groups { display:flex; flex-direction:column; gap:20px; }

.list-day-group {
	background:var(--blanc);
	border:1px solid rgba(20,20,25,.07);
	border-radius:18px;
	padding:16px 18px;
}
.list-day-group.is-today { border-color:rgba(224,8,56,.45); }

.list-day-header {
	display:flex;
	align-items:center;
	gap:12px;
	flex-wrap:wrap;
	margin-bottom:13px;
	padding-bottom:11px;
	border-bottom:1px dashed rgba(20,20,25,.12);
}
.list-day-date {
	font-family:var(--outfit);
	font-weight:800;
	font-size:14.5px;
	text-transform:uppercase;
	letter-spacing:.04em;
	color:var(--noir);
}
.list-day-group.is-today .list-day-date { color:var(--rouge); }

.list-day-cards { display:flex; flex-direction:column; gap:10px; }

.list-card {
	--tc:var(--rouge);
	display:flex;
	align-items:center;
	gap:14px;
	background:rgba(20,20,25,.03);
	border-left:4px solid var(--tc);
	border-radius:12px;
	padding:13px 15px;
	min-width:0;
	flex-wrap:wrap;
}
.list-card-main { flex:1 1 230px; min-width:0; }

.list-card-badge {
	display:inline-flex;
	align-items:center;
	gap:7px;
	margin-bottom:5px;
}
.list-card-badge .type-icon { display:inline-flex; color:var(--tc); }
.list-card-badge .type-icon svg { width:15px; height:15px; }
.list-card-badge .type-label {
	font-family:var(--outfit);
	font-weight:700;
	font-size:11.5px;
	letter-spacing:.11em;
	text-transform:uppercase;
	color:var(--tc);
}

.list-card-title {
	font-family:var(--outfit);
	font-weight:800;
	font-size:15.5px;
	color:var(--noir);
	margin:0 0 5px;
	line-height:1.25;
	overflow-wrap:break-word;
}

.list-card-meta {
	display:flex;
	flex-wrap:wrap;
	gap:6px 16px;
	margin:0;
	font-size:13px;
	color:#5A5A61;
}
.list-card-meta span { display:inline-flex; align-items:center; gap:6px; }
.list-card-meta svg { width:14px; height:14px; color:var(--tc); flex:none; }

.list-card-side { flex:none; margin-left:auto; }

/* =====================================================================
   SÉANCES EN DÉTAIL — cartes « semaine en cours » (photo + pastille date)
   Grille adaptative : max 4 cartes (has-1 … has-4), max 3 affichées / ligne.
   ===================================================================== */
.seance-week-label { text-align:center; margin-left:auto; margin-right:auto; margin-bottom: 10px;}
.seance-detail-grid {
	display:grid;
	gap:22px;
	grid-template-columns:repeat(auto-fit, minmax(min(300px, 100%), 1fr));
}
.seance-detail-grid.has-1 { grid-template-columns:minmax(min(430px, 100%), 560px); justify-content:center; }
.seance-detail-grid.has-2 { grid-template-columns:repeat(2, minmax(min(300px, 100%), 430px)); justify-content:center; }
.seance-detail-grid.has-3 { grid-template-columns:repeat(3, minmax(0, 1fr)); }
.seance-detail-grid.has-4 { grid-template-columns:repeat(3, minmax(0, 1fr)); }
.seance-detail-grid.has-4 > .seance-detail-card:first-child { grid-column:1 / -1; }

/* Carte : même squelette que .seance-card (fond blanc, radius 20px, padding) */
.seance-detail-card {
	--tc:var(--rouge);
	display:block;
	background:var(--blanc);
	border:1px solid rgba(20,20,25,.08);
	border-radius:20px;
	padding:24px 22px;
	box-shadow:none;
	min-width:0;
	transition:transform var(--transition), box-shadow var(--transition);
}
.seance-detail-card:hover {
	transform:translateY(-6px);
	box-shadow:var(--shadow);
}
/* Couleurs par type : variables natives du site (style.css : .type-*) */
.seance-detail-card.type-fractionne { --tc:var(--rouge); --tc-soft:rgba(224,8,56,.09); }
.seance-detail-card.type-cote { --tc:var(--violet); --tc-soft:rgba(108,74,182,.1); }
.seance-detail-card.type-longue { --tc:var(--rose); --tc-soft:rgba(214,51,108,.09); }
.seance-detail-card.type-renforcement { --tc:#B45309; --tc-soft:rgba(180,83,9,.1); }
.seance-detail-card.type-course { --tc:var(--rouge-cuir); --tc-soft:rgba(125,32,27,.09); }
.seance-detail-card.type-entrainement { --tc:var(--noir); --tc-soft:rgba(22,22,26,.07); }

/* En-tête : vignette + identité (même structure que .seance-head) */
.seance-detail-identity {
	display:flex;
	gap:14px;
	align-items:center;
	margin-bottom:16px;
}
.seance-detail-id { min-width:0; flex:1; }
.seance-detail-pill {
	display:inline-flex;
	align-items:center;
	gap:7px;
	max-width:100%;
	margin-bottom:4px;
	font-family:var(--outfit);
	font-weight:800;
	font-size:12.5px;
	text-transform:uppercase;
	letter-spacing:.06em;
	color:var(--tc);
}
.seance-detail-pill svg { width:15px; height:15px; }

/* Visuel : vignette carrée 76px (identique à .seance-thumb du site) */
.seance-detail-thumb {
	width:76px;
	height:76px;
	border-radius:14px;
	object-fit:cover;
	flex:none;
	box-shadow:0 10px 20px -10px rgba(20,20,25,.4);
	transition:transform .6s cubic-bezier(.2,.7,.3,1);
}
.seance-detail-card:hover .seance-detail-thumb { transform:scale(1.04); }


/* Titre / horaires / lieu : mêmes styles que .seance-day / .seance-time / .seance-loc */
.seance-detail-title {
	font-family:var(--outfit);
	font-weight:800;
	font-size:19px;
	line-height:1.15;
	color:var(--noir);
	margin:0 0 2px;
	overflow-wrap:break-word;
}
.seance-detail-when {
	margin:0 0 2px;
	font-family:var(--outfit);
	font-weight:600;
	font-size:14.5px;
	color:#3F3F45;
}
.seance-detail-where {
	display:flex;
	align-items:flex-start;
	gap:6px;
	margin:0;
	font-size:12.5px;
	line-height:1.5;
	color:#8A8A92;
}
.where-icon { display:inline-flex; flex:none; margin-top:2px; color:var(--tc); }
.where-icon svg { width:15px; height:15px; }

/* Corps : description + programme (mêmes styles que .seance-desc / .seance-list) */
.seance-detail-content {
	display:block;
}
.seance-detail-link {
	display:inline-flex;
	align-items:center;
	gap:8px;
	margin-top:14px;
	font-family:var(--outfit);
	font-weight:700;
	font-size:13px;
	text-transform:uppercase;
	letter-spacing:.06em;
	color:var(--tc);
}
.seance-detail-link:hover { color:var(--noir); }
.seance-detail-desc {
	font-size:14px;
	line-height:1.6;
	color:#5A5A62;
	margin:0 0 16px;
}
.seance-detail-desc.is-muted { color:#8A878F; font-style:italic; margin-bottom:0; }

.seance-detail-list {
	list-style:none;
	margin:0;
	padding:0;
	display:grid;
	gap:10px;
}
.seance-detail-list li {
	display:flex;
	align-items:flex-start;
	gap:8px;
	font-family:var(--outfit);
	font-weight:700;
	font-size:13.5px;
	line-height:1.5;
	color:var(--noir);
}
.seance-detail-list li > span:last-child { font-weight:700; }
.seance-detail-list .tick {
	display:inline-flex;
	flex:none;
	color:var(--tc);
	margin-top:2px;
}
.seance-detail-list .tick svg { width:14px; height:14px; }

@media (max-width:1100px) {
	.seance-detail-grid.has-3,
	.seance-detail-grid.has-4 { grid-template-columns:repeat(2, minmax(0, 1fr)); }
	.seance-detail-grid.has-4 > .seance-detail-card:first-child { grid-column:auto; }
}

@media (max-width:640px) {
	.seance-detail-grid,
	.seance-detail-grid.has-1,
	.seance-detail-grid.has-2,
	.seance-detail-grid.has-3,
	.seance-detail-grid.has-4 { grid-template-columns:1fr; gap:16px; }
	.seance-detail-card { padding:20px 18px; }
	.seance-detail-title { font-size:17px; }
	.seance-detail-thumb { width:64px; height:64px; border-radius:12px; }
}

/* =====================================================================
   UTILITAIRES & ACCESSIBILITÉ
   ===================================================================== */
.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;
}

.btn-sm { padding:9px 15px; font-size:12.5px; border-radius:11px; }

@media (prefers-reduced-motion: reduce) {
	.scap-agenda-wrapper *,
	.scap-agenda-wrapper *::before,
	.scap-agenda-wrapper *::after {
		transition-duration:.01ms !important;
		animation-duration:.01ms !important;
	}
}

/* =====================================================================
   RESPONSIVE — TABLETTE (≤ 1024px)
   ===================================================================== */
@media (max-width:1024px) {
	.week-grid { grid-template-columns:repeat(7, minmax(130px, 1fr)); gap:8px; }
	.month-cell { min-height:84px; }
	.agenda-extra-tools { margin-left:0; }
}

/* =====================================================================
   RESPONSIVE — PETITE TABLETTE (≤ 840px)
   ===================================================================== */
@media (max-width:840px) {
	.agenda-toolbar { gap:12px; }
	.agenda-period-title { flex:1 1 100%; order:-1; }

	/* Semaine : défilement horizontal avec 7 colonnes compactes */
	.agenda-view-week { margin:0 -4px; scroll-snap-type:x mandatory; }
	.week-grid { grid-template-columns:repeat(7, minmax(150px, 1fr)); }
	.week-col { scroll-snap-align:start; }

	.month-cell { min-height:74px; padding:5px 4px; }
	.month-chip .chip-time { display:none; }
	.list-card-side { margin-left:0; }
}

/* =====================================================================
   RESPONSIVE — MOBILE (≤ 640px) — prioritaire
   ===================================================================== */
@media (max-width:640px) {
	.agenda-toolbar { flex-direction:column; align-items:stretch; gap:12px; }
	.agenda-nav-group { justify-content:space-between; }
	.agenda-nav-btn { flex:1; min-width:0; }
	.agenda-period-title { order:-1; text-align:center; font-size:16px; }
	.agenda-view-selector { justify-content:center; }
	.view-btn { flex:1; padding:10px 8px; font-size:12.5px; }
	.agenda-extra-tools { justify-content:center; width:100%; }
	.agenda-date-picker { flex:1; }
	.agenda-date-picker input { width:100%; }
	.agenda-external-link { flex:1; justify-content:center; }
	.agenda-legend { gap:7px 14px; justify-content:center; font-size:12px; }

	/* Zones tactiles : on porte les boutons de vue et le lien « détail »
	   à 44 px de haut, sans changer leur rendu ni leur place. */
	.view-btn { padding:13px 8px; }
	.seance-detail-link { padding:10px 0; }
	.btn-sm { padding:13px 15px; }

	/* Semaine : colonnes en flux vertical = devient une liste lisible */
	.agenda-view-week { overflow-x:visible; }
	.week-grid { grid-template-columns:1fr; gap:9px; }
	.week-col-head { padding:10px 13px; }
	.week-col-body { padding:10px; }

	/* Mois : plus compact, pastilles tronquées gérées côté PHP */
	.month-headers { gap:2px; }
	.month-head-col { font-size:9.5px; letter-spacing:.04em; }
	.month-grid { gap:3px; padding:6px; border-radius:14px; }
	.month-cell { min-height:58px; border-radius:9px; padding:4px 3px; }
	.cell-day-num { font-size:12px; }
	.month-chip { border-left-width:0; padding:3px 4px; background:transparent; gap:4px; }
	.month-chip .chip-dot { width:8px; height:8px; }
	.month-chip .chip-title { display:none; }
	.month-chip-more { padding:1px 4px; font-size:10px; }

	/* Liste : carte pleine largeur, bouton discret */
	.list-day-group { padding:14px 13px; border-radius:14px; }
	.list-card { padding:12px 12px; gap:10px; }
	.list-card-title { font-size:14.5px; }
	.list-card-side { width:100%; }
	.list-card-side .btn { width:100%; justify-content:center; }

	.agenda-empty { padding:32px 18px; }
	.agenda-error { padding:20px 18px; }
}

/* =====================================================================
   MODALES DE DÉTAIL & CONTENEURS
   ===================================================================== */
.agenda-main-content { min-width:0; }
.agenda-modals-pool { display:contents; }

.ev-category-pill {
	display:inline-block;
	font-family:var(--outfit);
	font-weight:700;
	font-size:10.5px;
	letter-spacing:.12em;
	text-transform:uppercase;
	opacity:.9;
	margin-bottom:4px;
}
.scap-modal-head .ev-timing {
	font-size:13px;
	line-height:1.45;
	opacity:.95;
}

.modal-location-block {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:14px;
	flex-wrap:wrap;
	background:rgba(20,20,25,.045);
	border-left:4px solid var(--tc, var(--rouge));
	border-radius:12px;
	padding:13px 15px;
	margin-bottom:18px;
}
.modal-location-block .loc-text {
	display:flex;
	align-items:flex-start;
	gap:9px;
	font-size:14px;
	color:var(--noir);
	line-height:1.5;
	min-width:0;
}
.modal-location-block .loc-icon { display:inline-flex; flex:none; color:var(--tc, var(--rouge)); margin-top:2px; }
.modal-location-block .loc-icon svg { width:17px; height:17px; }

.btn-maps-link {
	display:inline-flex;
	align-items:center;
	gap:7px;
	flex:none;
	font-family:var(--outfit);
	font-weight:700;
	font-size:12.5px;
	color:var(--rouge);
	padding:9px 13px;
	border-radius:11px;
	background:rgba(224,8,56,.09);
	text-decoration:none;
	transition:background var(--transition), color var(--transition);
}
.btn-maps-link:hover { background:var(--rouge); color:#fff; }

.scap-modal .seance-desc {
	font-size:14.5px;
	line-height:1.6;
	color:var(--texte);
	margin:0 0 14px;
}
.scap-modal .seance-list {
	list-style:none;
	margin:0 0 16px;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:9px;
}
.scap-modal .seance-list li {
	display:flex;
	align-items:flex-start;
	gap:9px;
	font-size:14px;
	line-height:1.5;
	color:var(--texte);
}
.scap-modal .seance-list .tick { display:inline-flex; flex:none; color: var(--noir); margin-top:3px; }
.scap-modal .seance-list .tick svg { width:15px; height:15px; }
.scap-modal .seance-list ul { list-style:none; margin:5px 0 0; padding:0; display:flex; flex-direction:column; gap:4px; }
.scap-modal .text-muted { color:#8A878F; font-style:italic; }

.scap-modal .agenda-note {
	font-size:12px;
	color:#8A878F;
	border-top:1px solid rgba(20,20,25,.08);
	padding-top:13px;
	margin:0;
	line-height:1.5;
}

/* Couleurs d'en-tête de modale par type */
.scap-modal-head.ev-fractionne { background:linear-gradient(135deg, #E00838, #B30A2F); }
.scap-modal-head.ev-cote { background:linear-gradient(135deg, #7A58C7, #5535A6); }
.scap-modal-head.ev-longue { background:linear-gradient(135deg, #E14A79, #B81E52); }
.scap-modal-head.ev-renforcement { background:linear-gradient(135deg, #C96A0A, #8A4207); }
.scap-modal-head.ev-course { background:linear-gradient(135deg, #96282B, #5E1417); }
.scap-modal-head.ev-entrainement { background:linear-gradient(135deg, #2E2E31, #16161A); }

.scap-modal-card.type-cote { --tc:#6C4AB6; }
.scap-modal-card.type-longue { --tc:#D6336C; }
.scap-modal-card.type-fractionne { --tc:#E00838; }
.scap-modal-card.type-entrainement { --tc:#16161A; }
.scap-modal-card.type-renforcement { --tc:#B45309; }
.scap-modal-card.type-course { --tc:#7D201B; }

/* Légende mobile sous la barre d'outils */
@media (max-width:640px) {
	.modal-location-block { flex-direction:column; align-items:flex-start; }
	.btn-maps-link { width:100%; justify-content:center; }
}
@media (max-width:400px) {
	.agenda-nav-btn { padding:0 10px; font-size:12.5px; height:42px; }
	.month-grid { padding:4px; }
	.month-cell { min-height:50px; }
}