/* ===== Langues : sélecteurs, écran de bienvenue, effets, persan (RTL) ===== */
:root{--i18n-ease:cubic-bezier(.2,.8,.2,1)}

/* ---- Persan : direction naturelle du texte + police adaptée ---- */
html[data-lang=fa] body :is(h1,h2,h3,h4,p,li,dd,dt,small,b,strong,em,span,label,a,button,td,th,time,figcaption,blockquote,div){unicode-bidi:plaintext}
html[data-lang=fa] body :is(input,textarea){unicode-bidi:plaintext;text-align:start}
html[data-lang=fa] body,html[data-lang=fa] body *:not(.term):not(.term *):not(kbd):not(pre):not(code):not(.mono):not(.post-log *){font-family:'Vazirmatn','DM Sans','Ubuntu',system-ui,sans-serif!important;letter-spacing:0!important}
html[data-lang=fa] :is(h1,h2,h3){line-height:1.25!important}
html[data-lang=fa] .term,html[data-lang=fa] .term *{unicode-bidi:normal}
html[data-lang=fa] .term .tl{unicode-bidi:plaintext}
html[data-lang=fa] .term :is(.tl.dim,.tl.r,.tl.g,span.dim,span.y){font-family:'Vazirmatn',system-ui,sans-serif!important}
.i18n-list .i18n-n b,.oobe-card b{unicode-bidi:isolate!important;direction:ltr;text-align:left!important}

/* ---- Effet de changement : onde + salutation ---- */
.i18n-ripple{position:fixed;inset:0;z-index:99990;pointer-events:none;display:grid;place-items:center;
 background:radial-gradient(circle at var(--x) var(--y),rgba(255,255,255,.18),rgba(120,140,255,.12) 30%,transparent 60%);
 clip-path:circle(0 at var(--x) var(--y));animation:i18nWave 1.2s var(--i18n-ease) forwards}
.i18n-ripple b{font:800 clamp(3rem,11vw,9rem)/1 'Vazirmatn','DM Sans',system-ui,sans-serif;letter-spacing:-.04em;color:#fff;text-shadow:0 10px 60px rgba(0,0,0,.45);opacity:0;animation:i18nHello 1.2s var(--i18n-ease) forwards}
@keyframes i18nWave{0%{clip-path:circle(0 at var(--x) var(--y));opacity:1}60%{opacity:1}100%{clip-path:circle(150vmax at var(--x) var(--y));opacity:0}}
@keyframes i18nHello{0%{opacity:0;transform:scale(.7);filter:blur(12px)}35%{opacity:1;transform:none;filter:none}75%{opacity:1}100%{opacity:0;transform:scale(1.08) translateY(-10px);filter:blur(6px)}}

/* ---- Liste de langues (réutilisée partout) ---- */
.i18n-list{display:grid;gap:4px}
.i18n-list button{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;width:100%;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:inherit;cursor:pointer;text-align:start;font:inherit;transition:background .15s,transform .2s var(--i18n-ease)}
.i18n-list button:hover,.i18n-list button:focus-visible{background:rgba(127,127,127,.16);transform:translateX(3px);outline:none}
.i18n-list button.on{background:var(--i18n-acc-soft,rgba(80,130,255,.2))}
.i18n-g{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;font:700 17px 'Vazirmatn','DM Sans',system-ui,sans-serif;background:rgba(127,127,127,.14);transition:transform .3s var(--i18n-ease)}
.i18n-list button:hover .i18n-g{transform:rotate(-8deg) scale(1.08)}
.i18n-list button.on .i18n-g{background:var(--i18n-acc,#4b8bc5);color:#fff}
.i18n-n b{display:block;font-size:14px}.i18n-n small{display:block;font-size:11px;opacity:.65}
.i18n-k{font:600 11px 'IBM Plex Mono',ui-monospace,monospace;opacity:.7}
.i18n-list button.on .i18n-k{color:var(--i18n-acc,#4b8bc5);opacity:1;font-size:15px}

/* ---- Popovers ---- */
.i18n-pop{position:fixed;z-index:99000;width:290px;padding:10px;border-radius:16px;font-family:'DM Sans',system-ui,sans-serif;box-shadow:0 24px 70px rgba(0,0,0,.45);backdrop-filter:blur(22px)}
.i18n-pop[hidden]{display:none}
.i18n-pop.in{animation:i18nPop .32s var(--i18n-ease)}
@keyframes i18nPop{from{opacity:0;transform:translateY(10px) scale(.96)}}
.i18n-head{display:flex;align-items:center;gap:9px;padding:6px 8px 10px;font-size:13px}
.i18n-head span{display:grid;font-size:18px;animation:i18nSpin 12s linear infinite}
@keyframes i18nSpin{to{transform:rotate(360deg)}}
.i18n-foot{padding:10px 8px 4px;margin-top:6px;border-top:1px solid rgba(127,127,127,.2);font-size:11px;opacity:.7}
.i18n-pop.dark{background:rgba(14,16,28,.9);color:#eef0fb;border:1px solid rgba(255,255,255,.12)}
.i18n-pop.win{background:rgba(243,247,252,.92);color:#17304d;border:1px solid rgba(255,255,255,.7);--i18n-acc:#2f7fd0;--i18n-acc-soft:rgba(47,127,208,.14);transform-origin:100% 100%}
.i18n-pop.win.in{animation:i18nWin .35s var(--i18n-ease)}
@keyframes i18nWin{from{opacity:0;transform:translateY(24px)}}
.i18n-pop.gnome{background:rgba(29,20,36,.96);color:#f5f1f7;border:1px solid rgba(255,255,255,.12);border-radius:20px;--i18n-acc:var(--accent,#e95420);--i18n-acc-soft:rgba(233,84,32,.22)}

/* ---- Pastille (accueil / pages) ---- */
.i18n-pill{position:fixed;top:16px;right:16px;z-index:9000;display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border-radius:99px;border:1px solid rgba(255,255,255,.18);background:rgba(12,14,24,.55);color:#eef0fb;font:600 12px 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.06em;cursor:pointer;backdrop-filter:blur(12px);transition:transform .25s var(--i18n-ease),background .2s,border-color .2s;animation:i18nFadeIn .8s .6s both}
.i18n-pill svg{font-size:16px;transition:transform .6s var(--i18n-ease)}
.i18n-pill:hover,.i18n-pill.open{transform:translateY(-2px);background:rgba(40,46,80,.7);border-color:rgba(255,255,255,.35)}
.i18n-pill:hover svg,.i18n-pill.open svg{transform:rotate(200deg)}
.i18n-pill i{font-style:normal;font-size:10px;opacity:.7;transition:transform .25s}.i18n-pill.open i{transform:rotate(180deg)}
.i18n-pill.page{top:auto;bottom:80px}
@keyframes i18nFadeIn{from{opacity:0;transform:translateY(-8px)}}

/* ---- Windows : indicateur de langue dans la barre des tâches ---- */
.i18n-tray{position:absolute;top:50%;transform:translateY(-50%);display:grid;justify-items:center;gap:0;min-width:46px;height:42px;padding:3px 8px;border:0;border-radius:8px;background:transparent;color:#1b3351;cursor:pointer;line-height:1.1;transition:background .2s,transform .2s var(--i18n-ease)}
.i18n-tray b{font:600 12px 'DM Sans',system-ui,sans-serif;align-self:end}.i18n-tray small{font:500 10px 'DM Sans',system-ui,sans-serif;opacity:.7}
.i18n-tray:hover,.i18n-tray.open{background:#ffffffaa;transform:translateY(calc(-50% - 2px))}
.i18n-tray.open{box-shadow:inset 0 -2px 0 #2f7fd0}
@media(max-width:899px){.i18n-tray{right:auto!important;left:6px}}

/* ---- Ubuntu : indicateur de source de saisie ---- */
.i18n-right{display:flex;align-items:center;gap:4px}
.top .i18n-ind{display:inline-flex;align-items:center;gap:5px;font:600 12px var(--font,'Ubuntu',system-ui);text-transform:lowercase}
.i18n-ind i{font-style:normal;font-size:9px;opacity:.7}
.i18n-chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:4px}
.i18n-chips button{border:1px solid rgba(255,255,255,.2)!important;background:rgba(0,0,0,.2)!important;color:#fff!important;border-radius:99px!important;padding:5px 11px!important;width:auto!important;font:500 12px 'Vazirmatn','DM Sans',system-ui,sans-serif!important;cursor:pointer;transition:all .2s var(--i18n-ease)!important}
.i18n-chips button:hover{transform:translateY(-2px)}
.i18n-chips button.on{background:var(--accent,#e95420)!important;border-color:transparent!important}

/* ---- Écran de bienvenue (choix de la langue, 1re visite) ---- */
.i18n-oobe{position:fixed;inset:0;z-index:99500;display:grid;place-content:center;justify-items:center;gap:clamp(14px,3vh,26px);padding:24px;overflow:hidden;color:#f4f5fb;font-family:'DM Sans',system-ui,sans-serif;
 background:radial-gradient(900px 600px at 50% 35%,#172049 0,#07080f 70%);opacity:0;transition:opacity .6s,transform .8s var(--i18n-ease),filter .8s}
.i18n-oobe.in{opacity:1}
.i18n-oobe.out{opacity:0;transform:scale(1.08);filter:blur(10px);pointer-events:none}
.oobe-globe{position:absolute;left:50%;top:50%;width:min(80vmin,720px);aspect-ratio:1;transform:translate(-50%,-50%);transform-style:preserve-3d;perspective:1200px;opacity:.35;pointer-events:none}
.oobe-globe i{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(140,160,255,.45);animation:globe 18s linear infinite}
.oobe-globe i:nth-child(1){transform:rotateY(0deg)}.oobe-globe i:nth-child(2){transform:rotateY(30deg)}.oobe-globe i:nth-child(3){transform:rotateY(60deg)}.oobe-globe i:nth-child(4){transform:rotateY(90deg)}.oobe-globe i:nth-child(5){transform:rotateY(120deg)}.oobe-globe i:nth-child(6){transform:rotateY(150deg)}
.oobe-globe{animation:globeSpin 30s linear infinite}
.oobe-globe b{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(140,160,255,.25),transparent 60%);box-shadow:inset 0 0 80px rgba(120,140,255,.3)}
@keyframes globeSpin{to{transform:translate(-50%,-50%) rotateX(18deg) rotateY(360deg)}}
@keyframes globe{}
.oobe-hello{position:relative;height:clamp(4rem,12vw,8.5rem);width:min(90vw,900px);display:grid}
.oobe-hello span{grid-area:1/1;place-self:center;font:800 clamp(3.2rem,11vw,8rem)/1 'Vazirmatn','DM Sans',system-ui,sans-serif;letter-spacing:-.05em;background:linear-gradient(90deg,#9fb3ff,#fff,#ffb38a);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:0;transform:translateY(24px) scale(.96);filter:blur(12px);transition:opacity .7s,transform .7s var(--i18n-ease),filter .7s}
.oobe-hello span[lang=fa]{letter-spacing:0}
.oobe-hello span.on{opacity:1;transform:none;filter:none}
.oobe-sub{position:relative;display:grid;margin:0;min-height:1.6em;color:#b8bfdc;font-size:clamp(14px,1.6vw,17px)}
.oobe-sub span{grid-area:1/1;justify-self:center;opacity:0;transform:translateY(8px);transition:opacity .5s,transform .5s var(--i18n-ease);font-family:'Vazirmatn','DM Sans',system-ui,sans-serif}
.oobe-sub span.on{opacity:1;transform:none}
.oobe-grid{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,190px));gap:14px;perspective:1000px}
.oobe-card{position:relative;display:grid;justify-items:start;gap:4px;padding:18px 18px 16px;border-radius:20px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.02));color:#f4f5fb;text-align:start;cursor:pointer;backdrop-filter:blur(10px);font:inherit;
 transform:rotateX(var(--rx,0)) rotateY(var(--ry,0));transition:transform .25s ease-out,border-color .3s,box-shadow .3s,background .3s;animation:oobeIn .7s var(--i18n-ease) both;animation-delay:calc(.35s + var(--i)*.09s);outline:none}
@keyframes oobeIn{from{opacity:0;transform:translateY(30px) rotateX(-25deg)}}
.oobe-card:hover,.oobe-card:focus-visible{border-color:rgba(160,180,255,.7);box-shadow:0 20px 60px rgba(0,0,0,.5),0 0 40px rgba(120,140,255,.35);background:linear-gradient(160deg,rgba(140,160,255,.2),rgba(255,255,255,.03))}
.oc-g{display:grid;place-items:center;width:52px;height:52px;margin-bottom:8px;border-radius:15px;font:800 22px 'Vazirmatn','DM Sans',system-ui,sans-serif;background:linear-gradient(145deg,#7f8dff,#3d4bb0);box-shadow:0 10px 24px rgba(80,100,255,.4);transition:transform .35s var(--i18n-ease)}
.oobe-card[data-lang=en] .oc-g{background:linear-gradient(145deg,#5ec2ff,#2a6fd6)}
.oobe-card[data-lang=fa] .oc-g{background:linear-gradient(145deg,#3fd6a0,#138a64)}
.oobe-card[data-lang=tr] .oc-g{background:linear-gradient(145deg,#ff7a7a,#d62d4b)}
.oobe-card:hover .oc-g,.oobe-card:focus-visible .oc-g{transform:rotate(-8deg) scale(1.1)}
.oobe-card b{font-size:20px;font-family:'Vazirmatn','DM Sans',system-ui,sans-serif}
.oobe-card small{color:#9aa1bd;font-size:12px}
.oobe-card em{margin-top:6px;font-style:normal;font:500 13px 'IBM Plex Mono',ui-monospace,monospace;color:#c7cdf0}
.oobe-card em[dir=auto]:lang(fa){font-family:'Vazirmatn',sans-serif}
.oobe-card kbd{position:absolute;top:14px;right:14px;min-width:22px;height:22px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.25);border-bottom-width:2px;border-radius:6px;font:600 11px 'IBM Plex Mono',monospace;color:#cfd4ea}
.oc-sug{position:absolute;top:-10px;left:16px;padding:3px 9px;border-radius:99px;background:#3ddc84;color:#062;font:700 10px 'DM Sans',system-ui,sans-serif;font-style:normal;letter-spacing:.04em;box-shadow:0 6px 16px rgba(61,220,132,.4)}
.oobe-card.picked{animation:oobePick .8s var(--i18n-ease) forwards}
@keyframes oobePick{40%{transform:scale(1.08);box-shadow:0 0 80px rgba(140,160,255,.8)}100%{transform:scale(1.02)}}
.oobe-foot{margin:0;color:#6d7596;font:12px 'IBM Plex Mono',monospace;letter-spacing:.1em}
@media(max-width:899px){.oobe-grid{grid-template-columns:repeat(2,minmax(0,1fr));width:min(420px,100%)}.oobe-card kbd{display:none}}
@media(prefers-reduced-motion:reduce){.i18n-oobe *,.i18n-pop,.i18n-pill{animation:none!important;transition:none!important}}
/* Titres découpés en mots : forcer la direction RTL (les blocs inline sont neutres pour le bidi) */
html[data-lang=fa] [data-i18n-lines][dir=rtl],html[data-lang=fa] [data-i18n-lines][dir=rtl] *{unicode-bidi:isolate!important;direction:rtl}

/* ===== Thème : sélecteur de langue ===== (l'écran de bienvenue OOBE reste sombre : plein écran d'introduction) */
:root[data-theme="light"] .i18n-pop.dark{background:rgba(255,255,255,.94);color:#12172b;border-color:rgba(18,23,43,.16);box-shadow:0 24px 60px rgba(30,40,90,.28)}
:root[data-theme="light"] .i18n-pill{border-color:rgba(18,23,43,.22);background:rgba(255,255,255,.78);color:#12172b}
:root[data-theme="light"] .i18n-pill:hover,:root[data-theme="light"] .i18n-pill.open{background:#fff;border-color:rgba(18,23,43,.4)}
:root[data-theme="dark"] .i18n-pop.win{background:rgba(24,34,60,.94);color:#e8f0fb;border-color:rgba(255,255,255,.14);--i18n-acc:#4aa3f0;--i18n-acc-soft:rgba(74,163,240,.2);box-shadow:0 24px 70px rgba(0,0,0,.6)}
:root[data-theme="dark"] .i18n-tray{color:#e8f0fb}
:root[data-theme="dark"] .i18n-tray:hover,:root[data-theme="dark"] .i18n-tray.open{background:#ffffff26}
