/*
============================================================================
  © 2026 Émile SNYERS — Tous droits réservés
// LICENCE PERSONNALISÉE  — PRO-NUCLÉAIRE 
//
// 🌍 LICENCE D'UTILISATION MULTILINGUE — PRO-NUCLÉAIRE
// Vous êtes autorisé à utiliser ce code, modifié ou non modifié,
// gratuitement et sans demande préalable, sous les conditions suivantes :
//
// 🇫🇷 Français :
// - Pour les entreprises ou associations opérant dans le secteur du nucléaire,
//   l'utilisation est libre et sans aucune restriction.
// - Pour les entreprises ou associations exerçant en dehors du secteur du
//   nucléaire, l'utilisation est permise uniquement dans un cadre non lucratif.
//
// 🇬🇧 English:
// - For companies or organizations operating in the nuclear sector,
//   usage is free and without any restrictions.
// - For companies or organizations outside the nuclear sector,
//   usage is allowed only in a non-profit context.
//
// 🇪🇸 Español:
// - Para empresas u organizaciones que operan en el sector nuclear,
//   el uso es libre y sin restricciones.
// - Para empresas u organizaciones fuera del sector nuclear,
//   el uso está permitido solo en un contexto sin fines de lucro.
//
// 🇩🇪 Deutsch:
// - Für Unternehmen oder Organisationen im Nuklearsektor ist die Nutzung
//   kostenlos und uneingeschränkt.
// - Für Unternehmen oder Organisationen außerhalb des Nuklearsektors ist
//   die Nutzung nur im gemeinnützigen Rahmen erlaubt.
//
// 🇮🇹 Italiano:
// - Per le aziende o associazioni che operano nel settore nucleare,
//   l'uso è gratuito e senza restrizioni.
// - Per le aziende o associazioni al di fuori del settore nucleare,
//   l'uso è consentito solo in un contesto non profit.
//
// 🇷🇺 Русский:
// - Для компаний или организаций, работающих в ядерной отрасли,
//   использование бесплатно и без ограничений.
// - Для компаний или организаций за пределами ядерной отрасли,
//   использование разрешено только в некоммерческом контексте.
//
// 🇨🇳 中文:
// - 对于在核能领域运营的企业或组织，可免费且无限制地使用。
// - 对于非核能领域的企业或组织，仅允许在非营利背景下使用。
//
// 🇯🇵 日本語:
// - 原子力分野で活動する企業や団体は、自由かつ無制限に使用できます。
// - 原子力分野以外の企業や団体は、非営利目的の場合のみ使用が許可されます。
//
// 🇰🇷 한국어:
// - 핵 분야에서 활동하는 기업이나 단체는 무료로 제한 없이 사용할 수 있습니다.
// - 핵 분야 이외의 기업이나 단체는 비영리 목적으로만 사용이 허용됩니다。
//
// 🇧🇷 Português:
// - Para empresas ou organizações que operam no setor nuclear,
//   o uso é gratuito e sem restrições.
// - Para empresas ou organizações fora do setor nuclear,
//   o uso é permitido apenas em um contexto sem fins lucrativos.
//
// 🇦🇪 العربية:
// - يُسمح للشركات أو الجمعيات العاملة في قطاع الطاقة النووية بالاستخدام
//   مجانًا وبدون أي قيود.
// - يُسمح للشركات أو الجمعيات خارج قطاع الطاقة النووية بالاستخدام
//   فقط في إطار غير ربحي.
// Voir licence complète dans Les mentions légales du site web
// ================================================================================
-->
*/
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
ul{list-style:none}

/* ══ VARIABLES — 8 THEMES ══ */
[data-theme="nuit"]{
  --bg:#0a0e27;--bg2:#141829;--bg3:#1a1f3a;--bgi:#0a0e27;
  --hbg:linear-gradient(135deg,#1a1f3a,#2d3561);
  --ac:#00d9ff;--acr:0,217,255;--ac2:#0099cc;--ac3:#ffa300;
  --t1:#e8eaf0;--t2:#8892b0;--t3:#4a5578;
  --br:#2d3561;--shadow:rgba(0,217,255,.18);
  --r:0px;--rsm:3px;
  --fd:'Share Tech Mono',monospace;--fb:'Rajdhani',sans-serif;--fm:'Share Tech Mono',monospace;
  --hline:3px solid #00d9ff;--cbefore:linear-gradient(180deg,#00d9ff,#0099cc);
  --ifshadow:0 0 20px rgba(0,217,255,.3);
}
[data-theme="jour"]{
  --bg:#f7f5f0;--bg2:#ffffff;--bg3:#f0ede8;--bgi:#fff;
  --hbg:linear-gradient(135deg,#1a365d,#2c5282);
  --ac:#1a56db;--acr:26,86,219;--ac2:#1e429f;--ac3:#c05200;
  --t1:#1a202c;--t2:#374151;--t3:#64748b;
  --br:#cbd5e1;--shadow:rgba(26,86,219,.1);
  --r:6px;--rsm:4px;
  --fd:'Playfair Display',serif;--fb:'Lato',sans-serif;--fm:'IBM Plex Mono',monospace;
  --hline:3px solid #1a56db;--cbefore:linear-gradient(180deg,#1a56db,#1e429f);
  --ifshadow:0 0 0 3px rgba(26,86,219,.2);
}
/* Jour : header foncé → boutons blancs */
[data-theme="jour"] .hbtn{color:#fff;border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.12)}
[data-theme="jour"] .hbtn:hover{color:#fff;background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.6)}
[data-theme="jour"] .url-lbl{color:rgba(255,255,255,.55)}
[data-theme="jour"] .url-fld{color:rgba(255,255,255,.75)}
[data-theme="jour"] .url-mini{color:rgba(255,255,255,.65);border-color:rgba(255,255,255,.25)}
[data-theme="jour"] .url-mini:hover{color:#fff;border-color:rgba(255,255,255,.7)}
[data-theme="jour"] .tab-btn{color:#64748b}
[data-theme="jour"] .tab-btn.on{color:#1a56db}
[data-theme="jour"] .ob{color:#374151}
[data-theme="jour"] .ob.on{color:#1a56db}
[data-theme="foret"]{
  --bg:#071207;--bg2:#0d1f0d;--bg3:#122212;--bgi:#071207;
  --hbg:linear-gradient(135deg,#0d1f0d,#1a3a1a);
  --ac:#4ade80;--acr:74,222,128;--ac2:#22c55e;--ac3:#fbbf24;
  --t1:#d1fae5;--t2:#6ee7b7;--t3:#374832;
  --br:#1a3a1a;--shadow:rgba(74,222,128,.18);
  --r:2px;--rsm:2px;
  --fd:'Cinzel',serif;--fb:'Lora',serif;--fm:'IBM Plex Mono',monospace;
  --hline:3px solid #4ade80;--cbefore:linear-gradient(180deg,#4ade80,#fbbf24);
  --ifshadow:0 0 20px rgba(74,222,128,.28);
}
[data-theme="braise"]{
  --bg:#0f0a05;--bg2:#1a120a;--bg3:#261a10;--bgi:#0f0a05;
  --hbg:linear-gradient(135deg,#1a120a,#2d1e0a);
  --ac:#f97316;--acr:249,115,22;--ac2:#dc2626;--ac3:#fbbf24;
  --t1:#fde8d0;--t2:#c4845e;--t3:#4a2e1a;
  --br:#3d2510;--shadow:rgba(249,115,22,.18);
  --r:0px;--rsm:2px;
  --fd:'Oswald',sans-serif;--fb:'Barlow Condensed',sans-serif;--fm:'IBM Plex Mono',monospace;
  --hline:3px solid #f97316;--cbefore:linear-gradient(180deg,#f97316,#dc2626);
  --ifshadow:0 0 20px rgba(249,115,22,.3);
}
[data-theme="violet"]{
  --bg:#0d0920;--bg2:#160f2e;--bg3:#1e1540;--bgi:#0d0920;
  --hbg:linear-gradient(135deg,#160f2e,#2d1b69);
  --ac:#a855f7;--acr:168,85,247;--ac2:#7c3aed;--ac3:#ec4899;
  --t1:#f3e8ff;--t2:#c4b5fd;--t3:#4c3575;
  --br:#2e1b5e;--shadow:rgba(168,85,247,.18);
  --r:4px;--rsm:4px;
  --fd:'Exo 2',sans-serif;--fb:'Josefin Sans',sans-serif;--fm:'IBM Plex Mono',monospace;
  --hline:3px solid #a855f7;--cbefore:linear-gradient(180deg,#a855f7,#ec4899);
  --ifshadow:0 0 20px rgba(168,85,247,.38);
}
[data-theme="glacier"]{
  --bg:#f0f8ff;--bg2:#ffffff;--bg3:#dbeafe;--bgi:#f8fbff;
  --hbg:linear-gradient(135deg,#0c4a6e,#0284c7);
  --ac:#0369a1;--acr:3,105,161;--ac2:#0c4a6e;--ac3:#0891b2;
  --t1:#0c2340;--t2:#1e4976;--t3:#4b7fa8;
  --br:#93c5fd;--shadow:rgba(3,105,161,.12);
  --r:16px;--rsm:10px;
  --fd:'Quicksand',sans-serif;--fb:'Nunito',sans-serif;--fm:'IBM Plex Mono',monospace;
  --hline:3px solid #0369a1;--cbefore:linear-gradient(180deg,#0369a1,#0891b2);
  --ifshadow:0 0 0 4px rgba(3,105,161,.2);
}
/* Glacier : header foncé → boutons blancs */
[data-theme="glacier"] .hbtn{color:#fff;border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.12)}
[data-theme="glacier"] .hbtn:hover{color:#fff;background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.6)}
[data-theme="glacier"] .url-lbl{color:rgba(255,255,255,.55)}
[data-theme="glacier"] .url-fld{color:rgba(255,255,255,.8)}
[data-theme="glacier"] .url-mini{color:rgba(255,255,255,.65);border-color:rgba(255,255,255,.25)}
[data-theme="glacier"] .url-mini:hover{color:#fff;border-color:rgba(255,255,255,.7)}
[data-theme="parchemin"]{
  --bg:#f5e8cc;--bg2:#fdf3dc;--bg3:#ede0c4;--bgi:#fdf3dc;
  --hbg:linear-gradient(135deg,#5c3d1e,#7a4f28);
  --ac:#7a4f28;--acr:122,79,40;--ac2:#5c3d1e;--ac3:#c0392b;
  --t1:#2d1b0e;--t2:#7a4f28;--t3:#b89060;
  --br:#d4b896;--shadow:rgba(122,79,40,.18);
  --r:0px;--rsm:0px;
  --fd:'IM Fell English',serif;--fb:'Libre Baskerville',serif;--fm:'IBM Plex Mono',monospace;
  --hline:3px solid #7a4f28;--cbefore:linear-gradient(180deg,#7a4f28,#c0392b);
  --ifshadow:0 0 0 2px rgba(122,79,40,.35);
}
[data-theme="minimal"]{
  --bg:#000;--bg2:#0a0a0a;--bg3:#111;--bgi:#000;
  --hbg:#000;
  --ac:#fff;--acr:255,255,255;--ac2:#ccc;--ac3:#888;
  --t1:#fff;--t2:#aaa;--t3:#444;
  --br:#222;--shadow:rgba(255,255,255,.05);
  --r:0px;--rsm:0px;
  --fd:'IBM Plex Mono',monospace;--fb:'IBM Plex Sans',sans-serif;--fm:'IBM Plex Mono',monospace;
  --hline:1px solid #fff;--cbefore:#fff;
  --ifshadow:0 0 0 1px #fff;
}

/* ══ POLICES UTILISATEUR ══ */
[data-font="serif"]     {--fb:'Libre Baskerville',serif!important}
[data-font="sans"]      {--fb:'Lato',sans-serif!important}
[data-font="mono"]      {--fb:'IBM Plex Mono',monospace!important}
[data-font="manuscrit"] {--fb:'Caveat',cursive!important}

/* ══ TAILLES ══ */
[data-ts="S"]{font-size:13px}[data-ts="XL"]{font-size:15px}
[data-ts="L"]{font-size:17px}[data-ts="XL"]{font-size:20px}

/* ══ BASE ══ */
body{font-family:var(--fb);background:var(--bg);min-height:100vh;color:var(--t1);overflow-x:hidden;transition:background .35s,color .35s}
[data-anim="off"]*,[data-anim="off"]*::before,[data-anim="off"]*::after{animation:none!important;transition:none!important}

/* ══ EFFETS DYNAMIQUES ══ */
[data-dyn="1"][data-theme="nuit"]::before{content:'';position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,217,255,.012) 2px,rgba(0,217,255,.012) 4px);pointer-events:none;z-index:9999}
[data-dyn="1"][data-theme="violet"]::before{content:'';position:fixed;inset:0;background:repeating-linear-gradient(90deg,rgba(168,85,247,.025) 0,transparent 1px,transparent 55px),repeating-linear-gradient(0deg,rgba(168,85,247,.025) 0,transparent 1px,transparent 55px);pointer-events:none;z-index:9999}
[data-dyn="1"][data-theme="minimal"]::before{content:'';position:fixed;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.02) 0,transparent 1px,transparent 40px),repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0,transparent 1px,transparent 40px);pointer-events:none;z-index:9999}
[data-dyn="1"][data-theme="braise"]::after{content:'';position:fixed;inset:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.45) 100%);pointer-events:none;z-index:9998}
[data-dyn="1"][data-theme="violet"] .result-box{box-shadow:0 0 18px rgba(168,85,247,.15),inset 0 1px 0 rgba(168,85,247,.08)}
[data-dyn="1"][data-theme="glacier"] .result-box{backdrop-filter:blur(4px);background:rgba(255,255,255,.82)}
[data-dyn="1"][data-theme="nuit"] .result-box{box-shadow:0 0 14px rgba(0,217,255,.1)}

/* ══ HEADER ══ */
.site-header{background:var(--hbg);border-bottom:var(--hline);box-shadow:0 4px 20px var(--shadow);position:sticky;top:0;z-index:1000}
.hdr-main{display:flex;justify-content:space-between;align-items:center;padding:16px 26px;gap:14px;flex-wrap:wrap}
.hdr-brand h1{font-family:var(--fd);color:var(--ac);font-size:1.35em;font-weight:600;letter-spacing:2px;text-transform:uppercase;line-height:1.2}
[data-hdr="compact"] .hdr-brand h1{font-size:1.05em}
.hdr-brand .sub{color:var(--t2);font-size:.8em;font-weight:300;letter-spacing:1px;margin-top:3px}
[data-hdr="compact"] .hdr-brand .sub{display:none}
.hdr-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.theme-dots{display:flex;gap:5px;align-items:center;background:rgba(0,0,0,.2);padding:4px;border-radius:var(--rsm)}
.tdot{width:21px;height:21px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .2s,border-color .2s}
.tdot:hover{transform:scale(1.2)}
.tdot.on{border-color:var(--ac);transform:scale(1.25)}
.tdot[dt="nuit"]     {background:radial-gradient(circle,#2d3561,#0a0e27)}
.tdot[dt="jour"]     {background:radial-gradient(circle,#fff,#f0ede8)}
.tdot[dt="foret"]    {background:radial-gradient(circle,#4ade80,#071207)}
.tdot[dt="braise"]   {background:radial-gradient(circle,#f97316,#0f0a05)}
.tdot[dt="violet"]   {background:radial-gradient(circle,#a855f7,#0d0920)}
.tdot[dt="glacier"]  {background:radial-gradient(circle,#7dd3fc,#f0f8ff)}
.tdot[dt="parchemin"]{background:radial-gradient(circle,#d4b896,#f5e8cc)}
.tdot[dt="minimal"]  {background:radial-gradient(circle,#555,#000)}
.hbtn{background:rgba(var(--acr),.12);color:var(--ac);border:1px solid rgba(var(--acr),.3);padding:7px 13px;cursor:pointer;font-size:.8em;font-family:var(--fb);font-weight:600;letter-spacing:1px;border-radius:var(--rsm);transition:all .2s;text-transform:uppercase;display:flex;align-items:center;gap:5px}
.hbtn:hover{background:rgba(var(--acr),.22);border-color:var(--ac)}
.hbtn.on{background:var(--ac);color:var(--bg)}
/* URL bar */
.url-bar{border-top:1px solid rgba(var(--acr),.14);padding:6px 26px;display:flex;align-items:center;gap:9px;background:rgba(0,0,0,.1)}
.url-lbl{color:var(--t3);font-size:.7em;font-family:var(--fm);text-transform:uppercase;letter-spacing:1px;white-space:nowrap}
.url-fld{flex:1;background:transparent;border:none;color:var(--t2);font-family:var(--fm);font-size:.76em;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.url-fld:focus{outline:none;color:var(--ac)}
.url-acts{display:flex;gap:4px}
.url-mini{background:none;border:1px solid var(--br);color:var(--t2);padding:3px 8px;font-size:.7em;cursor:pointer;border-radius:var(--rsm);transition:all .2s;white-space:nowrap}
.url-mini:hover{border-color:var(--ac);color:var(--ac)}

/* ══ LAYOUT ══ */
.main-wrap{display:grid;grid-template-columns:420px 1fr;min-height:calc(100vh - 108px)}

/* ══ PANNEAU GAUCHE ══ */
.left-panel{background:var(--bg2);border-right:1px solid var(--br);display:flex;flex-direction:column;overflow-y:auto}
.tabs-nav{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--br);background:var(--bg3);flex-shrink:0}
.tab-btn{background:none;border:none;border-bottom:2px solid transparent;padding:11px 5px;color:var(--t3);font-family:var(--fb);font-size:.69em;font-weight:600;text-transform:uppercase;letter-spacing:.7px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:3px}
.tab-btn .ti{font-size:1.25em}
.tab-btn:hover{color:var(--ac);background:rgba(var(--acr),.05)}
.tab-btn.on{color:var(--ac);border-bottom-color:var(--ac);background:rgba(var(--acr),.08)}
.tab-content{display:none;flex:1;padding:22px;overflow-y:auto;flex-direction:column;gap:16px}
.tab-content.on{display:flex}

/* ══ COMPOSANTS FORM ══ */
.flabel{color:var(--ac);font-size:.73em;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;margin-bottom:7px;display:block}
.inp-xl{width:100%;padding:15px 17px;font-size:1.65em;background:var(--bgi);border:1.5px solid var(--br);color:var(--ac);border-radius:var(--r);transition:all .3s;font-weight:300;font-family:var(--fm);letter-spacing:1px}
.inp-xl:focus{outline:none;border-color:var(--ac);box-shadow:var(--ifshadow)}
.inp-xl::placeholder{color:var(--t3)}
.inp-n{width:100%;padding:9px 13px;background:var(--bgi);border:1.5px solid var(--br);color:var(--t1);border-radius:var(--rsm);font-family:var(--fb);font-size:.88em;transition:all .2s}
.inp-n:focus{outline:none;border-color:var(--ac)}
.inp-n::placeholder{color:var(--t3)}
.txta{width:100%;padding:9px 13px;background:var(--bgi);border:1.5px solid var(--br);color:var(--t1);border-radius:var(--rsm);font-family:var(--fm);font-size:.83em;resize:vertical;min-height:110px;transition:all .2s}
.txta:focus{outline:none;border-color:var(--ac)}
.txta::placeholder{color:var(--t3)}
.opts{display:flex;gap:5px;flex-wrap:wrap}
.ob{background:var(--bg3);border:1px solid var(--br);color:var(--t2);padding:5px 11px;border-radius:var(--rsm);cursor:pointer;font-size:.76em;font-family:var(--fb);font-weight:600;transition:all .2s}
.ob:hover{border-color:var(--ac);color:var(--ac)}
.ob.on{background:rgba(var(--acr),.14);border-color:var(--ac);color:var(--ac)}
.trow{display:flex;justify-content:space-between;align-items:center;padding:7px 0}
.tlbl{color:var(--t2);font-size:.84em}
.tgl{position:relative;width:38px;height:21px}
.tgl input{opacity:0;width:0;height:0}
.ttrack{position:absolute;inset:0;background:var(--br);border-radius:11px;cursor:pointer;transition:background .3s}
.ttrack::before{content:'';position:absolute;width:15px;height:15px;top:3px;left:3px;background:#fff;border-radius:50%;transition:transform .3s}
.tgl input:checked~.ttrack{background:var(--ac)}
.tgl input:checked~.ttrack::before{transform:translateX(17px)}
.btn-p{background:linear-gradient(135deg,var(--ac),var(--ac2));color:var(--bg);padding:14px 22px;border:none;font-size:.97em;font-weight:700;font-family:var(--fb);cursor:pointer;border-radius:var(--r);width:100%;text-transform:uppercase;letter-spacing:1.5px;transition:all .3s}
.btn-p:hover{box-shadow:0 8px 24px var(--shadow);transform:translateY(-2px)}
.btn-p:active{transform:translateY(0)}
.btn-s{background:rgba(var(--acr),.1);color:var(--ac);border:1px solid rgba(var(--acr),.3);padding:8px 14px;font-family:var(--fb);font-size:.83em;font-weight:600;cursor:pointer;border-radius:var(--rsm);transition:all .2s}
.btn-s:hover{background:rgba(var(--acr),.2);border-color:var(--ac)}
.errmsg{background:rgba(239,68,68,.1);color:#ef4444;padding:10px 14px;border-left:3px solid #ef4444;border-radius:0 var(--rsm) var(--rsm) 0;font-size:.86em;display:none;animation:slideD .2s ease}
.errmsg.show{display:block}
.infomini{background:rgba(var(--acr),.06);border-left:2px solid var(--ac);padding:10px 13px;border-radius:0 var(--rsm) var(--rsm) 0;font-size:.79em;color:var(--t2);line-height:1.6}
.infomini code{background:var(--bg3);color:var(--ac);padding:1px 5px;border-radius:3px;font-family:var(--fm);font-size:.9em}

/* ══ PANNEAU DROIT — RESULTATS ══ */
.right-panel{background:var(--bg);padding:26px;overflow-y:auto;display:flex;flex-direction:column;gap:18px}
.rplaceholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--t3);gap:16px;text-align:center}
.rplaceholder svg{opacity:.22;width:72px;height:72px}
.rplaceholder p{font-size:.97em;font-weight:300;letter-spacing:1px}
/* Stats bar */
.stats-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:9px 14px;background:var(--bg2);border:1px solid var(--br);border-radius:var(--rsm)}
.si{display:flex;align-items:center;gap:4px;font-size:.76em}
.slbl{color:var(--t3);text-transform:uppercase;letter-spacing:.7px}
.sval{color:var(--ac);font-weight:700;font-family:var(--fm)}
.sdiv{color:var(--br)}
.lbadge{padding:3px 9px;border-radius:20px;font-size:.7em;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
.lb-c{background:rgba(74,222,128,.13);color:#4ade80;border:1px solid #4ade80}
.lb-m{background:rgba(251,191,36,.13);color:#fbbf24;border:1px solid #fbbf24}
.lb-l{background:rgba(249,115,22,.13);color:#f97316;border:1px solid #f97316}
.lb-xl{background:rgba(239,68,68,.13);color:#ef4444;border:1px solid #ef4444}
/* Boite resultat */
.rbox{background:var(--bg2);border:1.5px solid var(--br);border-radius:var(--r);overflow:hidden;position:relative;transition:all .3s;animation:fsi .32s ease}
.rbox::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;background:var(--cbefore)}
.rbox:hover{border-color:rgba(var(--acr),.5);box-shadow:0 4px 18px var(--shadow)}
.rhead{display:flex;justify-content:space-between;align-items:center;padding:10px 14px 9px 19px;border-bottom:1px solid var(--br);gap:7px;flex-wrap:wrap}
.rtitle{color:var(--ac);font-size:.7em;font-weight:700;text-transform:uppercase;letter-spacing:1.5px}
.cacts{display:flex;gap:4px;flex-wrap:wrap}
.cbtn{background:transparent;color:var(--t2);border:1px solid var(--br);padding:4px 9px;cursor:pointer;font-size:.7em;font-weight:600;font-family:var(--fb);border-radius:var(--rsm);transition:all .2s;position:relative;white-space:nowrap}
.cbtn:hover{color:var(--ac);border-color:var(--ac);background:rgba(var(--acr),.07)}
.cbtn.ok{color:#4ade80!important;border-color:#4ade80!important;background:rgba(74,222,128,.1)!important}
/* Tooltip */
.cbtn[tip]:hover::after{content:attr(tip);position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);background:var(--bg3);color:var(--t1);border:1px solid var(--br);padding:5px 9px;border-radius:var(--rsm);font-size:.82em;font-weight:400;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis;z-index:200;box-shadow:0 4px 12px rgba(0,0,0,.3);text-transform:none;letter-spacing:0}
.cbtn[tip]:hover::before{content:'';position:absolute;bottom:calc(100% + 1px);left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--br);z-index:200}
.rbody{padding:16px 18px}
.rtext{color:var(--t1);font-size:1.18em;line-height:1.85;word-wrap:break-word;font-weight:300}
.rtext.manus{font-family:'Caveat',cursive!important;font-size:1.38em}
/* Groupes couleur */
.g-mrd{color:#f87171}.g-mil{color:#fb923c}.g-mle{color:#facc15}
/* Share bar */
.share-bar{display:flex;gap:7px;flex-wrap:wrap}
.sbtn{display:flex;align-items:center;gap:5px;background:var(--bg2);border:1px solid var(--br);color:var(--t2);padding:7px 12px;cursor:pointer;font-size:.78em;font-family:var(--fb);border-radius:var(--rsm);transition:all .2s}
.sbtn:hover{border-color:var(--ac);color:var(--ac)}
.sbtn.cheque{color:var(--ac3);border-color:rgba(255,163,0,.35)}
.sbtn.cheque:hover{background:rgba(255,163,0,.08)}
.copy-all{background:linear-gradient(135deg,rgba(var(--acr),.14),rgba(var(--acr),.07));border:1px solid rgba(var(--acr),.4);color:var(--ac);padding:7px 14px;cursor:pointer;font-size:.78em;font-weight:700;font-family:var(--fb);border-radius:var(--rsm);transition:all .2s}
.copy-all:hover{background:rgba(var(--acr),.22)}
/* Special results */
.spec-res{background:var(--bg2);border:1.5px solid var(--br);border-radius:var(--r);padding:14px;animation:fsi .3s ease}
.spec-title{color:var(--ac);font-size:.7em;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;margin-bottom:7px}
.spec-text{color:var(--t1);font-size:1em;line-height:1.6}
.mlgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px}@media(max-width:700px){.mlgrid{grid-template-columns:1fr 1fr}}
.lbox{background:var(--bg3);border:1px solid var(--br);border-radius:var(--rsm);padding:9px}
.lflag{font-size:1em;margin-bottom:3px}
.ltext{color:var(--t1);font-size:.83em;line-height:1.5}
/* Historique */
.hitem{background:var(--bg3);border:1px solid var(--br);border-radius:var(--rsm);padding:9px 13px;cursor:pointer;transition:all .2s;display:flex;justify-content:space-between;align-items:flex-start;gap:9px}
.hitem:hover{border-color:var(--ac)}
.hnum{color:var(--ac);font-family:var(--fm);font-size:.97em;font-weight:600}
.htxt{color:var(--t2);font-size:.8em;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.htime{color:var(--t3);font-size:.7em;white-space:nowrap}
/* Lot */
.brit{display:flex;gap:7px;padding:7px 0;border-bottom:1px solid var(--br);font-size:.86em}
.bnum{color:var(--ac);font-family:var(--fm);min-width:80px;font-weight:600}
.bwrd{color:var(--t1);flex:1}
.berr{color:#ef4444}

/* ══ SETTINGS PANEL ══ */
.soverlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:2000;opacity:0;pointer-events:none;transition:opacity .3s}
.soverlay.on{opacity:1;pointer-events:all}
.spanel{position:fixed;top:0;right:0;width:308px;height:100vh;background:var(--bg2);border-left:1px solid var(--br);z-index:2001;transform:translateX(100%);transition:transform .3s;overflow-y:auto;display:flex;flex-direction:column}
.spanel.on{transform:translateX(0)}
.shead{padding:18px;border-bottom:1px solid var(--br);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:var(--bg2);z-index:1}
.shead h2{font-family:var(--fd);color:var(--ac);font-size:.97em;text-transform:uppercase;letter-spacing:2px}
.sbody{padding:15px;display:flex;flex-direction:column;gap:18px;flex:1}
.stitle{color:var(--ac);font-size:.68em;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:9px;padding-bottom:4px;border-bottom:1px solid var(--br)}
.tgrid{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.tc{border:1.5px solid var(--br);border-radius:var(--rsm);padding:7px 9px;cursor:pointer;transition:all .2s;font-size:.76em;color:var(--t2);display:flex;align-items:center;gap:5px}
.tc:hover{border-color:var(--ac);color:var(--ac)}
.tc.on{border-color:var(--ac);background:rgba(var(--acr),.1);color:var(--ac);font-weight:700}
.sz-btns{display:flex;gap:4px}
.szbtn{flex:1;background:var(--bg3);border:1px solid var(--br);color:var(--t2);padding:6px 4px;cursor:pointer;font-family:var(--fb);border-radius:var(--rsm);transition:all .2s;font-weight:600;font-size:.88em}
.szbtn.on{background:rgba(var(--acr),.15);border-color:var(--ac);color:var(--ac)}
.fsel{width:100%;padding:7px 11px;background:var(--bgi);border:1px solid var(--br);color:var(--t1);border-radius:var(--rsm);font-family:var(--fb);font-size:.86em;cursor:pointer}
.fsel:focus{outline:none;border-color:var(--ac)}

/* ══ PLEIN ECRAN ══ */
.fsoverlay{position:fixed;inset:0;background:var(--bg);z-index:3000;display:none;flex-direction:column;align-items:center;justify-content:center;padding:60px 70px}
.fsoverlay.on{display:flex}
.fstext{font-family:var(--fd);color:var(--t1);font-size:clamp(1.4em,3.5vw,2.8em);line-height:1.65;text-align:center;max-width:860px}
.fslbl{position:absolute;top:24px;left:36px;color:var(--t3);font-size:.78em;font-family:var(--fm);text-transform:uppercase;letter-spacing:2px}
.fsclose{position:absolute;top:18px;right:18px;background:var(--bg2);border:1px solid var(--br);color:var(--t1);padding:9px 18px;cursor:pointer;font-size:.87em;border-radius:var(--rsm)}

/* ══ CHEQUE ══ */
.ckov{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:3000;display:none;align-items:center;justify-content:center;padding:18px}
.ckov.on{display:flex}
.ck{background:#fffef5;border:1px solid #bbb;border-radius:3px;width:100%;max-width:680px;padding:26px;color:#1a1a1a;font-family:'Libre Baskerville',serif;box-shadow:0 20px 55px rgba(0,0,0,.4)}
.cktop{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}
.ckbnk{font-size:1.08em;font-weight:700;color:#c0392b}
.ckamt{border:2px solid #1a1a1a;padding:7px 16px;font-size:1.15em;font-weight:700;border-radius:3px;font-family:'IBM Plex Mono',monospace}
.ckpl{border-bottom:1px solid #1a1a1a;margin:9px 0;padding-bottom:5px;font-size:.88em}
.ckwords{border-bottom:2px solid #1a1a1a;margin:9px 0;padding:7px 0;font-size:1.03em;font-weight:600;min-height:46px;text-transform:uppercase}
.ckftr{display:flex;justify-content:space-between;align-items:flex-end;margin-top:18px;border-top:1px solid #ccc;padding-top:14px}
.cksig{width:170px;border-bottom:1px solid #1a1a1a;font-size:.82em;color:#888;text-align:center;padding-bottom:3px}
.ckacts{display:flex;gap:7px;margin-top:14px;justify-content:flex-end}

/* ══ SECTION INFO & FOOTER ══ */
.info-sec{border-top:1px solid var(--br);padding:36px 26px;background:var(--bg3)}
[data-info="off"] .info-sec{display:none}
.igrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.icard{background:var(--bg2);border:1px solid var(--br);border-left:3px solid var(--ac);padding:16px;border-radius:var(--rsm);transition:box-shadow .2s}
.icard:hover{box-shadow:0 4px 14px var(--shadow)}
.icard h3{color:var(--ac);font-size:.88em;margin-bottom:9px;font-weight:600}
.icard p,.icard li{color:var(--t2);font-size:.81em;line-height:1.7}
.icard li::before{content:"▹ ";color:var(--ac)}
.footer{background:var(--bg3);border-top:1px solid var(--br);padding:0}
.fbot{padding:18px 26px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:7px}
.chg-wrap{display:none;padding:22px 26px;border-top:1px solid var(--br);background:var(--bg);animation:fsi .25s ease}
.chg-wrap.open{display:block}
.chg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:4px}
.ver-btn{background:rgba(var(--acr),.08);border:1px solid rgba(var(--acr),.3);color:var(--ac);padding:5px 13px;border-radius:var(--rsm);cursor:pointer;font-size:.78em;font-family:var(--fb);font-weight:600;transition:all .2s}
.ver-btn:hover{background:rgba(var(--acr),.2);border-color:var(--ac)}
.fbot{display:flex;justify-content:space-between;align-items:center;color:var(--t3);font-size:.78em;flex-wrap:wrap;gap:7px}
.fbot strong{color:var(--ac)}
/* Toast */
.toasts{position:fixed;bottom:18px;right:18px;z-index:9000;display:flex;flex-direction:column;gap:7px}
.toast{background:var(--bg3);border:1px solid var(--ac);color:var(--t1);padding:9px 16px;border-radius:var(--rsm);font-size:.83em;box-shadow:0 4px 14px rgba(0,0,0,.3);animation:ti .3s ease;display:flex;align-items:center;gap:7px}

/* ══ CHANGELOG VERSIONS ══ */
.vcard{background:var(--bg3);border:1.5px solid var(--br);border-radius:var(--rsm);padding:14px;display:flex;flex-direction:column;gap:8px;transition:border-color .2s}
.vcard:hover{border-color:rgba(var(--acr),.5)}
.vcurrent{border-color:var(--ac);background:rgba(var(--acr),.06)}
.vhead{display:flex;align-items:center;gap:10px}
.vtag{font-family:var(--fd);color:var(--bg);background:var(--ac);padding:3px 12px;border-radius:var(--rsm);font-size:.88em;font-weight:700;letter-spacing:1px;min-width:36px;text-align:center}
.vcurrent .vtag{background:var(--ac);box-shadow:0 0 10px var(--shadow)}
.vdate{color:var(--t2);font-size:.78em;font-style:italic}
.vlist{display:flex;flex-direction:column;gap:4px;padding-left:4px}
.vlist li{color:var(--t2);font-size:.8em;line-height:1.5;padding-left:12px;position:relative}
.vlist li::before{content:"▸ ";color:var(--ac);position:absolute;left:0}


/* ══════════════════════════════════════════════════════
   PORTFOLIO OVERLAY — adaptatif aux 8 thèmes
   ══════════════════════════════════════════════════════ */
.pf-ov{position:fixed;inset:0;background:var(--bg);z-index:4000;display:none;flex-direction:column;overflow:hidden;animation:fsi .25s ease}
.pf-ov.on{display:flex}
/* En-tête portfolio */
.pf-hdr{background:var(--bg2);border-bottom:var(--hline);padding:14px 22px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;flex-shrink:0;box-shadow:0 2px 12px var(--shadow)}
.pf-ttl{font-family:var(--fd);color:var(--ac);font-size:1.1em;font-weight:600;text-transform:uppercase;letter-spacing:2px;white-space:nowrap}
.pf-swrap{flex:1;display:flex;align-items:center;gap:7px;background:var(--bgi);border:1.5px solid var(--br);border-radius:var(--rsm);padding:7px 12px;min-width:180px;max-width:340px}
.pf-swrap:focus-within{border-color:var(--ac)}
.pf-sin{background:none;border:none;color:var(--t1);font-family:var(--fb);font-size:.88em;flex:1;outline:none}
.pf-sin::placeholder{color:var(--t3)}
.pf-scnt{color:var(--t3);font-size:.72em;white-space:nowrap}
/* Boutons de vue */
.pf-views{display:flex;gap:3px;background:var(--bg3);padding:3px;border-radius:var(--rsm)}
.pf-vb{background:none;border:none;color:var(--t3);padding:5px 9px;cursor:pointer;border-radius:calc(var(--rsm) - 1px);font-size:.95em;transition:all .2s;line-height:1}
.pf-vb:hover,.pf-vb.on{color:var(--ac);background:rgba(var(--acr),.15)}
/* Filtres */
.pf-filters{display:flex;gap:4px;flex-wrap:wrap}
.pf-fb{background:none;border:1px solid var(--br);color:var(--t2);padding:4px 11px;cursor:pointer;border-radius:20px;font-size:.72em;font-weight:700;transition:all .2s;letter-spacing:.5px}
.pf-fb:hover{border-color:var(--ac);color:var(--ac)}
.pf-fb.on[df="tous"]   {background:var(--ac);border-color:var(--ac);color:var(--bg)}
.pf-fb.on[df="online"] {background:#16a34a;border-color:#16a34a;color:#fff}
.pf-fb.on[df="current"]{background:var(--ac);border-color:var(--ac);color:var(--bg)}
.pf-fb.on[df="pending"]{background:#64748b;border-color:#64748b;color:#fff}
.pf-fb.on[df="private"]{background:#dc2626;border-color:#dc2626;color:#fff}
.pf-cls{background:none;border:1px solid var(--br);color:var(--t2);padding:6px 14px;cursor:pointer;border-radius:var(--rsm);font-size:.82em;font-family:var(--fb);font-weight:600;transition:all .2s;white-space:nowrap}
.pf-cls:hover{border-color:var(--ac);color:var(--ac)}
/* Corps scrollable */
.pf-body{flex:1;overflow-y:auto;padding:22px 24px}
/* ── Vue Tuiles ── */
.pf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:15px}
/* ── Vue Liste ── */
.pf-list{display:flex;flex-direction:column;gap:9px}
/* ── Vue Tableau ── */
.pf-tbl-wrap{overflow-x:auto;border-radius:var(--rsm);border:1px solid var(--br)}
.pf-tbl{width:100%;border-collapse:collapse;min-width:600px}
.pf-tbl th{background:var(--bg2);color:var(--ac);font-size:.72em;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:10px 14px;border-bottom:2px solid var(--br);text-align:left;white-space:nowrap}
.pf-tbl td{padding:9px 14px;border-bottom:1px solid var(--br);font-size:.83em;color:var(--t1);vertical-align:middle}
.pf-tbl tr:last-child td{border-bottom:none}
.pf-tbl tr:hover td{background:rgba(var(--acr),.04)}
/* ── Vue Compacte ── */
.pf-compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:8px}
/* ── Carte tuile ── */
.pf-card{background:var(--bg2);border:1.5px solid var(--br);border-radius:var(--r);padding:18px 18px 14px 22px;transition:all .25s;position:relative;overflow:hidden}
.pf-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%}
.pf-card[ds="online"]::before,.pf-card[ds="current"]::before{background:#16a34a}
.pf-card[ds="pending"]::before{background:#64748b}
.pf-card[ds="private"]::before{background:#dc2626}
.pf-card[ds="current"]::before{background:var(--ac)}
.pf-card:hover{border-color:rgba(var(--acr),.5);box-shadow:0 6px 22px var(--shadow);transform:translateY(-2px)}
.pf-ico{font-size:1.9em;margin-bottom:9px;display:block}
.pf-t{font-weight:700;color:var(--t1);font-size:.93em;margin-bottom:5px;line-height:1.3}
.pf-d{color:var(--t2);font-size:.79em;line-height:1.5;margin-bottom:10px}
.pf-techs{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:11px}
.pf-tech{background:var(--bg3);color:var(--t3);font-size:.66em;padding:2px 6px;border-radius:3px;font-weight:700}
.pf-cf{display:flex;justify-content:space-between;align-items:center;gap:8px}
.pf-bdg{font-size:.66em;font-weight:700;padding:3px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}
.pf-bdg-on  {background:rgba(22,163,74,.13);color:#16a34a;border:1px solid #16a34a}
.pf-bdg-cur {background:rgba(var(--acr),.13);color:var(--ac);border:1px solid var(--ac)}
.pf-bdg-pen {background:rgba(100,116,139,.13);color:#64748b;border:1px solid #64748b}
.pf-bdg-prv {background:rgba(220,38,38,.13);color:#dc2626;border:1px solid #dc2626}
.pf-lnk{color:var(--ac);font-size:.76em;font-weight:700;text-decoration:none;border:1px solid rgba(var(--acr),.3);padding:3px 9px;border-radius:var(--rsm);transition:all .2s;white-space:nowrap}
.pf-lnk:hover{background:rgba(var(--acr),.12);border-color:var(--ac)}
.pf-nw{position:absolute;top:9px;right:9px;background:var(--ac3);color:#fff;font-size:.6em;font-weight:700;padding:2px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:.5px}
/* ── Carte liste ── */
.pf-li{background:var(--bg2);border:1.5px solid var(--br);border-radius:var(--rsm);padding:11px 15px 11px 19px;display:flex;align-items:center;gap:13px;transition:border-color .2s;position:relative}
.pf-li::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;border-radius:var(--rsm) 0 0 var(--rsm)}
.pf-li[ds="online"]::before,.pf-li[ds="current"]::before{background:#16a34a}
.pf-li[ds="current"]::before{background:var(--ac)}
.pf-li[ds="pending"]::before{background:#64748b}
.pf-li[ds="private"]::before{background:#dc2626}
.pf-li:hover{border-color:rgba(var(--acr),.4)}
.pf-li-ico{font-size:1.5em;flex-shrink:0}
.pf-li-info{flex:1;min-width:0}
.pf-li-t{font-weight:700;color:var(--t1);font-size:.9em}
.pf-li-d{color:var(--t2);font-size:.77em;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-li-tch{display:flex;gap:3px;flex-wrap:wrap;margin-top:4px}
.pf-li-r{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0}
/* ── Carte compacte ── */
.pf-cmp{background:var(--bg2);border:1.5px solid var(--br);border-radius:var(--rsm);padding:12px 10px;text-align:center;transition:all .2s;cursor:default;position:relative;overflow:hidden}
.pf-cmp::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px}
.pf-cmp[ds="online"]::after,.pf-cmp[ds="current"]::after{background:#16a34a}
.pf-cmp[ds="current"]::after{background:var(--ac)}
.pf-cmp[ds="pending"]::after{background:#64748b}
.pf-cmp[ds="private"]::after{background:#dc2626}
.pf-cmp:hover{border-color:rgba(var(--acr),.45);transform:translateY(-1px)}
.pf-cmp-ico{font-size:1.65em;margin-bottom:5px;display:block}
.pf-cmp-t{color:var(--t1);font-size:.73em;font-weight:700;line-height:1.3}
.pf-cmp-b{margin-top:6px;display:flex;justify-content:center}
/* Aucun résultat */
.pf-empty{text-align:center;color:var(--t3);padding:70px 20px;font-size:1.05em}
/* Section vide (à venir) */
.pf-coming{background:var(--bg3);border:1.5px dashed var(--br);border-radius:var(--r);padding:24px;text-align:center;color:var(--t3);font-size:.85em;grid-column:1/-1}


/* ══════════════════════════════════════════════════════
   OVERLAY SECONDAIRES (Navigation, Stats, À propos)
   ══════════════════════════════════════════════════════ */
.sec-ov{position:fixed;inset:0;background:var(--bg);z-index:4100;display:none;flex-direction:column;overflow:hidden;animation:fsi .25s ease}
.sec-ov.on{display:flex}
.sec-hdr{background:var(--bg2);border-bottom:var(--hline);padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-shrink:0;box-shadow:0 2px 12px var(--shadow)}
.sec-ttl{font-family:var(--fd);color:var(--ac);font-size:1.1em;font-weight:600;text-transform:uppercase;letter-spacing:2px}
.sec-body{flex:1;overflow-y:auto;padding:28px 26px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.sec-cls{background:none;border:1px solid var(--br);color:var(--t2);padding:6px 14px;cursor:pointer;border-radius:var(--rsm);font-family:var(--fb);font-size:.85em;transition:all .2s}
.sec-cls:hover{border-color:var(--ac);color:var(--ac)}

/* ══ NAVIGATION ══ */
.nav-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:680px;margin:0 auto}
.nav-card{background:var(--bg2);border:1.5px solid var(--br);border-radius:var(--r);padding:18px 20px;cursor:pointer;transition:all .25s;display:flex;align-items:flex-start;gap:14px;position:relative;overflow:hidden}
.nav-card:hover{border-color:var(--ac);box-shadow:0 6px 20px var(--shadow);transform:translateY(-2px)}
.nav-card.active{border-color:var(--ac);background:rgba(var(--acr),.07)}
.nav-card.dev{opacity:.7;cursor:default;pointer-events:none}
.nav-card.dev:hover{transform:none;box-shadow:none}
.nav-ico{font-size:1.8em;flex-shrink:0;margin-top:2px}
.nav-name{font-weight:700;color:var(--t1);font-size:.95em;margin-bottom:4px}
.nav-desc{color:var(--t2);font-size:.78em;line-height:1.4}
.nav-status{position:absolute;top:10px;right:10px;font-size:.62em;font-weight:700;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}
.ns-active{background:rgba(var(--acr),.15);color:var(--ac);border:1px solid rgba(var(--acr),.4)}
.ns-dev{background:rgba(251,191,36,.13);color:#fbbf24;border:1px solid #fbbf24}
.ns-soon{background:rgba(148,163,184,.12);color:#94a3b8;border:1px solid #94a3b8}
@media(max-width:600px){.nav-grid{grid-template-columns:1fr}}

/* ══ XP BAR HEADER ══ */
.xp-bar-wrap{display:flex;align-items:center;gap:8px;background:rgba(0,0,0,.18);padding:4px 10px;border-radius:var(--rsm);cursor:pointer;transition:background .2s;flex-shrink:0}
.xp-bar-wrap:hover{background:rgba(var(--acr),.15)}
.xp-lvl-badge{font-family:var(--fd);color:var(--ac);font-size:.78em;font-weight:700;letter-spacing:1px;white-space:nowrap}
.xp-bar-bg{width:64px;height:6px;background:var(--bg3);border-radius:3px;overflow:hidden}
.xp-bar-fill{height:100%;background:linear-gradient(90deg,var(--ac),var(--ac2));border-radius:3px;transition:width .5s ease}
.xp-pts{color:var(--t2);font-size:.68em;white-space:nowrap}

/* ══ TOAST BADGE ══ */
.badge-toast{background:linear-gradient(135deg,rgba(var(--acr),.2),rgba(var(--acr),.08));border:1px solid var(--ac);color:var(--t1);padding:12px 18px;border-radius:var(--rsm);box-shadow:0 4px 20px var(--shadow);animation:ti .4s ease;display:flex;align-items:center;gap:12px;min-width:270px}
.badge-toast-ico{width:42px;height:42px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.badge-toast-top{font-size:.7em;color:var(--t2);text-transform:uppercase;letter-spacing:.7px}
.badge-toast-name{font-weight:700;color:var(--ac);font-size:.93em}
.badge-toast-xp{font-size:.7em;color:var(--t3);margin-top:2px}

/* ══ PANEL STATISTIQUES ══ */
.stats-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:11px;margin-bottom:26px}
.stat-box{background:var(--bg2);border:1.5px solid var(--br);border-radius:var(--rsm);padding:15px;text-align:center;transition:border-color .2s}
.stat-box:hover{border-color:rgba(var(--acr),.4)}
.stat-box-val{font-family:var(--fd);color:var(--ac);font-size:1.55em;font-weight:700;line-height:1.1}
.stat-box-lbl{color:var(--t3);font-size:.7em;margin-top:5px;text-transform:uppercase;letter-spacing:.7px}
.lvl-wrap{background:var(--bg2);border:1.5px solid var(--br);border-radius:var(--rsm);padding:18px;margin-bottom:20px}
.lvl-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.lvl-name{font-family:var(--fd);color:var(--ac);font-size:1.1em;font-weight:700;letter-spacing:1px}
.lvl-num{color:var(--t2);font-size:.82em;margin-top:2px}
.lvl-bar-bg{height:10px;background:var(--bg3);border-radius:5px;overflow:hidden;margin-bottom:5px}
.lvl-bar-fill{height:100%;background:linear-gradient(90deg,var(--ac),var(--ac2));border-radius:5px;transition:width .6s ease}
.lvl-xp-row{display:flex;justify-content:space-between;color:var(--t3);font-size:.73em}
.badges-title{font-family:var(--fd);color:var(--ac);font-size:.86em;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:14px;padding-bottom:6px;border-bottom:1px solid var(--br)}
.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:13px}
.badge-cell{text-align:center;padding:6px;border-radius:var(--rsm);transition:background .2s}
.badge-cell.unlocked:hover{background:rgba(var(--acr),.07);cursor:pointer}
.badge-svg-wrap{width:76px;height:76px;margin:0 auto 7px}
.badge-svg-wrap svg{width:100%;height:100%}
.badge-cell-name{color:var(--t1);font-size:.72em;font-weight:700;line-height:1.2;margin-bottom:2px}
.badge-cell-desc{color:var(--t3);font-size:.64em;line-height:1.3}
.badge-cell.locked .badge-cell-name,.badge-cell.locked .badge-cell-desc{color:var(--t3)}

/* ══ À PROPOS ══ */
.about-body{max-width:540px;margin:0 auto}
.about-section{margin-bottom:26px}
.about-section h3{font-family:var(--fd);color:var(--ac);font-size:.92em;font-weight:600;margin-bottom:9px;letter-spacing:1px;text-transform:uppercase}
.about-section p{color:var(--t2);font-size:.87em;line-height:1.8}
.soon-badge{display:inline-block;background:rgba(251,191,36,.13);color:#fbbf24;border:1px solid #fbbf24;padding:2px 10px;border-radius:20px;font-size:.72em;font-weight:700;letter-spacing:.5px;margin-left:8px;vertical-align:middle}


/* ══ CONVERTISSEUR LETTRES → NOMBRES ══ */
.l2n-layout{display:grid;grid-template-columns:1fr 1fr;gap:22px;height:calc(100vh - 120px);max-width:1000px;margin:0 auto}
.l2n-left{display:flex;flex-direction:column;gap:14px}
.l2n-right{display:flex;flex-direction:column;gap:14px}
.l2n-txta{flex:1;width:100%;padding:14px;background:var(--bgi);border:1.5px solid var(--br);color:var(--t1);border-radius:var(--r);font-family:var(--fb);font-size:1em;resize:none;min-height:160px;transition:all .2s;line-height:1.6}
.l2n-txta:focus{outline:none;border-color:var(--ac);box-shadow:var(--ifshadow)}
.l2n-txta::placeholder{color:var(--t3)}
.l2n-err{background:rgba(239,68,68,.1);color:#ef4444;padding:10px 14px;border-left:3px solid #ef4444;border-radius:0 var(--rsm) var(--rsm) 0;font-size:.84em;display:none}
.l2n-err.show{display:block;animation:slideD .2s ease}
/* Boîte résultat principale */
.l2n-res-box{background:var(--bg2);border:2px solid var(--br);border-radius:var(--r);padding:24px;text-align:center;transition:all .3s;position:relative;flex:1}
.l2n-res-box.has-result{border-color:var(--ac);box-shadow:0 0 20px var(--shadow)}
.l2n-res-label{color:var(--t3);font-size:.72em;text-transform:uppercase;letter-spacing:1px;margin-bottom:12px}
.l2n-res-num{font-family:var(--fd);color:var(--ac);font-size:clamp(2em,6vw,4em);font-weight:700;line-height:1.1;word-break:break-all}
.l2n-res-fmt{color:var(--t2);font-size:.9em;margin-top:6px;font-family:var(--fm)}
.l2n-res-empty{color:var(--t3);font-size:.95em;margin-top:20px}
/* Boîte stats résultat */
.l2n-stats{background:var(--bg2);border:1px solid var(--br);border-radius:var(--rsm);padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.l2n-stat-item{text-align:center}
.l2n-stat-val{color:var(--ac);font-weight:700;font-family:var(--fm);font-size:1em}
.l2n-stat-lbl{color:var(--t3);font-size:.7em;text-transform:uppercase;letter-spacing:.6px;margin-top:2px}
/* Exemples */
.l2n-ex-title{color:var(--t3);font-size:.7em;text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px}
.l2n-ex-btns{display:flex;flex-wrap:wrap;gap:5px}
.l2n-ex-btn{background:var(--bg3);border:1px solid var(--br);color:var(--t2);padding:5px 11px;border-radius:var(--rsm);cursor:pointer;font-size:.76em;transition:all .2s;font-family:var(--fm)}
.l2n-ex-btn:hover{border-color:var(--ac);color:var(--ac);background:rgba(var(--acr),.08)}
/* Bouton reconvertir */
.l2n-reconvert{display:none;background:linear-gradient(135deg,var(--ac),var(--ac2));color:var(--bg);border:none;padding:12px 20px;border-radius:var(--rsm);cursor:pointer;font-family:var(--fb);font-weight:700;font-size:.88em;width:100%;transition:all .3s;margin-top:6px}
.l2n-reconvert:hover{box-shadow:0 6px 18px var(--shadow);transform:translateY(-1px)}
.l2n-reconvert.show{display:block;animation:fsi .3s ease}
/* Responsive */
@media(max-width:700px){.l2n-layout{grid-template-columns:1fr;height:auto}}

/* ══ ANIMATIONS ══ */
@keyframes fsi{from{opacity:0;transform:translateY(11px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideD{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}
@keyframes ti{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}

/* ══ IMPRESSION ══ */
@media print{
  body>*:not(.ckov){display:none!important}
  .ckov{display:flex!important;position:static!important;background:none!important}
  .ckacts,.fsclose{display:none!important}
  .ck{box-shadow:none;border:1px solid #000}
}

/* ══ RESPONSIVE ══ */
@media(max-width:900px){
  .main-wrap{grid-template-columns:1fr}
  .left-panel{border-right:none;border-bottom:1px solid var(--br);max-height:52vh}
  .hdr-main{padding:11px 14px}
  .theme-dots{display:none}
  .right-panel{min-height:48vh}
  .mlgrid{grid-template-columns:1fr}
  .spanel{width:272px}
}
@media(max-width:600px){
  .url-bar{display:none}
  .right-panel{padding:14px}
  .tab-content{padding:14px}
  .cbtn{padding:3px 7px;font-size:.67em}
}

/* ══ BADGES AMÉLIORÉS ══ */
/* Badges verrouillés : nettement grisés */
.badge-cell.locked .badge-svg-wrap{filter:grayscale(1) brightness(.55);opacity:.65;transition:filter .3s,opacity .3s}
.badge-cell.locked:hover .badge-svg-wrap{filter:grayscale(.4) brightness(.7);opacity:.85}
.badge-cell.locked .badge-cell-name{color:var(--t3)!important;opacity:.6}
.badge-cell.locked .badge-cell-desc{opacity:.4}
/* Badges débloqués : légère brillance et hover */
.badge-cell.unlocked .badge-svg-wrap{filter:drop-shadow(0 2px 8px rgba(0,0,0,.4));transition:transform .2s,filter .2s}
.badge-cell.unlocked:hover .badge-svg-wrap{transform:scale(1.08);filter:drop-shadow(0 4px 14px rgba(0,0,0,.5))}
/* Barre de progression sur les badges verrouillés */
.badge-prog-wrap{width:100%;height:5px;background:var(--bg3);border-radius:3px;overflow:hidden;margin:5px 0 2px}
.badge-prog-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--ac),var(--ac2));transition:width .6s ease}
.badge-prog-txt{font-size:.6em;color:var(--t3);text-align:center}
/* Badge récemment débloqué : animation pop */
@keyframes badgePop{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
.badge-cell.just-unlocked .badge-svg-wrap{animation:badgePop .5s ease forwards}
/* Toast badge amélioré */
.badge-toast{min-width:300px;max-width:400px;cursor:pointer}
.badge-toast:hover{transform:translateX(-4px)!important}
/* Motiv toast (encouragement) */
.motiv-toast{background:linear-gradient(135deg,rgba(var(--acr),.15),rgba(var(--ac2r,var(--acr)),.08));border:1px solid rgba(var(--acr),.4);color:var(--t1);padding:10px 16px;border-radius:var(--rsm);box-shadow:0 4px 20px var(--shadow);animation:ti .3s ease;display:flex;align-items:center;gap:10px;font-size:.84em}
.motiv-toast-ico{font-size:1.3em}
/* XP pulse quand gagné */
@keyframes xpPulse{0%{transform:scale(1)}50%{transform:scale(1.06)}100%{transform:scale(1)}}
.xp-bar-wrap.pulse{animation:xpPulse .4s ease}
/* Milestone banner */
@keyframes bannerIn{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
.milestone-banner{position:fixed;top:70px;left:50%;transform:translateX(-50%);z-index:9500;
  background:linear-gradient(135deg,var(--ac),var(--ac2));color:var(--bg);
  padding:12px 28px;border-radius:var(--r);box-shadow:0 8px 30px var(--shadow);
  font-weight:700;font-family:var(--fd);font-size:.95em;letter-spacing:1px;
  animation:bannerIn .4s ease;pointer-events:none}

/* ══ OPTIONS AVANCÉES ══ */
.adv-toggle{width:100%;background:none;border:1.5px dashed rgba(var(--acr),.35);color:var(--t2);padding:9px 14px;cursor:pointer;border-radius:var(--rsm);font-family:var(--fb);font-size:.84em;font-weight:600;display:flex;align-items:center;gap:8px;transition:all .2s;text-align:left}
.adv-toggle:hover,.adv-toggle[aria-expanded="true"]{border-color:var(--ac);color:var(--ac);background:rgba(var(--acr),.06)}
.adv-toggle-icon{font-size:1em}
.adv-arrow{margin-left:auto;transition:transform .3s;font-size:.75em}
.adv-toggle[aria-expanded="true"] .adv-arrow{transform:rotate(180deg)}
.adv-opts{overflow:hidden;max-height:0;opacity:0;transition:max-height .35s ease,opacity .25s ease;display:flex;flex-direction:column;gap:12px}
.adv-opts.open{max-height:400px;opacity:1}
.adv-hint{font-size:.7em;color:var(--t3);font-weight:400;margin-left:8px;font-style:italic}

/* ══ MENTIONS LÉGALES ══ */
.legal-body{max-width:700px;margin:0 auto;display:flex;flex-direction:column;gap:0}
.legal-section{padding:22px 0;border-bottom:1px solid var(--br)}
.legal-section:last-child{border-bottom:none}
.legal-section h3{font-family:var(--fd);color:var(--ac);font-size:.95em;font-weight:600;margin-bottom:14px;letter-spacing:.8px;text-transform:uppercase}
.legal-section p{color:var(--t2);font-size:.87em;line-height:1.8;margin-bottom:8px}
.legal-section p:last-child{margin-bottom:0}
.legal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:14px}
.legal-item{background:var(--bg2);border:1px solid var(--br);border-radius:var(--rsm);padding:12px}
.legal-item-title{color:var(--ac);font-size:.72em;font-weight:700;text-transform:uppercase;letter-spacing:.7px;margin-bottom:6px}
.legal-item p{color:var(--t1);font-size:.82em;line-height:1.5;margin:0}
.legal-link{color:var(--ac);text-decoration:none;font-size:.82em}
.legal-link:hover{text-decoration:underline}
.legal-links-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:6px}
.legal-tag{background:rgba(var(--acr),.1);color:var(--ac);border:1px solid rgba(var(--acr),.3);padding:3px 10px;border-radius:20px;font-size:.74em;text-decoration:none;transition:background .2s}
.legal-tag:hover{background:rgba(var(--acr),.2)}
.legal-tech-grid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.legal-tech-tag{background:var(--bg2);border:1px solid var(--br);color:var(--t2);padding:4px 12px;border-radius:var(--rsm);font-size:.78em;font-family:var(--fm);font-weight:600}
.legal-rgpd-badge{display:inline-block;background:rgba(34,197,94,.12);color:#16a34a;border:1px solid #16a34a;padding:4px 14px;border-radius:20px;font-size:.78em;font-weight:700;margin-bottom:12px}
.legal-list{color:var(--t2);font-size:.87em;line-height:1.8;padding-left:18px;margin:8px 0}
.legal-list li{margin-bottom:3px}
.legal-no{color:var(--t3);font-size:.8em;margin-top:10px}
.legal-licence-header{background:linear-gradient(135deg,rgba(var(--acr),.12),rgba(var(--acr),.05));border:1.5px solid rgba(var(--acr),.3);border-radius:var(--rsm);padding:12px 16px;font-family:var(--fd);color:var(--ac);font-weight:700;font-size:.95em;margin-bottom:12px}
.legal-licence-block{border-radius:var(--rsm);padding:14px 16px;margin:10px 0}
.legal-licence-block.allowed{background:rgba(34,197,94,.06);border:1px solid rgba(34,197,94,.25)}
.legal-licence-block.forbidden{background:rgba(239,68,68,.06);border:1px solid rgba(239,68,68,.25)}
.legal-licence-block-title{font-weight:700;font-size:.85em;margin-bottom:8px;color:var(--t1)}
.legal-copyright{background:var(--bg2);border:1px solid var(--br);border-radius:var(--rsm);padding:10px 14px;font-size:.82em;color:var(--t2);margin:12px 0}

/* ══ ONGLETS STATS ══ */
.stab-bar{display:flex;gap:4px;padding:2px;background:var(--bg3);border-radius:var(--rsm)}
.stab{flex:1;background:none;border:none;color:var(--t2);padding:8px 10px;cursor:pointer;border-radius:calc(var(--rsm) - 1px);font-family:var(--fb);font-size:.82em;font-weight:600;transition:all .2s;position:relative}
.stab:hover{color:var(--ac);background:rgba(var(--acr),.08)}
.stab.on{background:var(--bg2);color:var(--ac);box-shadow:0 1px 4px var(--shadow)}
.stab-event-dot{color:var(--ac);animation:pulse 1.5s infinite}
.stab-content{display:none;animation:fsi .2s ease}
.stab-content.on{display:block}

/* ══ ÉVÉNEMENTS SAISONNIERS ══ */
.events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.ev-card{background:var(--bg2);border:2px solid var(--br);border-radius:var(--r);padding:16px;position:relative;overflow:hidden;transition:all .25s}
.ev-card.ev-active{border-color:var(--ac);box-shadow:0 4px 20px var(--shadow)}
.ev-card.ev-done{border-color:#16a34a;opacity:.85}
.ev-card.ev-inactive{opacity:.5}
.ev-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.ev-card.ev-active::before{background:linear-gradient(90deg,var(--ac),var(--ac2));animation:scanline 2s linear infinite}
.ev-card.ev-done::before{background:#16a34a}
@keyframes scanline{0%{background-position:0%}100%{background-position:200%}}
.ev-icon{font-size:2em;margin-bottom:8px;display:block}
.ev-name{font-weight:700;color:var(--t1);font-size:.92em;margin-bottom:4px}
.ev-month{color:var(--ac);font-size:.7em;font-weight:700;text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px}
.ev-desc{color:var(--t2);font-size:.78em;line-height:1.4;margin-bottom:10px}
.ev-xp{display:inline-block;background:rgba(var(--acr),.12);color:var(--ac);border:1px solid rgba(var(--acr),.3);padding:2px 8px;border-radius:20px;font-size:.7em;font-weight:700;margin-bottom:8px}
/* Timer de compte à rebours */
.ev-timer{background:var(--bg3);border-radius:var(--rsm);padding:8px;text-align:center;margin-top:8px}
.ev-timer-label{color:var(--t3);font-size:.65em;text-transform:uppercase;letter-spacing:.6px;margin-bottom:4px}
.ev-timer-val{font-family:var(--fm);color:var(--ac);font-size:.95em;font-weight:700;letter-spacing:2px}
.ev-timer-val.urgent{color:#ef4444;animation:timerPulse .8s infinite}
@keyframes timerPulse{0%,100%{opacity:1}50%{opacity:.5}}
/* Condition hint */
.ev-cond{font-size:.72em;color:var(--t3);margin-bottom:6px}
.ev-cond strong{color:var(--t2)}
/* Badge "Obtenu" */
.ev-earned-badge{background:rgba(22,163,74,.12);color:#16a34a;border:1px solid #16a34a;padding:3px 10px;border-radius:20px;font-size:.72em;font-weight:700;display:inline-block;margin-top:4px}
/* Progress bar events */
.ev-prog-bg{height:6px;background:var(--bg3);border-radius:3px;overflow:hidden;margin-top:6px}
.ev-prog-fill{height:100%;border-radius:3px;transition:width .6s ease}
.ev-prog-fill.active-fill{background:linear-gradient(90deg,var(--ac),var(--ac2));animation:progShimmer 2s linear infinite}
@keyframes progShimmer{0%{filter:brightness(1)}50%{filter:brightness(1.3)}100%{filter:brightness(1)}}

/* ══ CONFETTIS ══ */
@keyframes confettiFall{
  0%{transform:translateY(0) rotate(0deg) scale(1);opacity:1}
  80%{opacity:1}
  100%{transform:translateY(110vh) rotate(720deg) scale(.5);opacity:0}
}
@keyframes confettiSway{
  0%,100%{margin-left:0}
  25%{margin-left:20px}
  75%{margin-left:-20px}
}

/* ══ PROGRESS BARS BADGES AMÉLIORÉES ══ */
.badge-prog-wrap{width:100%;height:6px;background:var(--bg3);border-radius:3px;overflow:hidden;margin:6px 0 2px}
.badge-prog-fill{height:100%;border-radius:3px;transition:width .8s cubic-bezier(.34,1.56,.64,1)}
.badge-prog-fill.prog-low   {background:rgba(239,68,68,.7)}
.badge-prog-fill.prog-mid   {background:rgba(251,191,36,.8)}
.badge-prog-fill.prog-high  {background:rgba(var(--acr),.9)}
.badge-prog-fill.prog-done  {background:#16a34a}
.badge-prog-txt{font-size:.62em;color:var(--t3);text-align:center}
/* Animation pulsante sur badge proche */
.badge-cell.almost-there .badge-svg-wrap{animation:almostPulse 1.5s ease infinite}
@keyframes almostPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}

/* Badges verrouillés : fond visible pour éviter l'impression de "vide" */
.badge-cell.locked{background:rgba(var(--acr),.03);border:1px dashed var(--br);border-radius:var(--rsm);padding:8px 4px}
.badge-cell.unlocked{background:rgba(var(--acr),.05);border:1px solid rgba(var(--acr),.2);border-radius:var(--rsm);padding:8px 4px}

/* Intro message mentions légales */
.legal-intro-msg{background:linear-gradient(135deg,rgba(var(--acr),.08),rgba(var(--acr),.03));border-left:3px solid var(--ac);border-radius:0 var(--rsm) var(--rsm) 0;padding:14px 16px;margin-bottom:14px}
.legal-intro-msg p{color:var(--t2);font-size:.87em;line-height:1.7;margin:0}

/* ══ STATS DÉFILEMENT UNIQUE ══ */
.stats-single-scroll{padding:0 !important}
.stats-section{padding:22px 26px;border-bottom:1px solid var(--br)}
.stats-section:last-child{border-bottom:none;padding-bottom:28px}
.stats-section-header{font-family:var(--fd);color:var(--ac);font-size:.9em;font-weight:700;
  text-transform:uppercase;letter-spacing:1.5px;margin-bottom:16px;padding-bottom:8px;
  border-bottom:2px solid rgba(var(--acr),.2);display:flex;align-items:center;gap:8px}
/* Onglets → anchors visuels */
.stab-bar{position:sticky;top:0;z-index:10;background:var(--bg2);
  border-bottom:1px solid var(--br);padding:8px 26px;display:flex;gap:6px}
.stab{flex:0 0 auto;font-size:.8em;padding:6px 14px}
/* Override ancien display:none */
.stab-content{display:block !important}

/* ══ GRAPHIQUES ══ */
.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.chart-card{background:var(--bg3);border:1px solid var(--br);border-radius:var(--r);
  padding:16px;text-align:center;position:relative;overflow:hidden}
.chart-title{font-size:.72em;color:var(--t3);text-transform:uppercase;letter-spacing:.8px;
  font-weight:700;margin-bottom:12px}
.chart-value{font-family:var(--fd);color:var(--ac);font-size:1.4em;font-weight:700}
.chart-sub{font-size:.72em;color:var(--t3);margin-top:4px}
/* SVG ring/donut */
@keyframes ringFill{from{stroke-dashoffset:var(--ring-max)}to{stroke-dashoffset:var(--ring-end)}}
.ring-anim{animation:ringFill 1.2s cubic-bezier(.34,1.1,.64,1) forwards}
/* Barres horizontales animées */
.hbar-wrap{text-align:left;margin-top:10px}
.hbar-row{margin-bottom:8px}
.hbar-label{font-size:.73em;color:var(--t2);display:flex;justify-content:space-between;margin-bottom:3px}
.hbar-bg{height:8px;background:var(--bg2);border-radius:4px;overflow:hidden;border:1px solid var(--br)}
.hbar-fill{height:100%;border-radius:4px;width:0;transition:width 1.2s cubic-bezier(.34,1.1,.64,1)}
/* Radar chart */
@keyframes radarFade{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
.radar-anim{animation:radarFade .8s ease forwards}
/* Responsive charts */
@media(max-width:600px){.charts-grid{grid-template-columns:1fr}}

/* ══ BADGE COIN TIMER MISSIONS ══ */
.ev-corner-badge{position:absolute;top:10px;right:10px;padding:3px 9px;border-radius:20px;
  font-size:.68em;font-weight:800;letter-spacing:.5px;font-family:var(--fm);
  background:rgba(var(--acr),.15);color:var(--ac);border:1px solid rgba(var(--acr),.4)}
.ev-corner-badge.ev-corner-urgent{background:rgba(239,68,68,.15);color:#ef4444;border-color:#ef4444;animation:timerPulse .7s infinite}
.ev-corner-badge.ev-corner-warn{background:rgba(251,191,36,.15);color:#fbbf24;border-color:#fbbf24}
.ev-corner-badge.ev-corner-done{background:rgba(22,163,74,.15);color:#16a34a;border-color:#16a34a}

/* Stat boxes : taille fixe pour centrage uniforme */
.stat-box{flex:0 0 138px;min-width:120px}

/* ══ FOOTER AMÉLIORÉ ══ */
.fbot{flex-direction:column;gap:10px;text-align:center}
.fbot-main{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}
.fbot-urgency{background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(251,191,36,.08));
  border:1px solid rgba(239,68,68,.25);border-radius:var(--rsm);padding:8px 16px;
  display:flex;align-items:center;gap:8px;font-size:.82em;color:var(--t2);width:100%;
  justify-content:center;animation:urgencyGlow 3s ease-in-out infinite}
@keyframes urgencyGlow{0%,100%{box-shadow:none}50%{box-shadow:0 0 12px rgba(239,68,68,.2)}}
.fbot-urgency-dot{font-size:1.1em;animation:pulse 1.2s infinite}
#footerUrgencyMsg{font-weight:600}
#footerUrgencyMsg strong{color:#ef4444}

/* ══ MINI-JEU NOMBRE MYSTÈRE ══ */
.game-hbtn{background:linear-gradient(135deg,rgba(var(--acr),.18),rgba(var(--acr),.06));
  border-color:rgba(var(--acr),.4)!important;color:var(--ac)!important;font-size:1em;
  animation:gameGlow 3s ease-in-out infinite}
@keyframes gameGlow{0%,100%{box-shadow:none}50%{box-shadow:0 0 12px rgba(var(--acr),.4)}}
/* Scorebar */
.gm-scorebar{display:flex;justify-content:space-around;background:var(--bg3);
  border-bottom:1px solid var(--br);padding:12px 0;flex-shrink:0;margin:-26px -26px 20px}
.gm-sitem{text-align:center}
.gm-sval{font-family:var(--fd);color:var(--ac);font-size:1.3em;font-weight:700;line-height:1.1;
  transition:transform .2s}
.gm-sval.bump{animation:gmBump .3s ease}
@keyframes gmBump{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}
.gm-xpbet{color:#fbbf24!important}
.gm-slbl{color:var(--t3);font-size:.65em;text-transform:uppercase;letter-spacing:.6px;margin-top:2px}
/* Zone révélation */
.gm-reveal{margin-bottom:18px}
.gm-reveal-hint{color:var(--t3);font-size:.75em;text-transform:uppercase;letter-spacing:1px;margin-bottom:12px;text-align:center}
.gm-letters{font-family:var(--fm);font-size:clamp(1.1em,4vw,1.8em);letter-spacing:.12em;
  line-height:1.8;min-height:3em;word-break:break-word;color:var(--t1);
  background:var(--bg3);border:1.5px solid var(--br);border-radius:var(--rsm);
  padding:14px 18px;text-align:center;user-select:none}
.gl-vis{color:var(--ac);font-weight:700}
.gl-vis.gl-new{animation:glPop .4s cubic-bezier(.34,1.56,.64,1)}
@keyframes glPop{0%{transform:scale(.4) translateY(-6px);opacity:0}100%{transform:scale(1);opacity:1}}
.gl-hid{color:var(--bg3);text-shadow:0 0 4px var(--br);user-select:none}
/* Barre XP */
.gm-xptrack{height:7px;background:var(--bg3);border-radius:4px;overflow:hidden;
  border:1px solid var(--br);margin:12px 0 6px}
.gm-xpfill{height:100%;border-radius:4px;
  background:linear-gradient(90deg,#ef4444 0%,#fbbf24 40%,#4ade80 100%);
  transition:width .6s ease}
.gm-letcount{font-size:.72em;color:var(--t3);text-align:center}
/* Input + feedback */
.gm-input-row{display:flex;gap:8px;margin-bottom:12px}
.gm-input{flex:1;padding:11px 14px;background:var(--bgi);border:1.5px solid var(--br);
  color:var(--t1);border-radius:var(--rsm);font-family:var(--fm);font-size:1.05em;
  -moz-appearance:textfield;outline:none}
.gm-input:focus{border-color:var(--ac);box-shadow:var(--ifshadow)}
.gm-input::-webkit-outer-spin-button,.gm-input::-webkit-inner-spin-button{-webkit-appearance:none}
.gm-feedback{padding:13px 16px;border-radius:var(--rsm);font-size:.9em;font-weight:600;
  text-align:center;margin-bottom:12px;animation:fsi .25s ease}
.gm-ok{background:rgba(22,163,74,.1);color:#16a34a;border:1px solid rgba(22,163,74,.35)}
.gm-ko{background:rgba(239,68,68,.09);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.gm-skip{background:rgba(148,163,184,.08);color:#94a3b8;border:1px solid rgba(148,163,184,.25)}
/* Actions */
.gm-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}

/* ══ SPACE INVADERS ══ */
.inv-touch-bar{display:flex;justify-content:space-between;align-items:center;
  padding:10px 20px;gap:10px;width:100%;max-width:560px;background:var(--bg2)}
.inv-touch-btn{background:var(--bg3);border:1.5px solid var(--br);color:var(--t1);
  padding:12px 28px;border-radius:var(--rsm);font-size:1.2em;cursor:pointer;
  transition:background .1s;-webkit-user-select:none;user-select:none;touch-action:manipulation}
.inv-touch-btn:active,.inv-fire-btn:active{background:rgba(var(--acr),.2)}
.inv-fire-btn{color:var(--ac);border-color:rgba(var(--acr),.4);padding:12px 36px}

/* ══ STAR WARS CRAWL ══ */
.sw-scene{width:100%;height:380px;background:#000;overflow:hidden;
  display:flex;align-items:flex-end;justify-content:center;
  perspective:350px;perspective-origin:50% 60%}
.sw-crawl{width:70%;max-width:420px;transform-style:preserve-3d;
  transform:rotateX(22deg);transform-origin:center bottom;
  animation:swScroll 55s linear forwards}
@keyframes swScroll{
  0%{transform:rotateX(22deg) translateY(100%);opacity:1}
  92%{opacity:1}
  100%{transform:rotateX(22deg) translateY(-280%);opacity:0}
}
.sw-episode{color:#ffe81f;font-family:var(--fd);font-size:1.1em;font-weight:700;
  text-align:center;margin-bottom:8px;letter-spacing:3px}
.sw-subtitle{color:#aaa;font-size:.8em;text-align:center;margin-bottom:20px;
  letter-spacing:1.5px;font-style:italic}
.sw-text{color:#ffe81f;font-size:.82em;line-height:1.9;text-align:center}
.sw-text h3{color:#fff;font-size:1.05em;margin:18px 0 8px;letter-spacing:1.5px}
.sw-text .sw-sep{color:#ffe81f;opacity:.4;margin:12px 0}

/* Badge "Site gratuit, sans publicité" */
.free-ads-badge{background:rgba(34,197,94,.12);color:#16a34a;border:1.5px solid rgba(34,197,94,.4);
  padding:5px 13px;border-radius:20px;font-size:.78em;font-weight:700;letter-spacing:.2px}

/* ══ BANNIÈRE STAR WARS — proéminente ══ */
.legal-sw-hero{background:linear-gradient(135deg,rgba(255,232,31,.1),rgba(0,0,0,.55));
  border:2px solid rgba(255,232,31,.5);border-radius:var(--r);padding:20px 22px;margin-bottom:20px}
.legal-sw-hero-top{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.legal-sw-hero-ico{font-size:2.4em;flex-shrink:0}
.legal-sw-hero-title{color:#ffe81f;font-family:var(--fd);font-weight:700;font-size:1.05em;margin-bottom:4px}
.legal-sw-hero-sub{color:#ddd;font-size:.82em;opacity:.85}
.legal-sw-speeds{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.legal-sw-speed-lbl{color:#aaa;font-size:.76em;text-transform:uppercase;letter-spacing:.6px;margin-right:2px}
.sw-speed-btn{background:rgba(255,255,255,.06);border:1.5px solid rgba(255,232,31,.3);color:#ddd;
  padding:5px 13px;border-radius:20px;font-size:.78em;cursor:pointer;transition:all .15s;font-family:var(--fb)}
.sw-speed-btn:hover{border-color:#ffe81f;color:#ffe81f}
.sw-speed-btn.on{background:rgba(255,232,31,.18);border-color:#ffe81f;color:#ffe81f;font-weight:700}
.legal-sw-launch{width:100%;background:linear-gradient(135deg,#ffe81f,#d4b800);color:#000;
  border:none;padding:13px 20px;border-radius:var(--rsm);font-weight:800;font-size:.92em;
  cursor:pointer;letter-spacing:.4px;transition:transform .15s,box-shadow .15s;font-family:var(--fb)}
.legal-sw-launch:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(255,232,31,.35)}

/* ══ BOUTON QUITTER EN MODE CINÉMA ══ */
.sw-exit-btn{position:absolute;top:18px;right:18px;z-index:10;background:rgba(255,255,255,.08);
  border:1.5px solid rgba(255,232,31,.4);color:#ffe81f;padding:8px 16px;border-radius:var(--rsm);
  font-size:.82em;cursor:pointer;font-family:var(--fb);transition:background .15s}
.sw-exit-btn:hover{background:rgba(255,232,31,.18)}
