/* ===================== Alnasia — habillage « ténèbres » (v6) =====================
   Obsidienne, or vieilli, braises cramoisies. Chargé après style.css. */
:root{
  --ob1:#1b1124;--ob2:#100a18;--ob3:#07040b;--line:#8a5a1c;--line2:#f2c14e;--crim:#b3122b;--crim2:#ff4a62;
  --txt:#efe3cf;--txt2:#bfa98a;--panel-bg:linear-gradient(165deg,#241532 0,#130c1d 38%,#09050e 100%);
}
body{background:#07040b}
#vignette{background:radial-gradient(ellipse at center,transparent 45%,rgba(8,2,14,.7) 100%)}

/* ---- cartes des écrans de connexion ---- */
.card{background:linear-gradient(165deg,#271638,#0f0818 70%);border:2px solid var(--line);box-shadow:0 0 0 2px #05030a,0 0 0 3px #4a2a10,0 18px 50px #000d,inset 0 0 40px #b3122b22,inset 0 1px 0 #f2c14e33;position:relative}
.card::before,.card::after{content:'';position:absolute;width:22px;height:22px;pointer-events:none;border:2px solid var(--line2);opacity:.85}
.card::before{left:5px;top:5px;border-right:none;border-bottom:none}.card::after{right:5px;bottom:5px;border-left:none;border-top:none}
.logo .l1{background:linear-gradient(#fff3c0,#f2c14e 45%,#a0681a);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:0;text-shadow:none;filter:drop-shadow(0 3px 0 #3a1a08) drop-shadow(0 0 22px #b3122baa)}
.slot,.cls,.sexbtn{background:linear-gradient(#2a1a38,#120a1a);border-color:#5a3a1c}
.slot:hover,.cls:hover{border-color:var(--line2)}
.desc{background:#05030a99;border-left-color:var(--crim)}
.err{color:#ff7a8a}
input,select{background:#0b0610;border:2px solid #5a3a1c;color:var(--txt)}
input:focus,select:focus{border-color:var(--line2);box-shadow:0 0 0 2px #f2c14e22}
.btn{color:#2a1604;background:linear-gradient(#fbe9a8,#e0b247 52%,#a8721a);border:2px solid #3a2208;box-shadow:0 2px 0 #3a2208,0 0 12px #b3122b33,inset 0 1px 0 #fff9}
.btn.danger{background:linear-gradient(#ff9a9a,#c8283a 55%,#7a0e1e);color:#fff0f0;border-color:#2a0408;text-shadow:0 1px 2px #000}
.btn.link{color:var(--line2)}

/* ---- fenêtres : obsidienne gravée ---- */
.panel{background:var(--panel-bg);color:var(--txt);border:2px solid var(--line);border-radius:6px;box-shadow:0 0 0 2px #05030a,0 0 0 3px #4a2a10,0 22px 60px #000e,inset 0 0 60px #b3122b26,inset 0 1px 0 #f2c14e44;overflow:visible}
.panel::before,.panel::after{content:'';position:absolute;width:26px;height:26px;pointer-events:none;z-index:3}
.panel::before{left:-6px;top:-6px;border:3px solid var(--line2);border-right:none;border-bottom:none;border-radius:6px 0 0 0;filter:drop-shadow(0 0 4px #f2c14e88)}
.panel::after{right:-6px;bottom:-6px;border:3px solid var(--line2);border-left:none;border-top:none;border-radius:0 0 6px 0;filter:drop-shadow(0 0 4px #f2c14e88)}
.panel .pb::before{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(115deg,#ffffff00 0 12px,#ffffff06 12px 13px)}
.panel .ph{background:linear-gradient(#3a1a34,#150a1e);border-bottom:2px solid var(--line);border-radius:4px 4px 0 0;position:relative;box-shadow:inset 0 -10px 18px #b3122b22}
.panel .ph h3{color:var(--line2);letter-spacing:.06em;text-shadow:0 2px 0 #000,0 0 14px #b3122baa;text-transform:uppercase;font-size:17px}
.panel .ph h3 img{filter:drop-shadow(0 0 5px #f2c14e88)}
.panel .ph .x{background:radial-gradient(#7a1a2a,#2a0a14);border-color:var(--line2);box-shadow:0 0 8px #b3122b88}
.panel .pb{position:relative;color:var(--txt)}
.panel h4{color:var(--line2);border-bottom:1px solid #8a5a1c88;font-variant:small-caps;letter-spacing:.08em;text-shadow:0 1px 0 #000;position:relative}
.panel h4::after{content:'';position:absolute;left:0;bottom:-2px;width:46px;height:2px;background:linear-gradient(90deg,var(--crim2),transparent)}
.panel .sub,.panel small{color:var(--txt2)}
.panel input,.panel select,.panel textarea{background:#0b0610;border:2px solid #5a3a1c;color:var(--txt)}
.panel textarea{background:#0b0610!important;border-color:#5a3a1c!important;color:var(--txt)}
.panel .btn{border-color:#3a2208}
.panel b{color:#fff1d0}

.tab{background:linear-gradient(#2a1a38,#150c1e);border:2px solid #5a3a1c;border-bottom:none;color:var(--txt2);text-transform:uppercase;font-size:11.5px;letter-spacing:.07em}
.tab.on{background:linear-gradient(#4a1a3a,#1e0e2a);color:var(--line2);box-shadow:inset 0 2px 0 var(--crim2),0 0 12px #b3122b55}
.tabs{border-bottom:2px solid #5a3a1c}

/* lignes / cartes intérieures */
.stline,.spl,.q,.role,.key,.ann,.detail,.setbox,.setrow,.shopline,.pack,.infoln,.admrow,.warnrow,.ahrow,.admhead{background:linear-gradient(#1f1230,#0e0716);border:1px solid #5a3a1c;color:var(--txt);box-shadow:inset 0 1px 0 #ffffff0d}
.stline:hover,.spl:hover,.admrow:hover,.ahrow:hover{border-color:#a8742a;box-shadow:0 0 12px #b3122b33,inset 0 1px 0 #ffffff10}
.stline .vl{color:#fff1d0;text-shadow:0 0 8px #b3122b88}
.pts{background:linear-gradient(#4a1226,#240a16);border:2px solid var(--line);color:#ffe9b0;box-shadow:inset 0 0 14px #b3122b66,0 0 14px #b3122b44}
.eggbonus{margin-top:8px;padding:8px 10px;border:1px solid #f2c14e88;border-radius:8px;background:linear-gradient(#3a1a40,#1a0c24);color:#ffe9b0;font-size:12.5px;box-shadow:0 0 14px #f2c14e22}
.plus{border-color:#1a5a1a;background:linear-gradient(#7aea8a,#1e8a2e);box-shadow:0 0 8px #3aff6a55}
.tg{background:#2a1a38;border:1px solid #8a5a1c;color:var(--txt2)}.tg.pa{background:#16284a;border-color:#4a8ad8;color:#bfe0ff}
.lvs i{background:#2a1a38;border-color:#5a3a1c}.lvs i.on{background:linear-gradient(#ffd96a,#e09a1a);box-shadow:0 0 6px #ffc03a88}
.cell{background:radial-gradient(circle at 40% 30%,#4a3a62,#150d26);border:2px solid #6a4a22}
.cell.r1{border-color:#4aa3ff;box-shadow:0 0 10px #4aa3ff99,inset 0 0 8px #4aa3ff44}.cell.r2{border-color:#b46bff;box-shadow:0 0 12px #b46bffbb,inset 0 0 8px #b46bff44}.cell.r3{border-color:#ffa500;box-shadow:0 0 14px #ffa500dd,inset 0 0 10px #ffa50055}
.cell.egg{background:radial-gradient(circle at 40% 30%,#5a3a7a,#1a0c2a)}
.cell.ghost{background:#160d22}.cell.sel{outline:3px solid var(--line2)}.cell.dim{opacity:.3}
.eggs3{display:flex;gap:8px}.eggph{display:block;width:60%;height:70%;margin:14% auto;border:2px dashed #8a5a1c88;border-radius:50% 50% 48% 48%/62% 62% 38% 38%}
table.tb th{background:linear-gradient(#3a1a34,#1a0c24);color:var(--line2)}
table.tb td{border-bottom:1px solid #5a3a1c66;color:var(--txt)}table.tb tr:nth-child(even) td{background:#ffffff08}
.keys .key b,.role b{color:var(--line2)}
.role img{border-color:#8a5a1c}
.q.done{border-color:#3aa84a;background:linear-gradient(#10301c,#07140c)}
.prog{background:#0b0610;border-color:#5a3a1c}.prog i{background:linear-gradient(#ff8a9a,#b3122b)}
.ann{border-left:4px solid var(--crim)}.ann .meta{color:var(--txt2)}
.setrow .pieces img.off{opacity:.3}
.shopline{background:linear-gradient(#10281a,#07140c);border-color:#2a7a3a}
.pack{background:linear-gradient(#2a1a38,#120a1a);border:2px solid #8a5a1c}.pack b{color:var(--line2)}.pack.best{border-color:var(--crim2);box-shadow:0 0 18px #b3122b99}

/* info-bulle / notifications / contexte */
#tip,#ctx{background:linear-gradient(#241532,#0c0712);border:2px solid var(--line);color:var(--txt);box-shadow:0 10px 30px #000d,0 0 14px #b3122b44}
#ctx b,#tip b{color:var(--line2)}
.nt{background:linear-gradient(#241532ee,#0c0712ee);border:1px solid var(--line);box-shadow:0 4px 14px #000c,0 0 12px #b3122b44;letter-spacing:.02em}
.nt.warn{border-color:var(--crim2);color:#ffd0d6}
#hint{background:#0a0610e8;border:1px solid var(--line);color:var(--txt);box-shadow:0 0 14px #b3122b44}
#result{background:linear-gradient(165deg,#2a1640,#0b0612)!important}
::-webkit-scrollbar-thumb{background:linear-gradient(#8a2a3a,#4a1020);border:1px solid #f2c14e55}::-webkit-scrollbar-track{background:#05030a}

/* ---- HUD : plus de détails ---- */
#hudTL{filter:drop-shadow(0 6px 12px #000d) drop-shadow(0 0 8px #b3122b55)}
#hudTL .port{box-shadow:0 0 0 2px #05030a,0 0 16px #b3122baa}
#hudTL::after{content:'';position:absolute;left:100px;top:96px;width:90px;height:90px;border-radius:50%;pointer-events:none;background:radial-gradient(#b3122b44,transparent 70%);animation:mistA 5s ease-in-out infinite}
@keyframes mistA{50%{transform:translate(18px,-4px) scale(1.2);opacity:.6}}
#hudTL .bar{border-color:#8a5a1c;box-shadow:0 0 8px #b3122b55,inset 0 0 6px #000}
#hudTL .bar i{background:linear-gradient(#ff8a9a,#b3122b 55%,#4a0614);box-shadow:0 0 8px #ff4a6288}
#bottom .bwing{filter:drop-shadow(0 -6px 14px #000d) drop-shadow(0 0 10px #b3122b55)}
#spellbar{background:linear-gradient(#241532,#0a0610);box-shadow:0 6px 14px #000b,inset 0 0 22px #b3122b55,inset 0 1px 0 #f2c14e44}
.sp{background:radial-gradient(#2a1a3a,#07040b);border-color:#6a4a22;box-shadow:inset 0 0 8px #000}
.sp:hover{box-shadow:0 0 14px #b3122baa}
.orb b{text-shadow:0 2px 0 #4a0a14,0 0 8px #ff4a62aa}
.orb.pa b{text-shadow:0 2px 0 #0a2a5a,0 0 8px #4aa8ffcc}.orb.pm b{text-shadow:0 2px 0 #0a4a1a,0 0 8px #52d66acc}
.orb{animation:heartbeat 1.6s ease-in-out infinite}.orb.pa,.orb.pm{animation:none}
@keyframes heartbeat{0%,100%{transform:scale(1)}8%{transform:scale(1.04)}16%{transform:scale(1)}24%{transform:scale(1.055)}34%{transform:scale(1)}}
body.lowhp .orb:not(.pa):not(.pm){animation-duration:.7s}
body.lowhp #game::after{content:'';position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 50%,rgba(150,0,30,.5) 100%);animation:lowp .9s ease-in-out infinite;z-index:1}
@keyframes lowp{50%{opacity:.35}}
#hudFx{position:fixed;inset:0;pointer-events:none;z-index:4}
.mb{background:radial-gradient(circle at 35% 30%,#4a2058,#0c0612);border-color:var(--line);box-shadow:0 4px 10px #000c,inset 0 0 10px #b3122b66}
.mb:hover{box-shadow:0 0 16px #b3122baa,inset 0 0 10px #b3122b88}

/* ---- mini-carte ronde + compteur de joueurs ---- */
#hudTR{align-items:flex-end}
#miniRow{display:flex;align-items:center;gap:8px;pointer-events:auto}
#miniWrap{position:relative;width:176px;height:176px;border-radius:50%;flex:none}
#mini{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;border:none;box-shadow:0 0 0 3px #05030a,0 0 18px #000c,inset 0 0 22px #000;background:#07040b}
#miniWrap .ring{position:absolute;inset:-7px;border-radius:50%;pointer-events:none;background:
  radial-gradient(circle,transparent 0 63%,#05030a 63.5% 64.5%,#f2c14e 65% 67%,#7a4a10 68% 71%,#241532 72% 77%,#8a5a1c 78% 79.5%,transparent 80%);
  filter:drop-shadow(0 0 8px #b3122b99)}
#miniWrap .ring::after{content:'';position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from 0deg,#f2c14e 0 .6deg,transparent .6deg 7.5deg);-webkit-mask:radial-gradient(circle,transparent 0 79%,#000 79.5% 87%,transparent 87.5%);mask:radial-gradient(circle,transparent 0 79%,#000 79.5% 87%,transparent 87.5%);opacity:.5}
#miniWrap .gem{position:absolute;width:12px;height:12px;background:radial-gradient(circle at 35% 30%,#ff9aa8,#b3122b 60%,#4a0614);border:1.5px solid #f2c14e;transform:rotate(45deg);box-shadow:0 0 8px #ff4a62aa}
#miniWrap .g1{left:50%;top:-8px;margin-left:-6px}#miniWrap .g2{right:-8px;top:50%;margin-top:-6px}#miniWrap .g3{left:50%;bottom:-8px;margin-left:-6px}#miniWrap .g4{left:-8px;top:50%;margin-top:-6px}
#onlineBox{position:relative;display:flex;align-items:center;gap:7px;padding:6px 14px 6px 10px;min-width:104px;background:linear-gradient(#2a1640,#0b0612);border:2px solid var(--line);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%,10px 50%);box-shadow:inset 0 0 14px #b3122b66;filter:drop-shadow(0 0 6px #b3122b88)}
#onlineBox svg{width:30px;height:30px;flex:none;filter:drop-shadow(0 0 4px #f2c14e88)}
#onlineBox .ob{display:flex;flex-direction:column;line-height:1}
#onlineBox b{font:900 22px var(--serif);color:var(--line2);text-shadow:0 2px 0 #000,0 0 10px #b3122baa}
#onlineBox small{font:700 9.5px var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--txt2);margin-top:2px}
#onlineBox .pulse{position:absolute;right:16px;top:8px;width:7px;height:7px;border-radius:50%;background:#52e87a;box-shadow:0 0 8px #52e87a;animation:pl 1.8s ease-in-out infinite}
@keyframes pl{50%{opacity:.25;transform:scale(.7)}}
#giftBtn{right:300px}
#menuBtns{top:226px}

/* ---- fenêtres : hôtel des ventes ---- */
.ahhead{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.ahnpc{flex:1;padding:8px 12px;border-radius:6px;border:1px solid #8a2a3a;background:linear-gradient(#3a1020,#1a0810);color:#ffb0b8;font-size:12.5px}
.ahnpc.ok{border-color:#2a7a3a;background:linear-gradient(#10301c,#07140c);color:#9affb8}
.ahtax{display:flex;align-items:center;gap:8px;padding:4px 12px;border:1px solid var(--line);border-radius:6px;background:#0b0612}.ahtax b{font:900 22px var(--serif);color:var(--line2)}.ahtax span{font-size:10.5px;line-height:1.15;color:var(--txt2)}
.ahgold{font:900 16px var(--serif);color:var(--line2);white-space:nowrap}.ahgold img{width:20px;height:20px;vertical-align:middle}
.ahfilters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:6px;margin-bottom:8px}
.ahlist{display:flex;flex-direction:column;gap:5px;max-height:46vh;overflow:auto;padding-right:4px}
.ahrow{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:6px}
.ahnm{flex:1;display:flex;flex-direction:column}.ahnm b{font:700 14px var(--serif)}.ahnm small{font-size:11px}
.ahpr{display:flex;align-items:center;gap:5px;font:900 16px var(--serif);color:var(--line2);min-width:110px;justify-content:flex-end}.ahpr img{width:18px;height:18px}
.ahsell{display:grid;grid-template-columns:auto 1fr;gap:16px}.ahsell .grid{grid-template-columns:repeat(6,48px)}.ahsell .cell{width:48px;height:48px}
.ahform .lab2{display:block;margin:10px 0 4px;font-size:12px;color:var(--txt2);text-transform:uppercase;letter-spacing:.1em}
.ahfee{margin-top:6px;padding:8px 10px;border-radius:6px;background:#0b0612;border:1px dashed #8a5a1c;font-size:12.5px;line-height:1.5}
.lawgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lawgrid label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--txt2)}.lawgrid .row{gap:6px}
.rars{flex-wrap:wrap}.chk{display:inline-flex;align-items:center;gap:3px;font-size:12px}.chk input{width:auto}

/* ---- panel d'administration ---- */
.admbar{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.badge{padding:2px 10px;border-radius:3px;font:900 11px var(--ui);letter-spacing:.14em;text-transform:uppercase}.badge.f{background:linear-gradient(#ffd96a,#b8741a);color:#2a1604}.badge.m{background:linear-gradient(#7aa8ff,#2a4a9a);color:#fff}
.admmsg{font-size:12.5px;color:#9affb8}.admmsg.bad{color:#ff8a98}
.admsearch{display:flex;gap:8px;margin-bottom:8px}.admsearch input{flex:1}
.admwrap{display:grid;grid-template-columns:250px 1fr;gap:12px;min-height:46vh}
.admlist{display:flex;flex-direction:column;gap:4px;max-height:60vh;overflow:auto;padding-right:4px}
.admrow{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:5px;cursor:pointer;flex-wrap:wrap}.admrow.sel{border-color:var(--line2);background:linear-gradient(#4a1a3a,#1e0e2a)}.admrow small{color:var(--txt2);font-size:11px}
.admrow i{font:900 9px var(--ui);padding:1px 5px;border-radius:3px;font-style:normal;letter-spacing:.08em}.stf{background:#f2c14e;color:#2a1604}.bn{background:#c8283a;color:#fff}.sb{background:#2a8a4a;color:#fff}
.admdet{max-height:62vh;overflow:auto;padding-right:4px}
.admhead{padding:8px 10px;margin-bottom:8px;border-radius:6px}.admhead b{font:900 18px var(--serif);color:var(--line2)}
.subtabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.st{padding:5px 10px;border-radius:4px;border:1px solid #5a3a1c;cursor:pointer;font-size:12px;color:var(--txt2);background:#150c1e}.st.on{color:var(--line2);border-color:var(--line2);background:#2a1238}
.btnrow{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.btnrow input{flex:1;min-width:120px}
.infoln{padding:5px 9px;margin:4px 0;border-radius:5px;font-size:12.5px}.infoln.bad{border-color:#c8283a;color:#ffb0b8}
.warns{margin:8px 0;display:flex;flex-direction:column;gap:4px}.warnrow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 8px;font-size:12px;border-radius:5px}
.statgrid{display:grid;grid-template-columns:1fr auto 1fr auto;gap:3px 10px;font-size:12.5px;margin-top:6px}.statgrid b{color:var(--line2);text-align:right}
.journal{max-height:42vh;overflow:auto;font-size:12px;border:1px solid #5a3a1c;border-radius:6px;background:#07040b}
.je{display:grid;grid-template-columns:96px 96px 1fr;gap:8px;padding:4px 8px;border-bottom:1px solid #ffffff0d}.jt{color:var(--txt2)}.jk{color:var(--line2);font-weight:700}
.je.k-sanction .jk,.je.k-admin .jk{color:#ff7a8a}.je.k-loot .jk,.je.k-egg .jk{color:#ffa500}.je.k-hv .jk{color:#c89aff}.je.k-fight .jk{color:#8ab8ff}
.eqctl{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:6px}.eqctl label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--txt2);flex:1;min-width:130px}
.rarsel{display:flex;gap:6px;margin:6px 0}.rs{flex:1;text-align:center;padding:5px;border-radius:4px;border:2px solid #5a3a1c;cursor:pointer;font-weight:700;font-size:12px;background:#150c1e}.rs.r0{color:#cfcfcf}.rs.r1{color:#4aa3ff}.rs.r2{color:#b46bff}.rs.r3{color:#ffa500}.rs.on{background:#2a1238;box-shadow:0 0 10px currentColor;border-color:currentColor}
.eqcat{display:grid;grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:8px;margin:8px 0}.cell.cat{width:auto;height:auto;aspect-ratio:1/1.15;padding-bottom:14px}.cell.cat small{position:absolute;left:0;right:0;bottom:1px;text-align:center;font-size:9.5px;color:#fff;text-shadow:0 1px 2px #000;line-height:1.05}
.govgrid{display:flex;flex-direction:column;gap:8px}.govrow{display:grid;grid-template-columns:150px 120px 1fr auto auto;gap:8px;align-items:center;padding:8px;border-radius:6px;background:#150c1e;border:1px solid #5a3a1c}.govrow .cur{color:var(--line2);font-weight:700}
.modal2{position:absolute;inset:0;background:#000b;display:flex;align-items:center;justify-content:center;z-index:70}
.modal2 .mbox{width:520px;max-width:94vw;max-height:90vh;overflow:auto;padding:18px 22px;border-radius:8px;background:var(--panel-bg);border:2px solid var(--line2);box-shadow:0 0 40px #b3122bcc;color:var(--txt);animation:pop2 .25s}
.modal2 h3{margin:0 0 8px;font:900 22px var(--serif);color:var(--line2);text-transform:uppercase;letter-spacing:.05em}
.modal2 blockquote{margin:10px 0;padding:10px 14px;border-left:4px solid var(--crim2);background:#0b0612;border-radius:4px;color:#ffd0d6;font-style:italic}
.modal2 .warnb{border-color:var(--crim2)}
.needgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.needgrid label{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:12px;padding:4px 8px;background:#150c1e;border-radius:5px}.needgrid input{width:64px}
.modal2 h4{color:var(--line2);margin:12px 0 6px}

/* ---- choix de l'affichage ---- */
#device{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#1d1030cc,#05030af2)}
.dbox{width:min(760px,94vw);text-align:center;padding:20px 24px;border:2px solid var(--line);border-radius:8px;background:var(--panel-bg);box-shadow:0 0 60px #b3122b88,0 0 0 3px #05030a,0 0 0 4px #4a2a10;color:var(--txt)}
.dbox h2{margin:8px 0 4px;font:900 26px var(--serif);color:var(--line2);letter-spacing:.05em}.dbox p{margin:0 0 14px;color:var(--txt2)}
.dchoices{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dch{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 10px;border-radius:8px;border:2px solid #5a3a1c;background:linear-gradient(#2a1a38,#120a1a);color:var(--txt);cursor:pointer;font:inherit;position:relative;transition:transform .12s,border-color .12s,box-shadow .12s}
.dch svg{width:72px;height:72px;color:var(--line2);filter:drop-shadow(0 0 8px #b3122b88)}.dch b{font:900 20px var(--serif);color:#fff1d0}.dch small{color:var(--txt2);line-height:1.4}
.dch:hover{transform:translateY(-3px);border-color:var(--line2);box-shadow:0 0 22px #b3122baa}
.dch.rec{border-color:var(--line2)}.dch.rec::after{content:'Recommandé';position:absolute;top:-10px;right:10px;background:linear-gradient(#ffd96a,#b8741a);color:#2a1604;font:900 10px var(--ui);padding:2px 9px;letter-spacing:.1em;text-transform:uppercase;border-radius:3px}
#devSwitch{display:none;position:fixed;right:10px;bottom:8px;z-index:20;font-size:12px}
#auth:not(.hidden) ~ #devSwitch{display:block}
.eggbonus b{color:#ffe9b0}

/* ===== v7 : récap de combat, dragonnets, Pierre des Territoires, coffres ===== */
#ctx .swstat{font:600 12px var(--ui);color:#ffd27a;margin:2px 0 6px}
#ctx .swh{font:700 10px var(--ui);letter-spacing:.12em;text-transform:uppercase;color:#bfa98a;margin:6px 0 3px;border-bottom:1px solid #f2c14e33}
#ctx .swrow{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:baseline;font-size:12px;padding:2px 0}
#ctx .swrow b{color:#f4e8cc}#ctx .swrow span{color:#bfa98a;font-size:11px}#ctx .swrow i{font-style:normal;color:#8affb0;font-weight:700}
#ctx{min-width:250px}
#pNpc{width:min(640px,94vw)}
.dragpacks{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:8px;margin:8px 0}
.dpack{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid #f2c14e44;border-radius:6px;background:linear-gradient(90deg,#2a1230cc,#120816cc)}
.dpack .dnm b{display:block;font:700 14px var(--serif);color:#f2c14e}.dpack .dnm small{display:block;color:#cdbca0;font-size:11px;line-height:1.35}.dpack .dnm i{color:#9ad8ff}
.dpack .dbuy{text-align:center}.dpack .dbuy .eur{font:900 17px var(--serif);color:#ffe27a;margin-bottom:4px}
.tplist{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:6px}
.tprow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;border:1px solid #b890ff44;border-radius:6px;background:linear-gradient(90deg,#1c1030cc,#0c0618cc)}
.tprow b{display:block;font:700 14px var(--serif);color:#e8d8ff}.tprow small{color:#a898c8;font-size:11px}
.tprow.lock{opacity:.55}.tprow.cur{border-color:#8affb0aa}
.chwrap{display:grid;grid-template-columns:1.3fr 1fr;gap:12px}
.chgrid{grid-template-columns:repeat(10,38px)!important;max-height:340px;overflow:auto}
.chgrid .cell{width:38px;height:38px}
@media (max-width:760px){.chwrap{grid-template-columns:1fr}.chgrid{grid-template-columns:repeat(8,38px)!important}}
#ctx .swstat b{display:inline;color:#fff1b8}
/* ---- Taverne + économie ---- */
.tvlist{display:flex;flex-direction:column;gap:6px}
.tvrow{display:flex;align-items:center;gap:10px;background:linear-gradient(#fff4d8,#f3dfb2);border:2px solid #b98a30;border-radius:10px;padding:6px 10px;color:#3a2412}
.tvrow img{width:38px;height:38px;flex:none}
.tvn{flex:1;min-width:0;display:flex;flex-direction:column}
.tvn small{opacity:.75;font-size:11px;line-height:1.2}
.tvrow .btn img{width:15px;height:15px}
.tvedit{display:inline-flex;gap:4px;align-items:center}
.tvedit input{width:64px;background:#fff8e4;border:2px solid #b98a30;border-radius:6px;padding:2px 4px;font:inherit}
.ebar{display:flex;align-items:center;gap:8px;margin:3px 0;font-size:13px}
.ebar .el{flex:0 0 42%;min-width:0}
.ebar .et{flex:1;height:10px;background:#0002;border-radius:5px;overflow:hidden}
.ebar .et i{display:block;height:100%;border-radius:5px}
.ebar .ev{flex:0 0 auto;min-width:64px;text-align:right;font-weight:700}
.edays{display:flex;gap:6px;align-items:flex-end;height:130px;margin:6px 0}
.eday{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;font-size:10px}
.eday .estack{width:100%;max-width:34px;flex:1;display:flex;flex-direction:column-reverse;background:#0001;border-radius:4px;overflow:hidden}
.eday .estack i{display:block;width:100%}
.elegend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px}
.elegend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px}
.tvn b{color:#3a2412;font-size:14px}
.tvn small{color:#6a4a2a;opacity:1}
.tvrow .btn{flex:none}
.tvedit input{color:#3a2412}

/* ===== v9 : villages, étendards, annonces générales ===== */
#nations { display: flex; gap: 12px; margin: 4px 0 6px; }
.ncard { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 6px 10px; border: 2px solid #5a4a3a; border-radius: 12px; background: rgba(0,0,0,.28); cursor: pointer; transition: .15s; }
.ncard img { width: 58px; height: 58px; filter: drop-shadow(0 3px 4px rgba(0,0,0,.6)); }
.ncard b { color: var(--c); font-size: 16px; letter-spacing: .5px; }
.ncard small { color: #cbb892; }
.ncard:hover { border-color: var(--c); }
.ncard.sel { border-color: var(--c); background: color-mix(in srgb, var(--c) 22%, #000); box-shadow: 0 0 14px color-mix(in srgb, var(--c) 60%, transparent); }
.hbanner { position: absolute; right: 18px; top: -4px; width: 46px; height: 46px; filter: drop-shadow(0 3px 3px rgba(0,0,0,.7)); pointer-events: auto; z-index: 3; }
.slot .nb { width: 34px; height: 34px; float: right; margin: -2px 0 0 6px; }
#gann { position: fixed; top: 74px; left: 50%; transform: translate(-50%, -20px); max-width: min(620px, 92vw); padding: 10px 22px 12px; border: 2px solid #ffd27a; border-radius: 12px; background: linear-gradient(180deg, rgba(40,26,20,.96), rgba(18,10,8,.96)); color: #fff2d0; text-align: center; font-size: 16px; opacity: 0; pointer-events: none; transition: .35s; z-index: 80; box-shadow: 0 6px 24px rgba(0,0,0,.6); }
#gann.on { opacity: 1; transform: translate(-50%, 0); }
#gann small { display: block; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 3px; }
.arlist .arow, .duelq { display: flex; align-items: center; gap: 8px; }
.arlist .arow { padding: 6px 8px; border-bottom: 1px solid #b98a3055; }
.arlist .arow b { flex: 1; }
.dueldlg { position: fixed; inset: 0; background: rgba(0,0,0,.55); display: flex; align-items: center; justify-content: center; z-index: 90; }
.dueldlg > div { background: #2a1c14; border: 2px solid #e0a040; border-radius: 14px; padding: 18px 22px; color: #fff2d0; text-align: center; max-width: 360px; }
.dueldlg .row { justify-content: center; margin-top: 12px; }
.prayb { text-align: center; padding: 8px 0; }
.prayb .btn { font-size: 17px; padding: 10px 26px; }
.ncard { flex-direction: row; justify-content: center; gap: 8px; padding: 5px 8px; }
.ncard img { width: 38px; height: 38px; }
.ncard b, .ncard small { display: block; text-align: left; line-height: 1.15; }
.ncard > b { font-size: 15px; }
#nations { margin: 2px 0 4px; }
.slot { position: relative; }
.slot .nb { position: absolute; float: none; right: 10px; bottom: 6px; width: 30px; height: 30px; margin: 0; }

/* ===== v14 : groupe, commandes boutique ===== */
#partyHud{position:absolute;left:10px;top:150px;width:210px;background:linear-gradient(#241532ee,#0c0712ee);border:2px solid var(--line,#6a3a4a);border-radius:10px;padding:6px 8px;z-index:12;box-shadow:0 6px 18px #000a;font:600 12px var(--ui,sans-serif);color:#f4e8cc}
#partyHud.hidden{display:none}
#partyHud .ph{display:flex;align-items:center;gap:6px;border-bottom:1px solid #f2c14e44;padding-bottom:4px;margin-bottom:4px}
#partyHud .ph b{font:700 13px var(--serif,Georgia,serif);color:#ffd27a;flex:1}#partyHud .ph i{font-style:normal;color:#bfa98a}
#partyHud .ph .btn{padding:1px 8px;font-size:11px}
#partyHud .pm{display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:baseline;padding:2px 0}
#partyHud .pm.me .pn{color:#ffd27a}#partyHud .pm i{font-style:normal;color:#8affb0;font-size:11px}
#partyHud .cr{color:#f2c14e;margin-right:3px}
#partyHud .px{background:none;border:0;color:#ff8a8a;cursor:pointer;font-size:12px;padding:0 2px}
#partyHud .pb{grid-column:1/-1;height:5px;background:#000a;border-radius:3px;overflow:hidden}#partyHud .pb div{height:100%;background:linear-gradient(90deg,#c0392b,#58d26a)}
body.mobile #partyHud{top:112px;width:150px;font-size:10px;padding:4px 6px}
.shopwarn{color:#ff4a4a;font-weight:700;font-size:13px;line-height:1.4;border:1px solid #ff4a4a77;background:#3a0a0e66;border-radius:8px;padding:8px 10px;margin:0 0 10px}
.dueldlg .ofl{display:block;text-align:left;font:600 12px var(--ui,sans-serif);color:#e0d0a8;margin:6px 0}
.dueldlg .ofl input{display:block;width:100%;box-sizing:border-box;margin-top:3px;padding:6px 8px;border-radius:6px;border:1px solid #e0a040;background:#140c08;color:#fff2d0;font:14px var(--ui,sans-serif)}
.dueldlg .oerr{color:#ff6a6a;font-size:12px;min-height:16px;margin-top:4px}
.dueldlg .ordid{font:700 18px monospace;letter-spacing:.08em;color:#ffd27a;background:#140c08;border:1px dashed #e0a040;border-radius:8px;padding:10px;margin:8px 0;word-break:break-all;user-select:all}
.dueldlg>div{max-width:400px}
.ordtb td,.ordtb th{vertical-align:top;text-align:left}
.ordtb code{font-size:11px;color:#ffd27a;word-break:break-all}
.ordtb .cd{font:700 16px monospace;color:#8affb0}
.ordtb tr.late{background:#5a0c10cc;outline:1px solid #ff4a4a}
.ordtb tr.late .cd{color:#ff5a5a}.ordtb tr.late small{color:#ff9a9a;font-weight:700}
.ordtb tr.done{opacity:.6}.ordtb .ok{color:#8affb0;font-weight:700}

/* ===== v15 : page de connexion animée (ciel coloré, îles flottantes, logo) ===== */
#auth{justify-content:flex-start}
#authbg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:linear-gradient(180deg,#13287a 0%,#2763cc 26%,#5eb6ee 52%,#ffd9a8 80%,#ff9db8 100%)}
#authbg::before{content:'';position:absolute;inset:-25%;background:radial-gradient(38% 34% at 18% 30%,#ff6fd877,transparent 70%),radial-gradient(42% 38% at 82% 22%,#6dffd266,transparent 70%),radial-gradient(50% 40% at 62% 88%,#ffd35a77,transparent 70%),radial-gradient(34% 30% at 8% 80%,#8a7aff66,transparent 70%);animation:abdrift 24s ease-in-out infinite alternate}
@keyframes abdrift{to{transform:translate(5%,3%) scale(1.1) rotate(4deg);filter:hue-rotate(40deg) saturate(1.2)}}
#authbg::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 42%,transparent 50%,rgba(10,8,50,.5) 100%)}
#authcv{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.alogo{margin-top:1.5vh;position:relative}
.alogo .lgimg{position:relative;width:clamp(190px,min(54vh,48vw),540px);aspect-ratio:1;margin:0 auto;transform:translate(var(--px,0),var(--py,0));animation:lgin 1.4s cubic-bezier(.2,.8,.2,1) both}
.alogo .lgimg img{position:relative;z-index:1;width:100%;height:100%;display:block;user-select:none;-webkit-user-drag:none;animation:lgfloat 7s ease-in-out infinite;filter:drop-shadow(0 12px 22px rgba(8,16,80,.5)) drop-shadow(0 0 26px rgba(255,214,120,.35))}
.alogo .lgimg::before{content:'';position:absolute;inset:6%;border-radius:50%;background:radial-gradient(circle,rgba(255,236,160,.6),rgba(120,190,255,.25) 55%,transparent 72%);animation:lgglow 4.5s ease-in-out infinite}
.alogo .lgimg::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;-webkit-mask:url(img/logo.webp) center/contain no-repeat;mask:url(img/logo.webp) center/contain no-repeat;background:linear-gradient(108deg,transparent 38%,rgba(255,255,255,.85) 50%,transparent 62%) 160% 0/260% 100% no-repeat;mix-blend-mode:soft-light;animation:lgshine 5.5s ease-in-out infinite 1.5s}
@keyframes lgfloat{50%{transform:translateY(-9px) scale(1.012)}}
@keyframes lgglow{50%{transform:scale(1.12);opacity:.7}}
@keyframes lgshine{0%{background-position:160% 0}55%,100%{background-position:-60% 0}}
@keyframes lgin{from{opacity:0;transform:translateY(24px) scale(.92)}}
.alogo .l2{font:italic 700 18px var(--serif);color:#fff6d8;text-shadow:0 2px 0 #3a2a70,0 0 14px #2a2a90,0 3px 12px #0008;letter-spacing:.1em;margin-top:-2vh;position:relative;z-index:2;animation:lgin 1.8s .3s both}
#auth .authbox{margin-top:2.5vh;background:linear-gradient(160deg,rgba(18,30,84,.78),rgba(52,20,84,.78));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:2px solid #f2c14e;box-shadow:0 12px 40px #0a0a3a99,0 0 0 1px #fff3,inset 0 0 30px #5ab0ff22;animation:lgin 1.2s .5s both}
#auth .authbox input{background:rgba(8,10,40,.65);border-color:#6a7ad0;color:#fff}
#auth .authbox input:focus{border-color:#ffd27a;box-shadow:0 0 0 3px #ffd27a33}
#auth .authbox input::placeholder{color:#a8b4e8}
body.mobile .alogo .lgimg{width:clamp(130px,38vh,300px)}
body.mobile .alogo .l2{font-size:13px;margin-top:-1vh}
body.mobile #auth .authbox{margin-top:1vh;padding:12px 16px;gap:8px}
@media (prefers-reduced-motion:reduce){.alogo .lgimg img,.alogo .lgimg::before,.alogo .lgimg::after,#authbg::before{animation:none}}
