/* ===================================================================
   DragonLoot Express (autonome) — base, accueil, SweetAlert sombre
   Le jeu lui-même est stylé par dragonloot_mini.css.
   =================================================================== */
*, *::before, *::after{box-sizing:border-box;}
/* mêmes couleurs que le jeu (.dl-shell), pour que l'accueil et les fenêtres les partagent */
:root{--dl-bg:#0c0e11; --dl-panel:rgba(21,24,29,0.9); --dl-panel-2:#1c2026; --dl-line:#2a2f37;
  --dl-ink:#EFE8D8; --dl-soft:#B5AC9B; --dl-faint:#7F786C; --dl-gold:#F4B942; --dl-gold-deep:#E89B2C;}
html, body{margin:0; padding:0; background:#0c0e11; color:#EFE8D8; overscroll-behavior-y:none;}
body{font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing:antialiased;}
h1, h2, h3, p{margin-top:0;}
button, select, input{font:inherit;}
a{color:#F4B942;}
[hidden]{display:none !important;}
html:not(.dle-ready) body{opacity:0;}
.fraunces-600{font-family:"Fraunces", serif; font-optical-sizing:auto; font-weight:600; font-variation-settings:"SOFT" 0, "WONK" 0;}
.inter{font-family:"Inter", sans-serif; font-weight:400;}
.inter-600{font-family:"Inter", sans-serif; font-weight:600;}

/* ---------- en-tête du jeu : titre à gauche, profil à droite ---------- */
.dl-top-inner{justify-content:space-between;}
.dl-brand{margin-right:auto;}
.dle-profile-chip{order:3; cursor:pointer; color:var(--dl-ink); font-size:0.85rem; max-width:180px;}
.dle-profile-chip b{overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600;}
.dle-profile-chip:hover{border-color:var(--dl-gold);}
@media (max-width:600px){
  .dle-profile-chip{padding:5px 9px;}
  .dle-profile-chip b{display:none;}
}
.dle-save-desc{color:var(--dl-soft); font-size:0.85rem; line-height:1.5; margin:14px 0 12px;}
.dle-save-btns{display:flex; gap:8px; flex-wrap:wrap; padding-bottom:16px;}

/* ---------- accueil (v2.0.0 : relooké) ---------- */
.dle-home{position:relative; min-height:100vh; overflow:hidden; padding:0 18px 40px;
  background:radial-gradient(90% 55% at 50% 0%, rgba(215,38,61,0.22) 0%, transparent 60%), radial-gradient(70% 45% at 50% 32%, rgba(244,185,66,0.12) 0%, transparent 70%),
             linear-gradient(180deg, #171a21 0%, #0c0e11 55%, #0a0b0e 100%);}
.dle-home-bg{position:absolute; inset:0; pointer-events:none; overflow:hidden;}
.dle-hp{position:absolute; bottom:-20px; border-radius:50%; opacity:0; animation:dle-rise 12s linear infinite;}
.dle-hp.coin{background:radial-gradient(circle at 35% 35%, #fff3b0, #F4B942 45%, #9a6b12); box-shadow:0 0 10px rgba(244,185,66,0.45);}
.dle-hp.ember{background:#ff8a1f; box-shadow:0 0 8px #ff8a1f, 0 0 16px rgba(255,77,77,0.6);}
@keyframes dle-rise{0%{transform:translate(0, 0) rotate(0); opacity:0;} 10%{opacity:.8;} 70%{opacity:.5;} 100%{transform:translate(30px, -105vh) rotate(260deg); opacity:0;}}
.dle-home-wrap{position:relative; max-width:760px; margin:0 auto; padding-top:calc(16px + env(safe-area-inset-top, 0px));}
.dle-lang{display:flex; justify-content:flex-end; align-items:center; gap:8px; font-size:0.82rem; color:#B5AC9B; flex-wrap:wrap;}
.dle-home-anim{display:inline-flex; align-items:center; gap:7px; margin-right:auto; cursor:pointer; background:rgba(21,24,29,0.85); border:1px solid #2a2f37; border-radius:999px; padding:4px 12px 4px 6px;}
.dle-home-anim :is(i,svg){color:#F4B942;}
html.dle-reduce .dle-home-bg, html.dle-reduce .dle-hc, html.dle-reduce .dle-hero-spark{display:none !important;}
.dle-lang .dl-select{background:#15181d; color:#EFE8D8; border:1px solid #2a2f37; border-radius:10px; padding:6px 10px;}
/* héros animé : dragon qui plane au-dessus d'un coffre d'où jaillissent des pièces */
.dle-hero{text-align:center; padding:6px 0 10px;}
.dle-hero-stage{position:relative; width:260px; height:190px; margin:0 auto 4px;}
.dle-hero-glow{position:absolute; left:50%; bottom:10px; width:220px; height:120px; transform:translateX(-50%); border-radius:50%;
  background:radial-gradient(closest-side, rgba(244,185,66,0.45), transparent); filter:blur(6px); animation:dle-glow 3s ease-in-out infinite;}
.dle-hero-rays{position:absolute; left:50%; bottom:34px; width:200px; height:200px; margin-left:-100px; border-radius:50%; opacity:.35;
  background:repeating-conic-gradient(from 0deg, rgba(244,185,66,0.5) 0 6deg, transparent 6deg 24deg); -webkit-mask:radial-gradient(closest-side, #000 20%, transparent 72%);
  mask:radial-gradient(closest-side, #000 20%, transparent 72%); animation:dle-spin 22s linear infinite;}
.dle-hero-dragon{position:absolute; left:50%; top:0; margin-left:-62px; font-size:5.4rem; color:#D7263D; filter:drop-shadow(0 0 24px rgba(215,38,61,0.6));
  animation:dle-fly 5s ease-in-out infinite;}
.dle-hero-chest{position:absolute; left:50%; bottom:8px; margin-left:-34px; font-size:3.4rem; color:#F4B942; filter:drop-shadow(0 0 16px rgba(244,185,66,0.7));
  animation:dle-chest 3s ease-in-out infinite;}
.dle-hc{position:absolute; left:50%; top:10px; font-size:.95rem; color:#ffd23f; opacity:0; animation:dle-coin 3s ease-out infinite;}
.dle-hc.c0{--x:-70px; --y:-60px; animation-delay:0s;} .dle-hc.c1{--x:60px; --y:-70px; animation-delay:.3s;} .dle-hc.c2{--x:-30px; --y:-90px; animation-delay:.6s;}
.dle-hc.c3{--x:90px; --y:-40px; animation-delay:.9s;} .dle-hc.c4{--x:-95px; --y:-30px; animation-delay:1.2s;} .dle-hc.c5{--x:20px; --y:-100px; animation-delay:1.5s;}
.dle-hc.c6{--x:-55px; --y:-80px; animation-delay:1.8s;} .dle-hc.c7{--x:75px; --y:-85px; animation-delay:2.1s;} .dle-hc.c8{--x:-10px; --y:-70px; animation-delay:2.4s;}
.dle-hero-spark{position:absolute; width:10px; height:10px; background:#fff; opacity:0; clip-path:polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); animation:dle-twinkle 2.4s ease-in-out infinite;}
.dle-hero-spark.s1{left:-18px; top:0;} .dle-hero-spark.s2{right:-20px; top:14px; animation-delay:.8s;} .dle-hero-spark.s3{left:30px; top:-26px; animation-delay:1.6s;}
@keyframes dle-fly{0%,100%{transform:translate(-8px, 0) rotate(-4deg);} 50%{transform:translate(8px, -10px) rotate(3deg);}}
@keyframes dle-chest{0%,100%{transform:translateY(0) scale(1);} 8%{transform:translateY(-4px) scale(1.06, .95);} 16%{transform:translateY(0) scale(1);}}
@keyframes dle-coin{0%{transform:translate(-50%, 0) scale(.4); opacity:0;} 12%{opacity:1;} 100%{transform:translate(calc(-50% + var(--x)), var(--y)) scale(1) rotate(200deg); opacity:0;}}
@keyframes dle-twinkle{0%,100%{opacity:0; transform:scale(.3);} 50%{opacity:1; transform:scale(1);}}
@keyframes dle-glow{0%,100%{opacity:.8;} 50%{opacity:1; transform:translateX(-50%) scale(1.08);}}
@keyframes dle-spin{to{transform:rotate(360deg);}}
@keyframes dle-float{0%,100%{transform:translateY(0);} 50%{transform:translateY(-6px);}}
.dle-hero h1{font-size:clamp(2.2rem, 8vw, 3.4rem); margin:0; display:inline-flex; align-items:center; gap:12px;}
.dle-title-txt{background:linear-gradient(100deg, #EFE8D8 0%, #EFE8D8 35%, #ffe7a3 45%, #F4B942 50%, #ffe7a3 55%, #EFE8D8 65%, #EFE8D8 100%); background-size:250% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent; animation:dle-shine 6s ease-in-out infinite;}
@keyframes dle-shine{0%,100%{background-position:100% 0;} 50%{background-position:0 0;}}
.dle-hero h1 .dl-brand-tag{font-size:0.8rem; vertical-align:middle;}
.dle-hero p{color:#B5AC9B; margin:10px 0 0;}
.dle-news-chip{display:inline-flex; align-items:center; gap:8px; margin-top:14px; padding:6px 14px 6px 6px; border-radius:999px; cursor:pointer; font-size:.82rem;
  color:#EFE8D8; background:rgba(21,24,29,0.85); border:1px solid #5a4418; transition:border-color .15s ease, transform .15s ease;}
.dle-news-chip:hover{border-color:#F4B942; transform:translateY(-1px);}
.dle-news-chip :is(i,svg){color:#F4B942; font-size:.7rem;}
.dle-news-badge{white-space:nowrap; background:#F4B942; color:#2A1F0B; border-radius:999px; padding:2px 9px; font-weight:700; font-size:.74rem;}
.dle-h2{font-size:1.25rem; margin:24px 0 12px;}
.dle-h2-small{font-size:1rem; color:#B5AC9B;}
.dle-empty{color:#B5AC9B; background:rgba(21,24,29,0.8); border:1px dashed #3a3f48; border-radius:16px; padding:18px; text-align:center;}
/* cartes de profil */
.dle-profiles{display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:10px;}
.dle-profile{position:relative; display:flex; align-items:center; gap:14px; background:rgba(21,24,29,0.9); border:1px solid #2a2f37; border-radius:18px; padding:12px 14px;
  cursor:pointer; transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease; backdrop-filter:blur(4px);}
.dle-profile:hover, .dle-profile:focus-visible{border-color:#F4B942; transform:translateY(-2px); outline:none; box-shadow:0 10px 30px rgba(0,0,0,0.35);}
.dle-profile.dle-go{transform:scale(.98); border-color:#F4B942;}
.dle-profile-main{padding:18px; gap:18px; border-color:color-mix(in oklab, var(--c) 45%, #2a2f37);
  background:linear-gradient(120deg, color-mix(in oklab, var(--c) 16%, #15181d) 0%, rgba(21,24,29,0.92) 55%);
  box-shadow:0 0 0 1px color-mix(in oklab, var(--c) 18%, transparent), 0 14px 40px rgba(0,0,0,0.35);}
.dle-profile-main::before{content:""; position:absolute; inset:-1px; border-radius:inherit; padding:1px; pointer-events:none;
  background:linear-gradient(120deg, transparent 20%, rgba(244,185,66,0.7) 50%, transparent 80%) 0 0 / 250% 100%;
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask:linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  animation:dle-shine 5s ease-in-out infinite;}
.dle-ring{position:relative; flex:0 0 auto; width:58px; height:58px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:conic-gradient(#F4B942 calc(var(--p) * 1%), #2a2f37 0);}
.dle-profile-main .dle-ring{width:76px; height:76px;}
.dle-ring .dle-avatar{width:50px; height:50px;}
.dle-profile-main .dle-ring .dle-avatar{width:66px; height:66px; font-size:1.9rem;}
.dle-ring-lv{position:absolute; bottom:-6px; right:-6px; min-width:24px; height:24px; padding:0 6px; border-radius:999px; background:#F4B942; color:#2A1F0B; font-size:.72rem;
  display:flex; align-items:center; justify-content:center; box-shadow:0 0 0 3px #15181d;}
.dle-avatar{flex:0 0 auto; width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.4rem;
  color:var(--c); background:radial-gradient(circle at 50% 60%, color-mix(in oklab, var(--c) 25%, #1c2026), #111318); border:1px solid color-mix(in oklab, var(--c) 45%, transparent);}
.dle-p-info{flex:1; min-width:0; display:flex; flex-direction:column; gap:3px;}
.dle-p-info b{font-size:1.02rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.dle-profile-main .dle-p-info b{font-size:1.3rem;}
.dle-p-info small{color:#7F786C; font-size:0.8rem;}
.dle-p-info small :is(i,svg){color:#B5AC9B;}
.dle-chips{display:flex; gap:6px; flex-wrap:wrap; margin-top:4px;}
.dle-chip{display:inline-flex; align-items:center; gap:5px; font:600 .72rem "Inter", sans-serif; color:#B5AC9B; background:#121418; border:1px solid #2a2f37; border-radius:999px; padding:3px 9px;}
.dle-chip-fire{color:#ffb070; border-color:#5a3a14;} .dle-chip-fire :is(i,svg){color:#ff8a1f;}
.dle-chip-gift{color:#2A1F0B; background:#F4B942; border-color:#F4B942; animation:dle-pulse 1.6s ease-in-out infinite;}
.dle-chip-back{color:#9ff0b5; border-color:#2f6b3a;}
@keyframes dle-pulse{0%,100%{box-shadow:0 0 0 0 rgba(244,185,66,0.5);} 50%{box-shadow:0 0 0 6px rgba(244,185,66,0);}}
.dle-p-comp{flex:0 0 auto; font-size:2rem; color:var(--rar); filter:drop-shadow(0 0 10px color-mix(in oklab, var(--rar) 60%, transparent)); animation:dle-float 3.6s ease-in-out infinite;}
.dle-profile:not(.dle-profile-main) .dle-p-comp{font-size:1.4rem;}
.dle-p-play{color:#F4B942; font-size:0.88rem; white-space:nowrap;}
.dle-profile-main .dle-p-play{background:#F4B942; color:#2A1F0B; padding:11px 18px; border-radius:999px; box-shadow:0 4px 0 0 #E89B2C; font-size:.95rem;}
.dle-p-del{background:none; border:none; color:#7F786C; padding:8px; border-radius:8px; cursor:pointer;}
.dle-p-del:hover{color:#ff6b7d; background:#22262d;}
.dle-profile-main .dle-p-del{position:absolute; top:6px; right:6px; padding:6px; font-size:.8rem; opacity:.6;}
.dle-home-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:16px;}
.dle-cta{animation:dle-pulse 2s ease-in-out infinite;}
/* ce qu'on fait dans le jeu */
.dle-feats{display:grid; grid-template-columns:repeat(4, 1fr); gap:10px; margin:22px 0 14px;}
.dle-feat{display:flex; flex-direction:column; align-items:center; text-align:center; gap:5px; padding:14px 10px; border-radius:16px; background:rgba(21,24,29,0.75);
  border:1px solid #2a2f37; animation:dle-in .6s ease both; animation-delay:calc(var(--i) * .08s);}
.dle-feat b{font-size:.88rem;}
.dle-feat small{font-size:.74rem; color:#7F786C; line-height:1.4;}
.dle-feat-icon{width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.25rem; color:#F4B942;
  background:radial-gradient(circle at 50% 40%, rgba(244,185,66,0.22), #121418);}
.dle-feats-small{margin-top:28px; opacity:.85;}
.dle-feats-small .dle-feat{padding:10px 8px;}
@keyframes dle-in{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:none;}}
.dle-foot{margin-top:34px; text-align:center; color:#7F786C; font-size:0.78rem; line-height:1.6;}
.dle-foot p{margin:0 0 4px;}
@media (max-width:600px){
  .dle-p-play{display:none;}
  .dle-profile-main .dle-p-play{display:inline-flex; position:absolute; right:14px; bottom:14px; padding:9px 14px; font-size:.85rem;}
  .dle-profile-main{flex-wrap:wrap; padding-bottom:62px;}
  .dle-profile-main .dle-p-comp{position:absolute; left:18px; bottom:14px; font-size:1.7rem;}
  .dle-profiles{grid-template-columns:1fr;}
  .dle-news-chip{font-size:.76rem; text-align:left;}
  .dle-feats{grid-template-columns:repeat(2, 1fr);}
  .dle-hero-stage{width:220px; height:165px;}
  .dle-hero-dragon{font-size:4.6rem; margin-left:-52px;}
  .dle-hero-chest{font-size:3rem; margin-left:-30px;}
}
@media (prefers-reduced-motion: reduce){
  .dle-hero-dragon, .dle-hero-chest, .dle-hc, .dle-hero-rays, .dle-hero-glow, .dle-hp, .dle-title-txt, .dle-profile-main::before, .dle-chip-gift, .dle-p-comp, .dle-cta, .dle-hero-spark{animation:none;}
  .dle-hp, .dle-hc{display:none;}
}

/* ---------- SweetAlert2 sombre, bouton doré ---------- */
.swal2-container.swal2-backdrop-show{background:rgba(5,6,8,0.65);}
.swal2-container .swal2-popup{background:#16191e; color:#EFE8D8; border:1px solid #2a2f37; border-radius:20px; font-family:"Inter", sans-serif;}
.swal2-container .swal2-title{color:#EFE8D8; font-family:"Fraunces", serif; font-weight:600; font-size:1.3rem;}
.swal2-container .swal2-html-container{color:#B5AC9B;}
.swal2-container .swal2-styled{border-radius:999px; padding:10px 22px; font-weight:600;}
.swal2-container .swal2-styled.swal2-confirm{background:#F4B942; color:#2A1F0B; box-shadow:0 4px 0 0 #E89B2C; border:none;}
.swal2-container .swal2-styled.swal2-confirm:focus-visible{box-shadow:0 4px 0 0 #E89B2C, 0 0 0 3px rgba(244,185,66,.45);}
.swal2-container .swal2-styled.swal2-cancel{background:transparent; color:#EFE8D8; border:1.5px solid #2a2f37; box-shadow:none;}
.swal2-container .swal2-styled:focus{box-shadow:0 0 0 3px rgba(244,185,66,.45);}
.swal2-container .swal2-input{background:#0e1013; color:#EFE8D8; border:1.5px solid #2a2f37; border-radius:12px; box-shadow:none;}
.swal2-container .swal2-input:focus{border-color:#F4B942; box-shadow:0 0 0 3px rgba(244,185,66,.25);}
.swal2-container .swal2-validation-message{background:#1c2026; color:#ffb4bd;}
.swal2-container .swal2-icon.swal2-warning{border-color:#F4B942; color:#F4B942;}
.swal2-container .swal2-icon.swal2-error{border-color:#ff6b7d;}
.swal2-container .swal2-icon.swal2-error [class^=swal2-x-mark-line]{background-color:#ff6b7d;}
.swal2-container .swal2-icon.swal2-success{border-color:#7be38c; color:#7be38c;}
.swal2-container .swal2-icon.swal2-success [class^=swal2-success-line]{background-color:#7be38c;}
.swal2-container .swal2-icon.swal2-success .swal2-success-ring{border-color:rgba(123,227,140,.3);}
.swal2-container .swal2-icon.swal2-success [class^=swal2-success-circular-line], .swal2-container .swal2-icon.swal2-success .swal2-success-fix{background-color:#16191e !important;}

/* ---------- v1.0.1 ---------- */
/* historique plus long (100 coffres) : la liste défile dans sa boîte */
.dl-hist{max-height:min(560px, 70vh); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#3a3f48 transparent;}
/* carte « Version express » en bas des Paramètres */
.dle-about-card{position:relative; z-index:1; margin:24px 0 8px; background-color:#15181d;}
.dle-about-card .dl-btn{text-decoration:none;}
/* pied de page fixe, coin inférieur droit */
.dle-copy{position:fixed; right:calc(10px + env(safe-area-inset-right, 0px)); bottom:calc(8px + env(safe-area-inset-bottom, 0px)); z-index:5;
  font-size:0.72rem; color:var(--dl-faint); background:rgba(12,14,17,0.75); padding:3px 9px; border-radius:999px;
  pointer-events:none; user-select:none; font-variant-numeric:tabular-nums;}
body{padding-bottom:calc(30px + env(safe-area-inset-bottom, 0px));}

/* ---------- v1.1.0 : section Profil (nom, couleur du dragon) ---------- */
.dle-set-ctrl{display:flex; align-items:center; gap:10px; flex:0 0 auto;}
.dle-set-name{max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600;}
.dle-avatar-sm{width:36px; height:36px; font-size:1.05rem;}
.dle-color{width:44px; height:34px; padding:2px; border:1px solid var(--dl-line); border-radius:10px; background:#15181d; cursor:pointer;}
.dle-color::-webkit-color-swatch-wrapper{padding:0;}
.dle-color::-webkit-color-swatch{border:none; border-radius:7px;}
.dle-color::-moz-color-swatch{border:none; border-radius:7px;}
.dle-chip-dragon{display:inline-flex; transition:color .2s ease;}
.dl-chip .dle-chip-dragon :is(i,svg){color:inherit;}
@media (max-width:600px){
  .dle-profile-set .dl-set-row{flex-direction:column; align-items:flex-start; gap:10px;}
  .dle-set-name{max-width:55vw;}
}

/* ---------- v1.2.0 : icône et titre du profil ---------- */
.dle-avatar{position:relative;}
.dle-p-title{font-size:0.76rem; color:#d9c2ff; font-style:italic; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.dle-p-lv{color:#d9c2ff; font-weight:600;}
.dle-avatar-pick{display:grid; grid-template-columns:repeat(6, 36px); gap:6px; flex:0 0 auto;}
.dle-av-opt{width:36px; height:36px; border-radius:10px; border:1px solid var(--dl-line); background:#0e1013; color:var(--dl-soft); cursor:pointer;
  display:flex; align-items:center; justify-content:center; font-size:0.95rem; transition:border-color .15s ease, color .15s ease, transform .15s ease;}
.dle-av-opt:hover{border-color:var(--dl-gold); color:var(--dl-ink);}
.dle-av-opt.on{color:var(--c); border-color:var(--c); background:radial-gradient(circle, color-mix(in oklab, var(--c) 22%, #1c2026), #111318); transform:scale(1.06);}
.dle-avatar-row{cursor:default;}
.dle-title-select{max-width:220px;}
.dle-install{margin-top:14px;}
@media (max-width:600px){
  .dle-avatar-pick{grid-template-columns:repeat(6, 1fr); width:100%;}
  .dle-av-opt{width:auto; aspect-ratio:1; height:auto;}
  .dle-profile-set .dle-title-select{max-width:100%; width:100%;}
}

/* ---------- version cliquable → Nouveautés ---------- */
.dle-ver{pointer-events:auto; background:none; border:none; padding:0; font:inherit; color:var(--dl-gold); cursor:pointer; text-decoration:underline dotted; text-underline-offset:2px;}
.dle-ver:hover{color:#ffe27a;}
.dle-ver:focus-visible{outline:2px solid var(--dl-gold); outline-offset:2px; border-radius:4px;}
.dle-log-popup .swal2-html-container{text-align:left; margin:12px 18px 0; max-height:60vh; overflow-y:auto;}
.dle-log-popup .swal2-title :is(i,svg){color:var(--dl-gold);}
.dle-log-v{padding:12px 0; border-top:1px solid var(--dl-line);}
.dle-log-v:first-child{border-top:none; padding-top:4px;}
.dle-log-v h3{display:flex; align-items:center; gap:8px; margin:0 0 8px; font-size:0.95rem; color:var(--dl-ink); font-family:"Inter", sans-serif;}
.dle-log-v h3 small{margin-left:auto; color:var(--dl-faint); font-weight:400; font-size:0.75rem;}
.dle-log-num{font-weight:700; color:var(--dl-gold);}
.dle-log-now{font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; color:#2A1F0B; background:var(--dl-gold); border-radius:999px; padding:2px 8px;}
.dle-log-v ul{margin:0; padding-left:18px; color:var(--dl-soft); font-size:0.86rem; line-height:1.55;}
.dle-log-v:not(.latest) ul{color:var(--dl-faint); font-size:0.82rem;}

/* ---------- mise à jour prête ---------- */
.dle-update{position:fixed; left:50%; bottom:calc(40px + env(safe-area-inset-bottom, 0px)); transform:translateX(-50%); z-index:960;
  display:flex; align-items:center; gap:10px; background:#16191e; border:1px solid #5a4418; border-radius:999px; padding:8px 8px 8px 16px;
  box-shadow:0 10px 30px rgba(0,0,0,0.5); font-size:0.85rem; color:var(--dl-ink); max-width:calc(100vw - 24px);}
.dle-update :is(i,svg){color:var(--dl-gold);}

/* ---------- v1.3.0 : cadres de profil ---------- */
.dle-frame{border:none !important;}
.dle-frame-bronze{box-shadow:0 0 0 3px #b0703a, 0 0 0 5px #5a3418, 0 0 10px rgba(205,127,50,0.45);}
.dle-frame-silver{box-shadow:0 0 0 3px #d9dee6, 0 0 0 5px #6b7380, 0 0 12px rgba(220,230,245,0.45);}
.dle-frame-gold{box-shadow:0 0 0 3px #ffd700, 0 0 0 5px #8a6208, 0 0 16px rgba(255,215,0,0.55);}
.dle-frame-diamond, .dle-frame-mythic{box-shadow:0 0 16px rgba(160,230,255,0.55);}
.dle-frame-diamond::before, .dle-frame-mythic::before{content:""; position:absolute; inset:-4px; border-radius:50%; z-index:-1;
  background:conic-gradient(from 0deg, #e8fbff, #7fd8ff, #ffffff, #b9e8ff, #e8fbff); animation:dle-frame-spin 6s linear infinite;}
.dle-frame-mythic{box-shadow:0 0 20px rgba(255,120,220,0.55);}
.dle-frame-mythic::before{background:conic-gradient(from 0deg, #ff4d4d, #ffb14d, #fff04d, #4dff88, #4dc3ff, #9b6bff, #ff4dd2, #ff4d4d); animation-duration:4s;}
.dle-frame-diamond, .dle-frame-mythic{isolation:isolate;}
.dle-frame-diamond::after, .dle-frame-mythic::after{content:""; position:absolute; inset:0; border-radius:50%; z-index:-1;
  background:radial-gradient(circle at 50% 60%, color-mix(in oklab, var(--c, #d7263d) 25%, #1c2026), #111318);}
@keyframes dle-frame-spin{to{transform:rotate(360deg);}}
/* puce de profil de l'en-tête */
.dle-profile-chip[class*="dle-chipframe-"]{border-width:2px;}
.dle-chipframe-bronze{border-color:#b0703a !important;} .dle-chipframe-silver{border-color:#d9dee6 !important;}
.dle-chipframe-gold{border-color:#ffd700 !important; box-shadow:0 0 10px rgba(255,215,0,0.35);}
.dle-chipframe-diamond{border-color:#9fe2ff !important; box-shadow:0 0 10px rgba(160,230,255,0.45);}
.dle-chipframe-mythic{border-color:#ff8ad8 !important; box-shadow:0 0 12px rgba(255,120,220,0.45);}
/* choix du cadre */
.dle-frame-pick{display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; flex:0 1 auto;}
.dle-fr-opt{position:relative; width:40px; height:40px; border-radius:12px; border:1px solid var(--dl-line); background:#0e1013; color:var(--dl-soft); cursor:pointer;
  display:flex; align-items:center; justify-content:center; font-size:0.9rem; padding:0;}
.dle-fr-opt:hover:not(:disabled){border-color:var(--dl-gold);}
.dle-fr-opt.on{border-color:var(--dl-gold); background:#1c1a12; box-shadow:0 0 0 1px var(--dl-gold);}
.dle-fr-opt.locked{opacity:.45; cursor:not-allowed;}
.dle-fr-txt{font-size:0.62rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;}
.dle-fr-ring{position:relative; width:18px; height:18px; border-radius:50%; background:#15181d;}
.dle-fr-lock{position:absolute; right:3px; bottom:3px; font-size:0.55rem; color:var(--dl-faint);}
@media (max-width:600px){ .dle-frame-pick{justify-content:flex-start;} }
@media (prefers-reduced-motion: reduce){ .dle-frame-diamond::before, .dle-frame-mythic::before{animation:none;} }

/* ---------- tutoriel express ---------- */
.dle-tuto{position:fixed; inset:0; z-index:980; opacity:0; transition:opacity .25s ease;}
.dle-tuto[hidden]{display:none;}
.dle-tuto.open{opacity:1;}
.dle-tuto-hole{position:fixed; border-radius:16px; box-shadow:0 0 0 9999px rgba(5,6,8,0.72), 0 0 0 2px var(--dl-gold), 0 0 24px rgba(244,185,66,0.6);
  transition:all .3s ease; pointer-events:none;}
.dle-tuto-bubble{position:fixed; background:#16191e; border:1px solid #5a4418; border-radius:18px; padding:14px 16px; color:var(--dl-ink);
  box-shadow:0 14px 40px rgba(0,0,0,0.6); transition:top .3s ease, left .3s ease;}
.dle-tuto-bubble::before{content:""; position:absolute; left:var(--arrow, 50%); top:-8px; width:14px; height:14px; background:#16191e;
  border-left:1px solid #5a4418; border-top:1px solid #5a4418; transform:translateX(-50%) rotate(45deg);}
.dle-tuto-bubble.above::before{top:auto; bottom:-8px; transform:translateX(-50%) rotate(225deg);}
.dle-tuto-head{display:flex; align-items:center; gap:10px;}
.dle-tuto-head b{font-family:"Fraunces", serif; font-size:1.05rem;}
.dle-tuto-head small{margin-left:auto; color:var(--dl-faint); font-size:0.75rem;}
.dle-tuto-icon{width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#2A1F0B; background:linear-gradient(180deg,#ffe27a,#f4b942);}
.dle-tuto-bubble p{margin:10px 0 12px; color:var(--dl-soft); font-size:0.88rem; line-height:1.5;}
.dle-tuto-btns{display:flex; justify-content:flex-end; gap:8px;}

/* ---------- v1.4.0 : code secret ---------- */
.dle-code-box{margin-top:14px;}
.dle-code-ctrl{gap:8px;}
.dle-code-input{width:150px; background:#0e1013; color:var(--dl-ink); border:1px solid var(--dl-line); border-radius:10px; padding:8px 10px;
  font:600 0.9rem "Inter", sans-serif; letter-spacing:0.08em; text-transform:uppercase;}
.dle-code-input:focus{outline:none; border-color:var(--dl-gold);}
@media (max-width:600px){ .dle-code-box .dl-set-row{flex-direction:column; align-items:flex-start; gap:10px;} .dle-code-ctrl{width:100%;} .dle-code-input{flex:1; width:auto; min-width:0;} }

/* ---------- v1.4.0 : code QR ---------- */
.dle-qr-popup .swal2-title :is(i,svg){color:var(--dl-gold);}
.dle-qr{background:#fff; border-radius:14px; padding:10px; width:min(340px, 80vw); margin:6px auto 0; line-height:0;}
.dle-qr svg{width:100%; height:auto; display:block;}
.dle-qr-text{color:var(--dl-soft); font-size:0.88rem; line-height:1.5; margin:14px 0 6px;}
.dle-qr-note{color:var(--dl-faint); font-size:0.78rem; line-height:1.45; margin:0 0 12px;}
.dle-scan{position:relative; width:min(320px, 76vw); aspect-ratio:1; margin:6px auto 0; border-radius:16px; overflow:hidden; background:#000;}
.dle-scan video{width:100%; height:100%; object-fit:cover; display:block;}
.dle-scan-frame{position:absolute; inset:14%; border:3px solid var(--dl-gold); border-radius:14px; box-shadow:0 0 0 999px rgba(0,0,0,0.35); animation:dl-breathe 2s ease-in-out infinite;}

.dl-pet-actions .dl-btn{white-space:nowrap;}

/* ---------- v1.4.1 : confidentialité et mentions légales ---------- */
.dle-legal-btn{pointer-events:auto; background:none; border:none; padding:0 6px 0 0; margin-right:4px; border-right:1px solid var(--dl-line);
  color:var(--dl-faint); cursor:pointer; font-size:0.8rem; line-height:1;}
.dle-legal-btn:hover{color:var(--dl-gold);}
.dle-legal-btn:focus-visible{outline:2px solid var(--dl-gold); outline-offset:2px; border-radius:4px;}
.dle-legal section{padding:10px 0; border-top:1px solid var(--dl-line);}
.dle-legal section:first-child{border-top:none; padding-top:2px;}
.dle-legal h3{display:flex; align-items:center; gap:8px; margin:0 0 6px; font:600 0.92rem "Inter", sans-serif; color:var(--dl-ink);}
.dle-legal h3 :is(i,svg){color:var(--dl-gold); width:16px;}
.dle-legal ul{margin:0; padding-left:18px; color:var(--dl-soft); font-size:0.83rem; line-height:1.55;}
.dle-legal li + li{margin-top:3px;}
.dle-legal-upd{margin:10px 0 0; color:var(--dl-faint); font-size:0.75rem; text-align:right;}

/* =================================================================
   v1.6.1 — niveau dans l'en-tête, sous-onglets, navigation mobile
   ================================================================= */
/* ---------- niveau dans l'en-tête ---------- */
.dl-level-chip{position:relative; cursor:pointer; font:inherit; color:var(--dl-ink); gap:5px; overflow:hidden; padding-bottom:7px !important;}
.dl-level-chip .dl-lvchip-lbl{color:#d9c2ff; font-size:0.72rem; font-weight:600;}
.dl-level-chip b{color:#fff;}
.dl-level-chip .dl-stars{font-size:0.68rem;}
.dl-lvchip-bar{position:absolute; left:10px; right:10px; bottom:3px; height:3px; border-radius:999px; background:#2a2f38; overflow:hidden;}
.dl-lvchip-bar > span{display:block; height:100%; background:linear-gradient(90deg, #7b5cff, #b98cff); border-radius:999px;}
.dl-level-chip:hover{border-color:#b98cff;}
.dl-level-chip[aria-selected]{background:inherit;}
@media (max-width:520px){ .dl-level-chip .dl-lvchip-lbl{display:none;} }

/* ---------- sous-onglets (Butin, Forge) ---------- */
.dl-subtabs{display:flex; gap:4px; padding:4px; margin:0 auto 18px; width:fit-content; max-width:100%; overflow-x:auto; scrollbar-width:none;
  background:#0e1013; border:1px solid var(--dl-line); border-radius:14px;}
.dl-subtabs::-webkit-scrollbar{display:none;}
.dl-subtabs button{flex:0 0 auto; display:flex; align-items:center; gap:7px; background:none; border:none; color:var(--dl-soft); cursor:pointer;
  padding:8px 14px; border-radius:10px; font-size:0.86rem; white-space:nowrap; transition:background .15s ease, color .15s ease;}
.dl-subtabs button:hover{color:var(--dl-ink);}
.dl-subtabs button[aria-selected="true"]{background:var(--dl-panel); color:var(--dl-gold); box-shadow:0 0 0 1px var(--dl-line);}
.dl-subtabs button:focus-visible{outline:2px solid var(--dl-gold); outline-offset:1px;}
.dl-subbed [data-sub]{display:none;}
.dl-subbed[data-cur="treasure"] [data-sub="treasure"],
.dl-subbed[data-cur="rarities"] [data-sub="rarities"],
.dl-subbed[data-cur="collection"] [data-sub="collection"],
.dl-subbed[data-cur="dragons"] [data-sub="dragons"],
.dl-subbed[data-cur="album"] [data-sub="album"],
.dl-subbed[data-cur="hunt"] [data-sub="hunt"],
.dl-subbed[data-cur="season"] [data-sub="season"],
.dl-subbed[data-cur="quests"] [data-sub="quests"],
.dl-subbed[data-cur="upgrades"] [data-sub="upgrades"],
.dl-subbed[data-cur="shop"] [data-sub="shop"],
.dl-subbed[data-cur="ach"] [data-sub="ach"],
.dl-subbed[data-cur="level"] [data-sub="level"],
.dl-subbed[data-cur="calendar"] [data-sub="calendar"],
.dl-subbed[data-cur="summary"] [data-sub="summary"],
.dl-subbed[data-cur="odds"] [data-sub="odds"],
.dl-subbed[data-cur="history"] [data-sub="history"],
.dl-subbed[data-cur="records"] [data-sub="records"],
.dl-subbed[data-cur="game"] [data-sub="game"],
.dl-subbed[data-cur="profile"] [data-sub="profile"],
.dl-subbed[data-cur="save"] [data-sub="save"]{display:block; animation:dle-sub-in .22s ease;}
@keyframes dle-sub-in{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;}}
.dl-subbed [data-sub] > .dl-hoard-title:first-child, .dl-subbed [data-sub] > div:first-child > .dl-hoard-title:first-child{margin-top:0;}
.dl-sub-empty{display:none; text-align:center; color:var(--dl-faint); padding:30px 10px; font-size:0.9rem;}
[data-sub="dragons"]:not(:has(.dl-nest)) .dl-sub-empty{display:block;}

/* ---------- navigation mobile (barre du bas + menu) ---------- */
.dle-nav, .dle-sheet{display:none;}
@media (max-width:700px){
  .dl-tabs{display:none !important;}
  .dle-nav{display:flex; position:fixed; left:0; right:0; bottom:0; z-index:900; padding:6px 6px calc(6px + env(safe-area-inset-bottom, 0px));
    background:rgba(14,16,19,0.94); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-top:1px solid var(--dl-line);}
  .dle-nav button{flex:1 1 0; display:flex; flex-direction:column; align-items:center; gap:3px; background:none; border:none; color:var(--dl-faint);
    font-size:0.64rem; padding:6px 2px; border-radius:12px; cursor:pointer; -webkit-tap-highlight-color:transparent; min-width:0;}
  .dle-nav button :is(i,svg){font-size:1.15rem;}
  .dle-nav button span{max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .dle-nav button[aria-selected="true"], .dle-nav button.on{color:var(--dl-gold); background:rgba(244,185,66,0.10);}
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom, 0px));}
  .dle-copy{bottom:calc(72px + env(safe-area-inset-bottom, 0px));}
  .dle-update{bottom:calc(118px + env(safe-area-inset-bottom, 0px));}
  .dl-subtabs{margin-top:14px;}
  .dl-subtabs button{padding:8px 11px; font-size:0.8rem;}
  /* menu */
  .dle-sheet{display:block; position:fixed; inset:0; z-index:950; background:rgba(0,0,0,0); transition:background .2s ease;}
  .dle-sheet[hidden]{display:none;}
  .dle-sheet.open{background:rgba(0,0,0,0.55);}
  .dle-sheet-panel{position:absolute; left:0; right:0; bottom:0; background:#15181d; border-top:1px solid #5a4418; border-radius:22px 22px 0 0;
    padding:10px 14px calc(84px + env(safe-area-inset-bottom, 0px)); transform:translateY(100%); transition:transform .22s ease; box-shadow:0 -10px 40px rgba(0,0,0,0.5);}
  .dle-sheet.open .dle-sheet-panel{transform:none;}
  .dle-sheet-grip{display:block; width:40px; height:4px; border-radius:999px; background:#3a3f48; margin:0 auto 12px;}
  .dle-sheet-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:8px;}
  .dle-sheet-grid button{display:flex; flex-direction:column; align-items:center; gap:6px; padding:12px 4px; border-radius:14px; border:1px solid var(--dl-line);
    background:#0e1013; color:var(--dl-soft); font:600 0.74rem "Inter", sans-serif; cursor:pointer; text-align:center;}
  .dle-sheet-grid button :is(i,svg){font-size:1.2rem; color:var(--dl-gold);}
  .dle-sheet-grid button.on{border-color:var(--dl-gold); color:var(--dl-ink); background:#1c1a12;}
}
/* l'accueil (liste des profils) n'a pas de barre du bas */
html:not(.dle-in-game) .dle-nav{display:none !important;}
@media (max-width:700px){ html:not(.dle-in-game) body{padding-bottom:calc(30px + env(safe-area-inset-bottom, 0px));} html:not(.dle-in-game) .dle-copy{bottom:calc(8px + env(safe-area-inset-bottom, 0px));} }

/* ---------- v1.6.2 : espacements mobiles, pied de page dans le menu ---------- */
.dle-sheet-foot{display:flex; align-items:center; justify-content:center; gap:4px; margin-top:14px; padding-top:12px; border-top:1px solid var(--dl-line);
  color:var(--dl-faint); font-size:0.78rem;}
.dle-sheet-foot .dle-legal-btn{font-size:0.9rem; padding-right:8px; margin-right:6px;}
.dl-subbed [data-sub] > .dl-hoard-title.dl-today-title{margin-top:0;}
@media (max-width:700px){
  html.dle-in-game .dle-copy{display:none;}                       /* le pied de page est dans le Menu */
  html.dle-in-game body{padding-bottom:calc(104px + env(safe-area-inset-bottom, 0px));}   /* du jeu entre le contenu et la barre du bas */
  html.dle-in-game .dl-shell > .dl-wrap{padding-top:16px;}        /* et entre l'en-tête et le contenu */
  .dl-subtabs{margin-top:0;}
  .dle-sheet-panel{padding-bottom:calc(80px + env(safe-area-inset-bottom, 0px));}
  .dle-update{bottom:calc(84px + env(safe-area-inset-bottom, 0px));}
}

/* ---------- v1.6.3 ---------- */
.dl-chip-link{font:inherit; color:inherit; cursor:pointer;}
.dl-chip-link:hover, .dl-level-chip:hover{border-color:var(--dl-gold);}
.dl-chip-link:focus-visible, .dl-level-chip:focus-visible{outline:2px solid var(--dl-gold); outline-offset:2px;}
.dl-subbed[data-cur="profile"] .dle-about-card{display:none;}      /* la carte « Version express » : sous-onglets Jeu et Sauvegarde seulement */
.dl-pity[hidden]{display:none;}

/* ---------- v1.7.0 : code QR en plein écran ---------- */
button.dle-qr{position:relative; display:block; border:none; cursor:zoom-in; font:inherit;}
.dle-qr-zoom{position:absolute; right:8px; bottom:8px; width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(12,14,17,0.8); color:#fff; font-size:0.85rem; line-height:1;}
.dle-qr-full{position:fixed; inset:0; z-index:5000; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; padding:16px; cursor:zoom-out;}
.dle-qr-full-code{width:min(94vw, 88vh); aspect-ratio:1;}
.dle-qr-full-code svg{width:100%; height:100%; display:block;}
.dle-qr-full p{margin:0; color:#555; font:600 0.85rem "Inter", sans-serif;}

/* ---------- v1.8.0 : « Réduire les animations » (appareils moins puissants) ---------- */
/* les animations d'interface se terminent tout de suite (les éléments apparaissent directement à leur place).
   v1.8.1 : le coffre (battements, ouverture, effets de rareté) garde ses animations ; les passer reste le choix « Ouverture rapide ». */
html.dle-reduce :not(.dl-stage, .dl-stage *), html.dle-reduce :not(.dl-stage, .dl-stage *)::before, html.dle-reduce :not(.dl-stage, .dl-stage *)::after{
  animation-duration:.001ms !important; animation-iteration-count:1 !important; animation-delay:0s !important;
  transition-duration:.001ms !important; transition-delay:0s !important; scroll-behavior:auto !important;}
/* décors : on garde l'image fixe, sans animation */
html.dle-reduce .dl-sc *, html.dle-reduce .dl-scene::before, html.dle-reduce .dl-scene::after, html.dle-reduce .dl-heap *, html.dle-reduce .dl-lair-svg *{animation:none !important;}
html.dle-reduce .dl-scene[data-bg="darix"]::after{transform:scaleX(-1);}
/* effets coûteux pour la carte graphique */
html.dle-reduce .dle-nav, html.dle-reduce .dle-sheet{backdrop-filter:none !important; -webkit-backdrop-filter:none !important;}
html.dle-reduce .dl-event-layer, html.dle-reduce .foil-sparkles, html.dle-reduce .foil-sparkles-2, html.dle-reduce .foil-glyphs{display:none !important;}
@media (max-width:420px){ .dle-lang-txt{display:none;} .dle-lang{flex-wrap:nowrap;} }
.dle-hero-stage{pointer-events:none;} .dle-lang{position:relative; z-index:2;}
/* v2.1.0 : glisser pour changer de sous-section (mobile) */
@keyframes dle-swipe-next{from{opacity:.2; transform:translateX(40px);} to{opacity:1; transform:none;}}
@keyframes dle-swipe-prev{from{opacity:.2; transform:translateX(-40px);} to{opacity:1; transform:none;}}
.dl-subbed.dle-sw-next [data-sub], .dl-subbed.dle-sw-next .dl-shop > section{animation-name:dle-swipe-next !important; animation-duration:.25s !important;}
.dl-subbed.dle-sw-prev [data-sub], .dl-subbed.dle-sw-prev .dl-shop > section{animation-name:dle-swipe-prev !important; animation-duration:.25s !important;}
.dle-swipe-hint{display:none;}
@media (max-width:900px) and (pointer:coarse), (max-width:900px) and (hover:none){
  .dle-swipe-hint{display:flex; align-items:center; justify-content:center; gap:6px; margin:-10px 0 12px; font-size:.72rem; color:var(--dl-faint);}
  .dle-swipe-hint[hidden]{display:none;}
}
.dle-chip-icon{padding:3px 7px;}

/* ---------- v2.3.0a : sous-menus entièrement visibles sur mobile (sur plusieurs lignes au lieu de défiler) ---------- */
@media (max-width:700px){
  .dl-subtabs{flex-wrap:wrap; justify-content:center; width:auto; overflow:visible; border-radius:16px; gap:4px;}
  .dl-subtabs button{flex:0 1 auto; padding:7px 10px; font-size:0.78rem; gap:6px;}
}
/* profil tricheur : visible sur l'accueil */
.dle-cheat{display:inline-flex; align-items:center; gap:4px; vertical-align:middle; padding:2px 8px; border-radius:999px; font:700 0.6rem "Inter", sans-serif; letter-spacing:.06em;
  text-transform:uppercase; color:#ff8b98; background:rgba(215,38,61,0.16); border:1px solid rgba(215,38,61,0.5);}
.dle-cheat.dle-cheat-icon{padding:2px 5px;}
/* liste des titres : options lisibles sur fond sombre */
.dl-select option, .dl-select optgroup{background:#15181d; color:#EFE8D8;}
.dl-select optgroup{color:#B5AC9B; font-style:normal;}
.dl-select option:disabled{color:#6f6a61;}
/* v2.3.0f : cadre de légende (étoile de légende) */
.dle-frame-legend{box-shadow:0 0 22px rgba(224,123,255,0.6); isolation:isolate;}
.dle-frame-legend::before{content:""; position:absolute; inset:-5px; border-radius:50%; z-index:-1; animation:dle-frame-spin 3s linear infinite;
  background:conic-gradient(from 0deg, #e07bff, #6ff0dc, #ffd700, #ff4dd2, #6f8bff, #e07bff);}
.dle-frame-legend::after{content:""; position:absolute; inset:0; border-radius:50%; z-index:-1; background:radial-gradient(circle at 50% 60%, color-mix(in oklab, var(--c, #d7263d) 25%, #1c2026), #111318);}
@media (prefers-reduced-motion: reduce){ .dle-frame-legend::before{animation:none;} }
/* v2.3.0g : sur mobile, un sous-onglet peu rempli occupe quand même l'écran (plus facile à glisser) */
@media (max-width:900px){ html.dle-in-game .dl-panel.dl-subbed.active{min-height:calc(100vh - 230px); min-height:calc(100dvh - 230px);} }
/* v2.3.0i : cadre de légende redessiné (nébuleuse mauve + étoiles en orbite) et nouveaux cadres */
.dle-frame-legend{box-shadow:0 0 0 1px rgba(255,255,255,0.15), 0 0 18px rgba(176,92,255,0.65), 0 0 34px rgba(110,60,220,0.35);}
.dle-frame-legend::before{inset:-5px; animation-duration:9s;
  background:radial-gradient(circle at 50% 3px, #fff 0 1.6px, rgba(255,255,255,0) 3px),
             radial-gradient(circle at 50% calc(100% - 3px), #f3d9ff 0 1.3px, rgba(255,255,255,0) 2.6px),
             radial-gradient(circle at 3px 50%, #fff 0 1px, rgba(255,255,255,0) 2.2px),
             conic-gradient(from 0deg, #2a1048, #7a3cff, #e07bff, #fbe9ff, #b05cff, #3b1670, #2a1048);}
/* même structure que diamant : anneau en ::before, fond en ::after */
.dle-frame-scales, .dle-frame-flames, .dle-frame-hunter, .dle-frame-liquid, .dle-frame-cheater,
.dle-frame[class*="dle-frame-s_"]{isolation:isolate;}
.dle-frame-scales::before, .dle-frame-flames::before, .dle-frame-hunter::before, .dle-frame-liquid::before, .dle-frame-cheater::before,
.dle-frame[class*="dle-frame-s_"]::before{content:""; position:absolute; inset:-4px; border-radius:50%; z-index:-1;}
.dle-frame-scales::after, .dle-frame-flames::after, .dle-frame-hunter::after, .dle-frame-liquid::after, .dle-frame-cheater::after,
.dle-frame[class*="dle-frame-s_"]::after{content:""; position:absolute; inset:0; border-radius:50%; z-index:-1;
  background:radial-gradient(circle at 50% 60%, color-mix(in oklab, var(--c, #d7263d) 25%, #1c2026), #111318);}
/* Écailles : écailles vertes en damier */
.dle-frame-scales{box-shadow:0 0 14px rgba(70,200,120,0.45);}
.dle-frame-scales::before{background:repeating-conic-gradient(from 0deg, #3fbf78 0 9deg, #1f6b43 9deg 15deg, #8fe8b4 15deg 18deg);}
/* Flammes : feu qui ondule */
.dle-frame-flames{animation:dle-fr-flame 1.6s ease-in-out infinite;}
.dle-frame-flames::before{background:conic-gradient(from 0deg, #ff3b1f, #ff9a1f, #ffe14d, #ff6a1f, #c4140a, #ff9a1f, #ff3b1f); animation:dle-frame-spin 5s linear infinite reverse;}
@keyframes dle-fr-flame{0%,100%{box-shadow:0 0 12px rgba(255,90,20,0.55), 0 -3px 16px rgba(255,160,40,0.35);} 50%{box-shadow:0 0 20px rgba(255,120,20,0.75), 0 -6px 22px rgba(255,200,60,0.45);}}
/* Corde du chasseur : corde tressée */
.dle-frame-hunter{box-shadow:0 0 0 1px #3b2a14, 0 0 10px rgba(201,162,107,0.35);}
.dle-frame-hunter::before{background:repeating-conic-gradient(from 0deg, #d9b47a 0 7deg, #8a6234 7deg 12deg, #5e4020 12deg 14deg);}
/* Or liquide : or qui coule */
.dle-frame-liquid{box-shadow:0 0 18px rgba(255,200,40,0.6);}
.dle-frame-liquid::before{background:conic-gradient(from 0deg, #fff6c2, #ffd23f, #b8860b, #ffe680, #ffb300, #7a5200, #fff6c2); animation:dle-frame-spin 2.5s linear infinite;}
/* Saisons : couleur de l'élément */
.dle-frame-s_fire{--fe:#ff6a3d;} .dle-frame-s_water{--fe:#4fb8ff;} .dle-frame-s_air{--fe:#9fe7ff;} .dle-frame-s_earth{--fe:#d39a4f;}
.dle-frame-s_magic{--fe:#d36bff;} .dle-frame-s_light{--fe:#ffd23f;} .dle-frame-s_shadow{--fe:#9b7bff;} .dle-frame-s_ether{--fe:#6ff0dc;}
.dle-frame[class*="dle-frame-s_"]{box-shadow:0 0 16px color-mix(in oklab, var(--fe) 60%, transparent);}
.dle-frame[class*="dle-frame-s_"]::before{animation:dle-frame-spin 7s linear infinite;
  background:conic-gradient(from 0deg, var(--fe), color-mix(in oklab, var(--fe) 35%, #fff), var(--fe), color-mix(in oklab, var(--fe) 55%, #000), var(--fe));}
/* Tricheur : rayures rouges et noires */
.dle-frame-cheater{box-shadow:0 0 14px rgba(215,38,61,0.55);}
.dle-frame-cheater::before{background:repeating-conic-gradient(from 0deg, #d7263d 0 12deg, #1a0a0c 12deg 24deg); animation:dle-frame-spin 12s linear infinite;}
@media (prefers-reduced-motion: reduce){
  .dle-frame-flames, .dle-frame-flames::before, .dle-frame-liquid::before, .dle-frame-cheater::before, .dle-frame[class*="dle-frame-s_"]::before{animation:none;}
}
/* pastille du profil (en-tête) */
.dle-chipframe-legend{border-color:#b05cff !important; box-shadow:0 0 12px rgba(176,92,255,0.5);}
.dle-chipframe-scales{border-color:#3fbf78 !important;} .dle-chipframe-flames{border-color:#ff7a1f !important; box-shadow:0 0 10px rgba(255,110,20,0.45);}
.dle-chipframe-hunter{border-color:#c9a26b !important;} .dle-chipframe-liquid{border-color:#ffd23f !important; box-shadow:0 0 12px rgba(255,200,40,0.5);}
.dle-chipframe-cheater{border-color:#d7263d !important; box-shadow:0 0 10px rgba(215,38,61,0.45);}
.dle-chipframe-s_fire{border-color:#ff6a3d !important;} .dle-chipframe-s_water{border-color:#4fb8ff !important;} .dle-chipframe-s_air{border-color:#9fe7ff !important;}
.dle-chipframe-s_earth{border-color:#d39a4f !important;} .dle-chipframe-s_magic{border-color:#d36bff !important;} .dle-chipframe-s_light{border-color:#ffd23f !important;}
.dle-chipframe-s_shadow{border-color:#9b7bff !important;} .dle-chipframe-s_ether{border-color:#6ff0dc !important;}
/* v2.3.0j : cadre Carnet de défis (cuir bleu nuit, coutures dorées) */
.dle-frame-carnet{isolation:isolate; box-shadow:0 0 0 1px #0b1430, 0 0 14px rgba(110,150,255,0.35);}
.dle-frame-carnet::before{content:""; position:absolute; inset:-4px; border-radius:50%; z-index:-1;
  background:repeating-conic-gradient(from 0deg, #e8c25a 0 4deg, #1b2a5c 4deg 12deg), #1b2a5c;
  -webkit-mask:radial-gradient(circle, transparent 0 calc(50% - 3px), #000 calc(50% - 2.5px)); mask:radial-gradient(circle, transparent 0 calc(50% - 3px), #000 calc(50% - 2.5px));}
.dle-frame-carnet::after{content:""; position:absolute; inset:-1px; border-radius:50%; z-index:-1; border:2px solid #1b2a5c;
  background:radial-gradient(circle at 50% 60%, color-mix(in oklab, var(--c, #d7263d) 25%, #1c2026), #111318);}
.dle-chipframe-carnet{border-color:#e8c25a !important; box-shadow:0 0 10px rgba(110,150,255,0.4);}
/* v2.3.0j : journal — badge de mise à jour majeure et anciennes versions repliées */
.dle-log-major{display:inline-flex; align-items:center; gap:5px; font-size:0.66rem; letter-spacing:0.06em; text-transform:uppercase; font-weight:700;
  color:#fff; background:linear-gradient(120deg, #b05cff, #d7263d); border-radius:999px; padding:2px 9px; box-shadow:0 0 10px rgba(176,92,255,0.35);}
.dle-log-major i{font-size:0.62rem;}
.dle-log-v.major.latest{background:linear-gradient(180deg, rgba(176,92,255,0.08), transparent 120px); border-radius:12px; padding:10px 10px 12px; margin:0 -10px;}
.dle-log-older{border-top:1px solid var(--dl-line); margin-top:4px;}
.dle-log-older > summary{list-style:none; display:flex; align-items:center; gap:10px; padding:12px 2px; cursor:pointer; color:var(--dl-soft); font-weight:600; font-size:0.88rem; user-select:none;}
.dle-log-older > summary::-webkit-details-marker{display:none;}
.dle-log-older > summary:hover, .dle-log-older > summary:focus-visible{color:var(--dl-gold); outline:none;}
.dle-log-chev{margin-left:auto; font-size:0.75rem; transition:transform .2s ease;}
.dle-log-older[open] .dle-log-chev{transform:rotate(180deg);}
.dle-log-older .dle-log-v:first-of-type{border-top:1px solid var(--dl-line); padding-top:12px;}
@media (prefers-reduced-motion: reduce){ .dle-log-chev{transition:none;} }
.dle-log-v h3{flex-wrap:wrap; row-gap:6px;}
.dle-log-num, .dle-log-major, .dle-log-now{white-space:nowrap;}
.dle-log-v.major.latest{background:linear-gradient(180deg, rgba(176,92,255,0.09), rgba(176,92,255,0.02));}
/* v2.3.2 : code QR en plusieurs parties */
.dle-qr-nav{display:flex; align-items:center; justify-content:center; gap:14px; margin:0 0 8px;}
.dle-qr-part{font-weight:700; color:var(--dl-gold); min-width:110px; text-align:center; font-variant-numeric:tabular-nums;}
.dle-qr-dots{display:flex; justify-content:center; gap:6px; margin:0 0 10px;}
.dle-qr-dots span{width:8px; height:8px; border-radius:50%; background:#3a3f48;}
.dle-qr-dots span.on{background:var(--dl-gold); box-shadow:0 0 6px rgba(244,185,66,0.6);}
.dle-scan-status{margin:6px 0 0; font-weight:600; color:var(--dl-gold); font-size:.9rem;}

/* ===================================================================
   v3.0.0 — aide, légende, accueil revu, sauvegardes protégées
   =================================================================== */
.dl-subbed[data-cur="legend"] [data-sub="legend"],
.dl-subbed[data-cur="todo"] [data-sub="todo"],
.dl-subbed[data-cur="guide"] [data-sub="guide"]{display:block; animation:dle-sub-in .22s ease;}
.dle-sheet-grid .dle-sheet-help{color:var(--dl-gold);}
/* cadres : Maître des dragons (niveau 100) et Trésor éternel */
.dle-frame-master, .dle-frame-eternal{isolation:isolate;}
.dle-frame-master::before, .dle-frame-eternal::before{content:""; position:absolute; inset:-4px; border-radius:50%; z-index:-1;}
.dle-frame-master::after, .dle-frame-eternal::after{content:""; position:absolute; inset:0; border-radius:50%; z-index:-1;
  background:radial-gradient(circle at 50% 60%, color-mix(in oklab, var(--c, #d7263d) 25%, #1c2026), #111318);}
.dle-frame-master{box-shadow:0 0 0 1px rgba(255,255,255,.18), 0 0 16px rgba(120,200,255,.5);}
.dle-frame-master::before{background:conic-gradient(from 0deg, #e8f4ff, #6fb6ff, #1d4f9a, #a9d6ff, #ffffff, #3b7fd6, #e8f4ff); animation:dle-frame-spin 8s linear infinite;}
.dle-frame-eternal{box-shadow:0 0 18px rgba(255,210,63,.55), 0 0 30px rgba(185,140,255,.3);}
.dle-frame-eternal::before{background:repeating-conic-gradient(from 0deg, #ffe680 0 10deg, #b8860b 10deg 16deg, #fff6c2 16deg 20deg, #b98cff 20deg 24deg); animation:dle-frame-spin 14s linear infinite;}
@media (prefers-reduced-motion: reduce){ .dle-frame-master::before, .dle-frame-eternal::before{animation:none;} }
/* badge Rétro (partie importée d'une sauvegarde d'avant 3.0, non vérifiée) */
.dle-retro{display:inline-flex; align-items:center; gap:4px; vertical-align:middle; padding:2px 8px; border-radius:999px; font:700 0.6rem "Inter", sans-serif; letter-spacing:.06em;
  text-transform:uppercase; color:#9fd8ff; background:rgba(60,140,220,0.16); border:1px solid rgba(90,170,240,0.5);}
.dle-retro.dle-cheat-icon{padding:2px 5px;}
.dle-retro-note{margin:10px 0 0; font-size:.8rem; color:var(--dl-soft); line-height:1.5;}
.dle-save-signed{font-size:.8rem; color:var(--dl-soft);} .dle-save-signed :is(i,svg){color:#7be38c;}
/* fenêtre d'export */
.dle-exp-popup .dle-exp-txt{font-size:.85rem; color:var(--dl-soft); text-align:left; margin:0 0 12px; line-height:1.5;}
.dle-exp-popup .dle-exp-txt :is(i,svg){color:#7be38c;} .dle-exp-popup .dle-exp-nolock :is(i,svg){color:var(--dl-faint);}
.dle-exp-lock{display:flex; align-items:flex-start; gap:12px; text-align:left; cursor:pointer; background:#121418; border:1px solid #2a2f37; border-radius:14px; padding:12px;}
.dle-exp-lock > span:last-child{display:flex; flex-direction:column; gap:3px;}
.dle-exp-lock b{font-size:.9rem;} .dle-exp-lock small{font-size:.76rem; color:var(--dl-faint); line-height:1.4;}
.dle-exp-pass{margin-top:6px;} .dle-exp-pass .swal2-input{width:100%; margin:8px 0 0; box-sizing:border-box;}
.dle-exp-pass small{display:block; margin-top:8px; font-size:.75rem; color:#ffb070; text-align:left;}
/* accueil : actions sur une grille, cartes « découvrir » cliquables, pied de page en bas sur mobile */
.dle-home-actions{display:flex; flex-wrap:wrap;}
.dle-home-actions .dl-btn{justify-content:center; white-space:nowrap;}
.dle-discover-head{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:26px;}
.dle-discover-head .dle-h2{margin:0;}
button.dle-feat{font:inherit; color:inherit; cursor:pointer; transition:border-color .15s ease, transform .15s ease;}
button.dle-feat:hover{border-color:#5a4418; transform:translateY(-2px);}
button.dle-feat:focus-visible{outline:2px solid var(--dl-gold); outline-offset:2px;}
.dle-feats-small{margin-top:10px;}
.dle-guide-popup .swal2-html-container{text-align:left; max-height:62vh; overflow:auto; margin:10px 6px 0;}
@media (max-width:700px){
  .dle-home-actions{display:grid; grid-template-columns:1fr 1fr;}
  .dle-home-actions .dl-btn{padding-left:10px; padding-right:10px; font-size:.86rem; white-space:normal;}
  .dle-home-actions .dl-btn:nth-child(3):last-child{grid-column:1 / -1;}
  html:not(.dle-in-game) .dle-copy{position:static; display:block; width:max-content; margin:6px auto 0; pointer-events:auto;}
  html:not(.dle-in-game) body{padding-bottom:calc(14px + env(safe-area-inset-bottom, 0px));}
}
/* v3.0.0 : en-tête trop large sur petits écrans (niveau 100 + étoiles + gros trésor) — on retire l'étiquette EXPRESS d'abord */
@media (max-width:400px){ .dl-top .dl-brand-tag{display:none;} }
@media (max-width:340px){ .dl-top .dl-chip{padding:4px 6px; gap:3px;} .dl-top .dl-brand-text{display:none;} }
.dle-chip-et{color:#ffe680; border-color:#6b5414;} .dle-chip-et :is(i,svg){color:#ffd23f;}
/* v3.0.0d : mise à jour obligatoire */
.dle-force-update{position:fixed; inset:0; z-index:100000; display:flex; align-items:center; justify-content:center; padding:20px;
  background:rgba(5,6,8,0.86); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);}
.dle-fu-box{width:min(380px,100%); text-align:center; background:#16191e; border:1px solid #5a4418; border-radius:22px; padding:26px 22px 22px;
  box-shadow:0 20px 60px rgba(0,0,0,.6), 0 0 30px rgba(244,185,66,.15);}
.dle-fu-icon{display:inline-flex; width:58px; height:58px; border-radius:18px; align-items:center; justify-content:center; font-size:1.6rem; color:var(--dl-gold);
  background:radial-gradient(circle at 50% 40%, rgba(244,185,66,.28), #121418);}
.dle-fu-box h2{margin:14px 0 8px; font-size:1.3rem;} .dle-fu-box p{margin:0 0 18px; color:var(--dl-soft); font-size:.9rem; line-height:1.5;}
html.dle-locked, html.dle-locked body{overflow:hidden;}
