/* LC Coach : noir et or, la couleur d'accent est celle choisie par le coach */
:root{--bg:#0a0a09;--surface:#131210;--surface2:#1c1a16;--line:#2e2a20;--fg:#f4eedf;--muted:#a59c86;--accent:#d4af5f;--accent-fg:#16120a;--accent-soft:rgba(212,175,95,.15);--warn:#e0a43a;--bad:#e5594f;--info:#5b9bd5;color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--fg);font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;padding:16px max(16px,env(safe-area-inset-right,0px)) 16px max(16px,env(safe-area-inset-left,0px))}
button,input,select,textarea{font:inherit;color:inherit}
h1{margin:0;font-size:22px;font-weight:500;letter-spacing:.1em;text-transform:uppercase}
h2{margin:0;font-size:16px;font-weight:600}
.muted{color:var(--muted)}.small{font-size:12px}
.label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.shell{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px;max-width:1400px;margin:0 auto}
.side{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:16px;align-self:start}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 14px;font-weight:500;letter-spacing:.28em;font-size:15px}
.mark{width:40px;height:40px;flex:none;background:var(--accent);-webkit-mask:url(/logo-mono.png) center/contain no-repeat;mask:url(/logo-mono.png) center/contain no-repeat}
.logo-full{width:min(340px,80%);aspect-ratio:1;margin:0 auto;background:var(--accent);-webkit-mask:url(/logo-full.png) center/contain no-repeat;mask:url(/logo-full.png) center/contain no-repeat}
.nav{display:flex;flex-direction:column;gap:2px}
.nav button{background:none;border:0;border-radius:10px;padding:9px 10px;text-align:left;cursor:pointer;color:var(--muted);font-weight:500;display:flex;gap:8px;align-items:center}
.nav button:hover{background:var(--surface2);color:var(--fg)}
.nav button.on{background:var(--accent-soft);color:var(--fg)}
.who{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.main{min-width:0;display:flex;flex-direction:column;gap:16px}
.top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.grow{flex:1;min-width:0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}
.btn{background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:8px 14px;cursor:pointer;font-weight:500}
.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.btn.danger{color:var(--bad)}.btn.sm{padding:4px 10px;font-size:12.5px}.btn.ghost{background:transparent}
input,select,textarea{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 10px;width:100%;min-width:0}
input[type=checkbox]{width:auto}input[type=range]{padding:0;accent-color:var(--accent)}input[type=color]{padding:0;width:44px;height:32px}
textarea{min-height:90px;resize:vertical}
.field{display:flex;flex-direction:column;gap:5px}.field>span{font-size:12px;color:var(--muted)}
.form{display:grid;gap:12px}.form.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:2px 9px;font-size:12px;background:var(--surface2);color:var(--muted);white-space:nowrap}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.p-actif,.p-publié{color:var(--accent);background:var(--accent-soft)}.p-essai{color:var(--info)}.p-pause,.p-brouillon{color:var(--warn)}.p-bad{color:var(--bad)}
.kpi b{font-size:32px;font-weight:500;display:block;line-height:1.1}
.list{display:flex;flex-direction:column}.item{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.item:first-child{border-top:0}
.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:10px 12px}
td{padding:12px;border-top:1px solid var(--line)}tr.click{cursor:pointer}tr.click:hover td{background:var(--surface2)}
.uline{display:flex;gap:22px;border-bottom:1px solid var(--line);overflow-x:auto}
.uline button{background:none;border:0;padding:8px 2px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}
.uline button.on{color:var(--fg);border-color:var(--accent)}
.bar{height:6px;border-radius:6px;background:var(--surface2);overflow:hidden}.bar i{display:block;height:100%;background:var(--accent)}
.setrow{display:grid;grid-template-columns:60px 1fr 1fr 44px;gap:8px;align-items:center;padding:4px 0}
.chk{width:40px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--surface2);cursor:pointer;color:transparent;font-size:18px}
.chk.on{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.seg button{background:none;border:0;padding:6px 12px;cursor:pointer;color:var(--muted)}.seg button.on{background:var(--accent-soft);color:var(--fg)}
.thread{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto}
.msg{max-width:78%;padding:9px 12px;border-radius:14px;background:var(--surface2)}.msg.me{align-self:flex-end;background:var(--accent-soft);border:1px solid var(--accent)}
.veil{position:fixed;inset:0;background:rgba(0,0,0,.65);display:grid;place-items:center;padding:16px;z-index:50}
.modal{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px;width:min(500px,100%);max-height:88vh;overflow:auto;display:flex;flex-direction:column;gap:14px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:20px;background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:12px;z-index:60;max-width:90vw}
.timer{position:fixed;right:16px;bottom:16px;background:var(--surface);border:1px solid var(--accent);border-radius:16px;padding:12px 16px;z-index:40;display:flex;align-items:center;gap:14px}.timer[hidden]{display:none}
.timer b{font-size:28px;font-weight:500}
.auth{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;max-width:980px;margin:6vh auto}
.hero{background:#000;border:1px solid var(--line);border-radius:22px;padding:30px;display:flex;flex-direction:column;gap:18px;align-items:center;justify-content:center;text-align:center}
.warn{border-color:var(--warn)}
@media(max-width:860px){.shell,.auth{grid-template-columns:minmax(0,1fr)}.side{position:static;flex-direction:row;flex-wrap:wrap;align-items:center}.nav{flex-direction:row;overflow-x:auto;max-width:100%}.nav button{white-space:nowrap}.who{margin:0;padding:0;border:0}.g2,.g3,.g4,.form.two{grid-template-columns:minmax(0,1fr)}}

.rgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media(min-width:640px){.rgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:900px){.rgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:1180px){.rgrid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(min-width:1440px){.rgrid{grid-template-columns:repeat(6,minmax(0,1fr))}}
.rgrid .rbody b{font-size:.88rem;line-height:1.25}.rgrid .rbody{padding:9px 10px}
.rcard{padding:0;overflow:hidden;cursor:pointer;display:flex;flex-direction:column}.rcard:hover,.rcard:focus-visible{border-color:var(--accent);outline:0}
.rbody{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px}
.rimg{width:100%;height:150px;object-fit:cover;display:block}.rimg.big{height:220px;border-radius:12px}
.rimg.ph{display:grid;place-items:center;font-size:54px}.rimg.ph.big{font-size:80px}
.mbar{display:flex;height:8px;border-radius:8px;overflow:hidden;background:var(--surface2);gap:2px}.mbar i{display:block;height:100%}
.mleg{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--muted)}
.modal.wide{width:min(640px,100%)}
.ingl{list-style:none;margin:6px 0 0;padding:0}.ingl li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-top:1px solid var(--line)}.ingl li:first-child{border-top:0}
.shop{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--line);cursor:pointer}.shop input{width:20px;height:20px}.shop.done .grow{text-decoration:line-through;color:var(--muted)}

.count{font-size:15px;font-weight:400;color:var(--muted);margin-left:8px;letter-spacing:0}
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.filters select{width:auto;border-radius:999px;padding:8px 14px;background:var(--surface);cursor:pointer}
.nsearch{width:auto;flex:1;min-width:160px;max-width:380px;border-radius:999px;margin-left:auto}
.rph{position:relative}.tbadge{position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,.72);color:#fff;font-size:12px;padding:4px 10px;border-radius:999px;backdrop-filter:blur(4px)}
.mrow{display:flex;gap:12px;font-size:13px;font-weight:500;flex-wrap:wrap}.mrow .kc{color:var(--muted)}
.rimg{height:190px}

.pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.pimg{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px;background:var(--surface2);display:block;cursor:zoom-in}
.pimg.empty{display:grid;place-items:center;color:var(--muted);cursor:default}.pimg.full{aspect-ratio:auto;max-height:70vh;object-fit:contain;cursor:default;background:transparent}
.pslot{aspect-ratio:3/4;border:1.5px dashed var(--line);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;color:var(--muted);position:relative;overflow:hidden}
.pslot:hover{border-color:var(--accent);color:var(--fg)}.pslot .plus{font-size:28px;line-height:1}
.pslot.has img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.pslot.has span{position:relative;background:rgba(0,0,0,.65);color:#fff;padding:3px 10px;border-radius:999px;margin-top:auto;margin-bottom:8px}
.center{text-align:center}

input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex:none;padding:0}

.dd{position:relative}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:999px;padding:8px 14px;cursor:pointer;white-space:nowrap}
.chip.on{border-color:var(--accent);background:var(--accent-soft)}.chip .more{color:var(--accent)}.chip .x{opacity:.7;padding:0 2px}.chip .x:hover{opacity:1}.chip .car{color:var(--muted);font-size:11px}
.ddpanel{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:260px;max-height:340px;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:6px;box-shadow:0 12px 30px rgba(0,0,0,.5)}
.ddopt{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;color:var(--fg);padding:9px 10px;border-radius:9px;cursor:pointer;text-align:left}.ddopt:hover{background:var(--surface2)}.ddopt.on{background:var(--accent-soft)}.ddopt:disabled{opacity:.35;cursor:default}
.ddopt span:first-child{flex:1}.ddopt .cnt{color:var(--muted);font-size:12px}.ddopt .tick{width:14px;color:var(--accent)}
.ddclear{display:block;width:100%;background:none;border:0;border-top:1px solid var(--line);margin-top:4px;padding:10px;color:var(--muted);cursor:pointer;text-align:left}.ddclear:hover{color:var(--fg)}
.modal.xl{width:min(980px,100%)}.stats3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stats3 b{font-size:26px;font-weight:500}
.tags{display:flex;flex-wrap:wrap;gap:8px}.tag{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface2);border-radius:999px;padding:4px 12px;font-size:13px}.tag.pick{cursor:pointer}
.stepper{display:inline-flex;align-items:center;gap:8px}.stepper button{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:var(--surface2);color:var(--fg);font-size:18px;cursor:pointer}.stepper input{width:64px;text-align:center}
.ngrid{display:grid;grid-template-columns:160px minmax(0,1fr);gap:20px;align-items:center}.nkcal b{font-size:42px;font-weight:500;color:var(--accent);display:block;line-height:1}
.nrow{display:grid;grid-template-columns:90px minmax(0,1fr) 110px;gap:12px;align-items:center;padding:6px 0}.nbar{height:10px;border-radius:10px;background:var(--surface2);overflow:hidden}.nbar i{display:block;height:100%;border-radius:10px}.nval{text-align:right;white-space:nowrap}
.cols2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.cols2 h3{margin:0 0 6px}.mono{font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}
.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.steps li{display:flex;gap:12px;align-items:flex-start;background:var(--surface2);border-radius:12px;padding:12px}.sn{flex:none;width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:13px;font-weight:600}
.rimg.big{height:260px}
@media(max-width:700px){.cols2,.ngrid{grid-template-columns:minmax(0,1fr)}.nrow{grid-template-columns:76px minmax(0,1fr) 96px}}

/* ---- programmes, éditeur de séance, bibliothèque d'exercices */
.thumb{width:44px;height:44px;border-radius:10px;object-fit:cover;display:inline-grid;place-items:center;font-size:22px;flex:none}
.thumb.sm{width:36px;height:36px;font-size:18px}.thumb.big{width:100%;height:92px;border-radius:0;font-size:34px}
.modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mode{display:flex;flex-direction:column;gap:6px;text-align:left;background:var(--surface2);border:1px solid var(--line);border-radius:14px;padding:12px;cursor:pointer;color:var(--fg)}
.mode.on{border-color:var(--accent);background:var(--accent-soft)}
.wgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.daycell{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:120px}
.scard{background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.scard .grow{flex-basis:100%}
.addses{align-self:flex-start;margin-top:auto}
.free{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;margin-top:8px}.free .scard{min-width:240px}
.edgrid{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:16px;align-items:start}
.edmain{display:flex;flex-direction:column;gap:14px;min-width:0}.edside{position:sticky;top:16px}
.estrow{display:flex;gap:16px;margin:8px 0;flex-wrap:wrap}.estrow b{font-size:24px;font-weight:500}
.blkhead{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bname{flex:1;min-width:140px;font-weight:600}
.inl{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted)}.inl input,.inl select{width:auto;min-width:70px}
.handle{cursor:grab;color:var(--muted);padding:4px 6px;user-select:none;border-radius:8px;font-size:18px;line-height:1}.handle:hover{background:var(--surface2);color:var(--fg)}
.dropzone{display:flex;flex-direction:column;gap:8px;min-height:48px;border-radius:12px}
.dropzone.over{outline:2px dashed var(--accent)}
.empty{border:1px dashed var(--line);border-radius:12px;padding:14px;color:var(--muted);text-align:center;font-size:13px}
.xrow{display:grid;grid-template-columns:auto auto minmax(120px,1.2fr) minmax(0,3fr) auto;gap:10px;align-items:center;background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:8px}
.xrow.over,.blk.over{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.xname{min-width:0}.xname b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xin{display:flex;gap:8px;flex-wrap:wrap}.xin label{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted)}.xin input{width:72px}
.xbtn{display:flex;gap:4px}
.blib{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.pkbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.pkbar input[type=search]{flex:1;min-width:200px}
.xgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.xcard{position:relative;display:flex;flex-direction:column;gap:4px;text-align:left;padding:0 0 10px;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;cursor:pointer;color:var(--fg)}
.xcard:hover,.xcard:focus-visible{border-color:var(--accent);outline:0}.xcard b,.xcard .small{padding:0 10px}.xcard b{margin-top:6px;font-size:13px}
.badge{position:absolute;top:8px;right:8px;background:var(--accent);color:var(--accent-fg);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}
.modal.xl .xgrid{max-height:52vh;overflow:auto;padding:2px}
.st{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--surface2);flex:none}.st.done{background:var(--accent);color:var(--accent-fg);font-weight:700}.st.locked{opacity:.8}
@media(max-width:1100px){.wgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:860px){.wgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.edgrid{grid-template-columns:minmax(0,1fr)}.edside{position:static;order:-1}.modes{grid-template-columns:minmax(0,1fr)}.xrow{grid-template-columns:auto auto minmax(0,1fr)}.xin,.xbtn{grid-column:1/-1}}
@media(max-width:520px){.wgrid{grid-template-columns:minmax(0,1fr)}}
.blkhead select,.blkhead input{width:auto}.blkhead .bname{flex:1 1 160px;width:auto}.blkhead .inl input{width:84px}
.xin input{width:66px}.xrow{grid-template-columns:auto auto minmax(110px,1fr) auto auto}.xin{justify-content:flex-start}
.scard b{overflow-wrap:anywhere}.scard .btn{flex:none}
.wgrid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr))}
@media(max-width:1100px){.wgrid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr))}}
@media(max-width:860px){.wgrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.xrow{grid-template-columns:auto auto minmax(0,1fr)}}
@media(max-width:520px){.wgrid{grid-template-columns:minmax(0,1fr)}}

/* lot 3 : formats de blocs, bibliothèque, minuteur d'intervalles */
.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer}.chip.on{background:var(--accent-soft);color:var(--fg);border-color:var(--accent)}.chip .small{opacity:.7;margin-left:3px}
.bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;max-height:50vh;overflow:auto;padding:2px}
.bcard{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px}.bcard:hover{border-color:var(--accent)}
.bsum{color:var(--fg);font-weight:500}.xfix{align-self:center}
.stepper{display:inline-flex;align-items:center;gap:10px}.stepper b{min-width:28px;text-align:center;font-size:20px}
.timer{max-width:calc(100vw - 32px)}.tinfo{min-width:120px;max-width:240px}.tinfo .small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timer[data-kind="work"]{background:var(--accent-soft);border-width:2px}.timer[data-kind="work"] .label{color:var(--accent)}
@media(max-width:640px){.timer{left:12px;right:12px;bottom:12px;justify-content:space-between}.bgrid{max-height:56vh}}
body:has(#timer:not([hidden])) #app{padding-bottom:130px}
.timer .btn{white-space:nowrap}

/* ----- illustrations d'exercices */
.fig{width:100%;height:100%;display:block}
.fig .stk line,.fig .stk path{stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;fill:none}
.fig .fill{fill:currentColor;stroke:none}
.fig .ring{fill:none;stroke:currentColor;stroke-width:3}
.fig .band{stroke:currentColor;stroke-width:1.6;stroke-dasharray:3 2;opacity:.8;fill:none}
.fig .deco{fill:currentColor;opacity:.28;stroke:currentColor;stroke-width:1.2}
.fig line.deco{stroke:currentColor;opacity:.4;fill:none}
.fig .ground{stroke:currentColor;stroke-width:1.4;opacity:.35}
.fig .arrow{stroke:currentColor;stroke-width:1.8;opacity:.5;fill:none}
.fig-anim .fr{opacity:0;animation-name:figshow;animation-iteration-count:infinite;animation-timing-function:steps(1,end)}
@keyframes figshow{0%{opacity:1}50%{opacity:0}100%{opacity:0}}
.fig-anim .fr[data-n="3"]{animation-name:figshow3}
@keyframes figshow3{0%{opacity:1}33.4%{opacity:0}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.fig-anim .fr{animation:none}.fig-anim .fr:first-child{opacity:1}}
.figbox{display:flex;align-items:center;justify-content:center;border-radius:14px;overflow:hidden}
.figbox.strip{aspect-ratio:auto;padding:6px}
.figbox.strip svg{height:auto;max-height:160px}
.thumb svg{width:100%;height:100%}
.filebtn{cursor:pointer}
.vid{width:100%;max-height:60vh;border-radius:12px;background:#000;display:block}
.vid.emb{position:relative;aspect-ratio:16/9;overflow:hidden}.vid.emb iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.exphoto{max-width:100%;max-height:260px;object-fit:contain}
.upbox{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:6px}
.upbar{height:8px;border-radius:99px;background:var(--line);overflow:hidden}.upbar i{display:block;height:100%;background:var(--accent);transition:width .2s}
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-bottom:12px}
.vcard{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;padding:0;cursor:pointer;color:inherit;font:inherit;display:flex;flex-direction:column}
.vcard:hover{border-color:var(--accent)}.vbody{padding:10px 12px;display:grid;gap:4px}
.vthumb{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 55%,#000),#0c0c0e);display:grid;place-items:center;overflow:hidden}
.vthumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vplay{position:relative;width:44px;height:44px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:grid;place-items:center;font-size:18px;padding-left:3px}
.vdur{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.7);color:#fff;border-radius:6px;font-size:12px;padding:1px 6px}
.vh{margin:14px 0 8px;font-size:16px}
.clipbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border:1px dashed var(--accent);border-radius:12px;background:var(--accent-soft)}
.pastebtn{border-color:var(--accent)}
.phases{align-items:center;margin-bottom:6px}
.phases select{max-width:210px}
.chip.pk{display:inline-flex;gap:6px;align-items:center;cursor:pointer}

/* ----- onglets de suivi */
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px}
.stat{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:12px 14px;display:grid;gap:2px}.stat b{font-size:22px}
.wdetail{margin-top:6px;padding:8px 10px;border-left:2px solid var(--accent);display:grid;gap:4px}
.cal-head,.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.cal-head{margin:12px 0 6px;font-size:12px;color:var(--muted);text-align:center}
.cal-cell{min-height:92px;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:6px;display:flex;flex-direction:column;gap:3px;text-align:left;color:inherit;font:inherit;cursor:pointer;overflow:hidden}
.cal-cell.empty{border:0;background:none;cursor:default}.cal-cell.today{border-color:var(--accent)}.cal-cell.sel{outline:2px solid var(--accent)}
.cal-n{font-size:12px;color:var(--muted)}.cal-chip{display:block;font-size:11px;border-radius:6px;padding:1px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid var(--line)}
.cal-chip.ok{background:var(--accent-soft);color:var(--accent);border-color:transparent}.cal-chip.plan{color:var(--fg)}.cal-chip.miss{color:var(--bad);border-color:var(--bad)}
.cal-ico{margin-top:auto;font-size:11px;color:var(--muted);display:flex;gap:6px;flex-wrap:wrap}.cal-ico i{font-style:normal}.calleg{display:flex;gap:6px;align-items:center}
.hgrid{display:grid;grid-template-columns:repeat(28,1fr);gap:3px;margin:10px 0 6px}.hc{display:block;aspect-ratio:1;border-radius:4px;background:var(--line)}.hc.full{background:var(--accent)}.hc.part{background:var(--accent-soft);outline:1px solid var(--accent)}
.hrow{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.hrow:first-of-type{border-top:0}.hicon{font-size:24px;width:34px;text-align:center}.hrow.done .grow b{color:var(--accent)}
.nbar{margin-bottom:10px;display:grid;gap:4px}.fdlist{display:grid;gap:6px;max-height:260px;overflow:auto;margin:8px 0}
.fditem{display:grid;text-align:left;border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;border-radius:10px;padding:8px 10px;cursor:pointer}.fditem.on{border-color:var(--accent);background:var(--accent-soft)}
@media (max-width:700px){.cal-cell{min-height:64px;padding:4px}.cal-chip{font-size:10px}.hgrid{grid-template-columns:repeat(14,1fr)}}
.bans{background:var(--surface2);border-radius:10px;padding:8px 12px;white-space:pre-wrap;min-height:20px}
.chip.pk.bsc{min-width:38px;justify-content:center}.chip.pk:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--fg)}
.chip.pk input[type=radio],.chip.pk input[type=checkbox]{accent-color:var(--accent)}
.pimg.empty.small{aspect-ratio:3/4;font-size:12px}
/* menu coach : rail d'icônes + panneau de la section */
.shell2{display:grid;grid-template-columns:64px 236px minmax(0,1fr);gap:0 16px;max-width:1480px;margin:0 auto;align-items:start}
.shell2.collapsed{grid-template-columns:64px minmax(0,1fr)}.shell2.collapsed .panel{display:none}
.rail{position:sticky;top:16px;height:calc(100vh - 32px);background:var(--surface);border:1px solid var(--line);border-radius:18px;display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 0}
.rail .mark{width:34px;height:34px;flex:none}
.rlist{display:flex;flex-direction:column;gap:6px;margin-top:8px;flex:1;overflow-y:auto;scrollbar-width:none}
.rbot{display:flex;flex-direction:column;align-items:center;gap:10px}
.rbtn{width:42px;height:42px;border-radius:12px;border:0;background:none;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.rbtn:hover{background:var(--surface2);color:var(--fg)}.rbtn.on{background:var(--accent-soft);color:var(--accent)}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--accent-fg,#16120a);display:grid;place-items:center;font-size:12.5px;font-weight:700}
.panel{position:sticky;top:16px;height:calc(100vh - 32px);display:flex;flex-direction:column;padding:6px 4px 0}
.ptitle{margin:6px 8px 14px;font-size:22px}
.pitems{display:flex;flex-direction:column;gap:4px;flex:1}
.pitem{background:none;border:0;border-radius:12px;padding:11px 14px;text-align:left;cursor:pointer;color:var(--muted);font-weight:500;font-size:15px}
.pitem:hover{background:var(--surface2);color:var(--fg)}.pitem.on{background:var(--accent-soft);color:var(--accent)}
.plan{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:2px}
.pbar{height:6px;border-radius:99px;background:var(--surface2);margin-top:6px;overflow:hidden}.pbar i{display:block;height:100%;background:var(--accent)}
@media(max-width:860px){
  .shell2,.shell2.collapsed{grid-template-columns:minmax(0,1fr);gap:10px}
  .rail{position:static;height:auto;flex-direction:row;padding:8px 10px;border-radius:14px;gap:6px}.rail .mark{width:28px;height:28px}
  .rlist{flex-direction:row;margin:0;overflow-x:auto}.rbot{flex-direction:row}.rbtn{width:38px;height:38px}.rail [data-act=railtoggle]{display:none}
  .shell2 .panel,.shell2.collapsed .panel{display:block;position:static;height:auto;padding:0}.ptitle,.plan{display:none}.pitems{flex-direction:row;overflow-x:auto;gap:6px}.pitem{white-space:nowrap;padding:8px 12px;background:var(--surface);border:1px solid var(--line)}
}
.rbtn{position:relative}
.rb{position:absolute;top:2px;right:0;min-width:17px;height:17px;border-radius:99px;background:var(--bad);color:#fff;font-size:10.5px;font-weight:700;display:grid;place-items:center;padding:0 4px}
.inbox{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}
.conv{border-radius:12px}.conv.sel{background:var(--accent-soft)}
@media(max-width:860px){.inbox{grid-template-columns:minmax(0,1fr)}}

/* langues */
.langbar{display:flex;justify-content:flex-end;margin-bottom:10px}
.langsel{display:inline-flex;flex-direction:row;align-items:center;gap:6px;margin:0}
.langsel select{width:auto;min-width:130px}
[dir=rtl] .langbar{justify-content:flex-start}

.bars{display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:6px}.bar{flex:1;height:100%;display:flex;align-items:flex-end}.bar i{display:block;width:100%;min-height:2px;background:var(--accent);border-radius:4px 4px 0 0;opacity:.9}

.auth.wide{grid-template-columns:minmax(0,1fr);max-width:720px}
.sgprog{display:flex;gap:6px}.sgprog span{flex:1;height:5px;border-radius:3px;background:var(--line)}.sgprog span.on{background:var(--accent)}
.sg1{grid-template-columns:repeat(2,minmax(0,1fr))}.sgq{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 12px}.sgq .seg{flex:none}
@media(max-width:560px){.sg1,.modes{grid-template-columns:minmax(0,1fr)}.sgq{flex-direction:column;align-items:stretch}}
.auth.wide .hero{padding:10px;border:0;background:none}.auth.wide .hero .logo-full{width:min(150px,45%)}

.rlist{overflow-y:auto}
.receipt .card .row{padding:4px 0}
@media print{body.print-receipt #app,body.print-receipt .toast,body.print-receipt .noprint{display:none!important}body.print-receipt .veil{position:static;background:#fff;padding:0}body.print-receipt .modal{box-shadow:none;border:0;color:#000;background:#fff;max-width:none}body.print-receipt .modal *{color:#000!important;background:none!important}}

/* règles du client : repère du minimum, chrono verrouillé, verrouillage avant séance */
.bar .mark{position:absolute;top:0;bottom:0;width:2px;background:var(--fg);opacity:.7;text-decoration:none}
#timer.locked [data-act="tplus"],#timer.locked [data-act="tkill"],#timer.locked:not([data-up="1"]) [data-act="tstop"]{display:none}
.lockveil{position:fixed;inset:0;z-index:2000;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:24px}
.lockbox{max-width:420px;width:100%;text-align:center;display:flex;flex-direction:column;gap:14px;align-items:center}
.lockbox .lockico{font-size:56px;line-height:1}
.lockbox .big{width:100%;padding:16px;font-size:18px}

.social{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.socbtn{display:flex;align-items:center;justify-content:center;gap:10px}
.sbadge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:#fff;font-weight:700;font-size:13px;font-family:Arial,sans-serif}
.tbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid var(--accent);background:var(--accent-soft,rgba(212,175,55,.12));border-radius:12px;padding:10px 14px;margin:0 0 14px}
.rlocked{opacity:.55}
.rlocked .rph{filter:grayscale(.6)}
