:root{--ground:#E8EDEA;--surface:#F5F8F6;--ink:#10302A;--muted:#4A645F;--hero:#123D34;--gold:#E3B35A;--gold2:#D9A441;--goldtext:#7A5200;--line:#CBD6D1;--soft:#DCE5E0;--seg:#D7E1DC;--ok:#2F8F6B}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--ground);color:var(--ink);font-family:'Figtree',system-ui,sans-serif;-webkit-text-size-adjust:100%}
body{overscroll-behavior:none}
html,body,#app{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
input,select,textarea{font-size:16px}
button,input,select{font-family:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
#app{position:fixed;inset:0;max-width:520px;margin:0 auto;display:flex;flex-direction:column;background:var(--ground);overflow:hidden}
#view{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:calc(env(safe-area-inset-top) + 16px) 20px calc(env(safe-area-inset-bottom)*.55 + 88px);display:flex;flex-direction:column;gap:14px;outline:none}
#nav{position:absolute;left:14px;right:14px;bottom:calc(env(safe-area-inset-bottom)*.55 + 8px);height:64px;z-index:15;padding:5px;border-radius:34px;background:rgba(245,248,246,.55);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);border:1px solid rgba(255,255,255,.7);box-shadow:0 8px 28px rgba(16,48,42,.18),inset 0 1px 0 rgba(255,255,255,.6)}
#nbtns{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:100%}
.nbub{position:absolute;top:5px;bottom:5px;left:5px;width:calc((100% - 10px)/5);border-radius:28px;background:rgba(255,255,255,.75);box-shadow:0 2px 10px rgba(16,48,42,.15),inset 0 0 0 1px rgba(255,255,255,.8);transition:transform .42s cubic-bezier(.34,1.45,.5,1)}
#nav button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:0;height:100%;color:var(--muted);font-size:11px;font-weight:500;position:relative;white-space:nowrap}
#nav button[aria-current=page]{color:var(--ink);font-weight:600}
#nav svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
h1{margin:0;font-family:'Bricolage Grotesque',sans-serif;font-size:30px;font-weight:700;letter-spacing:-.02em;line-height:1.1}
h2{margin:0;font-family:'Bricolage Grotesque',sans-serif;font-size:26px;font-weight:700;letter-spacing:-.02em}
.tnum{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:6px 4px 0}
.card{background:var(--surface);border-radius:22px;padding:4px 6px}
.row{display:flex;align-items:center;gap:10px;min-height:56px;border-top:1px solid var(--soft)}
.row:first-child{border-top:0}
.seg{display:grid;gap:4px;padding:4px;background:var(--seg);border-radius:16px}
.seg button{height:44px;border:0;border-radius:12px;font-size:14px;font-weight:600;background:transparent;color:var(--ink)}
.seg button[aria-pressed=true],.seg button[aria-selected=true]{background:var(--hero);color:#F2F6F4}
.btn{height:44px;padding:0 16px;border:0;border-radius:22px;background:var(--hero);color:#F2F6F4;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.btn svg,.ico{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.btn.light{background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:0;width:44px;justify-content:center}
.btn.soft{background:#DCE7E2;color:var(--ink)}
.btn.full{width:100%;justify-content:center;height:48px;font-size:16px}
.head{display:flex;flex-direction:column;gap:10px;padding-bottom:6px}
.head .top{display:flex;align-items:center;gap:10px}
.city{display:flex;align-items:center;gap:6px;flex:1;min-width:0;font-family:'Bricolage Grotesque',sans-serif;font-size:20px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dateline{font-size:14.5px;font-weight:600;line-height:1.25}
.status{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:6px}
.dot{width:7px;height:7px;border-radius:50%;background:var(--ok);flex:none}
.dot.busy{background:var(--gold2)}.dot.bad{background:#B3452F}
.hero{background:var(--hero);color:#F2F6F4;border-radius:28px;padding:18px 22px 14px;display:flex;flex-direction:column;gap:2px}
.hero .eb{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.hero .pill{font-size:12px;font-weight:600;color:var(--hero);background:var(--gold);border-radius:999px;padding:3px 10px}
.hero .line{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:4px;container-type:inline-size}
.hero .nm{display:flex;align-items:baseline;gap:10px;min-width:0;font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(22px,10.2cqw,40px);font-weight:700;letter-spacing:-.02em;line-height:1.1}
.hero .ar{font-family:'Amiri',serif;font-size:.6em;color:var(--gold);font-weight:400}
.hero .tm{flex:none;font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(22px,10.2cqw,40px);font-weight:600;letter-spacing:-.02em;line-height:1.1}
.hero .cd{font-size:20px;font-weight:500;color:var(--gold);margin-top:2px}
.arc{margin-top:8px}
.arc .lbl{display:flex;justify-content:space-between;font-size:13px;color:#B9CCC5;margin-top:2px}
.pr{display:flex;align-items:center;gap:10px;min-height:58px;padding:0 6px 0 16px;border-radius:18px}
.pr.cur{background:#D4E0DA}
.pr .n{flex:1;font-size:17px;font-weight:600}
.pr .n small{display:block;font-size:12px;color:var(--muted);font-weight:500}
.pr .t{font-family:'Bricolage Grotesque',sans-serif;font-size:22px;font-weight:600}
.bell{width:44px;height:44px;border:0;background:transparent;display:flex;align-items:center;justify-content:center;color:var(--muted)}
.bell[aria-pressed=true]{color:var(--hero)}
.bell svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bell[aria-pressed=true] svg{fill:var(--gold)}
.switch{flex:none;width:56px;height:44px;border:0;background:transparent;display:flex;align-items:center;justify-content:flex-end;padding:0}
.switch i{position:relative;display:block;width:44px;height:26px;border-radius:13px;background:#A9BAB3;transition:background .15s}
.switch i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--surface);transition:left .15s}
.switch[aria-checked=true] i{background:var(--hero)}
.switch[aria-checked=true] i::after{left:21px}
.radio{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid #7C918B;display:flex;align-items:center;justify-content:center}
[aria-pressed=true]>.radio,.radio.on{border-color:var(--hero)}
[aria-pressed=true]>.radio::after,.radio.on::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--hero)}
.opt{display:flex;align-items:center;gap:12px;min-height:60px;padding:0 12px;border:0;border-top:1px solid var(--soft);background:transparent;text-align:left;width:100%}
.opt:first-child{border-top:0}
.opt b{display:block;font-size:16px}.opt small{display:block;font-size:13px;color:var(--muted)}
.opt .tx{flex:1;min-width:0}
.field{width:100%;height:48px;border:1px solid var(--line);border-radius:24px;background:var(--surface);font-size:16px;padding:0 18px}
.select{position:relative;flex:1}
.select select{appearance:none;-webkit-appearance:none;width:100%;height:48px;border:1px solid var(--line);border-radius:14px;background:var(--surface);font-size:17px;font-weight:600;padding:0 44px 0 16px}
.select svg{position:absolute;right:14px;top:15px;width:18px;height:18px;fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.sheet{position:absolute;inset:0;background:var(--ground);display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 18px) 20px 0;gap:14px;z-index:20}
.sheet .scroll{flex:1;min-height:0;overflow-y:auto;margin-bottom:calc(env(safe-area-inset-bottom) + 16px)}
.ann{position:absolute;inset:0;z-index:30;background:rgba(16,48,42,.55);display:flex;align-items:flex-end;padding:16px 16px calc(env(safe-area-inset-bottom) + 16px)}
.ann .box{width:100%;background:var(--surface);border-radius:28px;padding:22px 20px 20px;display:flex;flex-direction:column;gap:14px}
.ann .tt{font-family:'Bricolage Grotesque',sans-serif;font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.12;white-space:nowrap}
.evrow{display:flex;gap:14px;align-items:center;min-height:64px;border-top:1px solid var(--soft);padding:6px 12px}
.evrow:first-child{border-top:0}
.evd{flex:none;width:50px;text-align:center;font-family:'Bricolage Grotesque',sans-serif}
.evd b{display:block;font-size:24px;line-height:1}.evd span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.compass{display:flex;justify-content:center;position:relative}
.flag{margin:auto -20px calc(-20px);min-height:84px;flex:1;display:flex}
.flag svg{width:100%;height:100%;display:block}
.toast{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom) + 84px);transform:translateX(-50%);background:var(--hero);color:#F2F6F4;border-radius:999px;padding:10px 18px;font-size:14px;z-index:40;max-width:90%}
.note{font-size:13px;color:var(--muted);line-height:1.45;padding:0 4px}
table.wk{width:100%;border-collapse:collapse;font-size:14px}
table.wk th{font-weight:600;color:var(--muted);font-size:12px;text-align:left;padding:8px 4px}
table.wk td{padding:2px 4px;border-top:1px solid var(--soft)}
@media (prefers-color-scheme:dark){}
.seg.sm button{font-size:12.5px;padding:0 2px;white-space:nowrap}

#view.home{overflow:hidden}
#view.home .list{flex:1 0 232px;display:flex;flex-direction:column}
#view.home .list .pr{flex:1;min-height:44px}
#nav button[aria-current=page] svg{stroke:var(--gold2)}
#nav button[aria-current=page] span{color:var(--ink)}

.fw{position:relative}.fw .field{padding-right:48px}
.clr{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:50%;background:#DCE7E2;color:var(--ink);font-size:15px;line-height:1;cursor:pointer}
.clr[hidden]{display:none}
.evhome{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;cursor:pointer;flex:none;background:var(--hero);color:#F2F6F4;border-radius:28px}
.evhome>div:first-child{flex:1;min-width:0}
.evhome .eyebrow{color:var(--gold);padding:0;font-size:11.5px}
.evhome .evn{font-family:'Bricolage Grotesque',sans-serif;font-size:21px;font-weight:700;letter-spacing:-.01em;margin-top:2px;line-height:1.15}
.evhome .evw{font-size:15px;font-weight:600;color:var(--gold);white-space:nowrap;text-align:right}
.btn.big{width:100%;height:68px;border-radius:34px;justify-content:center;font-size:20px;background:var(--gold);color:var(--hero)}
.ann.alarm{z-index:35}
.qok{background:#0B6B3A;color:#fff;text-align:center;font-family:'Bricolage Grotesque',sans-serif;font-size:26px;font-weight:700;padding:10px 16px;letter-spacing:-.01em}
@media (max-height:700px){.evhome{padding:9px 18px}.evhome .evn{font-size:18px}#view.home{gap:10px}}

.sug{padding:4px 6px;margin-top:-6px}
.rt{display:flex;align-items:center;justify-content:center;height:52px;border-radius:26px;font-size:17px;font-weight:600;text-decoration:none}

.selbtn{position:relative;display:inline-flex;flex:none}
.rsel{position:absolute;inset:0;width:100%;height:100%;opacity:0;font-size:16px;border:0}
.seg button{white-space:nowrap;padding:0 2px}

.datepick{position:relative;flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;font-weight:600;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:0 12px;cursor:pointer}
.datepick .dl{font-size:14px;line-height:1.2}
.datepick input{position:absolute;inset:0;width:100%;height:100%;opacity:0;font-size:16px;border:0;cursor:pointer}
#view:not(.home):not(.qibla)>*{flex-shrink:0}

#view.qibla{overflow:hidden;gap:10px}
#view.qibla>*{flex-shrink:0}
#view.qibla .compass{flex:1 1 0;min-height:0}
#view.qibla .compass svg{height:100%;width:auto;max-width:100%}
#view.qibla .btn.full{height:40px;font-size:14px}
#view.qibla #qhint{min-height:56px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}
#view.qibla .flag{flex:none;height:96px;min-height:0;margin:0 -20px}

.datepick .dl{display:block}.datepick .dh{font-weight:500;font-size:12.5px;color:var(--muted)}
table.wk td small{display:block;font-size:10.5px;font-weight:600;color:var(--goldtext);line-height:1.15;max-width:92px;white-space:normal}
table.wk tr.evday td{background:#F6E7C4}
table.wk tr.evday td:first-child{border-radius:12px 0 0 12px}
table.wk tr.evday td:last-child{border-radius:0 12px 12px 0}
/* Orientation : l'interface reste en portrait même si le téléphone passe en paysage */
@media (orientation:landscape) and (pointer:coarse) and (max-height:500px){
  html[data-rot="90"] #app{inset:auto;top:0;left:0;width:100vh;height:100vw;max-width:none;margin:0;transform-origin:0 0;transform:translateY(100vh) rotate(-90deg)}
  html[data-rot="-90"] #app{inset:auto;top:0;left:0;width:100vh;height:100vw;max-width:none;margin:0;transform-origin:0 0;transform:translateX(100vw) rotate(90deg)}
}

.wkcard{padding:4px 12px}
#view.times{overflow:hidden;gap:10px}
#view.times>*{flex-shrink:0}
#view.times .wkcard{flex:1 1 0;min-height:0;display:flex;flex-direction:column;justify-content:stretch;overflow:hidden}
#view.times table.wk{height:100%}
table.wk th{padding:2px 4px}
table.wk td small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9.5px;max-width:84px}
#view.times table.wk{width:100%;table-layout:fixed}
#view.times table.wk td:first-child,#view.times table.wk th:first-child{width:24%}
#view.times table.wk td,#view.times table.wk th{padding-left:2px;padding-right:2px;font-size:13.5px}
#view.times .wkcard{align-items:stretch}
#view.times table.wk th{font-size:11px;letter-spacing:-.01em;overflow:hidden;text-overflow:clip}

.mref{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--muted);margin-top:6px}
.mref .ico{width:16px;height:16px;flex:none}
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tcard{padding:12px 6px;text-align:center}
.tcard .tn{font-size:12px;font-weight:600;color:var(--muted)}
.tcard .tt{font-family:'Bricolage Grotesque',Figtree,sans-serif;font-size:22px;font-weight:700;margin-top:3px}
.tcard .ts{font-size:11px;color:var(--muted);margin-top:1px;min-height:14px}

#view.times .daycard{flex:1 1 0;min-height:0;display:flex;flex-direction:column;justify-content:space-around}
#view.times .daycard .pr{flex:1;min-height:34px}
#view.times .trio .tcard{padding:8px 6px}

.wxchip{background:#0A2923;border-radius:28px;padding:8px 16px;box-shadow:0 0 0 2px var(--gold2);color:#F2F6F4}
.wxb{display:flex;align-items:center;gap:10px}
.wxt{font-family:'Bricolage Grotesque',sans-serif;font-size:24px;font-weight:700;color:#F2C14E;line-height:1}
.wxl{font-size:12px;color:#B9CCC5;margin-top:2px}
.chips{display:flex;gap:10px;flex:none}
.chips .wxchip{flex:1;min-width:0;padding:8px 14px;gap:9px}
.wxchip svg{flex:none;width:30px;height:30px}
.jchip .jt{font-family:'Bricolage Grotesque',sans-serif;font-size:24px;font-weight:700;color:#F2C14E;line-height:1.05}
.jchip .js{font-size:12px;opacity:.85;white-space:nowrap}
.jchip .jic{display:flex}
.sunrays{transform-box:fill-box;transform-origin:center;animation:spin 16s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
#view.home .hero.big{flex:1 1 0;min-height:230px}
#view.home .hero.big .arc{flex:1;min-height:0;margin-top:6px;display:flex}
#view.home .hero.big .lbl{display:flex;justify-content:space-between;font-size:13px;color:#B9CCC5}

/* ===== Fond dégradé vert comme sur la télé ===== */
html,body{background:#0F3A31}
#app{background:linear-gradient(180deg,#207260 0%,#175040 50%,#0F3A31 100%)}
#view{color:#F2F6F4}
.card,.select,.selbtn2,.seg,.datepick,.btn.soft,.btn.light,.box,.field{color:var(--ink)}
h1,h2{color:#F4F8F6}
.eyebrow{color:var(--gold)}
.note{color:#C6D8D1}
.card .note{color:var(--muted)}
.head .city,.head .dateline{color:#F4F8F6}
.status,.mref{color:#C6D8D1}
.hero,.evhome{background:#0A2923;box-shadow:0 10px 30px rgba(0,0,0,.28)}
.card{box-shadow:0 6px 20px rgba(0,0,0,.14)}
#view .muted,#view .gl{color:#C6D8D1}
#view .card .muted,#view .card .gl,#view .box .muted,#view .opt .muted{color:var(--muted)}
#view .evhome .muted{color:var(--gold)}
#nav button{color:#DCEAE4}
#nav button[aria-current=page]{color:var(--ink)}
#nav{background:rgba(8,38,32,.72);border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 28px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.12)}
#nav button{color:#E6F0EC}
.ann .box .note,.ann .box .status,.ann .box .muted{color:var(--muted)}
.ann .box{color:var(--ink)}
.alname{flex:1;min-width:0;text-align:left;border:0;background:transparent;padding:0;color:inherit;font:inherit}
#view{overscroll-behavior-y:contain}
.card.qok{color:#fff}
html,body{background:#217460}
/* bande fixe d'une seule couleur en haut : l'iPhone en tire la couleur de son bandeau */
/* plein écran : l'iPhone raccourcit la zone fixe du bas ; on étire l'appli jusqu'au vrai bas de l'écran */
html,body{height:100vh;min-height:0;overflow:hidden;background:#0F3A31}
#app{position:absolute;top:0;bottom:auto;height:100vh}

/* v56 Événements */
.evtop{display:flex;justify-content:space-between;align-items:baseline}.evtop h1{margin:0}
.evar{font-size:26px;color:#E3B24A}
.evhero{position:relative;overflow:hidden;background:#0A2923}
.evhero .evt{font-family:'Bricolage Grotesque',sans-serif;font-size:27px;font-weight:700;line-height:1.15;margin-top:6px;color:#fff;max-width:230px}
.evhero .evbig{font-family:'Bricolage Grotesque',sans-serif;font-size:38px;font-weight:700;color:#E3B24A;margin-top:8px}
.evhero .evsub{font-size:14px;color:#B9CCC5;margin-top:2px}
.evmoon{position:absolute;right:-8px;top:10px;width:110px;height:110px;opacity:.95}
.evbar{height:6px;border-radius:3px;background:rgba(255,255,255,.12);margin-top:14px}.evbar i{display:block;height:100%;border-radius:3px;background:#E3B24A}
.ychips{display:flex;gap:10px;overflow-x:auto;flex:none;scrollbar-width:none}.ychips::-webkit-scrollbar{display:none}
.ychip{flex:none;padding:9px 18px;border-radius:999px;border:1.5px solid rgba(227,178,74,.35);background:transparent;color:#E3B24A;font:700 15px 'Hanken Grotesk',sans-serif}
.ychip[aria-pressed="true"]{background:#E3B24A;border-color:#E3B24A;color:#0A2923}
.evlist{background:#0A2923;border-radius:24px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.2);padding:0}
.evlist .evrow{border-top:1px solid rgba(255,255,255,.08);padding:12px 14px;min-height:0}.evlist .evrow:first-child{border-top:0}
.evlist .evd{width:54px;height:58px;border-radius:16px;border:1.5px solid #E3B24A;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#E3B24A}
.evlist .evd span{color:#E3B24A;font-size:11px}
.evn2{font-weight:700;font-size:16px;color:#fff}.evs2{font-size:13px;color:#B9CCC5;margin-top:2px}.evh2{font-size:12px;color:#E3B24A;margin-top:2px}.evstar{color:#E3B24A}

/* v57 TV */
.tvhome{background:#0A2923}
.livedot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#e0463a;margin-right:7px;vertical-align:middle}
.tvplay{flex:none;width:44px;height:44px;border-radius:50%;border:1.5px solid #E3B24A;display:flex;align-items:center;justify-content:center;color:#E3B24A}
.tvplay svg{width:18px;height:18px}
.tvbox{position:relative;aspect-ratio:16/9;border-radius:24px;overflow:hidden;background:linear-gradient(160deg,#1a2a28,#06130f 60%,#2b2410);box-shadow:0 10px 30px rgba(0,0,0,.35);flex:none}
.tvbox video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;z-index:1}
.tvlive{position:absolute;left:14px;top:12px;z-index:2;background:#c0392b;color:#fff;font-weight:700;font-size:11px;letter-spacing:.08em;padding:4px 10px;border-radius:999px;pointer-events:none}
.tvlive .livedot{background:#fff;width:7px;height:7px}
.tvname{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:26px 14px 10px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;font-weight:700;font-size:14px;pointer-events:none}
.tverr{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;color:#fff;background:rgba(0,0,0,.6);font-size:14px}
.tvlist{flex:none;overflow:auto;min-height:0}
.tvrow{display:flex;align-items:center;gap:14px;width:100%;padding:12px 14px;background:transparent;border:0;border-top:1px solid rgba(255,255,255,.08);color:inherit;font:inherit;cursor:pointer}
.tvrow:first-child{border-top:0}
.tvbtn{flex:none;width:44px;height:44px;border-radius:50%;border:1.5px solid #E3B24A;display:flex;align-items:center;justify-content:center;color:#E3B24A}
.tvbtn svg{width:16px;height:16px}
#view.home .tvhome{flex:none;padding:10px 20px}

/* v58 TV contrôles + orientation */
.tvctl{position:absolute;right:10px;bottom:10px;z-index:4;display:flex;gap:10px}
.tvc{width:52px;height:52px;border-radius:50%;border:1.5px solid #E3B24A;background:rgba(10,41,35,.78);color:#E3B24A;display:flex;align-items:center;justify-content:center;padding:0}
.tvc svg{width:26px;height:26px}
.tvname{right:190px;padding-right:0;bottom:0}
.tvbox video{pointer-events:none}
html.tvland .tvbox{position:fixed;inset:0;z-index:200;border-radius:0;aspect-ratio:auto;width:100vw;height:100vh;box-shadow:none}
html.tvland #nav,html.tvland nav{display:none!important}

/* v59 TV : contrôles qui s'effacent, lecteur fixe */
.tvctl,.tvname{opacity:0;transition:opacity .3s;pointer-events:none}
.tvbox.tvshow .tvctl,.tvbox.tvshow .tvname{opacity:1}
.tvbox.tvshow .tvctl{pointer-events:auto}
#view.tv{display:flex;flex-direction:column;overflow:hidden}
#view.tv>*{flex:none}
#view.tv .tvlist{flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

/* v60 */
.evhome:not(.tvhome){flex-direction:column;align-items:flex-start;gap:2px}
.evhome:not(.tvhome) .evn{white-space:nowrap;font-size:20px}
.evhome:not(.tvhome) .evw{text-align:left;margin-top:0}
.tvctl{gap:8px}.tvc{width:48px;height:48px}.tvname{right:215px}
html.tvland .tvbox video,html.tvfs .tvbox video{object-fit:cover}
@media (orientation:portrait){
  html.tvfs .tvbox{position:fixed;top:0;left:0;width:100vh;height:100vw;aspect-ratio:auto;border-radius:0;z-index:200;transform-origin:0 0;transform:translateX(100vw) rotate(90deg);box-shadow:none}
}
@media (orientation:landscape){
  html.tvfs .tvbox{position:fixed;inset:0;width:100vw;height:100vh;aspect-ratio:auto;border-radius:0;z-index:200;box-shadow:none}
}
#tvmini{position:absolute;left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom)*.55 + 84px);z-index:25;display:flex;align-items:center;gap:6px;background:#0A2923;border:1.5px solid #E3B24A;border-radius:999px;padding:6px 8px 6px 16px;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.tvmn{flex:1;min-width:0;display:flex;align-items:center;background:transparent;border:0;color:#fff;font:600 14px 'Figtree',sans-serif;text-align:left;padding:0}
.tvmt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tvmb{flex:none;width:38px;height:38px;border-radius:50%;border:1.5px solid #E3B24A;background:transparent;color:#E3B24A;display:flex;align-items:center;justify-content:center;padding:0}
.tvmb svg{width:18px;height:18px}

/* v61 */
html.tvland .tvbox video,html.tvfs .tvbox video{object-fit:contain;transform:scale(1.1)}
.tvname{right:140px}

/* v62 */
.tvname{right:200px}

/* v64 accueil */
.hrow2{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.hrow2 .status{text-align:right;align-items:flex-start;max-width:48%;line-height:1.3}
.hrow2 .status .dot{margin-top:5px}
.head{gap:6px;padding-bottom:0}
#view.home .mref{margin:-4px 0 0;padding:0 4px;flex:none}
.hrow2 .dateline{white-space:nowrap;flex:none}
.hrow2 .status{flex:1;max-width:none;min-width:0}

/* v66 langues */
.langgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.langgrid button{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:18px;border:1.5px solid rgba(227,178,74,.35);background:transparent;color:#F2F6F4;font:600 15px 'Figtree',sans-serif;text-align:start}
.langgrid button[aria-pressed="true"]{background:#E3B24A;border-color:#E3B24A;color:#0A2923}
.langgrid .lf{font-size:22px}
#nav{direction:ltr}
html[dir="rtl"] body{direction:rtl}
html[dir="rtl"] .btn.light svg{transform:scaleX(-1)}
html[dir="rtl"] .tnum,html[dir="rtl"] .tm,html[dir="rtl"] .cd{direction:ltr;unicode-bidi:isolate}
html[dir="rtl"] .arc,html[dir="rtl"] .compass,html[dir="rtl"] .flag,html[dir="rtl"] .tvbox{direction:ltr}

html[dir="rtl"] .evmoon{right:auto;left:-8px;opacity:.6}

/* v70 : fonds clairs en dégradé vert → or, comme sur la télé */
:root{--pg:linear-gradient(135deg,#8FCDB4 0%,#BFDDB5 52%,#E8CF8C 100%)}
.card,.datepick,.btn.light,.select select,.field,.ann .box{background:var(--pg);border-color:transparent}
.seg{background:linear-gradient(135deg,#9AD0B9,#E3CB8B)}
.btn.soft{background:rgba(255,255,255,.38)}

/* v72 : saisie lisible sur le fond dégradé */
.field,input.field{color:#10302A;font-weight:600}
.field::placeholder,input::placeholder{color:#3F5C55;opacity:1;font-weight:500}

/* v73 compte à rebours iftar */
.iftar{position:relative;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px 18px;flex:none;background:var(--hero);color:#F2F6F4;border-radius:28px;overflow:hidden}
.iftar .eyebrow{color:var(--gold);font-size:11.5px}
.iftar .ifs{font-size:14px;opacity:.8;margin-top:2px}
.iftar .ifc{font-family:'Bricolage Grotesque',sans-serif;font-size:20px;font-weight:700;color:var(--gold);white-space:nowrap}
.iftar .ifbar{position:absolute;left:20px;right:20px;bottom:8px;height:4px;border-radius:2px;background:rgba(255,255,255,.18);overflow:hidden}
.iftar .ifbar i{display:block;height:100%;background:var(--gold);border-radius:2px}
@media (max-height:700px){.iftar{padding:9px 18px 15px}.iftar .ifc{font-size:20px}}

/* v78 signature */
.devby{flex:none;text-align:center;font-size:11.5px;letter-spacing:.02em;color:#C9D8D2;opacity:.75;padding:6px 0 2px;margin-top:auto}

/* v85 page Calcul figée */
#view.fixed{overflow:hidden;gap:10px}
#view.fixed>*{flex-shrink:0}
#view.fixed{gap:8px}
#view.fixed .hero{padding:12px 16px!important;gap:4px!important}
#view.fixed .hero .tnum{font-size:24px!important}
#view.fixed .tcard{padding:8px 6px}
#view.fixed .note{margin:0}
#view.fixed .seg button{min-height:44px}

/* texte de position aligne a droite, bord droit = bord de la bulle Localiser */
.hrow2 .status{justify-content:flex-end;text-align:right}
.hrow2 .status span:last-child{text-align:right}

/* Première installation : langue → lieu → prêt */
.setupw{position:absolute;inset:0;z-index:15;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 18px) 22px calc(env(safe-area-inset-bottom) + 14px);background:linear-gradient(160deg,#0a3a2b 0%,#14614a 55%,#1f8a5f 100%);color:#f4faf6}
.sw-top{display:flex;align-items:center;gap:10px}
.sw-top img{width:32px;height:32px;border-radius:50%}
.sw-top b{font-family:'Bricolage Grotesque',sans-serif;font-size:21px}
.sw-st{margin-inline-start:auto;font-size:13px;color:#bfe3d0}
.sw-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;justify-content:center;gap:12px;padding:10px 0}
.sw-ph{width:100%;aspect-ratio:16/9;border-radius:22px;background:#0B3D2E url(../assets/hagia-sophia-v3.jpg) center/cover no-repeat;border:1.5px solid rgba(255,255,255,.3);box-shadow:0 14px 40px rgba(0,0,0,.4);flex:none}
.sw-nm{font-family:'Bricolage Grotesque',sans-serif;font-size:20px;font-weight:700;color:#fbe7bb;text-align:center}
.setupw h1{margin:4px 0 0;font-family:'Bricolage Grotesque',sans-serif;font-size:30px;font-weight:700;color:#f4faf6}
.sw-sub{font-size:14px;color:#cfe9db}
.sw-lab{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#bfe3d0;margin-top:4px}
.sw-btn,.sw-sel{border:0;border-radius:26px;min-height:52px;font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 20px;font-family:inherit}
.sw-btn.pos{background:#f4faf6;color:#0f4d39}
.sw-btn.pos svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2}
.sw-sel{background:rgba(255,255,255,.14);color:#f4faf6;justify-content:space-between;font-weight:500;border-radius:16px}
.sw-sel b{font-weight:700}
.sw-act{display:flex;justify-content:flex-end;margin-top:6px}
.sw-btn.go{background:#E3B35A;color:#10302A;min-width:200px}
.sw-dots{display:flex;gap:8px;justify-content:center;padding-top:6px}
.sw-dots i{width:9px;height:9px;border-radius:5px;background:rgba(255,255,255,.35)}
.sw-dots i.on{width:30px;background:#E3B35A}
.sw-cred{text-align:center;font-size:13px;color:rgba(244,250,246,.75);padding-top:8px}
.sw-body .select{flex:none}
