/* Chorale Saint-Thomas Apôtre — v4
   Thème sombre (par défaut) et thème clair aux couleurs du logo, version ordinateur et téléphone,
   lecteur de chants persistant, visionneuse repensée. Respecte « réduire les animations ». */
:root{
  /* Charte de la chorale : aubergine profond, bordeaux du vitrail, sable doré, crème. Thème sombre. */
  --bg:#15101c; --surface:#1f1829; --surface-2:#2a2136; --fg:#f3ede2; --muted:#b8adc6; --line:#3a2e4a;
  --accent:#c4413b; --accent-fg:#fff8f0; --accent-soft:#3a1d24;
  --brass:#dcc79a; --brass-line:#a88d5a; --brass-soft:#2c2419;
  --hero-1:#1d1129; --hero-2:#3b2357; --hero-fg:#f6efe1; --hero-muted:#cdbfdc; --hero-brass:#dcc79a;
  --danger:#ff8a80; --ok:#7fd6a4; --rose:#e2789f; --violet:#b79cf0;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 6px 20px rgba(0,0,0,.3);
  --shadow-lift:0 2px 4px rgba(0,0,0,.4),0 14px 34px rgba(0,0,0,.45);
  --display:'Marcellus','Iowan Old Style','Palatino Linotype',Georgia,serif;
  --body:'Source Sans 3',system-ui,-apple-system,'Segoe UI',sans-serif;
  --syr:'Noto Sans Syriac','Estrangelo Edessa','Segoe UI',serif;
  --r:12px; --ease:cubic-bezier(.2,.8,.2,1); --spring:cubic-bezier(.2,1.1,.3,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 var(--body);-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--hero-1)}
img,video{max-width:100%}
h1,h2,h3{font-family:var(--display);font-weight:400;margin:0;text-wrap:balance}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}
.inner{max-width:820px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--muted)}
.small{font-size:.875rem}
.ico{width:20px;height:20px;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Bandeau ---------- */
.hero{position:relative;overflow:hidden;color:var(--hero-fg);background:linear-gradient(135deg,var(--hero-1),var(--hero-2))}
.hero::after{content:"";position:absolute;inset:-40%;background:radial-gradient(closest-side at 30% 40%,rgba(220,199,154,.16),transparent 70%),radial-gradient(closest-side at 75% 70%,rgba(163,40,44,.32),transparent 70%);animation:drift 22s ease-in-out infinite alternate;pointer-events:none}
@keyframes drift{from{transform:translate3d(-4%,-2%,0) rotate(0)}to{transform:translate3d(4%,3%,0) rotate(8deg)}}
.hero .inner{position:relative;z-index:1;padding-block:max(22px,env(safe-area-inset-top,0px)) 18px;display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.hero-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.syr{font-family:var(--syr);color:var(--hero-brass);font-size:1.45rem;line-height:1.2}
.hero h1{font-size:clamp(1.5rem,6vw,2.25rem);line-height:1.1}
.hero .sub{color:var(--hero-muted);font-size:.95rem}
.hero-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);color:var(--hero-fg);cursor:pointer;font-weight:600;font-size:.9rem;backdrop-filter:blur(6px);transition:background .2s var(--ease),transform .15s var(--ease)}
.hero-btn:hover{background:rgba(255,255,255,.18)}
.hero-btn:active{transform:scale(.97)}
.guest-pill{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--hero-brass);margin-top:6px}

/* ---------- Navigation ---------- */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:8;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}
.tabs{position:relative;display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;background:none;border:0;padding:13px 12px 12px;cursor:pointer;color:var(--muted);font-weight:600;min-height:50px;transition:color .2s var(--ease)}
.tab .ico{width:19px;height:19px}
.tab[aria-selected="true"]{color:var(--fg)}
.tab:hover{color:var(--fg)}
.tab-ind{position:absolute;bottom:0;left:0;height:3px;border-radius:3px 3px 0 0;background:var(--accent);transition:transform .35s var(--spring),width .35s var(--spring);pointer-events:none}

main .inner{padding-block:24px 90px}
.view{display:flex;flex-direction:column;gap:18px}
.view.enter{animation:viewIn .45s var(--ease) both}
@keyframes viewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.view-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.view-head h2{font-size:1.75rem;line-height:1.15}
.eyebrow{font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;color:var(--brass);font-weight:700}
.lead{color:var(--muted);max-width:62ch}

/* Apparition en cascade */
.rise{animation:rise .5s var(--ease) both;animation-delay:calc(min(var(--i,0),14) * 35ms)}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ---------- Boutons, champs ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:600;text-decoration:none;color:var(--fg);transition:transform .15s var(--ease),border-color .2s,background .2s,box-shadow .2s}
.btn:hover{border-color:var(--accent)}
.btn:active{transform:scale(.97)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 30%,transparent)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{background:none;border-color:transparent;color:var(--accent)}
.btn.danger{color:var(--danger)}
.btn.armed{background:var(--danger);border-color:var(--danger);color:#fff}
.btn.sm{min-height:36px;padding:0 12px;font-size:.9rem;border-radius:10px}
.btn[disabled]{opacity:.55;cursor:default;transform:none}
.icon-btn{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:0;background:var(--surface-2);cursor:pointer;color:var(--fg);transition:transform .15s var(--ease),background .2s}
.icon-btn:hover{background:var(--line)}
.icon-btn:active{transform:scale(.92)}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field>label,.label{font-weight:600;font-size:.9rem}
.hint{font-size:.82rem;color:var(--muted)}
input[type=text],input[type=search],input[type=url],input[type=password],input[type=number],input[type=date],input[type=time],select,textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--fg);transition:border-color .2s,box-shadow .2s}
textarea{min-height:110px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.row>.grow{flex:1 1 200px;min-width:0}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.file-drop{display:flex;align-items:center;gap:12px;padding:14px;border:1.5px dashed var(--line);border-radius:var(--r);background:var(--surface);cursor:pointer;transition:border-color .2s,background .2s}
.file-drop:hover,.file-drop.over{border-color:var(--accent);background:var(--accent-soft)}
.file-drop input{position:absolute;width:1px;height:1px;opacity:0}
.progress{height:6px;border-radius:6px;background:var(--surface-2);overflow:hidden}
.progress>span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--brass-line));transition:width .2s}

/* ---------- Cartes et listes ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow)}
.card h3{font-size:1.2rem}
.empty{border:1.5px dashed var(--line);border-radius:16px;padding:30px 22px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;background:var(--surface)}
.empty h3{font-size:1.25rem}
.banner{border:1px solid var(--brass-line);background:var(--brass-soft);color:var(--brass);border-radius:var(--r);padding:10px 14px;font-size:.92rem}
.skel{height:64px;border-radius:12px;background:linear-gradient(90deg,var(--surface-2),var(--surface),var(--surface-2));background-size:200% 100%;animation:shimmer 1.2s linear infinite}
@keyframes shimmer{to{background-position:-200% 0}}

/* ---------- Chants ---------- */
.toolbar{display:flex;gap:10px;flex-wrap:wrap}
.toolbar .search{flex:1 1 260px;min-width:0;position:relative}
.toolbar .search .ico{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted)}
.toolbar .search input{padding-left:42px}
.alpha{display:flex;gap:4px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:thin}
.alpha button{flex:0 0 auto;min-width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:600;padding:0 6px;transition:background .2s,color .2s,transform .15s}
.alpha button:active{transform:scale(.92)}
.alpha button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.filter-groups{display:flex;flex-direction:column;gap:10px}
.fgroup{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.fgroup-name{flex:0 0 auto;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;min-width:96px}
.chips{display:flex;gap:7px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 13px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:600;font-size:.9rem;transition:background .2s,border-color .2s,color .2s,transform .15s}
.chip:active{transform:scale(.95)}
.chip small{color:var(--muted);font-weight:600}
.chip[aria-pressed="true"]{background:var(--brass-soft);border-color:var(--brass-line);color:var(--brass)}
.chip[aria-pressed="true"] small{color:var(--brass)}
.filters-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.filters-row select{width:auto;min-width:150px}
.song-list{display:flex;flex-direction:column;gap:8px}
.grp{font-family:var(--display);font-size:1.25rem;color:var(--brass);padding:14px 4px 2px;display:flex;align-items:center;gap:10px}
.grp::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--brass-line),transparent)}
.song-row{display:flex;align-items:center;gap:14px;text-align:left;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;transition:transform .2s var(--ease),box-shadow .2s,border-color .2s}
.song-row:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift);border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}
.song-row:active{transform:scale(.99)}
.disc{flex:0 0 auto;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-family:var(--display);font-size:1.15rem}
.disc.has-audio{background:linear-gradient(135deg,var(--accent),var(--hero-2));color:var(--accent-fg)}
.row-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.row-t{font-size:1.06rem;font-weight:600;overflow-wrap:anywhere}
.row-m{font-size:.86rem;color:var(--muted);overflow-wrap:anywhere}
.row-end{flex:0 0 auto;color:var(--muted)}

/* Fiche chant */
.tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{font-size:.8rem;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--surface-2);color:var(--fg)}
.tag.lang{background:var(--accent-soft);color:var(--accent)}
.tag.year{background:var(--brass-soft);color:var(--brass)}
.lyrics{white-space:pre-wrap;font-size:1.18rem;line-height:1.8;font-family:var(--body),var(--syr);unicode-bidi:plaintext;padding:6px 0}
.notes{border-left:3px solid var(--brass-line);padding:2px 0 2px 12px;color:var(--muted);white-space:pre-wrap}
.player{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:linear-gradient(135deg,var(--hero-1),var(--hero-2));color:var(--hero-fg)}
.player .play{width:48px;height:48px;border-radius:50%;border:0;display:grid;place-items:center;background:var(--hero-fg);color:var(--hero-1);cursor:pointer;flex:0 0 auto;transition:transform .15s var(--ease)}
.player .play:active{transform:scale(.92)}
.player .play .ico{width:22px;height:22px;fill:currentColor;stroke:none}
.player .track{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.player .bar{position:relative;height:6px;border-radius:6px;background:rgba(255,255,255,.22);cursor:pointer}
.player .bar>span{position:absolute;inset:0 auto 0 0;width:0;border-radius:6px;background:var(--hero-brass)}
.player .times{display:flex;justify-content:space-between;font-size:.78rem;color:var(--hero-muted);font-variant-numeric:tabular-nums}
.player .dl{background:rgba(255,255,255,.12);color:var(--hero-fg)}
.section-t{font-family:var(--display);font-size:1.15rem;margin-top:6px}
.mini-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.mini{display:flex;flex-direction:column;gap:2px;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);cursor:pointer;transition:transform .2s var(--ease),border-color .2s}
.mini:hover{transform:translateY(-2px);border-color:var(--accent)}
.mini b{font-weight:600;overflow-wrap:anywhere}
.mini span{font-size:.82rem;color:var(--muted)}

/* ---------- Souvenirs ---------- */
.timeline{display:flex;flex-direction:column;gap:26px}
.tl-year{display:flex;flex-direction:column;gap:14px}
.tl-year>h3{font-size:2rem;color:var(--brass);line-height:1}
.tl-month{display:grid;grid-template-columns:96px 1fr;gap:14px;position:relative}
.tl-month-label{position:sticky;top:64px;align-self:start;font-weight:700;text-transform:capitalize;color:var(--muted);font-size:.95rem;padding-top:4px}
.tl-month-label::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--brass-line);margin-right:8px;vertical-align:1px;box-shadow:0 0 0 4px var(--brass-soft)}
.mosaic{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.tile{position:relative;padding:0;border:0;border-radius:14px;overflow:hidden;cursor:pointer;aspect-ratio:1;background:var(--surface-2);display:block;transition:transform .25s var(--ease),box-shadow .25s}
.tile:hover{transform:scale(1.025);box-shadow:var(--shadow-lift)}
.tile img,.tile video{width:100%;height:100%;object-fit:cover;display:block}
.tile .badge{position:absolute;left:8px;bottom:8px;display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;background:rgba(10,14,30,.6);color:#fff;font-size:.75rem;font-weight:700;backdrop-filter:blur(4px)}
.tile .badge .ico{width:14px;height:14px}
.tile.audio{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px;background:linear-gradient(135deg,var(--hero-1),var(--hero-2));color:var(--hero-fg);text-align:center}
.tile.audio .ico{width:30px;height:30px}
.tile.audio span{font-size:.82rem;font-weight:600;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.tile-cap{grid-column:1/-1;font-size:.9rem;color:var(--muted);margin-top:-2px}
@media (max-width:560px){.tl-month{grid-template-columns:1fr}.tl-month-label{position:static}.mosaic{grid-template-columns:repeat(3,1fr);gap:6px}}

/* Visionneuse */
.lightbox{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;background:rgba(6,9,20,.94);color:#fff;animation:fadeIn .25s var(--ease)}
.lb-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) 10px max(12px,env(safe-area-inset-left,0px))}
.lb-top .icon-btn{background:rgba(255,255,255,.12);color:#fff}
.lb-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 12px;touch-action:pan-y}
.lb-stage img,.lb-stage video{max-width:100%;max-height:100%;border-radius:10px;animation:zoomIn .35s var(--spring)}
.lb-stage audio{width:min(520px,100%)}
.lb-info{padding:12px max(16px,env(safe-area-inset-left,0px)) calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:4px;text-align:center}
.lb-info b{font-family:var(--display);font-size:1.2rem;font-weight:400}
.lb-info span{color:#cdbfdc;font-size:.9rem}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;cursor:pointer;display:grid;place-items:center}
.lb-nav.prev{left:max(12px,env(safe-area-inset-left,0px))}.lb-nav.next{right:max(12px,env(safe-area-inset-right,0px))}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes zoomIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}

/* ---------- Apprentissage ---------- */
.learn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.learn{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;text-decoration:none;color:var(--fg);transition:transform .25s var(--ease),box-shadow .25s;box-shadow:var(--shadow)}
.learn:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.learn-cover{aspect-ratio:16/9;background:linear-gradient(135deg,var(--hero-1),var(--hero-2));display:grid;place-items:center;color:var(--hero-fg);position:relative;overflow:hidden}
.learn-cover img{width:100%;height:100%;object-fit:cover}
.learn-cover .ico{width:40px;height:40px;opacity:.9}
.learn-cover .kind{position:absolute;left:10px;top:10px;padding:3px 9px;border-radius:999px;background:rgba(10,14,30,.6);color:#fff;font-size:.75rem;font-weight:700}
.learn-body{padding:14px;display:flex;flex-direction:column;gap:6px;flex:1}
.learn-body b{font-size:1.05rem;overflow-wrap:anywhere}
.learn-body p{font-size:.9rem;color:var(--muted);overflow-wrap:anywhere}
.learn-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:0 14px 14px}

/* ---------- Calendrier ---------- */
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cal-head h3{font-size:1.35rem;text-transform:capitalize}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal .dow{font-size:.74rem;font-weight:700;color:var(--muted);text-align:center;text-transform:uppercase;letter-spacing:.06em;padding:4px 0}
.day{position:relative;aspect-ratio:1;min-height:42px;border-radius:12px;border:1px solid transparent;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:6px;gap:4px;cursor:pointer;font-variant-numeric:tabular-nums;font-weight:600;transition:transform .15s var(--ease),border-color .2s}
.day:hover{border-color:var(--accent)}
.day.out{opacity:.38}
.day.today{background:var(--accent);color:var(--accent-fg)}
.day.sel{border-color:var(--brass-line);box-shadow:0 0 0 2px var(--brass-line)}
.dots{display:flex;gap:3px}
.dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}
.day.today .dot{background:var(--accent-fg)}
.k-Répétition{--k:var(--accent)} .k-Messe{--k:var(--brass-line)} .k-Concert{--k:var(--rose)} .k-Fête{--k:var(--violet)} .k-Autre{--k:var(--muted)}
.dot[class*="k-"]{background:var(--k)}
.events{display:flex;flex-direction:column;gap:10px}
.event{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);border-left:4px solid var(--k,var(--accent))}
.event-date{display:flex;flex-direction:column;align-items:center;line-height:1}
.event-date b{font-family:var(--display);font-size:1.7rem;font-weight:400}
.event-date span{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.event-body{min-width:0;display:flex;flex-direction:column;gap:2px}
.event-body b{font-weight:600;overflow-wrap:anywhere}
.event-body span{font-size:.86rem;color:var(--muted);overflow-wrap:anywhere}
.kind-pill{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px;color:#fff;background:var(--k,var(--accent));align-self:flex-start}

/* ---------- Je prie pour ---------- */
.draw-card{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--brass-line);border-radius:20px;padding:30px 20px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;box-shadow:inset 0 0 0 5px var(--surface),inset 0 0 0 6px var(--brass-line),var(--shadow)}
.draw-card::before{content:"";position:absolute;inset:-50% -20% auto;height:160%;background:radial-gradient(closest-side,var(--brass-soft),transparent);opacity:.7;pointer-events:none}
.draw-card>*{position:relative}
.draw-name{font-family:var(--display);font-size:clamp(2rem,8vw,2.8rem);line-height:1.15;min-height:1.2em;overflow-wrap:anywhere}
.draw-name.spin{color:var(--muted)}
.draw-card .note{color:var(--muted);max-width:42ch}
.hist{display:flex;flex-direction:column}
.hist-row{display:flex;justify-content:space-between;gap:12px;padding:10px 2px;border-bottom:1px solid var(--line)}
.hist-row span:first-child{color:var(--muted);text-transform:capitalize}

/* ---------- Liens ---------- */
.links{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.link-card{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);text-decoration:none;color:var(--fg);transition:transform .25s var(--ease),box-shadow .25s;box-shadow:var(--shadow);min-width:0}
.link-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.mono{flex:0 0 auto;width:48px;height:48px;border-radius:14px;color:#fff;display:grid;place-items:center;font-weight:700;font-size:.85rem;letter-spacing:.03em}
.mono.YT{background:#c4302b}.mono.IG{background:linear-gradient(45deg,#f09433,#dc2743,#bc1888)}.mono.FB{background:#1877f2}.mono.TT{background:#111}.mono.WEB{background:var(--accent);color:var(--accent-fg)}.mono.DR{background:#1f8a4c}
.link-card .txt{min-width:0;flex:1}
.link-card .t{font-weight:600;display:block}
.link-card .u{font-size:.85rem;color:var(--muted);overflow-wrap:anywhere}
.link-wrap{display:flex;flex-direction:column;gap:6px}

/* ---------- Admin ---------- */
.list{display:flex;flex-direction:column}
.li{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 2px;border-bottom:1px solid var(--line)}
.li:last-child{border-bottom:0}
.li .who{flex:1 1 160px;min-width:0;display:flex;flex-direction:column;gap:2px}
.li .who b{font-weight:600;overflow-wrap:anywhere}
.li input[type=text]{min-height:40px;flex:1 1 140px}
.li select{width:auto;min-height:40px}
.me{font-size:.72rem;font-weight:700;color:var(--brass);background:var(--brass-soft);padding:2px 8px;border-radius:999px;align-self:flex-start}
.roles{display:flex;gap:6px;flex-wrap:wrap;flex-basis:100%}
.role{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:600;font-size:.84rem;transition:all .2s}
.role[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.role.admin[aria-pressed="true"]{background:var(--brass-line);border-color:var(--brass-line);color:#1b1206}
.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.switch-row:last-child{border-bottom:0}
.switch{position:relative;width:50px;height:30px;flex:0 0 auto;border-radius:999px;border:0;background:var(--line);cursor:pointer;transition:background .25s}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .3s var(--spring)}
.switch[aria-checked="true"]{background:var(--ok)}
.switch[aria-checked="true"]::after{transform:translateX(20px)}
.switch[disabled]{opacity:.5;cursor:default}
.result{border:1px solid var(--brass-line);background:var(--brass-soft);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:10px;animation:rise .4s var(--ease)}
.result textarea{min-height:110px;background:var(--surface)}
.cat-group{border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.cat-group-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cat-group-head b{font-family:var(--display);font-size:1.2rem;font-weight:400;flex:1 1 100%;min-width:0}
.cat-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--line)}
.cat-line span{flex:1 1 140px;min-width:0;font-weight:600;overflow-wrap:anywhere}
.cat-line small{color:var(--muted)}
.cat-line select{width:auto;min-height:36px;padding:4px 8px}

/* ---------- Connexion ---------- */
.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:max(24px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:linear-gradient(160deg,var(--hero-1),var(--hero-2));position:relative;overflow:hidden}
.login-wrap::after{content:"";position:absolute;inset:-40%;background:radial-gradient(closest-side at 30% 30%,rgba(220,199,154,.18),transparent 70%),radial-gradient(closest-side at 70% 80%,rgba(163,40,44,.38),transparent 70%);animation:drift 20s ease-in-out infinite alternate;pointer-events:none}
.login-card{position:relative;z-index:1;width:min(420px,100%);display:flex;flex-direction:column;gap:18px;animation:rise .6s var(--ease) both}
.login-card .brand{color:var(--hero-fg);display:flex;flex-direction:column;gap:4px}
.login-card .syr{font-size:2rem}
.login-card h1{font-size:2.1rem;line-height:1.08}
.login-card .brand p{color:var(--hero-muted)}
.login-card form{display:flex;flex-direction:column;gap:14px;background:var(--surface);border-radius:20px;padding:22px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.code-row{display:flex;gap:8px}
.code-row input{flex:1;min-width:0}
.err{color:var(--danger);font-weight:600;min-height:1.4em}
.or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.85rem}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}

/* ---------- Fiche (feuille modale) ---------- */
.sheet{position:fixed;inset:0;z-index:30;display:flex;align-items:flex-end;justify-content:center}
.sheet-back{position:absolute;inset:0;background:rgba(10,14,30,.55);animation:fadeIn .25s var(--ease)}
.sheet-panel{position:relative;width:min(760px,100%);max-height:92dvh;overflow:auto;background:var(--bg);border-radius:22px 22px 0 0;padding:6px max(18px,env(safe-area-inset-right,0px)) calc(26px + env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:14px;animation:sheetUp .42s var(--spring);overscroll-behavior:contain}
.sheet.closing .sheet-panel{animation:sheetDown .25s var(--ease) forwards}
.sheet.closing .sheet-back{animation:fadeIn .25s var(--ease) reverse forwards}
@keyframes sheetUp{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@keyframes sheetDown{to{transform:translateY(40px);opacity:0}}
.sheet-grip{width:44px;height:5px;border-radius:5px;background:var(--line);margin:6px auto 0}
.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px;position:sticky;top:-6px;background:var(--bg);padding-top:8px;padding-bottom:4px;z-index:2}
.sheet-title{font-size:1.45rem;line-height:1.2}
.sheet-body{display:flex;flex-direction:column;gap:16px}
@media (min-width:780px){.sheet{align-items:center}.sheet-panel{border-radius:22px}.sheet-grip{display:none}}

.toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:50;max-width:min(92vw,520px);background:var(--fg);color:var(--bg);padding:12px 18px;border-radius:14px;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.25);animation:toastIn .35s var(--spring)}
.toast.err{background:var(--danger);color:#fff}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%,0)}}

@media (prefers-reduced-motion:no-preference){
  .draw-name.pop{animation:pop .6s var(--spring)}
  @keyframes pop{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ---------- v3 ---------- */
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pre{white-space:pre-wrap;overflow-wrap:anywhere}
.badge-n{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:.72rem;font-weight:700;margin-left:2px;animation:pop .5s var(--spring)}
.tag.sm{font-size:.72rem;padding:2px 8px;margin-left:6px;background:var(--accent-soft);color:var(--accent)}
.date-row{display:flex;gap:8px;flex-wrap:wrap}
.date-row>*{flex:1 1 130px;min-width:0}
.embed{position:relative;width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000;box-shadow:var(--shadow)}
.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lb-frame{width:min(960px,100%);aspect-ratio:16/9;max-height:100%;border:0;border-radius:10px;background:#000}
details.more{border:1px dashed var(--line);border-radius:12px;padding:10px 14px}
details.more>summary{cursor:pointer;font-weight:600;color:var(--accent)}
details.more[open]>summary{margin-bottom:12px}
.check{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--accent);flex:none}
.check>span{display:flex;flex-direction:column;gap:2px}

/* Images du calendrier */
.ev-imgs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.ev-img{position:relative;width:74px;height:74px;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface-2);cursor:pointer;transition:transform .2s var(--ease),box-shadow .2s}
.ev-img:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.ev-img img{width:100%;height:100%;object-fit:cover;display:block}
.ev-imgs.edit .ev-img{cursor:default}
.ev-img .x{position:absolute;top:3px;right:3px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.65);color:#fff;font-size:1rem;line-height:1;cursor:pointer}

/* Je prie pour : révélation douce */
.draw-card .glow{position:absolute;left:50%;top:44%;width:260px;height:260px;margin:-130px 0 0 -130px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--hero-brass) 38%,transparent),transparent);pointer-events:none;opacity:.55}
.draw-card .glow.soft{opacity:.35}
.draw-title{font-family:var(--display);font-size:clamp(1.4rem,5vw,1.9rem);line-height:1.2}
.verse{font-family:var(--display);font-style:italic;color:var(--brass);max-width:36ch}
.draw-card.prayed{gap:6px;padding:36px 20px}
.draw-card.prayed .l1,.draw-card.prayed .l2{font-size:1.15rem;color:var(--muted)}
.draw-card.prayed .l3{margin:6px 0 10px}
.draw-card.prayed .l5{margin-top:8px}
@media (prefers-reduced-motion:no-preference){
  .draw-card.breathe .glow{animation:breathe 1.4s ease-in-out infinite}
  @keyframes breathe{0%,100%{transform:scale(.9);opacity:.35}50%{transform:scale(1.15);opacity:.75}}
  .draw-card.reveal .glow{animation:glowIn 2.4s var(--ease) both}
  @keyframes glowIn{from{transform:scale(.4);opacity:0}60%{opacity:.9}to{transform:scale(1.25);opacity:.55}}
  .draw-card.reveal .line{animation:lineIn 1s var(--ease) both}
  .draw-card.reveal .l0{animation-delay:.2s}.draw-card.reveal .l1{animation-delay:.6s}.draw-card.reveal .l2{animation-delay:1.2s}
  .draw-card.reveal .l3{animation:nameIn 1.6s var(--ease) 2s both}
  .draw-card.reveal .l4{animation-delay:3.3s}.draw-card.reveal .l5{animation-delay:3.9s}
  @keyframes lineIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  @keyframes nameIn{from{opacity:0;filter:blur(8px);letter-spacing:.08em}to{opacity:1;filter:none;letter-spacing:normal}}
  .badge-n{animation:pop .5s var(--spring)}
  @keyframes pop{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
}

/* Boîte à idées */
.ideas{display:flex;flex-direction:column;gap:12px}
.idea{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.card .idea{background:var(--bg)}
.idea.fresh{border-color:var(--brass-line);box-shadow:inset 3px 0 0 var(--brass-line)}
.idea-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.st{font-size:.78rem;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--surface-2)}
.st-nouvelle{background:var(--accent-soft);color:var(--accent)}
.st-retenue{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}
.st-pas-retenue{color:var(--muted)}
.reply{border-left:3px solid var(--brass-line);padding:6px 0 6px 12px;display:flex;flex-direction:column;gap:4px;background:var(--brass-soft);border-radius:0 10px 10px 0}
.idea-ctl{max-width:260px}

/* Profil */
.profile-card{flex-direction:row;align-items:center;gap:16px}
.avatar{width:58px;height:58px;flex:none;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-size:1.6rem;color:var(--hero-fg);background:linear-gradient(135deg,var(--hero-1),var(--hero-2));box-shadow:0 0 0 3px var(--surface),0 0 0 4px var(--brass-line)}
.dir{display:flex;flex-direction:column;gap:8px}
.dir-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.dir-links{display:flex;gap:6px;flex-wrap:wrap}
.dir-links .chip{text-decoration:none;color:var(--fg);overflow-wrap:anywhere}
.dir-links .chip svg{width:16px;height:16px}

/* Droits */
.perm{display:flex;flex-direction:column;gap:6px}
.perm-grid{display:flex;flex-direction:column}
.perm-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.perm-l{font-weight:600}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface-2)}
.seg-b{min-height:34px;padding:0 12px;border:0;background:transparent;cursor:pointer;font-weight:600;font-size:.86rem;color:var(--muted);transition:background .2s,color .2s}
.seg-b+.seg-b{border-left:1px solid var(--line)}
.seg-b[aria-pressed="true"].masque{background:var(--surface);color:var(--danger)}
.seg-b[aria-pressed="true"].voir{background:var(--accent-soft);color:var(--accent)}
.seg-b[aria-pressed="true"].gerer{background:var(--accent);color:var(--accent-fg)}
.perm-det{flex-basis:100%}
.perm-det>summary{cursor:pointer;font-weight:600;color:var(--accent);padding:4px 0}
.perm-det[open]>summary{margin-bottom:6px}
.li.member .who{display:flex;flex-direction:column;flex:1 1 200px;min-width:0}

/* ---------- Emblème (vitrail et croix) ---------- */
.hero .inner{align-items:center}
.hero-id{display:flex;align-items:center;gap:14px;min-width:0}
.emblem{flex:0 0 auto;width:52px;height:64px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.4))}
.login-card .emblem{width:64px;height:80px;margin-bottom:6px}
.hero .sub,.login-card .brand p{text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:700}
.eyebrow{letter-spacing:.14em}
@media (max-width:420px){.hero .emblem{width:40px;height:50px}}

/* =====================================================================
   v4
   ===================================================================== */

/* ---------- Thème clair : crème, aubergine, bordeaux, sable ---------- */
html[data-theme="light"]{
  --bg:#f6f1e7; --surface:#fffdf8; --surface-2:#efe6d6; --fg:#2a1d3a; --muted:#6b5e78; --line:#e3d8c6;
  --accent:#9b1d22; --accent-fg:#fff8f0; --accent-soft:#f5e1dc;
  --brass:#7f5f24; --brass-line:#c2a56b; --brass-soft:#f4ead3;
  --hero-1:#2a1840; --hero-2:#4f2d70; --hero-fg:#f8f1e3; --hero-muted:#d9cce6; --hero-brass:#e2cf9f;
  --danger:#b3261e; --ok:#2e7d4f; --rose:#b8456f; --violet:#6b4fb0;
  --shadow:0 1px 2px rgba(42,29,58,.06),0 6px 18px rgba(42,29,58,.07);
  --shadow-lift:0 2px 6px rgba(42,29,58,.08),0 14px 32px rgba(42,29,58,.13);
  color-scheme:light;
}
html[data-theme="light"] body{background:var(--bg) radial-gradient(1200px 500px at 85% -10%,rgba(194,165,107,.14),transparent 60%) no-repeat}
html[data-theme="light"] .nav{background:color-mix(in srgb,var(--surface) 90%,transparent)}
html[data-theme="light"] .chip[aria-pressed="true"]{background:var(--brass-soft);border-color:var(--brass-line);color:var(--brass)}
html[data-theme="light"] .role.admin[aria-pressed="true"]{color:#2a1d3a}
html[data-theme="light"] .sheet-back{background:rgba(42,29,58,.42)}
html[data-theme="light"] .toast{background:var(--fg);color:#fffdf8}
html[data-theme="light"] .tile .badge{background:rgba(42,29,58,.62)}
html[data-theme="light"] .cat-group{background:var(--surface-2)}
html[data-theme="light"] .card .idea{background:var(--bg)}
body,.card,.song-row,.nav,.chip,.btn,input,select,textarea{transition-property:background-color,border-color,color,box-shadow,transform}
body{transition:background-color .3s var(--ease),color .3s var(--ease)}

/* ---------- Bandeau : actions, réglages ---------- */
.hero-actions{flex:0 0 auto;display:flex;align-items:center;gap:8px}
.hero-btn.round{width:40px;padding:0;justify-content:center}
.hero-btn .ico{width:19px;height:19px}
.hero-btn .caret{width:16px;height:16px;opacity:.8;transition:transform .25s var(--ease)}
.hero-btn[aria-expanded="true"] .caret{transform:rotate(180deg)}
.hero-btn.round .ico{transition:transform .5s var(--spring)}
.hero-btn.round[aria-expanded="true"] .ico{transform:rotate(90deg)}
.acc-name{max-width:16ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:520px){.acc-name{display:none}.hero-btn:not(.round){width:40px;padding:0;justify-content:center}.hero-btn .caret{display:none}}
.corner-btn{position:absolute;z-index:2;top:max(14px,env(safe-area-inset-top,0px));inset-inline-end:max(14px,env(safe-area-inset-right,0px));width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);color:var(--hero-fg);cursor:pointer;backdrop-filter:blur(6px)}
.corner-btn:hover{background:rgba(255,255,255,.2)}

/* Petite fenêtre flottante */
.pop{position:fixed;z-index:35;background:var(--surface);color:var(--fg);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lift),0 30px 60px rgba(0,0,0,.25);padding:8px;max-height:calc(100dvh - 90px);overflow:auto}
.pop.in{animation:popIn .28s var(--spring)}
@keyframes popIn{from{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:none}}
.menu{display:flex;flex-direction:column}
.menu-head{display:flex;align-items:center;gap:12px;padding:10px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.menu-head>div:last-child{display:flex;flex-direction:column;min-width:0}
.menu-head b{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.avatar.sm{width:40px;height:40px;font-size:1.15rem;box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--brass-line)}
.menu-item{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:0 12px;border:0;border-radius:12px;background:none;cursor:pointer;font-weight:600;text-align:start;transition:background .15s}
.menu-item:hover,.menu-item:focus-visible{background:var(--surface-2)}
.menu-item .ico{color:var(--muted)}
.menu-item.danger,.menu-item.danger .ico{color:var(--danger)}
.menu-sep{height:1px;background:var(--line);margin:6px 4px}
.settings{display:flex;flex-direction:column;gap:8px;padding:8px}
.settings .label{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-top:4px}
.seg.wide{display:flex;width:100%}
.seg.wide .seg-b{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px}
.seg.wide .seg-b[aria-pressed="true"]{background:var(--accent);color:var(--accent-fg)}
.seg.wide .seg-b .ico{width:17px;height:17px}
.seg-b+.seg-b{border-inline-start:1px solid var(--line);border-left-width:0}
html:not([dir="rtl"]) .seg-b+.seg-b{border-left:1px solid var(--line)}
.lang-list{display:flex;flex-direction:column;gap:4px}
.lang-b{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;font-weight:600;transition:border-color .2s,background .2s}
.lang-b:hover{border-color:var(--accent)}
.lang-b[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.lang-b[lang="ar"]{font-size:1.05rem}

/* ---------- Version ordinateur ---------- */
@media (min-width:1024px){
  .inner{max-width:1120px}
  .hero .inner{padding-block:28px 22px}
  .hero h1{font-size:2.5rem}
  .emblem{width:60px;height:74px}
  .view-head h2{font-size:2.1rem}
  main .inner{padding-block:32px 110px}
  .mosaic{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
  .tl-month{grid-template-columns:130px 1fr}
  .learn-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
  .tab{padding-inline:14px}
}
/* Version téléphone : plus compacte, gros boutons */
@media (max-width:640px){
  .hero .inner{padding-block:max(14px,env(safe-area-inset-top,0px)) 12px}
  .hero .syr{font-size:1.15rem}
  .hero h1{font-size:1.3rem}
  .hero .sub{font-size:.68rem}
  .view-head h2{font-size:1.5rem}
  main .inner{padding-block:18px 90px}
  .tab{flex-direction:column;gap:3px;padding:8px 10px 7px;font-size:.74rem;min-height:56px;min-width:66px}
  .tab .ico{width:21px;height:21px}
  .card{padding:16px}
}

/* ---------- Chants : filtres compacts ---------- */
.chants-layout{display:flex;flex-direction:column;gap:14px}
.chants-main{display:flex;flex-direction:column;gap:12px;min-width:0}
.toolbar{align-items:stretch}
.filter-btn{position:relative}
.filter-btn[aria-expanded="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.filter-btn .badge-n{position:absolute;top:-6px;inset-inline-end:-6px;margin:0}
.play-all{background:linear-gradient(135deg,var(--accent),var(--hero-2));color:var(--accent-fg);border:0}
.play-all .ico{fill:currentColor;stroke:none;width:16px;height:16px}
.play-all:hover{filter:brightness(1.08)}
.fpanel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--ease),opacity .25s;opacity:0;order:1}
.fpanel.open{grid-template-rows:1fr;opacity:1}
.fpanel-in{overflow:hidden;display:flex;flex-direction:column;gap:14px;min-height:0}
.fpanel.open .fpanel-in{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}
.chants-main{order:2}
.fsec{display:flex;flex-direction:column;gap:8px}
.fsec .fgroup-name{min-width:0}
.active-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:28px}
.active-filters .count{margin-inline-end:4px}
.chip.on{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent);min-height:30px;padding:0 8px 0 12px;animation:pop .3s var(--spring)}
.chip.on .ico{width:15px;height:15px}
@media (min-width:1024px){
  .chants-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:26px;align-items:start}
  .fpanel{order:0;display:block;opacity:1;position:sticky;top:70px;max-height:calc(100dvh - 90px);overflow:auto;scrollbar-width:thin}
  .fpanel-in,.fpanel.open .fpanel-in{padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}
  .fpanel .alpha{flex-wrap:wrap;overflow:visible}
  .fpanel .alpha button{min-width:34px;height:34px}
  .filter-btn{display:none}
}
.song-row.now{border-color:color-mix(in srgb,var(--accent) 60%,var(--line));background:linear-gradient(90deg,var(--accent-soft),var(--surface) 70%)}
.song-row.now .disc{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}
.song-row.playing .disc .ico{animation:beat 1s ease-in-out infinite}
@keyframes beat{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}

/* ---------- Lecteur persistant ---------- */
body.has-mini main .inner{padding-bottom:150px}
body.has-mini .toast{bottom:calc(96px + env(safe-area-inset-bottom,0px))}
.mini-player{position:fixed;z-index:25;left:max(8px,env(safe-area-inset-left,0px));right:max(8px,env(safe-area-inset-right,0px));bottom:calc(8px + env(safe-area-inset-bottom,0px));border-radius:18px;overflow:hidden;color:var(--hero-fg);background:linear-gradient(135deg,var(--hero-1),var(--hero-2));box-shadow:0 12px 40px rgba(0,0,0,.4),inset 0 0 0 1px rgba(255,255,255,.08);animation:mpIn .45s var(--spring)}
@keyframes mpIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.mp-line{height:3px;background:rgba(255,255,255,.14)}
.mp-line .mp-fill{display:block;height:100%;width:0;background:var(--hero-brass);transition:width .25s linear}
.mp-main{display:flex;align-items:center;gap:8px;padding:8px 10px}
.mp-art{position:relative;flex:0 0 auto;width:44px;height:44px;border-radius:12px;border:0;cursor:pointer;display:grid;place-items:center;color:var(--hero-1);background:linear-gradient(135deg,var(--hero-brass),#f4ede0)}
.mp-art .eq{display:none;align-items:flex-end;gap:3px;height:18px}
.mp-art .eq i{display:block;width:4px;height:100%;border-radius:2px;background:var(--accent);transform-origin:bottom;animation:eq 1s ease-in-out infinite}
.mp-art .eq i:nth-child(2){animation-delay:-.4s}.mp-art .eq i:nth-child(3){animation-delay:-.7s}
@keyframes eq{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}
.is-playing .mp-art .eq{display:flex}
.is-playing .mp-art>.ico{display:none}
.mp-meta{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.mp-meta b{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-sub{font-size:.76rem;color:var(--hero-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-ctrls,.mp-side{display:flex;align-items:center;gap:2px;flex:0 0 auto}
.mp-btn{width:38px;height:38px;border-radius:50%;border:0;display:grid;place-items:center;background:none;color:var(--hero-fg);cursor:pointer;transition:background .2s,transform .15s var(--ease),color .2s}
.mp-btn:hover{background:rgba(255,255,255,.12)}
.mp-btn:active{transform:scale(.88)}
.mp-btn .ico{width:19px;height:19px}
.mp-prev .ico,.mp-next .ico{fill:currentColor}
.mp-play{width:44px;height:44px;background:var(--hero-fg);color:var(--hero-1)}
.mp-play:hover{background:#fff}
.mp-play .ico{fill:currentColor;stroke:none;width:20px;height:20px}
.mp-shuffle[aria-pressed="true"]{color:var(--hero-brass);background:rgba(220,199,154,.16)}
.mp-btn{position:relative}
.mp-shuffle[aria-pressed="true"]::after{content:"";position:absolute;bottom:3px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--hero-brass)}
.mp-panel{display:flex;flex-direction:column;gap:8px;padding:4px 14px 14px;animation:rise .3s var(--ease)}
.mp-panel .label{color:var(--hero-muted);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;margin-top:4px}
.mp-seek{display:flex;align-items:center;gap:10px;font-size:.76rem;color:var(--hero-muted);font-variant-numeric:tabular-nums}
.mp-bar{position:relative;flex:1;height:6px;border-radius:6px;background:rgba(255,255,255,.2);cursor:pointer}
.mp-bar .mp-fill{position:absolute;inset-block:0;inset-inline-start:0;width:0;border-radius:6px;background:var(--hero-brass)}
.mp-src{min-height:42px;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:var(--hero-fg)}
.mp-src option,.mp-src optgroup{color:#2a1d3a;background:#fff}
.mp-queue{display:flex;flex-direction:column;gap:2px;max-height:200px;overflow:auto;scrollbar-width:thin}
.mp-q{display:flex;align-items:center;gap:10px;padding:7px 8px;border:0;border-radius:10px;background:none;color:var(--hero-fg);cursor:pointer;text-align:start;font-weight:600;font-size:.92rem}
.mp-q:hover{background:rgba(255,255,255,.1)}
.mp-q-n{width:20px;flex:none;color:var(--hero-muted);font-size:.78rem;text-align:center}
.mp-q span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-mob{display:none;gap:8px}
.mp-mob .btn{flex:1;min-height:40px;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:var(--hero-fg);font-size:.86rem}
.mp-mob .btn[aria-pressed="true"]{color:var(--hero-brass);border-color:var(--hero-brass)}
@media (max-width:600px){
  .mp-prev,.mp-shuffle,.mp-close{display:none}
  .mp-mob{display:flex}
}
@media (min-width:900px){
  .mini-player{left:auto;right:24px;bottom:24px;width:390px;border-radius:20px}
  html[dir="rtl"] .mini-player{right:auto;left:24px}
  body.has-mini main .inner{padding-bottom:110px}
  body.has-mini .toast{bottom:24px;left:calc(50% - 200px)}
}

/* ---------- Formulaires repliables ---------- */
.add-toggle .ico{transition:transform .3s var(--spring)}
.add-toggle[aria-expanded="true"]{background:var(--surface);color:var(--fg);border-color:var(--line);box-shadow:none}
.form-reveal{animation:reveal .4s var(--ease) both;transform-origin:top}
@keyframes reveal{from{opacity:0;transform:translateY(-8px) scaleY(.97)}to{opacity:1;transform:none}}
.date-note{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--brass-line);background:var(--brass-soft);border-radius:var(--r);animation:rise .4s var(--ease)}
.date-note>.ico{color:var(--brass);margin-top:2px}
.date-note>div{display:flex;flex-direction:column;gap:6px;align-items:flex-start;min-width:0}
.date-note b{color:var(--fg)}
.date-note .btn{margin-inline-start:-12px}

/* ---------- Je prie pour ---------- */
.next-draw{display:flex;gap:12px;align-items:center;margin-top:12px;padding:12px 16px;border:1px dashed var(--brass-line);border-radius:14px;background:var(--surface)}
.next-draw>.ico{color:var(--brass);width:24px;height:24px}
.next-draw>div{display:flex;flex-direction:column;gap:2px}
.verse{display:flex;flex-direction:column;gap:4px;align-items:center}
.verse .ref{font-family:var(--body);font-style:normal;font-size:.8rem;letter-spacing:.06em;color:var(--muted)}
.paper-ico{font-size:2.6rem;line-height:1;color:var(--brass);animation:float 3.2s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-6px) rotate(4deg)}}
.funny{position:relative;max-width:440px;margin-top:6px;padding:14px 18px;border-radius:18px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));display:flex;flex-direction:column;gap:4px}
.funny::before{content:"";position:absolute;top:-8px;left:50%;width:14px;height:14px;margin-left:-7px;background:inherit;border-left:inherit;border-top:inherit;transform:rotate(45deg)}
.funny p{font-weight:600;font-size:1.02rem}
.funny-n{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--accent)}
.pop-in{animation:pop .45s var(--spring)}
.shake{animation:shake .45s ease}
@keyframes shake{0%,100%{transform:none}20%{transform:translateX(-6px) rotate(-2deg)}40%{transform:translateX(6px) rotate(2deg)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
.month-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.month-chip{justify-content:center;text-transform:capitalize;min-height:40px}
.month-chip[aria-pressed="true"]::before{content:"✉";font-size:.9rem}

/* ---------- Visionneuse v4 ---------- */
.lightbox{background-color:#0b0712;background-image:radial-gradient(1200px 700px at 50% 40%,rgba(59,35,87,.6),transparent 70%)}
.li .who .tag{align-self:flex-start}
.lb-top{align-items:flex-start;gap:14px;padding:calc(14px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 8px max(16px,env(safe-area-inset-left,0px));animation:lbDown .4s var(--ease)}
@keyframes lbDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.lb-meta{display:flex;flex-direction:column;gap:6px;min-width:0}
.lb-kind{display:flex;align-items:center;gap:8px;font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#dcc79a}
.lb-kind .ico{width:16px;height:16px}
.lb-count{padding:2px 9px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;letter-spacing:.04em}
.lb-title{font-size:clamp(1.15rem,3.6vw,1.6rem);line-height:1.2;color:#fff;overflow-wrap:anywhere}
.lb-sub{display:flex;gap:6px;flex-wrap:wrap}
.lb-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.1);color:#e9e0f2;font-size:.82rem;font-weight:600}
.lb-chip .ico{width:14px;height:14px;opacity:.8}
.lb-chip.file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46vw;font-variant-numeric:tabular-nums}
.lb-x{flex:0 0 auto;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.1);color:#fff;cursor:pointer;display:grid;place-items:center;transition:transform .35s var(--spring),background .2s}
.lb-x:hover{background:#c4413b;border-color:#c4413b;transform:rotate(90deg)}
.lb-stage{padding:6px 12px}
.lb-media{display:flex;align-items:center;justify-content:center;max-width:100%;max-height:100%;width:100%;height:100%}
.lb-media img,.lb-media video{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.5);animation:zoomIn .35s var(--spring)}
.lb-audio{width:min(520px,100%);display:flex;flex-direction:column;align-items:center;gap:18px}
.lb-audio-art{width:150px;height:150px;border-radius:28px;display:grid;place-items:center;color:var(--hero-1);background:linear-gradient(135deg,#dcc79a,#f4ede0);box-shadow:0 20px 50px rgba(0,0,0,.45);animation:zoomIn .4s var(--spring)}
.lb-audio-art .ico{width:56px;height:56px}
.lb-audio .player{width:100%}
.lb-nav{width:50px;height:50px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);transition:background .2s,transform .2s var(--ease)}
.lb-nav:hover{background:rgba(255,255,255,.22)}
.lb-nav.prev:hover{transform:translateY(-50%) translateX(-3px)}
.lb-nav.next:hover{transform:translateY(-50%) translateX(3px)}
html[dir="rtl"] .lb-nav .ico{transform:scaleX(-1)}
.lb-bottom{display:flex;flex-direction:column;align-items:center;gap:12px;padding:10px max(16px,env(safe-area-inset-left,0px)) calc(16px + env(safe-area-inset-bottom,0px))}
.lb-caption{max-width:62ch;text-align:center;color:#e9e0f2;font-size:.95rem}
.lb-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.lb-act{--c:rgba(255,255,255,.14);--cf:#fff;display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 18px 0 6px;border-radius:999px;border:0;cursor:pointer;font-weight:700;font-size:.92rem;text-decoration:none;color:var(--cf);background:var(--c);box-shadow:0 6px 18px rgba(0,0,0,.25);transition:transform .2s var(--spring),box-shadow .2s,filter .2s;animation:actIn .45s var(--spring) both}
.lb-act:nth-child(2){animation-delay:.05s}.lb-act:nth-child(3){animation-delay:.1s}.lb-act:nth-child(4){animation-delay:.15s}
@keyframes actIn{from{opacity:0;transform:translateY(14px) scale(.9)}to{opacity:1;transform:none}}
.lb-act-ico{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.16);transition:transform .35s var(--spring)}
.lb-act-ico .ico{width:18px;height:18px}
.lb-act:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(0,0,0,.35);filter:brightness(1.06)}
.lb-act:active{transform:scale(.95)}
.lb-act.dl{--c:linear-gradient(135deg,#e7d6ac,#c9a964);--cf:#2a1d3a}
.lb-act.dl:hover .lb-act-ico{transform:translateY(3px)}
.lb-act.open{--c:linear-gradient(135deg,#9a7fd8,#6b4fb0)}
.lb-act.del{--c:linear-gradient(135deg,#d9534c,#9b1d22)}
.lb-act.del:hover .lb-act-ico{transform:rotate(-12deg)}
.lb-act.del.armed{animation:armPulse 1s ease-in-out infinite;background:#ff5a4f;color:#fff}
@keyframes armPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,90,79,.55)}50%{box-shadow:0 0 0 10px rgba(255,90,79,0)}}
.lb-act.close{--c:rgba(255,255,255,.12);box-shadow:none;border:1px solid rgba(255,255,255,.2)}
.lb-act.close:hover .lb-act-ico{transform:rotate(90deg)}
.lb-strip{display:flex;gap:6px;max-width:min(900px,100%);overflow-x:auto;padding:4px 2px;scrollbar-width:none}
.lb-strip::-webkit-scrollbar{display:none}
.lb-thumb{flex:0 0 auto;width:52px;height:52px;padding:0;border-radius:10px;overflow:hidden;border:2px solid transparent;background:rgba(255,255,255,.1);color:#e9e0f2;cursor:pointer;display:grid;place-items:center;opacity:.55;transition:opacity .2s,border-color .2s,transform .2s var(--ease)}
.lb-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.lb-thumb:hover{opacity:.9}
.lb-thumb.on{opacity:1;border-color:#dcc79a;transform:translateY(-2px)}
@media (max-width:640px){
  .lb-strip{display:none}
  .lb-nav{width:40px;height:40px;background:rgba(0,0,0,.35)}
  .lb-actions{gap:8px;flex-wrap:nowrap}
  .lb-act{gap:6px;padding:0 12px 0 4px;min-height:42px;font-size:.84rem}
  .lb-act-ico{width:30px;height:30px}
}
@media (max-width:380px){.lb-act-txt{display:none}.lb-act{padding:0 5px}}

/* ---------- Arabe (droite à gauche) ---------- */
html[dir="rtl"] body{font-family:'Noto Sans Arabic','Segoe UI','Tahoma',var(--body)}
html[dir="rtl"] .toolbar .search .ico{left:auto;right:13px}
html[dir="rtl"] .toolbar .search input{padding-left:12px;padding-right:42px}
html[dir="rtl"] .row-end .ico,html[dir="rtl"] .cal-head .ico{transform:scaleX(-1)}
html[dir="rtl"] .notes{border-left:0;border-right:3px solid var(--brass-line);padding:2px 12px 2px 0}
html[dir="rtl"] .reply{border-left:0;border-right:3px solid var(--brass-line);padding:6px 12px 6px 0;border-radius:10px 0 0 10px}
html[dir="rtl"] .tl-month-label::before{margin-right:0;margin-left:8px}
html[dir="rtl"] .event{border-left:1px solid var(--line);border-right:4px solid var(--k,var(--accent))}
html[dir="rtl"] .song-row,html[dir="rtl"] .mini{text-align:right}
html[dir="rtl"] .grp::after{background:linear-gradient(270deg,var(--brass-line),transparent)}
html[dir="rtl"] .switch[aria-checked="true"]::after{transform:translateX(20px)}
html[dir="rtl"] .switch{direction:ltr}
html[dir="rtl"] .eyebrow,html[dir="rtl"] .fgroup-name,html[dir="rtl"] .settings .label{letter-spacing:0}
html[dir="rtl"] .tile .badge{left:auto;right:8px}
html[dir="rtl"] .song-row.now{background:linear-gradient(270deg,var(--accent-soft),var(--surface) 70%)}
html[lang="ar"] .hero h1,html[lang="ar"] .view-head h2,html[lang="ar"] .sheet-title{font-family:'Noto Naskh Arabic','Amiri',var(--display)}

@media (prefers-reduced-motion:reduce){
  .mp-art .eq i,.paper-ico,.song-row.playing .disc .ico{animation:none!important}
}

/* =====================================================================
   v5 : favoris, playlists, file d'attente, oreille
   ===================================================================== */
.ico.tiny{width:14px;height:14px;vertical-align:-2px}
/* Onglets compacts (Tous / Favoris / Playlists, Ressources / Oreille) */
.cview{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:14px;background:var(--surface);width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none}
.cview::-webkit-scrollbar{display:none}
.cview-b{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 14px;border:0;border-radius:10px;background:none;color:var(--muted);font-weight:700;cursor:pointer;white-space:nowrap;transition:background .2s,color .2s}
.cview-b .ico{width:17px;height:17px}
.cview-b:hover{color:var(--fg)}
.cview-b[aria-selected="true"]{background:var(--accent);color:var(--accent-fg);box-shadow:0 3px 10px color-mix(in srgb,var(--accent) 30%,transparent)}
.cview-n{font-size:.75rem;font-weight:700;opacity:.75}
.cview-n:empty{display:none}
.learn-sw{margin-top:-4px}
#v-chants.pl-mode .toolbar,#v-chants.pl-mode .active-filters{display:none}
@media (min-width:1024px){#v-chants.pl-mode .chants-layout{grid-template-columns:minmax(0,1fr)}#v-chants.pl-mode .fpanel{display:none}}
@media (max-width:640px){#v-chants.pl-mode .fpanel{display:none}.cview{width:100%}.cview-b{flex:1;justify-content:center;padding:0 8px}}

/* Ligne de chant : cœur et menu */
.song-row{cursor:pointer}
.row-acts{flex:0 0 auto;display:flex;align-items:center;gap:2px}
.like-b,.more-b{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:3px;min-width:38px;height:38px;padding:0 6px;border:0;border-radius:10px;background:none;color:var(--muted);cursor:pointer;transition:color .2s,background .2s,transform .15s}
.like-b:hover,.more-b:hover{background:var(--surface-2);color:var(--fg)}
.like-b .like-n{font-size:.74rem;font-weight:700}
.like-b.on,.like-big.on,.mp-like.on{color:#e0567a}
.like-b.on .ico,.like-big.on .ico,.mp-like.on .ico,.menu-item.liked .ico{fill:currentColor}
.like-b.pulse .ico,.like-big.pulse .ico,.mp-like.pulse .ico{animation:heartPop .45s var(--spring)}
@keyframes heartPop{0%{transform:scale(1)}40%{transform:scale(1.45)}100%{transform:scale(1)}}
.song-acts{display:flex;gap:8px;flex-wrap:wrap}
.like-big.on{border-color:color-mix(in srgb,#e0567a 50%,var(--line));background:color-mix(in srgb,#e0567a 10%,var(--surface))}
.menu-title{padding:8px 12px 6px;font-weight:700;font-size:.85rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu-item.liked{color:#e0567a}
.menu-item.liked .ico{color:#e0567a}
.pp-list{max-height:240px;overflow:auto}
.pp .menu-item .grow-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pp-empty{padding:4px 12px}
.pp-new{display:flex;gap:6px;padding:8px 6px 4px;border-top:1px solid var(--line);margin-top:6px}
.pp-new input{min-height:40px}

/* Playlists */
.pl-view{display:flex;flex-direction:column;gap:14px}
.pl-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.pl-head .section-t{margin:0}
.pl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
@media (max-width:640px){.pl-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
.pl-card{display:flex;flex-direction:column;gap:8px;padding:8px;border:1px solid var(--line);border-radius:16px;background:var(--surface);cursor:pointer;transition:transform .2s var(--ease),box-shadow .2s,border-color .2s;min-width:0}
.pl-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.pl-cover{--h:280;position:relative;aspect-ratio:1;border-radius:12px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,hsl(var(--h) 55% 42%),hsl(calc(var(--h) + 40) 60% 28%));overflow:hidden}
.pl-cover.fav{background:linear-gradient(135deg,#e0567a,#6b2457)}
.pl-cover .ico{width:38%;height:38%;opacity:.9}
.pl-cover.fav .ico{fill:currentColor}
.pl-count{position:absolute;left:8px;bottom:8px;padding:2px 8px;border-radius:999px;background:rgba(0,0,0,.35);font-size:.75rem;font-weight:700}
.pl-play{position:absolute;right:8px;bottom:8px;width:42px;height:42px;border-radius:50%;border:0;display:grid;place-items:center;background:#fff;color:#2a1d3a;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.35);transform:translateY(6px);opacity:.92;transition:transform .25s var(--spring),opacity .2s}
.pl-play .ico{width:18px;height:18px;fill:currentColor;stroke:none;opacity:1}
.pl-card:hover .pl-play{transform:none;opacity:1}
@media (hover:none){.pl-play{transform:none}}
.pl-body{display:flex;flex-direction:column;gap:2px;padding:0 4px 4px;min-width:0}
.pl-body b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-hero{display:flex;gap:16px;align-items:center}
.pl-cover.big{width:110px;flex:none}
.pl-hero-t{display:flex;flex-direction:column;gap:6px;min-width:0}
.pl-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pl-tools input{min-height:36px;flex:1 1 180px;width:auto}
.pl-adder{display:flex;flex-direction:column;gap:6px}
.pl-adder .search{position:relative}
.pl-adder .search .ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted)}
.pl-adder .search input{padding-left:40px}
html[dir="rtl"] .pl-adder .search .ico{left:auto;right:12px}
html[dir="rtl"] .pl-adder .search input{padding-left:12px;padding-right:40px}
.pl-res{display:flex;flex-direction:column;gap:2px}
.pl-res-i{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px dashed var(--line);border-radius:10px;background:none;cursor:pointer;text-align:start;font-weight:600}
.pl-res-i:hover{border-color:var(--accent);background:var(--accent-soft)}
.pl-res-i span{flex:1;min-width:0}
.pl-rows{display:flex;flex-direction:column}
.pl-row{display:flex;align-items:center;gap:6px;padding:6px 0;border-bottom:1px solid var(--line)}
.pl-row:last-child{border-bottom:0}
.pl-n{width:24px;flex:none;text-align:center;color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums}
.pl-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;border:0;background:none;padding:4px;cursor:pointer;text-align:start;border-radius:8px}
.pl-t:hover{background:var(--surface-2)}
.pl-t b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.icon-btn.sm{width:34px;height:34px}
.icon-btn.sm .ico{width:17px;height:17px}
.icon-btn.sm.danger{color:var(--danger)}
.icon-btn[disabled]{opacity:.35;cursor:default}
.icon-btn .ico[class]{flex:none}
.pl-row .icon-btn .ico{width:16px}

/* Lecteur : file d'attente */
.mp-q{padding:0;gap:0}
.mp-q:hover{background:none}
.mp-q-main{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:7px 8px;border:0;border-radius:10px;background:none;color:var(--hero-fg);cursor:pointer;text-align:start;font-weight:600;font-size:.92rem}
.mp-q-main:hover{background:rgba(255,255,255,.1)}
.mp-q-main span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-q-x{flex:none;width:32px;height:32px;border:0;border-radius:50%;background:none;color:var(--hero-muted);cursor:pointer;display:grid;place-items:center;opacity:.7}
.mp-q-x:hover{opacity:1;background:rgba(255,255,255,.12)}
.mp-q-x .ico{width:15px;height:15px}
.mp-qhead{display:flex;align-items:center;justify-content:space-between}
.mp-clear{border:0;background:none;color:var(--hero-muted);font-size:.8rem;font-weight:700;cursor:pointer;text-decoration:underline}
.mp-like .ico{width:18px;height:18px}
@media (max-width:600px){.mp-like{display:none}}

/* ---------- Oreille ---------- */
.ear-intro{display:flex;flex-direction:column;gap:8px}
.ear-intro h3{font-size:1.4rem}
.ear-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.ear-card{--h:200;display:flex;gap:14px;align-items:flex-start;padding:16px;text-align:start;border:1px solid var(--line);border-radius:18px;background:linear-gradient(160deg,color-mix(in srgb,hsl(var(--h) 70% 50%) 10%,var(--surface)),var(--surface) 60%);cursor:pointer;color:var(--fg);transition:transform .25s var(--ease),box-shadow .25s,border-color .25s}
.ear-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift);border-color:hsl(var(--h) 60% 50% / .5)}
.ear-ico{flex:none;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,hsl(var(--h) 70% 52%),hsl(calc(var(--h) + 35) 65% 38%));box-shadow:0 6px 16px hsl(var(--h) 70% 40% / .35)}
.ear-ico .ico{width:26px;height:26px}
.ear-ico.big{width:64px;height:64px;border-radius:20px}
.ear-ico.big .ico{width:32px;height:32px}
.ear-card-b{display:flex;flex-direction:column;gap:6px;min-width:0}
.ear-card-b>b{font-size:1.08rem}
.ear-bests{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.ear-best{display:inline-flex;align-items:center;gap:5px;padding:2px 9px 2px 3px;border-radius:999px;background:var(--surface-2);font-size:.78rem;font-weight:700;color:var(--muted)}
.ear-best b{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--line);font-size:.68rem;color:var(--fg)}
.ear-best.got{color:var(--fg)}
.ear-best.got b{background:hsl(var(--h) 65% 48%);color:#fff}
.ear-champ{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:var(--brass);font-weight:700}
.ear-top{display:flex}
.ear-lobby{--h:200;gap:16px;background:linear-gradient(160deg,color-mix(in srgb,hsl(var(--h) 70% 50%) 12%,var(--surface)),var(--surface) 70%)}
.ear-lobby-h{display:flex;gap:16px;align-items:center}
.ear-lobby-h h2{font-size:1.6rem}
.ear-levels .seg-b[aria-pressed="true"]{background:hsl(var(--h) 65% 46%);color:#fff}
.ear-rule{display:flex;gap:10px;align-items:flex-start;color:var(--muted)}
.ear-rule .ico{color:hsl(var(--h) 60% 55%);margin-top:2px}
.ear-start{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.btn.big{min-height:54px;padding:0 28px;font-size:1.08rem;border-radius:16px}
.board-box{display:flex;flex-direction:column;gap:8px}
.board{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.board li{display:flex;align-items:center;gap:12px;padding:9px 6px;border-bottom:1px solid var(--line)}
.board li:last-child{border-bottom:0}
.board li.is-me{background:var(--accent-soft);border-radius:10px}
.board li.flash{animation:pop .6s var(--spring)}
.board .rk{width:28px;height:28px;flex:none;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.85rem;background:var(--surface-2);color:var(--muted)}
.board .rk1{background:linear-gradient(135deg,#f6d77a,#c9971f);color:#3b2a05}
.board .rk2{background:linear-gradient(135deg,#e6e6ec,#9da0ad);color:#2a2a33}
.board .rk3{background:linear-gradient(135deg,#e9b98a,#a8662d);color:#2f1806}
.board .nm{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.board .sc{font-variant-numeric:tabular-nums;font-size:1.05rem}
@media (max-width:420px){.board .pl{display:none}}

.ear-game{--h:200;display:flex;flex-direction:column;gap:14px;max-width:760px;width:100%;margin:0 auto}
.ear-hud{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ear-name{display:flex;align-items:center;gap:8px;min-width:0;font-size:.95rem}
.ear-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip-l{padding:2px 10px;border-radius:999px;background:hsl(var(--h) 65% 46%);color:#fff;font-size:.75rem;font-weight:700}
.ear-score{font-weight:600;color:var(--muted);white-space:nowrap}
.ear-score b{color:var(--fg);font-size:1.15rem;font-variant-numeric:tabular-nums}
.ear-prog{display:grid;grid-template-columns:repeat(10,1fr);gap:5px}
.ear-prog span{height:7px;border-radius:7px;background:var(--surface-2);transition:background .3s}
.ear-prog span.cur{background:hsl(var(--h) 60% 55%);animation:breathe2 1.4s ease-in-out infinite}
@keyframes breathe2{50%{opacity:.5}}
.ear-prog .good,.ear-dots .good{background:var(--ok)}
.ear-prog .mid,.ear-dots .mid{background:#e2b04a}
.ear-prog .bad,.ear-dots .bad{background:var(--danger)}
.ear-stage{align-items:center;text-align:center;gap:18px;padding:24px 18px}
.ear-round{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}
.ear-listen{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;width:132px;height:132px;justify-content:center;border-radius:50%;border:0;cursor:pointer;color:#fff;font-weight:700;font-size:.85rem;background:radial-gradient(circle at 35% 30%,hsl(var(--h) 75% 60%),hsl(calc(var(--h) + 30) 70% 36%));box-shadow:0 14px 34px hsl(var(--h) 70% 35% / .45);transition:transform .2s var(--spring)}
.ear-listen .ico{width:36px;height:36px;fill:currentColor;stroke:none}
.ear-listen:active{transform:scale(.95)}
.ear-listen[disabled]{opacity:.45;cursor:default}
.ear-listen .ring{position:absolute;inset:-8px;border-radius:50%;border:3px solid hsl(var(--h) 70% 55% / .5);opacity:0}
.ear-listen.playing .ring{animation:ringOut 1s ease-out infinite}
@keyframes ringOut{from{transform:scale(.9);opacity:.9}to{transform:scale(1.25);opacity:0}}
.ear-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}
.ear-opts.many{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:560px){.ear-opts.many{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ear-opt{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:58px;padding:8px 12px;border:2px solid var(--line);border-radius:14px;background:var(--surface);color:var(--fg);font-weight:700;font-size:.98rem;cursor:pointer;transition:transform .15s var(--ease),border-color .2s,background .2s}
.ear-opt:hover:not([disabled]){border-color:hsl(var(--h) 60% 55%);transform:translateY(-2px)}
.ear-opt:active:not([disabled]){transform:scale(.97)}
.ear-opt kbd,.ear-key kbd{position:absolute;top:6px;inset-inline-start:8px;font:700 .68rem var(--body);color:var(--muted);opacity:.7}
@media (hover:none){.ear-opt kbd,.ear-key kbd{display:none}}
.ear-opt.right{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 16%,var(--surface));animation:pop .4s var(--spring)}
.ear-opt.wrong{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,var(--surface));animation:shake .4s ease}
.ear-opt[disabled]{cursor:default}
.ear-fb{min-height:0;display:none;align-items:center;gap:12px;padding:12px 16px;border-radius:14px;text-align:start;width:100%}
.ear-fb.show{display:flex;animation:rise .35s var(--ease)}
.ear-fb .pts{font-size:1.4rem;font-variant-numeric:tabular-nums}
.ear-fb.good{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--fg)}
.ear-fb.good .pts{color:var(--ok)}
.ear-fb.mid{background:color-mix(in srgb,#e2b04a 16%,transparent)}
.ear-fb.mid .pts{color:#d39b25}
.ear-fb.bad{background:color-mix(in srgb,var(--danger) 13%,transparent)}
.ear-fb.bad .pts{color:var(--danger)}
.ear-next{min-height:50px;padding:0 26px}
/* Bouton à glisser */
.ear-dialbox{display:flex;flex-direction:column;gap:12px;width:100%;align-items:center}
.dial-row{display:flex;align-items:center;gap:10px;width:100%}
.dial{position:relative;flex:1;height:64px;border-radius:32px;background:linear-gradient(90deg,hsl(var(--h) 30% 25%),hsl(var(--h) 60% 45%),hsl(calc(var(--h) + 40) 75% 62%));cursor:grab;touch-action:none;box-shadow:inset 0 2px 8px rgba(0,0,0,.35)}
html[data-theme="light"] .dial{background:linear-gradient(90deg,hsl(var(--h) 25% 82%),hsl(var(--h) 55% 62%),hsl(calc(var(--h) + 40) 70% 52%))}
.dial.active{cursor:grabbing}
.dial-fill{display:none}
.dial-thumb{position:absolute;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.4),inset 0 -3px 0 rgba(0,0,0,.08);transition:transform .15s var(--spring)}
.dial.active .dial-thumb{transform:scale(1.12)}
.dial-thumb::after{content:"";position:absolute;inset:16px;border-radius:50%;background:hsl(var(--h) 65% 50%)}
.dial.active .dial-thumb::after{animation:breathe2 .6s ease-in-out infinite}
.dial-target{position:absolute;top:-8px;bottom:-8px;width:4px;margin-left:-2px;border-radius:4px;background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 35%,transparent);animation:pop .4s var(--spring)}
.dial-target::after{content:"✓";position:absolute;top:-24px;left:50%;transform:translateX(-50%);color:var(--ok);font-weight:800}
html[dir="rtl"] .dial-thumb{margin:-26px -26px 0 0}
.dial-ends{display:flex;justify-content:space-between;width:100%;padding:0 54px}
/* Clavier de la mélodie */
.ear-melo{display:flex;flex-direction:column;gap:12px;align-items:center;width:100%}
.ear-typed{display:flex;gap:8px}
.ear-typed .slot{width:52px;height:44px;border-radius:12px;border:2px dashed var(--line);display:grid;place-items:center;font-weight:700}
.ear-typed .slot:not(:empty){border-style:solid;border-color:hsl(var(--h) 55% 50%)}
.ear-typed .slot:first-child{background:var(--surface-2);border-style:solid}
.ear-typed .slot.right{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 15%,transparent)}
.ear-typed .slot.wrong{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent)}
.ear-keys{display:flex;gap:6px;width:100%;justify-content:center}
.ear-key{position:relative;flex:1;max-width:84px;height:120px;border-radius:12px 12px 16px 16px;border:0;cursor:pointer;color:#fff;font-weight:800;display:flex;align-items:flex-end;justify-content:center;padding-bottom:12px;box-shadow:inset 0 -6px 0 rgba(0,0,0,.18),0 6px 14px rgba(0,0,0,.2);transition:transform .1s}
.ear-key.k0{background:#d94b4b}.ear-key.k1{background:#e58a2e}.ear-key.k2{background:#d9b62b}.ear-key.k3{background:#4caf6a}.ear-key.k4{background:#2f9ec4}.ear-key.k5{background:#5b6fd6}.ear-key.k6{background:#9b59c9}
.ear-key.hit{animation:keyHit .3s ease}
@keyframes keyHit{40%{transform:translateY(4px) scale(.97);filter:brightness(1.25)}}
.ear-key[disabled]{opacity:.6;cursor:default}
@media (max-width:420px){.ear-key{height:96px}.ear-typed .slot{width:44px}}
/* Fin de partie */
.ear-end{align-items:center;text-align:center;gap:10px;padding:28px 18px}
.stars{display:flex;gap:6px;font-size:2.4rem;line-height:1}
.star{color:var(--line);transform:scale(.6);opacity:0;animation:starIn .5s var(--spring) forwards;animation-delay:var(--d)}
.star.on{color:#f2c94c;text-shadow:0 4px 14px rgba(242,201,76,.45)}
@keyframes starIn{to{transform:none;opacity:1}}
.big-score{font-family:var(--display)}
.big-score b{font-size:3.4rem;font-weight:400}
.big-score span{color:var(--muted);font-size:1.2rem}
.end-msg{font-size:1.05rem}
.end-rec.new{color:var(--brass);font-weight:700;animation:pop .6s var(--spring)}
.ear-dots{display:flex;gap:5px}
.ear-dots .dot{width:12px;height:12px;border-radius:50%}

/* =====================================================================
   v6 (mise à jour n°5) : serveur en pause, mariages, appels, compétences, assiduité
   ===================================================================== */
/* Chargement et serveur en pause */
.boot{min-height:100dvh;display:grid;place-items:center;background:linear-gradient(160deg,var(--hero-1),var(--hero-2));color:var(--hero-muted)}
.boot-in{display:flex;flex-direction:column;align-items:center;gap:12px;animation:rise .5s var(--ease) both}
.boot .emblem{width:52px;height:65px;animation:breathe 2.4s ease-in-out infinite}
.boot .muted{color:var(--hero-muted)}
@keyframes breathe{0%,100%{opacity:.75;transform:scale(.97)}50%{opacity:1;transform:scale(1)}}
.down-card{gap:16px}
.down-card .brand h1{font-size:1.9rem}
.down-card #down-text{color:var(--hero-fg);opacity:.92;max-width:40ch}
.down-status{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:var(--hero-fg)}
.down-status .muted{color:var(--hero-muted)}
.down-pulse{width:12px;height:12px;border-radius:50%;background:var(--hero-brass);flex:none;box-shadow:0 0 0 0 rgba(226,207,159,.6);animation:pulse 1.8s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(226,207,159,.55)}80%,100%{box-shadow:0 0 0 14px rgba(226,207,159,0)}}
#down-foot{color:var(--hero-muted)}
.down-card .btn.primary{align-self:flex-start}
.down-bar{display:flex;align-items:center;gap:10px;padding:10px max(16px,env(safe-area-inset-left,0px));justify-content:center;font-weight:600;font-size:.92rem;background:var(--brass-soft);color:var(--brass);border-bottom:1px solid var(--brass-line);animation:rise .35s var(--ease) both}
.down-bar.offline{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
.down-bar .ico{width:18px;height:18px}
.down-bar.server .ico{animation:spin 2.4s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Lien « Vous vous mariez ? » sur l'écran de connexion */
.wed-link{display:flex;align-items:center;gap:14px;text-align:start;padding:14px 16px;border-radius:18px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:var(--hero-fg);cursor:pointer;backdrop-filter:blur(6px);transition:background .2s,transform .15s var(--ease)}
.wed-link:hover{background:rgba(255,255,255,.14)}
.wed-link:active{transform:scale(.98)}
.wed-link > span:last-child{display:flex;flex-direction:column;gap:2px}
.wed-link .muted{color:var(--hero-muted)}
.wed-ico{width:42px;height:42px;flex:none;border-radius:50%;background:rgba(226,207,159,.16);box-shadow:inset 0 0 0 1px rgba(226,207,159,.45);position:relative}
.wed-ico::before,.wed-ico::after{content:"";position:absolute;top:14px;width:15px;height:15px;border-radius:50%;border:2px solid var(--hero-brass)}
.wed-ico::before{left:9px}.wed-ico::after{left:17px}

/* Pastilles de statut */
.st-pill{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap;flex:none;border:1px solid transparent}
.st-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.st-wait{color:var(--brass);background:var(--brass-soft);border-color:var(--brass-line)}
.st-ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}
.st-no{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}
.st-soft{color:var(--muted);background:var(--surface-2)}

/* Mariages */
.k-Mariage{--k:var(--ok)}
.wed-intro{flex-direction:row;align-items:flex-start;gap:16px;background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--brass-soft) 70%,var(--surface)))}
.wed-intro-ico{width:52px;height:52px;flex:none;border-radius:16px;display:grid;place-items:center;background:var(--brass-soft);color:var(--brass);border:1px solid var(--brass-line)}
.wed-intro-ico .ico{width:26px;height:26px}
.wed-intro > div:last-child{display:flex;flex-direction:column;gap:6px}
.wed-list{display:flex;flex-direction:column;gap:12px}
.wed-card{border-left:4px solid var(--line);gap:10px}
.wed-card.st-wait{border-left-color:var(--brass-line)}
.wed-card.st-ok{border-left-color:var(--ok)}
.wed-card.st-no{border-left-color:var(--danger)}
.wed-card.st-wait,.wed-card.st-ok,.wed-card.st-no{color:inherit;background:var(--surface);border-top-color:var(--line);border-right-color:var(--line);border-bottom-color:var(--line)}
.wed-top{display:flex;align-items:center;gap:12px;justify-content:space-between}
.wed-top > b{font-size:1.05rem}
.wed-date{display:flex;flex-direction:column;align-items:center;line-height:1;min-width:52px}
.wed-date b{font-family:var(--display);font-size:1.7rem;font-weight:400}
.wed-date span{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;text-align:center}
.wed-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.wed-main span{text-transform:none}
.wed-when{display:flex;align-items:center;gap:8px;color:var(--muted)}
.wed-when .ico{width:17px;height:17px}
.wed-reply{background:var(--surface-2);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.wed-warn{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--brass-soft);border:1px solid var(--brass-line);color:var(--fg)}
.wed-warn > .ico{color:var(--brass);margin-top:2px}
.wed-warn ul{margin:4px 0 0;padding-inline-start:18px}
.wed-warn > div{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.wed-free{display:flex;align-items:center;gap:6px;color:var(--ok)}
.wed-free .ico{width:16px;height:16px}
.wed-cal{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}
.wed-cal .cal{gap:4px}
.wed-cal .day{min-height:38px;padding-top:0;justify-content:center}
.wed-cal .day:disabled{cursor:not-allowed;opacity:.35}
.wed-cal .day:disabled:hover{border-color:transparent}
.wed-cal .day.busy{opacity:1;background:repeating-linear-gradient(135deg,var(--surface) 0 5px,var(--surface-2) 5px 10px);color:var(--muted);text-decoration:line-through}
.wed-cal .day.out{visibility:hidden}
.wed-cal .day.sel{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);box-shadow:none}
.wed-cal-leg{display:flex;align-items:center;gap:8px}
.leg-busy{width:16px;height:16px;border-radius:5px;border:1px solid var(--line);background:repeating-linear-gradient(135deg,var(--surface) 0 3px,var(--surface-2) 3px 6px)}
.wed-chosen{font-weight:600}
.wed-pair{border:1px solid var(--line);border-radius:14px;padding:10px 14px 14px;margin:0;display:flex;flex-direction:column;gap:8px}
.wed-pair legend{padding:0 6px;font-weight:700;font-size:.9rem;color:var(--muted)}
.wed-sent{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:8px 0}
.wed-sent-ico{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok);animation:pop .5s var(--spring) both}
.wed-sent-ico .ico{width:32px;height:32px;stroke-width:2.4}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
.wed-code{display:flex;flex-direction:column;gap:4px;padding:14px 22px;border-radius:16px;border:1px dashed var(--brass-line);background:var(--brass-soft)}
.wed-code b{font-family:ui-monospace,'SFMono-Regular',Consolas,monospace;font-size:1.6rem;letter-spacing:.12em;color:var(--fg)}
.wed-sent .actions{justify-content:center}

/* Appels */
.call-list{display:flex;flex-direction:column;gap:10px}
.call-row{display:grid;grid-template-columns:56px 1fr auto 20px;gap:12px;align-items:center;text-align:start;padding:12px 14px;border-radius:14px;border:1px solid var(--line);border-left:4px solid var(--k,var(--accent));background:var(--surface);cursor:pointer;color:inherit;transition:transform .15s var(--ease),border-color .2s,box-shadow .2s}
.call-row:hover{border-color:var(--accent);border-left-color:var(--k,var(--accent));box-shadow:var(--shadow)}
.call-row:active{transform:scale(.99)}
.call-row.todo{background:linear-gradient(90deg,var(--brass-soft),var(--surface) 60%)}
.call-row > .ico{color:var(--muted)}
.call-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.call-main b{overflow-wrap:anywhere}
.call-sum{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.cs{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-variant-numeric:tabular-nums;font-size:.9rem}
.cs i,.cc i,.att-tag i,.ch-legend i{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}
@media (max-width:560px){.call-row{grid-template-columns:48px 1fr 20px}.call-row > .call-sum,.call-row > .st-pill{grid-column:2;grid-row:2;justify-self:start}.call-row > .ico{grid-row:1/3;grid-column:3}}
.call-quick{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:520px){.call-quick{grid-template-columns:1fr}}
.big-choice{min-height:72px;justify-content:flex-start;text-align:start;padding:12px 16px;gap:12px}
.big-choice > span{display:flex;flex-direction:column;gap:2px;font-weight:400}
.big-choice b{font-weight:700}
.big-choice .ico{width:24px;height:24px;color:var(--accent)}
.call-count{display:flex;flex-wrap:wrap;gap:8px 16px;padding:10px 14px;border-radius:12px;background:var(--surface-2);position:sticky;top:-6px;z-index:2;box-shadow:0 6px 12px var(--bg)}
.cc{display:inline-flex;align-items:center;gap:6px;font-size:.92rem}
.cc b{font-variant-numeric:tabular-nums}
.call-search{width:100%}
.call-members{display:flex;flex-direction:column;gap:8px}
.att-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);border-left:4px solid var(--line);transition:border-color .2s,background .2s}
.att-row.s-present{border-left-color:var(--ok)}
.att-row.s-retard{border-left-color:var(--brass-line)}
.att-row.s-justifie{border-left-color:var(--violet)}
.att-row.s-absent{border-left-color:var(--danger)}
.att-name{overflow-wrap:anywhere}
.att-seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface-2)}
.att-b{min-height:38px;padding:0 10px;border:0;background:transparent;cursor:pointer;font-weight:600;font-size:.84rem;color:var(--muted);transition:background .15s,color .15s}
.att-b+.att-b{border-inline-start:1px solid var(--line)}
.att-b[aria-pressed="true"].att-present{background:var(--ok);color:#10261a}
.att-b[aria-pressed="true"].att-retard{background:var(--brass);color:#2a1d0f}
.att-b[aria-pressed="true"].att-justifie{background:var(--violet);color:#1b1230}
.att-b[aria-pressed="true"].att-absent{background:var(--danger);color:#2b0c0a}
html[data-theme="light"] .att-b[aria-pressed="true"]{color:#fff}
@media (max-width:640px){.att-row{grid-template-columns:1fr}.att-seg{display:grid;grid-template-columns:repeat(4,1fr)}.att-b{padding:0 4px}}
.late-row{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.chip.sm{min-height:32px;padding:0 11px;font-size:.84rem}
.late-own{display:inline-flex;align-items:center;gap:6px}
input[type=number].late-in{width:78px;min-height:34px;padding:4px 8px;border-radius:10px;background:var(--surface-2)}
.call-actions{position:sticky;bottom:calc(-26px - env(safe-area-inset-bottom,0px));background:var(--bg);margin:0 -18px calc(-26px - env(safe-area-inset-bottom,0px));padding:12px 18px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);z-index:3}

/* Administration : sous-onglets, indicateurs, tableaux */
#v-admin > .cview{align-self:flex-start;max-width:100%;overflow-x:auto;scrollbar-width:none}
@media (max-width:640px){#v-admin > .cview{width:100%}#v-admin .cview-b{flex:1;justify-content:center;padding:0 8px}#v-admin .cview-t{font-size:.82rem;white-space:normal;line-height:1.1;text-align:center}}
.adm-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.adm-bar p{flex:1;min-width:220px}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:760px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kpi{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);min-width:0}
.kpi-l{font-size:.8rem;font-weight:700;letter-spacing:.04em;color:var(--muted);text-transform:uppercase}
.kpi-v{font-family:var(--display);font-weight:400;font-size:1.9rem;line-height:1.1;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.kpi-s{font-size:.82rem;color:var(--muted)}
.kpi.up .kpi-v{color:var(--ok)}
.kpi.down .kpi-v{color:var(--danger)}
.tbl-wrap{overflow-x:auto;margin:0 -4px;padding:0 4px}
.tbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.tbl th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;text-align:start;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl td.up{color:var(--ok);font-weight:700}
.tbl td.down{color:var(--danger);font-weight:700}
.th-b{background:none;border:0;padding:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}
.th-b.on{color:var(--fg)}
.th-b.on::after{content:" ▾"}
.tr-link{cursor:pointer;transition:background .15s}
.tr-link:hover,.tr-link:focus-visible{background:var(--surface-2)}
.td-name{display:inline-flex;align-items:center;gap:6px}
.hid{color:var(--muted);display:inline-flex}
.hid .ico{width:16px;height:16px}
.lvl{display:inline-flex;align-items:center;gap:8px;font-weight:700;white-space:nowrap}
.lvl-bar{width:64px;height:7px;border-radius:99px;background:var(--surface-2);overflow:hidden;display:inline-block}
.lvl-bar span{display:block;height:100%;border-radius:99px;background:var(--accent)}
.hbars{display:flex;flex-direction:column;gap:12px}
.hb-row{display:grid;grid-template-columns:minmax(110px,38%) 1fr 44px;gap:12px;align-items:center}
@media (max-width:520px){.hb-row{grid-template-columns:1fr 44px}.hb-l{grid-column:1/-1}}
.hb-l{font-size:.92rem}
.hb-track{position:relative;height:12px;border-radius:99px;background:var(--surface-2)}
.hb-fill{position:absolute;inset:0 auto 0 0;border-radius:99px;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 60%,var(--brass)))}
.hb-ref{position:absolute;top:-4px;bottom:-4px;width:3px;margin-left:-1.5px;border-radius:3px;background:var(--fg)}
.hb-v{text-align:end;font-variant-numeric:tabular-nums}
.att-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.att-filters .seg{flex-wrap:wrap}
.att-filters select{width:auto;flex:1 1 200px;max-width:320px;min-height:36px;padding:0 10px;border-radius:10px}
.att-filters .seg-b[aria-pressed="true"]{background:var(--accent);color:var(--accent-fg)}
.att-tag{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.seg-b .cview-n{font-size:.75rem;opacity:.85}
.perm-resp{display:flex;flex-direction:column;gap:6px;padding-top:6px;border-top:1px solid var(--line)}
.ear-vis{margin-top:4px;padding:12px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}

/* Graphiques */
.ch-box{position:relative}
.ch-tip{position:absolute;top:-6px;transform:translateY(-100%);z-index:3;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;background:var(--fg);color:var(--bg);font-size:.8rem;box-shadow:var(--shadow-lift);pointer-events:none;white-space:nowrap}
.ch-stack{display:flex;align-items:flex-end;gap:6px;height:180px;padding-top:4px;overflow-x:auto}
.ch-col{flex:1 0 26px;max-width:64px;height:100%;display:flex;flex-direction:column;gap:6px;outline:none}
.ch-bar{flex:1;display:flex;flex-direction:column-reverse;border-radius:8px;overflow:hidden;background:var(--surface-2);transition:transform .15s var(--ease)}
.ch-col:hover .ch-bar,.ch-col:focus-visible .ch-bar{transform:scaleX(1.06);box-shadow:0 0 0 2px var(--fg)}
.ch-seg{display:block;width:100%}
.ch-seg+.ch-seg{box-shadow:0 1px 0 var(--surface)}
.ch-x{font-size:.72rem;color:var(--muted);text-align:center;text-transform:capitalize;white-space:nowrap}
.ch-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:.85rem;color:var(--muted)}
.ch-legend span{display:inline-flex;align-items:center;gap:6px}
.ch-line{position:relative;height:180px;margin:6px 6px 0 34px;touch-action:pan-y}
.ch-grid{position:absolute;left:0;right:0;height:0;border-top:1px dashed var(--line)}
.ch-grid em{position:absolute;right:100%;top:-.6em;margin-right:8px;font-style:normal;font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}
.ch-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ch-path{fill:none;stroke:var(--accent);stroke-width:2.5;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.ch-dot{position:absolute;width:9px;height:9px;margin:0 0 -4.5px -4.5px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--surface);transition:transform .15s}
.ch-dot.on{transform:scale(1.6)}
.ch-cross{position:absolute;top:0;bottom:0;width:1px;background:var(--muted);opacity:.6}
.ch-xs{position:relative;height:20px;margin:6px 6px 0 34px}
.ch-xs span{position:absolute;transform:translateX(-50%);font-size:.72rem;color:var(--muted);white-space:nowrap;text-transform:capitalize}
@media (prefers-reduced-motion:reduce){.down-pulse,.down-bar.server .ico,.boot .emblem{animation:none}}
.login-card.down-card #down-text{text-transform:none;letter-spacing:normal;font-size:1.02rem;font-weight:400;line-height:1.55;color:var(--hero-fg);opacity:.92}

/* ---------- v7 : Spirituel — la Bible ---------- */
:root{--hl-jaune:rgba(250,214,72,.34);--hl-vert:rgba(110,214,140,.30);--hl-bleu:rgba(110,170,255,.32);--hl-rose:rgba(255,128,170,.32);--hl-violet:rgba(178,140,255,.34);--hl-orange:rgba(255,160,80,.34)}
html[data-theme="light"]{--hl-jaune:rgba(255,214,0,.42);--hl-vert:rgba(70,200,110,.32);--hl-bleu:rgba(80,150,255,.28);--hl-rose:rgba(255,100,150,.28);--hl-violet:rgba(150,100,255,.26);--hl-orange:rgba(255,140,40,.32)}
.hl-jaune{--hl:var(--hl-jaune)}.hl-vert{--hl:var(--hl-vert)}.hl-bleu{--hl:var(--hl-bleu)}.hl-rose{--hl:var(--hl-rose)}.hl-violet{--hl:var(--hl-violet)}.hl-orange{--hl:var(--hl-orange)}
.bib-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.bib-top .seg-b[aria-pressed="true"],.disp .seg-b[aria-pressed="true"],.bib-picker .seg-b[aria-pressed="true"],.my-bible .seg-b[aria-pressed="true"],.bib-search .seg-b[aria-pressed="true"]{background:var(--accent);color:var(--accent-fg)}
.bib-card{padding:0 0 18px;gap:0;overflow:visible}
.bib-bar{position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--navh,58px));z-index:5;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:10px 12px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);border-radius:16px 16px 0 0}
.bib-where{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);cursor:pointer;font-family:var(--display);font-size:1.1rem}
.bib-where b{font-weight:400}
.bib-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.bib-tools .icon-btn{width:40px;height:40px}
.bib-tools .icon-btn:disabled{opacity:.35;cursor:default}
.aa{font-family:var(--display);font-size:1.05rem}
.bib-title{font-size:clamp(1.6rem,6vw,2.2rem);text-align:center;padding:22px 16px 6px;color:var(--brass)}
.bib-title em{font-style:normal;color:var(--fg)}
.bib-card>.muted.small{padding:0 18px}
.bib-text{--bfs:1.12rem;--blh:1.75;font-family:var(--display),Georgia,serif;font-size:var(--bfs);line-height:var(--blh);padding:10px clamp(16px,4vw,30px) 4px;text-align:start;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word}
.bib-text.sans{font-family:var(--body)}
.bib-text.lines .bv{display:block;margin-bottom:.35em}
.bv{cursor:pointer;border-radius:5px;padding:1px 1px;transition:background .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.bv[class*="hl-"]{background:var(--hl)}
.bv:hover{background:color-mix(in srgb,var(--fg) 6%,transparent)}
.bv[class*="hl-"]:hover{background:var(--hl)}
.bv.sel{box-shadow:inset 0 -2px 0 var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent)}
.bv.reading{background:color-mix(in srgb,var(--brass) 26%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--brass) 40%,transparent)}
.bv.flash{animation:bvFlash 2.2s var(--ease)}
@keyframes bvFlash{0%,40%{box-shadow:0 0 0 3px var(--accent)}100%{box-shadow:0 0 0 0 transparent}}
.vn{font-family:var(--body);font-size:.62em;font-weight:700;color:var(--accent);margin-inline-end:3px;vertical-align:.45em;line-height:0;user-select:none}
.vfav{color:var(--brass);font-size:.8em;margin-inline-end:3px}
.vnote{margin:8px 0 12px;padding:10px 12px 12px;border-inline-start:3px solid var(--brass-line);background:var(--brass-soft);border-radius:0 12px 12px 0;font-family:var(--body);font-size:.95rem;line-height:1.5}
html[dir="rtl"] .vnote{border-radius:12px 0 0 12px}
.vnote-h{display:flex;align-items:center;gap:6px;color:var(--brass);font-weight:700;font-size:.82rem;margin-bottom:4px}
.vnote-h .ico{width:15px;height:15px}
.vnote-h .icon-btn{margin-inline-start:auto;background:transparent;color:var(--brass)}
.bib-nav{display:flex;justify-content:space-between;gap:10px;padding:18px 16px 0;flex-wrap:wrap}
.bib-nav .btn{max-width:100%}
.selbar,.tts-bar{position:fixed;z-index:27;left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 16px));bottom:calc(8px + env(safe-area-inset-bottom,0px));background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lift);animation:mpIn .35s var(--spring)}
body.has-tts .selbar{bottom:calc(92px + env(safe-area-inset-bottom,0px))}
body.has-selbar #app,body.has-tts #app{padding-bottom:170px}
.selbar-in{display:flex;flex-direction:column;gap:10px;padding:10px 12px 12px}
.selbar-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.selbar-top b{font-family:var(--display);font-weight:400;font-size:1.05rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.selbar-colors{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.hl-dot{width:32px;height:32px;border-radius:50%;border:2px solid var(--line);cursor:pointer;background:var(--hl);display:grid;place-items:center;padding:0;transition:transform .15s var(--ease)}
.hl-dot.hl-jaune{background:#f2cd3c}.hl-dot.hl-vert{background:#5fcf86}.hl-dot.hl-bleu{background:#6aa6ff}.hl-dot.hl-rose{background:#ff7fae}.hl-dot.hl-violet{background:#a98cff}.hl-dot.hl-orange{background:#ff9d4a}
.hl-dot[aria-pressed="true"]{border-color:var(--fg);transform:scale(1.12);box-shadow:0 0 0 2px var(--surface) inset}
.hl-dot.none{background:var(--surface-2)}
.hl-dot.none .ico{width:15px;height:15px}
.hl-dot.sm{width:14px;height:14px;border-width:1px;display:inline-block;cursor:inherit}
.selbar-acts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.sb-act{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:52px;justify-content:center;border:0;border-radius:12px;background:var(--surface-2);cursor:pointer;font-size:.8rem;font-weight:600}
.sb-act .star{font-size:1.2rem;line-height:20px;color:var(--brass)}
.sb-act.on{background:var(--brass-soft);color:var(--brass)}
.tts-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;flex-wrap:wrap;color:var(--hero-fg);background:linear-gradient(135deg,var(--hero-1),var(--hero-2));border-color:rgba(255,255,255,.08)}
.tts-info{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 150px}
.tts-info>div{display:flex;flex-direction:column;min-width:0}
.tts-info b{font-family:var(--display);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tts-info .small{color:var(--hero-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tts-ctl{display:flex;align-items:center;gap:4px}
.tts-ctl .icon-btn{width:38px;height:38px;background:rgba(255,255,255,.1);color:var(--hero-fg)}
.tts-ctl .icon-btn.big{width:46px;height:46px;background:var(--hero-brass);color:#1d1129}
.tts-rate{min-width:46px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:transparent;color:var(--hero-fg);font-weight:700;cursor:pointer}
.tts-eq{display:flex;align-items:flex-end;gap:2px;height:18px;width:16px;flex:none}
.tts-eq i{width:4px;background:var(--hero-brass);border-radius:2px;animation:eq 1s ease-in-out infinite}
.tts-eq i:nth-child(2){animation-delay:-.35s}.tts-eq i:nth-child(3){animation-delay:-.7s}
.tts-eq.off i{animation:none;height:4px}
@keyframes eq{0%,100%{height:5px}50%{height:18px}}
.bib-picker h3{font-size:1.3rem}
.bib-filter,#bs-q{width:100%;min-height:46px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-size:1rem}
.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.book-b{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:46px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:start;font-weight:600}
.book-b.on,.ch-b.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.ch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:8px}
.ch-b{min-height:48px;border-radius:12px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:700}
.book-b:hover,.ch-b:hover{border-color:var(--brass-line)}
.disp{gap:12px;padding:6px}
.disp-row{display:flex;flex-direction:column;gap:6px}
.disp-row .seg{display:flex}.disp-row .seg-b{flex:1}
.bib-quote{margin:0;padding:12px 14px;border-inline-start:3px solid var(--brass-line);background:var(--surface);border-radius:10px;font-family:var(--display);line-height:1.6;max-height:30vh;overflow:auto}
.bib-quote sup{color:var(--accent);font-family:var(--body);font-size:.7em;margin-inline-end:2px}
.mine-list,.bs-res{display:flex;flex-direction:column;gap:8px}
.mine-item{display:flex;flex-direction:column;gap:4px;align-items:stretch;text-align:start;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);cursor:pointer;transition:border-color .2s}
.mine-item:hover{border-color:var(--brass-line)}
.mine-item[class*="hl-"]{border-inline-start:6px solid var(--hl)}
.mine-ref b{font-family:var(--display);font-weight:400;font-size:1.05rem;color:var(--brass)}
.mine-txt{font-family:var(--display);line-height:1.5}
.mine-txt mark{background:var(--hl-jaune);color:inherit;border-radius:3px}
.mine-note{display:flex;gap:6px;align-items:flex-start;font-size:.9rem;color:var(--muted)}
.mine-note .ico{width:15px;height:15px;margin-top:3px}
.my-bible .chips,.bib-search .seg{flex-wrap:wrap}
.bib-search .seg{display:flex}.bib-search .seg-b{flex:1 1 auto}
.voices{gap:2px}
.voice-row{display:flex;align-items:center;gap:4px}
.voice-row .menu-item{flex:1;justify-content:space-between}
.voice-row .menu-item.on{background:var(--accent-soft);color:var(--accent)}
.voices .switch-row{padding:8px 6px}
.voices>p{padding:6px}
@media (max-width:520px){
  .bib-bar{top:calc(env(safe-area-inset-top,0px) + var(--navh,56px));flex-wrap:nowrap;padding:8px 10px}
  .bib-where{padding:0 10px;min-width:0;flex:0 1 auto}
  .bib-where b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .bib-listen span,.bib-tools .bib-pn{display:none}
  .bib-tools{flex-wrap:nowrap;gap:4px}
  .bib-tools .icon-btn{width:38px;height:38px}
  .bib-listen{min-width:42px;padding:0 10px}
}
@media (prefers-reduced-motion:reduce){.tts-eq i{animation:none}.bv.flash{animation:none}}
.bib-text{max-width:44em;margin-inline:auto;width:100%}.book-b{font-size:.95rem}

/* ---------- v7.1 : Spirituel — accueil, carte de la Bible, voix ---------- */
.bible-card{display:grid;grid-template-columns:1fr;text-align:start;padding:0;border:1px solid var(--brass-line);border-radius:22px;overflow:hidden;cursor:pointer;background:var(--surface);color:var(--fg);box-shadow:var(--shadow-lift);transition:transform .25s var(--spring),box-shadow .25s}
.bible-card:hover{transform:translateY(-3px)}
.bible-card:active{transform:scale(.99)}
.bible-art{position:relative;aspect-ratio:16/7.5;overflow:hidden;background:#1d1129}
.bible-art svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.bible-card-txt{display:flex;flex-direction:column;gap:8px;padding:16px 18px 18px}
.bible-card-txt h3{font-size:clamp(1.5rem,5vw,1.9rem);color:var(--brass)}
.bible-card-txt p{color:var(--muted)}
.bible-card-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}
@media (min-width:760px){.bible-card{grid-template-columns:1.25fr 1fr}.bible-art{aspect-ratio:auto;min-height:250px}.bible-card-txt{justify-content:center;padding:24px}}
.spi-back{align-self:flex-start}
.spi-empty{padding:18px}
.bib-own{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:16px;border:1px solid var(--brass-line);background:linear-gradient(135deg,var(--brass-soft),transparent)}
.bib-own-ic{color:var(--brass);font-size:1.2rem;line-height:1.4}
.bib-own b{font-family:var(--display);font-weight:400;font-size:1.1rem;color:var(--brass)}
.bib-own p{color:var(--muted);margin-top:2px}
.bib-own>div{flex:1}
.vname{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25}
.vname small{font-weight:500;font-size:.78rem}
.voices .label{padding:8px 8px 2px;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--brass)}

/* ---------- v9 : bandeau, avatars, rôles, administration rangée ---------- */
.hero .inner.hero-extra{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:12px;padding-block:0 20px}
.hero-extra:empty{display:none!important}
.hero-hello{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.hero-hello b{font-family:var(--display);font-weight:400;font-size:clamp(1.25rem,4.6vw,1.6rem);color:var(--hero-fg)}
.hero-hello span{color:var(--hero-muted);font-size:.92rem;text-transform:capitalize}
.hero-chips{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;margin-inline:-2px;padding:2px;scroll-snap-type:x proximity}
.hero-chips::-webkit-scrollbar{display:none}
.hero-chip{flex:0 0 auto;max-width:300px;scroll-snap-align:start;display:flex;align-items:center;gap:10px;padding:9px 14px 9px 11px;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);color:var(--hero-fg);cursor:pointer;text-align:start;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .2s,transform .15s var(--ease)}
.hero-chip:hover{background:rgba(255,255,255,.12)}
.hero-chip:active{transform:scale(.98)}
.hero-chip .ico{color:var(--hero-brass);flex:none}
.hero-chip>span{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.hero-chip small{color:var(--hero-muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em}
.hero-chip b{font-weight:600;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hero-chip.glow{border-color:var(--hero-brass);box-shadow:0 0 0 1px rgba(220,199,154,.25),0 0 22px rgba(220,199,154,.18)}
html[data-theme="light"] .hero-chip{background:rgba(255,255,255,.1)}

.av{--ah:270;position:relative;flex:none;width:36px;height:36px;border-radius:50%;overflow:hidden;display:inline-grid;place-items:center;font-family:var(--display);font-size:1rem;color:#fff;background:linear-gradient(135deg,hsl(var(--ah) 45% 38%),hsl(calc(var(--ah) + 40) 50% 30%));box-shadow:0 0 0 2px var(--surface)}
.av img{width:100%;height:100%;object-fit:cover;display:block}
.av-xs{width:24px;height:24px;font-size:.75rem;box-shadow:none}
.av-sm{width:30px;height:30px;font-size:.85rem}
.av-md{width:42px;height:42px;font-size:1.15rem}
.av-lg{width:64px;height:64px;font-size:1.6rem}
.av-xl{width:92px;height:92px;font-size:2.3rem;box-shadow:0 0 0 3px var(--surface),0 0 0 4px var(--brass-line)}
.av.more{background:var(--surface-2);color:var(--muted);font-family:var(--body);font-size:.72rem;font-weight:700}
.hero-btn .av{margin-inline-end:2px}
.av-stack{display:flex}
.av-stack .av+.av{margin-inline-start:-9px}

.rbadges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.rbadge{--rc:#9b8cff;display:inline-flex;align-items:center;gap:5px;padding:3px 10px 3px 7px;border-radius:999px;font-size:.82rem;font-weight:600;line-height:1.4;background:color-mix(in srgb,var(--rc) 16%,transparent);border:1px solid color-mix(in srgb,var(--rc) 45%,transparent);color:var(--fg);white-space:nowrap}
.rbadge>i{width:9px;height:9px;border-radius:50%;background:var(--rc);flex:none}
.rbadge .ric{font-size:.9em}
.rbadge.sm{font-size:.74rem;padding:1px 8px 1px 6px}
.rbadge.sm>i{width:7px;height:7px}
.rbadge.plain{background:transparent;border-style:dashed;border-color:var(--line);color:var(--muted)}
.menu-head .rbadges{margin-top:4px}

.profile-card{flex-direction:row;align-items:center;gap:20px;flex-wrap:wrap}
.pf-av{position:relative;flex:none}
.pf-av-btn{position:absolute;right:-2px;bottom:-2px;width:34px;height:34px;border-radius:50%;border:2px solid var(--surface);background:var(--accent);color:var(--accent-fg);display:grid;place-items:center;cursor:pointer}
.pf-av-btn .ico{width:17px;height:17px}
.pf-id{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1}
.pf-id .actions{margin-top:2px}

.draw-av{display:flex;justify-content:center;margin:6px 0 2px}
.draw-av .av{box-shadow:0 0 0 3px rgba(255,255,255,.15),0 0 0 6px rgba(220,199,154,.35),0 12px 30px rgba(0,0,0,.35)}
.manage-link{align-self:flex-start;margin-top:6px}
.secret{display:inline-block;min-width:4.5em;padding:0 8px;border-radius:6px;background:var(--surface-2);color:var(--muted);letter-spacing:.12em;font-weight:700}
.secret.open{letter-spacing:0;color:var(--fg);background:var(--brass-soft)}

.admin-sw{overflow-x:auto;scrollbar-width:none}
.admin-sw::-webkit-scrollbar{display:none}
.admin-sw .cview-b{flex:0 0 auto}
.admin-kpis{margin-bottom:2px}
details.fold{gap:0;padding:0}
details.fold>summary{display:flex;align-items:center;gap:10px;padding:16px 18px;cursor:pointer;list-style:none;font-size:1.05rem}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary::after{content:"";margin-inline-start:auto;width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .2s}
details.fold[open]>summary::after{transform:rotate(-135deg)}
details.fold>summary .ico{color:var(--accent)}
.fold-body{display:flex;flex-direction:column;gap:14px;padding:0 18px 18px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.member-q{min-height:42px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);flex:1 1 200px;max-width:320px}
.role-filter{flex-wrap:wrap}
.role-filter .dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.mlist{display:flex;flex-direction:column}
.mrow{display:flex;align-items:center;gap:12px;padding:10px 6px;border:0;border-bottom:1px solid var(--line);background:none;cursor:pointer;text-align:start;color:var(--fg);border-radius:12px;transition:background .15s}
.mrow:last-child{border-bottom:0}
.mrow:hover{background:var(--surface-2)}
.mrow>.ico{color:var(--muted);flex:none}
.mrow-main{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.mrow-main>b{font-weight:700;overflow:hidden;text-overflow:ellipsis}
.mrow-main .me{color:var(--muted);font-weight:500}
.msheet-head{display:flex;gap:16px;align-items:center}
.msheet-head>div{display:flex;flex-direction:column;gap:6px;min-width:0}
.role-pick{display:flex;flex-wrap:wrap;gap:8px}
.role-opt{--rc:#9b8cff;display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 13px 0 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:600;font-size:.9rem;color:var(--muted);transition:all .2s}
.role-opt>i{width:10px;height:10px;border-radius:50%;background:var(--rc);opacity:.5}
.role-opt[aria-pressed="true"]{color:var(--fg);background:color-mix(in srgb,var(--rc) 18%,var(--surface));border-color:var(--rc)}
.role-opt[aria-pressed="true"]>i{opacity:1;box-shadow:0 0 0 3px color-mix(in srgb,var(--rc) 30%,transparent)}
.roles-head{align-items:flex-start}
.roles-head p{flex:1 1 280px}
.role-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.role-card{--rc:#9b8cff;display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--rc);box-shadow:var(--shadow)}
.role-top{display:flex;gap:12px;align-items:flex-start}
.role-ic{width:42px;height:42px;flex:none;border-radius:12px;display:grid;place-items:center;font-size:1.3rem;background:color-mix(in srgb,var(--rc) 18%,transparent);color:var(--rc);font-weight:700}
.role-txt{flex:1;min-width:0}
.role-txt b{font-size:1.05rem;color:var(--rc)}
html[data-theme="light"] .role-txt b{color:color-mix(in srgb,var(--rc) 70%,#000)}
.role-move{display:flex;flex-direction:column;gap:2px}
.role-move .icon-btn:disabled{opacity:.3}
.role-perms{color:var(--muted);padding:8px 10px;border-radius:10px;background:var(--surface-2)}
.role-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.role-foot .btn{margin-inline-start:auto}
.role-preview{display:flex;align-items:center;gap:10px;padding:12px;border-radius:12px;background:var(--surface);border:1px dashed var(--line)}
.swatches{display:flex;flex-wrap:wrap;gap:8px}
.swatch{width:34px;height:34px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
.swatch[aria-pressed="true"]{border-color:var(--fg);transform:scale(1.1)}
.swatch.custom{position:relative;overflow:hidden;background:conic-gradient(red,yellow,lime,cyan,blue,magenta,red)}
.swatch.custom input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.icon-pick{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ico-opt{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-size:1.15rem}
.ico-opt[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft)}
.icon-inp{width:64px;min-height:40px;border-radius:10px;border:1px solid var(--line);background:var(--surface);text-align:center;font-size:1.1rem}
.att-who{display:flex;align-items:center;gap:10px;min-width:0}
.att-period{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.att-period select{min-height:40px;border-radius:10px;border:1px solid var(--line);background:var(--surface);padding:0 10px;text-transform:capitalize}
@media (max-width:520px){.profile-card{flex-direction:column;text-align:center}.pf-id{align-items:center}.pf-id .rbadges,.pf-id .actions{justify-content:center}}
/* Je prie pour : carte plus grande, prière du jour, statistiques */
#prayer-box .draw-card{min-height:340px;justify-content:center;padding-block:34px}
#prayer-box .draw-card.prayed .draw-name{font-size:clamp(2.4rem,10vw,3.4rem)}
.prayer-extras{display:flex;flex-direction:column;gap:12px}
.prayer-today{border-color:var(--brass-line);background:linear-gradient(160deg,var(--brass-soft),var(--surface) 70%)}
.prayer-text{font-family:var(--display);font-size:1.15rem;line-height:1.6;color:var(--fg);font-style:italic}
.prayer-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.pstat{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.pstat b{font-family:var(--display);font-weight:400;font-size:1.7rem;color:var(--brass)}
.pstat span{color:var(--muted);font-size:.9rem}
.pbar{height:6px;border-radius:6px;background:var(--surface-2);overflow:hidden;margin-top:6px}
.pbar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent),var(--brass))}
details.names-fold>summary{cursor:pointer;font-weight:700;padding:8px 0}
.icon-pick input.icon-inp{width:64px;flex:none;padding:0}

/* ---------- Mise à jour n°8 : semaines, sondage mariages, interface allégée ---------- */
.icon-btn.bordered{border-radius:12px;border:1px solid var(--line);background:var(--surface);width:44px;height:44px}
.ev-reg{display:flex;align-items:center;gap:12px;width:100%;padding:9px 12px 9px 14px;border-radius:12px;border:1px solid var(--line);border-left:4px solid var(--k,var(--accent));background:transparent;color:var(--fg);cursor:pointer;text-align:start;font:inherit;transition:background .2s}
.ev-reg:hover{background:var(--surface)}
.ev-reg-d{flex:0 0 92px;font-size:.8rem;font-weight:700;text-transform:capitalize;color:var(--muted)}
.ev-reg-t{flex:1;display:flex;flex-direction:column;gap:2px;font-size:.92rem;min-width:0}
.ev-reg-t b{font-weight:600}
.ev-reg svg{width:16px;height:16px;color:var(--muted);flex:0 0 auto}
html[dir="rtl"] .ev-reg{border-left:1px solid var(--line);border-right:4px solid var(--k,var(--accent))}
html[dir="rtl"] .ev-reg svg{transform:scaleX(-1)}
.rsvp{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding-top:10px;border-top:1px solid var(--line)}
.rsvp-q{font-size:.8rem;font-weight:700;color:var(--muted)}
.rsvp-seg{display:grid;grid-template-columns:1fr 1fr 1.3fr}
.rsvp-seg .seg-b{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:38px;padding:0 6px;font-size:.82rem;white-space:nowrap}
.rsvp-seg .seg-b svg{width:15px;height:15px}
.rsvp-seg .r-oui[aria-pressed="true"]{background:var(--ok);color:#fff}
.rsvp-seg .r-non[aria-pressed="true"]{background:var(--accent);color:var(--accent-fg)}
.rsvp-seg .r-peut-etre[aria-pressed="true"]{background:var(--brass-line);color:#1a1310}
.rsvp-count{align-self:flex-start;background:none;border:0;padding:0;color:var(--brass);font:inherit;font-size:.86rem;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.rsvp-list h4{margin:6px 0 2px;font-size:.92rem}
.rsvp-list p{margin:0 0 8px;color:var(--muted)}
.rules{display:flex;flex-direction:column;gap:8px}
.rule-row{display:grid;grid-template-columns:96px 1fr auto;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--fg);font:inherit;text-align:start;cursor:pointer}
.rule-row b{text-transform:capitalize}
.rule-row span{color:var(--muted);font-size:.9rem}
.rule-row svg{width:16px;height:16px;color:var(--muted)}
.rule-row.off{opacity:.55}
.sheet-body .note{padding:10px 12px;border-radius:10px;background:var(--surface-2);color:var(--muted);margin:0 0 4px}
/* Plus léger */
.grp{font-size:1rem;padding:8px 4px 0}
.prayer-stats{grid-template-columns:1fr 1fr;gap:10px}
.pstat{padding:10px 12px;border-radius:12px}
.pstat b{font-size:1.35rem}
.pstat span{font-size:.8rem}
.k-Mariage .kind-pill{color:#10261a}
.rsvp{gap:6px;margin-top:6px;padding-top:8px}
.event>.rsvp{grid-column:1/-1}
.rsvp-seg{width:100%}
.wed-none{margin:0 0 6px}

/* ---------- Mise à jour n°9 : page d'accueil et agenda plus clair ---------- */
.home-hello h2{font-size:clamp(1.6rem,6vw,2.2rem);line-height:1.1}
.home-hello p{margin:4px 0 0;color:var(--muted);font-size:.95rem}
#v-accueil{display:flex;flex-direction:column;gap:14px}
.home-card{display:flex;flex-direction:column;gap:10px;padding:16px}
.home-card .eyebrow{margin:0}
.home-card h3{margin:0;font-size:1.15rem}
.home-card p.muted{margin:0}
.home-card-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.link-btn{display:inline-flex;align-items:center;gap:2px;background:none;border:0;padding:4px 0;color:var(--brass);font:inherit;font-size:.88rem;font-weight:600;cursor:pointer}
.link-btn svg{width:15px;height:15px}
.home-wed{border-color:var(--brass-line);background:linear-gradient(180deg,color-mix(in srgb,var(--brass-line) 10%,var(--surface)),var(--surface))}
.home-wed .rsvp{border-top:0;padding-top:0;margin-top:2px}
.home-wed .rsvp-q{display:none}
.home-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.home-tile{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;border:1px solid var(--line);background:var(--surface);color:var(--fg);font:inherit;text-align:start;cursor:pointer;transition:transform .15s var(--ease),background .2s}
.home-tile:active{transform:scale(.98)}
.home-tile-ic{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--surface-2);color:var(--brass)}
.home-tile-ic svg{width:20px;height:20px}
.home-tile-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.home-tile-t small{color:var(--muted);font-size:.78rem}
.home-tile-t b{font-weight:600;font-size:.95rem;line-height:1.25}
.home-verse .verse{margin:0}
.cal-sw{display:flex;width:100%;margin:6px 0 14px}
.cal-sw .seg-b{flex:1;min-height:40px;font-size:.92rem}
.cal-todo{display:flex;align-items:center;gap:10px;width:100%;margin:0 0 12px;padding:12px 14px;border-radius:14px;border:1px solid var(--brass-line);background:color-mix(in srgb,var(--brass-line) 14%,var(--surface));color:var(--fg);font:inherit;font-weight:600;cursor:pointer;text-align:start}
.cal-todo span{flex:1}
.cal-todo svg{width:18px;height:18px;color:var(--brass)}
.agenda{display:flex;flex-direction:column;gap:6px}
.ag-h{font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:16px 2px 4px;font-family:inherit}
.agenda .ag-h:first-child{margin-top:4px}
.ag-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:14px;border:1px solid var(--line);border-left:4px solid var(--k,var(--accent));background:var(--surface);color:var(--fg);font:inherit;text-align:start;cursor:pointer;transition:background .2s}
.ag-row:hover{background:var(--surface-2)}
.ag-row.is-today{box-shadow:inset 0 0 0 1px var(--brass-line)}
.ag-date{flex:0 0 40px;display:flex;flex-direction:column;align-items:center;line-height:1.05}
.ag-date small{font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--muted);letter-spacing:.04em}
.ag-date b{font-family:var(--display);font-weight:400;font-size:1.45rem}
.ag-body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.ag-body b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ag-body span{color:var(--muted);font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ag-row>svg{flex:0 0 auto;width:16px;height:16px;color:var(--muted)}
.ag-st{flex:0 0 auto;font-size:.74rem;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted)}
.ag-st.ok{background:var(--ok);color:#10261a}
.ag-st.no{background:var(--surface-2);color:var(--muted)}
.ag-st.maybe{background:var(--brass-line);color:#1a1310}
.ag-st.ask{background:var(--accent);color:var(--accent-fg)}
html[dir="rtl"] .ag-row{border-left:1px solid var(--line);border-right:4px solid var(--k,var(--accent))}
html[dir="rtl"] .ag-row>svg:last-child,html[dir="rtl"] .link-btn svg,html[dir="rtl"] .cal-todo svg:last-child{transform:scaleX(-1)}
.ev-sheet{display:flex;flex-direction:column;gap:10px}
.ev-sheet .kind-pill{background:var(--k,var(--accent))}
.ev-line{display:flex;align-items:center;gap:10px;margin:0}
.ev-line svg{width:18px;height:18px;color:var(--muted);flex:0 0 auto}
.ev-notes{margin:4px 0 0;padding:12px;border-radius:12px;background:var(--surface-2)}
.ev-sheet .rsvp{margin-top:6px}
.rsvp-lists{display:flex;flex-direction:column;gap:2px}
.home-verse .verse{align-items:flex-start;text-align:start;max-width:none;font-size:1.05rem}

/* ---------- Mise à jour n°10 : apprendre à l'oreille, chants des dates, temps liturgique, notifications ---------- */
.practice{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
.practice summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;font-weight:600;list-style:none}
.practice summary::-webkit-details-marker{display:none}
.practice summary svg{width:18px;height:18px;color:var(--brass)}
.practice-on{margin-inline-start:auto;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--brass-line);color:#1a1310}
.practice-b{display:flex;flex-direction:column;gap:8px;padding:0 14px 14px}
.practice-b .seg{display:flex;width:100%}.practice-b .seg-b{flex:1}
.practice-b p{margin:0}
.practice-loop{display:flex;flex-wrap:wrap;gap:8px}
.song-hist{border-radius:12px;background:var(--surface-2)}
.song-hist summary{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;font-size:.9rem;color:var(--muted);list-style:none}
.song-hist summary::-webkit-details-marker{display:none}
.song-hist summary svg{width:16px;height:16px;flex:0 0 auto}
.song-hist .agenda{padding:0 8px 8px}
.ev-songs{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:12px;border:1px solid var(--line)}
.ev-songs h4{margin:0;font-size:.95rem}
.ev-song-list{margin:0;padding-inline-start:22px;display:flex;flex-direction:column;gap:4px}
.ev-song-list li{padding-inline-start:2px}
.ev-song-list.big{font-size:1.02rem;gap:6px}
.ev-song-list li:has(.pick-acts){display:list-item}
.ev-song-list li .pick-acts{float:inline-end;display:inline-flex;gap:4px}
.link-plain{background:none;border:0;padding:2px 0;color:var(--fg);font:inherit;text-align:start;cursor:pointer;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.pick-list{display:flex;flex-direction:column;gap:4px;max-height:45vh;overflow:auto}
.pick-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--fg);font:inherit;text-align:start;cursor:pointer}
.pick-row svg{width:16px;height:16px;color:var(--brass);flex:0 0 auto}
.season{display:flex;align-items:center;gap:12px;width:100%;margin:4px 0 12px;padding:12px 14px;border-radius:14px;border:1px solid var(--brass-line);background:color-mix(in srgb,var(--brass-line) 12%,var(--surface));color:var(--fg);font:inherit;text-align:start;cursor:pointer}
.season>span{flex:1;display:flex;flex-direction:column;gap:2px}
.season small{color:var(--muted);font-size:.82rem}
.season svg{width:18px;height:18px;color:var(--brass);flex:0 0 auto}
.season.on{background:color-mix(in srgb,var(--brass-line) 26%,var(--surface))}
.home-push-in{display:flex;align-items:center;gap:12px}
.home-push .actions{margin:0}
.cal-sw .seg-b[aria-pressed="true"],.practice-b .seg-b[aria-pressed="true"]{background:var(--accent);color:var(--accent-fg)}
