:root{
  --bg:#05070f; --panel:#0d1424; --panel2:#111b30; --border:#1f2d4d; --accent:#3fa9f5; --accent2:#7b5cff;
  --text:#d6e2ff; --muted:#8193b8; --metal:#b8c2d6; --crystal:#6ad3ff; --deut:#5dffb1; --danger:#ff4d6d;
}
html,body{background:var(--bg);color:var(--text);}
body{
  font-family:"Segoe UI",system-ui,sans-serif;font-size:14px;min-height:100vh;
  background:
    radial-gradient(ellipse at 20% 10%,rgba(63,169,245,.12),transparent 50%),
    radial-gradient(ellipse at 80% 80%,rgba(123,92,255,.12),transparent 50%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cg fill='white'%3E%3Ccircle cx='20' cy='30' r='.8' opacity='.7'/%3E%3Ccircle cx='150' cy='80' r='.6' opacity='.5'/%3E%3Ccircle cx='250' cy='20' r='1' opacity='.8'/%3E%3Ccircle cx='80' cy='200' r='.7' opacity='.6'/%3E%3Ccircle cx='200' cy='250' r='.9' opacity='.7'/%3E%3Ccircle cx='280' cy='160' r='.5' opacity='.5'/%3E%3Ccircle cx='120' cy='140' r='.4' opacity='.4'/%3E%3Ccircle cx='40' cy='280' r='.6' opacity='.6'/%3E%3C/g%3E%3C/svg%3E"),
    var(--bg);
  background-attachment:fixed;
}
a{color:var(--accent);} a:hover{color:#8fd0ff;}
.topbar{position:sticky;top:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  padding:6px 14px;background:rgba(8,12,24,.95);border-bottom:1px solid var(--border);backdrop-filter:blur(6px);}
.brand{font-weight:700;font-size:1.2rem;color:#fff;text-decoration:none;letter-spacing:1px;}
.brand-logo{color:var(--accent);text-shadow:0 0 10px var(--accent);}
.res-bar{display:flex;gap:6px;flex-wrap:wrap;}
.res-box{display:flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:3px 10px;min-width:118px;}
.res-ico{font-size:1.2rem;}
.res-label{font-size:.68rem;color:var(--muted);text-transform:uppercase;line-height:1;}
.res-val{font-weight:600;font-variant-numeric:tabular-nums;}
.layout{display:flex;min-height:calc(100vh - 56px);}
.sidebar{width:200px;flex-shrink:0;background:rgba(10,15,30,.85);border-right:1px solid var(--border);padding:10px 8px;}
.menu-item{display:flex;gap:8px;align-items:center;padding:6px 10px;border-radius:6px;color:var(--text);text-decoration:none;margin-bottom:2px;}
.menu-item:hover{background:var(--panel2);color:#fff;}
.menu-item.active{background:linear-gradient(90deg,rgba(63,169,245,.35),transparent);border-left:3px solid var(--accent);color:#fff;}
.menu-sep{border-top:1px solid var(--border);margin:8px 0;}
.content{flex:1;padding:16px;min-width:0;}
@media(max-width:991px){
  .sidebar{position:fixed;left:-220px;top:56px;bottom:0;z-index:999;transition:left .2s;overflow-y:auto;}
  body.menu-open .sidebar{left:0;}
  .content{padding:10px;}
  .res-box{min-width:0;padding:2px 6px;}
  .res-label{display:none;}
}
.panel{background:rgba(13,20,36,.92);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:14px;}
.panel-title{font-size:1.05rem;font-weight:600;color:#fff;border-bottom:1px solid var(--border);padding-bottom:6px;margin-bottom:10px;}
h1,h2,h3,h4,h5{color:#fff;}
.page-title{font-size:1.4rem;font-weight:700;margin-bottom:12px;color:#fff;text-shadow:0 0 12px rgba(63,169,245,.5);}
.table-dark{--bs-table-bg:transparent;}
.table{--bs-table-bg:transparent;color:var(--text);}
.text-muted{color:var(--muted)!important;}
.text-metal{color:var(--metal);} .text-crystal{color:var(--crystal);} .text-deut{color:var(--deut);}
.form-control,.form-select{background:#0a1020;border-color:var(--border);color:var(--text);}
.form-control:focus,.form-select:focus{background:#0c1428;color:#fff;border-color:var(--accent);box-shadow:0 0 0 .15rem rgba(63,169,245,.25);}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent2));border:none;}

/* Elements */
.el-card{display:flex;gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px;height:100%;}
.el-card.locked{opacity:.55;}
.el-card .el-body{flex:1;min-width:0;}
.el-name{font-weight:600;color:#fff;}
.el-level{color:var(--accent);font-weight:600;}
.el-icon{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;font-size:2.4rem;border-radius:10px;flex-shrink:0;
  background:radial-gradient(circle at 30% 30%,#23355e,#0a1122);border:1px solid var(--border);}
.el-icon.sm{width:36px;height:36px;font-size:1.3rem;border-radius:6px;}
.el-icon.el-research{background:radial-gradient(circle at 30% 30%,#3a2a66,#0f0a22);}
.el-icon.el-ship{background:radial-gradient(circle at 30% 30%,#1d4f5e,#061519);}
.el-icon.el-defense{background:radial-gradient(circle at 30% 30%,#5e2a2a,#190707);}
.el-icon.el-officer{background:radial-gradient(circle at 30% 30%,#5e4f1d,#191406);}
.el-img{width:72px;height:72px;object-fit:cover;border-radius:10px;} .el-img.sm{width:36px;height:36px;}
.cost{font-size:.8rem;} .cost .miss{color:var(--danger);}
.el-desc{font-size:.8rem;color:var(--muted);}
.queue-item{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-bottom:1px solid var(--border);gap:8px;}
.progress{background:#0a1020;height:6px;}
.countdown{font-variant-numeric:tabular-nums;color:#ffd166;font-weight:600;}

/* Planetes */
.planet-img{width:160px;height:160px;border-radius:50%;flex-shrink:0;box-shadow:inset -20px -15px 40px rgba(0,0,0,.8),0 0 25px rgba(63,169,245,.25);}
.planet-img.sm{width:34px;height:34px;box-shadow:inset -5px -4px 10px rgba(0,0,0,.8);}
.planet-img.xs{width:18px;height:18px;box-shadow:inset -3px -2px 6px rgba(0,0,0,.8);}
.planet-img.md{width:60px;height:60px;}
[class*="planet-normal"]{background:radial-gradient(circle at 35% 35%,#6fb8ff,#1e6a3a 45%,#0b2a4a 80%);}
.planet-normal2{background:radial-gradient(circle at 35% 35%,#8ad0a0,#2e7d4f 45%,#123a5c 80%);}
[class*="planet-dry"]{background:radial-gradient(circle at 35% 35%,#ffb36b,#b3471d 50%,#4a1206 85%);}
.planet-dry2{background:radial-gradient(circle at 35% 35%,#ffd08a,#c8612a 50%,#541b08 85%);}
[class*="planet-desert"]{background:radial-gradient(circle at 35% 35%,#ffe6a3,#c9973b 50%,#5a3a0f 85%);}
[class*="planet-jungle"]{background:radial-gradient(circle at 35% 35%,#b7ff8a,#2f8f2a 50%,#0c3a0a 85%);}
[class*="planet-water"]{background:radial-gradient(circle at 35% 35%,#a3e6ff,#1c6fc9 50%,#061f4a 85%);}
[class*="planet-gas"]{background:repeating-linear-gradient(170deg,#c9a27a 0 12%,#8a5d3b 12% 20%,#e0c19a 20% 30%),#8a5d3b;}
[class*="planet-ice"]{background:radial-gradient(circle at 35% 35%,#ffffff,#9fd4ff 45%,#2a5a8a 85%);}
.planet-moon{background:radial-gradient(circle at 35% 35%,#e6e6e6,#8a8a8a 50%,#2e2e2e 85%);}
.planet-list{background:rgba(13,20,36,.92);border:1px solid var(--border);border-radius:10px;padding:8px;position:sticky;top:70px;}
.pl-item{display:flex;align-items:center;justify-content:space-between;padding:5px;border-radius:6px;margin-bottom:3px;}
.pl-item.active{background:linear-gradient(90deg,rgba(63,169,245,.3),transparent);}
.pl-item:hover{background:var(--panel2);}
.pl-name{color:#fff;font-size:.85rem;line-height:1.1;} .pl-coords{color:var(--muted);font-size:.75rem;}
.moon-link{padding:3px;border-radius:50%;} .moon-link.active{outline:2px solid var(--accent);}

/* Galaxie */
.galaxy-table td{vertical-align:middle;}
.st-inactive{color:#aaa!important;} .st-inactive-long{color:#666!important;} .st-vacation{color:#5ec8ff!important;} .st-banned{color:#ff4d6d!important;text-decoration:line-through;}
.st-strong{color:#ff6b6b;} .st-weak{color:#7cff7c;}
.st-ally{color:#5dffb1;} .st-own{color:#ffd166;}

/* Mouvements / evenements */
.event-row td{vertical-align:middle;}
.ev-hostile{color:#ff6b6b;} .ev-friendly{color:#5dffb1;} .ev-own{color:#8fd0ff;} .ev-return{opacity:.75;}
.blink{animation:blink 1s infinite;} @keyframes blink{50%{opacity:.35;}}

/* Rapports */
.cr-box{background:#0a1020;border:1px solid var(--border);border-radius:8px;overflow-x:auto;}
.cr-att .cr-title{background:rgba(255,77,109,.2);} .cr-def .cr-title{background:rgba(93,255,177,.12);}
.cr-title{padding:4px 8px;font-weight:600;}
.cr-table td,.cr-table th{text-align:center;padding:2px 4px;font-size:.78rem;white-space:nowrap;}
.round-info{font-size:.8rem;color:var(--muted);text-align:center;margin:8px 0;}
.cr-result{background:#0a1020;border:1px solid var(--border);border-radius:8px;padding:10px;text-align:center;margin-top:10px;}
.msg-unread{font-weight:600;border-left:3px solid var(--accent);}
.msg-body{background:#0a1020;border-radius:8px;padding:10px;}

/* Divers */
.stat-tile{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px;text-align:center;}
.stat-tile .v{font-size:1.3rem;font-weight:700;color:#fff;}
.stat-tile .l{font-size:.75rem;color:var(--muted);}
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;}
.auth-card{max-width:420px;width:100%;}
.hero-title{font-size:3rem;font-weight:800;letter-spacing:3px;color:#fff;text-shadow:0 0 25px var(--accent);}
.tt-row{border-bottom:1px solid var(--border);padding:6px 0;}
.empire-table th,.empire-table td{white-space:nowrap;text-align:center;font-size:.8rem;}
.admin-side{width:220px;}

/* Aperçu de production au niveau suivant */
.prod-preview{overflow-x:auto;}
.prod-preview table{font-size:.72rem;margin-bottom:0;width:100%;}
.prod-preview th,.prod-preview td{padding:1px 3px;border-color:var(--border);color:var(--text);white-space:nowrap;}
.prod-preview thead th{color:var(--muted);font-size:.68rem;text-transform:uppercase;}

/* Notes de version */
.pn-line{padding:3px 0;border-bottom:1px dashed rgba(255,255,255,.06);font-size:.88rem;}
.pn-line:last-child{border-bottom:none;}
.pn-line .badge{min-width:96px;font-weight:600;}
.pn-text{color:var(--muted);}
.pn-entry{padding:8px 0;border-bottom:1px solid var(--border);}
.pn-entry:last-child{border-bottom:none;}
.pn-latest{border-color:var(--accent);box-shadow:0 0 18px rgba(63,169,245,.18);}
.bg-purple{background:#7b5cff!important;color:#fff!important;}
.version-badge{display:inline-block;padding:2px 10px;border:1px solid var(--border);border-radius:20px;color:var(--muted);
  text-decoration:none;font-size:.78rem;background:var(--panel);}
.version-badge:hover{color:#fff;border-color:var(--accent);}
/* Couleurs fixes des badges de notes de version (indépendantes du thème) */
.pn-line .badge.bg-success,.pn-entry .badge.bg-success{background:#2fa360!important;color:#fff!important;}
.pn-line .badge.bg-info,.pn-entry .badge.bg-info{background:#38bdf8!important;color:#06121f!important;}
.pn-line .badge.bg-warning,.pn-entry .badge.bg-warning{background:#f0a52e!important;color:#1a1200!important;}
.pn-line .badge.bg-secondary,.pn-entry .badge.bg-secondary{background:#54607c!important;color:#fff!important;}

/* Pass de saison */
.bp-head .bp-level-big{font-size:1.5rem;font-weight:700;color:#fff;}
.bp-scroll{overflow-x:auto;padding-bottom:10px;}
.bp-grid{display:flex;gap:8px;min-width:min-content;}
.bp-col{flex:0 0 152px;width:152px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:6px;opacity:.75;}
.bp-col.unlocked{opacity:1;border-color:rgba(63,169,245,.55);}
.bp-col.bp-next{border-style:dashed;border-color:var(--accent2);}
.bp-level-tag{text-align:center;font-weight:700;color:var(--muted);background:#0a1020;border-radius:6px;padding:1px 0;margin-bottom:6px;font-size:.85rem;}
.bp-col.unlocked .bp-level-tag{color:#fff;background:linear-gradient(90deg,var(--accent),var(--accent2));}
.bp-cell{background:#0a1020;border-radius:8px;padding:6px 4px;margin-bottom:6px;min-height:118px;}
.bp-cell.bp-premium{background:rgba(255,193,7,.06);border:1px solid rgba(255,193,7,.22);}
.bp-reward{text-align:center;font-size:.74rem;margin-bottom:6px;}
.bp-reward:last-child{margin-bottom:0;}
.bp-reward.claimed{opacity:.5;}
.bp-reward.locked{opacity:.55;}
.bp-ico{font-size:1.3rem;line-height:1.1;}
.bp-ico .el-icon.sm{width:32px;height:32px;font-size:1.2rem;}
.bp-txt{color:var(--text);margin:2px 0 3px;line-height:1.15;}
.bp-state{font-size:.7rem;}
.bp-empty{text-align:center;color:var(--muted);}
.bp-admin-grid td{vertical-align:top;}

/* Crédit / pied de page */
.site-credit{font-size:.72rem;color:var(--muted);text-align:center;margin-top:6px;line-height:1.4;}
.site-credit a{color:var(--accent);text-decoration:none;}
.site-credit a:hover{color:#8fd0ff;text-decoration:underline;}
.sidebar-credit{padding:6px 4px 10px;border-top:1px solid var(--border);margin-top:10px;}
.auth-credit{margin-top:18px;opacity:.85;}

/* Boutique */
.shop-pack{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px;text-align:center;}
.shop-pack:hover{border-color:var(--accent);box-shadow:0 0 18px rgba(63,169,245,.18);}
.shop-badge{position:absolute;top:-10px;right:10px;background:linear-gradient(90deg,var(--accent),var(--accent2));color:#fff;
  font-size:.7rem;font-weight:700;padding:2px 10px;border-radius:20px;text-transform:uppercase;}
.shop-ico{font-size:2.2rem;line-height:1;}
.shop-name{font-weight:600;color:#fff;margin-top:4px;}
.shop-amount{font-size:1.35rem;font-weight:700;color:var(--accent);}
.shop-bonus{font-size:.95rem;color:#5dffb1;}
.shop-price{font-size:1.2rem;font-weight:700;color:#fff;margin-top:8px;}
.pp-buttons{min-height:0;}
.shop-plus{display:inline-block;background:var(--accent);color:#04101f;border-radius:50%;width:15px;height:15px;line-height:15px;
  font-size:.7rem;font-weight:700;text-align:center;vertical-align:middle;}
a.res-box:hover{border-color:var(--accent);}

/* Logo */
.brand-img{height:34px;width:auto;display:block;}
.brand{display:flex;align-items:center;gap:10px;}
.brand-admin{font-size:1rem;font-weight:600;color:var(--muted);letter-spacing:1px;}
.hero-logo{max-width:min(420px,86vw);width:100%;height:auto;filter:drop-shadow(0 0 30px rgba(63,169,245,.35));}
@media(max-width:575px){.brand-img{height:26px;} .brand-admin{display:none;}}

/* Page d'accueil */
.landing-text{color:var(--text);line-height:1.6;}
.landing-features{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;}
.landing-chip{background:#0a1020;border:1px solid var(--border);border-radius:20px;padding:3px 12px;font-size:.8rem;color:var(--text);}
.landing-chip:hover{border-color:var(--accent);}
.auth-tagline{max-width:640px;margin:6px auto 0;}
