/* MCR Portail — charte : bleu nuit et or, Cormorant Garamond (Écriture, titres) + Inter (texte).
   Élément signature : le signet de missel, aux couleurs du temps liturgique du jour. */
@font-face{font-family:"Cormorant Garamond";src:url("fonts/Cormorant.woff2") format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:Inter;src:url("fonts/Inter.woff2") format("woff2");font-weight:100 900;font-display:swap}

:root{
  --navy:#1D3461;--navy-d:#152849;--navy-dd:#0F1E38;--navy2:#2C4A80;--ink:#14213D;--muted:#4F5B70;
  --bg:#F3F5F9;--paper:#fff;--line:#E1E5EE;--line2:#ECEFF5;
  --gold:#C9A04E;--gold-l:#E9C77B;--gold-t:#6B5320;--sand:#FBF5E8;--sand-l:#EBDDBD;
  --clair:#C9D3E6;
  --red:#9B2C2C;--red-bg:#FDECEC;--amber:#7A4E00;--amber-bg:#FFF4DE;
  --green:#1E5B2E;--green-bg:#E6F4EA;--blue:#1D4E89;--blue-bg:#E8F1FB;
  --lit-vert:#2F6B4F;--lit-violet:#5B3C7D;--lit-rouge:#A3282C;--lit-blanc:#FBF8F0;
  --radius:14px;--ombre:0 1px 2px rgba(20,33,61,.05),0 10px 28px -14px rgba(20,33,61,.28);
  --serif:"Cormorant Garamond",Georgia,serif
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);font-family:Inter,system-ui,sans-serif;color:var(--ink);font-size:15px;line-height:1.55}
a{color:var(--navy);text-underline-offset:3px}a:hover{color:var(--navy-dd)}
h1,h2,h3{margin:0}
.serif{font-family:var(--serif)}
.small{font-size:13px;color:var(--muted)}
.muted{color:var(--muted)}
.eyebrow{font-size:14px;font-weight:600;color:var(--gold-t)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.saut{position:absolute;left:12px;top:-60px;z-index:20;background:var(--gold-l);color:var(--navy);padding:10px 16px;border-radius:10px;font-weight:600}
.saut:focus{top:12px}
.ico{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Couleurs liturgiques : chaque .lit-x fixe --c ---------- */
.lit-vert{--c:var(--lit-vert)}.lit-violet{--c:var(--lit-violet)}.lit-rouge{--c:var(--lit-rouge)}.lit-blanc{--c:var(--lit-blanc)}
.lit{display:inline-flex;align-items:center;gap:8px;padding:4px 12px 4px 7px;border-radius:999px;background:var(--paper);border:1px solid var(--line);font-size:13px;font-weight:600;color:var(--ink);line-height:1.3}
.lit-pt{width:12px;height:12px;border-radius:50%;background:var(--c);flex:none}
.lit-blanc .lit-pt{box-shadow:inset 0 0 0 2px var(--gold)}

/* Signet de missel : ruban à queue d'aronde suspendu au bord haut */
.signet{position:absolute;top:0;width:16px;height:76px;background:var(--c,var(--gold));clip-path:polygon(0 0,100% 0,100% 100%,50% 84%,0 100%);pointer-events:none}
.signet-vert{--c:var(--lit-vert)}.signet-violet{--c:var(--lit-violet)}.signet-rouge{--c:var(--lit-rouge)}
.signet-blanc{background:linear-gradient(90deg,var(--gold) 0 3px,var(--lit-blanc) 3px calc(100% - 3px),var(--gold) calc(100% - 3px))}
@media (prefers-reduced-motion:no-preference){
  .signet{animation:signet 1.1s cubic-bezier(.2,.8,.2,1) .15s both}
  @keyframes signet{from{transform:translateY(-100%)}to{transform:none}}
}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:10px;font:inherit;font-size:15px;font-weight:600;text-decoration:none;cursor:pointer;border:1px solid transparent;background:none;color:var(--navy)}
.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover{background:var(--navy-d);color:#fff}
.btn-ghost{background:var(--paper);color:var(--ink);border-color:#D6DCE7;font-weight:500}.btn-ghost:hover{border-color:var(--navy)}
.btn-danger{background:var(--paper);color:var(--red);border-color:#E9C3C3}
.btn-or{background:var(--gold-l);color:var(--navy)}.btn-or:hover{background:#F1D597;color:var(--navy)}
.btn-clair{background:transparent;color:#fff;border-color:#4A6396}.btn-clair:hover{border-color:var(--gold-l);color:#fff}
.btn-lien{color:#fff;font-weight:500}.btn-lien:hover{color:var(--gold-l)}
.btn-sm{min-height:36px;padding:0 12px;font-size:14px}
.inline{display:inline}

/* ---------- Messages ---------- */
.alert{padding:12px 16px;border-radius:10px;font-size:14px;margin-bottom:4px}
.alert-ok{background:var(--green-bg);color:var(--green)}
.alert-err{background:var(--red-bg);color:var(--red)}

/* ---------- Cartes ---------- */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:4px}
.card.sand{background:var(--sand);border-color:var(--sand-l)}
.card .big{font-size:30px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
a.card{text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}
a.card:hover{border-color:#B8C3D8;box-shadow:var(--ombre)}
.card-ico{width:38px;height:38px;border-radius:11px;background:var(--sand);color:var(--gold-t);display:inline-flex;align-items:center;justify-content:center;margin-bottom:8px}
.card.sand .card-ico{background:var(--paper)}
.card.alerte .card-ico{background:#fff;color:var(--red)}
.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:24px}
.panel h2{font-size:18px;margin-bottom:12px}
.pill{display:inline-block;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap}
.p-red{background:var(--red-bg);color:var(--red)}.p-amber{background:var(--amber-bg);color:var(--amber)}
.p-blue{background:var(--blue-bg);color:var(--blue)}.p-green{background:var(--green-bg);color:var(--green)}
.p-grey{background:#EEF0F5;color:var(--muted)}

/* ---------- Formulaires ---------- */
.form{display:grid;gap:16px;max-width:720px}
.form .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
label .hint{font-weight:400;color:var(--muted);font-size:13px}
input[type=text],input[type=tel],input[type=email],input[type=password],input[type=date],input[type=number],input[type=search],select,textarea{
  font:inherit;font-weight:400;min-height:46px;padding:9px 13px;border:1px solid #C9D1DE;border-radius:10px;background:var(--paper);color:var(--ink);width:100%;transition:border-color .15s}
input:hover,select:hover,textarea:hover{border-color:#9FAAC0}
textarea{min-height:96px;resize:vertical}
input:focus,select:focus,textarea:focus,.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--gold-l);outline-offset:1px}
.check{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--navy)}
.checks{display:flex;flex-wrap:wrap;gap:8px 20px}
fieldset{border:1px solid var(--line);border-radius:12px;padding:16px;margin:0}
legend{font-weight:600;padding:0 6px}

/* ---------- Tableaux ---------- */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;color:var(--muted);padding:10px 8px;font-weight:600;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:11px 8px;border-bottom:1px solid var(--line2);vertical-align:top}
tbody tr:hover td{background:#FAFBFD}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.plus{color:var(--green)}
.barre{text-decoration:line-through;color:var(--muted)}

/* ===================== Pages publiques ===================== */
.wrap{max-width:1120px;margin:0 auto;padding:16px 24px}
.logo{width:44px;height:44px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;flex:none}
.logo-img{width:44px;height:44px;border-radius:50%;object-fit:contain;background:#fff;flex:none}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.brand-name{font-family:var(--serif);font-size:23px;font-weight:600;line-height:1.05;display:block}
.brand-sub{display:block;font-size:12.5px;opacity:.8}
.top{background:var(--navy);color:#fff}
.top .brand:hover{color:#fff}
.top-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.top-nav{display:flex;gap:6px;flex-wrap:wrap}
.public-main{display:block}
.pub-corps{padding-top:40px;padding-bottom:64px;display:flex;flex-direction:column;gap:56px}

/* Héros : la Parole du jour, dans la lumière de la Résurrection */
.hero{position:relative;overflow:hidden;color:#fff;background:
  radial-gradient(ellipse 55% 90% at 88% -10%,rgba(233,199,123,.30),transparent 62%),
  linear-gradient(180deg,var(--navy) 0%,var(--navy-d) 100%)}
.hero::before{content:"";position:absolute;inset:0;background:repeating-radial-gradient(circle at 88% 0%,transparent 0 62px,rgba(233,199,123,.16) 62px 63px);
  -webkit-mask-image:radial-gradient(circle at 88% 0%,#000 0,transparent 520px);mask-image:radial-gradient(circle at 88% 0%,#000 0,transparent 520px)}
.hero-in{position:relative;max-width:1120px;margin:0 auto;padding:56px 24px 132px 72px;display:flex;flex-direction:column;gap:18px}
.hero .signet{left:32px;height:96px}
.hero-date{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;color:var(--clair);font-size:15px}
.hero .lit,.parole .lit{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.18);color:#fff}
.hero-verset{margin:0;max-width:21em;font-family:var(--serif);font-weight:500;font-size:clamp(32px,5vw,60px);line-height:1.1;letter-spacing:-.005em;text-wrap:balance}
.hero-verset::before{content:"« "}.hero-verset::after{content:" »"}
.hero-ref{margin:0;color:var(--gold-l);font-weight:600;font-size:15px}
.hero .alert{max-width:640px}

/* Les deux portes, posées sur le bas du héros */
.pub-accueil{padding-top:0}
.doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-top:-88px;position:relative}
.door{display:flex;flex-direction:column;gap:12px;padding:32px;border-radius:20px;text-decoration:none;min-height:270px;background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:var(--ombre);transition:transform .2s,box-shadow .2s}
.door:hover{color:var(--ink);transform:translateY(-2px);box-shadow:0 2px 4px rgba(20,33,61,.06),0 22px 44px -18px rgba(20,33,61,.38)}
.door-a{border-top:4px solid var(--gold)}
.door-ico{width:52px;height:52px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:var(--navy);color:var(--gold-l)}
.door-ico .ico{width:26px;height:26px}
.door-b .door-ico{background:var(--sand);color:var(--gold-t)}
.door .t{font-family:var(--serif);font-size:46px;font-weight:600;line-height:1;color:var(--navy);margin-top:6px}
.door .d{font-size:16px;line-height:1.55;max-width:440px;color:var(--muted)}
.door .go{margin-top:auto;font-weight:600;color:var(--navy);text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:5px}

.bloc{display:flex;flex-direction:column;gap:16px}
.bloc h2,.duo h2{font-family:var(--serif);font-size:32px;font-weight:600;line-height:1.1;color:var(--navy)}
.bloc-tete{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px}
.bloc-tete p{margin:0}
.content .bloc h2{font-size:26px}

/* La semaine du Ministère : sept jours, chacun dans sa couleur liturgique */
.semaine{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.sj{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:20px 12px 14px;display:flex;flex-direction:column;gap:2px;min-height:112px;overflow:hidden}
.sj-bande{position:absolute;left:0;right:0;top:0;height:6px;background:var(--c)}
.sj-bande.lit-blanc{background:linear-gradient(180deg,var(--lit-blanc) 0 3px,var(--gold) 3px)}
.sj-nom{font-size:13px;color:var(--muted)}
.sj-nom b{display:block;font-variant-numeric:lining-nums;font-family:var(--serif);font-size:30px;line-height:1;color:var(--ink);font-weight:600}
.sj-act-l{font-size:13px;font-weight:600;color:var(--muted);margin-top:auto}
.sj-act .sj-act-l{color:var(--navy)}
.sj-fete{font-size:12px;line-height:1.3;color:var(--gold-t)}
.sj-auj{border:2px solid var(--gold);padding:19px 11px 13px;background:var(--sand)}

.duo{display:grid;align-items:start;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.retraites{background:var(--sand);border:1px solid var(--sand-l);border-radius:20px;padding:28px;display:flex;gap:18px;align-items:flex-start}
.retraites-ico{width:48px;height:48px;border-radius:14px;background:var(--paper);color:var(--gold-t);display:inline-flex;align-items:center;justify-content:center;flex:none}
.retraites p,.rejoindre p{margin:8px 0 0;color:var(--muted);max-width:52ch}
.rejoindre{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:28px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.rejoindre .btn{margin-top:12px}

/* Pied de page */
.pied{background:var(--navy-dd);color:var(--clair);font-size:14px}
.pied-grille{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;padding-top:36px;padding-bottom:24px}
.pied-marque{display:flex;gap:14px;align-items:flex-start;max-width:420px}
.pied-marque b{font-size:20px;color:#fff;display:block;line-height:1.2}
.pied-marque p{margin:4px 0 0}
.pied-contact{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pied-contact li{display:flex;gap:10px;align-items:center}
.pied-contact .ico{color:var(--gold-l);width:18px;height:18px}
.pied a{color:#fff;text-decoration:none}.pied a:hover{color:var(--gold-l);text-decoration:underline}
.pied-bas{border-top:1px solid rgba(255,255,255,.1);font-size:12.5px;color:#93A1BB;padding-top:14px;padding-bottom:20px}

/* Connexion et inscription : la Parole à gauche, le formulaire à droite */
.auth{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);background:var(--paper);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--ombre);max-width:980px;width:100%;margin:0 auto}
.auth-cote{position:relative;background:radial-gradient(ellipse 90% 60% at 100% 0%,rgba(233,199,123,.12),transparent 65%),var(--navy);color:#fff;padding:120px 36px 40px;display:flex;flex-direction:column;gap:12px;justify-content:flex-end}
.auth-cote .signet{left:36px}
.auth-date{font-size:14px;color:var(--clair)}
.auth-verset{margin:0;font-family:var(--serif);font-size:32px;line-height:1.15;font-weight:500}
.auth-verset::before{content:"« "}.auth-verset::after{content:" »"}
.auth-ref{color:var(--gold-l);font-weight:600;font-size:14px}
.auth-long .auth-cote{justify-content:flex-start;padding-top:120px}
.auth-card{padding:40px;display:flex;flex-direction:column;gap:8px;min-width:0}
.auth-card h1{font-family:var(--serif);font-size:38px;font-weight:600;color:var(--navy);line-height:1.1}
.auth-card .form{margin-top:12px}
.narrow{max-width:640px;margin:0 auto;width:100%}

/* ===================== Espace du Ministère ===================== */
.app{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh;background:linear-gradient(90deg,var(--navy-d) 0 264px,transparent 264px)}
.side{position:sticky;top:0;height:100vh;overflow-y:auto;background:linear-gradient(180deg,var(--navy) 0%,var(--navy-d) 100%);color:#fff;padding:22px 14px 16px;display:flex;flex-direction:column;gap:2px}
.side .signet{right:22px;height:64px}
.side-tete{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px 18px}
.side .brand{color:#fff}
.side .brand .brand-name{font-size:24px}
.side .logo-img{width:42px;height:42px}
.side .side-menu{display:none}
.side-liens{display:flex;flex-direction:column;gap:2px;flex:1}
.side-liens a,.side button{display:flex;align-items:center;gap:12px;min-height:42px;padding:0 12px;border-radius:10px;color:var(--clair);text-decoration:none;font:inherit;font-size:14.5px;background:none;border:none;cursor:pointer;text-align:left}
.side-liens a .ico{color:#8FA0C0}
.side-liens a[aria-current=page]{background:rgba(255,255,255,.09);color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--gold-l)}
.side-liens a[aria-current=page] .ico{color:var(--gold-l)}
.side-liens a:hover,.side button:hover{background:rgba(255,255,255,.06);color:#fff}
.side-titre{margin:18px 12px 6px;font-size:12px;font-weight:600;color:var(--gold-l);letter-spacing:.02em}
.who{margin-top:auto;padding:14px 8px 2px;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:10px;font-size:12.5px;color:#AFBBD2}
.who-ini{width:36px;height:36px;border-radius:50%;background:var(--gold-l);color:var(--navy);display:inline-flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;font-size:19px;flex:none}
.who-nom{display:flex;flex-direction:column;min-width:0;flex:1}
.who-nom b{color:#fff;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who form{margin:0}
.who button{width:40px;padding:0;justify-content:center;color:var(--clair)}

.content{min-width:0;padding:22px 36px 48px;display:flex;flex-direction:column;gap:24px;max-width:1240px;width:100%}
.bandeau{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;font-size:13.5px;color:var(--muted);padding-bottom:14px;border-bottom:1px solid var(--line)}
.head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px}
.head h1{font-family:var(--serif);font-size:40px;font-weight:600;line-height:1.05;color:var(--navy)}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.seg{display:inline-flex;border:1px solid #D6DCE7;border-radius:10px;overflow:hidden}
.seg a{min-height:44px;padding:0 16px;display:inline-flex;align-items:center;text-decoration:none;font-size:14px;font-weight:600;background:var(--paper);color:var(--ink)}
.seg a[aria-current=true]{background:var(--navy);color:#fff}
.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.filters label{min-width:180px}
.list-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line2)}
.list-row .grow{flex:1 1 220px;display:flex;flex-direction:column;gap:2px}
details summary{cursor:pointer;color:var(--navy);font-weight:600;font-size:14px}
dl.answers{margin:8px 0 0;display:grid;gap:8px}
dl.answers dt{font-size:13px;color:var(--muted)}
dl.answers dd{margin:0 0 4px}
.empty{color:var(--muted);font-size:14px;padding:12px 0}

/* Parole du jour dans l'espace */
.parole{position:relative;overflow:hidden;margin:0;border-radius:20px;padding:30px 36px 30px 64px;color:#fff;display:flex;flex-direction:column;gap:12px;background:
  radial-gradient(ellipse 60% 120% at 100% 0%,rgba(233,199,123,.2),transparent 60%),linear-gradient(135deg,var(--navy),var(--navy-d))}
.parole::before{content:"";position:absolute;inset:0;background:repeating-radial-gradient(circle at 100% 0%,transparent 0 46px,rgba(233,199,123,.1) 46px 47px);
  -webkit-mask-image:radial-gradient(circle at 100% 0%,#000 0,transparent 340px);mask-image:radial-gradient(circle at 100% 0%,#000 0,transparent 340px)}
.parole .signet{left:28px;height:70px}
.parole-tete{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:14px;color:var(--clair)}
.parole blockquote{position:relative;margin:0;font-family:var(--serif);font-size:clamp(25px,2.8vw,34px);line-height:1.2;font-weight:500;max-width:30em;text-wrap:balance}
.parole blockquote::before{content:"« "}.parole blockquote::after{content:" »"}
.parole figcaption{position:relative;font-size:14px;font-weight:600}
.parole figcaption a{color:var(--gold-l);text-decoration:none}.parole figcaption a:hover{text-decoration:underline}

/* Onglets du bas (téléphone) */
.onglets{display:none}

/* Rapport imprimable */
.report{background:#fff;max-width:900px;margin:0 auto;padding:40px}
.report h1{font-family:var(--serif);font-size:34px}
.report .sign{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:48px}
.report .sign div{border-top:1px solid var(--ink);padding-top:8px;font-size:13px}

/* ===================== Vie spirituelle ===================== */
.card.alerte{border-color:#E9C3C3;background:var(--red-bg)}
.tuile b{font-size:16px;color:var(--navy)}
.lien-ligne{text-decoration:none;color:inherit}.lien-ligne:hover{background:var(--bg)}
.programme-carte{background:linear-gradient(135deg,var(--navy),var(--navy-d));color:#fff;border-radius:20px;padding:26px;display:flex;flex-direction:column;gap:12px}
.programme-carte h2{font-size:21px;font-family:var(--serif);font-weight:600;font-size:26px}
.programme-carte h3{font-size:15px;color:var(--gold-l);margin-top:4px}
.programme-carte a{color:#fff}
.clair{color:var(--clair)}.lien-clair{color:var(--gold-l)!important;font-weight:600;text-decoration:none}
.lien-clair:hover{text-decoration:underline}
progress{width:100%;max-width:280px;height:8px;border:none;border-radius:4px;background:var(--line);accent-color:var(--gold)}
progress::-webkit-progress-bar{background:var(--line);border-radius:4px}
progress::-webkit-progress-value{background:var(--gold);border-radius:4px}
progress::-moz-progress-bar{background:var(--gold);border-radius:4px}
.programme-carte progress{max-width:none;background:var(--navy2)}
.programme-carte progress::-webkit-progress-bar{background:var(--navy2)}
.jour-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.jour-liste b{display:inline-block;min-width:84px;color:var(--gold-t)}
.programme-carte .jour-liste b{color:var(--gold-l)}
.jour{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;padding:16px 0;border-top:1px solid var(--line2)}
.jour .jour-num{min-width:120px;display:flex;flex-direction:column}
.jour.aujourdhui{background:var(--sand);margin:0 -24px;padding:16px 24px;border-radius:10px}
.jour.fait .jour-num b::after{content:" ✓";color:var(--green)}
.grow{flex:1 1 220px}
tr.aujourdhui td{background:var(--sand)}
.jours-edition input{min-width:150px}
.recit{white-space:pre-wrap;line-height:1.7;margin-top:10px;font-size:16px}
.recit.court{font-size:14px;margin-top:4px;color:var(--ink)}
.cadre{background:var(--sand);border:1px solid var(--sand-l);border-radius:10px;padding:14px 16px;font-size:14px;color:var(--gold-t);margin:0 0 16px}
.reponse{border-color:var(--sand-l);background:#FFFDF7}
.reponse audio{width:100%;margin-top:12px}
.orientation{margin:12px 0 0;font-weight:600;color:var(--navy)}
.narrow-panel{max-width:780px}
.enregistreur{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px}
.enregistreur audio{width:100%}
.inline-label{flex-direction:row;align-items:center;gap:8px}
.inline-label select{width:auto}
label.intention{padding:12px 0;border-top:1px solid var(--line2);font-weight:400}
pre{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px;overflow-x:auto;font-size:13px}
.grow-label{flex:1 1 320px}
.livres{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.livre{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink);background:var(--paper)}
.livre:hover{border-color:var(--gold);background:var(--sand)}
.lecture{max-width:820px}
.lecture .v{display:flex;gap:6px;align-items:flex-start;border-radius:8px;padding:2px 6px}
.lecture .v p{margin:0;font-family:var(--serif);font-size:22px;line-height:1.55}
.lecture sup{font-family:Inter,sans-serif;font-size:11px;color:var(--gold-t);font-weight:600;margin-right:2px}
.lecture .surligne{background:var(--sand)}
.favori{margin:0}
.etoile{border:none;background:none;cursor:pointer;color:#C9CFDB;font-size:16px;min-width:28px;min-height:28px;padding:0;line-height:1}
.etoile.on,.etoile:hover{color:var(--gold)}
.resultat{margin:0;padding:10px 0;border-top:1px solid var(--line2);line-height:1.6}


/* ===================== Agenda, retraites, matériel ===================== */
.ev-mission{--t:var(--navy2)}.ev-intercession{--t:var(--lit-violet)}.ev-messe{--t:var(--gold)}
.ev-retraite{--t:var(--gold)}.ev-reunion{--t:#5E6B82}.ev-formation{--t:var(--lit-vert)}.ev-autre{--t:#8A94A6}
.agenda{padding:8px 24px}
.ag-jour{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;padding:16px 0;border-top:1px solid var(--line2)}
.ag-jour:first-child{border-top:none}
.ag-date{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;color:var(--muted);font-size:12.5px}
.ag-date b{font-family:var(--serif);font-size:34px;line-height:1;color:var(--navy);font-weight:600;font-variant-numeric:lining-nums}
.ag-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ag-ev{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:10px 14px;border-radius:10px;border:1px solid var(--line);border-left:4px solid var(--t,var(--gold));text-decoration:none;color:var(--ink);background:var(--paper)}
.ag-ev:hover{border-color:#B8C3D8;border-left-color:var(--t,var(--gold));background:#FAFBFD;color:var(--ink)}
.ag-ev .ag-titre{font-weight:600;flex:1 1 200px}
.ag-ev .small{flex:1 1 100%;order:3}
.ev-annule{opacity:.6}.ev-annule .ag-titre{text-decoration:line-through}
.ag-compacte .ag-ev{display:grid;grid-template-columns:minmax(150px,auto) 1fr auto;gap:12px}
.ag-quand{font-size:13px;color:var(--muted)}
.ag-compacte .ag-titre{flex:none}

.retraites-liste{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.retraite-carte{position:relative;display:flex;gap:18px;align-items:center;padding:20px 22px;border-radius:18px;text-decoration:none;color:#fff;overflow:hidden;
  background:radial-gradient(ellipse 70% 120% at 100% 0%,rgba(233,199,123,.24),transparent 60%),linear-gradient(135deg,var(--navy),var(--navy-d));box-shadow:var(--ombre)}
.retraite-carte:hover{color:#fff;transform:translateY(-1px)}
.retraite-date{flex:none;width:72px;height:80px;border-radius:14px;background:var(--gold-l);color:var(--navy);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11.5px;font-weight:600;line-height:1.2;text-align:center;padding:4px}
.retraite-date b{font-family:var(--serif);font-size:36px;line-height:.95;font-variant-numeric:lining-nums}
.retraite-corps{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.retraite-titre{font-family:var(--serif);font-size:25px;font-weight:600;line-height:1.1}
.retraite-carte .small{color:var(--clair)}
.retraite-pied{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin-top:4px}
.retraite-appel{flex-wrap:wrap}
.retraite-appel .btn{flex:none}

dl.fiche{display:grid;grid-template-columns:max-content 1fr;gap:10px 20px;margin:0}
dl.fiche dt{color:var(--muted);font-size:14px}
dl.fiche dd{margin:0;font-weight:500}
.ev-fiche{border-top:4px solid var(--t,var(--gold))}
.inscription-carte{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.inscription-carte p{margin:0}
.sous-titre{margin:20px 0 4px;font-size:15px}

.appel-tete{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:8px}
.appel-tete p{margin:0;max-width:60ch}
.appel-filtre{min-width:240px}
.feuille{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.appel-ligne{padding:12px 14px;border:1px solid var(--line);border-radius:10px;cursor:pointer;min-height:52px;align-items:center}
.appel-ligne:has(input:checked){border-color:var(--gold);background:var(--sand)}
.appel-ligne .small{display:block}
.appel-pied{position:sticky;bottom:0;display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:16px 0 4px;background:var(--paper);margin-top:12px;border-top:1px solid var(--line2)}
@media (max-width:900px){.appel-pied{bottom:72px}}
@media (max-width:640px){
  .agenda{padding:4px 14px}
  .ag-jour{grid-template-columns:44px minmax(0,1fr);gap:10px}
  .ag-date b{font-size:28px}
  .ag-compacte .ag-ev{grid-template-columns:1fr}
  .retraite-carte{padding:16px}
  .retraite-date{width:60px;height:70px}
  .retraite-titre{font-size:22px}
  .retraite-appel .btn{flex:1 1 100%}
}

/* ===================== Petits écrans ===================== */
@media (max-width:960px){
  .semaine{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(104px,1fr);overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory}
  .sj{scroll-snap-align:start}
}
@media (max-width:900px){
  .app{display:block;background:none}
  .side{position:relative;height:auto;padding:12px 12px 8px;overflow:visible}
  .side .signet{right:auto;left:70px;height:44px}
  .side-tete{padding:0 4px 4px}
  .side .brand .brand-name{font-size:21px}
  .side .signet{display:none}
  .side .side-menu{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:none;color:#fff;font:inherit;font-size:14px;cursor:pointer}
  .js .side-liens{display:none}
  .js .side.ouvert .side-liens{display:flex}
  .side-liens{padding-top:8px}
  .content{padding:16px 16px 96px}
  .head h1{font-size:32px}
  .onglets{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:10;background:var(--paper);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -8px 24px -16px rgba(20,33,61,.35)}
  .onglets a{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:52px;justify-content:center;font-size:11.5px;font-weight:600;color:var(--muted);text-decoration:none;border-radius:10px}
  .onglets a[aria-current=page]{color:var(--navy)}
  .onglets a[aria-current=page] .ico{color:var(--gold-t);stroke-width:2.1}
  .auth{grid-template-columns:1fr}
  .auth-cote,.auth-long .auth-cote{padding:84px 24px 26px}
  .auth-verset{font-size:26px}
  .auth-card{padding:28px 22px}
}
@media (max-width:640px){
  .wrap{padding-left:16px;padding-right:16px}
  .top-row{justify-content:space-between}
  .top .brand-sub{display:none}
  .top-nav .btn-lien{display:none}
  .hero-in{padding:40px 16px 112px 52px}
  .hero .signet{left:18px;height:72px}
  .doors{margin-top:-72px;gap:16px}
  .door{padding:24px;min-height:0}
  .door .t{font-size:38px}
  .parole{padding:26px 20px 24px 48px}
  .parole .signet{left:16px}
  .pub-corps{gap:40px}
  .bloc h2,.duo h2{font-size:28px}
}
@media print{
  .side,.no-print,.onglets,.signet,.saut{display:none!important}
  .app{display:block}
  body{background:#fff}
  .content{padding:0}
  .report{padding:0}
}
