/* WEBTV — feuille de style. */
@font-face{font-family:Geist;src:url(../fonts/geist-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist;src:url(../fonts/geist-latin-ext-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{--bg:#000;--bgc:0 0 0;--s1:#0e0e10;--s2:#1a1a1d;--s3:#26262a;--tx:#f5f5f7;--mut:#a1a1a8;--dim:#6b6b73;--o:255 255 255;--hair:rgb(var(--o)/.09);--hi:#fff;--hi-tx:#000;--glass:rgba(34,34,38,.86);--shadow:0 12px 40px rgba(0,0,0,.5);--live:#ff453a;--acc:#3b82ff;--acc2:#14d3c2;--grad:linear-gradient(100deg,var(--acc),var(--acc2));--r:16px;--gut:clamp(16px,4vw,56px);--max:1560px;--hd:64px;--tab:0px;color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hd) + 16px)}
body{margin:0;background:var(--bg);color:var(--tx);font:400 16px/1.5 Geist,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;padding-bottom:var(--tab)}
img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:8px}
[hidden]{display:none!important}
.skip{position:absolute;left:-999px;top:8px;background:#fff;color:#000;padding:10px 16px;border-radius:999px;z-index:100}.skip:focus{left:12px}
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}

/* en-tête */
.hd{position:sticky;top:0;z-index:40;background:rgb(var(--bgc)/.72);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}
.hd-in{height:var(--hd);display:flex;align-items:center;gap:clamp(16px,3vw,40px)}
.logo{font-weight:650;font-size:19px;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}
.nav{display:flex;gap:4px}
.nav a{padding:8px 14px;border-radius:999px;font-size:14.5px;font-weight:500;color:var(--mut);transition:color .15s,background .15s;display:flex;align-items:center;gap:8px}
.tabs{display:none}
.nav a:hover{color:var(--tx)}.nav a[aria-current]{color:var(--tx);background:rgb(var(--o)/.1)}
.hd-r{margin-left:auto;display:flex;align-items:center;gap:10px;flex:none}
.onair{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:500;color:var(--dim);padding:7px 12px;border-radius:999px;white-space:nowrap}
.onair::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.onair.on{color:var(--tx);background:rgba(255,69,58,.16)}.onair.on::before{background:var(--live);box-shadow:0 0 0 0 rgba(255,69,58,.6);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 7px rgba(255,69,58,0)}100%{box-shadow:0 0 0 0 rgba(255,69,58,0)}}
.ibtn{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgb(var(--o)/.08);color:var(--mut);transition:background .15s,color .15s;flex:none}
.ibtn:hover{background:rgb(var(--o)/.14);color:var(--tx)}.ibtn.on{background:var(--grad);color:#fff}
svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* textes, boutons */
.h1{font-size:clamp(34px,5.4vw,60px);line-height:1.04;font-weight:600;letter-spacing:-.035em;margin:0}
.h2{font-size:clamp(21px,2.3vw,27px);line-height:1.15;font-weight:600;letter-spacing:-.022em;margin:0}
.lead{color:var(--mut);font-size:clamp(16px,1.5vw,18px);max-width:60ch;margin:14px 0 0}
.page-h{padding:clamp(36px,6vw,80px) 0 clamp(8px,2vw,20px)}
.sec{padding-top:clamp(36px,5vw,64px)}
.sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px}
.more{color:var(--mut);font-size:14.5px;font-weight:500;white-space:nowrap}.more:hover{color:var(--tx)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 20px;border-radius:999px;background:rgb(var(--o)/.1);font-weight:550;font-size:15px;white-space:nowrap;transition:background .15s,transform .15s}
.btn:hover{background:rgb(var(--o)/.17)}.btn:active{transform:scale(.97)}
.btn[aria-pressed=true]{background:var(--hi);color:var(--hi-tx)}.btn.pri{background:var(--grad);color:#fff;box-shadow:0 6px 22px -8px var(--acc)}.btn.pri:hover{background:var(--grad);filter:brightness(1.1);box-shadow:0 10px 28px -8px var(--acc)}
.btn.sm{min-height:34px;padding:0 14px;font-size:13.5px}
.btn:disabled{opacity:.5;cursor:default}
.seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:999px;background:rgb(var(--o)/.07);max-width:100%}
.seg .btn{background:none;min-height:32px;padding:0 14px;font-size:13.5px;color:var(--mut)}
.seg .btn:hover{color:var(--tx)}.seg .btn[aria-pressed=true]{background:rgb(var(--o)/.16);color:var(--tx)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:rgb(var(--o)/.08);font-size:12.5px;font-weight:500;color:var(--mut);white-space:nowrap}
.chip.live{background:var(--live);color:#fff}
.empty{color:var(--mut);padding:28px 0;font-size:15px}
.av{width:44px;height:44px;border-radius:50%;object-fit:cover;background:var(--s3);display:grid;place-items:center;font-weight:600;flex:none;color:var(--tx)}
.av{background:color-mix(in srgb,var(--c,var(--s3)) 34%,var(--s2))}.av.ring{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--live);animation:ring 2.4s ease-in-out infinite}
@keyframes ring{50%{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--live),0 0 0 9px rgba(255,69,58,.18)}}

/* les directs */
.watch{padding-top:clamp(10px,1.6vw,22px)}
.stage{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:stretch}
.stage.chat-on{grid-template-columns:minmax(0,1fr) 340px}
.wall{display:grid;gap:18px 16px;grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;align-content:start}
.wall[data-n="1"],.wall[data-layout=solo]{grid-template-columns:minmax(0,1fr)}
.wall .mon.pgm{grid-column:1/-1}
.pgm .mon-b{max-height:calc(100vh - var(--hd) - 150px);width:100%}
.wall[data-layout=mosaique]{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}.wall[data-layout=mosaique] .mon.pgm{grid-column:auto}.wall[data-layout=mosaique] .mon-b{max-height:none;border-radius:var(--r)}
.wall[data-layout=solo] .mon:not(.pgm){display:none}
.mon{min-width:0}
.mon-b{position:relative;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:var(--s1)}
.mon:not(.pgm) .mon-b{border-radius:12px}
.mon-b iframe,.cb iframe,.fr iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.mon-b>img.th{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.swap{position:absolute;inset:0;z-index:2;display:flex;align-items:flex-end;justify-content:flex-start;padding:10px;background:linear-gradient(to top,rgba(0,0,0,.55),transparent 45%);opacity:0;transition:opacity .18s}
.mon:hover .swap,.swap:focus-visible{opacity:1}
.swap span{background:#fff;color:#000;border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:600}
.off{position:absolute;inset:0;display:grid;place-items:center;text-align:center;overflow:hidden;padding:12px}
.off .bgav{position:absolute;inset:-20%;width:140%;height:140%;object-fit:cover;filter:blur(48px) saturate(1.3);opacity:.42}
.off::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent,rgba(0,0,0,.6))}
.off>div{position:relative;z-index:1;display:grid;justify-items:center;gap:6px;max-width:92%}
.off b{font-weight:600;font-size:clamp(14px,1.3vw,17px)}.off small{color:rgb(var(--o)/.72);font-size:clamp(11.5px,1vw,13.5px);line-height:1.35}
.off .av{width:clamp(34px,4.2vw,64px);height:clamp(34px,4.2vw,64px);margin-bottom:4px}
.pgm .off .av{width:84px;height:84px}.pgm .off b{font-size:22px}.pgm .off small{font-size:15px}
.demo{background:radial-gradient(120% 90% at 20% 10%,#2b2440 0,transparent 60%),radial-gradient(100% 90% at 90% 90%,#15323a 0,transparent 60%),#0c0c10}
.demo.d2{background:radial-gradient(120% 90% at 80% 10%,#402a24 0,transparent 60%),radial-gradient(100% 90% at 10% 90%,#1d2a45 0,transparent 60%),#0c0c10}
.power{position:absolute;inset:0;z-index:3;display:grid;place-items:center;text-align:center;background:rgba(0,0,0,.6);padding:20px}
.power p{color:rgb(var(--o)/.75);font-size:13.5px;max-width:44ch;margin:14px auto 0}
.mon-f{display:flex;align-items:center;gap:12px;padding:12px 2px 0;min-width:0}
.mon-f .av{width:40px;height:40px}
.mon-f .tx{min-width:0;flex:1;display:grid}
.mon-f b{font-weight:600;font-size:16px;letter-spacing:-.01em;display:flex;align-items:center;gap:8px;min-width:0}
.mon-f b i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--live)}
.mon-f small{color:var(--mut);font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pgm .mon-f{padding-top:16px}.pgm .mon-f b{font-size:clamp(18px,1.8vw,22px)}.pgm .mon-f small{font-size:15px}.pgm .mon-f .av{width:48px;height:48px}
.mon:not(.pgm) .mon-f{padding-top:8px;gap:0}.mon:not(.pgm) .mon-f .av,.mon:not(.pgm) .mon-f .btn{display:none}.mon:not(.pgm) .mon-f b{font-size:14px}.mon:not(.pgm) .mon-f small{font-size:12.5px}
.wall[data-layout=mosaique] .mon .mon-f{padding-top:10px;gap:10px}.wall[data-layout=mosaique] .mon .mon-f .av{display:grid;width:34px;height:34px}.wall[data-layout=mosaique] .mon-f b{font-size:15px}.wall[data-layout=mosaique] .mon-f small{font-size:13px}
.chat{border-radius:var(--r);background:var(--s1);overflow:hidden;display:flex;flex-direction:column;min-height:420px;max-height:calc(100vh - var(--hd) - 24px);position:sticky;top:calc(var(--hd) + 12px);align-self:start;height:100%}
.chat-h{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-size:14px;color:var(--mut)}.chat-h b{color:var(--tx);font-weight:600}
.chat-h{gap:10px}.chat-h select{flex:1;min-width:0;min-height:36px;padding:0 34px 0 14px;border:0;border-radius:999px;background:rgb(var(--o)/.08) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238e8e96' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 10px center/18px;color:var(--tx);font-size:14px;font-weight:550;appearance:none;-webkit-appearance:none;cursor:pointer;text-overflow:ellipsis}
.chat-h select option{background:var(--s2);color:var(--tx)}
.mc{position:absolute;inset:0;display:flex;flex-direction:column}
.mc-l{flex:1;min-height:0;overflow-y:auto;padding:4px 16px 8px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--s3) transparent}
.mm{margin:0;padding:4px 0;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.mm .mt{display:inline-block;margin-right:7px;padding:1px 7px;border-radius:999px;background:rgb(var(--o)/.09);color:var(--mut);font-size:11px;font-weight:550;vertical-align:1px;white-space:nowrap}
.mm b{font-weight:600}.mm i{font-style:normal;color:var(--dim)}.mm.me span:last-child{font-style:italic;color:var(--mut)}
.mm.sys{color:var(--dim);font-size:13px}
.mm .em{display:inline-block;height:24px;width:auto;vertical-align:middle;margin:-4px 1px}
.mc-n{margin:0;padding:10px 16px 12px;border-top:1px solid var(--hair);color:var(--dim);font-size:12.5px}
.cb{position:relative;flex:1;min-height:0}.cb .ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:var(--dim);font-size:14px;padding:24px}
.bar{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin-top:20px}
.bar .tip{color:var(--dim);font-size:13.5px}.bar .tools{display:flex;gap:10px;align-items:center;margin-left:auto}
.idle{position:relative;overflow:hidden;isolation:isolate;border-radius:clamp(18px,2vw,28px);background:var(--s1);padding:clamp(28px,6vw,88px) clamp(22px,5vw,72px);display:grid;gap:18px;justify-items:start}
.idle .avs{display:flex}.idle .avs .av{width:52px;height:52px;margin-right:-10px;box-shadow:0 0 0 3px var(--s1);animation:none}
.idle p{color:var(--mut);margin:0;font-size:clamp(16px,1.5vw,19px);max-width:52ch}.idle p b{color:var(--tx);font-weight:550}
.idle .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}

/* programme */
.epg{display:grid}
.slot{display:grid;grid-template-columns:118px minmax(0,1fr) auto;gap:6px 20px;align-items:center;padding:16px 0;border-top:1px solid var(--hair)}
.epg .slot:first-child{border-top:0}
.slot .hr{font-weight:600;font-size:17px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.slot .hr small{display:block;color:var(--dim);font-weight:400;font-size:13px}
.slot .ti{min-width:0;display:grid}.slot .ti b{font-weight:550;font-size:16.5px;overflow-wrap:anywhere}.slot .ti small{color:var(--mut);font-size:14px}
.slot.cancel .ti b,.slot.cancel .hr{text-decoration:line-through;color:var(--dim)}.slot.past{opacity:.45}
.slot.now .hr{color:var(--live)}
.day{padding-top:34px}.day-h{display:flex;align-items:baseline;gap:12px;margin-bottom:4px}.day-h h3{margin:0;font-size:22px;font-weight:600;letter-spacing:-.02em;text-transform:capitalize}.day-h span{color:var(--dim);font-size:15px}

/* programme : tableau sur deux semaines */
.ptools{display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin-top:8px}
.plegend{display:flex;gap:8px 18px;flex-wrap:wrap;color:var(--mut);font-size:13.5px}.plegend span{display:inline-flex;align-items:center}.plegend .av{width:24px;height:24px;font-size:11px;margin-right:8px;animation:none}.plegend .av.ring{box-shadow:0 0 0 2px var(--live)}
#pfilter .btn{gap:8px;padding-left:6px}#pfilter .btn[data-f=all]{padding-left:14px}#pfilter .av{width:24px;height:24px;font-size:11px;animation:none}#pfilter .av.ring{box-shadow:0 0 0 2px var(--live)}
.pnext{position:relative;overflow:hidden;isolation:isolate;border-radius:clamp(18px,2vw,26px);padding:clamp(22px,3.4vw,40px);margin-bottom:26px;background:radial-gradient(90% 140% at 100% 0,color-mix(in srgb,var(--c) 30%,transparent),transparent 62%),var(--s1);display:grid;gap:12px;justify-items:start}
.pn-t{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pn-cd{color:var(--mut);font-size:14.5px;font-variant-numeric:tabular-nums}
.pnext h2{margin:0;font-size:clamp(26px,3.6vw,44px);line-height:1.08;font-weight:600;letter-spacing:-.03em;overflow-wrap:anywhere}
.pnext p{margin:0;display:flex;align-items:center;gap:12px;color:var(--mut);font-size:16px}.pnext p b{color:var(--tx);font-weight:600}.pnext p .av{width:36px;height:36px}
.pweek{padding-top:clamp(30px,4vw,48px)}
.pweek-h{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.pweek-h span{color:var(--mut);font-size:14.5px;display:block;margin-top:4px}
.ptable{background:var(--s1);border-radius:20px;overflow:hidden}
.prow{display:grid;grid-template-columns:132px minmax(0,1fr);border-top:1px solid var(--hair)}.prow:first-child{border-top:0}
.pd{padding:16px 18px;display:grid;align-content:center;gap:0;border-right:1px solid var(--hair)}
.pd .dn{font-size:13px;font-weight:550;color:var(--mut)}.pd .ct{display:none}.pd b{font-size:30px;line-height:1.05;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.pd .dm{font-size:13px;color:var(--dim)}
.prow.today{background:linear-gradient(90deg,color-mix(in srgb,var(--acc) 14%,transparent),transparent 55%)}
.prow.today .pd{box-shadow:inset 3px 0 0 var(--acc)}.prow.today .pd .dn{color:var(--acc)}
.prow.past .pd,.prow.past .ev{opacity:.45}
.pevs{padding:12px;display:flex;flex-wrap:wrap;gap:10px;align-items:stretch;min-width:0}
.rest{margin:0;align-self:center;padding:6px 8px;color:var(--dim);font-size:14.5px}
.ev{flex:1 1 260px;max-width:440px;min-width:0;display:flex;align-items:center;gap:12px;padding:10px 14px 10px 12px;border-radius:14px;background:color-mix(in srgb,var(--c) 11%,rgb(var(--o)/.04));box-shadow:inset 3px 0 0 var(--c);transition:transform .2s cubic-bezier(.2,.7,.2,1),background .2s}
.ev .av{width:38px;height:38px}
.avs{display:flex;flex:none}.avs .av+.av{margin-left:-12px;box-shadow:0 0 0 2px var(--s1)}.avs .av.ring+.av.ring,.avs .av+.av.ring{box-shadow:0 0 0 2px var(--s1),0 0 0 4px var(--live)}
.pnext p .avs .av+.av{margin-left:-10px}
.ev .eb{display:grid;min-width:0}.ev .et{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;font-variant-numeric:tabular-nums}.ev .et small{font-weight:400;color:var(--mut)}
.ev b{font-weight:550;font-size:15.5px;overflow-wrap:anywhere}.ev .eb>small{color:var(--mut);font-size:13px}
.ev.cancel b,.ev.cancel .et{text-decoration:line-through;color:var(--dim)}.ev.cancel{box-shadow:inset 3px 0 0 var(--dim);background:rgb(var(--o)/.04)}
.ev.now{box-shadow:inset 3px 0 0 var(--live),0 0 0 1px color-mix(in srgb,var(--live) 55%,transparent)}
@media (hover:hover){.ev:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--c) 20%,rgb(var(--o)/.04))}}
@media (max-width:760px){.prow{grid-template-columns:74px minmax(0,1fr)}.pd{padding:14px 10px 14px 14px}.pd b{font-size:24px}.pd .dn{font-size:12.5px}.pd .lg{display:none}.pd .ct{display:inline}.pevs{padding:10px}.ev{flex-basis:100%;max-width:none}.plegend{display:none}.pweek-h .btn{display:none}}

/* replays, clips */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:26px 18px}
.row{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(230px,23vw,330px);gap:16px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;margin:0 calc(var(--gut)*-1);padding:0 var(--gut);scroll-padding:0 var(--gut)}.row::-webkit-scrollbar{display:none}
.card{display:grid;gap:10px;text-align:left;scroll-snap-align:start;min-width:0;align-content:start}
.card .th{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:var(--s2);display:block}
.card .th.demo{background:radial-gradient(120% 90% at 20% 10%,#2b2440 0,transparent 60%),radial-gradient(100% 90% at 90% 90%,#15323a 0,transparent 60%),#0c0c10}
.card .th img{width:100%;height:100%;object-fit:cover;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.card:hover .th img{transform:scale(1.04)}
.card .th .d{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.75);border-radius:6px;padding:2px 7px;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}
.card .bd{display:grid;gap:2px;min-width:0}.card b{font-weight:550;font-size:15px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card small{color:var(--mut);font-size:13px}

/* chaînes */
.chans{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px}
.chan{background:var(--s1);border-radius:22px;padding:24px;display:grid;gap:14px;align-content:start}
.chan-t{display:flex;align-items:center;gap:14px;min-width:0}.chan-t .av{width:60px;height:60px;font-size:22px}
.chan-t h3{margin:0;font-size:20px;font-weight:600;letter-spacing:-.02em;overflow-wrap:anywhere}.chan-t small{color:var(--mut);font-size:13.5px;display:flex;align-items:center;gap:6px}
.chan-t small.l{color:var(--live);font-weight:550}
.chan p{margin:0;color:var(--mut);font-size:15px}
.links{display:flex;gap:8px;flex-wrap:wrap}
.fiche{background:var(--s1);border-radius:clamp(20px,2vw,28px);padding:clamp(22px,3.4vw,44px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);margin-top:16px;scroll-margin-top:calc(var(--hd) + 16px)}
.fiche .chan-t .av{width:76px;height:76px;font-size:28px}.fiche .chan-t h3{font-size:clamp(26px,3vw,36px);letter-spacing:-.03em}
.fiche .acc{margin:18px 0 0;font-size:18px;font-weight:500}.fiche .bio{margin:10px 0 0;color:var(--mut);white-space:pre-line}
.fiche .jx{margin:16px 0 0;color:var(--mut);font-size:14.5px}
.fiche h4{margin:0 0 4px;font-size:14px;font-weight:500;color:var(--dim)}

/* alertes, fenêtre vidéo, pied */
.toasts{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--tab) + 20px);z-index:60;display:grid;gap:10px;width:min(560px,calc(100vw - 24px))}
.toast{display:flex;align-items:center;gap:14px;padding:12px 12px 12px 18px;border-radius:18px;background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(160%);backdrop-filter:blur(24px) saturate(160%);box-shadow:var(--shadow);animation:up .35s cubic-bezier(.2,.8,.2,1)}
@keyframes up{from{opacity:0;transform:translateY(14px)}}
.toast .dot{width:9px;height:9px;border-radius:50%;background:var(--live);flex:none}.toast .dot.n{background:var(--dim)}
.toast .tx{flex:1;min-width:0;display:grid}.toast .tx b{font-weight:600;font-size:15px}.toast .tx span{color:var(--mut);font-size:13.5px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.toast a{background:var(--grad);color:#fff;border-radius:999px;padding:8px 16px;font-weight:600;font-size:13.5px;flex:none}
.toast button{width:32px;height:32px;border-radius:50%;color:var(--mut);flex:none;font-size:18px;line-height:1}.toast button:hover{background:rgb(var(--o)/.1);color:var(--tx)}
.modal{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:grid;place-items:center;padding:16px}
.modal .box{width:min(1180px,100%)}.fr{position:relative;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:#000}
.modal .mbar{display:flex;justify-content:space-between;gap:10px;margin-top:12px}
.ft{margin-top:clamp(56px,8vw,110px);border-top:1px solid var(--hair);color:var(--dim);font-size:13.5px}
.ft-in{display:flex;justify-content:space-between;gap:10px 24px;flex-wrap:wrap;padding-top:22px;padding-bottom:26px}.ft a:hover{color:var(--tx)}

/* administration */
.adm label{display:grid;gap:6px;font-size:13px;color:var(--mut);font-weight:500;min-width:0}
.adm input,.adm select,.adm textarea{width:100%;min-height:42px;padding:9px 12px;border-radius:10px;border:1px solid transparent;background:var(--s2);color:var(--tx);font-size:15px}
.adm textarea{min-height:92px;resize:vertical}.adm input:focus,.adm select:focus,.adm textarea:focus{outline:0;border-color:rgb(var(--o)/.5)}
.adm input:disabled{color:var(--dim)}
.panel{background:var(--s1);border-radius:20px;padding:clamp(18px,2.4vw,28px);max-width:560px;display:grid;gap:14px}
.panel h2{margin:0}.panel p{margin:0;color:var(--mut);font-size:14.5px}
.arow{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;background:var(--s1);border-radius:16px;padding:16px;margin-bottom:10px}
.arow label{flex:1 1 170px}.arow label.s{flex:0 1 112px}.arow label.m{flex:0 1 170px}.arow label.w{flex:1 1 100%}
.arow.old{opacity:.5}.arow.cancel input[data-k=titre]{text-decoration:line-through}
.arow .tools{display:flex;gap:6px;margin-left:auto}
.note{color:var(--dim);font-size:13.5px;margin:-8px 0 14px}
.avec{flex:1 1 100%;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--mut);font-weight:500}
.avec .btn[aria-pressed=true]{background:var(--grad);color:#fff}
.msg{color:var(--mut);font-size:14px;min-height:1.4em;margin:0}
.abar{position:sticky;bottom:var(--tab);z-index:30;margin-top:36px;background:rgb(var(--bgc)/.86);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--hair)}
.abar>div{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px;font-size:14px;color:var(--mut)}
.abar.dirty #bmsg{color:var(--warn)}.abar .tools{display:flex;gap:8px;flex-wrap:wrap}

/* surfaces vidéo : toujours sombres, quel que soit le thème */
.mon-b,.modal,.card .th{--o:255 255 255;--tx:#f5f5f7;--mut:#a1a1a8;--s1:#0e0e10;--s2:#1a1a1d;--s3:#26262a;--bg:#0e0e10;color:#f5f5f7}
.mon-b{background:#0e0e10}
:root{--warn:#ffd60a}

/* thème clair */
:root[data-theme=light]{--bg:#f6f6f8;--bgc:246 246 248;--s1:#fff;--s2:#ececf0;--s3:#dcdce2;--tx:#101014;--mut:#5a5a66;--dim:#8a8a96;--o:0 0 0;--hi:#101014;--hi-tx:#fff;--glass:rgba(255,255,255,.9);--shadow:0 12px 40px rgba(20,20,40,.18);--warn:#b26a00;--acc:#1f6bff;--acc2:#0fb8a9;color-scheme:light}
:root[data-theme=light] .chan,:root[data-theme=light] .fiche,:root[data-theme=light] .chat,:root[data-theme=light] .idle,:root[data-theme=light] .panel,:root[data-theme=light] .arow{box-shadow:0 1px 2px rgba(20,20,40,.05),0 8px 28px -14px rgba(20,20,40,.18)}
:root[data-theme=light] .onair.on{background:rgba(255,69,58,.12)}
:root[data-theme=light] .adm input,:root[data-theme=light] .adm select,:root[data-theme=light] .adm textarea{background:var(--bg);border-color:var(--s3)}
:root[data-theme=light] .adm input:focus,:root[data-theme=light] .adm select:focus,:root[data-theme=light] .adm textarea:focus{border-color:var(--acc)}
html{transition:background-color .3s}body{transition:background-color .3s,color .3s}

/* couleur */
.logo{display:flex;align-items:center;gap:11px;font-weight:700;font-size:21px;letter-spacing:-.04em}
.logo .mark{width:30px;height:30px;flex:none;stroke:none;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.logo .mark .g1{stop-color:var(--acc)}.logo .mark .g2{stop-color:var(--acc2)}
@media (hover:hover){.logo:hover .mark{transform:translateX(3px) scale(1.06)}}
.logo span{overflow:hidden;text-overflow:ellipsis}
.nav a[aria-current]{position:relative}.nav a[aria-current]::after{content:"";position:absolute;left:14px;right:14px;bottom:-13px;height:2px;border-radius:2px;background:var(--grad)}
.more{transition:color .15s}.more:hover{color:var(--acc)}.more::after{content:" →";display:inline-block;transition:transform .2s}.more:hover::after{transform:translateX(4px)}
.h2{display:flex;align-items:center;gap:12px}.sec-h .h2::before{content:"";width:4px;height:.95em;border-radius:3px;background:var(--grad);flex:none}
.cdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c,var(--dim));margin-right:7px;vertical-align:1px;flex:none}
.chan,.fiche{background:radial-gradient(110% 90% at 0 0,color-mix(in srgb,var(--c,transparent) 20%,transparent),transparent 62%),var(--s1);transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s}
.chan:hover{transform:translateY(-4px);box-shadow:0 18px 40px -22px var(--c,#000)}
.mm .mt{background:color-mix(in srgb,var(--c,var(--dim)) 20%,transparent);color:color-mix(in srgb,var(--c,var(--mut)) 70%,var(--tx))}
.day.today .day-h h3::after{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--grad);margin-left:10px;vertical-align:3px}
.tabs a[aria-current] svg{color:var(--acc)}
.seg .btn[aria-pressed=true]{background:rgb(var(--o)/.16);color:var(--tx)}

/* animations */
.idle::before,.idle::after{content:"";position:absolute;z-index:-1;width:42%;aspect-ratio:1;border-radius:50%;filter:blur(90px);opacity:.3;will-change:transform}
.idle::before{right:-12%;top:-45%;background:var(--acc);animation:drift 16s ease-in-out infinite alternate}
.idle::after{right:18%;bottom:-70%;background:var(--acc2);animation:drift 20s ease-in-out infinite alternate-reverse}
:root[data-theme=light] .idle::before,:root[data-theme=light] .idle::after{opacity:.24}
:root[data-theme=light] .mm b{filter:brightness(.6) saturate(1.7)}
@keyframes drift{from{transform:translate(0,0) scale(1)}to{transform:translate(-18%,14%) scale(1.25)}}
.idle>*{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}.idle>:nth-child(2){animation-delay:.08s}.idle>:nth-child(3){animation-delay:.16s}.idle>:nth-child(4){animation-delay:.24s}
.page-h .h1,.page-h .lead{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}.page-h .lead{animation-delay:.1s}
@keyframes rise{from{opacity:0;transform:translateY(18px)}}
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}.rv.in{opacity:1;transform:none}
.card{transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.card .th{transition:box-shadow .3s}
.card .th::after{content:"";position:absolute;inset:0;margin:auto;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.94) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6.5v11l9-5.5z' fill='%23000'/%3E%3C/svg%3E") center/26px no-repeat;opacity:0;transform:scale(.7);transition:opacity .25s,transform .25s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover){.card:hover{transform:translateY(-6px)}.card:hover .th{box-shadow:0 18px 36px -16px rgba(0,0,0,.7),0 0 0 2px var(--acc)}.card:hover .th::after{opacity:1;transform:none}.btn:hover{transform:translateY(-1px)}.btn:active{transform:scale(.97)}}
.sk{border-radius:12px;aspect-ratio:16/9;background:linear-gradient(100deg,var(--s1) 30%,var(--s2) 50%,var(--s1) 70%) 0 0/300% 100%;animation:shim 1.4s linear infinite}
@keyframes shim{to{background-position:-300% 0}}
.rowbox{position:relative}
.rowbox .arr{position:absolute;top:0;z-index:3;width:48px;aspect-ratio:auto;height:calc((clamp(230px,23vw,330px))*9/16);display:grid;place-items:center;color:#fff;opacity:0;transition:opacity .2s;background:linear-gradient(90deg,rgba(0,0,0,.6),transparent)}
.rowbox .arr.r{right:calc(var(--gut)*-1);background:linear-gradient(270deg,rgba(0,0,0,.6),transparent)}.rowbox .arr.l{left:calc(var(--gut)*-1)}
.rowbox .arr svg{width:28px;height:28px;stroke-width:2.2}
@media (hover:hover){.rowbox:hover .arr:not([disabled]){opacity:1}}
@media (hover:none),(max-width:760px){.rowbox .arr{display:none}}
.mon.pgm .mon-b{box-shadow:0 30px 80px -40px color-mix(in srgb,var(--c,var(--acc)) 70%,transparent)}
.mon-b>*{animation:fade .5s both}@keyframes fade{from{opacity:0}}
.toast{border:1px solid rgb(var(--o)/.08)}

/* tablette */
@media (max-width:1100px){.stage.chat-on{grid-template-columns:minmax(0,1fr)}.chat{position:static;height:480px;max-height:none}.wall{grid-template-columns:repeat(3,minmax(0,1fr))}.fiche{grid-template-columns:minmax(0,1fr)}}
/* téléphone : le menu passe en barre d'onglets en bas */
@media (max-width:760px){
  :root{--hd:54px;--tab:calc(58px + env(safe-area-inset-bottom,0px))}
  .hd-in{gap:10px}.logo{font-size:19px;flex:1 1 auto}.logo .mark{width:27px;height:27px}
  .nav{display:none}
  .tabs{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;height:var(--tab);padding:0 6px env(safe-area-inset-bottom,0px);background:rgb(var(--bgc)/.84);-webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px);border-top:1px solid var(--hair)}
  .tabs a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:500;color:var(--dim);min-width:0}
  .tabs a svg{width:22px;height:22px}.tabs a[aria-current]{color:var(--tx)}
  .onair{padding:6px 10px;font-size:12.5px}.onair:not(.on){display:none}
  .watch{padding-left:0;padding-right:0;padding-top:0}
  .wall,.wall[data-layout=mosaique]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}.wall[data-layout=mosaique] .mon.pgm{grid-column:1/-1}.pgm .mon-b,.wall[data-layout=mosaique] .pgm .mon-b{max-height:none;border-radius:0}
  .wall[data-layout=solo],.wall[data-n="1"]{grid-template-columns:minmax(0,1fr)}
  .mon.pgm .mon-f{padding-left:16px;padding-right:16px;padding-top:12px}
  .wall{padding:0 16px}.wall .mon.pgm{margin:0 -16px}
  .swap{opacity:1;background:none}.swap span{display:none}
  .pgm .off .av{width:56px;height:56px}.pgm .off b{font-size:17px}.pgm .off small{font-size:13.5px}
  .chat{margin:0 16px;height:440px;max-height:none}
  .bar{margin:14px 16px 0}.bar .seg,.bar .tip{display:none}.bar .tools{margin-left:0}
  .idle{margin:12px 16px 0}
  .slot{grid-template-columns:70px minmax(0,1fr);gap:4px 14px;padding:14px 0}.slot .act{grid-column:2}.slot .act:empty{display:none}.slot .hr{font-size:16px}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.card b{font-size:14px}
  .row{grid-auto-columns:70vw}
  .chan{padding:20px;border-radius:18px}
  .toast{padding:10px 10px 10px 14px;gap:10px}
  .ft-in{flex-direction:column}
  .arow label,.arow label.s,.arow label.m{flex:1 1 130px}.arow .tools{margin-left:0}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto}}
#pfilter{border-radius:22px}
