:root {
  /* Couleur principale : bleu 3CN (les variables gardent leur nom « green » pour ne rien casser). */
  --green: #175cd3;
  --green-dark: #1849a9;
  --green-soft: #eaf1ff;
  --green-muted: #f2f6fd;
  --blue: #175cd3;
  --blue-dark: #1849a9;
  --blue-soft: #eff4ff;
  --ink: #182230;
  --muted: #667085;
  --canvas: #f3f6f8;
  --line: #dce3e8;
  --danger: #b42318;
}

html { min-height: 100%; }
body { min-height: 100vh; background: var(--canvas); color: var(--ink); font-family: Inter, system-ui, sans-serif; }
a { text-decoration: none; }
iconify-icon { flex: 0 0 auto; font-size: 1.18rem; }
.app-shell { display: flex; min-height: 100vh; }
.sidebar { position: sticky; top: 0; display: flex; width: 282px; height: 100vh; flex: 0 0 282px; flex-direction: column; padding: 20px 16px; border-right: 1px solid var(--line); background: #fff; z-index: 30; }
.brand { display: flex; align-items: center; gap: 12px; margin: 0 8px 20px; color: var(--green); }
.brand-mark { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 12px; background: var(--green); color: #fff; font-size: .75rem; font-weight: 800; }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 1.125rem; }
.brand small { color: var(--muted); font-size: .75rem; font-weight: 400; }
.side-nav { display: block; min-height: 0; flex: 1; overflow-y: auto; padding-right: 4px; }
.nav-item { display: flex; min-height: 41px; align-items: center; gap: 12px; margin: 2px 0; padding: 10px 12px; border-radius: 8px; color: var(--ink); font-size: .875rem; }
.nav-item:hover { background: var(--green-muted); }
.nav-item iconify-icon { color: var(--green); }
.nav-item.active { background: var(--green-soft); color: var(--green); font-weight: 700; }
.nav-item.disabled { color: #475467; cursor: not-allowed; }
.nav-item em { margin-left: auto; padding: 2px 8px; border-radius: 999px; background: var(--green-muted); color: var(--muted); font-size: .625rem; font-style: normal; font-weight: 600; }
.nav-group { margin: 0; padding: 20px 12px 6px; color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.nav-tail, .count { margin-left: auto; }
.side-church-menu > summary { cursor: pointer; list-style: none; }
.side-church-menu > summary::-webkit-details-marker { display: none; }
.side-church-menu[open] .chevron { transform: rotate(180deg); }
.side-submenu { display: grid; gap: 2px; margin: 2px 0 8px 30px; padding-left: 10px; border-left: 1px solid var(--line); }
.side-submenu a { padding: 7px 9px; border-radius: 7px; color: #475467; font-size: .78rem; line-height: 1.25; }
.side-submenu a:hover { background: var(--green-muted); color: var(--green); }
.side-submenu a[aria-disabled="true"] { cursor: default; }
.side-submenu a.active { background: var(--green-muted); color: var(--green); font-weight: 700; }
.count { padding: 2px 8px; border-radius: 999px; background: var(--green); color: #fff; font-size: .75rem; }
.account { display: flex; align-items: center; gap: 10px; margin-top: 16px; padding: 16px 8px 0; border-top: 1px solid var(--line); }
.avatar { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border-radius: 50%; background: var(--green-soft); color: var(--green); font-size: .75rem; font-weight: 800; }
.account-copy { min-width: 0; flex: 1; }
.account strong, .account small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account strong { font-size: .875rem; }
.account small { color: var(--muted); font-size: .75rem; }
.account form { margin: 0; }
.account button { display: grid; padding: 6px; place-items: center; background: transparent; color: var(--green); }
.workspace { min-width: 0; flex: 1; }
.topbar { position: sticky; top: 0; z-index: 20; display: flex; height: 70px; align-items: center; justify-content: space-between; padding: 0 32px; border-bottom: 1px solid var(--line); background: #fff; }
.topbar-title, .top-actions { display: flex; align-items: center; gap: 12px; }
.topbar small { color: var(--muted); font-size: .75rem; }
.topbar h1 { margin: 2px 0 0; font-size: 1.125rem; }
.menu-toggle, .notification-button { position: relative; display: none; width: 40px; height: 40px; padding: 0; place-items: center; border: 1px solid var(--line); background: #fff; color: var(--green); }
.notification-button { display: grid; }
.notification-button span { position: absolute; top: 6px; right: 6px; width: 8px; height: 8px; border-radius: 50%; background: var(--danger); }
.profile-link { padding: 9px 12px; border: 1px solid var(--line); border-radius: 8px; color: var(--green); font-size: .875rem; font-weight: 700; }
.page-content { width: auto; max-width: none; margin: 0; padding: 32px; }
.page-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.page-heading h2 { margin: 0; font-size: 1.5rem; font-weight: 800; }
.page-heading p, .panel-heading p, .quick-panel > p { margin: 5px 0 0; color: var(--muted); font-size: .875rem; }
.primary-action { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 8px; background: var(--green); color: #fff; font-size: .875rem; font-weight: 700; }
.primary-action:hover { background: var(--green-dark); }
.card { border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 20px; box-shadow: 0 3px 14px #1b2a3a0a; }
.dashboard-stats { grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 24px; }
.stat-card > div { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: .875rem; }
.stat-icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 8px; background: var(--green-soft); color: var(--green); }
.stat-card strong { display: block; margin-top: 6px; color: var(--green); font-size: 1.875rem; }
.stat-card p { margin: 5px 0 0; color: var(--muted); font-size: .75rem; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, 1fr); gap: 20px; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 10px; }
.panel-heading h3, .quick-panel h3 { margin: 0; font-size: 1rem; }
.panel-heading a { color: var(--green); font-size: .875rem; font-weight: 700; }
.event-row { display: flex; align-items: center; gap: 16px; padding: 16px 0; border-top: 1px solid var(--line); color: var(--ink); }
.event-date { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; border-radius: 8px; background: var(--green-soft); color: var(--green); font-size: .85rem; font-weight: 800; line-height: 1; }
.event-date small { font-size: .62rem; }
.event-copy { min-width: 0; flex: 1; }
.event-copy strong, .event-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.event-copy strong { font-size: .875rem; }
.event-copy small { margin-top: 4px; color: var(--muted); font-size: .75rem; }
.status-pill { padding: 5px 10px; border-radius: 999px; background: var(--green-soft); color: var(--green); font-size: .75rem; }
.quick-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 16px; }
.quick-grid a { min-height: 91px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); font-size: .82rem; font-weight: 700; }
.quick-grid a:hover { background: var(--green-muted); }
.quick-grid iconify-icon { display: block; margin-bottom: 9px; color: var(--green); font-size: 1.3rem; }
.role-info { margin-top: 16px; padding: 12px; border: 1px solid #b2ccff; border-radius: 8px; background: var(--green-soft); }
.role-info strong { display: flex; align-items: center; gap: 7px; color: var(--green); font-size: .875rem; }
.role-info p { margin: 5px 0 0; color: var(--muted); font-size: .75rem; line-height: 1.45; }
.empty-state { padding: 36px 10px; text-align: center; color: var(--muted); }
.empty-state iconify-icon { font-size: 2rem; }
.sidebar-backdrop { display: none; }

.login-page { background: var(--ink); }
.login-shell { position: relative; min-height: 100vh; overflow: hidden; background: var(--ink); }
.login-background, .login-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.login-background { object-fit: cover; }
.login-overlay { background: rgb(24 34 48 / 76%); }
.login-layout { position: relative; display: grid; width: 100%; max-width: 1440px; min-height: calc(100vh - 230px); grid-template-columns: minmax(0, 1fr) 420px; align-items: center; gap: 80px; margin: 0 auto; padding: 40px max(4vw, 56px) 24px; }
.login-introduction { max-width: 640px; color: #fff; }
.login-brand { color: #fff; font-size: 1.25rem; font-weight: 800; }
.login-welcome { margin-top: 32px; padding-left: 20px; border-left: 2px solid var(--blue); }
.login-welcome h1 { margin: 0; font-size: clamp(1.9rem, 3vw, 2.4rem); line-height: 1.15; }
.login-welcome p { max-width: 450px; margin: 16px 0 0; color: rgb(255 255 255 / 90%); line-height: 1.7; }
.login-security { display: flex; align-items: center; gap: 8px; margin-top: 32px; color: rgb(255 255 255 / 82%); font-size: .875rem; }
.login-card { width: 100%; padding: 22px; border: 1px solid #d0d9e8; border-radius: 14px; background: #fff; box-shadow: 0 3px 14px #1b2a3a0a; }
.login-mobile-heading { display: none; }
.login-steps { display: flex; align-items: center; justify-content: center; gap: 8px; margin-bottom: 26px; color: var(--muted); font-size: .85rem; }
.login-steps i { width: 28px; height: 1px; background: #d0d9e8; }
.login-steps strong { color: var(--ink); }
.step-number { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: var(--blue); color: #fff; font-size: .75rem; font-weight: 700; }
.login-card-heading { text-align: center; }
.login-avatar { display: grid; width: 72px; height: 72px; place-items: center; margin: auto; border: 2px solid #b2ccff; border-radius: 50%; background: var(--blue-soft); color: var(--blue); }
.login-avatar iconify-icon { font-size: 2rem; }
.login-card-heading h1 { margin: 14px 0 0; font-size: 1.25rem; }
.login-card-heading p { margin: 5px 0 0; color: var(--muted); font-size: .875rem; }
.login-card-heading .login-first { margin-top: 8px; font-size: .8125rem; }
.login-error { display: flex; align-items: center; gap: 7px; margin: 16px 0 -2px; padding: 10px 12px; border-radius: 8px; background: #fef3f2; font-size: .8rem; }
.login-form { margin-top: 22px; }
.login-form label { display: block; margin: 14px 0 7px; font-size: .875rem; font-weight: 600; }
.input-with-icon, .password-field { position: relative; }
.input-with-icon > iconify-icon, .password-field > iconify-icon { position: absolute; top: 50%; left: 12px; color: var(--muted); transform: translateY(-50%); }
.login-form input { display: block; width: 100%; padding: 11px 42px 11px 39px; border: 1px solid #98a2b3; border-radius: 8px; color: var(--ink); font: inherit; font-size: .875rem; outline: none; }
.login-form input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.password-toggle { position: absolute; top: 0; right: 0; display: grid; width: 42px; height: 100%; padding: 0; place-items: center; background: transparent; color: var(--muted); }
.login-submit { width: 100%; margin-top: 20px; padding: 11px 15px; background: var(--blue); font-weight: 700; }
.login-submit:hover { background: var(--blue-dark); }
.login-divider { margin: 20px 0; border-top: 1px solid #e4eaf2; }
.login-help { margin: 0; color: var(--muted); text-align: center; font-size: .75rem; line-height: 1.6; }
.login-help a { color: var(--blue); font-weight: 600; }
.login-footer { position: absolute; bottom: 28px; left: max(4vw, 56px); color: rgb(255 255 255 / 75%); font-size: .75rem; }
.goal-dates { display: flex; justify-content: space-between; gap: 8px; margin-top: 4px; color: var(--muted); font-size: .72rem; }
.goal-dates strong { color: var(--green); }
.login-public { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 28px; }
.login-public-panel { padding: 16px; border: 1px solid rgb(255 255 255 / 22%); border-radius: 12px; background: rgb(255 255 255 / 10%); color: #fff; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.login-public-panel h2 { display: flex; align-items: center; gap: 7px; margin: 0; font-size: .95rem; }
.login-public-note { margin: 3px 0 8px; color: rgb(255 255 255 / 72%); font-size: .75rem; }
.login-agenda { display: grid; gap: 9px; margin: 8px 0 0; padding: 0; list-style: none; }
.login-agenda li { display: grid; gap: 1px; padding-top: 9px; border-top: 1px solid rgb(255 255 255 / 16%); font-size: .8rem; }
.login-agenda time { color: #b9f0cf; font-size: .72rem; font-weight: 700; text-transform: capitalize; }
.login-agenda small, .public-action small, .public-action p { color: rgb(255 255 255 / 72%); }
.public-action { display: grid; gap: 5px; margin-top: 10px; padding: 10px 12px; border: 1px solid rgb(255 255 255 / 24%); border-radius: 10px; background: rgb(255 255 255 / 8%); }
.public-action strong { font-size: .82rem; }
.public-action p { margin: 0; font-size: .72rem; }
.public-action .action-card-head small { font-size: .68rem; }
.public-action .goal-bar { height: 6px; background: rgb(255 255 255 / 22%); }
.public-action .goal-bar span { background: #4fd18b; }
.public-action .goal-dates { color: rgb(255 255 255 / 72%); font-size: .66rem; }
.public-action .goal-dates strong { color: #b9f0cf; }
.login-jump { display: none; }
.login-calendar { position: relative; width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 max(4vw, 56px) 80px; color: #fff; }
.login-calendar-head { display: flex; align-items: center; justify-content: center; gap: 18px; margin-bottom: 12px; }
.login-calendar-head h2 { min-width: 200px; margin: 0; font-size: 1.3rem; text-align: center; }
.login-calendar-head a { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid rgb(255 255 255 / 28%); border-radius: 50%; color: #fff; }
.login-calendar-head a:hover { background: rgb(255 255 255 / 14%); }
.login-calendar-wrap { overflow-x: auto; border: 1px solid rgb(255 255 255 / 22%); border-radius: 12px; background: rgb(255 255 255 / 10%); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.login-calendar table { width: 100%; min-width: 1020px; border-collapse: collapse; table-layout: fixed; }
.login-calendar th { padding: 7px 0 5px; border-bottom: 1px solid rgb(255 255 255 / 22%); text-align: center; }
.login-calendar th strong { display: block; font-size: .82rem; }
.login-calendar th small { display: block; margin-top: 1px; color: rgb(255 255 255 / 66%); font-size: .6rem; font-weight: 600; }
.login-calendar td { height: 42px; padding: 6px 3px; border-left: 1px solid rgb(255 255 255 / 10%); text-align: center; vertical-align: top; }
.login-calendar .is-weekend { background: rgb(255 255 255 / 5%); }
.login-calendar th.is-today strong, .login-calendar th.is-today small { color: #4fd18b; }
.login-calendar td.is-today { box-shadow: inset 0 0 0 2px #4fd18b; }
.login-calendar td.has-events { background: rgb(79 209 139 / 16%); cursor: help; }
.calendar-mark { display: block; width: 80%; height: 6px; margin: 0 auto 3px; border-radius: 99px; background: #4fd18b; }
.login-calendar td small { color: #b9f0cf; font-size: .62rem; font-weight: 700; }
@media (max-width: 1023px) {
  .login-calendar { padding: 0 16px 72px; }
}
@media (max-width: 1023px) {
  .login-layout { min-height: 0; flex-direction: column; align-items: center; gap: 20px; }
  .login-introduction { display: block; order: 2; width: 100%; max-width: 420px; }
  .login-introduction > .login-brand, .login-introduction > .login-welcome, .login-introduction > .login-security { display: none; }
  .login-public { grid-template-columns: 1fr; margin-top: 4px; }
  .login-jump { display: block; margin-top: 8px; }
}
.floating-notice { position: fixed; top: 15px; left: 50%; z-index: 50; transform: translateX(-50%); }

@media (max-width: 1023px) {
  .sidebar { position: fixed; left: 0; transform: translateX(-100%); transition: transform .22s ease; }
  .sidebar-open .sidebar { transform: translateX(0); }
  .sidebar-backdrop { position: fixed; inset: 0; z-index: 25; background: rgb(24 34 48 / 45%); }
  .sidebar-open .sidebar-backdrop { display: block; }
  .menu-toggle { display: grid; }
  .topbar { padding: 0 20px; }
  .login-layout { display: flex; justify-content: center; padding: 32px 24px 24px; }
  .login-card { max-width: 420px; }
  .login-mobile-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
  .login-mobile-heading a { color: var(--blue); font-size: 1.2rem; font-weight: 800; }
  .login-mobile-heading span { color: var(--muted); font-size: .875rem; }
  .login-footer { left: 0; width: 100%; text-align: center; }
}

@media (max-width: 760px) {
  .page-content { padding: 22px 16px; }
  .page-heading { align-items: flex-start; }
  .dashboard-stats, .dashboard-grid { grid-template-columns: 1fr; }
  .profile-link { display: none; }
}

@media (max-width: 480px) {
  .topbar { height: 64px; }
  .topbar-title small { display: none; }
  .topbar h1 { font-size: 1rem; }
  .page-heading { flex-direction: column; }
  .primary-action { width: 100%; justify-content: center; }
  .quick-grid { grid-template-columns: 1fr; }
  .status-pill { display: none; }
  .status-pill[class*=" en-"], .status-pill[class*=" sc-"], .status-pill.dup-best { display: inline-block; } /* 3CN Energy : l'état (en retard, en panne) reste visible */
  .login-layout { padding: 18px 14px 20px; }
  .login-card { padding: 20px 17px; }
}

@media (prefers-reduced-motion: reduce) {
  .sidebar { transition: none; }
}

/* Annuaire et fiche membre — direction Superdesign approuvée */
.members-heading { display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:24px; }
.members-heading h2 { margin:0;font-size:1.5rem; }
.members-heading p,.filter-heading p,.statistics-heading p,.member-qr-panel>p { margin:5px 0 0;color:var(--muted);font-size:.82rem; }
.members-actions,.member-detail-actions>div { display:flex;gap:9px; }
.members-actions .button,.member-detail-actions .button { display:inline-flex;align-items:center;gap:7px;font-weight:700; }
.members-layout { display:grid;grid-template-columns:minmax(0,1fr) 286px;align-items:start;gap:20px; }
.members-directory { display:grid;gap:16px;min-width:0; }
.member-filters { padding:18px; }
.filter-heading { display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px; }
.filter-heading h3,.statistics-heading h3,.member-group h3,.member-qr-panel h3 { margin:0;font-size:1rem; }
.filter-heading>a { display:flex;align-items:center;gap:5px;font-size:.8rem;font-weight:700; }
.member-filters label>span:first-child { display:block;margin-bottom:6px;color:var(--ink);font-size:.75rem;font-weight:700; }
.input-icon { position:relative;display:block; }
.input-icon iconify-icon { position:absolute;top:50%;left:12px;color:var(--muted);transform:translateY(-50%); }
.member-filters input,.member-filters select { width:100%;height:42px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 11px;color:var(--ink);font:inherit;font-size:.82rem; }
.member-filters input { padding-left:39px; }
.member-filters input:focus,.member-filters select:focus { outline:2px solid var(--green-soft);border-color:var(--green); }
.filter-grid { display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));align-items:end;gap:11px;margin-top:12px; }
.filter-grid button { display:flex;height:42px;align-items:center;justify-content:center;gap:7px;font-weight:700; }
.member-group { padding:0;overflow:hidden; }
.member-group>header { display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--green-muted); }
.member-group>header>span,.statistics-heading>span { display:grid;width:36px;height:36px;place-items:center;border-radius:8px;background:var(--green-soft);color:var(--green); }
.member-group>header p { margin:2px 0 0;color:var(--muted);font-size:.72rem; }
.member-table { min-width:760px; }
.member-table th { color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em; }
.member-table td { font-size:.82rem;vertical-align:middle; }
.member-table td:nth-child(2) small,.member-table td:nth-child(4) small { display:block;margin-top:3px;color:var(--muted);font-size:.7rem; }
.member-thumb { display:block;width:38px;height:38px;border-radius:50%;object-fit:cover; }
.member-thumb.fallback { display:grid;place-items:center;background:var(--green-soft);color:var(--green);font-size:.7rem;font-weight:800; }
.muted-status { color:var(--muted);font-size:.75rem; }
.status-pill.inactive { border:1px solid #fecdca;background:#fff;color:var(--danger); }
.pagination { display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-size:.8rem; }
.pagination p { margin:0;color:var(--muted); }.pagination div { display:flex;gap:8px; }.pagination a { padding:7px 10px;border:1px solid var(--line);border-radius:7px;font-weight:700; }
.member-statistics { position:sticky;top:94px;padding:18px; }
.statistics-heading { display:flex;align-items:center;gap:10px;padding-bottom:15px;border-bottom:1px solid var(--line); }
.total-stat { margin-top:16px;padding:15px;border-radius:10px;background:var(--green-soft); }
.total-stat small,.total-stat span { display:block;color:var(--green);font-size:.7rem; }.total-stat strong { display:block;margin:3px 0;color:var(--green);font-size:2rem; }
.member-statistics h4 { margin:18px 0 10px;padding-top:15px;border-top:1px solid var(--line);font-size:.82rem; }
.stat-pair { display:grid;grid-template-columns:1fr 1fr;gap:8px; }.stat-pair>div { padding:10px;border:1px solid var(--line);border-radius:8px; }.stat-pair strong,.stat-pair span { display:block; }.stat-pair strong { color:var(--green);font-size:1.2rem; }.stat-pair span { margin-top:3px;color:var(--muted);font-size:.68rem; }.stat-pair .inactive strong { color:var(--danger); }
.progress-stat p { display:flex;justify-content:space-between;gap:8px;margin:9px 0 5px;font-size:.7rem; }.progress-stat i { display:block;height:7px;overflow:hidden;border-radius:999px;background:var(--green-muted); }.progress-stat b { display:block;height:100%;border-radius:inherit;background:var(--green); }
.top-areas { display:grid;gap:8px;margin:0;padding:0;list-style:none; }.top-areas li { display:flex;align-items:center;gap:8px;font-size:.75rem; }.top-areas li span { display:grid;width:23px;height:23px;place-items:center;border-radius:50%;background:var(--green-soft);color:var(--green);font-weight:800; }.top-areas li b { flex:1; }
.member-detail-actions { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px; }.member-detail-actions>a { display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.82rem;font-weight:700; }
.member-detail-grid { display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:20px; }.profile-card { padding:0;overflow:hidden; }.profile-cover { height:130px;background:var(--green-soft); }
.profile-header { display:flex;align-items:flex-end;gap:20px;padding:0 26px;transform:translateY(-48px);margin-bottom:-24px; }.profile-header>img,.profile-photo-fallback { width:112px;height:112px;flex:0 0 112px;border:4px solid #fff;border-radius:16px;background:var(--green-muted);object-fit:cover;box-shadow:0 3px 14px #1b2a3a12; }.profile-photo-fallback { display:grid;place-items:center;color:var(--green); }.profile-photo-fallback iconify-icon { font-size:3rem; }
.profile-name { display:flex;align-items:center;gap:10px;flex-wrap:wrap; }.profile-name h2 { margin:0;font-size:1.5rem; }.profile-header p { margin:6px 0 8px;color:var(--muted);font-size:.78rem; }
.profile-information { display:grid;grid-template-columns:1fr 1fr;gap:38px;padding:6px 28px 28px; }.profile-information h3 { display:flex;align-items:center;gap:7px;margin:0 0 17px;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em; }.profile-information h3 iconify-icon { color:var(--green); }.profile-information dl { display:grid;gap:14px;margin:0; }.profile-information dt { color:var(--muted);font-size:.7rem; }.profile-information dd { margin:3px 0 0;font-size:.86rem;font-weight:600; }
.member-qr-panel { position:sticky;top:94px;text-align:center; }.member-qr-panel>img { width:min(210px,100%);margin:17px auto;padding:10px;border:2px dashed var(--line);border-radius:14px; }.qr-security { display:flex;gap:7px;padding:11px;border-radius:8px;background:var(--green-muted);color:var(--green-dark);font-size:.7rem;line-height:1.45;text-align:left; }.account-state { display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:.74rem; }.account-state strong { display:flex;align-items:center;gap:4px;color:var(--green); }.account-state strong.muted { color:var(--muted); }
@media(max-width:1050px){.members-layout,.member-detail-grid{grid-template-columns:1fr}.member-statistics,.member-qr-panel{position:static}.filter-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.members-heading,.member-detail-actions{align-items:stretch;flex-direction:column}.members-actions,.member-detail-actions>div{display:grid;grid-template-columns:1fr}.filter-grid,.profile-information{grid-template-columns:1fr}.profile-header{align-items:center;flex-direction:column;text-align:center}.profile-name{justify-content:center}}
@media print{.sidebar,.topbar,.member-filters,.members-actions,.member-detail-actions,.pagination{display:none!important}.workspace,.page-content{width:100%;max-width:none;margin:0;padding:0}.members-layout,.member-detail-grid{display:block}.member-statistics{page-break-before:always}.card{box-shadow:none}.member-table{min-width:0}.member-table th,.member-table td{padding:8px 6px}}

/* Finance — dîmes CDF et USD */
.finance-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:24px}.finance-heading h2{margin:0;font-size:1.5rem}.finance-heading p,.finance-trend p{margin:5px 0 0;color:var(--muted);font-size:.82rem}.finance-heading>div:last-child{display:flex;gap:9px}.finance-heading .button{display:inline-flex;align-items:center;gap:7px;font-weight:700}.finance-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.finance-stats.history{grid-template-columns:repeat(3,1fr)}.finance-stats .card{padding:18px}.finance-stats small,.finance-stats strong{display:block}.finance-stats small{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.finance-stats strong{margin-top:10px;color:var(--green);font-size:1.35rem}.finance-stats .usd strong,.currency.usd,.trend-table .usd{color:#175cd3}.finance-trend{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.finance-trend h3{margin:0;font-size:1rem}.trend-table{display:flex;max-width:70%;gap:8px;overflow-x:auto}.trend-table>div{min-width:104px;padding:9px;border:1px solid var(--line);border-radius:8px}.trend-table strong,.trend-table span{display:block;font-size:.7rem}.trend-table span{margin-top:6px}.trend-table b{color:var(--muted);font-size:.62rem}.finance-filters{display:grid;grid-template-columns:minmax(200px,2fr) repeat(3,minmax(120px,1fr)) auto auto;align-items:end;gap:10px;margin-bottom:16px;padding:16px}.finance-filters label>span{display:block;margin-bottom:6px;font-size:.72rem;font-weight:700}.finance-filters input,.finance-filters select{width:100%;height:40px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;font-size:.8rem}.finance-filters button{height:40px}.finance-filters>a{padding:11px 4px;font-size:.75rem;font-weight:700}.finance-table{padding:0;overflow:hidden}.finance-table table{min-width:760px}.finance-table th{color:var(--muted);font-size:.72rem;text-transform:uppercase}.finance-table td{font-size:.8rem}.finance-table td:nth-child(2) small{display:block;margin-top:3px;color:var(--muted);font-size:.68rem}.currency{display:inline-block;padding:5px 8px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:.72rem;font-weight:800}.currency.usd{background:#eff4ff}.finance-form{max-width:720px}.finance-member{display:flex;align-items:center;gap:13px}.finance-member>img,.finance-member>span{display:grid;width:52px;height:52px;place-items:center;border-radius:12px;background:var(--green-soft);color:var(--green);object-fit:cover;font-weight:800}.tithe-receipt{max-width:700px;margin:0 auto}.tithe-receipt>header{position:static;display:flex;align-items:center;justify-content:space-between;padding:0 0 20px;border-bottom:1px solid var(--line)}.tithe-receipt>header>div{display:flex;align-items:center;gap:12px}.tithe-receipt h2{margin:0}.tithe-receipt dl{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:28px 0}.tithe-receipt dt{color:var(--muted);font-size:.72rem}.tithe-receipt dd{margin:4px 0 0;font-weight:700}.receipt-amount{color:var(--green);font-size:1.4rem}.receipt-notes{padding:12px;border-radius:8px;background:var(--green-muted)}.tithe-receipt footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:.76rem}.tithe-receipt footer button{display:inline-flex;align-items:center;gap:7px}.receipt-print{display:flex;flex-wrap:wrap;gap:8px}.receipt-print .button{display:inline-flex;align-items:center;gap:7px}
@media(max-width:1050px){.finance-stats{grid-template-columns:repeat(2,1fr)}.finance-filters{grid-template-columns:repeat(2,1fr)}.finance-trend{display:block}.trend-table{max-width:100%;margin-top:16px}}
@media(max-width:620px){.finance-heading{align-items:stretch;flex-direction:column}.finance-heading>div:last-child{display:grid}.finance-stats,.finance-stats.history,.finance-filters{grid-template-columns:1fr}.tithe-receipt dl{grid-template-columns:1fr}.tithe-receipt>header,.tithe-receipt footer{align-items:flex-start;flex-direction:column}}
@media print{.finance-heading>div:last-child,.finance-filters,.tithe-receipt footer button,.receipt-print{display:none!important}.finance-stats{grid-template-columns:repeat(2,1fr)}.finance-table table{min-width:0}}

/* Navigation horizontale validée — maquette Navigation étendue v3 */
.horizontal-header { position: sticky; top: 0; z-index: 40; display: flex; min-height: 68px; align-items: center; gap: 24px; padding: 13px max(4vw, 20px); border-bottom: 1px solid #dce4ee; background: #fff; }
.horizontal-brand { flex: 0 0 auto; color: var(--blue); font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em; }
.horizontal-nav { display: flex; min-width: 0; flex: 1; align-items: center; justify-content: flex-end; gap: 18px; font-size: .875rem; }
.horizontal-link, .church-menu > summary { color: var(--blue); font-weight: 500; white-space: nowrap; }
.horizontal-link:hover, .church-menu > summary:hover, .horizontal-link.active, .church-menu.active > summary { color: var(--blue-dark); }
.horizontal-link.active { font-weight: 700; }
.horizontal-link[aria-disabled="true"], .church-dropdown a[aria-disabled="true"] { cursor: default; }
.church-menu { position: relative; }
.church-menu > summary { display: flex; align-items: center; gap: 4px; cursor: pointer; list-style: none; }
.church-menu > summary::-webkit-details-marker { display: none; }
.church-menu[open] > summary iconify-icon { transform: rotate(180deg); }
.church-dropdown { position: absolute; top: calc(100% + 14px); left: 0; display: grid; width: 224px; gap: 2px; padding: 8px; border: 1px solid #dce4ee; border-radius: 8px; background: #fff; box-shadow: 0 10px 28px rgb(24 34 48 / 12%); }
.church-dropdown a { padding: 9px 12px; border-radius: 7px; color: var(--blue); }
.church-dropdown a:hover { background: var(--blue-soft); color: var(--blue-dark); }
.horizontal-user { display: flex; min-width: 0; align-items: center; gap: 9px; padding-left: 2px; }
.horizontal-user > span:last-child { min-width: 0; line-height: 1.15; }
.horizontal-user strong, .horizontal-user small { display: block; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.horizontal-user strong { font-size: .8rem; }
.horizontal-user small { margin-top: 3px; color: var(--muted); font-size: .7rem; }
.logout-form { margin: 0; }
.logout-form button { padding: 10px 15px; background: var(--blue); font-size: .82rem; font-weight: 600; white-space: nowrap; }
.logout-form button:hover { background: var(--blue-dark); }
.nav-toggle { display: none; width: 40px; height: 40px; padding: 0; place-items: center; margin-left: auto; background: var(--blue); }

@media (max-width: 1240px) {
  .horizontal-header { flex-wrap: wrap; gap: 12px; }
  .nav-toggle { display: grid; }
  .horizontal-nav { display: none; width: 100%; flex: 0 0 100%; align-items: stretch; justify-content: flex-start; gap: 4px; padding: 8px 0 5px; }
  .horizontal-nav.open { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .horizontal-link, .church-menu > summary { padding: 10px 12px; border-radius: 8px; }
  .horizontal-link:hover, .church-menu > summary:hover { background: var(--blue-soft); }
  .church-menu { grid-column: 1 / -1; }
  .church-dropdown { position: static; width: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 3px 0 7px; box-shadow: none; }
  .horizontal-user { padding: 10px 12px; }
  .logout-form { align-self: center; justify-self: end; }
}

@media (max-width: 560px) {
  .horizontal-nav.open, .church-dropdown { grid-template-columns: 1fr; }
  .horizontal-user, .logout-form { grid-column: 1 / -1; }
  .logout-form { width: 100%; }
  .logout-form button { width: 100%; }
}

/* Formulaire membre détaillé */
.member-form { display: grid; gap: 18px; }
.member-form-heading { margin-bottom: 20px; }
.member-form-heading h1 { margin: 0; }
.member-form-heading > p:last-child { margin: 8px 0 0; color: var(--muted); }
.section-eyebrow { margin: 0 0 6px; color: var(--green); font-size: .875rem; font-weight: 700; }
.form-section { margin: 0; }
.form-section h2 { margin: 0; font-size: 1.1rem; }
.form-section h2 + .form-grid, .form-section h2 + .social-formset { margin-top: 16px; }
.form-section > p { margin: 6px 0 18px; color: var(--muted); font-size: .875rem; }
.section-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.section-title-row p { margin: 6px 0 0; color: var(--muted); font-size: .875rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.form-field-wide { grid-column: 1 / -1; }
.form-field label { display: block; margin-bottom: 7px; font-size: .875rem; font-weight: 600; }
.form-field input:not([type='checkbox']):not([type='radio']), .form-field select, .form-field textarea { display: block; width: 100%; padding: 11px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font: inherit; }
.form-field textarea { min-height: 86px; resize: vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--green); outline: 3px solid var(--green-soft); }
.form-field > small { display: block; margin-top: 5px; color: var(--muted); font-size: .75rem; }
.form-field .errorlist { margin: 6px 0 0; padding: 0; list-style: none; color: var(--danger); font-size: .8rem; }
.social-formset { display: grid; gap: 12px; }
.social-row { display: grid; grid-template-columns: 1fr 1fr 2fr 1fr auto; align-items: end; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--green-muted); }
.delete-field { padding-bottom: 11px; white-space: nowrap; }
.member-form-actions { padding: 4px 0 20px; }
@media (max-width: 760px) {
  .form-grid, .social-row { grid-template-columns: 1fr; }
  .delete-field { padding-bottom: 0; }
  .section-title-row { flex-direction: column; }
}

[hidden] { display: none !important; }

/* Messages */
.notice.success { border-color: #b2ccff; background: var(--green-soft); color: var(--green-dark); }
.notice.warning { border-color: #f5d08a; background: #fff8e6; color: #8a4b00; }
.notice.error { border-color: #f3b4ae; background: #fef3f2; color: var(--danger); }

/* Activités */
button, .button { background: var(--green); }
button:hover, .button:hover { background: var(--green-dark); }
.button { display: inline-flex; align-items: center; gap: 6px; }
.heading-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.heading-actions .button { display: inline-flex; align-items: center; gap: 6px; }
.heading-actions button { font: inherit; }
.button.secondary { background: var(--green-muted); color: var(--green-dark); }
.button.secondary:hover { background: var(--green-soft); }
.event-filters { margin-bottom: 18px; }
.event-filters .filter-grid { grid-template-columns: 2fr repeat(3, minmax(120px, 1fr)) auto; }
.event-filters .plain-input { padding-left: 11px; }
.event-filters button { height: 42px; background: var(--green); }
.event-list { padding-top: 4px; padding-bottom: 4px; }
.event-list .event-row:first-child { border-top: 0; }
.event-metrics { display: flex; gap: 12px; color: var(--muted); font-size: .75rem; }
.event-metrics span { display: inline-flex; align-items: center; gap: 4px; }
.event-metrics iconify-icon { font-size: 1rem; }
.status-pill.status-closed { background: #f2f4f7; color: var(--muted); }
.status-pill.status-cancelled { background: #fef3f2; color: var(--danger); }
.status-pill.status-draft { background: #fff8e6; color: #8a4b00; }
.status-pill.status-in_progress { background: var(--blue-soft); color: var(--blue-dark); }
.event-detail-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(240px, 1fr); gap: 18px; margin-bottom: 18px; }
.event-summary h2 { margin: 0; font-size: 1.4rem; }
.event-theme { margin: 8px 0 0; color: var(--green-dark); font-weight: 600; }
.event-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin: 18px 0; }
.event-facts dt { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: .75rem; }
.event-facts dd { margin: 4px 0 0; font-size: .9rem; font-weight: 600; }
.event-verses { display: flex; gap: 10px; margin: 0 0 14px; padding: 12px 14px; border-left: 3px solid var(--green); border-radius: 0 8px 8px 0; background: var(--green-muted); font-style: italic; }
.event-description { margin: 0; color: var(--ink); line-height: 1.6; }
.event-attendance h3 { margin: 0 0 8px; font-size: 1rem; }
.attendance-total { display: block; color: var(--green); font-size: 2.2rem; }
.event-attendance p { margin: 4px 0 12px; color: var(--muted); font-size: .8rem; }
.event-attendance a { color: var(--green); font-size: .85rem; font-weight: 700; }
.goal-bar { height: 8px; overflow: hidden; border-radius: 99px; background: var(--green-muted); }
.goal-bar span { display: block; height: 100%; background: var(--green); }
.program-timeline { margin: 0; padding: 0; list-style: none; }
.program-timeline li { display: flex; gap: 16px; padding: 12px 0; border-top: 1px solid var(--line); }
.program-timeline time { flex: 0 0 104px; color: var(--green); font-size: .85rem; font-weight: 700; }
.program-timeline strong, .program-timeline small { display: block; }
.program-timeline small { margin-top: 3px; color: var(--muted); font-size: .78rem; }
.program-row { grid-template-columns: 2fr 1fr 1fr 1.4fr 1.4fr auto; }

/* Agenda */
.agenda-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-bottom: 14px; color: var(--muted); font-size: .78rem; }
.agenda-dot { display: inline-block; width: 10px; height: 10px; margin-right: -8px; border-radius: 50%; background: var(--green); }
.agenda { display: grid; gap: 12px; }
.agenda-day { padding: 16px 20px; }
.agenda-day.is-today { border-color: var(--green); }
.agenda-day h3 { display: flex; align-items: baseline; gap: 10px; margin: 0 0 8px; font-size: 1rem; }
.agenda-day h3 span { color: var(--green); font-size: 1.4rem; font-weight: 800; }
.agenda-day h3 small { color: var(--muted); font-weight: 400; }
.agenda-day ul { margin: 0; padding: 0; list-style: none; }
.agenda-entry > a, .agenda-entry > div { display: flex; gap: 14px; padding: 10px 12px; border-left: 3px solid var(--green); border-radius: 0 8px 8px 0; color: var(--ink); }
.agenda-entry + .agenda-entry { margin-top: 6px; }
.agenda-entry > a:hover { background: var(--green-muted); }
.agenda-entry time { flex: 0 0 96px; color: var(--muted); font-size: .8rem; font-weight: 700; }
.agenda-entry strong, .agenda-entry small { display: block; }
.agenda-entry small { margin-top: 2px; color: var(--muted); font-size: .75rem; }
.kind-meeting.agenda-dot, .agenda-entry.kind-meeting > * { border-color: var(--blue); }
.agenda-dot.kind-meeting { background: var(--blue); }
.agenda-entry.kind-prayer > * { border-color: #9e77ed; }
.agenda-dot.kind-prayer { background: #9e77ed; }
.agenda-entry.kind-training > * { border-color: #dc6803; }
.agenda-dot.kind-training { background: #dc6803; }

/* Pointage */
.checkin-event { margin-bottom: 18px; }
.checkin-event label span { display: block; margin-bottom: 6px; font-size: .75rem; font-weight: 700; }
.checkin-event select, .checkin-form input, .checkin-form select { width: 100%; height: 46px; padding: 0 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font: inherit; }
.muted-text { color: var(--muted); font-size: .82rem; }
.checkin-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(240px, 1fr); gap: 18px; }
.segmented { display: grid; grid-auto-columns: 1fr; grid-auto-flow: column; gap: 4px; margin-bottom: 12px; padding: 4px; border-radius: 10px; background: var(--green-muted); }
.segmented a { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 10px; border-radius: 8px; color: var(--ink); font-size: .875rem; font-weight: 600; }
.segmented a.active { background: #fff; color: var(--green-dark); box-shadow: 0 1px 4px #1b2a3a1a; }
.segmented.tabs { background: #f2f4f7; }
.checkin-form { display: grid; gap: 14px; margin-top: 18px; }
.checkin-form .form-field span { display: block; margin-bottom: 6px; font-size: .8rem; font-weight: 700; }
.checkin-submit { height: 50px; background: var(--green); font-size: 1rem; font-weight: 700; }
.scanner { position: relative; overflow: hidden; aspect-ratio: 1; max-width: 360px; width: 100%; margin: 0 auto; border-radius: 14px; background: #000; }
.scanner video { width: 100%; height: 100%; object-fit: cover; }
.scanner-frame { position: absolute; inset: 18%; border: 3px solid #ffffffd9; border-radius: 14px; box-shadow: 0 0 0 999px #0006; }
.scanner-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.checkin-side h3 { margin: 0; font-size: 1.05rem; }
.checkin-side h4 { margin: 18px 0 6px; font-size: .85rem; }
.checkin-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.checkin-stats div { padding: 12px; border-radius: 10px; background: var(--green-muted); text-align: center; }
.checkin-stats strong { display: block; color: var(--green); font-size: 1.6rem; }
.checkin-stats span { color: var(--muted); font-size: .75rem; }
.recent-passages { margin: 0; padding: 0; list-style: none; }
.recent-passages li { padding: 8px 0; border-top: 1px solid var(--line); font-size: .85rem; }
.recent-passages small { display: block; color: var(--muted); font-size: .75rem; }

@media (max-width: 860px) {
  .event-detail-grid, .checkin-layout { grid-template-columns: 1fr; }
  .event-filters .filter-grid { grid-template-columns: 1fr 1fr; }
  .event-metrics { display: none; }
  .program-row { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .event-filters .filter-grid { grid-template-columns: 1fr; }
  .page-heading { flex-direction: column; align-items: stretch; }
  .program-timeline li, .agenda-entry > a, .agenda-entry > div { flex-direction: column; gap: 4px; }
  .program-timeline time, .agenda-entry time { flex: none; }
}

/* Membres : visiteurs, demandes d'adhésion, transferts, import/export */
.form-field label.required::after { content: " *"; color: var(--danger); }
.form-field[hidden] { display: none; }
.choice-buttons { display: flex; flex-wrap: wrap; gap: 10px; }
.choice-buttons label { display: flex; align-items: center; gap: 8px; min-width: 110px; margin: 0; padding: 11px 16px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-weight: 600; cursor: pointer; }
.choice-buttons label:has(input:checked) { border-color: var(--green); background: var(--green-soft); color: var(--green); }
.choice-buttons input, .check-field input { accent-color: var(--green); width: 18px; height: 18px; margin: 0; }
.check-field { align-self: end; }
.check-field label { display: flex; align-items: center; gap: 10px; margin: 0; padding: 11px 0; cursor: pointer; }
.step-badge { display: inline-grid; width: 26px; height: 26px; margin-right: 6px; place-items: center; border-radius: 50%; background: var(--green-soft); color: var(--green); font-size: .8rem; vertical-align: middle; }
.consent-section { border-left: 4px solid var(--green); }
.stat-note { margin: 8px 0 0; color: var(--muted); font-size: .72rem; }
.muted { color: var(--muted); font-weight: 400; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.button.danger, button.danger { background: var(--danger); }
.status-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.status-tabs a { padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-size: .8rem; font-weight: 700; }
.status-tabs a span { margin-left: 4px; color: var(--muted); }
.status-tabs a.active { border-color: var(--green); background: var(--green-soft); color: var(--green); }
.transfer-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 16px 0 0; }
.transfer-summary dt { color: var(--muted); font-size: .72rem; }
.transfer-summary dd { margin: 4px 0 0; }
.member-history { margin-top: 18px; }
.member-history h3 { display: flex; align-items: center; gap: 7px; margin: 0 0 10px; font-size: 1rem; }
.member-history ul { display: grid; gap: 8px; margin: 0; padding-left: 18px; font-size: .82rem; }
.member-history small { display: block; color: var(--muted); }
.member-history .program-timeline { padding-left: 0; }
.access-form { display: grid; gap: 6px; margin-top: 14px; }
.dashboard-actions { margin-top: 24px; }
.space-stats + .dashboard-actions { margin: 0 0 24px; }
.dashboard-actions .panel-heading { margin-bottom: 12px; }
.dashboard-actions .panel-heading h3 { margin: 0; }
.dashboard-actions .panel-heading p { margin: 4px 0 0; color: var(--muted); font-size: .85rem; }
.action-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin-bottom: 20px; }
.action-card { display: grid; gap: 8px; color: inherit; text-decoration: none; }
.action-card:hover { border-color: var(--green); }
.action-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.action-card small, .action-card p { margin: 0; color: var(--muted); font-size: .8rem; }
.finance-stats .goal-bar { margin: 10px 0 6px; }
.finance-table .panel-heading { padding: 16px 18px 4px; }
.finance-table .panel-heading h3 { margin: 0; }
.space-stats { grid-template-columns: repeat(4, 1fr); }
.space-stats .stat-card strong { font-size: 1.45rem; white-space: nowrap; }
.member-history .goal-bar { margin: 8px 0 4px; }
@media (max-width: 1050px) { .space-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .space-stats { grid-template-columns: 1fr; } }
.access-password { font-family: ui-monospace, monospace; font-size: 1.25rem; letter-spacing: .08em; }
.profile-information dd small { display: block; margin-top: 3px; color: var(--muted); }
.import-export-grid { display: grid; grid-template-columns: 1fr 2fr; gap: 18px; align-items: start; }
.import-export-grid h2 { display: flex; align-items: center; gap: 7px; }
.import-result { margin-top: 18px; font-size: .85rem; }
.import-result h3 { font-size: .9rem; }
.error-list { color: var(--danger); }
.reject-form { margin-top: 18px; }
.public-shell { max-width: 980px; margin: 0 auto; padding: 32px 16px 48px; }
.signup-done { max-width: 560px; margin: 8vh auto; text-align: center; }
.signup-done .profile-photo-fallback { margin: 0 auto 12px; }
@media (max-width: 760px) {
  .transfer-summary, .import-export-grid { grid-template-columns: 1fr; }
  .member-form-actions { flex-wrap: wrap; }
}

/* G12 : réseau, présences, rapports */
.g12-tree-card { overflow-x: auto; }
.g12-tree, .g12-tree ul { margin: 0; padding: 0; list-style: none; }
.g12-tree ul { margin-left: 22px; padding-left: 16px; border-left: 2px solid var(--green-muted); }
.g12-node { margin: 8px 0; }
.g12-node-card { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.g12-node-card small { color: var(--muted); font-size: .72rem; }
.g12-count { padding: 2px 8px; border-radius: 999px; background: var(--green-soft); color: var(--green); font-size: .72rem; font-weight: 700; }
.g12-node.is-full > .g12-node-card .g12-count { background: var(--green); color: #fff; }
.g12-total { color: var(--muted); font-size: .72rem; }
.g12-more { margin: 4px 0 0 22px; font-size: .78rem; }
.g12-row-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.g12-row-actions form { margin: 0; }
.link-button { padding: 0; border: 0; background: none; color: var(--danger); font: inherit; font-size: .82rem; font-weight: 600; cursor: pointer; }
.g12-marks { display: flex; flex-wrap: wrap; gap: 6px; }
.g12-mark { padding: 4px 8px; border-radius: 6px; background: var(--line); color: var(--muted); font-size: .72rem; font-weight: 700; }
.g12-mark.is-present { background: var(--green-soft); color: var(--green); }
.g12-presence th, .g12-presence .g12-cell { text-align: center; }
.g12-presence th:first-child, .g12-presence td:first-child { text-align: left; }
.g12-presence td small { display: block; color: var(--muted); font-size: .7rem; }
.g12-dot { display: inline-grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: var(--line); color: var(--muted); font-weight: 700; }
.g12-dot.is-present { background: var(--green); color: #fff; }
.g12-report-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.g12-report-grid .member-history { margin-top: 0; }
.g12-growth { display: flex; align-items: flex-end; gap: 6px; height: 150px; }
.g12-growth > div { display: grid; flex: 1; gap: 4px; height: 100%; grid-template-rows: auto 1fr auto; text-align: center; }
.g12-growth strong { color: var(--green); font-size: .72rem; }
.g12-growth span { display: flex; align-items: flex-end; overflow: hidden; border-radius: 6px 6px 2px 2px; background: var(--green-muted); }
.g12-growth i { display: block; width: 100%; background: var(--green); }
.g12-growth small { color: var(--muted); font-size: .66rem; }
.g12-note-panel { text-align: left; }
.g12-note-panel .form-grid { grid-template-columns: 1fr; }
.members-actions .g12-input { width: auto; min-width: 220px; background: #fff; }
.g12-input { width: 100%; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: .82rem; }
@media (max-width: 760px) { .g12-report-grid { grid-template-columns: 1fr; } .g12-tree ul { margin-left: 8px; padding-left: 10px; } }
.g12-followups td small { display: block; margin-top: 2px; color: var(--muted); font-size: .72rem; }
.g12-followups tr.has-alert td:first-child { box-shadow: inset 3px 0 0 var(--danger); }
.g12-alert { display: inline-block; margin: 0 4px 4px 0; padding: 3px 8px; border-radius: 999px; background: #fef3f2; color: var(--danger); font-size: .72rem; font-weight: 700; }
.g12-ok { display: inline-block; padding: 3px 8px; border-radius: 999px; background: var(--green-soft); color: var(--green); font-size: .72rem; font-weight: 700; }
.g12-alert-card strong { color: var(--danger); }
.g12-tree-tools { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.g12-tree-tools .g12-input { flex: 1 1 240px; }
.g12-tree details > summary { display: flex; align-items: center; list-style: none; cursor: pointer; }
.g12-tree details > summary .g12-node-card { min-width: 0; }
.g12-tree details > summary::-webkit-details-marker { display: none; }
.g12-tree details > summary::before { content: '▸'; display: inline-block; flex: 0 0 18px; width: 18px; color: var(--green); font-weight: 700; transition: transform .15s; }
.g12-tree details[open] > summary::before { transform: rotate(90deg); }
.g12-leaf { padding-left: 18px; }
.g12-slots { display: inline-grid; grid-template-columns: repeat(12, 8px); gap: 2px; }
.g12-slots i { display: block; height: 10px; border-radius: 2px; background: var(--green-muted); }
.g12-slots i.is-taken { background: var(--green); }
.g12-node.is-match > details > summary .g12-node-card, .g12-node.is-match > .g12-leaf .g12-node-card { border-color: var(--green); box-shadow: 0 0 0 3px var(--green-soft); }
@media (min-width: 761px) { .g12-tree .g12-node-card > a { display: inline-block; min-width: 230px; } .g12-tree .g12-node-card > small { display: inline-block; min-width: 110px; } }

/* Mon Église : programme éditable, fiche église, lieux */
.program-card .panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.program-moderation { margin-top: 6px; color: var(--ink, inherit); }
.moderation-ref iconify-icon { vertical-align: -2px; margin-right: 2px; }
.mod-cultes a { overflow-wrap: anywhere; }
.program-timeline li { position: relative; }
.program-item-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; font-size: .8rem; }
.program-item-actions form { margin: 0; }
.program-add { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.program-add h4 { margin: 0 0 10px; font-size: .95rem; }
.church-facts dl { display: grid; gap: 10px; margin: 10px 0 18px; }
.church-facts dt { color: var(--muted); font-size: .72rem; }
.church-facts dd { margin: 2px 0 0; }
.church-facts h3 { margin: 0; font-size: 1rem; }
.church-venues { margin: 8px 0 16px; padding-left: 18px; font-size: .85rem; }
@media print {
  .no-print, .member-detail-actions, .event-attendance { display: none !important; }
  .program-card { border: 0; box-shadow: none; }
}

/* Ma Bible */
.bible-empty { display: grid; justify-items: center; gap: 6px; padding: 40px 20px; text-align: center; }
.bible-empty iconify-icon { color: var(--green); font-size: 2rem; }
.bible-empty h3, .bible-empty p { margin: 0; }
.bible-toolbar { display: grid; grid-template-columns: minmax(180px, 260px) minmax(0, 1fr) auto; align-items: end; gap: 12px; margin-bottom: 18px; padding: 16px; }
.bible-toolbar button { display: inline-flex; height: 42px; align-items: center; gap: 6px; }
.bible-field > span { display: block; margin-bottom: 6px; font-size: .75rem; font-weight: 700; }
.bible-field select, .bible-field input { width: 100%; height: 42px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font: inherit; font-size: .875rem; }
.bible-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); align-items: start; gap: 18px; }
.bible-nav { position: sticky; top: 88px; display: grid; gap: 14px; padding: 16px; }
.bible-nav-label { margin: 0; font-size: .75rem; font-weight: 700; }
.bible-chapters { display: grid; grid-template-columns: repeat(auto-fill, minmax(38px, 1fr)); gap: 6px; max-height: 300px; overflow-y: auto; }
.bible-chapters a { display: grid; height: 34px; place-items: center; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); font-size: .8rem; }
.bible-chapters a:hover { border-color: var(--green); color: var(--green); }
.bible-chapters a.active { border-color: var(--green); background: var(--green); color: #fff; font-weight: 700; }
.bible-text { padding: 22px 26px; }
.bible-text-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.bible-text-head h3 { margin: 2px 0 0; color: var(--green-dark); font-size: 1.6rem; }
.bible-text-head .section-eyebrow { margin: 0; }
.bible-pager { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.bible-pager .button { padding: 8px 12px; font-size: .8rem; }
.bible-verses { margin: 0; padding: 0; list-style: none; font-size: 1.02rem; line-height: 1.75; }
.bible-verses li[data-number] { margin: 0 -10px; padding: 4px 10px; border-radius: 8px; cursor: pointer; }
.bible-verses li[data-number]:hover { background: var(--green-muted); }
.bible-verses li.highlight { background: #fff6dd; }
.bible-verses li.selected { background: var(--green-soft); box-shadow: inset 3px 0 0 var(--green); }
.bible-verses sup { margin-right: 6px; color: var(--green); font-size: .7rem; font-weight: 800; }
.bible-text.compared .bible-verses li[data-number] { display: grid; grid-template-columns: 28px minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.bible-text.compared .bible-verses sup { margin: 6px 0 0; }
.bible-verse-other { color: #344054; }
.bible-columns-head { display: grid; grid-template-columns: 28px 1fr 1fr; gap: 16px; margin-bottom: 6px; color: var(--muted); font-size: .72rem; font-weight: 800; }
.bible-columns-head span:first-child { grid-column: 2; }
.bible-copybar { position: sticky; bottom: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 16px; padding: 10px 12px; border: 1px solid var(--green); border-radius: 12px; background: #fff; box-shadow: 0 6px 20px #1b2a3a1f; }
.bible-copybar[hidden] { display: none; }
.bible-copy-ref { flex: 1; color: var(--green-dark); font-weight: 700; }
.bible-results h3 { margin: 0 0 10px; }
.bible-results h3 small { color: var(--muted); font-size: .75rem; }
.bible-results ol { display: grid; gap: 10px; margin: 0; padding-left: 20px; line-height: 1.6; }
.bible-import-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(240px, 1fr); align-items: start; gap: 18px; }
.bible-import-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.bible-import-form > button { grid-column: 1 / -1; justify-self: start; display: inline-flex; align-items: center; gap: 6px; }
.bible-check { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.bible-import-help h3 { margin: 0 0 8px; font-size: 1rem; }
.bible-import-help ul { margin: 0 0 18px; padding-left: 18px; font-size: .85rem; line-height: 1.6; }
.bible-import-help small { color: var(--muted); }
@media (max-width: 860px) {
  .bible-toolbar { grid-template-columns: 1fr; }
  .bible-layout, .bible-import-layout { grid-template-columns: 1fr; }
  .bible-nav { position: static; }
  .bible-chapters { max-height: 150px; }
  .bible-text { padding: 16px; }
  .bible-text-head { flex-direction: column; }
  .bible-pager { justify-content: flex-start; }
  .bible-text.compared .bible-verses li[data-number] { grid-template-columns: 22px minmax(0, 1fr); gap: 4px 10px; }
  .bible-text.compared .bible-verse-other { grid-column: 2; padding-top: 4px; border-top: 1px dashed var(--line); }
  .bible-columns-head { display: none; }
  .bible-import-form { grid-template-columns: 1fr; }
}

/* Guide de prière (réutilise les styles de Ma Bible) */
.guide-toc { display: grid; gap: 2px; max-height: 60vh; overflow-y: auto; }
.guide-toc a { display: block; padding: 6px 8px; border-radius: 8px; color: var(--ink); font-size: .78rem; line-height: 1.35; }
.guide-toc a:hover { background: var(--green-muted); color: var(--green-dark); }
.guide-toc a.level-1 { font-weight: 700; }
.guide-toc a.level-2 { padding-left: 18px; color: #475467; }
.guide-toc small { color: var(--muted); font-weight: 400; white-space: nowrap; }
.guide-intro { margin: 0 0 18px; padding: 14px 16px; border-radius: 10px; background: var(--green-soft); color: var(--green-dark); font-weight: 600; line-height: 1.6; }
.guide-section { scroll-margin-top: 90px; }
.guide-section h3 { margin: 22px 0 10px; color: var(--green-dark); font-size: 1.05rem; }
.guide-section h4 { margin: 16px 0 8px; color: #475467; font-size: .9rem; letter-spacing: .02em; }
.guide-notes { margin: 0 0 12px; font-style: italic; line-height: 1.6; }
.guide-points { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.guide-point { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: start; gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; scroll-margin-top: 90px; }
.guide-point:target { border-color: var(--green); box-shadow: inset 3px 0 0 var(--green); }
.guide-number { display: grid; height: 34px; place-items: center; border-radius: 8px; background: var(--green); color: #fff; font-weight: 800; font-variant-numeric: tabular-nums; }
.guide-point-text { margin: 0 0 8px; font-weight: 600; line-height: 1.55; }
.guide-section-name { margin: 0 0 4px; color: var(--muted); font-size: .72rem; font-weight: 700; text-transform: uppercase; }
.guide-scripture { padding: 8px 12px; border-left: 3px solid #84adff; background: #f5f8ff; color: #344054; font-size: .9rem; line-height: 1.55; }
.guide-scripture p { margin: 0 0 6px; }
.guide-scripture p:last-child { margin: 0; }
.guide-copy, .guide-full { padding: 6px 12px; font-size: .78rem; }
.guide-point-actions { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.guide-full { display: inline-flex; align-items: center; justify-content: center; padding: 6px 10px; font-size: 1rem; }
.guide-reset { margin-left: 8px; font-size: .8rem; font-weight: 600; }
@media (max-width: 860px) {
  .guide-toc { max-height: 220px; }
  .guide-point { grid-template-columns: 42px minmax(0, 1fr); }
  .guide-point-actions { grid-column: 2; flex-direction: row; justify-self: start; }
}
/* Culte : liste, fiche et comptage */
.culte-highlights { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.culte-highlight { padding: 18px; }
.culte-highlight h3 { margin: 4px 0; font-size: 1.05rem; }
.culte-highlight p { margin: 4px 0 0; color: var(--muted); font-size: .85rem; }
.culte-total strong { color: var(--green); font-size: 1.4rem; }
.culte-card { margin-bottom: 20px; }
.culte-card .heading-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.culte-card .heading-actions form { margin: 0; }
.culte-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.culte-count { padding: 14px; border-radius: 12px; background: var(--green-muted); }
.culte-count p { margin: 2px 0 10px; color: var(--muted); font-size: .8rem; }
.culte-split { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; font-size: .85rem; }
.culte-form h3 { margin: 18px 0 10px; font-size: 1rem; }
.culte-form h3:first-of-type { margin-top: 0; }
.culte-live-total { margin: 12px 0 0; font-size: 1rem; }
.culte-live-total strong { color: var(--green); font-size: 1.4rem; }
.culte-history { margin-top: 16px; }
@media (max-width: 760px) { .culte-highlights, .culte-grid { grid-template-columns: minmax(0, 1fr); } }
/* Formations : catalogue et lecture d'un cours */
.fo-section { margin-bottom: 16px; }
.fo-section h3 { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: 0 0 12px; }
.fo-mod-num { color: var(--green); font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.fo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.fo-gate { display: flex; flex-direction: column; gap: 6px; min-width: 0; padding: 12px 14px; border: 1px solid var(--line); border-left-width: 4px; border-radius: 12px; color: var(--ink); background: #fff; }
.fo-gate:hover { border-color: var(--green); }
.fo-gate.fo-done { border-left-color: #12b76a; }
.fo-gate.fo-doing { border-left-color: #2e90fa; background: #f5faff; }
.fo-gate.fo-locked { opacity: .7; background: #f9fafb; }
.fo-gate strong { line-height: 1.3; }
.fo-code { color: var(--muted); font-family: ui-monospace, monospace; font-size: .75rem; }
.fo-doc { display: flex; align-items: center; gap: 6px; color: #475467; }
.fo-meta { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: auto; }
.fo-meta small { color: var(--muted); }
.status-pill.status-draft { background: #f2f4f7; color: #475467; }
.fo-subtitle { margin: 2px 0 6px; color: #475467; font-size: 1.05rem; font-style: italic; }
.fo-toc { display: grid; gap: 2px; max-height: 70vh; overflow-y: auto; }
.fo-toc a { display: block; padding: 6px 8px; border-radius: 8px; color: var(--ink); font-size: .8rem; line-height: 1.35; }
.fo-toc a:hover { background: var(--green-muted); }
.fo-toc a.current { background: var(--green-soft); box-shadow: inset 3px 0 0 var(--green); font-weight: 700; }
.fo-toc a.fo-toc-part { padding-left: 20px; color: #475467; font-size: .76rem; }
.fo-toc a.fo-toc-read { color: #067647; }
.fo-st { display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 999px; font-size: .66rem; font-weight: 700; white-space: nowrap; }
.fo-st-read { background: #ecfdf3; color: #067647; }
.fo-st-current { background: #eff8ff; color: #175cd3; }
.fo-st-todo { background: #f2f4f7; color: #667085; }
.fo-toc .fo-st-todo { display: none; }
.fo-pager { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 16px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: #f9fafb; }
.fo-pager .button { display: inline-flex; align-items: center; gap: 4px; }
.fo-pager-pos { color: var(--muted); font-size: .8rem; font-weight: 700; }
.fo-chapter-head { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; background: var(--green-soft); }
.fo-chapter-head h3 { margin: 0; color: var(--green-dark); }
.fo-chapter-head .section-eyebrow { margin: 0; }
.fo-chapter-head .fo-st { margin-left: auto; }
.fo-roman { display: grid; width: 44px; height: 44px; flex: none; place-items: center; border-radius: 10px; background: var(--green); color: #fff; font-weight: 800; }
.fo-part { margin: 20px 0 0 14px; padding-left: 14px; border-left: 2px solid var(--green-soft); scroll-margin-top: 90px; }
.fo-part h4 { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; }
.fo-code-badge { flex: none; padding: 3px 8px; border-radius: 8px; background: var(--green); color: #fff; font-size: .75rem; font-weight: 800; }
.fo-page { line-height: 1.65; }
.fo-page p { margin: 0 0 10px; }
.fo-h { margin: 14px 0 8px; color: var(--green-dark); }
.fo-list { margin: 0 0 12px; padding-left: 22px; }
.fo-list li { margin-bottom: 6px; }
.fo-ref { color: #175cd3; font-weight: 600; text-decoration: underline dotted; }
.fo-box { margin: 12px 0; padding: 10px 14px; border-left: 4px solid #98a2b3; border-radius: 10px; background: #f9fafb; }
.fo-box p { margin: 0; }
.fo-box.fo-clef { border-color: #f79009; background: #fffaeb; }
.fo-box.fo-objectif { border-color: #12b76a; background: #ecfdf3; }
.fo-box.fo-retenir { border-color: #7a5af8; background: #f4f3ff; }
.fo-table td { padding: 6px 8px; border: 1px solid var(--line); vertical-align: top; font-size: .85rem; }
.fo-intro { margin-bottom: 16px; padding: 12px 14px; border-radius: 10px; background: var(--green-muted); }
.fo-intro summary { display: flex; align-items: center; gap: 6px; font-weight: 700; cursor: pointer; }
.fo-end { margin-top: 22px; padding: 12px 14px; border-radius: 10px; background: #f9fafb; }
.fo-end p { display: flex; align-items: center; gap: 6px; margin: 0; color: #067647; font-weight: 700; }
.fo-results { margin: 0; padding-left: 18px; }
.fo-toc-plain { margin: 12px auto 0; text-align: left; display: inline-block; }
.fo-import-help { margin: 12px 0 0; padding-left: 18px; color: var(--muted); font-size: .8rem; }
.fo-nocopy .fo-page { -webkit-user-select: none; user-select: none; }
#fo-verse:not([hidden]) { display: grid; }
@media print { .fo-nocopy { display: none !important; } .bible-layout { display: block; } }
@media (max-width: 860px) { .fo-part { margin-left: 0; padding-left: 10px; } .fo-chapter-head { flex-wrap: wrap; } .fo-toc { max-height: 240px; } }
#fo-verse { position: fixed; inset: 0; z-index: 50; place-items: center; padding: 16px; background: rgba(16, 24, 40, .45); }
#fo-verse .confirm-box { width: min(520px, 100%); padding: 20px; border-radius: 14px; background: #fff; box-shadow: 0 20px 40px rgba(16, 24, 40, .2); }
#fo-verse h3 { margin: 0 0 10px; }
#fo-verse p { margin: 0 0 16px; line-height: 1.6; font-style: italic; }
#fo-verse .confirm-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
/* Guide de prière hiérarchisé : thèmes, codes de niveau, pages */
.gd-filters { display: grid; gap: 12px; margin-bottom: 18px; padding: 16px; }
.gd-search { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.gd-search .bible-field { flex: 1; min-width: 220px; max-width: 520px; }
.gd-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.gd-chips-label { width: 84px; color: var(--muted); font-size: .75rem; font-weight: 700; }
.gd-chip { display: inline-flex; align-items: center; padding: 5px 12px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); font-size: .78rem; font-weight: 600; cursor: pointer; }
.gd-chip input { position: absolute; opacity: 0; pointer-events: none; }
.gd-chip.on { border-color: var(--green); background: var(--green); color: #fff; }
.gd-status { margin: 0; color: var(--green-dark); font-size: .8rem; font-weight: 700; }
.th-1 { --th: #1570ef; --th-soft: #eff8ff; }
.th-2 { --th: #079455; --th-soft: #ecfdf3; }
.th-3 { --th: #6938ef; --th-soft: #f4f3ff; }
.gd-toc { display: grid; gap: 6px; max-height: 70vh; overflow-y: auto; }
.gd-toc-theme summary { padding: 8px; border-radius: 8px; background: var(--th-soft); color: var(--th); font-size: .82rem; cursor: pointer; }
.gd-toc-theme summary small, .gd-toc-theme a small { color: var(--muted); font-weight: 400; white-space: nowrap; }
.gd-toc-theme a { display: block; padding: 5px 8px 5px 14px; border-radius: 8px; color: var(--ink); font-size: .76rem; line-height: 1.35; }
.gd-toc-theme a:hover { background: var(--th-soft); }
.gd-toc-theme a b { color: var(--th); }
.gd-toc-theme a.current { background: var(--th-soft); box-shadow: inset 3px 0 0 var(--th); font-weight: 700; }
.gd-top { display: flex; justify-content: flex-end; margin-bottom: 10px; }
.gd-display { display: flex; gap: 6px; }
.gd-pager { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 16px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: #f9fafb; }
.gd-pager-bottom { margin: 20px 0 0; }
.gd-pager .button { display: inline-flex; align-items: center; gap: 4px; padding: 8px 12px; font-size: .8rem; }
.gd-pager .is-disabled { opacity: .45; cursor: default; }
.gd-page-pick { display: flex; flex: 1; min-width: 0; align-items: center; justify-content: center; gap: 6px; color: var(--muted); font-size: .75rem; font-weight: 700; }
.gd-page-pick select { min-width: 0; max-width: 100%; height: 38px; padding: 0 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font: inherit; font-size: .8rem; }
.gd-intro { margin-bottom: 18px; padding: 12px 16px; border-radius: 10px; background: var(--green-soft); color: var(--green-dark); }
.gd-intro summary { display: flex; align-items: center; gap: 6px; font-weight: 700; cursor: pointer; }
.gd-intro p { margin: 10px 0 0; font-style: italic; line-height: 1.6; }
.gd-theme { margin-top: 22px; }
.gd-theme-head { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; background: var(--th-soft); }
.gd-theme-head h3 { margin: 0; color: var(--th); font-size: 1.15rem; }
.gd-theme-head .section-eyebrow { margin: 0; }
.gd-roman { display: grid; width: 44px; height: 44px; flex: none; place-items: center; border-radius: 10px; background: var(--th); color: #fff; font-weight: 800; }
.gd-count { margin-left: auto; color: var(--muted); font-size: .78rem; font-weight: 700; white-space: nowrap; }
.gd-part { margin: 18px 0 0 14px; padding-left: 14px; border-left: 2px solid var(--th-soft); scroll-margin-top: 90px; }
.gd-part-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.gd-part-head > div { flex: 1; min-width: 0; }
.gd-part-head h4 { margin: 0; font-size: 1rem; }
.gd-part-head small { color: var(--muted); font-size: .72rem; }
.gd-code { flex: none; padding: 3px 8px; border-radius: 8px; background: var(--th); color: #fff; font-size: .78rem; font-weight: 800; }
.gd-sub h5 { margin: 12px 0 8px; color: var(--th); font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; }
.gd-point { grid-template-columns: 72px minmax(0, 1fr) auto; }
.gd-pcode { padding: 0 6px; background: var(--th); font-size: .78rem; white-space: nowrap; }
.gd-path { margin: 0 0 4px; color: var(--muted); font-size: .7rem; font-weight: 700; }
.gd-old { margin-left: 6px; padding: 1px 6px; border-radius: 6px; background: #fffaeb; color: #93370d; font-size: .68rem; }
.gd-tags { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 0 0; }
.gd-tags span { padding: 2px 8px; border-radius: 999px; background: var(--th-soft); color: var(--th); font-size: .72rem; font-weight: 700; }
@media (max-width: 860px) {
  .gd-toc { max-height: 240px; }
  .gd-chips-label { width: 100%; }
  .gd-part { margin-left: 0; padding-left: 10px; }
  .gd-theme-head, .gd-part-head { flex-wrap: wrap; }
  .gd-point { grid-template-columns: 64px minmax(0, 1fr); }
  .gd-pager .button span, .gd-page-pick > span { display: none; }
  .gd-page-pick select { width: 100%; }
}

/* Sous-menu dont seule la maquette existe */
.side-submenu a.nav-mockup small { margin-left: 4px; padding: 1px 6px; border-radius: 999px; background: #f2f4f7; color: #667085; font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }

/* Séminaire (Mon Église) */
.sem-current { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.sem-current h3, .sem-current p { margin: 4px 0 0; }
.sem-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.sem-actions .button { display: inline-flex; align-items: center; gap: 6px; }
.status-pill.sem-status-draft, .status-pill.sem-status-submitted { background: #fff8e6; color: #8a4b00; }
.status-pill.sem-status-refused { background: #fef3f2; color: var(--danger); }
.status-pill.sem-status-validated { background: #ecfdf3; color: #067647; }
.status-pill.sem-status-closed { background: #f2f4f7; color: var(--muted); }
.sem-steps { display: flex; gap: 6px; margin: 0 0 16px; padding: 0; list-style: none; counter-reset: step; overflow-x: auto; }
.sem-steps li { flex: 1; min-width: 110px; padding: 8px 10px; border-radius: 8px; background: #f2f4f7; color: var(--muted); font-size: .78rem; font-weight: 700; counter-increment: step; }
.sem-steps li::before { content: counter(step) ". "; }
.sem-steps li.done { background: var(--green-soft); color: var(--green); }
.sem-steps li.on { background: var(--green); color: #fff; }
.sem-alerts ul { margin: 6px 0 0; padding-left: 18px; }
.sem-workflow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 18px; padding: 14px 16px; }
.sem-workflow form { margin: 0; }
.sem-workflow .button, .sem-workflow button { display: inline-flex; align-items: center; gap: 6px; }
.sem-workflow p { margin: 0; }
.sem-refuse summary { list-style: none; cursor: pointer; }
.sem-refuse[open] form { display: grid; gap: 8px; margin-top: 10px; min-width: min(420px, 80vw); }
.sem-refuse textarea { width: 100%; padding: 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.sem-stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.sem-stats small, .sem-kpis small { display: block; color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; }
.sem-stats strong { display: block; margin-top: 6px; color: var(--green); font-size: 1.4rem; }
.sem-section-title { margin: 8px 0 12px; }
.sem-week { margin-bottom: 16px; }
.sem-week > header { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.sem-week h3 { margin: 2px 0; }
.sem-week header p { margin: 2px 0; }
.sem-goal { align-self: flex-start; padding: 4px 10px; border-radius: 999px; background: var(--green-soft); color: var(--green); font-size: .75rem; font-weight: 700; white-space: nowrap; }
.sem-day { margin-top: 12px; }
.sem-day-title { margin: 0 0 6px; font-weight: 800; }
.sem-day-title::first-letter { text-transform: uppercase; }
.sem-day-title a { margin-left: 8px; font-size: .75rem; font-weight: 600; text-transform: none; }
.sem-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: .82rem; }
.sem-table th { color: var(--muted); font-size: .7rem; text-transform: uppercase; }
.sem-table th, .sem-table td { padding: 8px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.sem-table td small { display: block; margin-top: 2px; color: var(--muted); font-size: .72rem; }
.sem-table tr.sem-off td { background: #f9fafb; color: var(--muted); }
.sem-missing { color: var(--danger); font-weight: 700; }
.sem-row-actions { white-space: nowrap; text-align: right; }
.sem-row-actions a { display: inline-flex; align-items: center; margin-left: 6px; }
.sem-row-actions .button { padding: 5px 10px; font-size: .75rem; }
.sem-notes h3 { margin: 12px 0 4px; font-size: .95rem; }
.sem-checks ul { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 6px 0 0; padding: 0; list-style: none; }
.sem-checks label { font-weight: 600; }
.sem-date input { height: 38px; padding: 0 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
/* Tableau de bord */
.sem-board { display: grid; gap: 14px; }
.sem-board:fullscreen { height: 100vh; padding: 2vh 2vw; overflow: hidden; background: var(--canvas); grid-template-rows: auto auto 1fr; }
.sem-board-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.sem-board-head h2 { margin: 2px 0; font-size: 1.6rem; }
.sem-board-head p { margin: 2px 0; }
.sem-verse { max-width: 40%; padding: 10px 14px; border-left: 4px solid var(--green); background: #fff; font-style: italic; }
.sem-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.sem-kpis .card { padding: 14px 16px; }
.sem-kpis strong { display: block; margin-top: 4px; color: var(--green); font-size: 2rem; line-height: 1.1; }
.sem-kpis span { color: var(--muted); font-size: .78rem; }
.sem-board-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 14px; min-height: 0; }
.sem-board-grid .card { min-height: 0; overflow: auto; }
.sem-board-grid h3 { margin: 0 0 10px; }
.sem-next { margin: 0 0 10px; padding: 8px 12px; border-radius: 8px; background: var(--green-soft); color: var(--green-dark); }
.sem-today { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sem-today li { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; }
.sem-today li.sem-off { background: #f9fafb; color: var(--muted); }
.sem-today small { display: block; color: var(--muted); font-size: .75rem; }
.sem-time { color: var(--green); font-weight: 800; }
.sem-count { font-size: 1.3rem; font-weight: 800; color: var(--ink); }
.sem-count .button { padding: 6px 10px; font-size: .78rem; }
.sem-curve { position: relative; display: flex; align-items: flex-end; gap: 4px; height: 180px; padding-top: 18px; border-bottom: 1px solid var(--line); }
.sem-bar { position: relative; flex: 1; min-width: 6px; max-width: 48px; border-radius: 4px 4px 0 0; background: #b2ccff; }
.sem-bar.on { background: var(--green); }
.sem-bar span { position: absolute; top: -16px; left: 50%; transform: translateX(-50%); font-size: .62rem; color: var(--muted); }
.sem-goal-line { position: absolute; left: 0; right: 0; border-top: 2px dashed #f79009; }
.sem-curve-legend { margin: 6px 0 12px; font-size: .75rem; }
/* Rapport */
.sem-report { max-width: 960px; margin: 0 auto; }
.sem-report h2 { margin: 22px 0 8px; font-size: 1.05rem; }
.sem-report h3 { margin: 14px 0 4px; font-size: .95rem; }
.sem-report-cover { display: grid; justify-items: center; gap: 4px; padding-bottom: 16px; border-bottom: 1px solid var(--line); text-align: center; }
.sem-report-cover h1 { margin: 8px 0 0; font-size: 1.5rem; }
.sem-report-cover p { margin: 0; }
.sem-report-theme { font-size: 1.1rem; font-weight: 700; color: var(--green); }
.sem-report .sem-table { min-width: 0; }
.sem-signatures { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 12px 0 20px; }
.sem-signatures div { display: grid; gap: 40px; padding-top: 8px; border-top: 1px solid var(--line); }
.sem-signatures span { color: var(--muted); font-size: .8rem; }
@media (max-width: 860px) {
  .sem-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sem-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sem-board-grid { grid-template-columns: minmax(0, 1fr); }
  .sem-board-head { flex-direction: column; }
  .sem-verse { max-width: none; }
  .sem-current { flex-direction: column; align-items: flex-start; }
  .sem-signatures { grid-template-columns: 1fr; }
  .member-detail-actions .sem-actions { display: flex; flex-direction: row; flex-wrap: wrap; width: 100%; }
  .sem-report { overflow: hidden; }
}
@media print { .sem-report { box-shadow: none; border: 0; } .sem-table { min-width: 0; } }

/* Conférence : invités, badge, ouvriers, scan */
.sem-inline-form { margin-bottom: 16px; }
.sem-inline-form h3 { margin: 0 0 10px; }
.conf-badge { display: grid; justify-items: center; gap: 6px; max-width: 360px; margin: 0 auto; text-align: center; }
.conf-badge h2, .conf-badge p { margin: 0; }
.conf-badge img { width: 200px; height: 200px; image-rendering: pixelated; }
.conf-code { font: 700 1.5rem/1 "Courier New", monospace; letter-spacing: .15em; }
.conf-present { color: #067647; font-size: 1.1rem; }
.sem-table th small { display: block; font-weight: 400; text-transform: none; }
.sem-scan { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.sem-scan form { display: grid; gap: 12px; }
.sem-scan input[type=text] { width: 100%; height: 48px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; font-size: 1.05rem; }
.sem-scan video { width: 100%; margin-top: 12px; border-radius: 10px; background: #000; }
.sem-scan-counts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.sem-scan-counts small { display: block; color: var(--muted); font-size: .72rem; text-transform: uppercase; }
.sem-scan-counts strong { color: var(--green); font-size: 2rem; }
@media (max-width: 860px) { .sem-scan { grid-template-columns: minmax(0, 1fr); } }
@media print { .conf-badge { box-shadow: none; border: 1px dashed #98a2b3; } }

/* Réunion */
.status-pill.meet-status-draft, .status-pill.meet-status-submitted, .status-pill.meet-status-postponed { background: #fff8e6; color: #8a4b00; }
.status-pill.meet-status-refused, .status-pill.meet-status-cancelled { background: #fef3f2; color: var(--danger); }
.status-pill.meet-status-held { background: #ecfdf3; color: #067647; }
.meet-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; margin-bottom: 16px; }
.meet-grid h3 { margin: 0 0 10px; }
.meet-grid h4, .meet-minutes h4 { margin: 16px 0 6px; font-size: .9rem; }
.meet-agenda { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.meet-people, .meet-actions, .meet-docs { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.meet-people li, .meet-actions li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; }
.meet-actions li { justify-content: flex-start; }
.meet-people small, .meet-actions small { display: block; color: var(--muted); font-size: .75rem; }
.meet-actions li.late { border-color: #f5d08a; background: #fff8e6; }
.meet-actions li.done strong { color: var(--muted); text-decoration: line-through; }
.meet-actions form, .meet-people form, .meet-docs form { margin: 0; }
.meet-person-actions { display: inline-flex; align-items: center; gap: 8px; }
.meet-person-actions a { color: #067647; font-size: 1.1rem; }
.meet-docs li { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.meet-icon-btn { padding: 2px; border: 0; background: none; color: var(--muted); font-size: 1.05rem; cursor: pointer; }
.meet-actions .meet-icon-btn { color: var(--green); font-size: 1.25rem; }
.meet-add { display: grid; gap: 8px; margin-top: 12px; }
.meet-add select { width: 100%; }
.meet-inline { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.meet-inline input { flex: 1; min-width: 140px; height: 38px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.meet-quorum { padding: 6px 10px; border-radius: 8px; font-weight: 700; }
.meet-quorum.ok { background: #ecfdf3; color: #067647; }
.meet-quorum.ko { background: #fef3f2; color: var(--danger); }
.meet-minutes { margin-bottom: 16px; }
.meet-minutes-text { line-height: 1.6; }
.meet-draft { margin-top: 6px !important; color: var(--danger); font-weight: 800; letter-spacing: .2em; }
.meet-signatures { grid-template-columns: 1fr 1fr; }
.meet-signatures small { color: var(--muted); }
.meet-rate { display: inline-block; min-width: 64px; padding: 2px 8px; border-radius: 999px; background: linear-gradient(90deg, var(--green-soft) var(--rate), #f2f4f7 var(--rate)); font-weight: 700; }
.sem-refuse form label { font-size: .8rem; font-weight: 700; }
.sem-refuse input[type=datetime-local] { height: 38px; padding: 0 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
@media (max-width: 860px) { .meet-grid { grid-template-columns: minmax(0, 1fr); } .meet-signatures { grid-template-columns: 1fr; } }

/* Let's Pray */
.lp-live { border-left: 4px solid #12b76a; }
.lp-table { min-width: 0; }
.lp-table tr.lp-now td { background: #ecfdf3; }
.lp-held { color: #067647; font-weight: 700; }
.lp-points { display: grid; gap: 12px; margin: 0; padding-left: 20px; }
.lp-points blockquote { margin: 4px 0; padding-left: 10px; border-left: 3px solid var(--green-soft); color: #344054; font-style: italic; }
.lp-points p { margin: 4px 0 0; }
.lp-closing { margin-top: 14px; padding: 10px 12px; border-radius: 10px; background: var(--green-muted); }
.lp-held-title { margin: 20px 0 8px; }
.lp-points-print { font-size: 1rem; }

/* Communiqué */
.com-doc h2 { margin-top: 20px; }
.com-header { margin-top: 6px !important; color: var(--green); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.com-intro { margin: 16px 0 0; line-height: 1.6; }
.com-items { display: grid; gap: 8px; margin: 16px 0 0; padding-left: 22px; line-height: 1.55; }
.com-action { display: grid; gap: 4px; margin: 8px 0; }
.com-action span { color: var(--muted); font-size: .85rem; }
.com-bar { display: block; height: 8px; border-radius: 4px; background: #eaecf0; overflow: hidden; }
.com-bar span { display: block; height: 100%; background: var(--green); }
.com-closing { margin-top: 20px; padding-top: 12px; border-top: 1px solid var(--line); font-style: italic; }
.com-edit-items { display: grid; gap: 10px; margin: 0; padding-left: 22px; }
.com-edit-items textarea { width: 100%; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.com-delete { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; color: var(--muted); font-size: .8rem; }
.com-program { min-width: 0; table-layout: fixed; }
.com-program th:last-child, .com-program td:last-child { width: 64px; }
.com-program input[type=text] { width: 100%; min-width: 0; height: 36px; padding: 0 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
/* Tableaux dans un formulaire : ils défilent dans leur cadre au lieu d'élargir la page (mobile). */
.member-form > * { min-width: 0; }
.member-form .table-wrap { max-width: 100%; overflow-x: auto; }

/* Modération */
.mod-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.mod-tags span { padding: 2px 8px; border-radius: 999px; background: var(--green-soft); color: var(--green); font-size: .78rem; font-weight: 700; }
.mod-team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.mod-team small { display: block; color: var(--muted); font-size: .72rem; text-transform: uppercase; }
.mod-team strong { display: block; margin-top: 4px; }
.mod-team span { display: block; color: var(--muted); font-size: .78rem; }
.mod-part { margin-bottom: 14px; }
.mod-part h3 { margin: 0 0 8px; color: var(--green); }
.mod-points { display: grid; gap: 10px; margin: 0; padding-left: 22px; }
.mod-points li { position: relative; padding-right: 28px; }
.mod-points form { position: absolute; top: 0; right: 0; margin: 0; }
.mod-points .mod-text { margin: 0; line-height: 1.5; }
.mod-points .mod-ref { margin: 4px 0 0; color: #475467; font-size: .88rem; font-style: italic; }
.mod-num { color: var(--green); font-weight: 800; }
.mod-suggest { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.mod-suggest li { display: grid; gap: 6px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; font-size: .85rem; }
.mod-suggest small { display: block; color: var(--muted); }
.mod-suggest form { display: flex; gap: 6px; }
.mod-suggest select { flex: 1; min-width: 0; height: 34px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: .8rem; }
@media (max-width: 860px) { .mod-team { grid-template-columns: minmax(0, 1fr); } }

/* Protocole */
.proto-tabs { display: flex; gap: 6px; margin: 0 0 16px; overflow-x: auto; }
.proto-tabs a, .proto-moments a { padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); font-size: .85rem; font-weight: 700; white-space: nowrap; }
.proto-tabs a.on, .proto-moments a.on { border-color: var(--green); background: var(--green); color: #fff; }
.proto-moments { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.proto-row { cursor: default; }
.proto-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; }
.proto-links .button { padding: 6px 10px; font-size: .78rem; }
.proto-plan { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.proto-zone { display: grid; gap: 2px; padding: 12px; border: 2px solid var(--green-soft); border-radius: 10px; background: var(--green-muted); text-align: center; }
.proto-zone.reserved { border-color: #f5d08a; background: #fff8e6; }
.proto-zone span, .proto-zone small { color: var(--muted); font-size: .78rem; }
.proto-count-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-bottom: 16px; }
.proto-count { display: grid; gap: 8px; padding: 14px; }
.proto-count.over { border-color: var(--danger); }
.proto-count header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px; }
.proto-count header small { color: #8a4b00; }
.proto-count header span { color: var(--muted); font-size: .8rem; }
.proto-inputs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.proto-inputs label { display: grid; gap: 2px; font-size: .72rem; font-weight: 700; text-align: center; }
.proto-inputs input { width: 100%; height: 44px; border: 1px solid var(--line); border-radius: 8px; font-size: 1.1rem; text-align: center; }
.proto-totals strong { font-size: 1.2rem; }
.proto-small { padding: 4px 8px; font-size: .72rem; }
.proto-presence select { height: 32px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: .8rem; }
.notice.success { margin-bottom: 12px; }
@media (max-width: 620px) { .proto-links { justify-content: flex-start; } }

/* Call center */
.cc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin-bottom: 16px; }
.cc-grid > .card { margin: 0; min-width: 0; }
.cc-filters { flex-wrap: wrap; }
.cc-contact { display: inline-flex; gap: 4px; }
.cc-wa { color: #128c4b; }
.cc-call.late { border-left: 4px solid var(--danger); }
.cc-result-todo, .cc-need-received { background: #fff8e6; color: #8a4b00; }
.cc-result-reached, .cc-need-treated, .cc-step-done { background: var(--green-muted); color: var(--green); }
.cc-result-no_answer, .cc-result-callback, .cc-need-transmitted { background: #eaf1ff; color: #24539c; }
.cc-result-wrong { background: #fdecec; color: var(--danger); }
.cc-results { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; margin-bottom: 12px; }
.cc-result { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 10px; font-weight: 700; cursor: pointer; }
.cc-result:has(input:checked) { border-color: var(--green); background: var(--green-muted); }
.cc-big-contact .button { min-height: 44px; }
.cc-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin: 0 0 16px; padding: 0; list-style: none; }
.cc-steps li { display: grid; justify-items: center; gap: 4px; padding: 8px 4px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font-size: .75rem; text-align: center; }
.cc-steps li span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--line); font-weight: 800; }
.cc-steps li.done span { background: var(--green-soft); }
.cc-steps li.on { border-color: var(--green); }
.cc-steps li.on span { background: var(--green); color: #fff; }
.cc-actions { flex-wrap: wrap; }
.cc-text { white-space: normal; overflow-wrap: anywhere; }
.cc-dates { margin-bottom: 8px; }
@media (max-width: 620px) { .cc-steps { grid-template-columns: 1fr; } .cc-steps li { grid-template-columns: 26px 1fr; justify-items: start; text-align: left; } }
.cc-result input { width: auto; height: auto; margin: 0; }

/* Home Church */
.hc-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hc-board { display: grid; gap: 0; }
.hc-board-head { display: none; }
.hc-board:fullscreen { height: 100vh; padding: 2vh 2vw; overflow: hidden; background: var(--canvas); grid-template-rows: auto auto 1fr; gap: 1.5vh; }
.hc-board:fullscreen .hc-board-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.hc-board:fullscreen .hc-board-head h2 { margin: 0; font-size: 1.6rem; }
.hc-board:fullscreen .hc-board-head span { color: var(--muted); }
.hc-board:fullscreen .sem-stats { margin: 0; }
.hc-board:fullscreen .hc-board-grid { min-height: 0; }
.hc-board:fullscreen .hc-board-grid .card { overflow: hidden; }
.hc-board:fullscreen .sem-table { min-width: 0; }
.hc-board-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 16px; margin-bottom: 16px; }
.hc-board-grid > .card { margin: 0; min-width: 0; }
.hc-week { min-width: 0; }
.hc-week td a strong { color: var(--ink); }
.hc-subtitle { margin: 16px 0 8px; }
.hc-state { display: inline-block; padding: 3px 8px; border-radius: 999px; font-size: .72rem; font-weight: 700; white-space: nowrap; }
.hc-reported { background: var(--green-muted); color: var(--green); }
.hc-late { background: #fdecec; color: var(--danger); }
.hc-not_held { background: #fff8e6; color: #8a4b00; }
.hc-today { background: #eaf1ff; color: #24539c; }
.hc-upcoming { background: #f2f4f7; color: var(--muted); }
.hc-map { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; }
.hc-quarter { display: grid; gap: 6px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--green-muted); }
.hc-quarter > strong { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.hc-quarter a { display: grid; gap: 2px; padding: 8px 10px; border-radius: 8px; background: #fff; color: var(--ink); }
.hc-quarter a.over { box-shadow: inset 3px 0 0 var(--danger); }
.hc-quarter a small { color: var(--muted); font-size: .74rem; }
.hc-dl { display: grid; gap: 8px; margin: 0; }
.hc-dl div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 8px; }
.hc-dl dt { color: var(--muted); font-size: .8rem; }
.hc-dl dd { margin: 0; overflow-wrap: anywhere; }
.hc-session header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 10px; }
.hc-session h3 { margin: 2px 0 10px; }
.hc-theme { font-weight: 700; }
.hc-verse { margin: 8px 0; padding: 10px 12px; border-left: 3px solid var(--green); border-radius: 0 8px 8px 0; background: var(--green-muted); font-size: .88rem; }
.hc-presence { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; margin-bottom: 12px; }
.hc-presence small { color: var(--muted); font-weight: 400; }
.hc-presence input, .hc-checks input { width: auto; height: auto; margin: 0; }
.hc-checks ul, .hc-checks > div { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px; padding: 0; list-style: none; }
.hc-checks label { display: flex; align-items: center; gap: 8px; font-weight: 400; }
.hc-counts { margin-bottom: 12px; }
.hc-start { justify-content: flex-start; }
.hc-curve { margin: 12px 0; }
@media (max-width: 860px) { .hc-board-grid { grid-template-columns: minmax(0, 1fr); } .hc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .hc-dl div { grid-template-columns: 1fr; gap: 0; } .hc-counts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Formations : sessions, inscriptions, examens */
.fo-state { display: inline-block; padding: 3px 8px; border-radius: 999px; font-size: .72rem; font-weight: 700; white-space: nowrap; }
.fo-open { background: var(--green-muted); color: var(--green); }
.fo-closed { background: #fdecec; color: var(--danger); }
.fo-draft { background: #fff8e6; color: #8a4b00; }
.fo-todo { background: #eaf1ff; color: #24539c; }
.fo-code { display: inline-block; padding: 4px 10px; border: 2px solid var(--danger); border-radius: 8px; background: #fff; color: var(--danger); font: 800 .95rem/1.2 ui-monospace, monospace; letter-spacing: .12em; }
.fo-code.valid { border-color: var(--green); color: var(--green); }
.fo-code.expired { border-color: var(--line); color: var(--muted); text-decoration: line-through; }
button.fo-code { cursor: pointer; }
.fo-code-big { margin: 8px 0; color: var(--danger); font: 800 2.2rem/1 ui-monospace, monospace; letter-spacing: .2em; }
.fo-code-big.valid { color: var(--green); }
.fo-code-big.expired { color: var(--muted); text-decoration: line-through; }
.fo-code-row { display: flex; align-items: center; gap: 12px; }
.fo-code-row > span { display: grid; min-width: 0; }
.fo-code-input { text-transform: uppercase; letter-spacing: .2em; font-family: ui-monospace, monospace; font-weight: 800; }
.fo-multi { width: 100%; min-height: 140px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.fo-check { display: flex; align-items: center; gap: 8px; }
.fo-check input { width: auto; height: auto; }
.fo-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fo-question { margin: 0 0 14px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
.fo-question legend { padding: 0 6px; font-weight: 800; }
.fo-key-row, .fo-answer { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--line); }
.fo-key-row.missing { box-shadow: inset 3px 0 0 #f5d08a; padding-left: 8px; }
.fo-key-row label, .fo-boxes label { display: inline-flex; align-items: center; gap: 4px; margin-left: 10px; font-weight: 600; white-space: nowrap; }
.fo-key-row input, .fo-boxes input { width: auto; height: auto; margin: 0; }
.fo-sticky { position: sticky; bottom: 0; z-index: 2; padding: 10px 0; background: var(--canvas); }
.fo-sheet { user-select: none; -webkit-user-select: none; }
.fo-sheet-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.fo-sheet-head h2 { margin: 2px 0 8px; }
.fo-identity { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0 0 6px; }
.fo-identity div { display: flex; gap: 6px; }
.fo-identity dt { color: var(--muted); }
.fo-identity dd { margin: 0; font-weight: 700; }
.fo-timer { display: grid; justify-items: center; padding: 10px 14px; border-radius: 12px; background: var(--green-muted); }
.fo-timer small { color: var(--muted); font-size: .72rem; text-transform: uppercase; }
.fo-timer strong { color: var(--green); font: 800 1.6rem/1.1 ui-monospace, monospace; }
.fo-jump { position: sticky; top: 0; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 14px; padding: 8px 0; background: var(--canvas); }
.fo-jump a { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font-weight: 700; }
.fo-jump a.done { border-color: var(--green); background: var(--green); color: #fff; }
.fo-jump span { margin-left: 6px; color: var(--muted); font-size: .8rem; }
.fo-start { max-width: 720px; }
.fo-rules { padding-left: 18px; color: var(--muted); }
@media (max-width: 620px) {
  .fo-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fo-answer { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .fo-key-row { grid-template-columns: auto auto minmax(0, 1fr); gap: 4px 0; }
  .fo-key-row > span { grid-column: 1 / -1; }
  .fo-key-row label { margin: 0 18px 0 0; }
  .fo-boxes label:first-child { margin-left: 0; }
  .fo-boxes { display: flex; flex-wrap: wrap; gap: 4px 0; }
  .fo-sheet-head { flex-direction: column; }
}
@media print { .fo-sheet { display: none; } }

/* Messages */
.messages-button { display: grid; }
.messages-button b { position: absolute; top: -6px; right: -6px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 999px; background: var(--danger); color: #fff; font-size: .68rem; line-height: 18px; text-align: center; }
.top-actions .messages-button + .notification-button { margin-left: 0; }
.ms-filters { align-items: center; gap: 10px; }
.ms-filters input[type=search] { flex: 1 1 220px; min-width: 0; height: 40px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; font: inherit; }
.ms-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ms-chips a { padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); font-size: .82rem; font-weight: 700; }
.ms-chips a.on { border-color: var(--green); background: var(--green); color: #fff; }
.ms-list { padding: 4px 0; }
.ms-item { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 16px; border-top: 1px solid var(--line); color: var(--ink); }
.ms-item:first-child { border-top: 0; }
.ms-item.unread strong { font-weight: 800; }
.ms-avatar { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--green-muted); color: var(--green); font-size: .78rem; font-weight: 800; }
.ms-avatar.ms-group { background: #eaf1ff; color: #24539c; }
.ms-avatar.ms-request { background: #fff8e6; color: #8a4b00; }
.ms-avatar.ms-announcement { background: #fdecec; color: var(--danger); }
.ms-copy { display: grid; min-width: 0; }
.ms-copy strong, .ms-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ms-copy small { color: var(--muted); }
.ms-meta { display: grid; justify-items: end; gap: 2px; }
.ms-meta small, .ms-meta em { color: var(--muted); font-size: .72rem; font-style: normal; }
.ms-meta b { min-width: 20px; padding: 1px 6px; border-radius: 999px; background: var(--green); color: #fff; font-size: .72rem; text-align: center; }
.ms-pref { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin: 12px 0; color: var(--muted); font-size: .85rem; }
.ms-thread { display: grid; gap: 10px; max-height: 65vh; overflow-y: auto; }
.ms-day, .ms-new { margin: 6px 0; color: var(--muted); font-size: .75rem; text-align: center; text-transform: uppercase; letter-spacing: .04em; }
.ms-new { color: var(--danger); }
.ms-msg { justify-self: start; max-width: min(78%, 560px); padding: 8px 12px; border-radius: 4px 14px 14px 14px; background: #f2f4f7; overflow-wrap: anywhere; }
.ms-msg.mine { justify-self: end; border-radius: 14px 4px 14px 14px; background: var(--green-muted); }
.ms-msg.hidden { opacity: .7; }
.ms-msg p { margin: 2px 0; }
.ms-author { display: block; color: var(--green); font-size: .78rem; }
.ms-msg footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 2px; color: var(--muted); font-size: .72rem; }
.ms-msg footer a, .ms-icon, .ms-report summary { color: var(--muted); cursor: pointer; }
.ms-icon { padding: 0; border: 0; background: none; }
.ms-inline { display: inline; margin: 0; }
.ms-report summary { list-style: none; }
.ms-report[open] form { display: grid; gap: 6px; margin-top: 6px; }
.ms-file { display: inline-flex; align-items: center; gap: 6px; margin: 4px 0; padding: 6px 10px; border-radius: 8px; background: #fff; color: var(--ink); font-size: .82rem; }
.ms-link { display: grid; gap: 2px; margin: 4px 0; padding: 8px 10px; border-left: 3px solid var(--green); border-radius: 0 8px 8px 0; background: #fff; color: var(--ink); font-size: .82rem; }
.ms-link span { color: var(--muted); }
.ms-compose { position: sticky; bottom: 0; z-index: 2; }
.ms-compose-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8px; }
.ms-compose-row textarea { width: 100%; min-height: 44px; border: 1px solid var(--line); border-radius: 10px; padding: 10px; font: inherit; resize: vertical; }
.ms-extra summary { margin-top: 8px; color: var(--muted); font-size: .82rem; cursor: pointer; }
.ms-remind { display: flex; align-items: center; gap: 8px; }
.ms-remind input { width: auto; height: auto; }
.ms-remind span { display: grid; }
.ms-remind small { color: var(--muted); }
.ms-announce p { white-space: normal; }
.ms-st-new { background: #fff8e6; color: #8a4b00; }
.ms-st-taken { background: #eaf1ff; color: #24539c; }
.ms-st-done { background: var(--green-muted); color: var(--green); }
.ms-report-row { display: grid; gap: 8px; width: 100%; }
@media (max-width: 620px) {
  .ms-item { grid-template-columns: 36px minmax(0, 1fr); }
  .ms-meta { grid-column: 2; grid-auto-flow: column; justify-content: start; gap: 8px; }
  .ms-msg { max-width: 90%; }
  .ms-compose-row { grid-template-columns: 1fr; }
}

/* Librairie */
.lib-filters { gap: 8px; }
.lib-filters input[type=search] { flex: 1 1 220px; min-width: 0; height: 40px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; font: inherit; }
.lib-filters select { height: 40px; min-width: 0; border: 1px solid var(--line); border-radius: 10px; font: inherit; }
.lib-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; margin-bottom: 16px; }
.lib-card { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #fff; color: var(--ink); }
.lib-card:hover { border-color: var(--green); }
.lib-cover { position: relative; display: grid; place-items: center; aspect-ratio: 3 / 4; overflow: hidden; padding: 6px; border-radius: 8px; background: var(--green); color: #fff; font-size: .68rem; font-weight: 800; line-height: 1.2; text-align: center; text-transform: uppercase; }
.lib-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lib-cover em { position: absolute; right: 4px; bottom: 4px; padding: 1px 5px; border-radius: 6px; background: rgba(0, 0, 0, .35); font-style: normal; font-size: .62rem; }
.lib-courses .lib-cover, .lib-cover.lib-courses { background: #24539c; }
.lib-reports .lib-cover, .lib-cover.lib-reports { background: #8a4b00; }
.lib-sermons .lib-cover, .lib-cover.lib-sermons { background: #6941c6; }
.lib-templates .lib-cover, .lib-cover.lib-templates { background: #475467; }
.lib-admin .lib-cover, .lib-cover.lib-admin { background: #b42318; }
.lib-copy { display: grid; align-content: start; gap: 3px; min-width: 0; }
.lib-copy small { color: var(--muted); font-size: .74rem; }
.lib-copy small b { color: var(--danger); }
.lib-copy strong { overflow-wrap: anywhere; }
.lib-access { justify-self: start; margin-top: 4px; padding: 2px 8px; border-radius: 999px; background: var(--green-muted); color: var(--green); font-size: .7rem; font-weight: 700; }
.lib-sheet { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 20px; align-items: start; }
.lib-sheet .lib-cover { font-size: .9rem; }
.lib-sheet h2 { margin: 2px 0 8px; }
.lib-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.lib-tag { padding: 3px 9px; border-radius: 999px; background: #f2f4f7; color: var(--ink); font-size: .78rem; }
.lib-tag.on { background: var(--green); color: #fff; }
.lib-actions { justify-content: flex-start; margin-top: 12px; }
.lib-reader iframe { width: 100%; height: 75vh; border: 0; border-radius: 8px; }
.lib-reader audio, .lib-reader video, .lib-reader img { width: 100%; max-height: 75vh; border-radius: 8px; }
.lib-version { margin-top: 16px; }
.lib-decide { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.lib-decide input { height: 32px; min-width: 0; flex: 1 1 140px; border: 1px solid var(--line); border-radius: 8px; padding: 0 8px; font: inherit; font-size: .8rem; }
@media (max-width: 620px) {
  .lib-sheet { grid-template-columns: 1fr; }
  .lib-sheet .lib-cover { max-width: 140px; }
  .lib-reader iframe { height: 65vh; }
}

/* Administration */
.adm-matrix td, .adm-matrix th { text-align: center; }
.adm-matrix td:first-child, .adm-matrix th:first-child { text-align: left; }
.adm-level { display: inline-block; padding: 2px 7px; border-radius: 999px; font-size: .7rem; font-weight: 700; white-space: nowrap; color: var(--muted); }
.adm-l1 { background: #f2f4f7; color: var(--ink); }
.adm-l2 { background: #eaf1ff; color: #24539c; }
.adm-l3 { background: var(--green-muted); color: var(--green); }
.adm-l4 { background: #fff8e6; color: #8a4b00; }
.adm-l5 { background: var(--green); color: #fff; }
.adm-roles { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; margin-bottom: 12px; }
.adm-roles .cc-result { align-items: flex-start; font-weight: 600; }
.adm-roles input { width: auto; height: auto; margin: 3px 0 0; }
.adm-roles small { display: block; color: var(--muted); font-weight: 400; font-size: .74rem; }
.adm-secret { max-width: 560px; }
.adm-code { margin: 14px 0; padding: 14px; border: 2px dashed var(--green); border-radius: 12px; color: var(--green); font: 800 2rem/1 ui-monospace, monospace; letter-spacing: .12em; text-align: center; overflow-wrap: anywhere; user-select: all; }
.adm-types input, .adm-types select { width: 100%; min-width: 70px; height: 34px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: .82rem; }
.adm-types input[type=checkbox] { width: auto; min-width: 0; height: auto; }
.adm-alert td { background: #fef3f2; }

/* SMS */
.sms-budget { display: grid; grid-template-columns: auto minmax(120px, 1fr) auto; align-items: center; gap: 14px; margin-bottom: 16px; padding: 12px 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.sms-budget div { display: grid; }
.sms-budget small, .sms-budget em { color: var(--muted); font-size: .78rem; font-style: normal; }
.sms-bar { height: 10px; overflow: hidden; border-radius: 999px; background: #f2f4f7; }
.sms-bar span { display: block; height: 100%; border-radius: 999px; background: var(--green); }
.sms-budget.alert { border-color: #f5d08a; background: #fff8e6; }
.sms-budget.alert .sms-bar span { background: #dc6803; }
.sms-state { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: .7rem; font-weight: 700; white-space: nowrap; }
.sms-pending { background: #fff8e6; color: #8a4b00; }
.sms-sent, .sms-delivered { background: var(--green-muted); color: var(--green); }
.sms-failed { background: #fdecec; color: var(--danger); }
.sms-kw { padding: 1px 6px; border-radius: 6px; background: #24539c; color: #fff; font-size: .7rem; }
.sms-li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.sms-li > span:first-child { display: grid; min-width: 0; flex: 1 1 220px; }
.sms-actions, .sms-inline { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; }
.sms-inline select { height: 32px; max-width: 220px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: .8rem; }
.sms-thread .ms-msg footer { flex-wrap: wrap; }
.sms-preview { margin: 8px 0 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--green-muted); }
.sms-preview.alert { border-color: #f5d08a; background: #fff8e6; }
.sms-preview h3 { margin: 0 0 6px; }
.sms-preview ul { margin: 0; padding-left: 18px; }
.sms-find select { flex: 1 1 220px; min-width: 0; height: 40px; border: 1px solid var(--line); border-radius: 10px; font: inherit; }
@media (max-width: 620px) { .sms-budget { grid-template-columns: 1fr; } }
.ms-msg footer .button { color: #fff; }
.ms-msg footer .button.secondary { color: var(--green-dark); }
.fo-read { display: block; width: 90px; height: 6px; overflow: hidden; border-radius: 999px; background: #f2f4f7; }
.fo-read span { display: block; height: 100%; background: var(--green); }

/* Finance étendue */
.fx-alerts ul { margin: 6px 0 0; padding-left: 18px; }
.fx-chart { display: flex; align-items: flex-end; gap: 6px; height: 170px; padding-top: 10px; border-bottom: 1px solid var(--line); }
.fx-col { position: relative; display: flex; flex: 1; align-items: flex-end; justify-content: center; gap: 2px; height: 100%; }
.fx-col span { width: 40%; min-height: 1px; border-radius: 3px 3px 0 0; }
.fx-col .in { background: var(--green); }
.fx-col .out { background: #dc6803; }
.fx-col small { position: absolute; bottom: -18px; color: var(--muted); font-size: .62rem; }
.fx-chart + * { margin-top: 24px; }
.fx-notes { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.fx-notes h4 { margin: 0 0 8px; }
.fx-notes label { display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: 8px; margin-bottom: 6px; font-weight: 600; }
.fx-notes input, .fx-pin, .fx-reason, .fx-refuse input, .fx-cancel input { height: 36px; min-width: 0; border: 1px solid var(--line); border-radius: 8px; padding: 0 10px; font: inherit; }
.fx-pin { width: 120px; }
.fx-cancel { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fx-cancel input { flex: 1 1 200px; }
.fx-amount { font-variant-numeric: tabular-nums; color: var(--green); }
.fx-amount.out { color: var(--danger); }
.fx-res { background: #f9fafb; }
.fx-report td, .fx-report th { white-space: nowrap; }
.fx-requested, .fx-verified { background: #fff8e6; color: #8a4b00; }
.fx-validated { background: #eaf1ff; color: #24539c; }
.fx-paid { background: #f2f4f7; color: var(--ink); }
.fx-justified { background: var(--green-muted); color: var(--green); }
.fx-unjustified, .fx-refused, .fx-cancelled { background: #fdecec; color: var(--danger); }
.fx-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.fx-receipt { max-width: 520px; }
.fx-sign { display: none; }
.print-only { display: none; }
@media print { .print-only.fx-sign { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-top: 40px; } .fx-sign span { padding-top: 40px; border-top: 1px solid #000; text-align: center; font-size: .8rem; } }
@media (max-width: 620px) { .fx-steps { grid-template-columns: 1fr; } .fx-notes label { grid-template-columns: 90px 1fr; } }

/* Bergerie (menu principal) */
.bg-move { display: grid; gap: 6px; margin-top: 6px; min-width: 220px; }
.bg-move input, .bg-move select { height: 34px; border: 1px solid var(--line); border-radius: 8px; padding: 0 8px; font: inherit; font-size: .82rem; }
.bg-report { break-inside: avoid; }
@media print { .bg-report { page-break-inside: avoid; } }

/* Rapports (format A4) */
.rp-period { flex-wrap: wrap; }
.rp-doc { display: grid; gap: 18px; margin-bottom: 18px; padding: 22px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.rp-doc > *, .rp-grid > *, .rp-section { min-width: 0; }
.rp-cover { display: flex; align-items: center; gap: 18px; padding-bottom: 14px; border-bottom: 3px solid var(--green); }
.rp-cover h2 { margin: 2px 0 6px; font-size: 1.35rem; }
.rp-logo { width: 72px; height: 72px; object-fit: contain; flex: none; }
.rp-identity, .rp-stamp { margin: 2px 0; color: var(--muted); font-size: .8rem; }
.rp-verse { margin: 6px 0 0; font-style: italic; }
.rp-section h3 { margin: 0 0 8px; font-size: 1rem; color: var(--green); }
.rp-section h4 { margin: 10px 0 4px; font-size: .9rem; }
.rp-section p { margin: 0 0 6px; overflow-wrap: anywhere; }
.rp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.rp-catalogue { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin-bottom: 16px; }
.rp-list { margin: 0; padding-left: 18px; display: grid; gap: 4px; }
.rp-table td, .rp-table th { white-space: normal; }
.rp-table .fo-read { display: block; min-width: 60px; }
.rp-funnel { display: grid; gap: 10px; }
.rp-step { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 2fr) auto auto; align-items: center; gap: 10px; }
.rp-step-label { font-size: .88rem; }
.rp-step .fo-read { width: 100%; height: 10px; }
.rp-step small { color: var(--muted); min-width: 42px; text-align: right; }
.rp-signatures { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 20px; }
.rp-signatures div { min-height: 70px; border-bottom: 1px solid #98a2b3; display: flex; align-items: flex-start; }
.rp-signatures span { font-weight: 700; font-size: .85rem; }
.rp-signatures p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: .8rem; }
.rp-note { margin: 0; }
@media (max-width: 640px) {
  .rp-doc { padding: 14px; }
  .rp-cover { flex-direction: column; align-items: flex-start; }
  .rp-step { grid-template-columns: 1fr auto auto; }
  .rp-step .fo-read { grid-column: 1 / -1; grid-row: 2; }
}
@page { size: A4; margin: 14mm 12mm; }
@media print {
  .rp-doc { border: 0; padding: 0; box-shadow: none; }
  .rp-section { break-inside: avoid; }
  .rp-table { min-width: 0; font-size: 9pt; }
  .rp-cover { break-after: avoid; }
  .rp-signatures { break-inside: avoid; }
}

/* Tableau de bord étendu */
.db-filters { align-items: center; flex-wrap: wrap; }
.db-switch { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; background: #fff; }
.db-switch button { border: 0; background: transparent; padding: 8px 14px; font: inherit; font-size: .85rem; font-weight: 700; color: var(--ink); cursor: pointer; }
.db-switch button.on { background: var(--green); color: #fff; }
.db-top { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin-bottom: 16px; }
.db-top > *, .db-duo > *, .db-figures > *, .db-blocks > * { min-width: 0; }
.db-panel { padding: 18px; }
.db-panel .panel-heading { margin-bottom: 10px; }
.db-panel .panel-heading h3 { margin: 0; font-size: 1rem; display: flex; align-items: center; gap: 6px; }
.db-today { display: grid; gap: 6px; }
.db-today-row { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; color: var(--ink); background: #f9fafb; }
.db-today-row.live { background: #ecfdf3; outline: 1px solid var(--green); }
.db-today-row.done { opacity: .65; }
.db-time { font-weight: 800; font-size: .9rem; }
.db-copy { display: grid; min-width: 0; }
.db-copy strong, .db-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.db-copy small { color: var(--muted); }
.db-state { font-size: .72rem; font-weight: 700; padding: 3px 8px; border-radius: 999px; background: #f2f4f7; color: var(--muted); white-space: nowrap; }
.db-today-row.live .db-state, .db-state.live { background: var(--green); color: #fff; }
.db-live-figures, .db-mini { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.db-live-figures div, .db-mini div { display: grid; gap: 2px; }
.db-live-figures strong, .db-mini strong { font-size: 1.6rem; line-height: 1.1; }
.db-live-figures small, .db-mini small { color: var(--muted); font-size: .75rem; }
.db-sequence { margin: 12px 0; font-size: .88rem; }
.db-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.db-tasks { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.db-tasks a { display: flex; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 10px; background: #f9fafb; color: var(--ink); }
.db-tasks a span:first-child { display: grid; min-width: 0; }
.db-tasks small { color: var(--muted); font-size: .75rem; }
.db-when { font-size: .75rem; color: var(--muted); white-space: nowrap; align-self: center; }
.db-when.late { color: #b42318; font-weight: 700; }
.db-figures { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; margin-bottom: 16px; }
.db-figure { padding: 16px; display: grid; gap: 4px; }
.db-figure a { display: grid; gap: 4px; color: inherit; }
.db-figure strong { font-size: 1.8rem; line-height: 1.1; }
.db-figure span { font-size: .85rem; }
.db-missing { font-size: .95rem; color: var(--muted); font-weight: 600; }
.db-trend { font-size: .75rem; color: var(--muted); }
.db-trend.up { color: #027a48; }
.db-trend.down { color: #b42318; }
.db-duo { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; margin-bottom: 16px; }
.db-alerts { margin-bottom: 16px; border-left: 4px solid #f79009; }
.db-alerts ul { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: .88rem; }
.db-alerts a { color: var(--ink); }
.db-chart { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); align-items: end; gap: 6px; height: 170px; padding-top: 6px; }
.db-bar { display: grid; grid-template-rows: auto 1fr auto; height: 100%; align-items: end; justify-items: center; gap: 4px; min-width: 0; }
.db-bar-value { font-size: .7rem; font-weight: 700; }
.db-bar-fill { width: 100%; max-width: 34px; min-height: 2px; border-radius: 6px 6px 0 0; background: var(--green); align-self: end; }
.db-bar-fill.empty { background: repeating-linear-gradient(45deg, #eaecf0, #eaecf0 3px, #fff 3px, #fff 6px); height: 100% !important; opacity: .6; }
.db-bar small { font-size: .62rem; color: var(--muted); white-space: nowrap; }
.db-section { margin-bottom: 16px; }
.db-section h3 { margin: 0 0 10px; font-size: 1rem; }
.db-blocks { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.db-block { display: flex; gap: 12px; align-items: center; padding: 14px; color: var(--ink); }
.db-block > span:last-child { display: grid; min-width: 0; }
.db-block small { color: var(--muted); font-weight: 700; font-size: .75rem; }
.db-block strong { font-size: 1.4rem; line-height: 1.1; }
.db-block span span { font-size: .8rem; color: var(--muted); }
.db-path { margin: 0; display: grid; gap: 10px; }
.db-path dt { color: var(--muted); font-size: .75rem; }
.db-path dd { margin: 2px 0 0; font-weight: 600; }
@media (max-width: 640px) {
  .db-chart { gap: 3px; }
  .db-bar small { font-size: .55rem; writing-mode: vertical-rl; transform: rotate(180deg); }
  .db-live-figures strong, .db-mini strong { font-size: 1.3rem; }
}

/* Activité (tableau de bord de Mon Église) */
.act-today { margin-bottom: 16px; }
.act-today.has-live { border: 1px solid var(--green); }
.act-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.act-day { min-width: 0; display: grid; align-content: start; gap: 4px; padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: #fff; min-height: 90px; }
.act-day.today { border-color: var(--green); background: #f6fef9; }
.act-day p { margin: 0 0 2px; font-weight: 800; font-size: .78rem; text-transform: capitalize; }
.act-day a { display: block; padding: 3px 6px; border-left: 3px solid var(--c); border-radius: 4px; background: #f9fafb; color: var(--ink); font-size: .72rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.act-day small { color: var(--muted); }
.act-legend { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0 0; font-size: .75rem; color: var(--muted); }
.act-legend span::before { content: ''; display: inline-block; width: 10px; height: 10px; margin-right: 4px; border-radius: 3px; background: var(--c); vertical-align: -1px; }
.act-blocks { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.act-blocks > * { min-width: 0; }
.act-blocks p { margin: 0 0 8px; font-size: .88rem; }
.act-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.act-list li { display: grid; gap: 2px; font-size: .88rem; }
.act-list small { color: var(--muted); }
@media (max-width: 760px) {
  .act-week { grid-template-columns: 1fr; }
  .act-day { min-height: 0; grid-template-columns: 70px minmax(0, 1fr); }
  .act-day p { grid-row: span 9; }
}
.db-filters select, .db-filters input[type=date] { height: 38px; border: 1px solid var(--line); border-radius: 10px; padding: 0 10px; background: #fff; font: inherit; font-size: .85rem; max-width: 100%; }

/* Réunion : suivi des actions */
.meet-actions-follow li { flex-wrap: wrap; align-items: flex-start; }
.meet-action-copy { flex: 1 1 280px; min-width: 0; }
.meet-update { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; flex: 1 1 100%; }
.meet-update select, .meet-update input { height: 34px; border: 1px solid var(--line); border-radius: 8px; padding: 0 8px; font: inherit; font-size: .82rem; background: #fff; }
.meet-update input { flex: 1 1 180px; min-width: 0; }
.meet-history { margin-top: 4px; font-size: .8rem; }
.meet-history summary { cursor: pointer; color: var(--green); font-weight: 700; }
.meet-history ul { margin: 4px 0 0; padding-left: 16px; display: grid; gap: 2px; }

/* Formations : Salle */
.sl-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.sl-list a { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; background: #f9fafb; color: var(--ink); }
.sl-list li.open a { background: #ecfdf3; outline: 1px solid var(--green); }
.sl-list li.closed a { opacity: .7; }
.sl-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #d0d5dd; vertical-align: -1px; }
.sl-dot.in { background: var(--green); }
.sl-dot.out { background: #f04438; }
.sl-qr { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 12px; }
.sl-qr label { flex: 1 1 100%; font-size: .8rem; color: var(--muted); }
.sl-qr input, .sl-mini input, .sl-mini select { height: 34px; border: 1px solid var(--line); border-radius: 8px; padding: 0 8px; font: inherit; font-size: .82rem; min-width: 0; }
.sl-qr input { flex: 1 1 160px; }
.sl-actions { min-width: 160px; }
.sl-actions details summary { cursor: pointer; font-size: .8rem; color: var(--green); font-weight: 700; margin-top: 4px; }
.sl-mini { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.sl-mini input { flex: 1 1 110px; }
.sl-me { font-weight: 700; }
.sem-table td small { display: block; }
.sl-low { color: #b42318; font-weight: 700; }
.fo-trainer-answer { margin: 8px 0; padding: 8px 12px; border-left: 4px solid #f79009; border-radius: 8px; background: #fffaeb; }
.fo-trainer-answer > span { display: block; font-size: .72rem; font-weight: 800; color: #b54708; text-transform: uppercase; letter-spacing: .04em; }
@media print { .fo-trainer-answer { border: 1px dashed #b54708; } }
.tp-table input { height: 34px; border: 1px solid var(--line); border-radius: 8px; padding: 0 8px; font: inherit; font-size: .85rem; width: 100%; min-width: 0; }
.tp-table td:nth-child(2) { width: 90px; }

/* Présences : contrôle et ouvriers */
.ct-workers li { display: block; }
.ct-qr { text-align: center; }
.ct-qr img { display: block; margin: 8px auto; image-rendering: pixelated; }
.wk-card { max-width: 520px; }
.wk-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 56px; margin-top: 12px; font-size: 1.1rem; }
.wk-done { display: flex; align-items: center; gap: 8px; font-weight: 700; }
.wk-done iconify-icon { color: var(--green); font-size: 1.6rem; }

/* Espace membre étendu */
.ms-hello { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.ms-hello h2 { margin: 0; }
.ms-hello p { margin: 2px 0 0; color: var(--muted); font-size: .85rem; }
.ms-nav { position: sticky; top: 0; z-index: 2; padding: 6px 0; background: var(--canvas, #f5f7fb); }
.ms-part { margin-bottom: 20px; scroll-margin-top: 60px; }
#fiche { scroll-margin-top: 60px; }
.ms-title { margin: 8px 0 10px; font-size: 1.05rem; }
.ms-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.ms-grid > * { min-width: 0; }
.ms-card { padding: 16px; }
.ms-card h4 { margin: 0 0 8px; font-size: .95rem; }
.ms-card h5 { margin: 10px 0 4px; font-size: .82rem; color: var(--muted); }
.ms-card .panel-heading { margin-bottom: 8px; }
.ms-card .panel-heading h4 { margin: 0; }
.ms-program { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: .88rem; }
.ms-program b { display: inline-block; min-width: 46px; }
.ms-slot { margin: 10px 0 0; padding: 8px 10px; border-radius: 10px; background: #f6fef9; font-size: .85rem; }
.ms-links { display: flex; flex-wrap: wrap; gap: 14px; margin: 10px 0 0; font-size: .85rem; }
.ms-links a { display: inline-flex; align-items: center; gap: 4px; }
.ms-rate { margin: 8px 0 0; font-weight: 800; color: var(--green); }
.ms-request { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.adm-prefixes input { width: 100px; height: 32px; border: 1px solid var(--line); border-radius: 8px; padding: 0 8px; font: 600 .85rem ui-monospace, monospace; text-transform: uppercase; }
.adm-prefixes input.adm-changed { border-color: #f79009; background: #fffaeb; }
.adm-scope { display: grid; gap: 6px; }
.adm-scope-churches { display: flex; flex-wrap: wrap; gap: 6px 16px; padding-left: 26px; }
.adm-notif td { vertical-align: top; }
.adm-notif input[type=number] { width: 60px; height: 32px; border: 1px solid var(--line); border-radius: 8px; padding: 0 6px; }
.adm-notif select { min-width: 150px; border: 1px solid var(--line); border-radius: 8px; font-size: .8rem; }
@media print { .fx-print-head.print-only { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 3px solid var(--green); } .fx-print-head p { margin: 0; } }
.lp-signups { min-width: 160px; }
.lp-chip { display: inline-flex; align-items: center; gap: 4px; margin: 0 4px 4px 0; padding: 2px 8px; border-radius: 999px; background: #eef4ff; font-size: .78rem; }
.lp-chip button { border: 0; background: none; color: var(--muted); cursor: pointer; padding: 0 2px; }

/* 3CN Energy */
.en-dot { display: inline-block; width: 10px; height: 10px; margin-right: 6px; border-radius: 50%; background: var(--c, #2474e5); vertical-align: 0; }
.status-pill.en-active { background: #ecfdf3; color: #027a48; }
.status-pill.en-free { background: #eff8ff; color: #175cd3; }
.status-pill.en-standby { background: #fffaeb; color: #b54708; }
.status-pill.en-broken, .status-pill.en-late, .status-pill.en-open, .status-pill.en-refused { background: #fef3f2; color: #b42318; }
.status-pill.en-scrapped, .status-pill.en-retired, .status-pill.en-inactive { background: #f2f4f7; color: #475467; }
.status-pill.en-soon, .status-pill.en-diagnosed, .status-pill.en-bought { background: #fffaeb; color: #b54708; }
.status-pill.en-ok, .status-pill.en-closed, .status-pill.en-entered { background: #ecfdf3; color: #027a48; }
.en-dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px 18px; margin: 0; }
.en-dl dt { color: var(--muted); font-size: .72rem; }
.en-dl dd { margin: 3px 0 0; font-weight: 600; overflow-wrap: anywhere; }
.en-photo { display: block; max-width: 220px; margin-top: 12px; border-radius: 10px; }
.en-gauge { display: flex; flex-wrap: wrap; gap: 12px; }
.en-alert-form { display: inline; }
.en-alert-form button { margin-left: 6px; padding: 2px 8px; font-size: .7rem; }
.form-grid .en-wide { grid-column: 1 / -1; }

/* Secrétariat */
.status-pill.sc-late, .status-pill.sc-refused, .status-pill.sc-cancelled { background: #fef3f2; color: #b42318; }
.status-pill.sc-received, .status-pill.sc-requested, .status-pill.sc-recorded, .status-pill.sc-planned { background: #fffaeb; color: #b54708; }
.status-pill.sc-transmitted, .status-pill.sc-in_progress, .status-pill.sc-prepared, .status-pill.sc-validated { background: #eff8ff; color: #175cd3; }
.status-pill.sc-answered, .status-pill.sc-sent, .status-pill.sc-signed, .status-pill.sc-delivered, .status-pill.sc-held, .status-pill.sc-confirmed, .status-pill.sc-done, .status-pill.sc-scheduled { background: #ecfdf3; color: #027a48; }
.status-pill.sc-filed { background: #f2f4f7; color: #475467; }
.sc-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.sc-sign { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; }
.sc-sign label { display: grid; gap: 4px; font-size: .78rem; font-weight: 600; }
.sc-sign input { height: 38px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.sc-row-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.sc-row-actions input { height: 30px; max-width: 140px; padding: 0 8px; border: 1px solid var(--line); border-radius: 6px; }
.sc-doc { max-width: 800px; margin: 0 auto; padding: 40px 48px; }
.sc-doc .fx-print-head { display: flex; align-items: center; gap: 14px; padding-bottom: 10px; border-bottom: 3px solid var(--green); }
.sc-doc .fx-print-head p { margin: 0; }
.sc-doc-title { margin: 28px 0 4px; text-align: center; font-size: 1.5rem; text-transform: uppercase; letter-spacing: .04em; }
.sc-doc-number { margin: 0 0 24px; text-align: center; color: var(--muted); font-size: .8rem; }
.sc-doc-body { font-size: 1rem; line-height: 1.7; text-align: justify; }
.sc-doc-foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-top: 40px; }
.sc-doc-foot small { display: block; color: var(--muted); font-size: .7rem; }
.sc-qr { width: 110px; height: 110px; }
.sc-signature { text-align: center; }
.sc-signature p { margin: 0 0 4px; }
.sc-verify { max-width: 520px; margin: 40px auto; }
@media (max-width: 600px) { .sc-doc { padding: 20px 16px; } .sc-doc-foot { flex-direction: column; align-items: center; } }
@media print { .sc-doc { box-shadow: none; border: 0; padding: 0; max-width: none; } }

/* Membres en double */
.dup-help { display: flex; gap: 10px; align-items: flex-start; padding: 12px 16px; margin: 0 0 16px; font-size: .875rem; }
.dup-help iconify-icon { flex: none; margin-top: 2px; color: var(--green); }
.dup-group { margin-bottom: 16px; }
.dup-check { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; white-space: nowrap; }
.dup-check input { width: 18px; height: 18px; accent-color: var(--danger); }
.dup-table tr:has(.dup-check input:checked) td { background: #fef3f2; }
.dup-best { display: inline-block; margin-top: 4px; }
.dup-actions { padding: 12px 16px; border-top: 1px solid var(--line); }
@media (max-width: 600px) { .dup-check span { display: none; } .dup-actions .button { width: 100%; justify-content: center; } }

/* Recherche dans les listes de membres (fiche Église) */
.member-search-input { display: block; width: 100%; margin: 4px 0 6px; }

/* Lecture en plein écran (Ma Bible, Guide de prière) */
.reading-full-toggle { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.reading-full-bar { display: none; }
.reading-full { position: fixed; inset: 0; z-index: 1000; margin: 0; max-width: none; border: 0; border-radius: 0; overflow-x: hidden; overflow-y: auto; padding: 0 max(16px, calc((100vw - 860px) / 2)) 32px; }
.reading-full > :not(.reading-full-bar) { zoom: var(--reading-scale, 1.15); }
.reading-full .reading-full-toggle { display: none; }
.reading-full .reading-full-bar { position: sticky; top: 0; z-index: 2; display: flex; justify-content: flex-end; gap: 8px; margin: 0 0 12px; padding: 10px 0; border-bottom: 1px solid var(--line); background: #fff; }
.reading-full-bar .button { display: inline-flex; align-items: center; gap: 6px; }
body.reading-full-on { overflow: hidden; }
.gd-top:has(.reading-full-toggle) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
@media (max-width: 600px) { .bible-text-head:has(.reading-full-toggle) { flex-wrap: wrap; } .reading-full-toggle span { display: none; } }

/* Let's Pray : mode prière (un point à la fois, chronomètre) */
.lp-present { padding: 22px 26px; }
.lp-present-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.lp-present-head h2 { margin: 2px 0 0; color: var(--green-dark); font-size: 1.4rem; }
.lp-present-head .section-eyebrow { margin: 0; }
.lp-chrono { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; margin: 12px 0; color: var(--muted); font-size: .85rem; }
.lp-chrono span { display: inline-flex; align-items: center; gap: 6px; }
.lp-chrono b { color: var(--green-dark); font-variant-numeric: tabular-nums; }
.lp-stage { display: flex; min-height: 42vh; flex-direction: column; justify-content: center; gap: 14px; padding: 24px 8px; text-align: center; }
.lp-stage-count { margin: 0; color: var(--muted); font-size: .85rem; font-weight: 700; letter-spacing: .04em; }
.lp-stage-ref { margin: 0; color: var(--green-dark); font-size: 1.7rem; }
.lp-stage-verse { margin: 0 auto; max-width: 46rem; color: #344054; font-size: 1.35rem; font-style: italic; line-height: 1.6; }
.lp-stage-decl { margin: 0 auto; max-width: 46rem; font-size: 1.25rem; font-weight: 600; line-height: 1.6; }
.lp-closing-on .lp-stage-ref { font-size: 1.4rem; }
.lp-progress { height: 6px; border-radius: 999px; background: var(--green-soft); overflow: hidden; }
.lp-progress i { display: block; width: 0; height: 100%; background: var(--green); transition: width 1s linear; }
.lp-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; margin-top: 16px; }
.lp-controls .button { display: inline-flex; align-items: center; gap: 6px; }
.lp-countdown { min-width: 4.5ch; color: var(--green-dark); font-size: 1.6rem; font-variant-numeric: tabular-nums; text-align: center; }
.lp-duration { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: .8rem; font-weight: 700; }
.lp-duration .button { padding: 6px 12px; }
.lp-duration b { min-width: 4.5em; color: var(--ink); text-align: center; }
.lp-loop { display: inline-flex; align-items: center; gap: 6px; font-size: .85rem; }
.lp-help { margin: 14px 0 0; font-size: .8rem; text-align: center; }
.reading-full .lp-help, .reading-full .lp-present-head { display: none; }
.reading-full .lp-stage { min-height: 40vh; }
.reading-full .lp-controls { position: sticky; bottom: 0; z-index: 2; margin: 0; padding: 10px 0; border-top: 1px solid var(--line); background: #fff; }
@media (max-width: 600px) { .lp-present { padding: 16px; } .lp-stage-ref { font-size: 1.35rem; } .lp-stage-verse, .lp-stage-decl { font-size: 1.1rem; } }

/* Ma Bible en plein écran : un verset à la fois */
.bv-controls, .bv-progress { display: none; }
.reading-full .bv-controls { position: sticky; bottom: 0; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; margin: 18px 0 0; padding: 10px 0; border-top: 1px solid var(--line); background: #fff; }
.reading-full .bv-controls .button { display: inline-flex; align-items: center; gap: 6px; }
.reading-full .bv-progress { display: block; flex-basis: 100%; }
.bv-count { min-width: 6ch; color: var(--green-dark); font-variant-numeric: tabular-nums; text-align: center; }
.reading-full .bible-verses:has(.bv-current) li[data-number]:not(.bv-current) { display: none; }
.reading-full .bible-verses li.bv-current { display: flex; min-height: 34vh; flex-direction: column; justify-content: center; align-items: center; gap: 12px; max-width: 46rem; margin: 0 auto; padding: 24px 8px; font-size: 1.5rem; line-height: 1.6; text-align: center; background: none; }
.reading-full .bible-verses li.bv-current sup { font-size: 1rem; }
.reading-full.compared .bible-verses li.bv-current { display: grid; grid-template-columns: auto 1fr 1fr; align-items: start; max-width: none; text-align: left; }
.reading-full .bible-copybar { display: none; }
.reading-full .bible-columns-head { display: none; }
@media (max-width: 600px) { .reading-full .bible-verses li.bv-current { font-size: 1.2rem; } .reading-full.compared .bible-verses li.bv-current { grid-template-columns: 1fr; } }
.lp-controls > .lp-progress { flex-basis: 100%; }

/* Plein écran « une chose à la fois » (mode prière, verset seul) : tout l'écran, texte ajusté à la place disponible */
.reading-full[data-fit] { display: flex; height: 100vh; height: 100dvh; flex-direction: column; padding: 0 clamp(16px, 4vw, 64px); overflow: hidden; }
.reading-full[data-fit] > * { zoom: 1; }
.reading-full[data-fit] [data-reading-size] { display: none; }
.reading-full[data-fit] .reading-full-bar { flex: none; margin: 0; padding: 8px 0; }
/* Let's Pray */
.reading-full.lp-present .lp-chrono { flex: none; margin: 8px 0; font-size: clamp(.85rem, 1.6vw, 1.3rem); }
.reading-full .lp-stage { flex: 1; min-height: 0; justify-content: center; gap: .5em; padding: 1vh 0; overflow: hidden; }
.reading-full .lp-stage-count { font-size: .45em; }
.reading-full .lp-stage-ref { font-size: 1.15em; }
.reading-full .lp-stage-verse, .reading-full .lp-stage-decl { max-width: none; font-size: .8em; }
.reading-full .lp-stage-decl { font-size: .75em; }
.reading-full .lp-controls, .reading-full .bv-controls { flex: none; gap: 8px; margin: 0; padding: 8px 0 12px; }
.reading-full .lp-controls .button, .reading-full .bv-controls .button { padding: 8px 14px; }
.reading-full .lp-countdown { font-size: clamp(1.2rem, 3vw, 2.4rem); }
/* Ma Bible : verset seul */
.reading-full[data-fit] .bible-text-head { flex: none; align-items: center; margin: 0; padding: 4px 0 8px; }
.reading-full[data-fit] .bible-text-head .section-eyebrow { display: none; }
.reading-full[data-fit] .bible-text-head h3 { font-size: 1.2rem; }
.reading-full[data-fit] .bible-pager .button { padding: 6px 10px; font-size: .8rem; }
.reading-full[data-fit] .bible-verses { display: flex; flex: 1; min-height: 0; flex-direction: column; overflow: hidden; }
.reading-full[data-fit] .bible-verses li.bv-current { flex: 1; min-height: 0; max-width: none; margin: 0; padding: 1vh 0; gap: .3em; font-size: inherit; }
.reading-full[data-fit] .bible-verses li.bv-current sup { font-size: .45em; }
@media (max-width: 600px) {
  .reading-full .lp-duration > span, .reading-full .bv-controls .lp-duration > span { display: none; }
  .reading-full .lp-controls .button span, .reading-full .bv-controls .button span { display: none; }
  .reading-full .lp-loop { font-size: .75rem; }
  .reading-full[data-fit] .bible-pager .button span { display: none; }
}

/* Guide de prière : un point en plein écran */
.gp-overlay { position: fixed; inset: 0; z-index: 1000; display: flex; height: 100vh; height: 100dvh; flex-direction: column; padding: 0 clamp(16px, 4vw, 64px); background: #fff; }
.gp-overlay[hidden] { display: none; }
.gp-bar, .gp-nav { display: flex; flex: none; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; }
.gp-bar { border-bottom: 1px solid var(--line); }
.gp-nav { border-top: 1px solid var(--line); }
.gp-bar .button, .gp-nav .button { display: inline-flex; align-items: center; gap: 6px; }
.gp-code { color: var(--green-dark); }
.gp-count { color: var(--muted); font-weight: 700; font-variant-numeric: tabular-nums; }
.gp-stage { display: flex; flex: 1; min-height: 0; flex-direction: column; justify-content: center; gap: .6em; padding: 1vh 0; overflow: hidden; text-align: center; }
.gp-text { margin: 0; font-weight: 600; line-height: 1.45; }
.gp-scripture { padding: .3em .6em; border-left: 4px solid #84adff; background: #f5f8ff; color: #344054; font-size: .7em; line-height: 1.5; text-align: left; }
.gp-scripture p { margin: 0 0 .3em; }

/* Formations : progression par groupe */
.fo-groups .fo-group-row th, .fo-groups .fo-group-row td { background: var(--surface-muted, #f8fafc); font-weight: 600; }
.fo-groups td small, .fo-groups th small { display: block; color: var(--muted, #667085); font-weight: 400; }
.member-path-title { margin: 14px 0 6px; font-size: .95rem; }
.member-path { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.member-path li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 14px; padding: 8px 10px; border: 1px solid var(--line, #eaecf0); border-left: 4px solid var(--green); border-radius: 8px; }
.member-path li.enrolled { border-left-color: #f79009; }
.member-path li small { display: block; color: var(--muted); }
.member-path-figures { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; }

/* Rapports : graphiques (SVG, imprimables) */
.rp-charts .rp-chart { margin: 0 0 16px; }
.rp-chart figcaption { font-weight: 600; margin-bottom: 6px; }
.rp-chart svg { width: 100%; height: auto; display: block; }
.rp-chart svg.rp-split { height: 26px; border-radius: 6px; overflow: hidden; }
.rp-bar { fill: #2e7d5b; }
.rp-target { fill: none; stroke: #d92d20; stroke-width: 2; stroke-dasharray: 5 3; }
.rp-grid-line { stroke: #eaecf0; }
.rp-base-line { stroke: #98a2b3; }
.rp-axis, .rp-value, .rp-nodata { font-size: 11px; fill: #475467; }
.rp-value { font-weight: 600; fill: #1d2939; }
.rp-nodata { font-size: 16px; fill: #98a2b3; }
.rp-men { fill: #2e7d5b; background: #2e7d5b; }
.rp-women { fill: #c4841d; background: #c4841d; }
.rp-children { fill: #3b6fb6; background: #3b6fb6; }
.rp-legend { margin: 6px 0 0; font-size: .85rem; color: var(--muted); display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; }
.rp-key { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: middle; }
.rp-key-bar { background: #2e7d5b; }
.rp-key-target { height: 0; border-top: 2px dashed #d92d20; border-radius: 0; }
@media print { .rp-chart { break-inside: avoid; } .rp-chart svg * { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

/* Photos des activités */
.event-photos { margin-top: 18px; }
.photo-grid { list-style: none; margin: 0 0 12px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; }
.photo-grid li { display: grid; gap: 4px; align-content: start; }
.photo-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; display: block; background: #f2f4f7; }
.photo-edit { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; }
.photo-edit input[type=text] { flex: 1 1 100%; min-width: 0; padding: 4px 6px; font-size: .85rem; }
.photo-check { font-size: .8rem; display: inline-flex; gap: 4px; align-items: center; }
.rp-photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 6px 0 12px; }
.rp-photos figure { margin: 0; break-inside: avoid; }
.rp-photos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; display: block; }
.rp-photos figcaption { font-size: .8rem; color: var(--muted); }
@media (max-width: 640px) { .rp-photos { grid-template-columns: repeat(2, 1fr); } }
.photo-edit .link-button { color: var(--green); }

/* Examens : concevoir, valider, publier (5 novembre 2026) */
.fo-pending { background: #eaf1ff; color: #24539c; }
.fo-refused { background: #fdecec; color: var(--danger); }
.fo-validated { background: var(--green-muted); color: var(--green); }
.fo-steps { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0 0 14px; padding: 0; color: var(--muted); font-weight: 600; font-size: .88rem; }
.fo-steps li { display: inline-flex; align-items: center; gap: 6px; }
.fo-steps span { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; border: 2px solid var(--line); font-size: .78rem; }
.fo-steps li.done { color: var(--green); }
.fo-steps li.done span { background: var(--green); border-color: var(--green); color: #fff; }
.fo-steps li.current { color: var(--ink, #1d2939); }
.fo-steps li.current span { border-color: var(--green); color: var(--green); }
.fo-workflow { display: grid; gap: 10px; }
.fo-workflow p { margin: 0; }
.fo-validate, .fo-publish, .fo-refuse { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.fo-refuse input { flex: 1 1 220px; min-width: 0; }
.fo-publish input { width: auto; }
.fo-editor .fo-key-row { grid-template-columns: minmax(0, 1fr) auto auto auto; }
.fo-editor .fo-key-row input[type=text] { width: 100%; min-width: 0; }
.fo-qtext { width: 100%; margin: 4px 0 6px; font: inherit; padding: 6px 8px; }
.fo-editor .fo-key-row input[type=text] { font: inherit; padding: 4px 8px; }
.fo-del { font-weight: 400 !important; color: var(--danger); font-size: .8rem; }
legend .fo-del { margin-left: 10px; display: inline-flex; gap: 4px; align-items: center; }
.fo-new input[type=text] { border-style: dashed; }
.fo-until { justify-self: start; margin: 8px 0; }
@media (max-width: 700px) {
  .fo-editor .fo-key-row { grid-template-columns: auto auto 1fr; }
  .fo-editor .fo-key-row > input[type=text] { grid-column: 1 / -1; }
}
.ms-exam { display: block; }
.ms-ok { color: var(--green); }
.ms-ko { color: var(--danger); }
.fo-workflow button:disabled { opacity: .5; cursor: not-allowed; }

/* Examens : préparer à partir du cours (parcourir un chapitre, tirer les questions) */
.fo-prep { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 16px; align-items: start; }
.fo-course-panel { position: sticky; top: 76px; max-height: calc(100vh - 92px); overflow-y: auto; display: grid; gap: 8px; align-content: start; }
.fo-course-panel h3, .fo-course-panel h4 { margin: 4px 0 0; }
.fo-chapter-pick { display: grid; gap: 4px; }
.fo-chapter-pick select { width: 100%; }
.fo-suggestions { margin: 0; padding-left: 20px; display: grid; gap: 8px; }
.fo-suggestions li > div { display: grid; }
.fo-suggestions li { display: list-item; }
.fo-suggestions li .button { margin-top: 4px; }
.fo-suggestions li.used strong { color: var(--muted); }
.fo-suggestions small { color: var(--muted); }
.fo-keys { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: .88rem; }
.fo-keys .link-button { color: var(--green); margin-left: 6px; }
.fo-select-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 8px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); position: sticky; top: -1px; background: #fff; z-index: 1; font-size: .85rem; }
.fo-course-text { font-size: .92rem; line-height: 1.55; }
.fo-course-text::selection, .fo-course-text *::selection { background: #fde68a; }
.fo-flash { box-shadow: 0 0 0 3px #fde68a; transition: box-shadow .3s; }
@media (max-width: 1100px) {
  .fo-prep { grid-template-columns: 1fr; }
  .fo-course-panel { position: static; max-height: 70vh; }
}
.fo-course-panel { overflow-x: hidden; min-width: 0; }
.fo-course-panel, .fo-course-panel * { overflow-wrap: anywhere; }
.fo-chapter-pick select { max-width: 100%; min-width: 0; text-overflow: ellipsis; }
.fo-course-text img, .fo-course-text table { max-width: 100%; }
/* Familles */
.inline-form { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.inline-form select { min-width: 0; max-width: 100%; }
.family-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 12px; }
.family-filter input[type=search] { flex: 1 1 220px; min-width: 0; }
.family-add { margin-top: 14px; }
.family-request { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.family-suggestion .panel-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; }
.family-card dl { margin: 0; }
.family-entries { margin-top: 18px; }
.family-entries h3 { margin: 0 0 4px; font-size: 1rem; }
.family-entry { border: 1px solid var(--line, #dce4ee); border-radius: 12px; padding: 10px 14px 14px; margin: 12px 0 0; min-width: 0; }
.family-entry legend { padding: 0 6px; font-weight: 600; font-size: .875rem; }
/* Salle virtuelle : modifier, retirer ou supprimer */
.sem-week header .sem-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.sem-week header .sem-actions form { margin: 0; }
.button.danger-text { color: var(--danger); }
.room-danger { margin-top: 18px; border-color: #f3c2c2; }
.room-danger h2 { font-size: 1rem; margin: 0 0 6px; }
.proto-zone-picks { display: flex; flex-direction: column; gap: 6px; }
.proto-by-zone td, .proto-by-zone th { white-space: normal; }
.proto-by-zone .proto-zone-picks label { white-space: normal; overflow-wrap: anywhere; }
.proto-by-zone table { min-width: 0; }
.zone-add { margin-top: 10px; }
.zone-table input, .zone-table select { width: 100%; min-width: 0; box-sizing: border-box; }
.zone-table td:nth-child(2) { min-width: 8rem; }
.zone-table td:nth-child(3) { min-width: 5rem; }
.zone-table td:nth-child(4) { min-width: 9rem; }
.zone-table td:nth-child(5) { min-width: 4rem; }
.zone-table { min-width: 34rem; table-layout: auto; }
/* Séminaire : commission, orateurs, modérateurs ; raccourci Ma Bible */
.sem-list { display: grid; gap: 10px; margin-top: 12px; }
.sem-list-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; align-items: end; padding: 10px 12px; border: 1px solid var(--line, #dce4ee); border-radius: 12px; }
.sem-list-row .form-field { min-width: 0; }
.sem-list-row select, .sem-list-row input[type=text] { width: 100%; min-width: 0; }
.sem-list-remove { align-self: center; }
.sem-list-add { margin-top: 10px; }
.bible-shortcut-row { display: flex; flex-wrap: wrap; gap: 8px; }
.bible-shortcut-row input { flex: 1 1 200px; min-width: 0; }
.day-goals input { width: 100%; min-width: 0; }
.day-goals td:nth-child(2) { width: 9rem; }
.day-goals tr.is-sunday td { background: var(--surface-soft, #f6f8fb); }
.sem-prep { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin: 16px 0; }
.sem-prep .panel-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.sem-prep h3 { margin: 0; font-size: 1rem; }
@media (max-width: 640px) {
  .day-goals { min-width: 0; }
  .day-goals thead { display: none; }
  .day-goals tr { display: grid; grid-template-columns: 1fr 6.5rem; gap: 6px 10px; padding: 8px 0; border-bottom: 1px solid var(--line, #e6ebef); }
  .day-goals td { border: 0; padding: 0; width: auto !important; }
  .day-goals td:nth-child(3) { grid-column: 1 / -1; }
}
.session-courses { margin-top: 14px; padding: 12px 14px; border: 1px solid var(--line, #dce4ee); border-radius: 12px; }
.session-courses h4 { margin: 0 0 6px; }
.session-courses-group { margin: 10px 0 4px; font-weight: 600; font-size: .8125rem; text-transform: uppercase; letter-spacing: .02em; color: var(--muted, #667085); }
.session-courses ul { margin: 0; padding-left: 18px; }
.session-courses li { margin: 2px 0; }
.exam-import summary { cursor: pointer; list-style: none; } .exam-import summary h2 { display: inline; }
/* Concepteur de cours : l'éditeur reprend la mise en forme de la lecture (encadrés de couleur, versets) */
.fo-editor-toolbar { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.fo-editor-toolbar button { padding: 5px 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font-size: .8125rem; cursor: pointer; }
.fo-editor-toolbar .fo-tb-objectif { border-left: 4px solid #12b76a; }
.fo-editor-toolbar .fo-tb-retenir { border-left: 4px solid #7a5af8; }
.fo-editor-toolbar .fo-tb-clef { border-left: 4px solid #f79009; }
.fo-editor-toolbar .fo-tb-note { border-left: 4px solid #98a2b3; }
.fo-editor { min-height: 140px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; overflow-wrap: anywhere; }
.fo-editor:focus { outline: 2px solid var(--green-soft); border-color: var(--green); }
.fo-editor:empty::before { content: "Écrivez ici…"; color: var(--muted, #98a2b3); }
.fo-part-design { margin-top: 14px; }
.fo-part-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 8px; }
.fo-order-field { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.fo-order-field input { width: 4.5rem; }
.fo-design-chapters { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.fo-design-chapters li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; }
.fo-design-chapters li > a { display: flex; align-items: center; gap: 10px; min-width: 0; color: var(--ink); text-decoration: none; }
.fo-design-chapters li > a span:last-child { display: flex; flex-direction: column; min-width: 0; }
.fo-design-actions { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
#part-add { margin-top: 12px; }
/* Liste des orateurs du séminaire */
.sp-row { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.sp-row .sp-num input { max-width: 6rem; }
.sp-row .sp-wide { grid-column: span 2; }
.sp-row .sp-search { width: 100%; margin-bottom: 6px; }
@media (max-width: 640px) { .sp-row .sp-wide { grid-column: 1 / -1; } }
.sem-wizard { flex-wrap: wrap; }
.sem-wizard a { color: inherit; text-decoration: none; }
.sem-wizard-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.bible-shortcut-row select { flex: 0 1 220px; min-width: 0; }
.base-texts-preview { margin-top: 8px; padding: 10px 12px; border-left: 4px solid var(--green-soft, #d1fadf); border-radius: 10px; background: #f9fafb; }
.base-texts-preview:empty { display: none; }
.base-texts-preview p { margin: 0 0 6px; }
.base-texts-preview p:last-child { margin-bottom: 0; }
.week-guide input { flex: 0 1 220px; min-width: 0; }
.guide-check { margin: 8px 0 0; padding-left: 0; list-style: none; display: grid; gap: 6px; }
.guide-check:empty { display: none; }
.guide-check li { padding: 8px 10px; border-left: 4px solid #7a5af8; border-radius: 10px; background: #f4f3ff; }
.guide-check li small { display: block; margin-top: 4px; font-style: italic; }
.guide-check li.guide-missing { border-color: var(--danger); background: #fdecec; }
/* Orateurs du séminaire en tableau */
.sp-table { min-width: 1250px; }
.sp-table th { white-space: nowrap; font-size: .75rem; }
.sp-table td { vertical-align: top; padding: 6px; }
.sp-table input, .sp-table select { width: 100%; min-width: 0; }
.sp-table .sp-num input { width: 3.5rem; }
.sp-table .sp-member-cell { min-width: 15rem; }
.sp-table .sp-search { margin-bottom: 4px; }
.sp-table-internal td:nth-child(4) { min-width: 14rem; }
.sp-table-external { min-width: 1150px; }
.sp-table-external td:nth-child(2), .sp-table-external td:nth-child(6) { min-width: 6.5rem; }
.sp-table-external td:nth-child(3), .sp-table-external td:nth-child(4), .sp-table-external td:nth-child(5) { min-width: 8rem; }
.sp-table-external td:nth-child(7) { min-width: 9rem; }
.sp-table-external td:nth-child(8), .sp-table-external td:nth-child(9) { min-width: 11rem; }
.sp-table .sp-number { display: inline-block; min-width: 1.5rem; font-weight: 700; color: var(--green-dark); }
.sp-title { margin: 18px 0 8px; font-size: 1rem; }
.sp-title:first-child { margin-top: 0; }
.sp-table-internal { min-width: 820px; }
.sp-table-internal .sp-identity { min-width: 14rem; font-size: .85rem; }
.sp-finder { display: grid; gap: 6px; margin-bottom: 10px; max-width: 560px; }
.sp-finder input { width: 100%; }
.sp-results { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.sp-results:empty { display: none; }
.sp-results button { width: 100%; text-align: left; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink, #172033); font-weight: 500; cursor: pointer; }
.sp-results button:hover, .sp-results button:focus { border-color: var(--green); background: var(--green-soft); color: var(--green-dark, #172033); }
.sp-table-internal .sp-identity { min-width: 16rem; font-weight: 600; }
.sp-table-internal .sp-church { min-width: 10rem; }
/* Séminaire : actions à réaliser (date, action à mener) */
.sem-actions-table input { width: 100%; min-width: 0; }
.sem-actions-table td:first-child { width: 11rem; }
.sem-actions-table td:last-child { width: 6rem; white-space: nowrap; }
@media (max-width: 640px) {
  .sem-actions-table { min-width: 0; }
  .sem-actions-table thead { display: none; }
  .sem-actions-table tr { display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; padding: 8px 0; border-bottom: 1px solid var(--line, #e6ebef); }
  .sem-actions-table td { border: 0; padding: 0; width: auto !important; }
  .sem-actions-table td:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
}
/* Séminaire : précision choisie dans une liste (portes, dominations) */
#label-choice { width: 100%; }
/* Nouveau membre : tableau « Sa famille » (recherche, personnes hors église, tri par âge) */
.fam-finder { margin-top: 10px; }
.fam-table { min-width: 900px; }
.fam-table td { vertical-align: top; padding: 6px; }
.fam-table input, .fam-table select { width: 100%; min-width: 0; }
.fam-names { display: grid; gap: 6px; }
.fam-row[data-kind="member"] .fam-outside, .fam-row[data-kind="outside"] .fam-member { display: none; }
.fam-name { font-weight: 600; }
.fam-birth small { display: block; color: var(--muted); }
.fam-badge { display: inline-block; padding: 3px 9px; border-radius: 999px; background: var(--green-soft); color: var(--green); font-size: .75rem; white-space: nowrap; }
.fam-badge-out { background: #fff4e5; color: #9a5b00; }
/* Fiche membre : leader choisi par recherche */
.member-picker .picker-chosen { display: flex; gap: 10px; align-items: baseline; min-height: 1.4em; }
.member-picker .picker-name:empty::before { content: attr(data-empty); font-weight: 400; color: var(--muted); }
.followed-courses { margin-top: 14px; }
.followed-courses h3 { margin: 0 0 6px; font-size: 1rem; }
.followed-courses ul { margin: 0 0 4px; padding-left: 18px; }
/* Fiche membre : parties présentées page par page */
.member-steps li a { color: inherit; text-decoration: none; display: block; }
.member-step-nav { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.member-step-nav [hidden] { visibility: hidden; display: inline-flex; }
/* Accès rapide : étoile en haut de page, bloc du tableau de bord */
.quick-star-form { display: inline-flex; margin: 0; }
.quick-star.on { color: #c98a00; }
.quick-star.on iconify-icon { color: #e0a100; }
.quick-panel { margin-bottom: 16px; }
.quick-panel h3 { display: flex; align-items: center; gap: 6px; margin: 0; }
.quick-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; margin-top: 10px; }
.quick-item { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 9px 10px; border: 1px solid var(--line, #e6ebef); border-radius: 10px; background: #fff; }
.quick-panel .quick-item a { flex: 1; display: block; min-height: 0; padding: 0; border: 0; background: none; font-weight: 600; color: var(--ink); text-decoration: none; min-width: 0; overflow-wrap: anywhere; }
.quick-item form { margin: 0; }
/* Guide de prière : ajouter, modifier, supprimer un point */
.gd-part-head { flex-wrap: wrap; }
.gd-part-head > div { min-width: 220px; }
.gd-part-head .gd-add { margin-left: auto; }
.guide-point-actions .button { white-space: nowrap; }
.guide-point-actions { flex-wrap: wrap; max-width: 100%; }
/* Guide de prière ouvert sans compte (lien depuis la page de connexion) */
.public-guide { max-width: 1240px; }
.public-guide-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.login-brand-dark { font-weight: 800; font-size: 1.2rem; color: var(--green, #12643b); text-decoration: none; }
.login-guide .button { display: inline-flex; gap: 6px; align-items: center; margin-top: 4px; }
/* Guide de prière : toute la largeur de l'écran (avec ou sans compte) */
.public-guide { max-width: none; padding-left: 24px; padding-right: 24px; }
@media (min-width: 1400px) { .guide-text .guide-point-text { font-size: 1.15rem; } }
/* Guide de prière : code du point en petite étiquette, texte sur toute la largeur, boutons en ligne dessous */
.gd-point { grid-template-columns: minmax(0, 1fr); }
.gd-point .gd-path { display: flex; align-items: center; gap: 6px; }
.gd-point .gd-pcode { display: inline-block; height: auto; padding: 1px 7px; border-radius: 6px; font-size: .72rem; line-height: 1.5; }
.gd-point .guide-point-actions { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 10px; grid-column: auto; justify-self: start; }
.gd-point .guide-point-actions .button { padding: 5px 10px; min-height: 0; }
@media (max-width: 860px) { .gd-point { grid-template-columns: minmax(0, 1fr); } }
/* Titres des thèmes et des parties : pastilles plus petites */
.gd-roman { width: 32px; height: 32px; border-radius: 8px; font-size: .9rem; }
.gd-theme-head { padding: 9px 12px; }
.gd-code { padding: 2px 6px; font-size: .7rem; border-radius: 6px; }
/* Guide de prière : ajouter un thème, une partie ; modifier */
.gd-head-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.gd-toc-edit { display: flex; gap: 12px; margin: 2px 0 6px 10px; font-size: .75rem; font-weight: 700; }
.gd-toc-edit a { display: inline-flex; align-items: center; gap: 3px; }
.gd-part-head .gd-add + .gd-add { margin-left: 0; }
/* Guide de prière : circuit des modifications */
.gd-changes-notice { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.gd-pending { margin-left: 4px; padding: 1px 7px; border-radius: 999px; background: #fff4e5; color: #9a5b00; font-size: .7rem; text-decoration: none; }
.gc-list { margin-bottom: 16px; }
.gc-list h3 { margin: 0 0 6px; }
.gc-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; padding: 12px 0; border-top: 1px solid var(--line, #e6ebef); scroll-margin-top: 90px; }
.gc-item:target { box-shadow: inset 3px 0 0 var(--green); padding-left: 10px; }
.gc-title { margin: 0 0 4px; }
.gc-old { margin: 4px 0 0; color: var(--muted); text-decoration: line-through; }
.gc-new { margin: 4px 0 0; color: var(--green); font-weight: 600; }
.gc-verse { margin: 4px 0 0; font-style: italic; color: var(--muted); }
.gc-meta { margin: 6px 0 0; font-size: .78rem; }
.gc-side { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.gc-acts { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; align-items: center; }
.gc-acts form { margin: 0; }
.gc-pill { padding: 3px 10px; border-radius: 999px; font-size: .75rem; font-weight: 700; white-space: nowrap; background: #f2f4f7; color: var(--muted); }
.gc-draft { background: #fff4e5; color: #9a5b00; }
.gc-pending { background: #e8f0fe; color: #1a56db; }
.gc-refused { background: #fdecec; color: #b42318; }
.gc-validated { background: var(--green-soft); color: var(--green); }
.gc-refuse form { display: grid; gap: 6px; margin-top: 6px; min-width: 240px; }
.gc-done { margin: 6px 0; }
@media (max-width: 700px) { .gc-item { grid-template-columns: minmax(0, 1fr); } .gc-side { align-items: flex-start; } .gc-acts { justify-content: flex-start; } }
/* Guide de prière : nouveau thème, tous les niveaux sur une page */
.tb-row { display: flex; gap: 8px; align-items: center; }
.tb-row > input { flex: 1; min-width: 0; }
.tb-roman { font-size: .95rem; padding: 6px 10px; }
.tb-label { display: block; font-size: .8rem; font-weight: 700; margin: 10px 0 4px; }
.tb-form textarea { width: 100%; }
.tb-part { border-left: 3px solid var(--green); padding: 4px 0 4px 12px; margin: 16px 0; }
.tb-sub { margin-top: 10px; }
.tb-sub .tb-sub-name { font-weight: 700; color: var(--muted); }
.tb-point { border: 1px solid var(--line, #e6ebef); border-radius: 10px; padding: 10px; margin: 8px 0; background: #fcfcfd; display: grid; gap: 6px; }
.tb-point-head { display: flex; justify-content: space-between; align-items: center; }
.tb-btns { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.tb-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.tb-chip { border: 1px solid #d0d5dd; background: #fff; border-radius: 999px; padding: 3px 9px; font-size: .75rem; cursor: pointer; }
.tb-chip.on { background: #e8f0fe; border-color: #a4c2f4; color: #1a56db; font-weight: 700; }
.tb-chip-new { border-style: dashed; color: var(--muted); }
.tb-actions { align-items: center; }
.tb-help:empty { display: none; }
.gc-tree { margin: 6px 0 0; padding-left: 18px; font-size: .88rem; }
.gd-theme-intro { margin: 4px 0 0; color: var(--muted); font-size: .85rem; }
.tb-form { --th: var(--green); }
.tb-form .gd-code { background: var(--green); color: #fff; }
.tb-form textarea, .tb-form input { font: inherit; }
.tb-chip { color: var(--ink); font-weight: 600; }
.tb-chip.on { color: #1a56db; }
/* Modération : thèmes du guide, points proposés */
.mod-label { display: block; font-size: .8rem; font-weight: 700; margin-bottom: 4px; }
.mod-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.mod-suggest h3 { margin: 14px 0 6px; font-size: 1rem; }
.mod-suggestions { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.mod-suggestions li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 10px; border: 1px solid var(--line, #e6ebef); border-radius: 10px; }
.mod-suggestions li p { margin: 4px 0 0; font-weight: 600; }
.mod-suggestions .gd-code { background: var(--green); color: #fff; }
.mod-add { display: flex; flex-wrap: wrap; gap: 5px; justify-content: flex-end; }
.mod-add .button { padding: 4px 8px; font-size: .78rem; }
@media (max-width: 640px) { .mod-suggestions li { grid-template-columns: minmax(0, 1fr); } .mod-add { justify-content: flex-start; } }
/* Modération : équipe de modérateurs */
.mod-team-table input[type=number] { width: 6rem; }
.mod-team-names { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.mod-team-names small { display: block; }
/* Modération en étapes : attribution et minutage */
.mod-attrib .gd-code { background: var(--green); color: #fff; }
.mod-attrib-text { margin: 4px 0 0; }
.mod-attrib td:nth-child(3) { min-width: 200px; }
.mod-attrib td:nth-child(4) input { width: 6rem; }
.mod-totals { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 12px; font-size: .9rem; }
.mod-missing { color: var(--danger, #b42318); font-weight: 700; }
.mod-manual { margin-top: 16px; }
.mod-who-line { margin: 0 0 2px; font-size: .85rem; color: var(--muted); }
.mod-report { margin-bottom: 16px; }
