/* ═══════════════════════════════════════════════════════════════
   EN GRÈVE — Frontend CSS
   ═══════════════════════════════════════════════════════════════ */

:root {
	--eg-red:    #ef4444;
	--eg-yellow: #f59e0b;
	--eg-green:  #22c55e;
	--eg-blue:   #3b82f6;
	--eg-dark:   #1e293b;
	--eg-border: #e2e8f0;
	--eg-text:   #334155;
	--eg-muted:  #94a3b8;
	--eg-radius: 10px;
	--eg-shadow: 0 2px 12px rgba(0,0,0,.08);
}

/* ── Horaire Shortcode ───────────────────────────────────────── */
.engreve-horaire-wrap  { font-family: -apple-system, sans-serif; margin: 24px 0; }
.engreve-nav-week {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
	flex-wrap: wrap;
}
.engreve-week-title { font-size: 1.1rem; font-weight: 700; margin: 0; color: var(--eg-dark); }
.btn-prev, .btn-next {
	background: var(--eg-dark);
	color: #fff !important;
	padding: 8px 16px;
	border-radius: 8px;
	text-decoration: none;
	font-size: .85rem;
	font-weight: 600;
	transition: opacity .2s;
}
.btn-prev:hover, .btn-next:hover { opacity: .8; }

.engreve-table-scroll { overflow-x: auto; }

.engreve-horaire-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	background: #fff;
	border-radius: var(--eg-radius);
	overflow: hidden;
	box-shadow: var(--eg-shadow);
}
.engreve-horaire-table thead th {
	background: var(--eg-dark);
	color: #fff;
	font-size: .82rem;
	font-weight: 600;
	padding: 12px 8px;
	text-align: center;
}
.engreve-horaire-table td {
	padding: 8px 10px;
	border-bottom: 1px solid var(--eg-border);
	border-right: 1px solid #f1f5f9;
	vertical-align: top;
	font-size: .83rem;
}
.shift-label {
	font-weight: 700;
	color: var(--eg-dark);
	white-space: nowrap;
	padding-left: 12px !important;
}
.shift-time { font-size: .78rem; color: var(--eg-muted); white-space: nowrap; }
.shift-cell { min-width: 110px; }

.day-abbr { display: block; font-size: .7rem; opacity: .7; text-transform: uppercase; }
.day-num  { display: block; font-size: 1.25rem; font-weight: 800; }

.member-list { list-style: none; margin: 0; padding: 0; }
.member-list li { padding: 2px 0; color: var(--eg-text); }
.empty-slot { color: var(--eg-muted); font-style: italic; }

/* ── Capitaines Shortcode ────────────────────────────────────── */
.engreve-capitaines-wrap { margin: 24px 0; }
.engreve-cap-group { margin-bottom: 24px; }
.cap-group-title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--eg-dark);
	border-bottom: 2px solid var(--eg-border);
	padding-bottom: 6px;
	margin-bottom: 12px;
}
.cap-list { list-style: none; margin: 0; padding: 0; }
.cap-item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid var(--eg-border);
	font-size: .9rem;
}
.cap-name  { font-weight: 700; color: var(--eg-dark); min-width: 180px; }
.cap-email { color: var(--eg-blue); text-decoration: none; }
.cap-phone { color: var(--eg-green); text-decoration: none; }

/* ── Présences Shortcode ─────────────────────────────────────── */
.engreve-presences-wrap { margin: 24px 0; }
.presence-list { list-style: none; margin: 0; padding: 0; }
.presence-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 16px;
	border: 1px solid var(--eg-border);
	border-radius: 8px;
	margin-bottom: 6px;
	background: #fff;
	transition: all .2s;
}
.presence-item.is-present { background: #f0fdf4; border-color: var(--eg-green); }
.toggle-presence {
	background: none;
	border: 2px solid var(--eg-border);
	border-radius: 6px;
	width: 34px;
	height: 34px;
	font-size: 1.1rem;
	cursor: pointer;
	transition: all .2s;
}
.presence-item.is-present .toggle-presence { border-color: var(--eg-green); }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 640px) {
	.engreve-horaire-table { font-size: .75rem; }
	.cap-item { flex-direction: column; align-items: flex-start; gap: 4px; }
}
