/* Mes séances — styles. Mode sombre noir pur, sobre ; la palette ne change que la couleur d'accent.
   Le thème repose sur data-mode (clair/sombre) + data-palette, posés par boot.js avant l'affichage. */
:root{--accent:#c8914d;--on-accent:#1b1208;--ok:#7fae7a;--warn:#d4a94f;--bad:#d06a5a;--info:#7ea3b8;--r:14px;--ico-r:30%;--gap:12px;font-size:16px;--tap:44px}
html[data-mode=dark]{color-scheme:dark;--bg:#000;--card:#111113;--card2:#1c1c1f;--line:#2e2e33;--text:#f4f4f5;--muted:#a1a1aa;--shadow:0 8px 28px #000c;--body:#202024;--bodyline:#3f3f46}
html[data-mode=light]{color-scheme:light;--bg:#f5f5f7;--card:#fff;--card2:#ececf0;--line:#dcdce2;--text:#18181b;--muted:#5b5b66;--shadow:0 6px 22px #0000001a;--body:#e4e4e8;--bodyline:#c4c4cc;--on-accent:#fff}
html[data-palette=gres]{--accent:#d4a056}html[data-palette=granit]{--accent:#5fa8d3}html[data-palette=foret]{--accent:#5cb87a}html[data-palette=corail]{--accent:#ef6f5e}html[data-palette=encre]{--accent:#a78bfa}html[data-palette=rose]{--accent:#f472b6}
html[data-mode=light][data-palette=gres]{--accent:#a86f2f}html[data-mode=light][data-palette=granit]{--accent:#1f6f9f}html[data-mode=light][data-palette=foret]{--accent:#2f7d4a}html[data-mode=light][data-palette=corail]{--accent:#c2412f}html[data-mode=light][data-palette=encre]{--accent:#6d4fd8}html[data-mode=light][data-palette=rose]{--accent:#c0307c}
html[data-mode=dark]{--on-accent:#0b0b0c}
html[data-palette=contraste][data-mode=dark]{--bg:#000;--card:#0b0b0b;--card2:#161616;--line:#666;--text:#fff;--muted:#ddd;--accent:#ffd60a;--on-accent:#000}
html[data-palette=contraste][data-mode=light]{--bg:#fff;--card:#fff;--card2:#eee;--line:#222;--text:#000;--muted:#222;--accent:#0a3cff;--on-accent:#fff}
html[data-radius=sharp]{--r:6px}html[data-radius=bubble]{--r:24px}
html[data-size=s]{font-size:14.5px}html[data-size=l]{font-size:18px}html[data-size=xl]{font-size:20px}
html[data-density=compact]{--gap:8px}html[data-density=airy]{--gap:18px}
html[data-motion=off] *{animation:none!important;transition:none!important}
[hidden]{display:none!important}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;line-height:1.45}
body{min-height:100dvh;padding-bottom:calc(72px + env(safe-area-inset-bottom));overflow-x:hidden}
body.noscroll{overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit}
h1{font-size:1.4rem;margin:.2rem 0 .4rem;letter-spacing:-.01em}h2{font-size:1.1rem;margin:1rem 0 .4rem}h3{font-size:1rem;margin:.1rem 0 .3rem}
p{margin:.3rem 0}ul,ol{margin:.3rem 0;padding-left:1.2rem}
.wrap{max-width:760px;margin:0 auto;padding:12px 16px 0;display:grid;gap:var(--gap)}
.muted{color:var(--muted)}.small{font-size:.87rem}.tiny{font-size:.76rem}.center{text-align:center}.pre{white-space:pre-wrap}
.row{display:flex;gap:10px;align-items:center}.row.tight{gap:4px}.grow{flex:1;min-width:0}.wrapf{flex-wrap:wrap}.between{justify-content:space-between}.end{justify-content:flex-end}.center-row{justify-content:center}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.stack{display:grid;gap:10px}
@media(max-width:420px){.grid2{grid-template-columns:1fr}.grid4{grid-template-columns:1fr 1fr}}
.ok-t{color:var(--ok)}.warn-t{color:var(--warn)}.acc-t{color:var(--accent)}.err{color:var(--bad)}
/* Cartes */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:grid;gap:8px;min-width:0}
.card.flat{background:var(--card2);border-color:transparent}
.card.acc-b{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.ok-b{border-color:color-mix(in srgb,var(--ok) 55%,var(--line))}.warn-b{border-color:color-mix(in srgb,var(--warn) 55%,var(--line))}.bad-b{border-color:color-mix(in srgb,var(--bad) 60%,var(--line))}
.card.pick,button.card{text-align:left;cursor:pointer;width:100%}
.empty{padding:22px 14px}
/* Boutons */
.btn{appearance:none;border:1px solid var(--line);background:var(--card2);border-radius:12px;padding:10px 14px;min-height:var(--tap);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600;transition:transform .08s,background .15s}
.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}
.btn.pri{background:var(--accent);color:var(--on-accent);border-color:transparent}
.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--line))}
.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.btn.sm{min-height:36px;padding:6px 10px;font-size:.86rem;border-radius:10px}.btn.ic{min-width:36px;padding:6px 8px}
.btn.big{min-height:56px;font-size:1.08rem;width:100%}
label.btn input.hidden,.hidden{position:absolute!important;width:1px;height:1px;opacity:0;pointer-events:none}
label{display:grid;gap:4px;font-size:.9rem;color:var(--muted)}label.inline{display:flex;align-items:center;gap:8px}
input,select,textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-height:var(--tap);color:var(--text)}
textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus,.btn:focus-visible,.chip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--accent)}input[type=color]{padding:2px}
.chk{display:flex;align-items:center;gap:10px;color:var(--text);font-size:.92rem;min-height:var(--tap)}
.unitbox{display:flex;align-items:center;gap:6px}.unitbox em{font-style:normal;color:var(--muted);font-size:.85rem;white-space:nowrap}.unitbox.small input{max-width:90px}
.emoji-in{width:58px!important;text-align:center;font-size:1.3rem}.color-in{width:44px!important;min-height:36px}
/* Puces et segments */
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{appearance:none;border:1px solid var(--line);background:var(--card2);border-radius:999px;padding:7px 12px;min-height:36px;font-size:.86rem;cursor:pointer;color:var(--text);display:inline-flex;align-items:center;gap:4px}
.chip.on{background:color-mix(in srgb,var(--accent) 22%,var(--card2));border-color:var(--accent);color:var(--text)}.chip.static{cursor:default}
label.chip{display:inline-flex;color:var(--text)}
.seg{display:flex;gap:4px;background:var(--card2);border-radius:12px;padding:4px;overflow-x:auto;max-width:100%;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}.scrollx .seg{overflow:visible;width:max-content;max-width:none}
.seg button{flex:none;border:0;background:transparent;border-radius:9px;padding:8px 12px;min-height:38px;font-weight:600;cursor:pointer;color:var(--muted);white-space:nowrap}
.seg button.on{background:var(--card);color:var(--text);box-shadow:0 1px 4px #0003}
.scrollx{overflow-x:auto;margin:0 -16px;padding:0 16px;scrollbar-width:none}.scrollx::-webkit-scrollbar{display:none}
.tag{display:inline-block;font-size:.72rem;border:1px solid var(--line);border-radius:999px;padding:2px 8px;color:var(--muted);vertical-align:middle;margin:1px 0}
.tag.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 50%,var(--line))}.tag.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 50%,var(--line))}.tag.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 50%,var(--line))}.tag.info{color:var(--info);border-color:color-mix(in srgb,var(--info) 50%,var(--line))}.tag.acc{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}
/* Listes */
.item{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);min-width:0}.item:first-child{border-top:0}
button.item,.item.pick{appearance:none;background:transparent;border:0;border-top:1px solid var(--line);width:100%;text-align:left;color:var(--text);cursor:pointer}
.ico{width:40px;height:40px;border-radius:var(--ico-r);background:var(--card2);display:grid;place-items:center;font-size:1.2rem;flex:none}.ico.sm{width:30px;height:30px;font-size:.95rem}.ico.acc{background:color-mix(in srgb,var(--accent) 25%,var(--card2))}.ico.big{width:64px;height:64px;font-size:2rem}
.why{color:var(--muted)}.blockhead{font-weight:700;font-size:.86rem;color:var(--accent);margin-top:6px}
.meter{height:8px;background:var(--card2);border-radius:99px;overflow:hidden}.meter i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .4s}
.stat{background:var(--card2);border-radius:12px;padding:10px;display:grid;text-align:center}.stat b{font-size:1.3rem}.stat span{font-size:.75rem;color:var(--muted)}
.bars{display:flex;align-items:flex-end;gap:4px;height:86px}.bars div{flex:1;background:color-mix(in srgb,var(--accent) 70%,transparent);border-radius:5px 5px 2px 2px;min-height:3px;position:relative}.bars span{position:absolute;top:-16px;left:0;right:0;text-align:center;font-size:.65rem;color:var(--muted)}
.chart{width:100%}.tbl{width:100%;border-collapse:collapse;font-size:.86rem}.tbl th,.tbl td{padding:6px 4px;border-bottom:1px solid var(--line);text-align:right}.tbl th:first-child,.tbl td:first-child{text-align:left}.tbl th{color:var(--muted);font-weight:600}
.how{background:var(--card2);border-radius:10px;padding:8px 10px;font-size:.88rem}.how summary{cursor:pointer;font-weight:600}.how.mini{background:transparent;padding:2px 0}.how.mini summary{font-size:.74rem;color:var(--muted);font-weight:500}.how-sec{margin-top:6px}
details>summary{cursor:pointer}
pre.txt{white-space:pre-wrap;font-family:inherit;margin:4px 0;font-size:.88rem}
.legend{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted)}.lg{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:middle}.lg.p{background:var(--accent)}.lg.s{background:color-mix(in srgb,var(--accent) 45%,transparent)}.lg.done{background:var(--ok);border-radius:50%}.lg.plan{border:2px solid var(--accent);border-radius:50%}
/* Anatomie */
.anat{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-width:360px;margin:0 auto;width:100%}
.anat-view{width:100%;height:auto}.anat .sil{fill:var(--body);stroke:var(--bodyline);stroke-width:.6}
.anat .m{fill:var(--bodyline);stroke:var(--bg);stroke-width:.35;opacity:.7}.anat .m.p{fill:var(--accent);opacity:1}.anat .m.s{fill:var(--accent);opacity:.42}.anat .m.h{fill:var(--accent)}
/* Capacités */
.capgroup{display:grid;gap:4px;margin-top:4px}.capmap{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}
.cap{appearance:none;border:1px solid var(--line);border-radius:12px;padding:8px 10px;text-align:left;background:var(--card2);cursor:pointer;display:grid;gap:2px;color:var(--text);min-height:var(--tap)}
.cap small{font-size:.7rem;color:var(--muted)}.cap.fort{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,var(--card2))}.cap.developpement{border-color:var(--info);background:color-mix(in srgb,var(--info) 12%,var(--card2))}.cap.faible{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,var(--card2))}
.graphnode{border-left:2px solid var(--accent);padding-left:10px;margin:6px 0;display:grid;gap:4px}.graphchildren{display:grid;gap:4px}
.tree{list-style:none;padding:0;display:grid;gap:10px}.tree .step{display:flex;gap:10px}.tree .dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--line);margin-top:4px;flex:none}.tree .maitrise .dot{background:var(--ok);border-color:var(--ok)}.tree .developpement .dot{background:var(--info);border-color:var(--info)}.tree .decouvert .dot{border-color:var(--warn)}
.timeline{list-style:none;padding:0;display:grid;gap:8px}.timeline li{display:flex;gap:10px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px}
.lvlrow{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}.lvl{font-size:.7rem;border-radius:6px;padding:1px 6px;background:var(--card2);border:1px solid var(--line)}
.palette{display:flex;gap:8px;flex-wrap:wrap}.sw{width:38px;height:38px;border-radius:50%;border:2px solid var(--line);cursor:pointer}.sw.on{outline:3px solid var(--text);outline-offset:2px}
/* Calendrier */
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal .h{text-align:center;font-size:.72rem;color:var(--muted)}
.cal .d{appearance:none;border:1px solid transparent;background:var(--card2);border-radius:10px;min-height:44px;padding:4px 2px;display:grid;place-items:center;font-size:.86rem;cursor:pointer;color:var(--text)}
.cal .d.today{border-color:var(--accent)}.cal .d.has-done{background:color-mix(in srgb,var(--ok) 14%,var(--card2))}
.dots{display:flex;gap:2px;height:7px}.dots i{width:6px;height:6px;border-radius:50%}.dots i.plan{border:1.5px solid var(--accent);box-sizing:border-box}
/* En-tête, navigation */
header.top{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top)}
header.top .wrap{padding:8px 16px;display:flex}
.brand{display:flex;align-items:center;gap:8px;font-weight:700;letter-spacing:.01em}.brand img{border-radius:8px}
.syncbadge{appearance:none;border:1px solid var(--line);background:var(--card2);border-radius:999px;padding:4px 10px;display:flex;gap:6px;align-items:center;font-size:.75rem;color:var(--muted);min-height:32px;cursor:pointer}
.syncbadge .dot{width:9px;height:9px;border-radius:50%;background:var(--muted)}.syncbadge.ok .dot{background:var(--ok)}.syncbadge.sync .dot{background:var(--accent);animation:pulse 1s infinite}.syncbadge.pending .dot{background:var(--warn)}.syncbadge.error .dot,.syncbadge.auth .dot{background:var(--bad)}.syncbadge.offline .dot{background:var(--muted)}
@keyframes pulse{50%{opacity:.3}}
nav.tabs{position:fixed;bottom:0;left:0;right:0;z-index:6;display:grid;grid-template-columns:repeat(5,1fr);background:color-mix(in srgb,var(--card) 94%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom))}
nav.tabs button{appearance:none;border:0;background:transparent;color:var(--muted);display:grid;justify-items:center;gap:1px;padding:6px 2px;min-height:54px;border-radius:12px;cursor:pointer;font-size:.68rem;font-weight:600}
nav.tabs button .ico{width:auto;height:auto;background:none;font-size:1.25rem}nav.tabs button.on{color:var(--text);background:var(--card2)}
/* Feuilles et dialogues */
#sheet,#dialog{position:fixed;inset:0;z-index:20;display:none}#sheet.open,#dialog.open{display:block}#dialog{z-index:30}
#sheet>.back,#dialog>.back{position:absolute;inset:0;background:#0009;animation:fade .15s}
#sheet>.panel,#dialog>.panel{position:absolute;left:0;right:0;bottom:0;max-height:88dvh;overflow:auto;background:var(--card);border-radius:20px 20px 0 0;padding:10px 16px calc(18px + env(safe-area-inset-bottom));display:grid;gap:10px;box-shadow:var(--shadow);animation:up .2s ease-out;max-width:760px;margin:0 auto}
#dialog>.panel{bottom:auto;top:30%;border-radius:18px;margin:0 16px;max-width:520px}@media(min-width:560px){#dialog>.panel{margin:0 auto}}
.grab{width:42px;height:5px;border-radius:9px;background:var(--line);justify-self:center}
.list{display:grid;max-height:50dvh;overflow:auto}
@keyframes up{from{transform:translateY(24px);opacity:0}}@keyframes fade{from{opacity:0}}
#toast{position:fixed;left:16px;right:16px;bottom:calc(80px + env(safe-area-inset-bottom));z-index:40;margin:0 auto;max-width:520px;background:var(--text);color:var(--bg);padding:12px 14px;border-radius:12px;font-size:.9rem;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;box-shadow:var(--shadow)}
#toast.show{opacity:1;transform:none}#toast.bad{background:var(--bad);color:#fff}
/* Mode séance */
#player{position:fixed;inset:0;z-index:15;background:var(--bg);display:none;overflow:auto;padding-top:env(safe-area-inset-top)}#player.open{display:block}
.pl{max-width:560px;margin:0 auto;padding:12px 16px 30px;display:grid;gap:12px}.pl.slide{animation:slide .25s ease-out}@keyframes slide{from{transform:translateX(24px);opacity:0}}
.bar{height:6px;background:var(--card2);border-radius:9px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent);transition:width .25s linear}
.timer{font-size:4.4rem;font-weight:800;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.timer.rest{color:var(--accent)}
.presc{font-size:1.8rem}
.stepper{display:flex;align-items:center;justify-content:center;gap:14px}.stepper button{width:58px;height:58px;border-radius:50%;border:1px solid var(--line);background:var(--card2);font-size:1.6rem;cursor:pointer;color:var(--text)}.stepper b{font-size:1.9rem;min-width:110px;text-align:center}
html.hands .btn.big{min-height:84px;font-size:1.35rem}html.hands .stepper button{width:74px;height:74px}
/* Divers */
.auth{padding-top:8vh}.app-logo{border-radius:20px}
.skel div{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--card2),var(--line),var(--card2));background-size:200% 100%;animation:sk 1.2s infinite}.skel div+div{width:60%}
@keyframes sk{to{background-position:-200% 0}}
.boot-loading{padding:30vh 1rem;text-align:center;color:var(--muted)}
.boot-error{max-width:520px;margin:12vh auto;padding:18px;background:var(--card);border:1px solid var(--bad);border-radius:16px;display:grid;gap:10px}.boot-error pre{white-space:pre-wrap;font-size:.8rem;color:var(--muted);background:var(--card2);padding:8px;border-radius:8px}
.goalcard{display:grid;gap:6px}
.item.ex.editable{flex-wrap:wrap}.item.ex.editable .grow{flex-basis:calc(100% - 52px)}.item.ex .acts{width:100%;justify-content:flex-end}
/* ═════ Premiers pas, accueil simplifié, installation (v8.1) ═════ */
.quick{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qa{appearance:none;border:1px solid var(--line);background:var(--card);border-radius:var(--r);padding:14px 12px;text-align:left;cursor:pointer;display:grid;gap:2px;min-height:96px;color:var(--text)}
.qa:active{transform:scale(.98)}.qa .qi{font-size:1.6rem;line-height:1}.qa b{font-size:.98rem;margin-top:4px}.qa small{color:var(--muted);font-size:.78rem}
.qa.pri{background:color-mix(in srgb,var(--accent) 18%,var(--card));border-color:color-mix(in srgb,var(--accent) 60%,var(--line))}
.setup{display:grid;gap:12px;padding-top:4px}.setup h1.q{font-size:1.45rem;margin:.4rem 0 0}
.choices{display:grid;gap:10px}
.choice{appearance:none;width:100%;text-align:left;border:2px solid var(--line);background:var(--card);border-radius:14px;padding:14px 16px;min-height:56px;font-size:1.02rem;font-weight:600;cursor:pointer;color:var(--text)}
.choice.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--card))}
.choice.on::after{content:"✓";float:right;color:var(--accent)}
.setup-nav{position:sticky;bottom:calc(76px + env(safe-area-inset-bottom));background:var(--bg);padding:10px 0;margin-top:6px}
.welcome p{font-size:.98rem}
.tour{display:grid;gap:10px;padding:6px 4px}.tour-ic{font-size:3.2rem}.tour h2{margin:0}.tour p{font-size:1rem}
.dots{display:flex;gap:6px;justify-content:center}.dots i{width:8px;height:8px;border-radius:50%;background:var(--line)}.dots i.on{background:var(--accent)}
.auth .lead{font-size:1.08rem;color:var(--text);margin:.2rem 0 .6rem}
.pitch{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.pitch li{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px}
.pitch span{font-size:1.5rem;line-height:1.2}.pitch b{display:block}.pitch small{color:var(--muted)}
.app-mini{border-radius:22%}
.syncbadge.guest{width:auto;padding:0 10px;font-size:.8rem;color:var(--text)}
.faq{border-top:1px solid var(--line);padding:8px 0}.faq summary{cursor:pointer;font-weight:600;min-height:32px}
ol.steps{padding-left:1.3rem;display:grid;gap:6px}
.sub{margin:-.2rem 0 .3rem}
/* ═════ Thème 8.2 : plus léger, plus vivant, décontracté ═════ */
:root{--r:20px;--r-sm:14px}
html{-webkit-font-smoothing:antialiased}
body{font-family:ui-rounded,"SF Pro Rounded","Nunito","Segoe UI Variable Display","Segoe UI",system-ui,-apple-system,Roboto,sans-serif;letter-spacing:.005em}
h1{font-size:1.65rem;font-weight:800;letter-spacing:-.025em}h2{font-weight:800;letter-spacing:-.02em}h3{font-weight:750;font-size:1.04rem;letter-spacing:-.01em}
html[data-mode=dark]{--card:#121214;--card2:#1d1d21;--line:#26262b;--glow:color-mix(in srgb,var(--accent) 35%,transparent)}
html[data-mode=light]{--glow:color-mix(in srgb,var(--accent) 25%,transparent)}
.card{border-radius:var(--r);padding:16px;gap:10px;background:linear-gradient(180deg,color-mix(in srgb,var(--card) 100%,#fff 2%),var(--card));border-color:var(--line);animation:rise .28s ease both}
html[data-mode=light] .card{box-shadow:0 1px 2px #0000000d,0 6px 20px #0000000a;border-color:transparent}
.card.flat{background:var(--card2);animation:none}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.wrap>*:nth-child(2){animation-delay:.03s}.wrap>*:nth-child(3){animation-delay:.06s}.wrap>*:nth-child(4){animation-delay:.09s}.wrap>*:nth-child(5){animation-delay:.12s}
/* Textes d'explication : 2 lignes, un toucher pour tout lire */
.card p.tiny.muted,.card p.small.muted{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer}
.card p.tiny.muted.x,.card p.small.muted.x{-webkit-line-clamp:unset;display:block}
.btn{border-radius:999px;padding:10px 18px;font-weight:700;transition:transform .12s,box-shadow .2s,background .2s}
.btn.pri{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 88%,#fff),var(--accent));box-shadow:0 6px 18px var(--glow)}
.btn.big{min-height:58px;font-size:1.1rem}
.btn.sm{border-radius:999px;padding:6px 12px}
.chip{border-radius:999px;transition:transform .12s,background .15s}.chip:active{transform:scale(.95)}
.chips.big .chip{min-height:44px;padding:9px 16px;font-size:.95rem;font-weight:600}
.chip.ghost{background:transparent;border-style:dashed}
.seg{border-radius:999px;padding:4px}.seg button{border-radius:999px}
input,select,textarea{border-radius:14px}
/* En-tête et onglets */
header.top{background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px)}
.brand{font-weight:800;letter-spacing:-.01em}.brand em{font-style:normal;color:var(--accent);font-weight:700}
nav.tabs{left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom));border:1px solid var(--line);border-radius:24px;padding:4px;background:color-mix(in srgb,var(--card) 88%,transparent);box-shadow:0 10px 30px #0008}
nav.tabs button{border-radius:18px;min-height:52px}nav.tabs button.on{background:color-mix(in srgb,var(--accent) 18%,var(--card2));color:var(--text)}
nav.tabs button.on .ico{transform:scale(1.12);transition:transform .2s}
body{padding-bottom:calc(92px + env(safe-area-inset-bottom))}
/* Accueil */
.hero{position:relative;overflow:hidden;border:0!important;padding:20px 18px!important;background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--accent) 45%,transparent) 0%,transparent 55%),linear-gradient(160deg,color-mix(in srgb,var(--accent) 22%,var(--card)),var(--card))!important}
.hero h1{margin:0;font-size:1.8rem}.hero .date{color:var(--muted);font-size:.85rem;text-transform:capitalize}
.hero .stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.hero .stats span{background:#ffffff14;border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:650}
html[data-mode=light] .hero .stats span{background:#0000000d}
.quick{gap:12px}.qa{border-radius:var(--r);min-height:108px;padding:16px 14px;background:var(--card);transition:transform .12s;animation:rise .3s ease both}
.qa .qi{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--card2);font-size:1.4rem}
.qa.pri{background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 34%,var(--card)),var(--card));border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.qa.pri .qi{background:color-mix(in srgb,var(--accent) 30%,transparent)}
.qcard{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))!important}
.qask{display:grid;gap:10px}.qhead{display:flex;gap:12px;align-items:center}.qemoji{font-size:2rem;width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:var(--card2);flex:none}
.kicker{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:800}.qask h3{margin:0;font-size:1.12rem}
/* Assistant IA */
.ai{display:grid;gap:12px}.ai-hero{display:flex;gap:12px;align-items:center}.ai-hero>span{font-size:2.2rem;width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 40%,transparent),transparent);flex:none}.ai-hero h2{margin:0}
.ai-cta{display:flex;gap:12px;align-items:center;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 22%,var(--card)),var(--card))!important;border-color:color-mix(in srgb,var(--accent) 40%,var(--line))!important}
.ai-cta>span{font-size:1.6rem}.ai-cta b{display:block}.ai-cta small{color:var(--muted)}
.exd summary{cursor:pointer;list-style:none}.tag.acc{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}
.setup .choice{border-radius:18px;transition:transform .1s,border-color .15s}.setup .choice:active{transform:scale(.98)}
.pitch li{border-radius:var(--r)}
.btn.sm{white-space:nowrap}
/* Bandeau de mise à jour */
#updbar{position:fixed;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:15;display:flex;gap:8px;align-items:center;justify-content:space-between;padding:10px 10px 10px 16px;border-radius:999px;background:var(--card2);border:1px solid color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:0 10px 30px #0009;animation:rise .3s ease both;max-width:560px;margin:0 auto}
#updbar span{flex:1;font-size:.92rem}
/* Profil : accueil en tuiles, résumé visuel */
.subhead{gap:6px}.subhead h1{margin:0;font-size:1.35rem}
.phero .avatar{width:64px;height:64px;border-radius:22px;display:grid;place-items:center;font-size:2.1rem;background:#ffffff18;flex:none}
html[data-mode=light] .phero .avatar{background:#0000000d}
.phero h1{font-size:1.5rem;margin:0 0 4px}
.sw2 .card{padding:12px;gap:6px}.chip.okc{border-color:color-mix(in srgb,var(--ok) 55%,var(--line))}.chip.warnc{border-color:color-mix(in srgb,var(--warn) 55%,var(--line))}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:380px){.tiles{grid-template-columns:1fr 1fr}}
.tile{appearance:none;border:1px solid var(--line);background:var(--card);border-radius:var(--r);padding:14px 8px 12px;display:grid;justify-items:center;gap:4px;text-align:center;cursor:pointer;color:var(--text);animation:rise .3s ease both;min-height:112px}
.tile:active{transform:scale(.97)}.tile .ti{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;font-size:1.5rem;background:var(--card2)}
.tile b{font-size:.86rem;line-height:1.15}.tile small{font-size:.7rem;color:var(--muted);line-height:1.2}.tile small em{font-style:normal;color:var(--accent);font-weight:700}
.statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media(max-width:380px){.statgrid{grid-template-columns:1fr 1fr}}
.stat2{display:grid;justify-items:center;gap:2px;padding:12px 4px;border-radius:18px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--text)}
.stat2 b{font-size:1.6rem;line-height:1}.stat2 span{font-size:.72rem;color:var(--muted)}
.stat2.ok b{color:var(--ok)}.stat2.info b{color:var(--info)}.stat2.warn b{color:var(--warn)}
.todo{padding:9px 12px;border-radius:14px;background:var(--card2);font-size:.88rem}
details.fold{padding:0}details.fold>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;cursor:pointer;font-weight:700}
details.fold>summary::-webkit-details-marker{display:none}details.fold>summary em{font-style:normal;background:var(--card2);border-radius:999px;padding:2px 10px;font-size:.8rem;color:var(--muted)}
details.fold>summary::after{content:"›";transform:rotate(90deg);color:var(--muted);margin-left:8px}details.fold[open]>summary::after{transform:rotate(-90deg)}
details.fold>:not(summary){margin:0 16px 14px}
ul.clean{list-style:none;padding:0;margin:0 16px 14px;display:grid;gap:6px}ul.clean li{padding:8px 12px;border-radius:12px;background:var(--card2);font-size:.86rem}
.stat2{appearance:none;cursor:pointer;font:inherit}
.phero .chip.static{min-height:30px;padding:4px 10px;font-size:.78rem}.todo.row{gap:8px}
/* Progrès : tuiles chiffrées, bonnes nouvelles, barres */
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:grid;gap:2px;animation:rise .3s ease both}
.kpi span{font-size:.8rem;color:var(--muted)}.kpi b{font-size:2rem;line-height:1.1;letter-spacing:-.02em}
.kpi i{font-style:normal;font-size:.78rem;font-weight:700;color:var(--muted)}.kpi i.up{color:var(--ok)}.kpi i.down{color:var(--warn)}
.win{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:14px;background:var(--card2);font-size:.9rem}.win span{flex:none}
.cbar{display:grid;grid-template-columns:minmax(0,38%) 1fr auto;gap:10px;align-items:center;font-size:.84rem}
.cbar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cbar b{min-width:2.4em;text-align:right}
.cbar .track{position:relative;height:10px;border-radius:99px;background:var(--card2);overflow:hidden}
.cbar .track i{position:absolute;left:0;top:0;bottom:0;border-radius:99px}.cbar .track i.prev{background:color-mix(in srgb,var(--text) 18%,transparent)}.cbar .track i.cur{background:var(--accent);height:6px;top:2px}
.gen{gap:12px}.genmore{background:var(--card2);border:0}.genmore>:not(summary){margin:0 14px 12px}
/* Simulation de séance */
.plan{gap:12px}.plan h3{margin:0;font-size:1.1rem}
.blocksbar{display:flex;gap:4px;height:14px;border-radius:99px;overflow:hidden}.blocksbar i{display:block;border-radius:99px}
.blocksbar .warmup,.dot.warmup{background:#f59e0b}.blocksbar .main,.dot.main{background:var(--accent)}.blocksbar .cool,.dot.cool{background:#60a5fa}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}
.small-chips .chip{min-height:30px;padding:4px 10px;font-size:.78rem}
.prow{display:flex;gap:6px;align-items:center}.prow .track{height:8px;border-radius:99px;background:var(--card2);overflow:hidden;margin-top:4px}.prow .track i{display:block;height:100%;background:var(--accent);border-radius:99px}
/* Objectif : pourcentage, menu ⋯, repères en barres */
.ghero .big-pct{font-size:2.2rem;letter-spacing:-.03em}
details.menu{position:relative}details.menu>summary{list-style:none}details.menu>summary::-webkit-details-marker{display:none}
details.menu .menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:5;display:grid;gap:6px;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:8px;min-width:170px;box-shadow:0 10px 30px #0009}
.prow.crit .track{margin:6px 0 2px}
details.fold2>summary{list-style:none;cursor:pointer}details.fold2>summary::-webkit-details-marker{display:none}details.win.fold2{display:block}
.journal textarea,form[data-submit=jnote] textarea{min-height:44px}
ul.clean.tight{margin:4px 0 0}ul.clean.tight li{background:var(--card)} .chip .lg{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px}
/* Admin : liste des comptes */
.ulist{display:grid;gap:8px}.urow{display:flex;gap:10px;align-items:center;padding:10px;border-radius:16px;background:var(--card2)}
.uav{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-weight:800;background:color-mix(in srgb,var(--accent) 25%,var(--card));flex:none}
.ustat{display:grid;justify-items:end;text-align:right;font-size:.78rem;min-width:56px}.ustat b{font-size:1.05rem}

/* ═════════ Visite guidée immersive ═════════ */
#tour{position:fixed;inset:0;z-index:90}
#tour .tour-spot{position:fixed;border-radius:18px;box-shadow:0 0 0 9999px rgba(0,0,0,.62),0 0 0 3px var(--accent);transition:all .35s cubic-bezier(.2,.8,.2,1);animation:tourPulse 1.6s ease-in-out infinite;pointer-events:none}
@keyframes tourPulse{50%{box-shadow:0 0 0 9999px rgba(0,0,0,.62),0 0 0 7px color-mix(in srgb,var(--accent) 45%,transparent)}}
#tour .tour-bubble{position:fixed;pointer-events:auto;background:var(--card);color:var(--text);border-radius:18px;padding:16px 16px 12px;box-shadow:0 12px 40px rgba(0,0,0,.35);display:grid;gap:8px;transition:top .3s ease,left .3s ease;animation:tourIn .3s ease}
@keyframes tourIn{from{opacity:0;transform:translateY(8px) scale(.97)}}
#tour .tour-bubble h3{margin:0;font-size:1.15rem}#tour .tour-bubble p{margin:0;font-size:1rem;line-height:1.45}
#tour .tour-step{font-size:.78rem;font-weight:700;color:var(--accent);letter-spacing:.04em}
#tour .tour-arrow{position:absolute;width:18px;height:18px;background:inherit;transform:translateX(-50%) rotate(45deg);border-radius:3px}
#tour .tour-arrow.up{top:-8px}#tour .tour-arrow.down{bottom:-8px}
#tour .tour-bubble .row{display:flex;align-items:center;gap:8px}
body.touring{overflow:hidden}
@media (prefers-reduced-motion:reduce){#tour .tour-spot,#tour .tour-bubble{animation:none;transition:none}}

/* ═════════ Quoi de neuf ═════════ */
#updbar.fresh{border-color:var(--accent)}
.news{display:grid;gap:12px}.news h2{margin:0}
.newslist{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.newslist>li{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:14px;background:var(--card2)}
.newslist .nd{flex:none;font-size:.75rem;font-weight:700;color:var(--on-accent,#fff);background:var(--accent);border-radius:999px;padding:3px 9px;white-space:nowrap}
.newslist b{display:block;line-height:1.35}.newslist ul{margin:6px 0 0;padding-left:18px;font-size:.9rem;color:var(--muted)}
#tour .tour-x{position:absolute;top:8px;right:8px;border:0;background:transparent;color:var(--muted);font-size:1rem;width:32px;height:32px;border-radius:50%;cursor:pointer}
#tour .tour-x:hover{background:var(--card2)}
#updbar{display:grid;gap:6px;border-radius:20px;padding:10px 10px 10px 16px}
#updbar .ut{display:flex;align-items:center;gap:8px}#updbar .ut span{flex:1}
#updbar .ub{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}

/* ═════════ Déménagement ═════════ */
.move{min-height:100vh;display:grid;place-items:center;padding:16px}
.move .card{max-width:420px;display:grid;gap:12px;justify-items:center;text-align:center;padding:28px 20px}
.move h1{margin:0}.move p{margin:0}.move-ic{font-size:3.4rem}.move .btn{width:100%}

/* ═════════ Consignes pendant la séance ═════════ */
.pl .cues{display:grid;gap:4px;padding:12px 14px;text-align:left}
.pl .cues ul{margin:0;padding-left:20px;display:grid;gap:3px}.pl .cues ul.bad{color:var(--muted)}
#updbar .ub .btn{white-space:nowrap}
.move-steps{text-align:left;margin:0;padding-left:22px;display:grid;gap:8px;font-size:1rem;line-height:1.4}
.reinstall{border-color:var(--accent)}
